[ovn] ovs bridge included as destination port in ovs flows preventing HW offload for traffic between VMs on different provider-vlan networks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Platform: Canonical Charmed OpenStack ("Yoga" release)
OS: 22.04 (Jammy), Kernel 5.15.0-39-generic, inbox network drivers (no MOFED)
OVS 2.17.0
OVN 22.03.0-0ubuntu1
Setup: CX6Dx, LAG (LACP MLAG), OVN as SDN
Issue:
Trying to run the following use case: traffic between VMs on different hosts, different subnets per VM, over vlan provider network. VM1 is iperf client, VM2 is iperf server.
According to OVS dumps, the flows created by OVN to handle the Tx/Rx traffic on node 1 hosting VM1 (which includes also the routing function between the networks) includes for some reason the SW bridge "br-nvda" as action destination port in addition to the physical port (bond0).
HW Offload will not work in this case - as we can see those flows are not offloaded.
ufid:15f82551-
ufid:899dee5f-
ufid:4f7f5d31-
ufid:5b3a1a8e-
OVS config:
root@node4:
6d6b9dfe-
Manager "ptcp:6640:
Bridge br-nvda
fail_mode: standalone
Port veth73ed544e
tag: 9
Port patch-provnet-
Port vethbc6d678e
tag: 10
Port veth133ebbad
tag: 9
Port vethf2a1825b
tag: 9
Port veth10230c73
tag: 9
Port vethcbb2d467
tag: 10
Port br-nvda.10
tag: 10
Port veth3f7b64b1
tag: 10
Port veth7ab5b2ed
tag: 10
Port veth139bcf0d
tag: 9
Port vethfb8fc976
tag: 9
Port veth5ae35405
tag: 10
Port veth1b146461
tag: 9
Port patch-provnet-
Port br-nvda.40
tag: 40
Port bond0
Port veth11ba1236
tag: 9
Port vethecac9608
tag: 10
Port veth9d28bc1e
tag: 10
Port br-nvda
Port patch-provnet-
Port vethbe67c807
tag: 10
Port veth27a196f8
tag: 10
Port vethfb237fb7
tag: 9
Port br-nvda.9
tag: 9
Bridge br-int
fail_mode: secure
Port tap143edacb-e0
Port patch-br-
Port ovn-node3.-0
Port ens1f1npf1vf7
Port patch-br-
Port br-int
Port patch-br-
ovs_version: "2.17.0"
To reproduce:
openstack network create vlan_data --provider- physical- network tenantvlan --provider- network- type vlan --provider-segment 101 --share 11.11.100, end=11. 11.11.200 ":["switchdev" ]}' --security-group my_policy
openstack subnet create vlan_data_subnet --dhcp --network vlan_data --subnet-range 11.11.11.0/24 --allocation-pool start=11.
openstack port create direct_vlan1 --vnic-type=direct --network vlan_data --binding-profile '{"capabilities
openstack network create vlan_data2 --provider- physical- network tenantvlan --provider- network- type vlan --provider-segment 102 --share 22.22.100, end=22. 22.22.200 ":["switchdev" ]}' --security-group my_policy
openstack subnet create vlan_data2_subnet --dhcp --network vlan_data2 --subnet-range 22.22.22.0/24 --allocation-pool start=22.
openstack port create direct_vlan2 --vnic-type=direct --network vlan_data2 --binding-profile '{"capabilities
openstack router create vlan_router
openstack router add subnet vlan_router vlan_data_subnet
openstack router add subnet vlan_router vlan_data2_subnet
openstack server create --key-name bastion --flavor d1.demo --image perf --port direct_vlan1 vm1 --availability-zone nova:node3.maas
openstack server create --key-name bastion --flavor d1.demo --image perf --port direct_vlan2 vm2 --availability-zone nova:node4.maas