You'll need to include:
* ganeti version
* openvswitch version
* OS version
...if you want anyone to be able to reproduce this or fix it.
Looking at the ovs documentation, I agree with you:
If vlan_mode is blank then it will default to "access" or "trunk". It's not 100% clear which it will choose in your case, i.e. when both "tag" and "trunks" are non-empty.
I also agree that "native-untagged" is what you want.
Can I suggest you try manually changing the port to "native-untagged" and see if traffic flows over both untagged and tagged VLANs. If so then you can raise a ticket to get it fixed.
Alternatively, see if you can make a patch yourself. I see code in both lib/backend.py (ConfigureOVS, which only adds ports), and in tools/
net-common.in:
# From gnt-instance man page vlan should be either .VLAN_ID or VLAN_ID
ACPORT=${VLAN%%:*} # remove any trunk info
[ -n "$ACPORT" ] && ovs-vsctl set port $INTERFACE tag=${ACPORT#.}
# Set up trunk port
# From gnt-instance man page vlan should be :VLAN_ID[:VLAN_ID2..]
TRUNKS=${VLAN#.*:} # remove any access info
[ -n "$TRUNKS" ] && ovs-vsctl set port $INTERFACE trunks=${TRUNKS//:/,}
I think this looks to be the place you'd set the mode if both ACPORT and TRUNKS are set.
Regards,
Brian.