<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 14, 2020, at 5:59 PM, Han Zhou <<a href="mailto:hzhou@ovn.org" class="">hzhou@ovn.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I am glad it works and thanks for the update :)<br class=""></div><br class=""></div></blockquote><div><br class=""></div><div>I observed the same as Lars! The patch makes the southbound output work using the command as described!</div><div>I tested it on ovn+ovs 2.12</div><div><br class=""></div><div><br class=""></div><div><div>  (.env) [vagrant@ovn0 ~]$ sudo ovs-vsctl set open_vswitch .  \</div><div>  >     external_ids:ovn-remote=tcp:192.168.122.100:6642 \ </div><div>  >     external_ids:ovn-encap-ip=$(ip addr show eth1 | awk '$1 == "inet" {print $2}' | cut -f1 -d/) \</div><div>  >     external_ids:ovn-encap-type=geneve</div><div>  (.env) [vagrant@ovn0 ~]$</div><div>  (.env) [vagrant@ovn0 ~]$ sudo ovn-sbctl show</div><div>  Chassis "1c3c6612-51ed-49b2-8c46-af210c4975be"</div><div>      hostname: ovn0</div><div>      Encap geneve</div><div>          ip: "192.168.122.100"</div><div>          options: {csum="true"}</div></div><div><br class=""></div><div>THANKS Han!!!</div><div><br class=""></div><div>-- flaviof</div><div><br class=""></div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 14, 2020 at 2:58 PM Lars Kellogg-Stedman <<a href="mailto:lars@redhat.com" class="">lars@redhat.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="">Han,<div class=""><br class=""></div><div class="">It looks as if that patch may resolve the issue. I backported it to 2.12.0 and built some updated RPMS for Fedora 31; with those in place, the tunnels come up immediately.</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 14, 2020 at 1:03 AM Han Zhou <<a href="mailto:hzhou@ovn.org" target="_blank" class="">hzhou@ovn.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class=""><div class=""><br class=""><br class="">On Mon, Jan 13, 2020 at 6:52 PM Flavio Fernandes <<a href="mailto:flavio@flaviof.com" target="_blank" class="">flavio@flaviof.com</a>> wrote:<br class="">><br class="">><br class="">><br class="">> > On Jan 10, 2020, at 8:55 PM, Lars Kellogg-Stedman <<a href="mailto:lars@redhat.com" target="_blank" class="">lars@redhat.com</a>> wrote:<br class="">> ><br class="">> > Flavio,<br class="">> ><br class="">> > I wanted to expand on our irc discussion earlier today.  Here's what<br class="">> > I'm seeing:<br class="">> ><br class="">> > If I run this command...<br class="">> ><br class="">> >  ovs-vsctl set open_vswitch .  \<br class="">> >    external_ids:ovn-remote=tcp:<a href="http://192.168.122.100:6642/" target="_blank" class="">192.168.122.100:6642</a> \<br class="">> >    external_ids:ovn-encap-ip=$(ip addr show eth0 | awk '$1 == "inet" {print $2}' | cut -f1 -d/) \<br class="">> >    external_ids:ovn-encap-type=geneve \<br class="">> >    external_ids:system-id=$(hostname)<br class="">> ><br class="">> > Then OVN (reliably) does not immediately bring up the geneve tunnels:<br class="">> ><br class="">> >  [root@ovn1 ~]# ovs-vsctl show<br class="">> >  b55f79a1-686a-40c9-90c5-3cca33b02517<br class="">> >      Bridge br-int<br class="">> >          fail_mode: secure<br class="">> >          Port br-int<br class="">> >              Interface br-int<br class="">> >                  type: internal<br class="">> >      ovs_version: "2.12.0"<br class="">> ><br class="">> > In this situation, the tunnels will come up if I restart<br class="">> > ovn-controller, or if I bind some ports that require connectivity<br class="">> > between hosts. Everything seems to *work*, but the behavior differs<br class="">> > from what I was seeing earlier.<br class="">> ><br class="">> > It turns out that if I set the same configuration using multiple<br class="">> > commands (which is what I was originally doing), like this...<br class="">> ><br class="">> >  ovs-vsctl set open_vswitch . external_ids:ovn-remote=tcp:<a href="http://192.168.122.100:6642/" target="_blank" class="">192.168.122.100:6642</a><br class="">> >  ovs-vsctl set open_vswitch . external_ids:ovn-encap-ip=$(ip addr show eth0 | awk '$1 == "inet" {print $2}' | cut -f1 -d/)<br class="">> >  ovs-vsctl set open_vswitch . external_ids:ovn-encap-type=geneve<br class="">> >  ovs-vsctl set open_vswitch . external_ids:system-id=$(hostname)<br class="">> ><br class="">> > ...then the geneve tunnels come up without any additional changes:<br class="">> ><br class="">> >  [root@ovn1 ~]# ovs-vsctl show<br class="">> >  7ca1a9c6-f035-493a-94a9-31474dd6cf77<br class="">> >      Bridge br-int<br class="">> >          fail_mode: secure<br class="">> >          Port "ovn-ovn2-0"<br class="">> >              Interface "ovn-ovn2-0"<br class="">> >                  type: geneve<br class="">> >                  options: {csum="true", key=flow, remote_ip="192.168.122.102"}<br class="">> >                  error: "could not add network device ovn-ovn2-0 to ofproto (File exists)"<br class="">> >          Port br-int<br class="">> >              Interface br-int<br class="">> >                  type: internal<br class="">> >          Port "ovn-ovn0-0"<br class="">> >              Interface "ovn-ovn0-0"<br class="">> >                  type: geneve<br class="">> >                  options: {csum="true", key=flow, remote_ip="192.168.122.100"}<br class="">> >      ovs_version: "2.12.0"<br class="">> ><br class="">> > Although as you can see the tunnels don't always come up "cleanly". I<br class="">> > get that "could not add network device ovn-ovn2-0 to ofproto (File<br class="">> > exists)" fairly often, but not all the time.<br class="">> ><br class="">> > And it's not always the same tunnel throwing the error; after a couple<br class="">> > more tries, I see:<br class="">> ><br class="">> >          Port "ovn-ovn0-0"<br class="">> >              Interface "ovn-ovn0-0"<br class="">> >                  type: geneve<br class="">> >                  options: {csum="true", key=flow, remote_ip="192.168.122.100"}<br class="">> >                  error: "could not add network device ovn-ovn0-0 to ofproto (File exists)"<br class="">> ><br class="">> > Something here seems racy and/or non-deterministic.  I'm running<br class="">> > openvswitch/ovn 2.12.0 on Fedora 31 (kernel 5.4.8-200.fc31.x86_64).<br class="">><br class="">><br class="">> Indeed sounds like a timing thing, affected by when the attributes are done in a single ovsdb transaction or<br class="">> separately. I will try to reproduce it on my setup using your findings as guide.<br class="">><br class="">> And thanks for cc'ing the ML. There are a lot of really smart people here who may have a good idea on<br class="">> why this is happening.<br class="">><br class="">> Best,<br class="">><br class="">> -- flaviof<br class="">><br class=""></div><div class="">I am not 100% sure if it is the same problem, but could you try this patch and see if it helps?</div><div class=""><a href="https://patchwork.ozlabs.org/patch/1222380/" target="_blank" class="">https://patchwork.ozlabs.org/patch/1222380/</a></div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Han<br class=""></div></div>
</blockquote></div><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div dir="ltr" class=""><div dir="ltr" class="">Lars Kellogg-Stedman <<a href="mailto:lars@redhat.com" target="_blank" class="">lars@redhat.com</a>><div class=""><br class=""></div></div></div>
</blockquote></div>
</div></blockquote></div><br class=""></body></html>