[ovs-dev] [PATCH V2 2/2] bfd: Implements forwarding_if_rx

Alex Wang alexw at nicira.com
Thu Aug 22 00:19:17 UTC 2013


Hey Ethan,


> Basically if the remote endpoint signaled cpath down, and
> forwarding_if_rx is enabled, that state should be sticky even if we
> lose some of their packets.
>


We do have a similar issue in BFD. I'm not sure if I fully understand your
suggestion. But I have a intuitive fix below:

"""
+++ b/lib/bfd.c
@@ -953,8 +953,10 @@ bfd_set_state(struct bfd *bfd, enum state state, enum
diag diag)
         bfd->diag = diag;

         if (bfd->state <= STATE_DOWN) {
+            if (!bfd->forwarding_if_rx) {
+                bfd->rmt_diag = DIAG_NONE;
+            }
             bfd->rmt_state = STATE_DOWN;
-            bfd->rmt_diag = DIAG_NONE;
             bfd->rmt_min_rx = 1;
             bfd->rmt_flags = 0;
             bfd->rmt_disc = 0;
"""

So, when "bfd->forwarding_if_rx" is enabled, we always retain the
"rmt_diag". And it can only be changed by processing the bfd control
packets received.

Thanks,
Alex Wang,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20130821/b00d6cb0/attachment-0003.html>


More information about the dev mailing list