I decided to apply this, but I'd still like to improve the documentation further if possible, so when you get a chance please review the RSTP documentation in vswitch.xml.
On Thu, Feb 19, 2015 at 09:48:15AM -0800, Jarno Rajahalme wrote: > I?ll look in to this, > > Jarno > > On Feb 19, 2015, at 9:22 AM, Ben Pfaff <b...@nicira.com> wrote: > > > On Thu, Feb 19, 2015 at 04:00:43AM -0800, Gurucharan Shetty wrote: > >> On Thu, Feb 19, 2015 at 12:12 AM, Ben Pfaff <b...@nicira.com> wrote: > >>> A fair number of columns had been overlooked. This documents them. > >>> > >>> The patch is smaller than it appears because this rearranges the STP and > >>> RSTP documentation to group configuration, status, and statistics together > >>> in the documentation for clarity. > >>> > >>> Signed-off-by: Ben Pfaff <b...@nicira.com> > >> I do not know RSTP to review whether more clarity can be provided on > >> the newly added column documentation. If no one else reviews, > >> Acked-by: Gurucharan Shetty <gshe...@nicira.com> > > > > Jarno, I think you know RSTP better than most here. Can you provide > > any better documentation for the newly documented columns here? > > > > > >>> --- > >>> vswitchd/vswitch.xml | 680 > >>> +++++++++++++++++++++++++++++---------------------- > >>> 1 file changed, 391 insertions(+), 289 deletions(-) > >>> > >>> diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml > >>> index 932e4b2..04de3ca 100644 > >>> --- a/vswitchd/vswitch.xml > >>> +++ b/vswitchd/vswitch.xml > >>> @@ -681,80 +681,232 @@ > >>> </group> > >>> > >>> <group title="Spanning Tree Configuration"> > >>> - The IEEE 802.1D Spanning Tree Protocol (STP) is a network protocol > >>> - that ensures loop-free topologies. It allows redundant links to > >>> - be included in the network to provide automatic backup paths if > >>> - the active links fails. > >>> + <p> > >>> + The IEEE 802.1D Spanning Tree Protocol (STP) is a network > >>> protocol > >>> + that ensures loop-free topologies. It allows redundant links to > >>> + be included in the network to provide automatic backup paths if > >>> + the active links fails. > >>> + </p> > >>> > >>> - <column name="stp_enable" type='{"type": "boolean"}'> > >>> - Enable spanning tree on the bridge. By default, STP is disabled > >>> - on bridges. Bond, internal, and mirror ports are not supported > >>> - and will not participate in the spanning tree. > >>> - </column> > >>> + <p> > >>> + These settings configure the slower-to-converge but still widely > >>> + supported version of Spanning Tree Protocol, sometimes known as > >>> + 802.1D-1998. Open vSwitch also supports the newer Rapid > >>> Spanning Tree > >>> + Protocol (RSTP), documented later in the section titled > >>> <code>Rapid > >>> + Spanning Tree Configuration</code>. > >>> + </p> > >>> > >>> - <column name="other_config" key="stp-system-id"> > >>> - The bridge's STP identifier (the lower 48 bits of the bridge-id) > >>> - in the form > >>> - > >>> <var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>. > >>> - By default, the identifier is the MAC address of the bridge. > >>> - </column> > >>> + <group title="STP Configuration"> > >>> + <column name="stp_enable" type='{"type": "boolean"}'> > >>> + <p> > >>> + Enable spanning tree on the bridge. By default, STP is > >>> disabled > >>> + on bridges. Bond, internal, and mirror ports are not > >>> supported > >>> + and will not participate in the spanning tree. > >>> + </p> > >>> > >>> - <column name="other_config" key="stp-priority" > >>> - type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 65535}'> > >>> - The bridge's relative priority value for determining the root > >>> - bridge (the upper 16 bits of the bridge-id). A bridge with the > >>> - lowest bridge-id is elected the root. By default, the priority > >>> - is 0x8000. > >>> - </column> > >>> + <p> > >>> + STP and RSTP are mutually exclusive. If both are enabled, > >>> RSTP > >>> + will be used. > >>> + </p> > >>> + </column> > >>> > >>> - <column name="other_config" key="stp-hello-time" > >>> - type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 10}'> > >>> - The interval between transmissions of hello messages by > >>> - designated ports, in seconds. By default the hello interval is > >>> - 2 seconds. > >>> - </column> > >>> + <column name="other_config" key="stp-system-id"> > >>> + The bridge's STP identifier (the lower 48 bits of the > >>> bridge-id) > >>> + in the form > >>> + > >>> <var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>. > >>> + By default, the identifier is the MAC address of the bridge. > >>> + </column> > >>> > >>> - <column name="other_config" key="stp-max-age" > >>> - type='{"type": "integer", "minInteger": 6, "maxInteger": > >>> 40}'> > >>> - The maximum age of the information transmitted by the bridge > >>> - when it is the root bridge, in seconds. By default, the maximum > >>> - age is 20 seconds. > >>> - </column> > >>> + <column name="other_config" key="stp-priority" > >>> + type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 65535}'> > >>> + The bridge's relative priority value for determining the root > >>> + bridge (the upper 16 bits of the bridge-id). A bridge with the > >>> + lowest bridge-id is elected the root. By default, the priority > >>> + is 0x8000. > >>> + </column> > >>> > >>> - <column name="other_config" key="stp-forward-delay" > >>> - type='{"type": "integer", "minInteger": 4, "maxInteger": > >>> 30}'> > >>> - The delay to wait between transitioning root and designated > >>> - ports to <code>forwarding</code>, in seconds. By default, the > >>> - forwarding delay is 15 seconds. > >>> - </column> > >>> + <column name="other_config" key="stp-hello-time" > >>> + type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 10}'> > >>> + The interval between transmissions of hello messages by > >>> + designated ports, in seconds. By default the hello interval is > >>> + 2 seconds. > >>> + </column> > >>> > >>> - <column name="other_config" key="mcast-snooping-aging-time" > >>> - type='{"type": "integer", "minInteger": 1}'> > >>> - <p> > >>> - The maximum number of seconds to retain a multicast snooping > >>> entry for > >>> - which no packets have been seen. The default is currently 300 > >>> - seconds (5 minutes). The value, if specified, is forced into a > >>> - reasonable range, currently 15 to 3600 seconds. > >>> - </p> > >>> - </column> > >>> + <column name="other_config" key="stp-max-age" > >>> + type='{"type": "integer", "minInteger": 6, "maxInteger": > >>> 40}'> > >>> + The maximum age of the information transmitted by the bridge > >>> + when it is the root bridge, in seconds. By default, the > >>> maximum > >>> + age is 20 seconds. > >>> + </column> > >>> > >>> - <column name="other_config" key="mcast-snooping-table-size" > >>> - type='{"type": "integer", "minInteger": 1}'> > >>> + <column name="other_config" key="stp-forward-delay" > >>> + type='{"type": "integer", "minInteger": 4, "maxInteger": > >>> 30}'> > >>> + The delay to wait between transitioning root and designated > >>> + ports to <code>forwarding</code>, in seconds. By default, the > >>> + forwarding delay is 15 seconds. > >>> + </column> > >>> + > >>> + <column name="other_config" key="mcast-snooping-aging-time" > >>> + type='{"type": "integer", "minInteger": 1}'> > >>> + <p> > >>> + The maximum number of seconds to retain a multicast snooping > >>> entry for > >>> + which no packets have been seen. The default is currently > >>> 300 > >>> + seconds (5 minutes). The value, if specified, is forced > >>> into a > >>> + reasonable range, currently 15 to 3600 seconds. > >>> + </p> > >>> + </column> > >>> + > >>> + <column name="other_config" key="mcast-snooping-table-size" > >>> + type='{"type": "integer", "minInteger": 1}'> > >>> + <p> > >>> + The maximum number of multicast snooping addresses to learn. > >>> The > >>> + default is currently 2048. The value, if specified, is > >>> forced into > >>> + a reasonable range, currently 10 to 1,000,000. > >>> + </p> > >>> + </column> > >>> + <column name="other_config" > >>> key="mcast-snooping-disable-flood-unregistered" > >>> + type='{"type": "boolean"}'> > >>> + <p> > >>> + If set to <code>false</code>, unregistered multicast packets > >>> are forwarded > >>> + to all ports. > >>> + If set to <code>true</code>, unregistered multicast packets > >>> are forwarded > >>> + to ports connected to multicast routers. > >>> + </p> > >>> + </column> > >>> + </group> > >>> + > >>> + <group title="STP Status"> > >>> <p> > >>> - The maximum number of multicast snooping addresses to learn. > >>> The > >>> - default is currently 2048. The value, if specified, is forced > >>> into > >>> - a reasonable range, currently 10 to 1,000,000. > >>> + These key-value pairs report the status of 802.1D-1998. They > >>> are > >>> + present only if STP is enabled (via the <ref > >>> column="stp_enable"/> > >>> + column). > >>> </p> > >>> - </column> > >>> - <column name="other_config" > >>> key="mcast-snooping-disable-flood-unregistered" > >>> - type='{"type": "boolean"}'> > >>> + <column name="status" key="stp_bridge_id"> > >>> + The bridge ID used in spanning tree advertisements, in the form > >>> + <var>xxxx</var>.<var>yyyyyyyyyyyy</var> where the > >>> <var>x</var>s are > >>> + the STP priority, the <var>y</var>s are the STP system ID, and > >>> each > >>> + <var>x</var> and <var>y</var> is a hex digit. > >>> + </column> > >>> + <column name="status" key="stp_designated_root"> > >>> + The designated root for this spanning tree, in the same form > >>> as <ref > >>> + column="status" key="stp_bridge_id"/>. If this bridge is the > >>> root, > >>> + this will have the same value as <ref column="status" > >>> + key="stp_bridge_id"/>, otherwise it will differ. > >>> + </column> > >>> + <column name="status" key="stp_root_path_cost"> > >>> + The path cost of reaching the designated bridge. A lower > >>> number is > >>> + better. The value is 0 if this bridge is the root, otherwise > >>> it is > >>> + higher. > >>> + </column> > >>> + </group> > >>> + </group> > >>> + > >>> + <group title="Rapid Spanning Tree"> > >>> + <p> > >>> + Rapid Spanning Tree Protocol (RSTP), like STP, is a network > >>> protocol > >>> + that ensures loop-free topologies. RSTP superseded STP with the > >>> + publication of 802.1D-2004. Compared to STP, RSTP converges more > >>> + quickly and recovers more quickly from failures. > >>> + </p> > >>> + > >>> + <group title="RSTP Configuration"> > >>> + <column name="rstp_enable" type='{"type": "boolean"}'> > >>> + <p> > >>> + Enable Rapid Spanning Tree on the bridge. By default, RSTP > >>> is disabled > >>> + on bridges. Bond, internal, and mirror ports are not > >>> supported > >>> + and will not participate in the spanning tree. > >>> + </p> > >>> + > >>> + <p> > >>> + STP and RSTP are mutually exclusive. If both are enabled, > >>> RSTP > >>> + will be used. > >>> + </p> > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-address"> > >>> + The bridge's RSTP address (the lower 48 bits of the bridge-id) > >>> + in the form > >>> + > >>> <var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>. > >>> + By default, the address is the MAC address of the bridge. > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-priority" > >>> + type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 61440}'> > >>> + The bridge's relative priority value for determining the root > >>> + bridge (the upper 16 bits of the bridge-id). A bridge with the > >>> + lowest bridge-id is elected the root. By default, the priority > >>> + is 0x8000 (32768). This value needs to be a multiple of 4096, > >>> + otherwise it's rounded to the nearest inferior one. > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-ageing-time" > >>> + type='{"type": "integer", "minInteger": 10, > >>> "maxInteger": 1000000}'> > >>> + The Ageing Time parameter for the Bridge. The default value > >>> + is 300 seconds. > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-force-protocol-version" > >>> + type='{"type": "integer"}'> > >>> + The Force Protocol Version parameter for the Bridge. This > >>> + can take the value 0 (STP Compatibility mode) or 2 > >>> + (the default, normal operation). > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-max-age" > >>> + type='{"type": "integer", "minInteger": 6, "maxInteger": > >>> 40}'> > >>> + The maximum age of the information transmitted by the Bridge > >>> + when it is the Root Bridge. The default value is 20. > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-forward-delay" > >>> + type='{"type": "integer", "minInteger": 4, "maxInteger": > >>> 30}'> > >>> + The delay used by STP Bridges to transition Root and Designated > >>> + Ports to Forwarding. The default value is 15. > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-transmit-hold-count" > >>> + type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 10}'> > >>> + The Transmit Hold Count used by the Port Transmit state machine > >>> + to limit transmission rate. The default value is 6. > >>> + </column> > >>> + </group> > >>> + > >>> + <group title="RSTP Status"> > >>> <p> > >>> - If set to <code>false</code>, unregistered multicast packets > >>> are forwarded > >>> - to all ports. > >>> - If set to <code>true</code>, unregistered multicast packets > >>> are forwarded > >>> - to ports connected to multicast routers. > >>> + These key-value pairs report the status of 802.1D-2004. They > >>> are > >>> + present only if RSTP is enabled (via the <ref > >>> column="rstp_enable"/> > >>> + column). > >>> </p> > >>> - </column> > >>> + <column name="rstp_status" key="rstp_bridge_id"> > >>> + The bridge ID used in rapid spanning tree advertisements, in > >>> the form > >>> + <var>x</var>.<var>yyy</var>.<var>zzzzzzzzzzzz</var> where > >>> + <var>x</var> is the RSTP priority, the <var>y</var>s are a > >>> locally > >>> + assigned system ID extension, the <var>z</var>s are the STP > >>> system > >>> + ID, and each <var>x</var>, <var>y</var>, or <var>z</var> is a > >>> hex > >>> + digit. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_root_id"> > >>> + The root of this spanning tree, in the same form as <ref > >>> + column="rstp_status" key="rstp_bridge_id"/>. If this bridge > >>> is the > >>> + root, this will have the same value as <ref > >>> column="rstp_status" > >>> + key="rstp_bridge_id"/>, otherwise it will differ. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_root_path_cost" > >>> + type='{"type": "integer", "minInteger": 0}'> > >>> + The path cost of reaching the root. A lower number is better. > >>> The > >>> + value is 0 if this bridge is the root, otherwise it is higher. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_designated_id"> > >>> + The RSTP designated ID, in the same form as <ref > >>> column="rstp_status" > >>> + key="rstp_bridge_id"/>. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_designated_port_id"> > >>> + The RSTP designated port ID, as a 4-digit hex number. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_bridge_port_id"> > >>> + The RSTP bridge port ID, as a 4-digit hex number. > >>> + </column> > >>> + </group> > >>> </group> > >>> > >>> <group title="Multicast Snooping Configuration"> > >>> @@ -770,73 +922,6 @@ > >>> </column> > >>> </group> > >>> > >>> - <group title="Rapid Spanning Tree Configuration"> > >>> - In IEEE Std 802.1D, 1998 Edition, and prior editions of this > >>> standard, > >>> - Clause 8 specified the spanning tree algorithm and protocol (STP). > >>> STP > >>> - has now been superseded by the Rapid Spanning Tree Protocol (RSTP) > >>> - specified in Clause 17 of the IEEE Std 802.1D, 2004 Edition. > >>> - The IEEE 802.1D-2004 Rapid Spanning Tree Algorithm Protocol > >>> configures > >>> - full, simple, and symmetric connectivity throughout a Bridged > >>> Local Area > >>> - Network that comprises individual LANs interconnected by Bridges. > >>> - Like STP, RSTP is a network protocol that ensures loop-free > >>> topologies. > >>> - It allows redundant links to be included in the network to provide > >>> - automatic backup paths if the active links fails. > >>> - > >>> - <column name="rstp_enable" type='{"type": "boolean"}'> > >>> - Enable Rapid Spanning Tree on the bridge. By default, RSTP is > >>> disabled > >>> - on bridges. Bond, internal, and mirror ports are not supported > >>> - and will not participate in the spanning tree. > >>> - </column> > >>> - > >>> - <column name="other_config" key="rstp-address"> > >>> - The bridge's RSTP address (the lower 48 bits of the bridge-id) > >>> - in the form > >>> - > >>> <var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>:<var>xx</var>. > >>> - By default, the address is the MAC address of the bridge. > >>> - </column> > >>> - > >>> - <column name="other_config" key="rstp-priority" > >>> - type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 61440}'> > >>> - The bridge's relative priority value for determining the root > >>> - bridge (the upper 16 bits of the bridge-id). A bridge with the > >>> - lowest bridge-id is elected the root. By default, the priority > >>> - is 0x8000 (32768). This value needs to be a multiple of 4096, > >>> - otherwise it's rounded to the nearest inferior one. > >>> - </column> > >>> - > >>> - <column name="other_config" key="rstp-ageing-time" > >>> - type='{"type": "integer", "minInteger": 10, "maxInteger": > >>> 1000000}'> > >>> - The Ageing Time parameter for the Bridge. The default value > >>> - is 300 seconds. > >>> - </column> > >>> - > >>> - <column name="other_config" key="rstp-force-protocol-version" > >>> - type='{"type": "integer"}'> > >>> - The Force Protocol Version parameter for the Bridge. This > >>> - can take the value 0 (STP Compatibility mode) or 2 > >>> - (the default, normal operation). > >>> - </column> > >>> - > >>> - <column name="other_config" key="rstp-max-age" > >>> - type='{"type": "integer", "minInteger": 6, "maxInteger": > >>> 40}'> > >>> - The maximum age of the information transmitted by the Bridge > >>> - when it is the Root Bridge. The default value is 20. > >>> - </column> > >>> - > >>> - <column name="other_config" key="rstp-forward-delay" > >>> - type='{"type": "integer", "minInteger": 4, "maxInteger": > >>> 30}'> > >>> - The delay used by STP Bridges to transition Root and Designated > >>> - Ports to Forwarding. The default value is 15. > >>> - </column> > >>> - > >>> - <column name="other_config" key="rstp-transmit-hold-count" > >>> - type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 10}'> > >>> - The Transmit Hold Count used by the Port Transmit state machine > >>> - to limit transmission rate. The default value is 6. > >>> - </column> > >>> - > >>> - </group> > >>> - > >>> <group title="Other Features"> > >>> <column name="datapath_type"> > >>> Name of datapath provider. The kernel datapath has > >>> @@ -947,34 +1032,6 @@ > >>> </column> > >>> </group> > >>> > >>> - <group title="Bridge Status"> > >>> - <p> > >>> - Status information about bridges. > >>> - </p> > >>> - <column name="status"> > >>> - Key-value pairs that report bridge status. > >>> - </column> > >>> - <column name="status" key="stp_bridge_id"> > >>> - <p> > >>> - The bridge-id (in hex) used in spanning tree advertisements. > >>> - Configuring the bridge-id is described in the > >>> - <code>stp-system-id</code> and <code>stp-priority</code> keys > >>> - of the <code>other_config</code> section earlier. > >>> - </p> > >>> - </column> > >>> - <column name="status" key="stp_designated_root"> > >>> - <p> > >>> - The designated root (in hex) for this spanning tree. > >>> - </p> > >>> - </column> > >>> - <column name="status" key="stp_root_path_cost"> > >>> - <p> > >>> - The path cost of reaching the designated bridge. A lower > >>> - number is better. > >>> - </p> > >>> - </column> > >>> - </group> > >>> - > >>> <group title="Common Columns"> > >>> The overall purpose of these columns is described under <code>Common > >>> Columns</code> at the beginning of this document. > >>> @@ -1314,105 +1371,192 @@ > >>> </column> > >>> </group> > >>> > >>> - <group title="Spanning Tree Configuration"> > >>> - <column name="other_config" key="stp-enable" > >>> - type='{"type": "boolean"}'> > >>> - If spanning tree is enabled on the bridge, member ports are > >>> - enabled by default (with the exception of bond, internal, and > >>> - mirror ports which do not work with STP). If this column's > >>> - value is <code>false</code> spanning tree is disabled on the > >>> - port. > >>> - </column> > >>> + <group title="Spanning Tree Protocol"> > >>> + <p> > >>> + The configuration here is only meaningful, and the status is only > >>> + populated, when 802.1D-1998 Spanning Tree Protocol is enabled on > >>> the > >>> + port's <ref column="Bridge"/> with its <ref column="stp_enable"/> > >>> + column. > >>> + </p> > >>> > >>> - <column name="other_config" key="stp-port-num" > >>> - type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 255}'> > >>> - The port number used for the lower 8 bits of the port-id. By > >>> - default, the numbers will be assigned automatically. If any > >>> - port's number is manually configured on a bridge, then they > >>> - must all be. > >>> - </column> > >>> + <group title="STP Configuration"> > >>> + <column name="other_config" key="stp-enable" > >>> + type='{"type": "boolean"}'> > >>> + When STP is enabled on a bridge, it is enabled by default on > >>> all of > >>> + the bridge's ports except bond, internal, and mirror ports > >>> (which do > >>> + not work with STP). If this column's value is > >>> <code>false</code>, > >>> + STP is disabled on the port. > >>> + </column> > >>> > >>> - <column name="other_config" key="stp-port-priority" > >>> - type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 255}'> > >>> - The port's relative priority value for determining the root > >>> - port (the upper 8 bits of the port-id). A port with a lower > >>> - port-id will be chosen as the root port. By default, the > >>> - priority is 0x80. > >>> - </column> > >>> + <column name="other_config" key="stp-port-num" > >>> + type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 255}'> > >>> + The port number used for the lower 8 bits of the port-id. By > >>> + default, the numbers will be assigned automatically. If any > >>> + port's number is manually configured on a bridge, then they > >>> + must all be. > >>> + </column> > >>> > >>> - <column name="other_config" key="stp-path-cost" > >>> - type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 65535}'> > >>> - Spanning tree path cost for the port. A lower number indicates > >>> - a faster link. By default, the cost is based on the maximum > >>> - speed of the link. > >>> - </column> > >>> + <column name="other_config" key="stp-port-priority" > >>> + type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 255}'> > >>> + The port's relative priority value for determining the root > >>> + port (the upper 8 bits of the port-id). A port with a lower > >>> + port-id will be chosen as the root port. By default, the > >>> + priority is 0x80. > >>> + </column> > >>> + > >>> + <column name="other_config" key="stp-path-cost" > >>> + type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 65535}'> > >>> + Spanning tree path cost for the port. A lower number indicates > >>> + a faster link. By default, the cost is based on the maximum > >>> + speed of the link. > >>> + </column> > >>> + </group> > >>> + > >>> + <group title="STP Status"> > >>> + <column name="status" key="stp_port_id"> > >>> + The port ID used in spanning tree advertisements for this > >>> port, as 4 > >>> + hex digits. Configuring the port ID is described in the > >>> + <code>stp-port-num</code> and <code>stp-port-priority</code> > >>> keys of > >>> + the <code>other_config</code> section earlier. > >>> + </column> > >>> + <column name="status" key="stp_state" > >>> + type='{"type": "string", "enum": ["set", > >>> + ["disabled", "listening", "learning", > >>> + "forwarding", "blocking"]]}'> > >>> + STP state of the port. > >>> + </column> > >>> + <column name="status" key="stp_sec_in_state" > >>> + type='{"type": "integer", "minInteger": 0}'> > >>> + The amount of time this port has been in the current STP > >>> state, in > >>> + seconds. > >>> + </column> > >>> + <column name="status" key="stp_role" > >>> + type='{"type": "string", "enum": ["set", > >>> + ["root", "designated", "alternate"]]}'> > >>> + STP role of the port. > >>> + </column> > >>> + </group> > >>> </group> > >>> > >>> - <group title="Rapid Spanning Tree Configuration"> > >>> - <column name="other_config" key="rstp-enable" > >>> - type='{"type": "boolean"}'> > >>> - If rapid spanning tree is enabled on the bridge, member ports are > >>> - enabled by default (with the exception of bond, internal, and > >>> - mirror ports which do not work with RSTP). If this column's > >>> - value is <code>false</code> rapid spanning tree is disabled on > >>> the > >>> - port. > >>> - </column> > >>> + <group title="Rapid Spanning Tree Protocol"> > >>> + <p> > >>> + The configuration here is only meaningful, and the status and > >>> + statistics are only populated, when 802.1D-1998 Spanning Tree > >>> Protocol > >>> + is enabled on the port's <ref column="Bridge"/> with its <ref > >>> + column="stp_enable"/> column. > >>> + </p> > >>> > >>> - <column name="other_config" key="rstp-port-priority" > >>> - type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 240}'> > >>> - The port's relative priority value for determining the root > >>> - port, in multiples of 16. By default, the port priority is 0x80 > >>> - (128). Any value in the lower 4 bits is rounded off. The > >>> significant > >>> - upper 4 bits become the upper 4 bits of the port-id. A port > >>> with the > >>> - lowest port-id is elected as the root. > >>> - </column> > >>> + <group title="RSTP Configuration"> > >>> + <column name="other_config" key="rstp-enable" > >>> + type='{"type": "boolean"}'> > >>> + When RSTP is enabled on a bridge, it is enabled by default on > >>> all of > >>> + the bridge's ports except bond, internal, and mirror ports > >>> (which do > >>> + not work with RSTP). If this column's value is > >>> <code>false</code>, > >>> + RSTP is disabled on the port. > >>> + </column> > >>> > >>> - <column name="other_config" key="rstp-port-num" > >>> - type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 4095}'> > >>> - The local RSTP port number, used as the lower 12 bits of the > >>> port-id. > >>> - By default the port numbers are assigned automatically, and > >>> typically > >>> - may not correspond to the OpenFlow port numbers. A port with the > >>> - lowest port-id is elected as the root. > >>> - </column> > >>> + <column name="other_config" key="rstp-port-priority" > >>> + type='{"type": "integer", "minInteger": 0, "maxInteger": > >>> 240}'> > >>> + The port's relative priority value for determining the root > >>> port, in > >>> + multiples of 16. By default, the port priority is 0x80 (128). > >>> Any > >>> + value in the lower 4 bits is rounded off. The significant > >>> upper 4 > >>> + bits become the upper 4 bits of the port-id. A port with the > >>> lowest > >>> + port-id is elected as the root. > >>> + </column> > >>> > >>> - <column name="other_config" key="rstp-port-path-cost" > >>> - type='{"type": "integer"}'> > >>> - The port path cost. The Port's contribution, when it is > >>> - the Root Port, to the Root Path Cost for the Bridge. By default > >>> the > >>> - cost is automatically calculated from the port's speed. > >>> - </column> > >>> + <column name="other_config" key="rstp-port-num" > >>> + type='{"type": "integer", "minInteger": 1, "maxInteger": > >>> 4095}'> > >>> + The local RSTP port number, used as the lower 12 bits of the > >>> port-id. > >>> + By default the port numbers are assigned automatically, and > >>> typically > >>> + may not correspond to the OpenFlow port numbers. A port with > >>> the > >>> + lowest port-id is elected as the root. > >>> + </column> > >>> > >>> - <column name="other_config" key="rstp-port-admin-edge" > >>> - type='{"type": "boolean"}'> > >>> - The admin edge port parameter for the Port. Default is > >>> - <code>false</code>. > >>> - </column> > >>> + <column name="other_config" key="rstp-port-path-cost" > >>> + type='{"type": "integer"}'> > >>> + The port path cost. The Port's contribution, when it is > >>> + the Root Port, to the Root Path Cost for the Bridge. By > >>> default the > >>> + cost is automatically calculated from the port's speed. > >>> + </column> > >>> > >>> - <column name="other_config" key="rstp-port-auto-edge" > >>> - type='{"type": "boolean"}'> > >>> - The auto edge port parameter for the Port. Default is > >>> - <code>true</code>. > >>> - </column> > >>> + <column name="other_config" key="rstp-port-admin-edge" > >>> + type='{"type": "boolean"}'> > >>> + The admin edge port parameter for the Port. Default is > >>> + <code>false</code>. > >>> + </column> > >>> > >>> - <column name="other_config" key="rstp-port-mcheck" > >>> - type='{"type": "boolean"}'> > >>> - <p> > >>> - The mcheck port parameter for the Port. Default is > >>> - <code>false</code>. May be set to force the Port Protocol > >>> - Migration state machine to transmit RST BPDUs for a > >>> - MigrateTime period, to test whether all STP Bridges on the > >>> - attached LAN have been removed and the Port can continue to > >>> - transmit RSTP BPDUs. Setting mcheck has no effect if the > >>> - Bridge is operating in STP Compatibility mode. > >>> - </p> > >>> - <p> > >>> - Changing the value from <code>true</code> to > >>> - <code>false</code> has no effect, but needs to be done if > >>> - this behavior is to be triggered again by subsequently > >>> - changing the value from <code>false</code> to > >>> + <column name="other_config" key="rstp-port-auto-edge" > >>> + type='{"type": "boolean"}'> > >>> + The auto edge port parameter for the Port. Default is > >>> <code>true</code>. > >>> - </p> > >>> - </column> > >>> + </column> > >>> + > >>> + <column name="other_config" key="rstp-port-mcheck" > >>> + type='{"type": "boolean"}'> > >>> + <p> > >>> + The mcheck port parameter for the Port. Default is > >>> + <code>false</code>. May be set to force the Port Protocol > >>> + Migration state machine to transmit RST BPDUs for a > >>> + MigrateTime period, to test whether all STP Bridges on the > >>> + attached LAN have been removed and the Port can continue to > >>> + transmit RSTP BPDUs. Setting mcheck has no effect if the > >>> + Bridge is operating in STP Compatibility mode. > >>> + </p> > >>> + <p> > >>> + Changing the value from <code>true</code> to > >>> + <code>false</code> has no effect, but needs to be done if > >>> + this behavior is to be triggered again by subsequently > >>> + changing the value from <code>false</code> to > >>> + <code>true</code>. > >>> + </p> > >>> + </column> > >>> + </group> > >>> + > >>> + <group title="RSTP Status"> > >>> + <column name="rstp_status" key="rstp_port_id"> > >>> + The port ID used in spanning tree advertisements for this > >>> port, as 4 > >>> + hex digits. Configuring the port ID is described in the > >>> + <code>rstp-port-num</code> and <code>rstp-port-priority</code> > >>> keys > >>> + of the <code>other_config</code> section earlier. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_port_role" > >>> + type='{"type": "string", "enum": ["set", > >>> + ["Root", "Designated", "Alternate", "Backup", > >>> "Disabled"]]}'> > >>> + RSTP role of the port. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_port_state" > >>> + type='{"type": "string", "enum": ["set", > >>> + ["Disabled", "Learning", "Forwarding", > >>> "Discarding"]]}'> > >>> + RSTP state of the port. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_designated_bridge_id"> > >>> + The port's RSTP designated bridge ID, in the same form as <ref > >>> + column="rstp_status" key="rstp_bridge_id"/> in the <ref > >>> + table="Bridge"/> table. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_designated_port_id"> > >>> + The port's RSTP designated port ID, as 4 hex digits. > >>> + </column> > >>> + <column name="rstp_status" key="rstp_designated_path_cost" > >>> + type='{"type": "integer"}'> > >>> + The port's RSTP designated path cost. Lower is better. > >>> + </column> > >>> + </group> > >>> + > >>> + <group title="RSTP Statistics"> > >>> + <column name="rstp_statistics" key="rstp_tx_count"> > >>> + Number of RSTP BPDUs transmitted through this port. > >>> + </column> > >>> + <column name="rstp_statistics" key="rstp_rx_count"> > >>> + Number of valid RSTP BPDUs received by this port. > >>> + </column> > >>> + <column name="rstp_statistics" key="rstp_error_count"> > >>> + Number of invalid RSTP BPDUs received by this port. > >>> + </column> > >>> + <column name="rstp_statistics" key="rstp_uptime"> > >>> + The duration covered by the other RSTP statistics, in seconds. > >>> + </column> > >>> + </group> > >>> </group> > >>> > >>> <group title="Multicast Snooping"> > >>> @@ -1458,51 +1602,9 @@ > >>> </column> > >>> </group> > >>> > >>> - <group title="Port Status"> > >>> - <p> > >>> - Status information about ports attached to bridges. > >>> - </p> > >>> - <column name="status"> > >>> - Key-value pairs that report port status. > >>> - </column> > >>> - <column name="status" key="stp_port_id"> > >>> - <p> > >>> - The port-id (in hex) used in spanning tree advertisements for > >>> - this port. Configuring the port-id is described in the > >>> - <code>stp-port-num</code> and <code>stp-port-priority</code> > >>> - keys of the <code>other_config</code> section earlier. > >>> - </p> > >>> - </column> > >>> - <column name="status" key="stp_state" > >>> - type='{"type": "string", "enum": ["set", > >>> - ["disabled", "listening", "learning", > >>> - "forwarding", "blocking"]]}'> > >>> - <p> > >>> - STP state of the port. > >>> - </p> > >>> - </column> > >>> - <column name="status" key="stp_sec_in_state" > >>> - type='{"type": "integer", "minInteger": 0}'> > >>> - <p> > >>> - The amount of time (in seconds) port has been in the current > >>> - STP state. > >>> - </p> > >>> - </column> > >>> - <column name="status" key="stp_role" > >>> - type='{"type": "string", "enum": ["set", > >>> - ["root", "designated", "alternate"]]}'> > >>> - <p> > >>> - STP role of the port. > >>> - </p> > >>> - </column> > >>> - > >>> - <column name="status" key="bond_active_slave"> > >>> - <p> > >>> - For a bonded port, record the mac address of the current > >>> active slave. > >>> - </p> > >>> - </column> > >>> - > >>> - </group> > >>> + <column name="bond_active_slave"> > >>> + For a bonded port, record the mac address of the current active > >>> slave. > >>> + </column> > >>> > >>> <group title="Port Statistics"> > >>> <p> > >>> -- > >>> 2.1.3 > >>> > >>> _______________________________________________ > >>> dev mailing list > >>> dev@openvswitch.org > >>> http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev