diff options
author | Ben Pfaff <blp@nicira.com> | 2011-11-17 17:11:53 -0800 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2011-11-17 17:11:53 -0800 |
commit | 5e9ceccdb69b7e8f519ebeb9d2825b2686810610 (patch) | |
tree | fc09641b131e6784ae74cf9b67902fe477d885ac /vswitchd | |
parent | 6e9ca96c694dad9ca231fca5cbe44ce676e036e7 (diff) |
Implement a new port setting "other-config:priority-tags".
Linux hosts (and probably others) tend to ignore priority-tagged frames, so
this new setting allows Open vSwitch to suppress sending them.
Reported-by: Michael Mao <mmao@nicira.com>
Bug #8320.
Diffstat (limited to 'vswitchd')
-rw-r--r-- | vswitchd/bridge.c | 2 | ||||
-rw-r--r-- | vswitchd/vswitch.xml | 43 |
2 files changed, 37 insertions, 8 deletions
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index 6a25b959..378a08cb 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -546,6 +546,8 @@ port_configure(struct port *port) s.vlan_mode = PORT_VLAN_TRUNK; } } + s.use_priority_tags = !strcmp("true", get_port_other_config( + cfg, "priority-tags", "")); /* Get LACP settings. */ s.lacp = port_configure_lacp(port, &lacp_settings); diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index d53d9d79..746a11aa 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -609,8 +609,7 @@ VLAN). A packet that ingresses on a trunk port is in the VLAN specified in its 802.1Q header, or VLAN 0 if the packet has no 802.1Q header. A packet that egresses through a trunk port will - have a 802.1Q header if it has a nonzero VLAN ID (or a nonzero - 802.1Q priority). + have an 802.1Q header if it has a nonzero VLAN ID. </p> <p> @@ -623,14 +622,14 @@ <dd> <p> An access port carries packets on exactly one VLAN specified in the - <ref column="tag"/> column. Packets ingressing and egressing on an - access port have no 802.1Q header. + <ref column="tag"/> column. Packets egressing on an access port + have no 802.1Q header. </p> <p> - Any packet with an 802.1Q header that ingresses on an access port - is dropped, regardless of whether the VLAN ID in the header is the - access port's VLAN ID. + Any packet with an 802.1Q header with a nonzero VLAN ID that + ingresses on an access port is dropped, regardless of whether the + VLAN ID in the header is the access port's VLAN ID. </p> </dd> @@ -646,7 +645,7 @@ <dd> A native-untagged port resembles a native-tagged port, with the exception that a packet that egresses on a native-untagged port in - the native VLAN not have an 802.1Q header. + the native VLAN will not have an 802.1Q header. </dd> </dl> <p> @@ -691,6 +690,34 @@ VLAN. </p> </column> + + <column name="other_config" key="priority-tags" + type='{"type": "boolean"}'> + <p> + An 802.1Q header contains two important pieces of information: a VLAN + ID and a priority. A frame with a zero VLAN ID, called a + ``priority-tagged'' frame, is supposed to be treated the same way as + a frame without an 802.1Q header at all (except for the priority). + </p> + + <p> + However, some network elements ignore any frame that has 802.1Q + header at all, even when the VLAN ID is zero. Therefore, by default + Open vSwitch does not output priority-tagged frames, instead omitting + the 802.1Q header entirely if the VLAN ID is zero. Set this key to + <code>true</code> to enable priority-tagged frames on a port. + </p> + + <p> + Regardless of this setting, Open vSwitch omits the 802.1Q header on + output if both the VLAN ID and priority would be zero. + </p> + + <p> + All frames output to native-tagged ports have a nonzero VLAN ID, so + this setting is not meaningful on native-tagged ports. + </p> + </column> </group> <group title="Bonding Configuration"> |