]> git.puffer.fish Git - mirror/frr.git/commit
ospfd: GR Conformance fix for Hello packet DR election 9551/head
authorMobashshera Rasool <mrasool@vmware.com>
Fri, 3 Sep 2021 12:59:53 +0000 (05:59 -0700)
committerMobashshera Rasool <mrasool@vmware.com>
Fri, 3 Sep 2021 13:40:14 +0000 (06:40 -0700)
commitd51715bb447faa8cd75a3563f847d945b0c4a782
treec9ec2d19a5daa60202d22fef65e6262f59bd6ee3
parent3cb67fef98c9869a2d2f3bf1be86c3b29cb0405e
ospfd: GR Conformance fix for Hello packet DR election

Problem Statement:
===================
DUT selecting itself as DR when RR goes for reload.
Test Case 7.2

DUT (GR Helper) receives the Hello packet from the OSPF GR RESTARTER
(ANVL here) with DR and BDR set to 0.0.0.0 and DUT in its hello
neighbor list. DUT triggers the DR and BDR election although it is
in the Helper mode for that neighbor.

Root Cause Analysis:
====================
When hello packet is received with self router ID in the neighbor list,
there is no check in the code to handle this scenario. Hence the DR/BDR
election happens and it changes the DR although it is helper.

Fix:
===================
As per RFC 3623 Section 3.  Operation of Helper Neighbor, below point,
we need to maintain the DR relationship.
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.

Adding the check when DUT is under neighbor helper mode, we need to avoid
ISM state change when hello packet is received with DR/BDR set to 0.0.0.0.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
ospfd/ospf_packet.c