[ovs-dev] ovn-nbctl and patch ports for logical routers
Lance Richardson
lrichard at redhat.com
Fri May 12 13:47:46 UTC 2017
With branch-2.6, we've noticed a difference in behavior when configuring
logical switch ports via "ovn-nbctl lsp-set-*" vs. using "ovn-nbctl set
Logical_Switch_Port". The difference seems to be a matter of setting
individual columns for a logical switch port in multiple transactions
versus setting all of them in a single transaction.
For example (note "<error>" string in patch port names):
----
ovn-nbctl ls-add s0
ovn-nbctl ls-add s1
ovn-nbctl lr-add r0
ovn-nbctl lrp-add r0 r0_s0 00:de:ad:ff:00:01 192.168.1.1/24
ovn-nbctl lrp-add r0 r0_s1 00:de:ad:ff:00:02 172.16.101.10/24
ovn-nbctl lsp-add s1 s1_r0
ovn-nbctl lsp-set-type s1_r0 router
ovn-nbctl lsp-set-addresses s1_r0 00:de:ad:ff:00:02
ovn-nbctl lsp-set-options s1_r0 router-port r0_s1
ovn-nbctl lsp-add s0 s0_r0
ovn-nbctl lsp-set-type s0_r0 router
ovn-nbctl lsp-set-addresses s0_r0 00:de:ad:ff:00:01
ovn-nbctl lsp-set-options s0_r0 router-port=r0_s0
$ ovs-vsctl show
74c40ced-675b-49df-a39c-c308681c54f4
Bridge br-int
fail_mode: secure
Port "patch-r0_s1-to-<error>"
Interface "patch-r0_s1-to-<error>"
type: patch
options: {peer="patch-<error>-to-r0_s1"}
Port "patch-s0_r0-to-r0_s0"
Interface "patch-s0_r0-to-r0_s0"
type: patch
options: {peer="patch-r0_s0-to-s0_r0"}
Port "patch-r0_s0-to-s0_r0"
Interface "patch-r0_s0-to-s0_r0"
type: patch
options: {peer="patch-s0_r0-to-r0_s0"}
Port "patch-s1_r0-to-<error>"
Interface "patch-s1_r0-to-<error>"
type: patch
options: {peer="patch-<error>-to-s1_r0"}
Port br-int
Interface br-int
type: internal
---
Equivalent (in theory) to the above, but setting multiple columns
in a single transaction:
----
ovn-nbctl ls-add s0
ovn-nbctl ls-add s1
ovn-nbctl lr-add r0
ovn-nbctl lrp-add r0 r0_s0 00:de:ad:ff:00:01 192.168.1.1/24
ovn-nbctl lrp-add r0 r0_s1 00:de:ad:ff:00:02 172.16.101.10/24
ovn-nbctl lsp-add s1 s1_r0 -- \
set Logical_Switch_Port s1_r0 type=router \
options:router-port=r0_s1 \
addresses='"00:de:ad:ff:00:02"'
ovn-nbctl lsp-add s0 s0_r0 -- \
set Logical_Switch_Port s0_r0 type=router \
options:router-port=r0_s0 \
addresses='"00:de:ad:ff:00:01"'
$ ovs-vsctl show
613524c4-77bb-4496-b1a4-a64129d8e6d8
Bridge br-int
fail_mode: secure
Port "patch-s1_r0-to-r0_s1"
Interface "patch-s1_r0-to-r0_s1"
type: patch
options: {peer="patch-r0_s1-to-s1_r0"}
Port "patch-r0_s1-to-s1_r0"
Interface "patch-r0_s1-to-s1_r0"
type: patch
options: {peer="patch-s1_r0-to-r0_s1"}
Port "patch-r0_s0-to-s0_r0"
Interface "patch-r0_s0-to-s0_r0"
type: patch
options: {peer="patch-s0_r0-to-r0_s0"}
Port "patch-s0_r0-to-r0_s0"
Interface "patch-s0_r0-to-r0_s0"
type: patch
options: {peer="patch-r0_s0-to-s0_r0"}
Port br-int
Interface br-int
type: internal
----
Is this a known issue in 2.6? I noticed that the unit tests involving
router ports use the second method.
Thanks,
Lance
More information about the dev
mailing list