old_state = nbr->state;
/* Add event to thread. */
- OSPF_NSM_EVENT_SCHEDULE(nbr, NSM_PacketReceived);
+ OSPF_NSM_EVENT_SCHEDULE(nbr, NSM_HelloReceived);
/* RFC2328 Section 9.5.1
If the router is not eligible to become Designated Router,
return;
}
+ if (OSPF_GR_IS_ACTIVE_HELPER(nbr)) {
+ /* As per the GR Conformance Test Case 7.2. Section 3
+ * "Also, if X was the Designated Router on network segment S
+ * when the helping relationship began, Y maintains X as the
+ * Designated Router until the helping relationship is
+ * terminated."
+ * When I am helper for this neighbor, I should not trigger the
+ * ISM Events. Also Intentionally not setting the priority and
+ * other fields so that when the neighbor exits the Grace
+ * period, it can handle if there is any change before GR and
+ * after GR. */
+ if (IS_DEBUG_OSPF_GR)
+ zlog_debug(
+ "%s, Neighbor is under GR Restart, hence ignoring the ISM Events",
+ __PRETTY_FUNCTION__);
+
+ return;
+ }
+
/* If neighbor itself declares DR and no BDR exists,
cause event BackupSeen */
if (IPV4_ADDR_SAME(&nbr->address.u.prefix4, &hello->d_router))
UNSET_FLAG(dd->options, OSPF_OPTION_O);
}
- /* Add event to thread. */
- OSPF_NSM_EVENT_SCHEDULE(nbr, NSM_PacketReceived);
-
if (CHECK_FLAG(oi->ospf->config, OSPF_LOG_ADJACENCY_DETAIL))
zlog_info(
"%s:Packet[DD]: Neighbor %pI4 state is %s, seq_num:0x%x, local:0x%x",
- (oi->ospf->name) ? oi->ospf->name : VRF_DEFAULT_NAME,
- &nbr->router_id,
+ ospf_get_name(oi->ospf), &nbr->router_id,
lookup_msg(ospf_nsm_state_msg, nbr->state, NULL),
ntohl(dd->dd_seqnum), nbr->dd_seqnum);
return;
}
- /* Add event to thread. */
- OSPF_NSM_EVENT_SCHEDULE(nbr, NSM_PacketReceived);
-
/* Neighbor State should be Exchange or later. */
if (nbr->state != NSM_Exchange && nbr->state != NSM_Loading
&& nbr->state != NSM_Full) {
return;
}
- /* Add event to thread. */
- OSPF_NSM_EVENT_SCHEDULE(nbr, NSM_PacketReceived);
-
/* Check neighbor state. */
if (nbr->state < NSM_Exchange) {
if (IS_DEBUG_OSPF(nsm, NSM_EVENTS))
return;
}
- /* Add event to thread. */
- OSPF_NSM_EVENT_SCHEDULE(nbr, NSM_PacketReceived);
-
if (nbr->state < NSM_Exchange) {
if (IS_DEBUG_OSPF(nsm, NSM_EVENTS))
zlog_debug(
if (CHECK_FLAG(oi->ospf->config, OSPF_LOG_ADJACENCY_DETAIL))
zlog_info(
"%s:Packet[DD]: %pI4 DB Desc send with seqnum:%x , flags:%x",
- (oi->ospf->name) ? oi->ospf->name : VRF_DEFAULT_NAME,
- &nbr->router_id, nbr->dd_seqnum,
- nbr->dd_flags);
+ ospf_get_name(oi->ospf), &nbr->router_id,
+ nbr->dd_seqnum, nbr->dd_flags);
}
/* Re-send Database Description. */
if (CHECK_FLAG(oi->ospf->config, OSPF_LOG_ADJACENCY_DETAIL))
zlog_info(
"%s:Packet[DD]: %pI4 DB Desc resend with seqnum:%x , flags:%x",
- (oi->ospf->name) ? oi->ospf->name : VRF_DEFAULT_NAME,
- &nbr->router_id, nbr->dd_seqnum,
- nbr->dd_flags);
+ ospf_get_name(oi->ospf), &nbr->router_id,
+ nbr->dd_seqnum, nbr->dd_flags);
}
/* Send Link State Request. */