]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pbrd: Ensure rule is installed on interface up
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 11 Sep 2020 17:05:55 +0000 (13:05 -0400)
committerIgor Ryzhov <iryzhov@nfware.com>
Tue, 6 Oct 2020 12:54:24 +0000 (15:54 +0300)
If we are experiencing an interface that is bouncing
very fast and the last operation that we experienced
was a ifdown we will send rule deletions associated
with that interface.  If we have not received notification
that hte rule was removed *but* we immiedately get another
ifup notification when we go to install the rule we
are deciding that it's not ready to send down again,
as that we still think it is installed.

Force the rule installation when we have a interface up
event.

Ticket: CM-31042
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
pbrd/pbr_map.c

index d6500af881c6375127c410c1b9fae2903213c001..fe2778c877e1194aadc08499453dacf2570cd8e7 100644 (file)
@@ -293,7 +293,7 @@ void pbr_map_policy_interface_update(const struct interface *ifp, bool state_up)
        for (ALL_LIST_ELEMENTS_RO(pbrm->seqnumbers, node, pbrms))
                for (ALL_LIST_ELEMENTS_RO(pbrm->incoming, inode, pmi))
                        if (pmi->ifp == ifp && pbr_map_interface_is_valid(pmi))
-                               pbr_send_pbr_map(pbrms, pmi, state_up, false);
+                               pbr_send_pbr_map(pbrms, pmi, state_up, true);
 }
 
 static void pbrms_vrf_update(struct pbr_map_sequence *pbrms,