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

Lines Matching refs:nbr

58   struct ospf_neighbor *nbr;
60 nbr = THREAD_ARG (thread);
61 nbr->t_inactivity = NULL;
65 IF_NAME (nbr->oi), inet_ntoa (nbr->router_id));
67 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_InactivityTimer);
75 struct ospf_neighbor *nbr;
77 nbr = THREAD_ARG (thread);
78 nbr->t_db_desc = NULL;
82 IF_NAME (nbr->oi), inet_ntoa (nbr->src));
85 assert (nbr->last_send);
86 ospf_db_desc_resend (nbr);
89 OSPF_NSM_TIMER_ON (nbr->t_db_desc, ospf_db_desc_timer, nbr->v_db_desc);
104 nsm_timer_set (struct ospf_neighbor *nbr)
106 switch (nbr->state)
110 OSPF_NSM_TIMER_OFF (nbr->t_inactivity);
111 OSPF_NSM_TIMER_OFF (nbr->t_hello_reply);
115 OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
116 OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
117 OSPF_NSM_TIMER_OFF (nbr->t_ls_req);
120 OSPF_NSM_TIMER_ON (nbr->t_db_desc, ospf_db_desc_timer, nbr->v_db_desc);
121 OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
122 OSPF_NSM_TIMER_OFF (nbr->t_ls_req);
125 OSPF_NSM_TIMER_ON (nbr->t_ls_upd, ospf_ls_upd_timer, nbr->v_ls_upd);
126 if (!IS_SET_DD_MS (nbr->dd_flags))
127 OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
132 OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
141 nsm_should_adj (struct ospf_neighbor *nbr)
143 struct ospf_interface *oi = nbr->oi;
153 || IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR (oi))
154 || IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR (oi)))
162 nsm_packet_received (struct ospf_neighbor *nbr)
165 OSPF_NSM_TIMER_OFF (nbr->t_inactivity);
167 OSPF_NSM_TIMER_ON (nbr->t_inactivity, ospf_inactivity_timer,
168 nbr->v_inactivity);
170 if (nbr->oi->type == OSPF_IFTYPE_NBMA && nbr->nbr_nbma)
171 OSPF_POLL_TIMER_OFF (nbr->nbr_nbma->t_poll);
177 nsm_start (struct ospf_neighbor *nbr)
179 if (nbr->nbr_nbma)
180 OSPF_POLL_TIMER_OFF (nbr->nbr_nbma->t_poll);
182 OSPF_NSM_TIMER_OFF (nbr->t_inactivity);
184 OSPF_NSM_TIMER_ON (nbr->t_inactivity, ospf_inactivity_timer,
185 nbr->v_inactivity);
191 nsm_twoway_received (struct ospf_neighbor *nbr)
193 return (nsm_should_adj (nbr) ? NSM_ExStart : NSM_TwoWay);
197 ospf_db_summary_count (struct ospf_neighbor *nbr)
199 return ospf_lsdb_count_all (&nbr->db_sum);
203 ospf_db_summary_isempty (struct ospf_neighbor *nbr)
205 return ospf_lsdb_isempty (&nbr->db_sum);
209 ospf_db_summary_add (struct ospf_neighbor *nbr, struct ospf_lsa *lsa)
215 /* Exclude type-9 LSAs that does not have the same "oi" with "nbr". */
216 if (nbr->oi && ospf_if_exists (lsa->oi) != nbr->oi)
222 * that every given LSA belongs to the same area with "nbr".
236 ospf_ls_retransmit_add (nbr, lsa);
238 ospf_lsdb_add (&nbr->db_sum, lsa);
244 ospf_db_summary_clear (struct ospf_neighbor *nbr)
249 lsdb = &nbr->db_sum;
257 ospf_lsdb_delete (&nbr->db_sum, rn->info);
270 nsm_negotiation_done (struct ospf_neighbor *nbr)
272 struct ospf_area *area = nbr->oi->area;
277 ospf_db_summary_add (nbr, lsa);
279 ospf_db_summary_add (nbr, lsa);
281 ospf_db_summary_add (nbr, lsa);
283 ospf_db_summary_add (nbr, lsa);
287 if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
290 ospf_db_summary_add (nbr, lsa);
292 ospf_db_summary_add (nbr, lsa);
296 if (CHECK_FLAG (nbr->options, OSPF_OPTION_NP))
299 ospf_db_summary_add (nbr, lsa);
302 if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
304 LSDB_LOOP (EXTERNAL_LSDB (nbr->oi->ospf), rn, lsa)
305 ospf_db_summary_add (nbr, lsa);
308 if (CHECK_FLAG (nbr->options, OSPF_OPTION_O)
309 && (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
311 LSDB_LOOP (OPAQUE_AS_LSDB (nbr->oi->ospf), rn, lsa)
312 ospf_db_summary_add (nbr, lsa);
319 nsm_exchange_done (struct ospf_neighbor *nbr)
321 if (ospf_ls_request_isempty (nbr))
325 ospf_ls_req_send (nbr);
331 nsm_adj_ok (struct ospf_neighbor *nbr)
333 int next_state = nbr->state;
334 int adj = nsm_should_adj (nbr);
336 if (nbr->state == NSM_TwoWay && adj == 1)
338 else if (nbr->state >= NSM_ExStart && adj == 0)
344 /* Clear adjacency related state for a neighbour, intended where nbr
349 nsm_clear_adj (struct ospf_neighbor *nbr)
352 if (!ospf_db_summary_isempty (nbr))
353 ospf_db_summary_clear (nbr);
356 if (!ospf_ls_request_isempty (nbr))
357 ospf_ls_request_delete_all (nbr);
360 if (!ospf_ls_retransmit_isempty (nbr))
361 ospf_ls_retransmit_clear (nbr);
364 if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
365 UNSET_FLAG (nbr->options, OSPF_OPTION_O);
370 nsm_kill_nbr (struct ospf_neighbor *nbr)
373 if (nbr == nbr->oi->nbr_self)
375 assert (nbr != nbr->oi->nbr_self);
379 if (nbr->oi->type == OSPF_IFTYPE_NBMA && nbr->nbr_nbma != NULL)
381 struct ospf_nbr_nbma *nbr_nbma = nbr->nbr_nbma;
383 nbr_nbma->nbr = NULL;
384 nbr_nbma->state_change = nbr->state_change;
386 nbr->nbr_nbma = NULL;
393 IF_NAME (nbr->oi), inet_ntoa (nbr->address.u.prefix4));
595 nsm_notice_state_change (struct ospf_neighbor *nbr, int next_state, int event)
600 IF_NAME (nbr->oi), inet_ntoa (nbr->router_id),
601 LOOKUP (ospf_nsm_state_msg, nbr->state),
606 if (CHECK_FLAG(nbr->oi->ospf->config, OSPF_LOG_ADJACENCY_CHANGES) &&
607 (CHECK_FLAG(nbr->oi->ospf->config, OSPF_LOG_ADJACENCY_DETAIL) ||
608 (next_state == NSM_Full) || (next_state < nbr->state)))
610 inet_ntoa (nbr->router_id), IF_NAME (nbr->oi),
611 LOOKUP (ospf_nsm_state_msg, nbr->state),
616 if (next_state > nbr->state)
617 nbr->ts_last_progress = recent_relative_time ();
620 nbr->ts_last_regress = recent_relative_time ();
621 nbr->last_regress_str = ospf_nsm_event_str [event];
628 || (next_state < nbr->state))
631 if (nbr->oi->type == OSPF_IFTYPE_VIRTUALLINK)
632 ospfTrapVirtNbrStateChange(nbr);
636 if (((next_state != NSM_Full) && (nbr->state != NSM_Full))
637 || (nbr->oi->state == ISM_DR))
638 ospfTrapNbrStateChange(nbr);
644 nsm_change_state (struct ospf_neighbor *nbr, int state)
646 struct ospf_interface *oi = nbr->oi;
653 old_state = nbr->state;
656 nbr->state = state;
659 nbr->state_change++;
726 inet_ntoa (nbr->router_id),
756 ospf_opaque_nsm_change (nbr, old_state);
764 nsm_clear_adj (nbr);
769 if (nbr->dd_seqnum == 0)
770 nbr->dd_seqnum = quagga_time (NULL);
772 nbr->dd_seqnum++;
774 nbr->dd_flags = OSPF_DD_FLAG_I|OSPF_DD_FLAG_M|OSPF_DD_FLAG_MS;
775 ospf_db_desc_send (nbr);
780 nbr->crypt_seqnum = 0;
791 struct ospf_neighbor *nbr;
793 nbr = THREAD_ARG (thread);
797 zlog_debug ("NSM[%s:%s]: %s (%s)", IF_NAME (nbr->oi),
798 inet_ntoa (nbr->router_id),
799 LOOKUP (ospf_nsm_state_msg, nbr->state),
802 next_state = NSM [nbr->state][event].next_state;
805 if (NSM [nbr->state][event].func != NULL)
807 int func_state = (*(NSM [nbr->state][event].func))(nbr);
809 if (NSM [nbr->state][event].next_state == NSM_DependUpon)
820 IF_NAME (nbr->oi), inet_ntoa (nbr->router_id),
821 LOOKUP (ospf_nsm_state_msg, nbr->state),
830 if (next_state != nbr->state)
832 nsm_notice_state_change (nbr, next_state, event);
833 nsm_change_state (nbr, next_state);
837 nsm_timer_set (nbr);
846 if (nbr->state == NSM_Deleted)
847 ospf_nbr_delete (nbr);
854 ospf_check_nbr_loading (struct ospf_neighbor *nbr)
856 if (nbr->state == NSM_Loading)
858 if (ospf_ls_request_isempty (nbr))
859 OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_LoadingDone);
860 else if (nbr->ls_req_last == NULL)
861 ospf_ls_req_event (nbr);