[ovs-discuss] ovn not creating geneve tunnels
Lars Kellogg-Stedman
lars at redhat.com
Sat Jan 11 01:55:06 UTC 2020
Flavio,
I wanted to expand on our irc discussion earlier today. Here's what
I'm seeing:
If I run this command...
ovs-vsctl set open_vswitch . \
external_ids:ovn-remote=tcp:192.168.122.100:6642 \
external_ids:ovn-encap-ip=$(ip addr show eth0 | awk '$1 == "inet" {print $2}' | cut -f1 -d/) \
external_ids:ovn-encap-type=geneve \
external_ids:system-id=$(hostname)
Then OVN (reliably) does not immediately bring up the geneve tunnels:
[root at ovn1 ~]# ovs-vsctl show
b55f79a1-686a-40c9-90c5-3cca33b02517
Bridge br-int
fail_mode: secure
Port br-int
Interface br-int
type: internal
ovs_version: "2.12.0"
In this situation, the tunnels will come up if I restart
ovn-controller, or if I bind some ports that require connectivity
between hosts. Everything seems to *work*, but the behavior differs
from what I was seeing earlier.
It turns out that if I set the same configuration using multiple
commands (which is what I was originally doing), like this...
ovs-vsctl set open_vswitch . external_ids:ovn-remote=tcp:192.168.122.100:6642
ovs-vsctl set open_vswitch . external_ids:ovn-encap-ip=$(ip addr show eth0 | awk '$1 == "inet" {print $2}' | cut -f1 -d/)
ovs-vsctl set open_vswitch . external_ids:ovn-encap-type=geneve
ovs-vsctl set open_vswitch . external_ids:system-id=$(hostname)
...then the geneve tunnels come up without any additional changes:
[root at ovn1 ~]# ovs-vsctl show
7ca1a9c6-f035-493a-94a9-31474dd6cf77
Bridge br-int
fail_mode: secure
Port "ovn-ovn2-0"
Interface "ovn-ovn2-0"
type: geneve
options: {csum="true", key=flow, remote_ip="192.168.122.102"}
error: "could not add network device ovn-ovn2-0 to ofproto (File exists)"
Port br-int
Interface br-int
type: internal
Port "ovn-ovn0-0"
Interface "ovn-ovn0-0"
type: geneve
options: {csum="true", key=flow, remote_ip="192.168.122.100"}
ovs_version: "2.12.0"
Although as you can see the tunnels don't always come up "cleanly". I
get that "could not add network device ovn-ovn2-0 to ofproto (File
exists)" fairly often, but not all the time.
And it's not always the same tunnel throwing the error; after a couple
more tries, I see:
Port "ovn-ovn0-0"
Interface "ovn-ovn0-0"
type: geneve
options: {csum="true", key=flow, remote_ip="192.168.122.100"}
error: "could not add network device ovn-ovn0-0 to ofproto (File exists)"
Something here seems racy and/or non-deterministic. I'm running
openvswitch/ovn 2.12.0 on Fedora 31 (kernel 5.4.8-200.fc31.x86_64).
--
Lars Kellogg-Stedman <lars at redhat.com> | larsks @ {irc,twitter,github}
http://blog.oddbit.com/ | N1LKS
More information about the discuss
mailing list