[Bug 1980208] [NEW] [ovn] ovs bridge included as destination port in ovs flows preventing HW offload for traffic between VMs on different provider-vlan networks

Itai Levy 1980208 at bugs.launchpad.net
Wed Jun 29 09:01:28 UTC 2022


Public bug reported:

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-5cf9-4151-a60a-50e8258bab8a, skb_priority(0/0),skb_mark(0/0),ct_state(0/0x3f),ct_zone(0/0),ct_mark(0/0),ct_label(0/0x1),recirc_id(0),dp_hash(0/0),in_port(bond0),packet_type(ns=0/0,id=0/0),eth(src=fa:16:3e:9c:5e:e0,dst=fa:16:3e:2b:a0:15),eth_type(0x8100),vlan(vid=101,pcp=0),encap(eth_type(0x0800),ipv4(src=0.0.0.0/0.0.0.0,dst=0.0.0.0/0.0.0.0,proto=6,tos=0/0,ttl=0/0,frag=no),tcp(src=0/0,dst=0/0)), packets:9397051, bytes:14700492497, used:0.000s, dp:tc, actions:br-nvda,pop_vlan,ct(zone=7),recirc(0x754)

ufid:899dee5f-8841-4115-a37b-3585f7640cc9,
skb_priority(0/0),skb_mark(0/0),ct_state(0x2a/0x3e),ct_zone(0/0),ct_mark(0/0),ct_label(0/0x1),recirc_id(0x754),dp_hash(0/0),in_port(bond0),packet_type(ns=0/0,id=0/0),eth(src=00:00:00:00:00:00/00:00:00:00:00:00,dst=fa:16:3e:2b:a0:15),eth_type(0x0800),ipv4(src=0.0.0.0/0.0.0.0,dst=11.11.11.197,proto=0/0,tos=0/0,ttl=0/0,frag=no),
packets:7588713, bytes:394647240, used:0.000s, offloaded:yes, dp:tc,
actions:ens1f1npf1vf7

ufid:4f7f5d31-c54c-4752-af6c-80f373230d81,
skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(ens1f1npf1vf7),packet_type(ns=0/0,id=0/0),eth(src=fa:16:3e:2b:a0:15,dst=fa:16:3e:9c:5e:e0),eth_type(0x0800),ipv4(src=11.11.11.197,dst=22.22.22.128/255.255.255.128,proto=6,tos=0/0,ttl=0/0,frag=no),tcp(src=0/0,dst=0/0),
packets:117335475, bytes:1053706955718, used:0.130s, offloaded:yes,
dp:tc, actions:ct(zone=7),recirc(0x753)

ufid:5b3a1a8e-3d23-4cff-80ce-d9b04d5983e0,
skb_priority(0/0),skb_mark(0/0),ct_state(0x22/0x3e),ct_zone(0/0),ct_mark(0/0),ct_label(0/0x1),recirc_id(0x753),dp_hash(0/0),in_port(ens1f1npf1vf7),packet_type(ns=0/0,id=0/0),eth(src=fa:16:3e:2b:a0:15,dst=fa:16:3e:9c:5e:e0),eth_type(0x0800),ipv4(src=11.11.11.192/255.255.255.224,dst=22.22.22.163,proto=6,tos=0/0,ttl=64,frag=no),tcp(src=0/0,dst=0/0),
packets:88045088, bytes:786251663770, used:0.000s, dp:tc,
actions:ct_clear,set(eth(src=fa:16:3e:8f:6d:cf,dst=fa:16:3e:96:33:df)),set(ipv4(ttl=63)),push_vlan(vid=102,pcp=0),bond0,br-
nvda

OVS config:

