[ovs-dev] BFD integration into FastFailover Group Table

Niels van Adrichem N.L.M.vanAdrichem at tudelft.nl
Fri Aug 29 13:15:53 UTC 2014

Dear OVS devs,

For some experiments I did around April/May for a paper I wrote I
changed some sourcecode to ofproto-dpif-xlate.c to have the FastFailover
Group Table look at the BFD status directly.
We did this because we found that although the BFD status flags changed
in time, interface status remained up (which might or might not already
have been solved by now) and hence the FastFailover rule would not
select the backup forwarding rule. Furthermore, our experiments showed
that bringing the interface status down manually could take slightly
over 50 ms before the FastFailover would kick in [1]. As we wanted "even
faster" recovery, we decided to have the function odp_port_is_alive()
also look at the BFD status itself [2]. Doing this also decreased the
number of packets when an interface became live again, as the Fast
Failover rule would not revert sending to the primary rule before BFD
confirmed a live link.

If you are interested I can rewrite the patch to confirm to the
appropriate coding lay-out and make sure it applies to the current state
of the file.

Perhaps instead of checking the BFD status, I could include a
*synchronized* per-interface flag that f.e. equals 0x00 when all
configured link state detection mechanisms detect live links, 0x01 when
BFD detects an error, 0x02 when Ethernet OAM detects an error, 0x03 when
both do, etc. In that case you can check status from multiple detection
mechanisms without the need to iterate through all of them, hence
improving the throughput of OVS.  How do you think about that?

Best regards,
Niels van Adrichem

[1] http://www.nas.ewi.tudelft.nl/people/Fernando/papers/EWSDN2014.pdf
[2] https://github.com/TUDelftNAS/SDN-OpenFlowRecovery

More information about the dev mailing list