<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:11pt;">
<div>Hello,</div>
<div>&nbsp;</div>
<div>I have done some trials with Open vSwitch RSTP and BFD features. While the features work well independently, I have discovered that the features don&#8217;t work well when enabled on the same switch instance.</div>
<div>&nbsp;</div>
<div>It seems to be that when BFD is enabled on interface, RSTP considers that link down instantly and blocks all outgoing traffic on that interface.&nbsp; Unfortunately this includes also the outgoing BFD messages. This leads to situation BFD will never get the
link up and RSTP will never be able to use the link.</div>
<div>&nbsp;</div>
<div>Expected behaviour would be that BFD messages are send and received regardless of the RSTP state of a link. Eventually BFD would see link state up and RSTP could start to use the link.</div>
<div>&nbsp;</div>
<div>Software version details:</div>
<div>CentOS 7.2 Linux </div>
<div>Linux version 3.10.0-327.36.3.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) ) #1 SMP Mon Oct 24 16:09:20 UTC O</div>
<div>ovs-vswitchd (Open vSwitch) 2.5.1</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>How to reproduce problem:</div>
<div>Two (CentOS) hosts connected together with eno51 interface.</div>
<div>&nbsp;</div>
<div># On host_1</div>
<div>service firewalld stop</div>
<div>ifconfig eno51 192.168.0.11/24 up</div>
<div>ovs-vsctl add-br br2 -- set Bridge br2 rstp_enable=true</div>
<div>ifconfig br2 172.16.20.1/24 up</div>
<div>ovs-vsctl add-port br2 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.0.12 options:key=1 bfd:enable=true</div>
<div>&nbsp;</div>
<div># On host_2 </div>
<div>service firewalld stop</div>
<div>ifconfig eno51 192.168.0.12/24 up</div>
<div>ovs-vsctl add-br br2 -- set Bridge br2 rstp_enable=true</div>
<div>ifconfig br2 172.16.20.2/24 up</div>
<div>ovs-vsctl add-port br2 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.0.11 options:key=1 bfd:enable=true</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div># BFD sees path down.</div>
<div>[root@host_1 ~]# ovs-appctl bfd/show </div>
<div>---- gre0 ----</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Forwarding: false</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Detect Multiplier: 3</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Concatenated Path Down: false</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TX Interval: Approx 1000ms</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RX Interval: Approx 1000ms</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Detect Time: now &#43;5076509ms</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next TX Time: now -52ms</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last TX Time: now &#43;728ms</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Local Flags: none</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Local Session State: down</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Local Diagnostic: No Diagnostic</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Local Discriminator: 0xfd19b281</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Local Minimum TX Interval: 1000ms</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Local Minimum RX Interval: 1000ms</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remote Flags: none</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remote Session State: down</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remote Diagnostic: No Diagnostic</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remote Discriminator: 0x0</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remote Minimum TX Interval: 0ms</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remote Minimum RX Interval: 1ms</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>[root@ host_1 ~]# ovs-dpctl show</div>
<div>system@ovs-system:</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lookups: hit:1739 missed:81 lost:0</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flows: 0</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; masks: hit:2570 total:1 hit/pkt:1.41</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; port 0: ovs-system (internal)</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; port 1: br2 (internal)</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; port 2: gre_sys (gre)</div>
<div>&nbsp;</div>
<div># RSTP has disabled the port</div>
<div>[root@ host_1 ~]# ovs-vsctl get Port gre0 rstp_status</div>
<div>{rstp_designated_bridge_id=&quot;0.000.000000000000&quot;, rstp_designated_path_cost=&quot;0&quot;, rstp_designated_port_id=&quot;0000&quot;, rstp_port_id=&quot;8001&quot;, rstp_port_role=Disabled, rstp_port_state=Discarding}</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div># Connectivity between bridges is broken.</div>
<div>[root@host_1 ~]# ping -c 1 172.16.20.2</div>
<div>PING 172.16.20.2 (172.16.20.2) 56(84) bytes of data.</div>
<div>From 172.16.20.1 icmp_seq=1 Destination Host Unreachable</div>
<div>&nbsp;</div>
<div>--- 172.16.20.2 ping statistics ---</div>
<div>1 packets transmitted, 0 received, &#43;1 errors, 100% packet loss, time 0ms</div>
<div>&nbsp;</div>
<div># Nothing is being transmitted on the gre tunnel</div>
<div>[root@host_1 ~]# tcpdump -n -i eno51 </div>
<div>tcpdump: verbose output suppressed, use -v or -vv for full protocol decode</div>
<div>listening on eno51, link-type EN10MB (Ethernet), capture size 65535 bytes</div>
<div>^C0 packets captured</div>
<div>0 packets received by filter</div>
<div>0 packets dropped by kernel</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>Note: If I disable either RSTP or BFD on the above configuration, everything works. Only when they are both enabled things break down.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><font face="Arial">BR, Mika</font></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
</span></font>
<PRE><html><head></head><body><font color="black" face="arial" size="2">
The information in this e-mail is confidential. The contents may not be disclosed or used by anyone other than the addressee. Access to this e-mail by anyone else is unauthorised.
If you are not the intended recipient, please notify Airbus immediately and delete this e-mail.
Airbus cannot accept any responsibility for the accuracy or completeness of this e-mail as it has been sent over public networks. If you have any concerns over the content of this message or its Accuracy or Integrity, please contact Airbus immediately.
All outgoing e-mails from Airbus are checked using regularly updated virus scanning software but you should take whatever measures you deem to be appropriate to ensure that this message and any attachments are virus free.
</font>
</body>
</html>
</PRE></body>
</html>