ospfd: set O-bit in the option of all DD packets
If opaque-capability is enabled, we must set the O-bit in
the option field of all DD packets. Changing the option
field of DD packets may cause the peer to reset the state
back to ExStart.
Signed-off-by: Feng Lu <lu.feng@6wind.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 36aa895..98b1af3 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -3143,22 +3143,7 @@
options = OPTIONS (oi);
#ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE))
- {
- if (IS_SET_DD_I (nbr->dd_flags)
- || CHECK_FLAG (nbr->options, OSPF_OPTION_O))
- /*
- * Set O-bit in the outgoing DD packet for capablity negotiation,
- * if one of following case is applicable.
- *
- * 1) WaitTimer expiration event triggered the neighbor state to
- * change to Exstart, but no (valid) DD packet has received
- * from the neighbor yet.
- *
- * 2) At least one DD packet with O-bit on has received from the
- * neighbor.
- */
- SET_FLAG (options, OSPF_OPTION_O);
- }
+ SET_FLAG (options, OSPF_OPTION_O);
#endif /* HAVE_OPAQUE_LSA */
stream_putc (s, options);