In case of EVPN MH bond, a member port going in protodown state due to external reason (one case being linkflap),
frr updates the state correctly but upon manually clearing external reason trigger FRR to reinstate protodown without any reason code.
Fix is to ensure if the protodown reason was external and new state is to have protodown 'off' then do no reinstate protodown.
Testing:
switch:#ip link show swp1
4: swp1: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 9216 qdisc
pfifo_fast master bond1 state DOWN mode DEFAULT group default qlen
1000
link/ether 1c:34:da:2c:aa:68 brd ff:ff:ff:ff:ff:ff protodown on
protodown_reason <linkflap>
switch:#ip link set swp1 protodown off protodown_reason linkflap off
switch:#ip link show swp1
4: swp1: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 9216 qdisc
pfifo_fast master bond1 state DOWN mode DEFAULT group default qlen
1000
link/ether 1c:34:da:2c:aa:68 brd ff:ff:ff:ff:ff:ff
In case of EVPN MH bond, a member port going in protodown state due to external reason (one case being linkflap), frr updates the state correctly but upon manually clearing external reason trigger FRR to reinstate protodown without any reason code.
Fix is to ensure if the protodown reason was external and new state is to have protodown 'off' then do no reinstate protodown.
Testing:
Signed-off-by: Chirag Shah chirag@nvidia.com
This is an automatic backport of pull request #16252 done by Mergify.