root at node4:/home/ubuntu# ovs-vsctl show
6d6b9dfe-0015-46d3-acaf-36395e1f43f1
    Manager "ptcp:6640:127.0.0.1"
        is_connected: true
    Bridge br-nvda
        fail_mode: standalone
        datapath_type: system
        Port veth73ed544e
            tag: 9
            Interface veth73ed544e
        Port patch-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e-to-br-int
            Interface patch-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e-to-br-int
                type: patch
                options: {peer=patch-br-int-to-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e}
        Port vethbc6d678e
            tag: 10
            Interface vethbc6d678e
        Port veth133ebbad
            tag: 9
            Interface veth133ebbad
        Port vethf2a1825b
            tag: 9
            Interface vethf2a1825b
        Port veth10230c73
            tag: 9
            Interface veth10230c73
        Port vethcbb2d467
            tag: 10
            Interface vethcbb2d467
        Port br-nvda.10
            tag: 10
            Interface br-nvda.10
                type: internal
        Port veth3f7b64b1
            tag: 10
            Interface veth3f7b64b1
        Port veth7ab5b2ed
            tag: 10
            Interface veth7ab5b2ed
        Port veth139bcf0d
            tag: 9
            Interface veth139bcf0d
        Port vethfb8fc976
            tag: 9
            Interface vethfb8fc976
        Port veth5ae35405
            tag: 10
            Interface veth5ae35405
        Port veth1b146461
            tag: 9
            Interface veth1b146461
        Port patch-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b-to-br-int
            Interface patch-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b-to-br-int
                type: patch
                options: {peer=patch-br-int-to-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b}
        Port br-nvda.40
            tag: 40
            Interface br-nvda.40
                type: internal
        Port bond0
            Interface bond0
                type: system
        Port veth11ba1236
            tag: 9
            Interface veth11ba1236
        Port vethecac9608
            tag: 10
            Interface vethecac9608
        Port veth9d28bc1e
            tag: 10
            Interface veth9d28bc1e
        Port br-nvda
            Interface br-nvda
                type: internal
        Port patch-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4-to-br-int
            Interface patch-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4-to-br-int
                type: patch
                options: {peer=patch-br-int-to-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4}
        Port vethbe67c807
            tag: 10
            Interface vethbe67c807
        Port veth27a196f8
            tag: 10
            Interface veth27a196f8
        Port vethfb237fb7
            tag: 9
            Interface vethfb237fb7
        Port br-nvda.9
            tag: 9
            Interface br-nvda.9
                type: internal
    Bridge br-int
        fail_mode: secure
        datapath_type: system
        Port tap143edacb-e0
            Interface tap143edacb-e0
        Port patch-br-int-to-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e
            Interface patch-br-int-to-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e
                type: patch
                options: {peer=patch-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e-to-br-int}
        Port ovn-node3.-0
            Interface ovn-node3.-0
                type: geneve
                options: {csum="true", key=flow, remote_ip="172.16.0.10"}
                bfd_status: {diagnostic="Neighbor Signaled Session Down", flap_count="25", forwarding="true", remote_diagnostic="Control Detection Time Expired", remote_state=up, state=up}
        Port ens1f1npf1vf7
            Interface ens1f1npf1vf7
        Port patch-br-int-to-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4
            Interface patch-br-int-to-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4
                type: patch
                options: {peer=patch-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4-to-br-int}
        Port br-int
            Interface br-int
                type: internal
        Port patch-br-int-to-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b
            Interface patch-br-int-to-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b
                type: patch
                options: {peer=patch-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b-to-br-int}
    ovs_version: "2.17.0"

