• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/quagga/ospfd/

Lines Matching refs:nbr

333   struct ospf_neighbor *nbr;
347 nbr = ospf_nbr_lookup_by_routerid (oi->nbrs, &ospfh->router_id);
349 if (nbr && ntohl(nbr->crypt_seqnum) > ntohl(ospfh->u.crypt.crypt_seqnum))
354 ntohl(nbr->crypt_seqnum));
374 if (nbr)
375 nbr->crypt_seqnum = ospfh->u.crypt.crypt_seqnum;
445 struct ospf_neighbor *nbr;
447 nbr = THREAD_ARG (thread);
448 nbr->t_ls_req = NULL;
451 if (ospf_ls_request_count (nbr))
452 ospf_ls_req_send (nbr);
455 OSPF_NSM_TIMER_ON (nbr->t_ls_req, ospf_ls_req_timer, nbr->v_ls_req);
461 ospf_ls_req_event (struct ospf_neighbor *nbr)
463 if (nbr->t_ls_req)
465 thread_cancel (nbr->t_ls_req);
466 nbr->t_ls_req = NULL;
468 nbr->t_ls_req = thread_add_event (master, ospf_ls_req_timer, nbr, 0);
476 struct ospf_neighbor *nbr;
478 nbr = THREAD_ARG (thread);
479 nbr->t_ls_upd = NULL;
482 if (ospf_ls_retransmit_count (nbr) > 0)
489 retransmit_interval = OSPF_IF_PARAM (nbr->oi, retransmit_interval);
491 lsdb = &nbr->ls_rxmt;
518 ospf_ls_upd_send (nbr, update, OSPF_SEND_PACKET_DIRECT);
523 OSPF_NSM_TIMER_ON (nbr->t_ls_upd, ospf_ls_upd_timer, nbr->v_ls_upd);
815 struct ospf_neighbor *nbr;
945 nbr = ospf_nbr_get (oi, ospfh, iph, &p);
948 assert (nbr);
950 old_state = nbr->state;
953 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_PacketReceived);
964 OSPF_NSM_TIMER_ON (nbr->t_hello_reply, ospf_hello_reply_timer,
973 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_OneWayReceived);
974 nbr->priority = hello->priority;
975 nbr->d_router = hello->d_router;
976 nbr->bd_router = hello->bd_router;
983 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_TwoWayReceived);
984 nbr->options |= hello->options;
988 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_OneWayReceived);
990 nbr->priority = hello->priority;
991 nbr->d_router = hello->d_router;
992 nbr->bd_router = hello->bd_router;
998 if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->d_router))
1004 IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->bd_router))
1008 if ((IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->d_router) &&
1009 IPV4_ADDR_CMP (&nbr->address.u.prefix4, &nbr->d_router)) ||
1010 (IPV4_ADDR_CMP (&nbr->address.u.prefix4, &hello->d_router) &&
1011 IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->d_router)))
1015 if ((IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->bd_router) &&
1016 IPV4_ADDR_CMP (&nbr->address.u.prefix4, &nbr->bd_router)) ||
1017 (IPV4_ADDR_CMP (&nbr->address.u.prefix4, &hello->bd_router) &&
1018 IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->bd_router)))
1022 if (nbr->priority >= 0 && nbr->priority != hello->priority)
1026 nbr->priority = hello->priority;
1027 nbr->d_router = hello->d_router;
1028 nbr->bd_router = hello->bd_router;
1033 ospf_db_desc_save_current (struct ospf_neighbor *nbr,
1036 nbr->last_recv.flags = dd->flags;
1037 nbr->last_recv.options = dd->options;
1038 nbr->last_recv.dd_seqnum = ntohl (dd->dd_seqnum);
1044 struct ospf_neighbor *nbr, struct ospf_db_desc *dd,
1061 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1067 && ! CHECK_FLAG (nbr->options, OSPF_OPTION_O))
1070 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1089 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1108 ospf_ls_request_add (nbr, new);
1123 ospf_lsdb_delete (&nbr->db_sum, find);
1139 if (IS_SET_DD_MS (nbr->dd_flags))
1141 nbr->dd_seqnum++;
1144 if (!IS_SET_DD_M (dd->flags) && !IS_SET_DD_M (nbr->dd_flags))
1145 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_ExchangeDone);
1147 ospf_db_desc_send (nbr);
1152 nbr->dd_seqnum = ntohl (dd->dd_seqnum);
1162 ospf_db_desc_send (nbr);
1165 if (!IS_SET_DD_M (dd->flags) && !IS_SET_DD_M (nbr->dd_flags))
1166 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_ExchangeDone);
1170 ospf_db_desc_save_current (nbr, dd);
1174 ospf_db_desc_is_dup (struct ospf_db_desc *dd, struct ospf_neighbor *nbr)
1177 if (dd->options == nbr->last_recv.options &&
1178 dd->flags == nbr->last_recv.flags &&
1179 dd->dd_seqnum == htonl (nbr->last_recv.dd_seqnum))
1191 struct ospf_neighbor *nbr;
1198 nbr = ospf_nbr_lookup (oi, iph, ospfh);
1199 if (nbr == NULL)
1211 inet_ntoa (nbr->router_id), ntohs (dd->mtu),
1230 && (CHECK_FLAG (nbr->options, OSPF_OPTION_NP))
1235 inet_ntoa (nbr->router_id) );
1246 zlog_warn ("Packet[DD]: Neighbor %s: T-bit on?", inet_ntoa (nbr->router_id));
1264 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_PacketReceived);
1267 switch (nbr->state)
1273 inet_ntoa(nbr->router_id),
1274 LOOKUP (ospf_nsm_state_msg, nbr->state));
1277 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_TwoWayReceived);
1281 if (nbr->state != NSM_ExStart)
1288 if (IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) > 0)
1292 inet_ntoa(nbr->router_id));
1293 nbr->dd_seqnum = ntohl (dd->dd_seqnum);
1296 UNSET_FLAG (nbr->dd_flags, (OSPF_DD_FLAG_MS|OSPF_DD_FLAG_I));
1302 "ignoring.", inet_ntoa(nbr->router_id));
1308 ntohl (dd->dd_seqnum) == nbr->dd_seqnum &&
1309 IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) < 0)
1312 inet_ntoa(nbr->router_id));
1314 UNSET_FLAG (nbr->dd_flags, OSPF_DD_FLAG_I);
1319 inet_ntoa(nbr->router_id));
1324 nbr->options = dd->options;
1331 inet_ntoa (nbr->router_id),
1332 CHECK_FLAG (nbr->options, OSPF_OPTION_O) ? "" : "NOT ");
1334 if (! CHECK_FLAG (nbr->options, OSPF_OPTION_O)
1335 && IPV4_ADDR_SAME (&DR (oi), &nbr->address.u.prefix4))
1340 inet_ntoa (nbr->router_id));
1346 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_NegotiationDone);
1349 ospf_db_desc_proc (s, oi, nbr, dd, size);
1352 if (ospf_db_desc_is_dup (dd, nbr))
1354 if (IS_SET_DD_MS (nbr->dd_flags))
1357 inet_ntoa (nbr->router_id));
1362 inet_ntoa (nbr->router_id));
1363 ospf_db_desc_resend (nbr);
1370 if (IS_SET_DD_MS (dd->flags) != IS_SET_DD_MS (nbr->last_recv.flags))
1373 inet_ntoa(nbr->router_id));
1374 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1376 zlog_debug ("Packet[DD]: dd->flags=%d, nbr->dd_flags=%d",
1377 dd->flags, nbr->dd_flags);
1385 inet_ntoa(nbr->router_id));
1386 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1391 if (dd->options != nbr->options)
1395 nbr->options = dd->options;
1398 inet_ntoa(nbr->router_id));
1399 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1404 if ((IS_SET_DD_MS (nbr->dd_flags) &&
1405 ntohl (dd->dd_seqnum) != nbr->dd_seqnum) ||
1406 (!IS_SET_DD_MS (nbr->dd_flags) &&
1407 ntohl (dd->dd_seqnum) != nbr->dd_seqnum + 1))
1410 inet_ntoa(nbr->router_id));
1411 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1416 ospf_db_desc_proc (s, oi, nbr, dd, size);
1420 if (ospf_db_desc_is_dup (dd, nbr))
1422 if (IS_SET_DD_MS (nbr->dd_flags))
1427 inet_ntoa(nbr->router_id));
1434 t = tv_sub (now, nbr->last_send_ts);
1435 if (tv_cmp (t, int2tv (nbr->v_inactivity)) < 0)
1446 ospf_db_desc_resend (nbr);
1452 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1456 inet_ntoa(nbr->router_id), nbr->state);
1468 struct ospf_neighbor *nbr;
1479 nbr = ospf_nbr_lookup (oi, iph, ospfh);
1480 if (nbr == NULL)
1488 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_PacketReceived);
1491 if (nbr->state != NSM_Exchange &&
1492 nbr->state != NSM_Loading &&
1493 nbr->state != NSM_Full)
1498 LOOKUP (ospf_nsm_state_msg, nbr->state));
1516 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_BadLSReq);
1525 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_BadLSReq);
1534 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_DIRECT);
1536 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_INDIRECT);
1555 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_DIRECT);
1557 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_INDIRECT);
1568 ospf_ls_upd_list_lsa (struct ospf_neighbor *nbr, struct stream *s,
1601 zlog_warn ("Link State Update: LSA checksum error %x/%x, ID=%s from: nbr %s, router ID %s, adv router %s",
1603 inet_ntoa (nbr->src), inet_ntoa (nbr->router_id),
1623 if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
1642 && nbr->oi->area->external_routing != OSPF_AREA_DEFAULT)
1709 struct ospf_neighbor *nbr;
1721 nbr = ospf_nbr_lookup (oi, iph, ospfh);
1722 if (nbr == NULL)
1730 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_PacketReceived);
1733 if (nbr->state < NSM_Exchange)
1738 LOOKUP(ospf_nsm_state_msg, nbr->state));
1746 lsas = ospf_ls_upd_list_lsa (nbr, s, oi, size);
1760 ospf_opaque_adjust_lsreq (nbr, lsas);
1814 if (nbr->oi->area->external_routing != OSPF_AREA_DEFAULT)
1822 if (nbr->oi->area->external_routing != OSPF_AREA_NSSA)
1863 ospf_ls_ack_send (nbr, lsa);
1887 ospf_ls_ack_send (nbr, lsa);
1916 ospf_opaque_self_originated_lsa_received (nbr, lsa);
1917 ospf_ls_ack_send (nbr, lsa);
1972 if (ospf_flood (oi->ospf, nbr, current, lsa) < 0) /* Trap NSSA later. */
1984 if (ospf_ls_request_lookup (nbr, lsa))
1986 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_BadLSReq);
2010 ls_ret = ospf_ls_retransmit_lookup (nbr, lsa);
2014 ospf_ls_retransmit_delete (nbr, ls_ret);
2019 if (NBR_IS_DR (nbr))
2029 ospf_ls_ack_send (nbr, lsa);
2065 ospf_ls_upd_send_lsa (nbr, current, OSPF_SEND_PACKET_DIRECT);
2081 struct ospf_neighbor *nbr;
2086 nbr = ospf_nbr_lookup (oi, iph, ospfh);
2087 if (nbr == NULL)
2095 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_PacketReceived);
2097 if (nbr->state < NSM_Exchange)
2102 LOOKUP(ospf_nsm_state_msg, nbr->state));
2124 lsr = ospf_ls_retransmit_lookup (nbr, lsa);
2130 ospf_opaque_ls_ack_received (nbr, lsr);
2133 ospf_ls_retransmit_delete (nbr, lsr);
3058 struct ospf_neighbor *nbr;
3102 if ((nbr = rn->info))
3103 if (nbr->router_id.s_addr != 0) /* Ignore 0.0.0.0 node. */
3104 if (nbr->state != NSM_Attempt) /* Ignore Down neighbor. */
3105 if (nbr->state != NSM_Down) /* This is myself for DR election. */
3106 if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
3109 if (nbr->d_router.s_addr != 0
3110 && IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4)
3111 && IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4))
3114 stream_put_ipv4 (s, nbr->router_id.s_addr);
3126 ospf_make_db_desc (struct ospf_interface *oi, struct ospf_neighbor *nbr,
3152 stream_putc (s, nbr->dd_flags);
3155 stream_putl (s, nbr->dd_seqnum);
3158 if (ospf_db_summary_isempty (nbr))
3162 lsdb = &nbr->db_sum;
3212 if (ospf_db_summary_isempty (nbr))
3215 if (nbr->state >= NSM_Exchange)
3217 UNSET_FLAG (nbr->dd_flags, OSPF_DD_FLAG_M);
3219 stream_putc_at (s, pp, nbr->dd_flags);
3223 assert (IS_SET_DD_M(nbr->dd_flags));
3231 unsigned long delta, struct ospf_neighbor *nbr,
3236 oi = nbr->oi;
3246 ospf_lsa_unlock (&nbr->ls_req_last);
3247 nbr->ls_req_last = ospf_lsa_lock (lsa);
3254 ospf_make_ls_req (struct ospf_neighbor *nbr, struct stream *s)
3264 lsdb = &nbr->ls_req;
3271 if (ospf_make_ls_req_func (s, &length, delta, nbr, lsa) == 0)
3425 if (nbr_nbma->nbr != NULL && nbr_nbma->nbr->state != NSM_Down)
3463 struct ospf_neighbor *nbr;
3465 nbr = THREAD_ARG (thread);
3466 nbr->t_hello_reply = NULL;
3468 assert (nbr->oi);
3472 IF_NAME (nbr->oi), inet_ntoa (nbr->router_id));
3474 ospf_hello_send_sub (nbr->oi, nbr->address.u.prefix4.s_addr);
3489 struct ospf_neighbor *nbr;
3493 if ((nbr = rn->info))
3494 if (nbr != oi->nbr_self)
3495 if (nbr->state != NSM_Down)
3503 IPV4_ADDR_CMP(&DR(oi), &nbr->address.u.prefix4) &&
3504 IPV4_ADDR_CMP(&BDR(oi), &nbr->address.u.prefix4))
3513 if (nbr->priority == 0 && oi->state == ISM_DROther)
3516 ospf_hello_send_sub (oi, nbr->address.u.prefix4.s_addr);
3531 ospf_db_desc_send (struct ospf_neighbor *nbr)
3537 oi = nbr->oi;
3544 length += ospf_make_db_desc (oi, nbr, op->s);
3556 op->dst = nbr->address.u.prefix4;
3565 if (nbr->last_send)
3566 ospf_packet_free (nbr->last_send);
3567 nbr->last_send = ospf_packet_dup (op);
3568 quagga_gettime (QUAGGA_CLK_MONOTONIC, &nbr->last_send_ts);
3573 ospf_db_desc_resend (struct ospf_neighbor *nbr)
3577 oi = nbr->oi;
3580 ospf_packet_add (oi, ospf_packet_dup (nbr->last_send));
3588 ospf_ls_req_send (struct ospf_neighbor *nbr)
3594 oi = nbr->oi;
3601 length += ospf_make_ls_req (nbr, op->s);
3618 op->dst = nbr->address.u.prefix4;
3627 OSPF_NSM_TIMER_ON (nbr->t_ls_req, ospf_ls_req_timer, nbr->v_ls_req);
3632 ospf_ls_upd_send_lsa (struct ospf_neighbor *nbr, struct ospf_lsa *lsa,
3640 ospf_ls_upd_send (nbr, update, flag);
3807 ospf_ls_upd_send (struct ospf_neighbor *nbr, struct list *update, int flag)
3815 oi = nbr->oi;
3826 p.prefix = nbr->address.u.prefix4;
3901 ospf_ls_ack_send (struct ospf_neighbor *nbr, struct ospf_lsa *lsa)
3903 struct ospf_interface *oi = nbr->oi;
3906 oi->ls_ack_direct.dst = nbr->address.u.prefix4;
3928 struct ospf_neighbor *nbr;
3932 if ((nbr = rn->info) != NULL)
3933 if (nbr != oi->nbr_self && nbr->state >= NSM_Exchange)
3935 ospf_ls_ack_send_list (oi, oi->ls_ack, nbr->address.u.prefix4);