You'd think that I would know this, since I'm the person who reviewed
jrobson's patch adding support for the nativeMode attribute to the vlan
tag element. But you'd be wrong. Here is what the config looks like:
<vlan trunk='yes'>
<tag id='42' nativeMode='untagged'/>
<tag id='47'/>
</vlan>
I understand that trunk='yes' means that packets with any of the tags
listed in a <tag> subelement can be sent out this port (and the tag will
*not* be removed), and likewise packets arriving into the bridge from
the port are allowed to have any of the listed tags (and, again, no tag
will be removed). But what exactly do nativeMode='untagged' and
nativeMode='tagged' mean?
As I understand it, (nativeMode='untagged'|nativeMode='tagged') means
that packets (arriving from|sent to) the port (without a tag/with that
tag) will be (tagged|untagged). Can someone who fully understands this
please select A or B for each of the 4 parenthesized items (in as many
permutations as make sense).
I guess that in one of the modes, untagged packets going in one
direction or the other will be tagged, and vice versa, I just don't know
which direction does which, and for which mode, and don't want to guess.
(I'm asking this because I want to implement identical functionality for
standard Linux host bridges - I want to make sure there are no surprises
for people switching between OVS and Linux host bridge implementations).