← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2069543] Re: instance tap port has dead vlan when parent port for trunk

 

I think I understand the root cause now, which is twofold:

* The first part is what I already mentioned in comment #8. We have
changed how we make a port dead in neutron, but forgot to do the same in
os-vif. Instead of tag=4095 the port should have all these set:

tag                 : 4095
trunks              : [4095]
vlan_mode           : trunk

* The second part is, that for trunk ports we have the following
datapath wiring:

|I|tpi--tpt|T|
|N|spi--spt|B|tap
|T|spi--spt|R|

os-vif puts the tap in the dead vlan, however ovs-agent assigns the vlan
overriding the dead vlan on the tpi/spi ports. os-vif does not and
should not know about anything but the tap and the tbr. ovs-agent wants
to handle the tpi/spi ports as any other non-trunk vif. The non-trunk-
specific code inside ovs-agent will never touch the tap. Something
similar to the workaround in comment #3 could be the proper solution to
this part.

With isolate_vif=False we did not notice that we do not remove the tap
from the dead vlan, because we never put it in the dead vlan in the
first place.

Hope to propose a fix tomorrow.

** Also affects: os-vif
   Importance: Undecided
       Status: New

** Changed in: os-vif
       Status: New => Confirmed

** Changed in: os-vif
     Assignee: (unassigned) => Bence Romsics (bence-romsics)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2069543

Title:
  instance tap port has dead vlan when parent port for trunk

Status in neutron:
  Triaged
Status in os-vif:
  Confirmed

Bug description:
  zed release, version 21.2.1

  i have not tried to reproduce on a newer version

  
  when creating a trunk the tap interface for the instance is still in dead vlan

      Bridge tbr-d0aed4fd-1
          datapath_type: system
          Port tbr-d0aed4fd-1
              Interface tbr-d0aed4fd-1
                  type: internal
          Port tap2f072c63-b6
              tag: 4095
              Interface tap2f072c63-b6
          Port tpt-2f072c63-b6
              tag: 0
              Interface tpt-2f072c63-b6
                  type: patch
                  options: {peer=tpi-2f072c63-b6}

  if I issue set tag=[] to force the tap port into being a trunk with:
  ovs-vsctl set port tap2f072c63-b6 tag=[]

  traffic starts to flow which makes me think the port binding for the
  tap is not done correctly

  logs: https://paste.opendev.org/show/bstDgfi43ManfW1RijJo/

  trunk ID: d0aed4fd-193d-4164-ba48-7d1d137787e1
  parent port ID: 2f072c63-b6ce-45d3-96b6-27b4f46d397b

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



References