LACP Functions¶
sth::emulation_lacp_config¶
Purpose¶
Enables, modifies, or disables an emulated Link Aggregation Control Protocol (LACP) session on a Spirent HLTAPI port.
LACP uses multiple network cables/ports in parallel to increase the link speed beyond the limits of any one single cable or port, and to increase the redundancy for higher availability.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_lacp_config [-mode {enable|modify|disable} M] [-port_handle < port_handle> M] [-act_port_key <integer>] [-act_lacp_port_priority <integer>] [-act_port_number <integer>] [-act_lacp_timeout {long|short}] [-act_system_priority <integer>] [-act_system_id < aa:bb:cc:dd:ee:ff >] [-lacp_activity {passive|active}] [-local_mac_addr < aa:bb:cc:dd:ee:ff >]
Arguments¶
-
-mode
¶
Specifies the function to be performed on the test port. This argument is Mandatory . Possible values are enable, modify and disable. The modes are described below:
enable Enables LACP session on the test port. You must specify the -port_handle argument. modify Modifies the LACP session on the test port. You must specify the -port_handle argument. disable Disables the LACP session on the test port. You must specify the -port_handle argument.
-
-act_port_key
¶
Operational key value assigned to the actor port. Possible values range from 0 to 65535. The default value is 1. This actor port key is encoded as a 16-bit integer.
-
-act_lacp_port_priority
¶
Defines the priority assigned to this port (writable). Possible values range from 0 to 65535. The default value is 1. The actor port priority is encoded as a 16-bit integer.
-
-act_port_number
¶
Specifies the port number assigned to the port (writable). Possible values range from 0 to 65535. The default value is 1. The actor port number is encoded as a 16-bit integer.
-
-act_lacp_timeout
¶
Indicates the timeout value for this link. Possible values are described below:
long - Indicates the timeout value is 90 seconds. This is the default value. short - Indicates the timeout value is 3 seconds.
-
-act_system_priority
¶
Indicates the priority of the group. Possible values range from 0 to 65535. The default is 1. The priority of the system is encoded as a 16-bit integer.
-
-act_system_id
¶
Indicates the MAC address of the group. The default value is 00:00:00:00:00:01. The value of this argument must be in MAC address format.
-
-lacp_activity
¶
Specifies the activity control value for this link. Possible values are described below:
active - Indicates the Spirent HLTAPI will form an aggregate link, and initiate the negotiation. The link aggregate will be formed if the other end is running in LACP active or passive mode. passive - Indicates the Spirent HLTAPI will not initiate the channel, but does understand incoming LACP packets. The peer (in active state) initiates negotiation (by sending out an LACP packet) which we receive and reply to, eventually forming the aggregation channel with the peer.
-
-local_mac_addr
¶
Specifies the MAC address of the test port. The default value is 00:10:94:00:00:02. The value should be in MAC address format.
-
-port_handle
¶
Specifies the test port to be used. This argument is Mandatory .
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):
status
Success (1) or failure (0) of the operation.
log
An error message (if the operation failed).
Description¶
The sth::emulation_lacp_config
function enables, modifies, or disables a
LACP session on the specified test port. Use the -mode argument to specify
the action to perform. (See the -mode argument description for information
about the actions.)
When you enable a LACP session, use the -port_handle argument to specify the Spirent HLTAPI port that the emulated port will use for LACP communication.
Before you configure LACP on a port, you must create the port, and use the returned port handle in the call to the sth::emulation_lacp_config function.
Examples¶
#### HLTAPI for Tcl #### The following example enables LACP session on the port. There must already exist a port with the handle of port_handle1:
sth::emulation_lacp_config -port_handle port_handle1 \
-mode enable \
-local_mac_addr "00:94:01:00:00:01" \
-act_port_key 100 \
-act_lacp_port_priority 101 \
-act_port_number 10 \
-act_lacp_timeout short \
-lacp_activity active \
-act_system_priority 1000 \
-act_system_id "00:00:00:00:01:01"
Sample output for the example above:
# SUCCESS output
{status 1}
# FAILURE output
{status 0} {log XXX}
#### HLTAPI for Python #### The following example enables LACP session on the specified port:
device_ret0 = sth.emulation_lacp_config (
mode = 'enable',
port_handle = port_handle[0],
local_mac_addr = '00:94:01:00:00:01',
act_system_priority = '1000',
act_system_id = '00:00:00:00:01:01',
lacp_activity = 'active',
act_port_number = '10',
act_lacp_port_priority= '101',
act_port_key = '100',
act_lacp_timeout = 'short');
Sample Output:
{'status': '1'}
#### HLTAPI for Perl #### The following example enables LACP session on the specified port:
my %device_ret0 = sth::emulation_lacp_config (
mode => 'enable',
port_handle => "$hport[1]",
local_mac_addr => '00:94:01:00:00:01',
act_system_priority => '1000',
act_system_id => '00:00:00:00:01:01',
lacp_activity => 'active',
act_port_number => '10',
act_lacp_port_priority=> '101',
act_port_key => '100',
act_lacp_timeout => 'short');
- Sample Output::
- $VAR1 = ‘status’; $VAR2 = ‘1’;
End of Procedure Header
sth::emulation_lacp_control¶
Purpose¶
Starts or stops the LACP protocol on a port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_lacp_control [-action {start|stop} M] [-port_handle <port_handle_list> M]
Arguments¶
-
-action
¶
Specifies the action to be performed. This argument is mandatory. Possible values are described below:
start - Starts the LACP session on the specified port stop - Stops the LACP session on the specified port
-
-port_handle
¶
Specifies a list of ports on which LACP is enabled. This argument is Mandatory .
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 sth::emulation_lacp_control
function stops, or starts the
LACP session on the specified port.
When you call the sth::emulation_lacp_control
function, you
specify a port handle. Spirent HLTAPI applies the specified action to
the emulated LACP session on the specified port.
Examples¶
#### HLTAPI for Tcl ####
The following example starts an enabled LACP session on the specified port:
sth::emulation_lacp_control -port_handle port_handle1\
-action start
The following example stops an enabled LACP session on the specified port:
sth::emulation_lacp_control -port_handle port_handle1\
-action stop
- Sample Output::
- {status 1} success or {status 0} {log XXX} fail
#### HLTAPI for Python ####
The following example starts an enabled LACP session on the specified port:
ctrl_ret1 = sth.emulation_lacp_control (
port_handle = port_handle[0],
action = 'start');
Sample Output:
{'status': '1'}
#### HLTAPI for Perl ####
The following example starts an enabled LACP session on the specified port:
my %ctrl_ret1 = sth::emulation_lacp_control (
port_handle => "$hport[1]",
action => 'start');
- Sample Output::
- $VAR1 = ‘status’; $VAR2 = ‘1’;
End of Procedure Header
sth::emulation_lacp_info¶
Purpose¶
Gets or clears statistics about LACP session on the specified port. Statistics include the running status and number and type of PDU packets sent to and received from the specified port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_lacp_info [-action {collect|clear} M] [--port_handle <port_handle> M] [-mode {aggregate|state|stats }]
Arguments¶
-
-action
¶
Specifies the action to be executed. This argument is mandatory. Possible values are described below:
collect - Collects statistics from the specified port. clear - Clears the statistics on the specified port.
-
-port_handle
¶
Specifies the port on which the LACP session is enabled and from which statistics has to be obtained. This argument is Mandatory .
-
-mode
¶
Specifies the types of LACP session information to be retrieved. Possible values are described below:
aggregate - Aggregates information of state and stats. This is the default value. state - Indicates that the information to be retrieved is the state information of the LACP session. stats - Indicates that the information to be retrieved is the statistics of the LACP session.
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).
The statistics that will be returned are listed below:
actor_operational_key
Local operational key.
actor_port
Local port ID.
actor_systemid
Local system ID.
marker_response_pdus_rx
Number of received Marker Response PDU packets.
marker_pdus_rx
Number of received Marker PDU packets.
marker_response_pdus_tx
Number of sent Marker Response PDU packets.
marker_pdus_tx
Number of sent Marker PDU packets.
pdus_tx
Number of sent PDU packets.
pdus_rx
Number of received PDU packets.
partner_collector_max_delay
Max delay time value of collecting the Partner packets.
partner_operational_key
Partner's operational key.
partner_port
Partner port ID.
partner_port_priority
Partner port priority value.
partner_system_id
Partner system ID.
partner_system_priority
Partner system priority value.
Description¶
The sth::emulation_lacp_info
function provides information about
the configured LACP session.
This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0). 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¶
#### HLTAPI for Tcl ####
Sample Input:
# There must be an existing port on which there is an enabled LACP
set cmdReturn [sth::emulation_lacp_info -port_handle port_handle1\
-action collect\
-mode aggregate]
Sample Output:
# Sample SUCCESS output
{lacp_state UP} {partner_port 10} {actor_state 63}
{partner_system_priority 1000} {actor_systemid 00:00:00:00:01:01}
{partner_state 63} {actor_port 10} {actor_operational_key 500}
{partner_port_priority 101} {partner_operational_key 100}
{partner_system_id 00:00:00:00:01:01} {status 1}
#Sample FAILURE output
{status 0} {log XXX}
#### HLTAPI for Python ####
Sample Input:
# There must be an existing port on which there is an enabled LACP
results_ret1 = sth.emulation_lacp_info (
port_handle = port_handle[0],
mode = 'aggregate',
action = 'collect');
Sample Output:
{'status': '1', 'lacp_state': 'NO_STATE', 'partner_collector_max_delay': '0',
'partner_port_priority': '0', 'marker_response_pdus_rx': '0', 'pdus_tx': '0',
'pdus_rx': '0', 'marker_pdus_rx': '0', 'partner_state': '0',
'partner_system_priority': '0', 'actor_operational_key': '0', '
partner_port': '0', 'marker_pdus_tx': '0', 'actor_systemid': '00:00:00:00:00:00',
'partner_system_id': '00:00:00:00:00:00', 'partner_operational_key': '0',
'actor_port': '0', 'actor_state': '0', 'marker_response_pdus_tx': '0'}
#### HLTAPI for Perl ####
- Sample Input::
- # There must be an existing port on which there is an enabled LACP
- my %results_ret1 = sth::emulation_lacp_info (
- port_handle => “$hport[1]”, mode => ‘aggregate’, action => ‘collect’);
Sample Output:
$VAR1 = 'partner_state';
$VAR2 = '0';
$VAR3 = 'actor_state';
$VAR4 = '0';
$VAR5 = 'partner_system_id';
$VAR6 = '00:00:00:00:00:00';
$VAR7 = 'status';
$VAR8 = '1';
End of Procedure Header
sth::emulation_lag_config¶
Purpose¶
A Spirent Extension used to create, modify, enable, disable, or delete link aggregation group (LAG) port for LACP.
Spirent HLTAPI allows you to aggregate several physical ports into a LAG port. A LAG port is used much like a physical port. You can configure devices, protocols, and traffic on a LAG port as you would on a physical port. Traffic is sent and received across the ports in the LAG. Capture and traffic analysis is performed at the LAG level on a LAG port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_lag_config [-mode {create | enable | disable | modify | delete} M] [-port_handle <port_handle>] [-lag_handle <lag_handle>] [-protocol {none | lacp | bfd | lacp_bfd}] [-lacp_port_mac_addr <aa:bb:cc:dd:ee:ff>] [-lacp_port_mac_addr_step <aa:bb:cc:dd:ee:ff>] [-lacp_actor_key <0-65535>] [-lacp_actor_key_step <0-65535>] [-lacp_actor_port_priority <0-65535>] [-lacp_actor_port_priority_step <0-65535>] [-lacp_actor_port_number <0-65535>] [-lacp_actor_port_step <0-65535>] [-lacp_timeout {long | short}] [-lacp_activity {passive | active}] [-actor_system_priority <0-65535>] [-actor_system_id <aa:bb:cc:dd:ee:ff>] [-lag_name <string>] [-transmit_algorithm {hashing|round_robin}] [-l2_hash_option {ETH_SRC | ETH_DST | VLAN | MPLS}] [-l3_hash_option {ETH_SRC | ETH_DST | VLAN | MPLS IPV4_SRC | IPV4_DST |IPV6_SRC | IPV6_DST | UDP | TCP}] [-aggregatorresult {member|aggregated}]
Arguments¶
-
-port_handle
¶
Specifies the port under which to create the LAG port. This argument is Mandatory for -mode create.
-
-lag_handle
¶
The LAG port handle returned by the current function. You must specify it when the mode is modify, enable, disable, or delete.
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . The modes are described below:
create Creates an LAG port. You must specify -port_handle modify Modifies the LAG specified by -lag_handle enable Enables the LAG port. You must specify -lag_handle disable Disables the LAG handle. You must specify -lag_handle delete Deletes the LAG configuration and releases the port
The default value is create.
-
-protocol
¶
Specifies the type of LAG to be created. Possible values are:
none None lacp LACP bfd BFD lacp_bfd LACP and BFD
The default value is lacp
-
-lacp_port_mac_addr
¶
Specifies the starting MAC address of the actor port. The default value is 00:10:94:00:00:02.
-
-lacp_port_mac_addr_step
¶
Specifies the step value by which to generate subsequent MAC addresses. The default value is 00:00:00:00:00:01.
-
-lacp_actor_key
¶
Specifies the operational key value for the actor port. Possible values range from 0 to 65535. The default value is 1.
-
-lacp_actor_key_step
¶
Specifies the step value by which to generate subsequent key values. Possible values range from 0 to 65535. The default value is 1.
-
-lacp_actor_port_priority
¶
Specifies the priority assigned to the actor port. Possible values range from 0 to 65535. The default value is 1.
-
-lacp_actor_port_priority_step
¶
Specifies the step value by which to generate subsequent priority values. Possible values range from 0 to 65535. The default value is 1.
-
-lacp_actor_port_number
¶
Specifies the port number assigned to the actor port. Possible values range from 0 to 65535. The default value is 1.
-
-lacp_actor_port_step
¶
Specifies the step value by which to generate subsequent port numbers. Possible values range from 0 to 65535. The default value is 1.
-
-lacp_timeout
¶
Specifies the timeout value for this link. Possible values are long (90 seconds) and short (3 seconds). The default value is long.
-
-lacp_activity
¶
Specifies the Activity Control value for this link. Possible values are passive and active. The default value is active.
-
-actor_system_priority
¶
Specifies the system priority of the LACP group. Possible values range from 0 to 65535. The default value is 1.
-
-actor_system_id
¶
Specifies the system ID of the LACP Group. The value must in MAC format. The default value is 00:00:00:00:00:01.
-
-lag_name
¶
Specifies the name of the LAG port handle
-
-transmit_algorithm
¶
Specifies the algorithm that determines which port in the aggregation group transmits the packet for cut-through traffic. Possible values are:
hashing Determines the transmit port on a packet-per-packet basis by creating a hash value from the specified fields in the outgoing packet. The hash value is then used to select one of the available ports in the aggregation group. Depending on the content of the packet, either Layer 2 or Layer 3 hashing is used, but never both on any given packet. round_robin Determines the transmit port by round-robin cycling through all of the available ports in the aggregation group, on a packet-per-packet basis.
The default value is hashing.
-
-l2_hash_option
¶
Specifies the fields to be used when hashing Layer 2 frames. Use “|” if there is more than one field. These settings are used only on frames that do not contain Layer 3 packets. Possible values are described below:
ETH_SRC Hash based on the Ethernet Source Address ETH_DS Hash based on the Ethernet Destination Address VLAN Hash based on the VLAN Tag Control Information (TCI) field for all VLAN tags in the frame MPLS Hash based on the 20-bit label in all MPLS headers in the frame
The default value is ETH_SRC|ETH_DST|VLAN|MPLS.
-
-l3_hash_option
¶
Specifies the options to be used when hashing Layer 3 packets. Use “|” if there is more than one option. This argument is available when -trasmit_algorithm is set to hashing. These settings are used on any frame that contains a Layer 3 packet. Possible values are described below:
ETH_SRC Hash based on the Ethernet Source Address ETH_DST Hash based on the Ethernet Destination Address VLAN Hash based on the VLAN Tag Control Information (TCI) field for all VLAN tags in the frame MPLS Hash based on the 20-bit label in all MPLS headers in the frame IPV4_SRC Hash based on the IPv4 Source Address IPV4_DST Hash based on the IPv4 Destination Address IPV6_SRC Hash based on the IPv6 Source Address IPV6_DST Hash based on the IPv6 Destination Address UDP Hash based on the UDP Source and Destination port numbers TCP Hash based on the TCP Source and Destination port numbers
The default value is IPV4_SRC|IPV4_DST|IPV6_SRC|IPV6_DST|UDP|TCP.
-
-aggregatorresult
¶
Specifies the type of traffic statistics that will be collected. Possible values are member and aggregated:
member Traffic statistics by the membership port handle aggregated Traffic statistics by the LAG handle
The default value is aggregated.
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):
lag_handle The LAG port handle returned
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
The sth::emulation_lag_config
function creates, modifies, enables, disables, or
deletes LAG ports for LACP. Use the -mode argument to specify the action to
perform. (See the -mode argument description for information about the actions.)
Examples¶
To create the LAG port:
set cmdReturn1 [sth::emulation_lag_config\
-port_handle "port1 port2" \
-mode create \
-protocol lacp\
-lacp_port_mac_addr 00:94:01:00:00:02 \
-lacp_actor_port_key 100 \
-actor_lacp_port_priority 101 \
-lacp_actor_port_number 10 \
-actor_lacp_timeout short \
-lacp_activity active \
-actor_system_priority 1000 \
-actor_system_id 00:00:00:00:01:01 \
-lag_name LAG1 \
-transmit_algorithm hashing \
-l2_hash_option "ETH_SRC|ETH_DST|VLAN|MPLS"\
-l3_hash_option "VLAN|MPLS|IPV4_SRC|IPV4_DST|IPV6_SRC|IPV6_DST|UDP|TCP"\
]
To modify the LAG port:
set cmdReturn2 [sth::emulation_lag_config\
-lag_handle $lag1_handle \
-mode modify \
-aggregatorresult member \
]
To disable the LAG port:
set cmdReturn3 [sth::emulation_lag_config\
-lag_handle $lag1_handle \
-mode disable]
To delete the LAG port:
set cmdReturn3 [sth::emulation_lag_config\
-lag_handle $lag1_handle \
-mode delete]
End of Procedure Header