** Affects: neutron (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to neutron in Ubuntu.
https://bugs.launchpad.net/bugs/1980208

Title:
  [ovn] ovs bridge included as destination port  in ovs flows preventing
  HW offload for traffic between VMs on different provider-vlan networks

Status in neutron package in Ubuntu:
  New

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-5cf9-4151-a60a-50e8258bab8a, skb_priority(0/0),skb_mark(0/0),ct_state(0/0x3f),ct_zone(0/0),ct_mark(0/0),ct_label(0/0x1),recirc_id(0),dp_hash(0/0),in_port(bond0),packet_type(ns=0/0,id=0/0),eth(src=fa:16:3e:9c:5e:e0,dst=fa:16:3e:2b:a0:15),eth_type(0x8100),vlan(vid=101,pcp=0),encap(eth_type(0x0800),ipv4(src=0.0.0.0/0.0.0.0,dst=0.0.0.0/0.0.0.0,proto=6,tos=0/0,ttl=0/0,frag=no),tcp(src=0/0,dst=0/0)), packets:9397051, bytes:14700492497, used:0.000s, dp:tc, actions:br-nvda,pop_vlan,ct(zone=7),recirc(0x754)

  ufid:899dee5f-8841-4115-a37b-3585f7640cc9,
  skb_priority(0/0),skb_mark(0/0),ct_state(0x2a/0x3e),ct_zone(0/0),ct_mark(0/0),ct_label(0/0x1),recirc_id(0x754),dp_hash(0/0),in_port(bond0),packet_type(ns=0/0,id=0/0),eth(src=00:00:00:00:00:00/00:00:00:00:00:00,dst=fa:16:3e:2b:a0:15),eth_type(0x0800),ipv4(src=0.0.0.0/0.0.0.0,dst=11.11.11.197,proto=0/0,tos=0/0,ttl=0/0,frag=no),
  packets:7588713, bytes:394647240, used:0.000s, offloaded:yes, dp:tc,
  actions:ens1f1npf1vf7

  ufid:4f7f5d31-c54c-4752-af6c-80f373230d81,
  skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(ens1f1npf1vf7),packet_type(ns=0/0,id=0/0),eth(src=fa:16:3e:2b:a0:15,dst=fa:16:3e:9c:5e:e0),eth_type(0x0800),ipv4(src=11.11.11.197,dst=22.22.22.128/255.255.255.128,proto=6,tos=0/0,ttl=0/0,frag=no),tcp(src=0/0,dst=0/0),
  packets:117335475, bytes:1053706955718, used:0.130s, offloaded:yes,
  dp:tc, actions:ct(zone=7),recirc(0x753)

  ufid:5b3a1a8e-3d23-4cff-80ce-d9b04d5983e0,
  skb_priority(0/0),skb_mark(0/0),ct_state(0x22/0x3e),ct_zone(0/0),ct_mark(0/0),ct_label(0/0x1),recirc_id(0x753),dp_hash(0/0),in_port(ens1f1npf1vf7),packet_type(ns=0/0,id=0/0),eth(src=fa:16:3e:2b:a0:15,dst=fa:16:3e:9c:5e:e0),eth_type(0x0800),ipv4(src=11.11.11.192/255.255.255.224,dst=22.22.22.163,proto=6,tos=0/0,ttl=64,frag=no),tcp(src=0/0,dst=0/0),
  packets:88045088, bytes:786251663770, used:0.000s, dp:tc,
  actions:ct_clear,set(eth(src=fa:16:3e:8f:6d:cf,dst=fa:16:3e:96:33:df)),set(ipv4(ttl=63)),push_vlan(vid=102,pcp=0),bond0,br-
  nvda

  OVS config:

  root at node4:/home/ubuntu# ovs-vsctl show
  6d6b9dfe-0015-46d3-acaf-36395e1f43f1
      Manager "ptcp:6640:127.0.0.1"
          is_connected: true
      Bridge br-nvda
          fail_mode: standalone
          datapath_type: system
          Port veth73ed544e
              tag: 9
              Interface veth73ed544e
          Port patch-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e-to-br-int
              Interface patch-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e-to-br-int
                  type: patch
                  options: {peer=patch-br-int-to-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e}
          Port vethbc6d678e
              tag: 10
              Interface vethbc6d678e
          Port veth133ebbad
              tag: 9
              Interface veth133ebbad
          Port vethf2a1825b
              tag: 9
              Interface vethf2a1825b
          Port veth10230c73
              tag: 9
              Interface veth10230c73
          Port vethcbb2d467
              tag: 10
              Interface vethcbb2d467
          Port br-nvda.10
              tag: 10
              Interface br-nvda.10
                  type: internal
          Port veth3f7b64b1
              tag: 10
              Interface veth3f7b64b1
          Port veth7ab5b2ed
              tag: 10
              Interface veth7ab5b2ed
          Port veth139bcf0d
              tag: 9
              Interface veth139bcf0d
          Port vethfb8fc976
              tag: 9
              Interface vethfb8fc976
          Port veth5ae35405
              tag: 10
              Interface veth5ae35405
          Port veth1b146461
              tag: 9
              Interface veth1b146461
          Port patch-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b-to-br-int
              Interface patch-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b-to-br-int
                  type: patch
                  options: {peer=patch-br-int-to-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b}
          Port br-nvda.40
              tag: 40
              Interface br-nvda.40
                  type: internal
          Port bond0
              Interface bond0
                  type: system
          Port veth11ba1236
              tag: 9
              Interface veth11ba1236
          Port vethecac9608
              tag: 10
              Interface vethecac9608
          Port veth9d28bc1e
              tag: 10
              Interface veth9d28bc1e
          Port br-nvda
              Interface br-nvda
                  type: internal
          Port patch-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4-to-br-int
              Interface patch-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4-to-br-int
                  type: patch
                  options: {peer=patch-br-int-to-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4}
          Port vethbe67c807
              tag: 10
              Interface vethbe67c807
          Port veth27a196f8
              tag: 10
              Interface veth27a196f8
          Port vethfb237fb7
              tag: 9
              Interface vethfb237fb7
          Port br-nvda.9
              tag: 9
              Interface br-nvda.9
                  type: internal
      Bridge br-int
          fail_mode: secure
          datapath_type: system
          Port tap143edacb-e0
              Interface tap143edacb-e0
          Port patch-br-int-to-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e
              Interface patch-br-int-to-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e
                  type: patch
                  options: {peer=patch-provnet-58aabff2-1e12-42d5-9ac8-14309fff218e-to-br-int}
          Port ovn-node3.-0
              Interface ovn-node3.-0
                  type: geneve
                  options: {csum="true", key=flow, remote_ip="172.16.0.10"}
                  bfd_status: {diagnostic="Neighbor Signaled Session Down", flap_count="25", forwarding="true", remote_diagnostic="Control Detection Time Expired", remote_state=up, state=up}
          Port ens1f1npf1vf7
              Interface ens1f1npf1vf7
          Port patch-br-int-to-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4
              Interface patch-br-int-to-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4
                  type: patch
                  options: {peer=patch-provnet-6393739e-d829-49cb-a51a-e90d44ac9fc4-to-br-int}
          Port br-int
              Interface br-int
                  type: internal
          Port patch-br-int-to-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b
              Interface patch-br-int-to-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b
                  type: patch
                  options: {peer=patch-provnet-ec0f96b1-404b-43a2-b817-aaf79420165b-to-br-int}
      ovs_version: "2.17.0"

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/1980208/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list