• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/zebra/ospfd/

Lines Matching refs:nbr

263   struct ospf_neighbor *nbr;
279 nbr = ospf_nbr_lookup_by_routerid (oi->nbrs, &ospfh->router_id);
280 if (nbr && ntohl(nbr->crypt_seqnum) >= ntohl(ospfh->u.crypt.crypt_seqnum))
294 if (nbr)
295 nbr->crypt_seqnum = ospfh->u.crypt.crypt_seqnum;
355 struct ospf_neighbor *nbr;
357 nbr = THREAD_ARG (thread);
358 nbr->t_ls_req = NULL;
361 if (ospf_ls_request_count (nbr))
362 ospf_ls_req_send (nbr);
365 OSPF_NSM_TIMER_ON (nbr->t_ls_req, ospf_ls_req_timer, nbr->v_ls_req);
371 ospf_ls_req_event (struct ospf_neighbor *nbr)
373 if (nbr->t_ls_req)
375 thread_cancel (nbr->t_ls_req);
376 nbr->t_ls_req = NULL;
378 nbr->t_ls_req = thread_add_event (master, ospf_ls_req_timer, nbr, 0);
386 struct ospf_neighbor *nbr;
388 nbr = THREAD_ARG (thread);
389 nbr->t_ls_upd = NULL;
392 if (ospf_ls_retransmit_count (nbr) > 0)
401 retransmit_interval = OSPF_IF_PARAM (nbr->oi, retransmit_interval);
403 lsdb = &nbr->ls_rxmt;
430 ospf_ls_upd_send (nbr, update, OSPF_SEND_PACKET_DIRECT);
435 OSPF_NSM_TIMER_ON (nbr->t_ls_upd, ospf_ls_upd_timer, nbr->v_ls_upd);
585 struct ospf_neighbor *nbr;
714 nbr = rn->info;
716 if (oi->type == OSPF_IFTYPE_NBMA && nbr->state == NSM_Attempt)
718 nbr->src = iph->ip_src;
719 nbr->address = p;
725 nbr = ospf_nbr_new (oi);
726 nbr->state = NSM_Down;
727 nbr->src = iph->ip_src;
728 nbr->address = p;
730 rn->info = nbr;
732 nbr->nbr_nbma = NULL;
746 nbr_nbma->nbr = nbr;
747 nbr->nbr_nbma = nbr_nbma;
752 nbr->state_change = nbr_nbma->state_change + 1;
757 /* New nbr, save the crypto sequence number if necessary */
759 nbr->crypt_seqnum = ospfh->u.crypt.crypt_seqnum;
762 zlog_info ("NSM[%s:%s]: start", IF_NAME (nbr->oi),
763 inet_ntoa (nbr->router_id));
766 nbr->router_id = ospfh->router_id;
768 old_state = nbr->state;
771 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_HelloReceived);
782 OSPF_NSM_TIMER_ON (nbr->t_hello_reply, ospf_hello_reply_timer,
791 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_OneWayReceived);
792 nbr->priority = hello->priority;
793 nbr->d_router = hello->d_router;
794 nbr->bd_router = hello->bd_router;
801 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_TwoWayReceived);
802 nbr->options |= hello->options;
806 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_OneWayReceived);
808 nbr->priority = hello->priority;
809 nbr->d_router = hello->d_router;
810 nbr->bd_router = hello->bd_router;
816 if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->d_router))
822 IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->bd_router))
826 if ((IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->d_router) &&
827 IPV4_ADDR_CMP (&nbr->address.u.prefix4, &nbr->d_router)) ||
828 (IPV4_ADDR_CMP (&nbr->address.u.prefix4, &hello->d_router) &&
829 IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->d_router)))
833 if ((IPV4_ADDR_SAME (&nbr->address.u.prefix4, &hello->bd_router) &&
834 IPV4_ADDR_CMP (&nbr->address.u.prefix4, &nbr->bd_router)) ||
835 (IPV4_ADDR_CMP (&nbr->address.u.prefix4, &hello->bd_router) &&
836 IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->bd_router)))
840 if (nbr->priority >= 0 && nbr->priority != hello->priority)
844 nbr->priority = hello->priority;
845 nbr->d_router = hello->d_router;
846 nbr->bd_router = hello->bd_router;
851 ospf_db_desc_save_current (struct ospf_neighbor *nbr,
854 nbr->last_recv.flags = dd->flags;
855 nbr->last_recv.options = dd->options;
856 nbr->last_recv.dd_seqnum = ntohl (dd->dd_seqnum);
862 struct ospf_neighbor *nbr, struct ospf_db_desc *dd,
879 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
885 && ! CHECK_FLAG (nbr->options, OSPF_OPTION_O))
888 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
911 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
926 ospf_ls_request_add (nbr, new);
941 if (IS_SET_DD_MS (nbr->dd_flags))
943 nbr->dd_seqnum++;
945 if (!IS_SET_DD_M (dd->flags) && !IS_SET_DD_M (nbr->dd_flags))
946 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_ExchangeDone);
949 ospf_db_desc_send (nbr);
954 nbr->dd_seqnum = ntohl (dd->dd_seqnum);
957 if (!IS_SET_DD_M (dd->flags) && ospf_db_summary_isempty (nbr))
959 nbr->dd_flags &= ~(OSPF_DD_FLAG_M);
960 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_ExchangeDone);
964 ospf_db_desc_send (nbr);
968 ospf_db_desc_save_current (nbr, dd);
972 ospf_db_desc_is_dup (struct ospf_db_desc *dd, struct ospf_neighbor *nbr)
975 if (dd->options == nbr->last_recv.options &&
976 dd->flags == nbr->last_recv.flags &&
977 dd->dd_seqnum == htonl (nbr->last_recv.dd_seqnum))
989 struct ospf_neighbor *nbr;
996 nbr = ospf_nbr_lookup_by_addr (oi->nbrs, &iph->ip_src);
997 if (nbr == NULL)
1018 zlog_warn ("Packet[DD]: Neighbor %s: T-bit on?", inet_ntoa (nbr->router_id));
1036 switch (nbr->state)
1042 LOOKUP (ospf_nsm_state_msg, nbr->state));
1045 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_TwoWayReceived);
1049 if (nbr->state != NSM_ExStart)
1056 if (IPV4_ADDR_CMP (&nbr->router_id, &ospf_top->router_id) > 0)
1060 nbr->dd_seqnum = ntohl (dd->dd_seqnum);
1061 nbr->dd_flags &= ~(OSPF_DD_FLAG_MS|OSPF_DD_FLAG_I); /* Reset I/MS */
1072 ntohl (dd->dd_seqnum) == nbr->dd_seqnum &&
1073 IPV4_ADDR_CMP (&nbr->router_id, &ospf_top->router_id) < 0)
1076 nbr->dd_flags &= ~OSPF_DD_FLAG_I;
1085 nbr->options = dd->options;
1092 inet_ntoa (nbr->router_id),
1093 CHECK_FLAG (nbr->options, OSPF_OPTION_O) ? "" : "NOT ");
1095 if (! CHECK_FLAG (nbr->options, OSPF_OPTION_O)
1096 && IPV4_ADDR_SAME (&DR (oi), &nbr->address.u.prefix4))
1098 zlog_warn ("DR-neighbor[%s] is NOT opaque-capable; Opaque-LSAs cannot be reliably advertised in this network.", inet_ntoa (nbr->router_id));
1104 OSPF_NSM_EVENT_EXECUTE (nbr, NSM_NegotiationDone);
1107 ospf_db_desc_proc (s, oi, nbr, dd, size);
1110 if (ospf_db_desc_is_dup (dd, nbr))
1112 if (IS_SET_DD_MS (nbr->dd_flags))
1119 ospf_db_desc_resend (nbr);
1126 if (IS_SET_DD_MS (dd->flags) != IS_SET_DD_MS (nbr->last_recv.flags))
1129 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1131 zlog_info ("Packet[DD]: dd->flags=%d, nbr->dd_flags=%d",
1132 dd->flags, nbr->dd_flags);
1140 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1145 if (dd->options != nbr->options)
1149 nbr->options = dd->options;
1152 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1157 if ((IS_SET_DD_MS (nbr->dd_flags) &&
1158 ntohl (dd->dd_seqnum) != nbr->dd_seqnum) ||
1159 (!IS_SET_DD_MS (nbr->dd_flags) &&
1160 ntohl (dd->dd_seqnum) != nbr->dd_seqnum + 1))
1163 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1168 ospf_db_desc_proc (s, oi, nbr, dd, size);
1172 if (ospf_db_desc_is_dup (dd, nbr))
1174 if (IS_SET_DD_MS (nbr->dd_flags))
1184 t = tv_sub (now, nbr->last_send_ts);
1185 if (tv_cmp (t, int2tv (nbr->v_inactivity)) < 0)
1196 ospf_db_desc_resend (nbr);
1202 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
1217 struct ospf_neighbor *nbr;
1228 nbr = ospf_nbr_lookup_by_addr (oi->nbrs, &iph->ip_src);
1229 if (nbr == NULL)
1237 if (nbr->state != NSM_Exchange &&
1238 nbr->state != NSM_Loading &&
1239 nbr->state != NSM_Full)
1242 LOOKUP (ospf_nsm_state_msg, nbr->state));
1260 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_BadLSReq);
1269 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_BadLSReq);
1278 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_DIRECT);
1280 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_INDIRECT);
1299 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_DIRECT);
1301 ospf_ls_upd_send (nbr, ls_upd, OSPF_SEND_PACKET_INDIRECT);
1312 ospf_ls_upd_list_lsa (struct ospf_neighbor *nbr, struct stream *s,
1362 if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
1381 && nbr->oi->area->external_routing != OSPF_AREA_DEFAULT)
1447 struct ospf_neighbor *nbr;
1462 nbr = ospf_nbr_lookup_by_addr (oi->nbrs, &iph->ip_src);
1463 if (nbr == NULL)
1471 if (nbr->state < NSM_Exchange)
1482 lsas = ospf_ls_upd_list_lsa (nbr, s, oi, size);
1500 ospf_opaque_adjust_lsreq (nbr, lsas);
1556 if (nbr->oi->area->external_routing != OSPF_AREA_DEFAULT)
1567 if (nbr->oi->area->external_routing != OSPF_AREA_NSSA)
1589 ospf_ls_ack_send (nbr, lsa);
1609 ospf_ls_ack_send (nbr, lsa);
1651 if (ospf_flood (nbr, current, lsa) < 0) /* Trap NSSA later. */
1663 if (ospf_ls_request_lookup (nbr, lsa))
1665 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_BadLSReq);
1692 ls_ret = ospf_ls_retransmit_lookup (nbr, lsa);
1696 ospf_ls_retransmit_delete (nbr, ls_ret);
1701 if (NBR_IS_DR (nbr))
1711 ospf_ls_ack_send (nbr, lsa);
1747 ospf_ls_upd_send_lsa (nbr, current, OSPF_SEND_PACKET_DIRECT);
1761 ospf_ls_ack_send_list (oi, mylsa_acks, nbr->address.u.prefix4);
1764 ospf_opaque_self_originated_lsa_received (nbr, mylsa_upds);
1778 struct ospf_neighbor *nbr;
1786 nbr = ospf_nbr_lookup_by_addr (oi->nbrs, &iph->ip_src);
1787 if (nbr == NULL)
1794 if (nbr->state < NSM_Exchange)
1822 lsr = ospf_ls_retransmit_lookup (nbr, lsa);
1832 ospf_ls_retransmit_delete (nbr, lsr);
1841 ospf_opaque_ls_ack_received (nbr, opaque_acks);
2389 struct ospf_neighbor *nbr;
2430 if ((nbr = rn->info) != NULL)
2432 if (nbr->router_id.s_addr != 0)
2433 if (nbr->state != NSM_Attempt)
2435 if (nbr->state != NSM_Down)
2437 if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
2440 if (nbr->d_router.s_addr != 0 &&
2441 IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4) &&
2442 IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4))
2445 stream_put_ipv4 (s, nbr->router_id.s_addr);
2460 ospf_make_db_desc (struct ospf_interface *oi, struct ospf_neighbor *nbr,
2481 if (IS_SET_DD_I (nbr->dd_flags)
2482 || CHECK_FLAG (nbr->options, OSPF_OPTION_O))
2501 stream_putc (s, nbr->dd_flags);
2504 stream_putl (s, nbr->dd_seqnum);
2506 if (ospf_db_summary_isempty (nbr))
2508 if (nbr->state >= NSM_Exchange)
2510 nbr->dd_flags &= ~OSPF_DD_FLAG_M;
2513 stream_putc (s, nbr->dd_flags);
2519 lsdb = &nbr->db_sum;
2573 unsigned long delta, struct ospf_neighbor *nbr,
2578 oi = nbr->oi;
2588 ospf_lsa_unlock (nbr->ls_req_last);
2589 nbr->ls_req_last = ospf_lsa_lock (lsa);
2596 ospf_make_ls_req (struct ospf_neighbor *nbr, struct stream *s)
2606 lsdb = &nbr->ls_req;
2613 if (ospf_make_ls_req_func (s, &length, delta, nbr, lsa) == 0)
2777 if (nbr_nbma->nbr != NULL && nbr_nbma->nbr->state != NSM_Down)
2815 struct ospf_neighbor *nbr;
2817 nbr = THREAD_ARG (thread);
2818 nbr->t_hello_reply = NULL;
2820 assert (nbr->oi);
2824 IF_NAME (nbr->oi), inet_ntoa (nbr->router_id));
2826 ospf_hello_send_sub (nbr->oi, &nbr->address.u.prefix4);
2858 struct ospf_neighbor *nbr;
2862 if ((nbr = rn->info))
2863 if (nbr != oi->nbr_self)
2864 if (nbr->state != NSM_Down)
2872 IPV4_ADDR_CMP(&DR(oi), &nbr->address.u.prefix4) &&
2873 IPV4_ADDR_CMP(&BDR(oi), &nbr->address.u.prefix4))
2882 if (nbr->priority == 0 && oi->state == ISM_DROther)
2889 op_dup->dst = nbr->address.u.prefix4;
2918 ospf_db_desc_send (struct ospf_neighbor *nbr)
2924 oi = nbr->oi;
2931 length += ospf_make_db_desc (oi, nbr, op->s);
2940 op->dst = nbr->address.u.prefix4;
2949 if (nbr->last_send)
2950 ospf_packet_free (nbr->last_send);
2951 nbr->last_send = ospf_packet_dup (op);
2952 gettimeofday (&nbr->last_send_ts, NULL);
2957 ospf_db_desc_resend (struct ospf_neighbor *nbr)
2961 oi = nbr->oi;
2964 ospf_packet_add (oi, ospf_packet_dup (nbr->last_send));
2972 ospf_ls_req_send (struct ospf_neighbor *nbr)
2978 oi = nbr->oi;
2985 length += ospf_make_ls_req (nbr, op->s);
2999 op->dst = nbr->address.u.prefix4;
3008 OSPF_NSM_TIMER_ON (nbr->t_ls_req, ospf_ls_req_timer, nbr->v_ls_req);
3013 ospf_ls_upd_send_lsa (struct ospf_neighbor *nbr, struct ospf_lsa *lsa,
3021 ospf_ls_upd_send (nbr, update, flag);
3092 ospf_ls_upd_send (struct ospf_neighbor *nbr, list update, int flag)
3099 oi = nbr->oi;
3108 p.prefix = nbr->address.u.prefix4;
3183 ospf_ls_ack_send (struct ospf_neighbor *nbr, struct ospf_lsa *lsa)
3185 struct ospf_interface *oi = nbr->oi;
3188 oi->ls_ack_direct.dst = nbr->address.u.prefix4;
3210 struct ospf_neighbor *nbr;
3214 if ((nbr = rn->info) != NULL)
3215 if (nbr != oi->nbr_self && nbr->state >= NSM_Exchange)
3217 ospf_ls_ack_send_list (oi, oi->ls_ack, nbr->address.u.prefix4);