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 deviceHdl

The 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 mstiHdlList

The 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 $stpDeviceHandle

The following example stops the STP router on the specified port:

emulation stp control mode=stop handle $stpDeviceHandle -type msti

Sample 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