STP Functions¶
emulation stp config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Creates, modifies, or removes the STP emulation bridge on the specified port(s). Spanning Tree Protocol (STP) is used to prevent loops that occur in redundant network configurations. It provides fault tolerance by allowing redundant paths, but assures a single active path to any destination by blocking all except the current best path to a destination.
All STPparticipating switches gather information about other switches in the network by exchanging bridge protocol data unit (BPDU) data messages. This message exchange supports the following modes:
- Election of a Root Switch for the STP network topology
- Election of a Designated Switch for each switched LAN segment
- Elimination of network loops by placing redundant switch ports in Blocking
- Spanning Tree Algorithm (STA)
Spirent HLTAPI supports the following types of STP:
- STP (IEEE 802.1D, 1998 edition)
- Rapid Spanning Tree Protocol (RSTP) (IEEE 802.1W)
- PerVLAN Spanning Tree Plus (PVST+) (per port, using 802.1Q trunking)
- Rapid PerVLAN Spanning Tree Plus (RPVST+)
- Multiple STP (MSTP) (IEEE 802.1S)
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation stp config
mode= {create|modify|delete|enable|disable} M
port_handle= <port_handle>
handle= <STP_device_handle>
stp_type= {stp|rstp|pvst|rpvst|mstp}
port_type= {trunk| access}
bridge_priority= <0-65535>
count= <integer>
encap= {ethernet_ii|ethernet_ii_vlan|ethernet_ii_qinq}
enable_pt2pt_link= {true|false}
enable_mac_addr_reduction= {true|false}
ether_type= <string>
event_log_level= { convergence_events|debug }
forward_delay= <4-30>
hello_time= <1-10>
hold_count= <1-30>
gateway_ip_addr= <a.b.c.d>
gateway_ip_addr_step= <a.b.c.d>
gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
ip_version= {ipv4 | ipv6 | }
local_ip_addr= <a.b.c.d>
local_ip_addr_step= <a.b.c.d>
local_ip_prefix_len= <0-32>
local_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
local_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
local_ipv6_prefix_len= <0-128>
mac_addr= <aa:bb:cc:dd:ee:ff>
mac_addr_step= <aa:bb:cc:dd:ee:ff>
msg_age= <1-39>
max_age_time= <6-40>
native_vlan= <1-4094>
port_priority= <0-255>
port_number= <1-255>
remaining_hops= <1-255>
root_bridge_type= {custom| self}
root_priority= <0-65535>
root_mac_address= <aa:bb:cc:dd:ee:ff>
root_path_cost= <0-200000000>
region_root_bridge_type= {custom| self}
region_root_priority= <0-65535>
region_root_mac_address= <aa:bb:cc:dd:ee:ff>
region_root_path_cost= <0-200000000>
qinq_incr_mode= {inner | outer | both}
vlan_start= <0-4095>
vlan_count= <integer>
vlan_priority= <0-7>
vlan_id= <0-4095>
vlan_id_mode= {increment|fixed}
vlan_id_step= <0-4095>
vlan_id_count= <1-4096>
vlan_user_priority= <1-7>
vlan_cfi= {0|1}
vlan_id_outer= <0-4095>
vlan_id_outer_mode= {increment|fixed}
vlan_id_outer_step= <0-4095>
vlan_id_outer_count= <1-4096>
vlan_outer_user_priority= <1-7>
vlan_outer_cfi= <0|1>
Arguments:
port_handle
Specifies the port on which to create the STP emulation bridge.
This argument is `Mandatory` for create mode.
handle
Specifies a STP handle returned from this procedure. Required for
modify, delete, enable, or disable modes.
mode
Specifies the action to perform on the specified port. This is a
`Mandatory` argument. Possible values are create, modify, delete,
disable, and enable. The modes are described below::
create - Creates one or more emulated STP devices on the
port specified by the port_handle argument.
modify - Changes the configurations for the STP device
identified by the handle argument.
delete - Deletes the STP device identified by the handle
argument.
disable - Disables the configurations for the STP device
identified by the handle argument.
enable - Enables the configurations for the STP device
identified by the handle argument.
bridge_priority
Specifies the priority for the emulated STP bridge. A low value
indicates a high bridge priority. The value must be a multiple
of 4096. Possible values range from 0 to 65535. The default
value is 32768.
bridge_mac_address
Specifies the MAC address of the emulated STP bridge. The value
is the second component of the bridge ID. The default value is
00:00:10:00:10:00.
count
Number of STP devices to create. The default value is 1.
enable_pt2pt_link
Enables or disables pointto-point link. Possible values are
true (enable) and false (disable). The default value is false.
This argument can be configured only when stp_type is set to
rstp. For type STP, the pointto-point link is always disabled;
for types PVST, RPVST and MSTP, the pointto-point link is
always enabled.
enable_mac_addr_reduction
Enables or disables MAC address reduction. MAC address reduction
results in a unique MAC address by deriving the last 3 bytes of
the address from the VLAN ID. This argument is only used with
types PVST and RPVST. Possible values are true and false. The
default value is false.
encap
Specifies the Layer 2 framing mode for encapsulated devices.
Possible values are described below::
ethernet_ii - Ethernet II.
ethernet_ii_vlan - Ethernet II with a single VLAN tag.
ethernet_ii_qinq - Ethernet II with two VLAN tags.
The default value is ethernet_ii.
ether_type
Specifies the Ethernet type used by PVST/RPVST. This argument is
available when port_type is set to trunk. The default value is
8100.
gateway_ip_addr
Configures the starting IPv4 gateway address of the emulated STP
devices. The value must be in IPv4 format. You must specify
ip_version to ipv4.
gateway_ip_addr_step
Defines the increment used to generate IPv4 gateway addresses.
The value must be in IPv4 format. The default value is 0.0.0.0.
You must specify ip_version to ipv4.
gateway_ipv6_addr
Configures the starting IPv6 gateway address of the emulated STP
devices. The value must be in IPv6 format. You must specify
ip_version to ipv6.
gateway_ipv6_addr_step
Defines the increment used to generate IPv6 gateway addresses.
The value must be in IPv6 format. The default value is ::. You
must specify ip_version to ipv6.
ip_version
Defines the IP version of the STP emulated device. Possible
values are ipv4, ipv6 and . The default value is ipv4.
local_ip_addr
Defines the starting IPv4 address of the emulated STP devices.
The value must be in IPv4 format. You must specify ip_version to
ipv4.
local_ip_addr_step
Defines the increment used to generate IPv4 addresses. The value
must be in IPv4 format. The default value is 0.0.0.1. You must
specify ip_version to ipv4.
local_ip_prefix_len
Specifies the IPv4 prefix length for the emulated STP devices.
Possible values range from 0 to 32. The default value is 24. You
must specify ip_version to ipv4.
local_ipv6_addr
Defines the starting IPv6 address of the emulated STP devices.
The value must be in IPv6 format. You must specify ip_version to
ipv6.
local_ipv6_addr_step
Defines the increment used to generate IPv6 addresses. The value
must be in IPv6 format. The default is ::1. You must specify
ip_version to ipv6.
local_ipv6_prefix_len
Specifies the IPv6 prefix length for the emulated STP devices.
Possible values range from 0 to 128. The default value is 64. You
must specify ip_version to ipv6.
mac_addr
Specifies the starting value for MAC addresses. The value
must be in MAC format.
mac_addr_step
Specifies the step value applied to the base MAC address. The
value must be in MAC format. The default value is
00.00.00.00.00.01.
native_vlan
Specifies the native VLAN number. Possible values range from 1
to 4094. The default value is 1. This argument is available when
stp_type is set to pvst, rpvst or mstp.
port_type
Specifies the port type when stp_type is set to pvst or rpvst.
Possible values are trunk and access.
trunk: Indicates a Common or Mono Spanning Tree region.
access: Runs a single instance
qinq_incr_mode
Specifies the increment mode for ethernet_ii_qinq encapsulation.
This parameter only applies to Qin-Q Ethernet interfaces.
Possible values are inner, outer and both. The default is
inner. The modes are described below::
inner - The inner VLAN ID is incremented first until the specified
number of inner VLANs is exhausted, then the outer
VLAN ID is incremented. This continues in a roundrobin
fashion until the number of sessions is exhausted.
outer - The outer VLAN ID is incremented first until the specified
number of outer VLANs is exhausted, and then the inner
VLAN ID is incremented. This continues in a roundrobin
fashion until the number of sessions is exhausted.
both - The inner VLAN ID and outer VLAN ID increment at the
same time. This continues in a roundrobin fashion
until the number of sessions is exhausted.
stp_type
Specifies the protocol type for the spanning tree algorithm.
Possible values are stp, rstp, pvst,rpvst and mstp. The default
value is stp. The types are described below::
stp - Spanning Tree Protocol (IEEE 802.1D). Supports bridge
domains and enables the bridge to construct a loopfree
topology across an extended LAN.
rstp - Rapid Spanning Tree Protocol (IEEE 802.1W). An
evolution of the 802.1D standard.
pvst - PerVLAN Spanning Tree Plus. Uses 802.1Q trunking
technology to provide PVST functionality. It maintains
a spanning tree instance for each VLAN configured on
the network. When you specify this mode, you must also
specify port_type to access or trunk. (This is a Cisco
proprietary protocol.)
rpvst - Rapid PerVLAN Spanning Tree Plus. Runs an instance
of RSTP for each VLAN configured on the network.
When you specify this mode, you must also specify
port_type to access or trunk. (This is a Cisco
proprietary protocol.)
mstp - Multiple Spanning Tree Protocol (IEEE 802.1S). Industry
standard, perVLAN MSTP. It configures a separate
spanning tree for each VLAN and blocks the links that
are redundant within each spanning tree. MSTP allows
formation of MST regions that can run multiple MST
instances (MSTI). When you specify this type, you must
also configure one or more MSTP region(s) with mode
create using the emulation mstp region config
function. You can also modify the default MSTIs with
emulation msti config.
port_priority
Specifies the priority for the port on the emulated STP bridge.
The value is the first component of the port ID. It must be a
multiple of 16. Possible values range from 0 to 255. The default
value is 128.
port_number
Specifies the port number of the emulated STP bridge. The value
is the second component of the port ID. Possible values range
from 1 to 255. The default value is 1.
msg_age
Specifies the age of the message in seconds. Possible values
range from 1 to 39. The default value is 1. This argument is
available when root_bridge_type is set to custom.
max_age_time
Specifies the timeout value used to discard STP messages.
Possible values range from 6 to 40. The default value is 20.
hello_time
Specifies the time interval between the generations of
configuration BPDUs by the root bridge. Possible values range
from 1 to 10. The default value is 2.
forward_delay
Specifies the time that the bridge remains in listening and
learning states before entering the forwarding state. Possible
values range from 4 to 30. The default value is 15.
hold_count
Specifies the maximum number of BPDUs transmitted per second.
Possible values range from 1 to 30. The default value is 3.
root_bridge_type
Identifies the root bridge type. Possible values are self and
custom. If you specify self, current bridge is the root bridge.
If you specify custom, you can identify a different bridge as
the root bridge.
root_priority
Specifies the priority for the root bridge. It must be a
multiple of 4096. Possible values range from 0 to 65535. The
default value is 32768. This argument is available when
root_bridge_type is set to custom.
root_mac_address
Specifies the MAC address of the root bridge. The value must be
in MAC format. The default value is 00:00:10:00:10:00. This
argument is available when root_bridge_type is set to custom.
root_path_cost
Specifies the cost to reach the root bridge. Possible values
range from 0 to 200000000. The default value is 0. This argument
is available when root_bridge_type is set to custom.
event_log_level
Specifies the event log level. Possible values are
convergence_events and debug. The default value is debug.
region_root_bridge_type
Identifies the initial regional root bridge type for the current
Internal Spanning Tree (IST). Possible values are self and
custom. If you specify self, the current bridge is the regional
root bridge. If you specify custom, you can identify a different
bridge as the regional root bridge. This argument is available
when stp_type is set to mstp and region_root_bridge_type is set
to custom.
region_root_priority
Defines the bridge priority of the regional root bridge for the
current IST. The root priority value is used to determine which
bridge is elected as root, and it must be a multiple of 4096.
Possible values range from 0 to 65535. The default value is
32768. This argument is available when stp_type is set to mstp
and region_root_bridge_type is set to custom.
region_root_mac_address
Configures the MAC address of the regional root bridge for the
current IST. The value must in MAC format. The default value is
00:00:10:00:10:00. This argument is available when stp_type is
set to mstp and region_root_bridge_type is set to custom.
region_root_path_cost
Specifies the cost to reach the regional root bridge for the
current IST. This value is used by the DUT to determine which
port is the primary path to the root bridge. Possible values
range from 0 to 200000000. The default value is 0. This argument
is available when stp_type is set to mstp and
region_root_bridge_type is set to custom.
remaining_hops
Specifies the MSTP remaining hops for current IST. Possible
values range from 1 to 255. The default value is 16. This
argument is available when stp_type is set to mstp.
vlan_start
Specifies the starting VLAN ID. Possible values range from 0 to
4095. The default value is 100. This argument is available when
stp_type stp_type is set to pvst or rpvst and port_type is set
to trunk.
vlan_count
Specifies the Number of VLANs. The default value is 1. This
argument is available when stp_type stp_type is set to pvst or
rpvst and port_type is set to trunk.
vlan_priority
Specifies the VLAN priority. Possible values range from 0 to 7.
The default value is 1. This argument is available when
stp_type is set to pvst or rpvst and port_type is set to trunk.
vlan_id
Specifies the starting VLAN ID for the encapsulation of
ethernet_ii_vlan, or the starting inner VLAN ID for the
ethernet_ii_qinq encapsulation. Possible values range from
0 to 4095. The default value is 100.
vlan_id_mode
Specifies how Spirent HLTAPI will assign VLAN IDs.
Possible values are increment and fixed. The modes are
described below::
increment - For all STP devices, the VLAN ID increments by the
step value specified by vlan_id_step.
fixed - The VLAN ID remains the same for all STP devices.
The default value is increment.
vlan_id_step
Specifies the value that Spirent HLTAPI uses to increment the
VLAN ID. Possible values range from 1 to 4095. The default value
is 1.
vlan_id_count
Specifies the number of VLAN IDs to use when generating
STP devices. Possible values range from 1 to 4096.
The default value is 1.
vlan_user_priority
Specifies the VLAN priority for the VLANs on the specified port.
Possible values range from 0 to 7. The default value is 0.
vlan_cfi
Sets the canonical format indicator (CFI) field in VLAN for
the emulated router node. Possible values are 0 (Ethernet)
and 1 (Token Ring). If it is set to 0, it indicates the
network is Ethernet. If it is set to 1, it indicates that
Token Ring and packets are dropped by Ethernet ports.
The default value is 0.
vlan_id_outer
Specifies the starting outer VLAN ID for the
ethernet_ii_qinq encapsulation. Possible values
range from 0 to 4095. The default value is 100.
Note: This parameter only applies to Ethernet Qin-Q interfaces.
vlan_id_outer_mode
Specifies how Spirent HLTAPI will assign outer VLAN IDs.
Possible values are increment and fixed. The modes are
described below::
increment - For all STP devices, the VLAN ID increments by the
step value specified by vlan_id_outer_step.
fixed - The VLAN ID remains the same for all STP devices.
The default value is increment.
vlan_id_outer_step
Specifies the value by which to increment the outer VLAN ID
(vlan_id_outer) for subsequent packets. Possible values
range from 1 to 4095. The default value is 1.
vlan_id_outer_count
Specifies the number of outer VLAN IDs to use when
generating STP devices. Possible values range from
1 to 4096. The default is 1.
vlan_outer_user_priority
Specifies the VLAN priority to assign to the outer VLAN header.
Possible values range from 1 to 7. The default is 7.
vlan_outer_cfi
Sets the CFI field in the outer VLAN tag for the emulated router
node. Possible values are 0 (Ethernet) and 1 (Token Ring). If it
is set to 0, it indicates the network is Ethernet. If it is set
to 1, it indicates that Token Ring and packets are dropped by
Ethernet ports. The default value is 0.
Arguments Unsupported by Save as HLTAPI:
The following Spirent HLTAPI arguments are currently not supported by the Save as
HLTAPI function::
qinq_incr_mode
vlan_id_count
vlan_id_mode
vlan_id_outer_count
vlan_id_outer_mode
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
handles A list of handles that identify the STP devices created by the ``emulation stp config`` function. status Success (1) or failure (0) of the operation. log An error message (if the operation failed).
- Description:
The
emulation stp config
function creates, modifies, deletes, disables, and enables one or more emulated STP devices/topologies on the specified port. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)When you create a STP device, use the port_handle argument to specify the Spirent HLTAPI port that the emulated device will use for STP communication. (The port handle value is contained in the keyed list returned by the
connect
function.)If the performed action fails, Spirent HLTAPI returns an error message. For example, if the user tries to configure a nonexisting session handle under modify mode, an error message will be returned.
Examples:
The following example creates a new STP device:
# A port with handle hltHostPor must already exist. set status [emulation stp config modecreate= port_handle= $hltHostPort stp_type= stp bridge_priority= 4096 mac_address= 00:00:10:00:00:00 port_priority= 16 port_number= 2 root_bridge_type= custom root_priority= 4096 root_mac_address= 00:00:00:00:00:01 root_path_cost= 50] keylget returnedString handle deviceHdlThe following example modifies the created STP device:
set returnKlist [::emulation stp config handle=$deviceHdl bridge_priority= 8192 mode= modify]The following example deletes the created STP device:
set returnKlist [::emulation stp config handle=$deviceHdl mode= delete]
emulation mstp region config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Creates, modifies, deletes the MSTP region configurations, and creates the default MSTI. This function only works when STP type is MSTP.
The Multiple Spanning Tree Protocol (MSTP), originally defined in IEEE 802.1s and later merged into IEEE 802.1Q-2005, defines an extension to RSTP to further develop the usefulness of virtual LANs (VLANs). This PerVLAN Multiple Spanning Tree Protocol configures a separate Spanning Tree for each VLAN group and blocks all but one of the possible alternate paths within each Spanning Tree.
If there is only one Virtual LAN (VLAN) in the network, single (traditional) STP works appropriately. If the network contains more than one VLAN, the logical network configured by single STP would work, but it is possible to make better use of the alternate paths available by using an alternate spanning tree for different VLANs or groups of VLANs.
MSTP allows formation of MST regions that can run multiple MST instances (MSTI). Multiple regions and other STP bridges are interconnected using one single common spanning tree (CST).
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation mstp region config
mode= create|modify|delete} M
port_handle= <port_handle>
handle= <MSTP region handle>
mstp_region_name
mstp_version_num= <0-65535>
mstp_instance_count= <1-64>
mstp_instance_vlan_list= <list of numbers>
mstp_instance_num_list= <list of numbers>
Arguments:
mode
Specifies the action(s) to be taken. Possible values are create,
modify and delete. This argument is `Mandatory`. The modes are
described below::
create - Creates one MSTP region on the port specified
by the port_handle argument. You must specify the
port_handle argument. Note that a port can only belong to
one region.
modify - Changes the configuration for the MSTP region(s)
identified by the handle argument. You must specify the
handle argument.
delete - Removes the MSTP region(s) identified by the handle
argument. You must specify the handle argument.
port_handle
Specifies the port on which to create MSTP region(s). The value
can be a list of port handles. This parameter is `Mandatory` for
mode create.
handle
Specifies an MSTP region handle returned from this procedure.
This parameter is `Mandatory` for modes modify and delete.
mstp_region_name
Specifies the region name that the MSTP instance belongs to. The
name can include up to 32 alphanumeric characters.
mstp_version_num
Specifies the version number of the created MSTP region.
Possible values range from 0 to 65535. The default value is 1.
mstp_instance_count
Specifies the number of MST instances (MSTI) in the region.
Possible values range from 1 to 64. The default value is 1.
mstp_instance_vlan_list
Specifies an array of VLAN IDs corresponding to the instance
numbers. The default value is 1.
mstp_instance_num_list
Specifies an array of MSTI instance numbers. The default value
is 1.
Arguments Unsupported by Save as HLTAPI:
None
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
reg_handle An MSTP region configured by emulation mstp region config. msti_handle A list of handles of MSTIs configured by emulation mstp region config. status Success (1) or failure (0) of the operation. log An error message (if the operation failed).
- Description:
The emulation mstp region config creates, modifies, and deletes MSTP region(s) on the specified port. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)
Before using this function, you must specify stp_type to mstp.
After an MSTP region is configured, an MSTP region handle is created, which can be used to modify the parameters.
Examples:
The following example creates and configures a new MSTP region:
# A port with handle hltport1 must already exist. set status [emulation mstp region config mode=create port_handle= {$hltport1, $hltport2} mstp_region_name= reg1 mstp_version_num= 1 mstp_instance_count= 1 mstp_instance_vlan_list= {1,3} mstp_instance_num_list= 2] keylget RStatus reg_handle mstpRegionHdl keylget RStatus msti_handle mstiHdlListThe following example modifies an existing MSTP region:
set returnKlist [::emulation mstp region config handle=$ mstpRegionHdl mode= modify mstp_instance_count= 2 mstp_instance_vlan_list {12= 3-5}
emulation msti config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Modifies the default MSTIs that are created when the function emulation mstp region config is called.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation msti config
port_handle= <port_handle>
handle= <MSTI handle>
mstp_region_name
msti_instance_num
msti_bridge_priority= <0-65535>
msti_port_priority= <0-255>
msti_root_bridge_type= {custom| self}
msti_region_root_priority= <0-65535>
msti_region_root_mac_address= <aa:bb:cc:dd:ee:ff>
msti_region_root_path_cost= <0-200000000>
msti_remaining_hops= <1-255>
Arguments:
port_handle
Specifies the port on which to modify the MSTIs.
handle
Identifies the handle on which to modify the MSTI
configuration. If this parameter is called, there is no need to
use port_handle, -mstp_region_name and -msti_instance_num.
mstp_region_name
Identifies the region to modify MSTI instance configurations.
msti_instance_num
Specifies the number of MSTIs for which to modify
configurations. The default value is 1.
msti_bridge_priority
Specifies the priority of the bridge in the MSTI. It must be a
multiple of 4096. Possible values range from 0 to 65535. The
default value is 32768.
msti_port_priority
Specifies the priority of the port in the MSTI. It must
be a multiple of 16. Possible values range from 0 to 255. The
default value is 128.
msti_root_bridge_type
Specifies the type of the initial root bridge in the MSTI.
Possible values are::
self - Current bridge is the root bridge.
custom - Identify a different bridge as the root bridge.
The default value is self.
msti_region_root_priority
Specifies the bridge priority of the root bridge in the region
for this MSTI. It must be a multiple of 4096.
Possible values range from 0 to 65535. The default value is
32768. This argument is available when msti_root_bridge_type is
set to custom.
msti_region_root_mac_address
Specifies the MAC address of the MSTI. The default value is
00:00:10:00:10:00. This argument is available when
msti_root_bridge_type is set to custom.
msti_region_root_path_cost
Specifies the cost to reach the root bridge in the MSTI.
Possible values range from 0 to 200000000. The default value is
0. This argument is available when - msti_root_bridge_type set
to custom.
msti_remaining_hops
Specifies the remaining hops in the MSTI instance. Possible
values range from 1 to 255. The default value is 16. This
argument is available when msti_root_bridge_type set to custom.
Arguments Unsupported by Save as HLTAPI:
None
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
handles A list of handles that identify the MSTIs modified by the ``emulation msti config`` function. status Success (1) or failure (0) of the operation. log An error message (if the operation failed).
- Description:
The emulation msti config modifies the default MSTI(s) created in the MSTP regions on the specified port. You must specify one or more MSTP regions when you call this function.
To modify an existing MSTI, you can either specify the MSTI handle and MSTIrelated arguments, or specify -port_handle, -mstp_region_name, msti_instance_num and other related arguments (without specifying -handle).
Examples:
The following example modifies the default MSTI configuration:
# A port with handle hltport1 must already exist. emulation msti config port_handle= $hltport1 mstp_region_name= reg1 msti_instance_num= 1 msti_bridge_priority= 4096 msti_port_priority= 16
emulation stp control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Starts or stops the STP device on the specified port, or initializes a topology change.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation stp control
action= {start|stop|init_topo_change} M
port_handle= <port handle>
handle= <device handle>
type= {bridge_port|cist| msti}
Arguments:
action
Specifies the action(s) to be performed on the STP message.
This argument is `Mandatory`.
Possible values are::
start - Starts the configured STP device/topology on the specified
port.
stop - Stops the configured STP device/topology on the specified
port.
init_topo_change - Initiates the topology change and sends the
Topology Change Notification (TCN) BPDU. The Topology Change
Notification (TCN) provides a means to notify all bridges on
a network of a topology change, and then limit the network
down time associated with forwarding table updates.
port_handle
Identifies the port handle on which to perform the action.
handle
Identifies the STP device handle on which to perform the action.
type
The type of the emulated STP message for which to perform the
action. Possible values are bridge_port, cist and msti. The
default value is bridge_port.
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the operation. log An error message (if the operation failed).
- Description:
- The
emulation stp control
function starts or stops the emulated STP device/topology on the specified port. You can also use this function to initiate the topology change and send the TCN BPDU .
Examples:
The following example starts the STP device:
emulation stp control mode=start handle $stpDeviceHandleThe following example stops the STP router on the specified port:
emulation stp control mode=stop handle $stpDeviceHandle -type mstiSample Output:
{handle router1} {status 1}
emulation stp stats¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Retrieves information on results on the specified port or STP handle.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation stp stats
port_handle= <port handle>
handle= <STP device handle>
mode= {both|stp| msti}
Arguments:
port_handle
Specifies the port for which you want information.
handle
Identifies the STP device handle from which to retrieve
statistics. It is returned from the emulation stp config
function.
mode
Specifies the kind of information you want to see. Possible
values are::
stp - Returns STP statistics
msti - Returns MSTI statistics
both - Returns both
Note: MSTI statistics are only available when you specify the STP
type to mstp.
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
port_id Port ID bridge_id Bridge ID root_id Root bridge ID designated_bridge_id Designated bridge ID tx_bpdus Number of BPDUs transmitted rx_bpdus Number of BPDUs received tx_bpdu_flag Last transmitted BPDU flag value rx_bpdu_flag Last received BPDU flag value tx_tc_bit_set Number of topology change bit sets transmitted rx_tc_bit_set Number of topology change bit sets received tx_tc_ack Number of topology change acknowledgements transmitted rx_tc_ack Number of topology change acknowledgements received tx_proposals Number of BPDUs transmitted with proposal bit set (RSTP only) rx_proposals Number of BPDUs received with proposal bit set (RSTP only) tx_tc_agree Number of topology change agreements transmitted rx_tc_agree Number of topology change agreements received tx_port_role Transmit port role rx_port_role Receive port role tx_port_state Transmit port state rx_port_state Receive port state regional_root_id Regional root ID (MSTP only) tx_tcns Number of TCN messages transmitted rx_tcns Number of TCN messages received vlan_id STP bridge port starting VLAN ID instance_num Instance number of the MSTI (MSTP only)
- Description:
The
emulation stp stats
function provides information about both STP and MSTI (when STP type is MSTP)This function returns the requested data (STP or MSTI information or both) and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message. Function return values are formatted as a keyed list (supported by the Tcl extension software - TclX). Use the TclX function keylget to retrieve data from the keyed list. (See Return Values for a description of each key.)
Examples:
Sample Input:
::emulation stp stats mode=all handle= $stpDeviceHandle]Sample Output:
{stp {{host3 {{tx_tc_ack 0} {root_id 10-00-00-00-00-00-00-01} {regional_root_id 10-00-00-00-00-00-00-01} {tx_port_role {Designated Port}} {rx_tcns 0} {port_id 0x1002} {tx_tcns 0} {instance_num 0} {vlan_id NA} {rx_bpdu_flag 0x78} {rx_port_state Forwarding} {rx_bpdus 82} {tx_bpdu_flag 0x7e} {tx_port_state Forwarding} {designated_bridge_id 20-00-00-00-10-00-00-00} {rx_tc_bit_set 6} {bridge_id 20-00-00-00-10-00-00-00} {tx_bpdus 44} {rx_tc_agree 82} {tx_tc_bit_set 5} {rx_proposals 2} {tx_tc_agree 44} {tx_proposals 44} {rx_tc_ack 0} {rx_port_role {Root Port}}}} {host4 {{tx_tc_ack 0} {root_id 10-00-00-00-00-00-00-01} {regional_root_id 10-00-00-00-00-00-00-01} {tx_port_role {Root Port}} {rx_tcns 0} {port_id 0x4003} {tx_tcns 0} {instance_num 0} {vlan_id NA} {rx_bpdu_flag 0x7e} {rx_port_state Forwarding} {rx_bpdus 44} {tx_bpdu_flag 0x78} {tx_port_state Forwarding} {designated_bridge_id 20-00-00-00-10-00-00-00} {rx_tc_bit_set 5} {bridge_id 10-00-00-00-11-00-00-00} {tx_bpdus 82} {rx_tc_agree 44} {tx_tc_bit_set 6} {Designated Port}}}}}} {msti {{host3 {{bridgeportresults2 {{tx_tc_ack 0} {root_id NA} {regional_root_id 80-00-00-00-10-00-00-00} {tx_port_role {Designated Port}} {rx_tcns 0} {port_id 0x8002} {tx_tcns 0} {instance_num 2} {vlan_id NA} {rx_bpdu_flag 0x78} {rx_port_state Forwarding} {rx_bpdus 19} {tx_bpdu_flag 0x7e} {tx_port_state Forwarding} {designated_bridge_id 80-00-00-00-10-00-00-00} {rx_tc_bit_set 3} {bridge_id 80-00-00-00-10-00-00-00} {tx_bpdus 10} {rx_tc_agree 19} {tx_tc_bit_set 2} {rx_proposals 1} {tx_tc_agree 10} {tx_proposals 10} {rx_tc_ack 0} {rx_port_role {Root Port}}}} {bridgeportresults3 {{tx_tc_ack 0} {root_id NA} {regional_root_id 10-00-00-00-11-00-00-00} {tx_port_role {Root Port}} {rx_tcns 0} {port_id 0x8002} {tx_tcns 0} {instance_num 5} {vlan_id NA} {rx_bpdu_flag 0x7c} {rx_port_state Forwarding} {rx_bpdus 19} {tx_bpdu_flag 0x78} {tx_port_state Forwarding} 80-00-00-00-10-00-00-00} {tx_bpdus 10} {rx_tc_agree 19} {tx_tc_bit_set 2} {rx_proposals 1} {tx_tc_agree 10} {tx_proposals 0} {rx_tc_ack 0} {rx_port_role {Designated Port}}}}}} {host4 {{bridgeportresults5 {{tx_tc_ack 0} {root_id NA} {regional_root_id 80-00-00-00-10-00-00-00} {tx_port_role {Root Port}} {rx_tcns 0} {port_id 0x8003} {tx_tcns 0} {instance_num 2} {vlan_id NA} {rx_bpdu_flag 0x7e} Forwarding} {designated_bridge_id 80-00-00-00-10-00-00-00} {rx_tc_bit_set 2} {bridge_id 80-00-00-00-11-00-00-00} {tx_bpdus 19} {rx_tc_agree 10} {tx_tc_bit_set 3} {rx_proposals 10} {tx_tc_agree 19} {tx_proposals 1} {rx_tc_ack 0} {rx_port_role {Designated Port}}}} {bridgeportresults6 {{tx_tc_ack 0} {root_id NA} {regional_root_id 10-00-00-00-11-00-00-00} {tx_port_role {Designated Port}} {rx_tcns 0} {port_id 0x4003} {tx_tcns 0} {instance_num 5} {vlan_id NA} {rx_bpdu_flag 0x78} {rx_port_state Forwarding} {rx_bpdus 10} {tx_bpdu_flag 0x7c} {tx_port_state Forwarding} {designated_bridge_id 80-00-00-00-11-00-00-00} {rx_tc_bit_set 2} {bridge_id 80-00-00-00-11-00-00-00} {tx_bpdus 19} {rx_tc_agree 10} {tx_tc_bit_set 3} {rx_proposals 0} {tx_tc_agree 19} {tx_proposals 1} {rx_tc_ack 0} {rx_port_role {Root Port}}}}}}}} {status 1}End of Procedure Header