FCoE Functions¶
sth::fcoe_config¶
Purpose¶
Configures FCoE device for the specified Spirent HLTAPI port.
Fibre Channel over Ethernet (FCoE) is a method of carrying Fibre Channel (FC) frames over lossless Ethernet. It uses Jumbo Ethernet frames to avoid fragmenting FC frames.
The FCoE Initialization Protocol (FIP) is used to perform the functions of FC-BB_E (FC over Ethernet) device discovery, initialization, and maintenance.
Synopsis¶
Note
M sign indates that the argument is mandatory.
sth::fcoe_config [-mode {create|modify|reset} M] [-port_handle <port_handle>] [-handle <FCoE device handle>] [-vnport_count <1-65535>] [-encap {ethernet_ii|ethernet_ii_vlan|ethernet_ii_qinq}] [-mac_addr <aa:bb:cc:dd:ee:ff>] [-mac_addr_step <aa:bb:cc:dd:ee:ff>] [-vlan_id <0-4095>] [-vlan_pri <0-7>] [-vlan_cfi {0|1} ] [-vlan_id_outer <0-4095>] [-vlan_pri_outer <0-7>] [-vlan_cfi_outer {0|1} ] [-wwpn <aa:bb:cc:dd:ee:ff:gg:hh>] [-wwpn_step <aa:bb:cc:dd:ee:ff:gg:hh>] [-login_delay] [-logout_delay] [-enable_vlan_discovery {0|1}] [-addressing_mode {fpma|spma|both}] [-bb_credit] [-fcf_mac_addr <aa:bb:cc:dd:ee:ff>] [-fc_map <abcdefg>] [-fip_priority <1-128>] [-host_type {initiator|target|both}] [-max_rx_size <64 - 2112>] [-use_wwpn {0|1}] [-wwnn <aa:bb:cc:dd:ee:ff:gg:hh>] [-wwnn_step <aa:bb:cc:dd:ee:ff:gg:hh>] [-enode_count <1-65535>]
Arguments¶
-
-port_handle
¶
Specifies the handle of the port on which to configure FCoE emulation. This argument is mandatory for the create mode. Please refer to the description of the -mode argument.
-
-handle
¶
Specifies the handle of the FCoE device(s). The handle is returned by the
sth::fcoe_config
function. This argument is mandatory only for the modify and the reset modes.
-
-mode
¶
Specifies the action to be taken. This argument is mandatory. Possible values are described below:
create Starts emulating FCoE device(s) on the port specified by the -port_handle argument. modify Changes the configuration parameters for the FCoE device(s) identified by the -handle argument. reset Deletes the FCoE device(s) identified by the -handle argument.
-
-vnport_count
¶
Specifies the number of the FCoE devices to be created. The default value is 1.
-
-encap
¶
Specifies the type of Layer 2 encapsulation to use, which defines the source and the destination MAC addresses for a stream. The default is ethernet_ii. Possible values are:
ethernet_ii - Ethernet II ethernet_ii_vlan - Ethernet II with a single VLAN tag ethernet_ii_qinq - Ethernet II with two VLAN tags
ethernet_ii_vlan supports VLAN tagging on Ethernet networks, while ethernet_ii does not. If you use the -vlan_* arguments to define a VLAN interface, you must set the Layer 2 encapsulation type to ethernet_ii_vlan.
-
-mac_addr
¶
Specifies the starting value for the MAC addresses. The default is 00:10:94:00:00:02.
-
-mac_addr_step
¶
Specifies the step value applied to the base MAC address. The default is 00:00:00:00:00:01.
-
-vlan_id
¶
Defines the starting VLAN ID to use when generating FCoE devices for ethernet_ii_vlan. Possible values range from 1 to 4095. The default value is 100.
-
-vlan_pri
¶
Specifies the VLAN priority. Possible values range from 0 (highest) to 7 (lowest). The default is 7.
-
-vlan_cfi
¶
Sets the Canonical Format Indicator(CFI) field in VLAN for the emulated FCoE device. Possible values are 0 (Ethernet) and 1 (Token Ring). The default is 0. If it is set to 0, it indicates the network is Ethernet. If it is set to 1, it indicates that the network is Token Ring and packets are dropped by Ethernet ports.
-
-vlan_id_outer
¶
Defines the starting outer VLAN ID to use when generating FCoE device(s) for ethernet_ii_qinq. Possible values range from 1 to 4095. The default is 100. This argument is available only when the -encap argument is set to ethernet_ii_qinq.
-
-vlan_pri_outer
¶
Specifies the outer VLAN priority. Possible values range from 0 (highest)to 7 (lowest). The default value is 7. This argument is available only when the -encap argument is set to ethernet_ii_qinq.
-
-vlan_cfi_outer
¶
Sets the CFI field in outer VLAN for the emulated FCoE device. Possible values are 0 (Ethernet) and 1 (Token Ring). The default is 0. If it is set to 0, it indicates the network is Ethernet. If it is set to 1, it indicates that the network is Token Ring and packets are dropped by Ethernet ports. This argument is available only when the -encap argument is set to ethernet_ii_qinq.
-
-wwpn
¶
Starting the World Wide Port Name (WWPN) of the FCoE devices. A WWPN is a World Wide Name assigned to a port in a Fibre Channel fabric. Used on storage area networks, it performs a function equivalent to the MAC address in the Ethernet protocol; it is intended to be a unique identifier in the network. The value of this argument must be a 64-bit value. The default is “20:00:10:94:00:00:00:01”.
-
-wwpn_step
¶
Specifies the WWPN step for the FCoE hosts. The step must be 64-bit. The default is “00:00:00:00:00:00:00:01”.
-
-logout_delay
¶
Specifies the logout delay timer that defines the interval between logout actions when two or more logout functions are performed. The value of this argument will be applied when several logout messages are sent. The default is 10(ms).
-
-login_delay
¶
Specifies the login delay timer that defines the interval between login actions when two or more login functions are performed. The value of this argument will be applied when several login messages are sent. The default is 10(ms).
-
-addressing_mode
¶
Specifies the addressing mode of the FCoE devices. Possible values are FPMA, SPMA and BOTH. The default value is FPMA. Possible values are described below:
FPMA - Sets the mode to Fabric Provided MAC Addresses. SPMA - Sets the mode to Server Provided MAC Addresses. BOTH - Sets the mode to Fabric and Server Provided MAC Addresses.
-
-bb_credit
¶
Indicates the Buffer to Buffer Credit of the FCoE devices. This argument is used to define the number of frames the port can receive. Possible values range from 0 to 65535. The default is 3.
Note
If -bb_credit and -max_rx_size do not match the values for the DUT, the login attempts may be rejected.
-
-fcf_mac_addr
¶
Specifies the MAC address of the Fibre Channel forwarder. The value must be a valid MAC address. The default is 01:10:18:01:00:02.
-
-fc_map
¶
Specifies the FC map of the FCoE. The Fibre channel organizationally unique ID (FC-OUI) is used to map a MAC address to a FC address. This value has the I/G bit set to zero to indicate it is not a group address, and the U/L bit is set to one to indicate it is a locally administered address and is not globally unique. Possible values range from EFC00 to EFCFF. The default is EFC00.
-
-fip_priority
¶
Specifies the FIP priority of the FCoE. Possible values range from 1 (highest) to 128 (lowest). The default is 100.
-
-host_type
¶
Specifies whether hosts will register with the name server as a target, initiator, or both. The default value is initiator. Possible value is described below:
initiator - Indicates the Small Computer System Interface (SCSI) Initiator. The SCSI is a set of standards for physically connecting and transferring data between computers and peripheral devices. target - Indicates the SCSI Target. both - Indicates both the SCSI Initiator and the SCSI Target.
-
-max_rx_size
¶
Maximum frame size. Possible values range from 64 to 2112. The default is 2112.
-
-use_wwpn
¶
Use WWPN as the World Wide Node Name (WWNN). A WWNN is a World Wide Name assigned to a node (an endpoint, a device) in a Fibre Channel fabric. It is valid for the same WWNN to be seen on many different addresses on the network, identifying the ports as multiple network interfaces of a single network node. Possible values are 0 and 1. The default is 1. If it is set to 1, the WWNN will use the value set by -wwpn instead of -wwnn.
-
-vnport_name
¶
Defines the VN_Port name of the FCoE devices. The VN_Port is an instance of the FC-2V sublevel of Fibre Channel that operates as an N_Port. You can refer to FC-FS-3 for more details.
The value is formed by characters. The length of the value is from 1 to 32. The default value is VNport_@p-@b-@s.
-
-wwnn
¶
Indicates the starting WWNN of the FCoE hosts. The default is 10:00:10:94:00:00:00:01.
-
-wwnn_step
¶
Specifies the step size applied to the WWNN of the FCoE devices. The default is 10:00:10:94:00:00:00:01.
-
-enode_count
¶
Specifies the number of ENodes to be created. The default is 1. This value should be equal or less than the value specified by -vnport_count. This argument is available when -use_wwpn is set to 0.
-
-enable_vlan_discovery
¶
Disables or enables the VLAN discovery process. VLAN discovery can be invoked by an ENode or a FCoE Forwarder (FCF) that is a Fibre Channel Switching Element to discover the VLANs in the Lossless Ethernet network. Possible values are 0 and 1. If it is set to 1, the VLAN discovery process will be enabled. The default is 0.
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):
handle The FCoE device handle
status Success (1) or failure (0) of the operation.
procName The function name
log An error message (if the operation failed).
Description¶
The sth::fcoe_config
function creates or modifies an emulated FCoE device block.
Use the -mode argument to specify the action to perform. (See the -mode argument
description for information about the actions.)
When you create a FCoE device, you must use the -port_handle argument to specify
the Spirent HLTAPI port that the emulated FCoE device will use for FCoE
communication. (The port handle value is contained in the keyed list returned by
the sth::connect
function.)
Example:
#### HLTAPI for Tcl ####
The following segment is an example for sth::fcoe_config:
set returnedString [sth::fcoe_config \
-port_handle port1 \
-mode create \
-encap ethernet_ii_vlan \
-mac_addr 00:10:94:00:00:66 \
-vlan_id 900 \
-vlan_pri 3 \
-vnport_count 8 \
-wwpn 20:00:10:94:00:00:00:55 \
-wwnn_step 00:00:00:00:00:00:00:01 \
-host_type both \
-fc_map EFC00 \
]
keylget returnedString handle fcoeDevice
puts "Create FCoE device\n$returnedString"
set returnedString [sth::fcoe_config \
-handle $fcoeDevice \
-mode modify \
-vlan_pri 1 \
]
puts "Modify FCoE device\n$returnedString"
set returnedString [sth::fcoe_config -handle $fcoeDevice -mode reset]
puts "Reset FCoE device\n$returnedString"
Sample Output:
Create FCoE device
{status 1} {procName fcoe_config} {handle host1}
Modify FCoE device
{status 1} {procName fcoe_config} {handle host1}
Reset FCoE device
{status 1} {procName fcoe_config}
#### HLTAPI for Python ####
The following example creates and configures an FCoE emulated device:
device_ret0 = sth.fcoe_config (
mode = 'create',
encap = 'ethernet_ii_vlan',
logout_delay = '10',
login_delay = '10',
port_handle = port_handle[0],
vlan_cfi = '0',
vlan_id = '906',
vlan_pri = '7',
wwpn = '20:00:00:10:94:00:00:01',
wwpn_step = '00:00:00:00:00:00:00:01',
use_wwpn = '0',
max_rx_size = '128',
wwnn = '10:00:00:10:94:00:00:01',
enode_count = '1',
enable_vlan_discovery= '0',
fc_map = 'efc00',
bb_credit = '3',
host_type = 'initiator',
fip_priority = '100',
addressing_mode = 'fpma',
wwnn_step = '00:00:00:00:00:00:00:01',
mac_addr = '00:10:94:00:00:03',
mac_addr_step = '00:00:00:00:00:01',
vnport_count = '2');
Sample Output:
{'status': '1', 'procName': 'fcoe_config', 'handle': 'host3'}
#### HLTAPI for Perl ####
The following example creates and configures an FCoE emulated device:
my %device_ret0 = sth::fcoe_config (
mode => 'create',
encap => 'ethernet_ii_vlan',
logout_delay => '10',
login_delay => '10',
port_handle => "$hport[1]",
vlan_cfi => '0',
vlan_id => '906',
vlan_pri => '7',
wwpn => '20:00:00:10:94:00:00:01',
wwpn_step => '00:00:00:00:00:00:00:01',
use_wwpn => '0',
max_rx_size => '128',
wwnn => '10:00:00:10:94:00:00:01',
enode_count => '1',
enable_vlan_discovery=> '0',
fc_map => 'efc00',
bb_credit => '3',
host_type => 'initiator',
fip_priority => '100',
addressing_mode => 'fpma',
wwnn_step => '00:00:00:00:00:00:00:01',
mac_addr => '00:10:94:00:00:03',
mac_addr_step => '00:00:00:00:00:01',
vnport_count => '2');
Sample Output:
$VAR1 = 'procName';
$VAR2 = 'fcoe_config';
$VAR3 = 'handle';
$VAR4 = 'host3';
$VAR5 = 'status';
$VAR6 = '1';
End of Procedure Header
sth::fcoe_control¶
Purpose¶
Discovers, logins, logouts, starts, and stops the specified FCoE devices.
Synopsis¶
Note
M sign indates that the argument is mandatory.
sth::fcoe_control [-handle {FCoE_device_handle_list} M] [-action {discovery |login|logout|start|stop} M]
Arguments¶
-
-handle
¶
Identifies a list of FCoE devices executing the action. This argument is mandatory. It is returned from the
sth::fcoe_config
function.
-
-action
¶
Specifies the action to perform on the device specified by the -handle argument. This argument is mandatory. Possible values are discovery, login, logout, start and stop; they are described below:
discovery Starts the FCoE Discovery process. The process is invoked by ENodes for discovering the VLANs. FCF is a Fibre Channel Switching Element (see FC-SW-5) that is able to forward FCoE frames across one or more FCF-MACs, It optionally includes one or more Lossless Ethernet bridging elements and/or a Fibre Channel Fabric interface. login Starts the FCoE Login process that ENodes initiates VNports and registers it to the FCF. logout Starts the FCoE Logout process that ENodes logout its VNports to the FCF. start Starts the FCoE device from the discovery step, and then goes to the login process after discovery is done. stop Stops the FCoE device after the start action.
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.
handle The FCoE device handle.
procName Name of the function.
log An error message (if the operation failed).
Description¶
The sth::fcoe_control
function performs the following actions::
discovery, login, logout, start and stop.
When you call the fcoe_control function, you must specify a handle.
Example:
#### HLTAPI for Tcl ####
The following segment is an example for sth::fcoe_config:
set returnedString [sth::fcoe_stats -handle $fcoeDevice ]
puts "$returnedString"
Sample Output:
{status 1} {handle host1} {procName fcoe_control}
#### HLTAPI for Python ####
The following segment starts the FCoE discovery process on the specific FCoE device:
ctrl_ret1 = sth.fcoe_control (
handle = device_list,
action = 'discovery');
Sample Output:
{'status': '1', 'procName': 'fcoe_control', 'handle': 'host3 host4'}
#### HLTAPI for Perl ####
The following segment starts the FCoE discovery process on the specific FCoE device:
my %ctrl_ret1 = sth::fcoe_control (
handle => "$device_list",
action => 'discovery');
Sample Output:
$VAR1 = 'procName';
$VAR2 = 'fcoe_control';
$VAR3 = 'handle';
$VAR4 = 'host3 host4';
$VAR5 = 'status';
$VAR6 = '1';
End of Procedure Header
sth::fcoe_stats¶
Purpose¶
Returns the specified FCoE device statistics. The statistics include the device status and number and type of messages sent and received.
Synopsis¶
Note
M sign indates that the argument is mandatory.
sth::fcoe_stats -handle {FCoE device handle} [-mode {summary| vnport| all}]
Arguments¶
-
-handle
¶
Identifies the FCoE devices whose statistics are to be returned. This argument is mandatory. It is returned from the
sth::fcoe_config
function.
-
-mode
¶
Specifies the kind of returned information. Possible values are summary, vnport and all. The default is summary. Possible values are described below:
summary Returns FCoE summary results vnport Returns FCoE VN_Port results all Returns both FCoE summary and VN_Port results
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):
handle The FCoE device handle
status Success (1) or failure (0) of the operation.
procName The function name
log An error message (if the operation failed).
The following statistics are returned when the -mode argument is set to all or vnport:
<vnportID>.state State of the FCoE device
Possible values are:
Up: VN_Port is up.
Down: VN_Port is down.
<vnportID>.substate Sub-state of the FCoE device
Possible values are:
NONE: No state.
LOGGED_OUT: Logged out.
SOLICITATION_SENT: Solicitation sent.
SOLICITATION_TIMED_OUT: Solicitation timed
out.
DISCOVERY_FAILED: Discovery failed.
ADVERTISEMENT_RECEIVED: Advertisement
received.
FLOGI_SENT: FLOGI sent.
FLOGI_TIMED_OUT: FLOGI timed out.
FLOGI_REJECTED: FLOGI rejected.
FLOGI_ACCEPTED: FLOGI accepted.
FDISC_SENT: FDISC sent.
FDISC_TIMED_OUT: FDISC timed out.
FDISC_REJECTED: FDISC rejected.
FDISC_ACCEPTED: FDISC accepted.
PLOGI_SENT PLOGI sent.
PLOGI_TIMED_OUT: PLOGI timed out.
PLOGI_REJECTED: PLOGI rejected.
PLOGI_ACCEPTED: PLOGI accepted.
SCR_SENT: SCR sent.
SCR_TIMED_OUT: SCR timed out.
SCR_REJECTED: SCR rejected.
SCR_ACCEPTED: SCR accepted.
<vnportID>.rx_vlan_notification
Number of VLAN notification message received
<vnportID>.tx_vlan_req
Number of VLAN request message transmitted
<vnportID>.granted_macaddr
Granted MAC Address of the FCoE device
<vnportID>.fcid
FC ID of the FCoE device
<vnportID>.dst_mac_adddr
Destination MAC Address of the FCoE device
<vnportID>.wwpn
World Wide Port Name of the FCoE device
<vnportID>.wwnn
World Wide Node Name of the FCoE device
<vnportID>.granted_vlanid
Granted Vlan ID of the FCoE device
The following statistics are returned when the -mode argument is set to all or summary:
vnport_down Number of VN_Port in DOWN state
vnport_up Number of VN_Port in UP state
ka_period Keep Alive Period measured in milliseconds.
rx_rjt Number of rejected messages received
rx_acc Number of accepted messages received
rx_multi_adv Number of multicast advertisement messages received
rx_cvl Number of clear virtual link messages received
rx_uni_advertisement Number of unicast advertisement messages
received
rx_multi_adv Number of multicast advertisement messages received
tx_ka Number of keep_alive messages transmitted
tx_flogi Number of FLOGI messages transmitted
tx_fdisc Number of FDISC messages transmitted
tx_plogi Number of PLOGI messages transmitted
tx_logo Number of LOGO messages transmitted
tx_uni_solicitation Number of state change registers transmitted
tx_scr Number of unicast solicitation messages transmitted
Description¶
The sth::fcoe_stats
function retrieves a list of aggregate
statistics for the FCoE device configured on the specified port.
Example:
#### HLTAPI for Tcl ####
The following example retrieves statistics of the FCoE device configured on the specified port:
set returnedString [sth::fcoe_stats -handle $fcoeDevice -mode summary]
puts "$returnedString"
set returnedString [sth::fcoe_stats -handle $fcoeDevice -mode vnport]
puts "$returnedString"
Sample Output:
#Summary Results
{status 1} {vnport_down 0} {rx_acc 4} {rx_rjt 0} {tx_logo 0} {tx_fdisc 0}
{tx_state_change_register 0} {tx_plogi 3} {rx_multi_adv 60}
{rx_uni_advertisement 3}{tx_uni_solicitation 3} {tx_flogi 3} {vnport_up 3}
{ka_period 8000} {rx_clear_virlink 0}{tx_ka 12} {handle host1}
{procName sth::fcoe_stats}
#VN_Port Results
{status 1} {vnport0 {{wwpn 20:00:10:94:00:00:00:01}
{granted_macaddr 0e:fc:10:62:00:02}{rx_vlan_notification 1}
{dst_mac_adddr 00:0d:ec:6d:a0:00} {state UP} {granted_vlanid 900}
{wwnn 20:00:10:94:00:00:00:01} {fcid 620002} {tx_vlan_req 1}
{substate PLOGI_SENT}}}{vnport1 {{wwpn 20:00:10:94:00:00:00:02}
{granted_macaddr 0e:fc:10:62:00:03} {rx_vlan_notification 1}
{dst_mac_adddr 00:0d:ec:6d:a0:00}{state UP} {granted_vlanid 900}
{wwnn 20:00:10:94:00:00:00:02} {fcid 620003} {tx_vlan_req 1}
{substate PLOGI_SENT}}}{vnport2 {{wwpn 20:00:10:94:00:00:00:03}
{granted_macaddr 0e:fc:10:62:00:06}{rx_vlan_notification 1}
{dst_mac_adddr 00:0d:ec:6d:a0:00} {state UP} {granted_vlanid 900}
{wwnn 20:00:10:94:00:00:00:03} {fcid 620006} {tx_vlan_req 1}
{substate PLOGI_ACCEPTED}}}{handle host1} {procName sth::fcoe_stats}
#### HLTAPI for Python ####
The following example retrieves statistics of the FCoE device configured on the specified port:
results_ret1 = sth.fcoe_stats (
handle = device,
mode = 'summary');
Sample Output:
{'status': '1', 'rx_multi_adv': '0', 'handle': 'host3', 'rx_uni_adv': '0',
'vnport_up': '0', 'rx_cvl': '0', 'tx_logo': '0', 'rx_acc': '0',
'procName': 'sth::fcoe_stats', 'rx_rjt': '0', 'tx_fdisc': '0', 'tx_uni_soli': '0',
'tx_plogi': '0', 'tx_ka': '0', 'tx_flogi': '0', 'ka_period': '0', 'vnport_down': '0'}
#### HLTAPI for Perl ####
The following example retrieves statistics of the FCoE device configured on the specified port:
my %results_ret1 = sth::fcoe_stats (
handle => "$device",
mode => 'summary');
Sample Output:
$VAR1 = 'vnport_up';
$VAR2 = '0';
$VAR3 = 'ka_period';
$VAR4 = '0';
$VAR5 = 'status';
$VAR6 = '1';
$VAR7 = 'procName';
$VAR8 = 'sth::fcoe_stats';
...
Note
The ID in <vnportID> is zero-based.
End of Procedure Header
sth::fip_traffic_config¶
Purpose¶
Creates, modifies, or deletes FIP raw stream blocks, which are stream blocks without endpoints such as hosts and routers.
Please refer to FC-BB-5, FC-FS-2, and FC-FS-3 for more information.
Synopsis¶
Note
M sign indates that the argument is mandatory.
sth::fip_traffic_config [-handle {streamblock_handle} M] [-mode {create | modify | reset} M] [-version <bit>] [-reserved1 <bits>] [-operationcode <hexadecimal>] [-reserved2 <hexadecimal>] [-subcode <hexadecimal>] [-fp <bit>] [-sp <bit>] [-reserved3 <bit>] [-a <bit>] [-s <bit>] [-f <bit>] [-padding {ANY}] [-dl_id {vlan|priority|macaddr|fcmap|nameid|fabricname|maxrcvsize| flogireq|flogiacc|flogirjt|fdiscreq|fdiscacc|fdiscrjt|logoreq| logoacc|logorjt|elpreq|elpacc|elprjt|vendorid}] [-vlanid <1-4094>] [-priority_reserved <hexadecimal>] [-priority <0-255>] [-macaddr <aa:bb:cc:dd:ee:ff>] [-fcmap_reserved <hexadecimal>] [-fcmap <hexadecimal>] [-nameid_reserved <hexadecimal>] [-nameid <aa:bb:cc:dd:ee:ff:gg:hh>] [-fabricname_reserved <hexadecimal>] [-fabricname <aa:bb:cc:dd:ee:ff:gg:hh>] [-maxrcvsize <bits> [-vendorid_reserved <hexadecimal>] [-vendorid <hexadecimal>] [-fka_reserved <hexadecimal>] [-fkaadvperiod <hexadecimal>] [-vxport_portname <hexadecimal>] [-vxport_addrid <hexadecimal>] [-vxport_reserved <hexadecimal>] [-vxport_macaddr <aa:bb:cc:dd:ee:ff>] [-flogi_reserved <hexadecimal>] [-flogiacc_reserved <hexadecimal>] [-flogirjt_reserved <hexadecimal>] [-fdisc_reserved <hexadecimal>] [-fdiscacc_reserved <hexadecimal>] [-fdiscrjt_reserved <hexadecimal>] [-logo_reserved <hexadecimal>] [-logoacc_reserved <hexadecimal>] [-logorjt_reserved <hexadecimal>] [-elpreq_reserved <hexadecimal>] [-elpacc_reserved <hexadecimal>] [-elprjt_reserved <hexadecimal>] [-h_rctl <hexadecimal>] [-h_did <hexadecimal>] [-h_csctl <hexadecimal>] [-h_sid <hexadecimal>] [-h_type <hexadecimal>] [-h_framecontrol <hexadecimal>] [-h_seqid <hexadecimal>] [-h_dfctl <hexadecimal>] [-h_seqcnt <hexadecimal>] [-h_origexchangeid <hexadecimal>] [-h_responseexchangeid <hexadecimal>] [-h_parameter <hexadecimal>] [-pl_reserved1 <hexadecimal>] [-pl_nportname <aa:bb:cc:dd:ee:ff:gg:hh>] [-pl_nodename <aa:bb:cc:dd:ee:ff:gg:hh>] [-pl_vendorversionlevel <hexadecimal>] [-pl_commonsvcparams <hexadecimal>] [-pl_class1svcparams <hexadecimal>] [-pl_class2svcparams <keyed list>] [-pl_class3svcparams <keyed list>] [-pl_class4svcparams <keyed list>] [-pl_reasoncode <hexadecimal>] [-pl_reasonexplanation <hexadecimal>] [-pl_vendorunique <hexadecimal>] [-pl_nportid <hexadecimal>] [-pl_portname <hexadecimal>] [-pl_code <hexadecimal>] [-pl_revision <integer>] [-pl_flags <integer>] [-pl_bbscn <hexadecimal>] [-pl_ratov <hexadecimal>] [-pl_edtov <hexadecimal>] [-pl_reqinterconnportname <hexadecimal>] [-pl_reqswitchname <hexadecimal>] [-pl_reserved <hexadecimal>] [-pl_classfsvcparams <keyed list>] [-pl_class1interconnectportparams <keyed list>] [-pl_class2interconnectportparams <keyed list>] [-pl_class3interconnectportparams <keyed list>] [-pl_islflowcontrol <keyed list>]
Arguments¶
-
-handle
¶
Defines the FIP traffic handle that is to be configured. This argument is mandatory. When the -mode argument is set to create, the handle must be the returned value of sth::traffic_config; when -mode is set to modify or reset, the value of -handle must be the returned value of sth::fip_traffic_config.
-
-mode
¶
Specifies the action to be taken. This argument is mandatory. The possible values are create, modify and reset.
When -mode is set to create, the fip traffic will be created on the specified streamblock defined by -handle. Spirent HLTAPI will create several descriptor lists according to the value sequence defined by -dl_id.
When -mode is set to modify, the fip traffic will be modified, and the modification will be applied to the specified descriptor lists.
When -mode is set to reset and -dl_id is provided, deletion will be applied to the specified descriptor lists, otherwise the whole fip traffic will be removed from the specified streamblock.
The FIP_Header is subdivided into fields as shown below:
-
-version
¶
The default value is 0000.
-
-reserved1
¶
The default value is 000000000000.
-
-operationcode
¶
The default value is 0001.
-
-reserved2
¶
The default value is 00.
-
-subcode
¶
The default value is 00.
-
-fp
¶
The default value is 1.
-
-sp
¶
The default value is 0.
-
-reserved3
¶
The default value is 0.
-
-a
¶
The default value is 0.
-
-s
¶
The default value is 0.
-
-f
¶
The default value is 0.
-
-padding
¶
The padding value.
-
-dl_id
¶
Indicates the type of the descriptor list. Possible values are listed below. You can specify one or more choices from the list below:
vlan priority macaddr fcmap nameid fabricname maxrcvsize vxport fka_adv_period vendorid flogireq flogiacc flogirjt fdiscreq fdiscacc fdiscrjt logoreq logoacc logorjt elpreq elpacc elprjt
The argument is mandatory when -mode is set to create or reset.
When the -mode argument is set to create, several descriptor lists will be created according to the value sequence defined by the -dl_id option.
When the -mode argument is modify, the modification will be applied to the specified descriptor lists. If the descriptor lists does not exist, it will be created accordingly.
When the -mode argument is set to reset, the deletion will be applied to the specified descriptor lists.
-
-vlanid
¶
Specifies the VLAN ID of a VLAN where FCoE services can be available. The default value is 0. Possible values range from 1 to 4094.
-
-priority_reserved
¶
The default value is 00.
-
-priority
¶
Defines the priority value associated with the sending FCF-MAC. The FCF-MAC is a Lossless Ethernet MAC coupled with an FCoE Controller in an FCoE Forwarder (FCF). The default value is 64; the range is from 0 (highest) to 255 (lowest).
-
-macaddr
¶
Defines the MAC address contained in the descriptor. The default value is 00:10:94:00:00:01.
-
-fcmap_reserved
¶
The default value is 000000.
-
-fcmap
¶
Defines the value to be used as the most significant 24 bits in Fabric Provided MAC Addresses (FPMAs). FPMA is a MAC address that is assigned by an FCF to a single ENode MAC, and is not assigned to any other MAC within the same Ethernet VLAN. A FPMA is associated with a single VN_Port at that ENode MAC. The default value is 0EFC00.
-
-nameid_reserved
¶
The default value is 0000.
-
-nameid
¶
The Name_Identifier (see FC-FS-3) contained in the descriptor. The Name_Identifier is a 64-bit identifier, with a 60-bit value preceded with a 4-bit Network_Address_Authority Identifier, used to identify entities in Fibre Channel (e.g., N_Port, node, F_Port, or Fabric). The default value is 10:00:10:94:00:00:00:01.
-
-fabricname_reserved
¶
The default value is 0000.
-
-fabricname
¶
Specifies the Fabric_Name (see FC-FS-3) identifying the Fabric. The default value is 20:00:10:94:00:00:00:01.
-
-maxrcvsize
¶
The size in bytes that the FIP PDU in a solicited unicast Discovery Advertisement is requested to be extended to. The default value is 2112.
-
-vxport_macaddr
¶
The MAC address associated with the referred VN_Port. The default value is 00:10:94:00:00:01.
-
-vxport_reserved
¶
The default value is 0000.
-
-vxport_addrid
¶
Defines the address identifier associated with the referred VN_Port. The default value is 00000A.
-
-vxport_portname
¶
Specifies the N_Port_Name of the referred VN_Port. The default value is 20:00:10:94:00:00:00:01.
-
-fkaadvperiod
¶
Specifies the value of the advertised FKA_ADV_PERIOD. The default value is 00000000.
-
-fka_reserved
¶
The default value is 0000.
-
-vendorid
¶
Specifies the Vendor_ID value that defines the vendor(s). The default value is 00000000.
-
-vendorid_reserved
¶
The default value is 0000.
-
-flogireq_reserved
¶
The default value is 0000.
-
-flogiacc_reserved
¶
The default value is 0000.
-
-flogirjt_reserved
¶
The default value is 0000.
-
-fdiscreq_reserved
¶
The default value is 0000.
-
-fdiscacc_reserved
¶
The default value is 0000.
-
-fdiscrjt_reserved
¶
The default value is 0000.
-
-logoreq_reserved
¶
The default value is 0000.
-
-logoacc_reserved
¶
The default value is 0000.
-
-logorjt_reserved
¶
The default value is 0000.
-
-elpreq_reserved
¶
The default value is 0000.
-
-elpacc_reserved
¶
The default value is 0000.
-
-elprjt_reserved
¶
The default value is 0000.
The Frame_Header is subdivided into fields as shown below:
-
-h_rctl
¶
The default value is 22.
-
-h_did
¶
The default value is 000000.
-
-h_csctl
¶
The default value is 00.
-
-h_sid
¶
The default value is 000000.
-
-h_type
¶
The default value is 00.
-
-h_framecontrol
¶
The default value is 000000.
-
-h_seqid
¶
The default value is 00.
-
-h_dfctl
¶
The default value is 00.
-
-h_seqcnt
¶
The default value is 0000.
-
-h_origexchangeid
¶
The default value is 0000.
-
-h_responseexchangeid
¶
The default value is ffff.
-
-h_parameter
¶
The default value is 00000000.
-
-pl_reserved1
¶
The default value is 000000.
-
-pl_reserved2
¶
The default value is 00.
-
-pl_nportname
¶
The default value is 20:00:10:94:00:00:00:01. -pl_nodename The default value is10:00:10:94:00:00:00:01. -pl_vendorversionlevel The default value is 00000000000000000000000000000000.
-
-pl_commonsvcparams
¶
The Common Service Parameters Payload is subdivided into fields as shown below:
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -fcphversionhigh The default value is 00 -fcphversionlow The default value is 20 -buffertobuffercredit The default value is 0010 -commfeatures The default value is 8000 -rcvdatasize The default value is 0840 -totalconcurrentsequence The default value is 0002 -reloffsetbyinfocategory The default value is 0000 -edtov The default value is 000007d0 }
-
-pl_class1svcparams
¶
The Payload Class Service Parameters are subdivided into fields as shown below:
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -serviceoptions The default value is 0000. -ictl The default value is 0000. -rctl The default value is 0000. -recdatafieldsize The default value is 0840. -currentsequences The default value is 01. -endtoendcredit The default value is 0000. -openseqperexchange The default value is 0001. -reserved1 The default value is 00. -reserved2 The default value is 0000.
}
-
-pl_class2svcparams
¶
Please refer to -pl_class1svcparams.
-
-pl_class3svcparams
¶
Please refer to -pl_class1svcparams.
-
-pl_class4svcparams
¶
Please refer to pl_class1svcparams.
-
-pl_reasoncode
¶
The default value is 3.
-
-pl_reasonexplanation
¶
The default value is 0F.
-
-pl_vendorunique
¶
The default value is 0.
-
-pl_nportid
¶
The default value is 000000.
-
-pl_portname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-elpreq_reserved
¶
The default value is 0000.
-
-elpacc_reserved
¶
The default value is 0000.
-
-elprjt_reserved
¶
The default value is 0000.
Exchange Link Parameters (ELP) Request or ELP SW_ACC is subdivided into fields below:
-
-pl_code
¶
The default value is 10000000.
-
-pl_revision
¶
The default value is 4.
-
-pl_flags
¶
The default value is 0.
-
-pl_bbscn
¶
The default value is 0.
-
-pl_ratov
¶
The default value is 10000.
-
-pl_edtov
¶
The default value is 2000.
-
-pl_reqinterconnportname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-pl_reqswitchname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-pl_reserved
¶
The default value is 0000000000000000000000000000000000000000.
-
-pl_classfsvcparams
¶
This argument represents a list of keyed values, the keys and their default values are listed below:
{ -val The default value is 1. -reserved1 The default value is 0000 -reserved2 The default value is 0000 -r The default value is 00 -xii The default value is 0 -reserved3 The default value is 0000000000000 -recvdatafieldsize The default value is 1000 -concseq The default value is 1 -endtoendcredit The default value is 1 -openseqperexchange The default value is 1 -reserved4 The default value is 0000 }
-
-pl_class1interconnectportparams
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -val The default value is 0 -imx The default value is 0 -xps The default value is 0 -lks The default value is 0 -reserved The default value is 000000000000 -recvdatafieldsize The default value is 1000 }
-
-pl_class2interconnectportparams
¶
This argument will represent a list of keyed values. The keys and their default values are listed below:
{ -val The default value is 0 -rrr The default value is 00 -seq The default value is 0 -reserved The default value is 000000000000 -recvdatafieldsize The default value is 1000 }
-
-pl_class3interconnectportparams
¶
This argument will represent a list of keyed values. The keys and their default values are listed below:
{ -val The default value is 1 -rrr The default value is 00 -seq The default value is 1 -reserved The default value is 000000000000 -recvdatafieldsize The default value is 1000 }
-
-pl_islflowcontrol
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -islflowcontrolmode The default value is 0002 -islflowcontrollength The default value is 20 -bbcredit The default value is 00000000 -compatibilityparameters The default value is 00000000000000000000000000000000 }
This argument is available when elpreq or elpacc is indicated in -dl_id.
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):
stream_id The FCoE traffic handle
status Success (1) or failure (0) of the operation.
procName The function name
log An error message (if the operation failed).
Description¶
Creates, modifies, or deletes FIP raw stream blocks, which are stream blocks without endpoints such as hosts and routers.
The following paragraphs describe when the arguments for this command are available.
The following arguments are available without any limitation:
-version, -reserved1, -operationcode, -reserved2, -subcode, -fp,
-sp, -reserved3, -a, -s, -f, -padding
You can specify the options below when the corresponding descriptor type is enabled in -dl_id. The relationships are described below:
When vlan is indicated in -dl_id, these arguments are available:
-vlanid
When priority is indicated in -dl_id, these arguments are available:
-priority_reserved, -priority
When macaddr is indicated in -dl_id, these arguments are available:
-macaddr
When fcmap is indicated in -dl_id, these arguments are available:
-fcmap_reserved, -fcmap
When nameid is indicated in -dl_id, these arguments are available:
-nameid_reserved, -nameid
When fabricname is indicated in -dl_id, these arguments are available:
-fabricname_reserved, -fabricname
When maxrcvsize is indicated in -dl_id, these arguments are available:
-maxrcvsize
When vendorid is indicated in -dl_id, these arguments are available:
-vendorid, -vendorid_reserved
When vxport is indicated in -dl_id, these arguments are available:
-vxport_macaddr, -vxport_reserved, -vxport_addrid,
-vxport_portname
When fka_adv_period is indicated in -dl_id these arguments are available:
-fkaadvperiod, -fka_reserved
When flogireq is indicated in -dl_id, these arguments are available:
-flogireq_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_reserved1, -pl_nportname,
-pl_nodename, -pl_vendorversionlevel, -pl_commonsvcparams,
-pl_class1svcparams, -pl_class2svcparams, -pl_class3svcparams,
-pl_class4svcparams
When flogiacc is indicated in -dl_id, these arguments are available:
-flogiacc_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_reserved1, -pl_nportname,
-pl_nodename, -pl_vendorversionlevel, -pl_commonsvcparams,
-pl_class1svcparams, -pl_class2svcparams, -pl_class3svcparams,
-pl_class4svcparams
When flogirjt is indicated in -dl_id, these arguments are available:
-flogirjt_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid h_parameter,
-pl_reserved1, -pl_reserved2, -pl_reasoncode, -pl_explanationcode
-pl_vendorunique
When fdiscreq is indicated in -dl_id, these arguments are available:
-fdiscreq_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_reserved1, -pl_nportname,
-pl_nodename, -pl_vendorversionlevel, -pl_commonsvcparams,
-pl_class1svcparams, -pl_class2svcparams, -pl_class3svcparams,
-pl_class4svcparams
When fdiscacc is indicated in -dl_id, these arguments are available:
-fdiscacc_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_reserved1, -pl_nportname,
-pl_nodename, -pl_vendorversionlevel, -pl_commonsvcparams,
-pl_class1svcparams, -pl_class2svcparams, -pl_class3svcparams,
-pl_class4svcparams
When fdiscrjt is indicated in -dl_id, these arguments are available:
-fdiscrjt_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter,
-pl_reserved1, -pl_reserved2, -pl_reasoncode, -pl_explanationcode,
-pl_vendorunique
When logoreq is indicated in -dl_id, these arguments are available:
-logoreq_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid -h_parameter
-pl_reserved1, -pl_nportid, -pl_portname
When logoacc is indicated in -dl_id, these arguments are available:
-logoacc_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_reserved1
When logorjt is indicated in -dl_id, these arguments are available:
-logorjt_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_reserved1, -pl_reserved2,
-pl_reasoncode, -pl_explanationcode, -pl_vendorunique
When elpreq is indicated in -dl_id, these arguments are available:
-elpreq_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_code, -pl_revision,
-pl_flags, -pl_bbscn, -pl_ratov, -pl_edtov,
-pl_reqinterconnportname, -pl_reqswitchname, -pl_reserved,
-pl_classfsvcparams, -pl_class1interconnectportparams,
-pl_class2interconnectportparams,
-pl_class3interconnectportparams, -pl_islflowcontrol,
When elpacc is indicated in -dl_id, these arguments are available:
-elpacc_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_code, -pl_revision,
-pl_flags, -pl_bbscn, -pl_ratov, -pl_edtov,
-pl_reqinterconnportname, -pl_reqswitchname, -pl_reserved,
-pl_classfsvcparams, -pl_class1interconnectportparams,
-pl_class2interconnectportparams,
-pl_class3interconnectportparams, -pl_islflowcontrol
When elprjt is indicated in -dl_id, these arguments are available:
-elprjt_reserved, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter, -pl_reserved1, -pl_reserved2,
-pl_reasoncode, -pl_explanationcode, -pl_vendorunique
Examples¶
#### HLTAPI for Tcl ####
To create a Layer 2 frame by sth::traffic_config:
set returnedString [sth::traffic_config\
-mode create\
-port_handle $port1\
-l2_encap ethernet_ii\
-transmit_mode continuous\
-rate_pps 1000\
]
puts "l2_traffic\n$returnedString"
keylget returnedString stream_id sb
To create the FIP traffic based on the Layer 2 frame. The type of the descriptor lists is flogireq for the Flogi Reject Frame:
set fip_traffic_config "sth::fip_traffic_config -mode create -handle $sb\
-version 0 -reserved1 0 -operationcode 1 -reserved2 0
-subcode 0 -fp 1 -sp 0 -reserved3 0 -a 0 -s 0 -f 0
-dl_id flogireq \
-flogireq_reserved 0 \
-h_rctl 22 -h_did 0 -h_csctl 0 -h_sid 0 -h_type 0
-h_framecontrol 0 -h_seqid 0 -h_dfctl 0 -h_seqcnt 0
-h_origexchangeid 0 \
-pl_reserved1 0 -pl_nportname 20:00:10:94:00:00:00:01
-pl_nodename 10:00:10:94:00:00:00:01 \
-pl_commonsvcparams {
-fcphversionhigh 0 \
-fcphversionlow 20 \
-buffertobuffercredit 10 \
} \
-pl_class1svcparams {
-serviceoptions 0 \
-ictl 0 \
-rctl 0 \
-endtoendcredit 0 \
} \
"
set returnedString [eval $fip_traffic_config]
puts "Create Flogi Reject Frame\n$returnedString"
To add macaddr to descriptor list in order to generate Flogi Accept Frame:
set fip_traffic_config "sth::fip_traffic_config -mode modify -handle $sb\
-dl_id macaddr \
-macaddr 00:10:94:00:00:01 \
"
set returnedString [eval $fip_traffic_config]
puts "Change to Flogi Accept Frame by modify\n$returnedString"
To delete the macaddr from descriptor list:
set returnedString [sth::fip_traffic_config -mode reset -handle $sb
-dl_id macaddr]
puts "Delete the macaddr\n$returnedString"
To delete the whole FIP frame:
set returnedString [sth::fip_traffic_config -mode reset -handle $sb ]
puts "Delete FIP by reset\n$returnedString"
Sample Output:
l2_traffic
{stream_id streamblock1} {status 1}
Create Flogi Reject Frame
{status 1} {procName sth::fip_traffic_config} {streamid streamblock1}
Change to Flogi Accept Frame by modify
{status 1} {procName sth::fip_traffic_config} {streamid streamblock1}
Delete the macaddr
{status 1} {procName sth::fip_traffic_config} {streamid streamblock1}
Delete FIP by reset
{status 1} {procName sth::fip_traffic_config} {streamid streamblock1}
#### HLTAPI for Python ####
To create a Layer 2 frame by sth::traffic_config:
streamblock_ret1 = sth.traffic_config ( mode ='create', port_handle =port_handle[0], l2_encap ='ethernet_ii', mac_src ='00:10:94:00:00:01', ether_type ='88B5', mac_dst ='00:10:94:00:00:02', enable_control_plane ='0', l3_length ='1006', name ='StreamBlock_8-3', fill_type ='constant', fcs_error ='0', fill_value ='0', traffic_state ='1', high_speed_result_analysis = '1', length_mode ='fixed', disable_signature ='0', enable_stream_only_gen ='1', pkts_per_burst ='1', inter_stream_gap_unit ='bytes', burst_loop_count ='30', transmit_mode ='continuous', inter_stream_gap ='12', rate_percent ='10');
To create the FIP traffic with multiple types of descriptor lists based on the Layer 2 frame:
stream_id = streamblock_ret1['stream_id']
streamblock_fip_ret = sth.fip_traffic_config (
mode ='create',
handle =stream_id,
reserved1 ='000000000011',
reserved2 ='01',
reserved3 ='00000000011',
fp ='1',
subcode ='11',
padding ='1111',
a ='1',
f ='1',
operationcode ='0001',
s ='1',
sp ='1',
version ='0001',
flogireq_reserved ='1111',
macaddr ='00:10:94:00:00:11',
priority_reserved ='11',
priority ='11',
fcmap_reserved ='111111',
fcmap ='0EFC11',
nameid_reserved ='1111',
nameid ='10:00:10:94:00:00:00:11',
fabricname ='20:00:10:94:00:00:00:11',
fabricname_reserved ='11',
maxrcvsize ='1111',
flogiacc_reserved ='1111',
flogirjt_reserved ='0000',
fdiscreq_reserved ='1111',
dl_id =['flogireq','macaddr','priority','fcmap',
'nameid','fabricname','maxrcvsize','flogiacc',
'flogirjt','fdiscreq'],
h_csctl ='11',
h_dfctl ='11',
h_did ='111111',
h_framecontrol ='291111',
h_origexchangeid ='1111',
h_parameter ='11111111',
h_rctl ='22',
h_responseexchangeid ='1111',
h_seqcnt ='1111',
h_seqid ='11',
h_sid ='111111',
h_type ='01',
pl_class1svcparams =['-ictl','1111','-endtoendcredit','1111',
'-rctl','1111','-currentsequences','11',
'-reserved1','11','-reserved2','1111',
'-recdatafieldsize','0841',
'-serviceoptions','1111',
'-openseqperexchange','1111'],
pl_class2svcparams =['-ictl','1111','-endtoendcredit','1111',
'-rctl','1111','-currentsequences','11',
'-reserved1','11','-reserved2','1111',
'-recdatafieldsize','0841',
'-serviceoptions','1111',
'-openseqperexchange','1111'],
pl_class3svcparams =['-ictl','1111','-endtoendcredit','1111',
'-rctl','1111','-currentsequences','11',
'-reserved1','11','-reserved2','1111',
'-recdatafieldsize','0841',
'-serviceoptions','8811',
'-openseqperexchange','1111'],
pl_class4svcparams =['-ictl','1111','-endtoendcredit','1111',
'-rctl','1111','-currentsequences','11',
'-reserved1','11','-reserved2','1111',
'-recdatafieldsize','0841','
-serviceoptions','1111','-openseqperexchange','1111'],
pl_commonsvcparams =['-reloffsetbyinfocategory','1111',
'-commfeatures','8111','-fcphversionhigh','11',
'-totalconcurrentsequence','1111',
'-rcvdatasize','0841','-fcphversionlow','11',
'-edtov','000007D1',
'-buffertobuffercredit','1111'],
pl_explanationcode ='0F',
pl_nodename ='10:00:10:94:00:00:00:11',
pl_nportname ='20:00:10:94:00:00:00:11',
pl_reasoncode ='03',
pl_reserved1 ='111111',
pl_vendorunique ='00',
pl_vendorversionlevel ='00000000000000000000000000001111');
Sample Output:
L2 Traffic::
{'status': '1', 'stream_id': 'streamblock1'}
FIP Traffic::
{'status': '1', 'procName': 'sth::fip_traffic_config', 'streamid': 'streamblock1'}
#### HLTAPI for Perl ####
To create a Layer 2 frame by sth::traffic_config:
my %streamblock_ret1 = sth::traffic_config (
mode => 'create',
port_handle => "$hport[1]",
l2_encap => 'ethernet_ii',
mac_src => '00:10:94:00:00:01',
ether_type => '88B5',
mac_dst => '00:10:94:00:00:02',
enable_control_plane => '0',
l3_length => '1006',
name => 'StreamBlock_8-3',
fill_type => 'constant',
fcs_error => '0',
fill_value => '0',
traffic_state => '1',
high_speed_result_analysis => '1',
length_mode => 'fixed',
disable_signature => '0',
enable_stream_only_gen => '1',
pkts_per_burst => '1',
inter_stream_gap_unit => 'bytes',
burst_loop_count => '30',
transmit_mode => 'continuous',
inter_stream_gap => '12',
rate_percent => '10');
To create the FIP traffic with multiple types of descriptor lists based on the Layer 2 frame:
my $stream_id = join( " ", @{$streamblock_ret1{stream_id}});
my %streamblock_fip_ret = sth::fip_traffic_config (
mode => 'create',
handle => "$stream_id",
reserved1 => '000000000011',
reserved2 => '01',
reserved3 => '00000000011',
fp => '1',
subcode => '11',
padding => '1111',
a => '1',
f => '1',
operationcode => '0001',
s => '1',
sp => '1',
version => '0001',
flogireq_reserved => '1111',
macaddr => '00:10:94:00:00:11',
priority_reserved => '11',
priority => '11',
fcmap_reserved => '111111',
fcmap => '0EFC11',
nameid_reserved => '1111',
nameid => '10:00:10:94:00:00:00:11',
fabricname => '20:00:10:94:00:00:00:11',
fabricname_reserved => '11',
maxrcvsize => '1111',
flogiacc_reserved => '1111',
flogirjt_reserved => '0000',
fdiscreq_reserved => '1111',
dl_id => 'flogireq macaddr priority fcmap nameid fabricname maxrcvsize
flogiacc flogirjt fdiscreq',
h_csctl => '11',
h_dfctl => '11',
h_did => '111111',
h_framecontrol => '291111',
h_origexchangeid => '1111',
h_parameter => '11111111',
h_rctl => '22',
h_responseexchangeid => '1111',
h_seqcnt => '1111',
h_seqid => '11',
h_sid => '111111',
h_type => '01',
pl_class1svcparams => '-ictl 1111 -endtoendcredit 1111 -rctl 1111
-currentsequences 11 -reserved1 11 -reserved2 1111
-recdatafieldsize 0841 -serviceoptions 1111
-openseqperexchange 1111',
pl_class2svcparams => '-ictl 1111 -endtoendcredit 1111 -rctl 1111
-currentsequences 11 -reserved1 11 -reserved2 1111
-recdatafieldsize 0841 -serviceoptions 1111
-openseqperexchange 1111',
pl_class3svcparams => '-ictl 1111 -endtoendcredit 1111 -rctl 1111
-currentsequences 11 -reserved1 11 -reserved2 1111
-recdatafieldsize 0841 -serviceoptions 8811
-openseqperexchange 1111',
pl_class4svcparams => '-ictl 1111 -endtoendcredit 1111 -rctl 1111
-currentsequences 11 -reserved1 11 -reserved2 1111
-recdatafieldsize 0841 -serviceoptions 1111
-openseqperexchange 1111',
pl_commonsvcparams => '-reloffsetbyinfocategory 1111 -commfeatures 8111
-fcphversionhigh 11 -totalconcurrentsequence 1111
-rcvdatasize 0841 -fcphversionlow 11 -edtov 000007D1
-buffertobuffercredit 1111',
pl_explanationcode => '0F',
pl_nodename => '10:00:10:94:00:00:00:11',
pl_nportname => '20:00:10:94:00:00:00:11',
pl_reasoncode => '03',
pl_reserved1 => '111111',
pl_vendorunique => '00',
pl_vendorversionlevel => '00000000000000000000000000001111');
Sample Output:
L2 Traffic::
$VAR1 = 'status';
$VAR2 = '1';
$VAR3 = 'stream_id';
$VAR4 = 'streamblock3';
FIP traffic:
$VAR1 = 'procName';
$VAR2 = 'sth::fip_traffic_config';
$VAR3 = 'status';
$VAR4 = '1';
$VAR5 = 'streamid';
$VAR6 = 'streamblock3';
End of Procedure Header
sth::fcoe_traffic_config¶
Purpose¶
Creates, modifies, or deletes FCoE to modify the frames of raw stream blocks. The raw stream blocks are stream blocks without endpoints such as hosts and routers.
Synopsis¶
Note
M sign indates that the argument is mandatory.
sth::fcoe_traffic_config [-mode {create | modify | reset} M] [-handle {streamblock_handle} M] [-sof {soff|sofi2|sofn2|sofi3|sofn3|sofi4|sofn4|sofc4}] [-eof {eofn|eoft|eofni|eofa|eofdt|eofdti|eofrt|eofrti}] [-reserved1 <bits>] [-reserved2 <bits>] [-reserved3 <bits>] [-reserved4 <bits>] [-reserved5 <bits>] [-version <bits>] [-h_rctl <hexadecimal>] [-h_did <hexadecimal>] [-h_csctl <hexadecimal>] [-h_sid <hexadecimal>] [-h_type <bits>] [-h_framecontrol <bits>] [-h_seqid <bits>] [-h_dfctl <bits>] [-h_seqcnt <bits>] [-h_origexchangeid <bits>] [-h_responseexchangeid <bits>] [-h_parameter <hexadecimal>] [-pl_id { custom|plogireq|plogiacc|plogirjt|flogireq|flogiacc|flogirjt| fdiscreq|fdiscacc|fdiscrjt||logoreq||logoacc|logorjt|fcpcmnd| efpreq|efpacc|diareq|diaacc|escreq|escacc|hloreq|lsureq|lsareq| ganxtacc|gpnidacc|gnnidacc|gcsidacc|gftidacc|gptidacc| gfpnidacc|gspnidacc|gffidacc|gidpnacc|gidnnacc|gsnnnnacc| gidftacc|gpnftacc|gnnftacc|rsnnnn|rffid|rspnid|rptid|rftid| rcsid|rnnid|rpnid|daid|mergereq|mergereqacc } [-pl_reserved1 <hexadecimal>] [-pl_nportname <hexadecimal>] [-pl_nodename <hexadecimal>] [-pl_vendorversionlevel <hexadecimal>] [-pl_commonsvcparams <keyed list>] [-pl_class1svcparams <keyed list>] [-pl_class2svcparams {$pl_classsvcparams}] [-pl_class3svcparams {$pl_classsvcparams}] [-pl_class4svcparams {$pl_classsvcparams}] [-pl_reasoncode <hexadecimal>] [-pl_reasonexplanation <hexadecimal>] [-pl_vendorunique <hexadecimal>] [-pl_nportid <hexadecimal>] [-pl_portname <hexadecimal>] [-pl_cdbtype { cdb6|cdb10|r_6|r_10|r_buff|r_l10|r_capacity10|w_6|w_10| w_buff|w_l10|w_verify10|xd_r10|xd_w10|ssu|ms_6|ms_10|r_lun } [-pl_fcplun <hexadecimal>] [-pl_cmndrefnum <hexadecimal>] [-pl_reserved <hexadecimal>] [-pl_priority <hexadecimal>] [-pl_taskattrib <hexadecimal>] [-pl_taskmgmtflags <hexadecimal>] [-pl_addifcpcdblen <hexadecimal>] [-pl_rdata <hexadecimal>] [-pl_wdata <hexadecimal>] [-pl_fcpdl <hexadecimal>] [-pl_fcpbirddl <hexadecimal>] [-pl_cdb_miscinfo <hexadecimal>] [-pl_cdb_miscinfo1 <hexadecimal>] [-pl_cdb_lba <hexadecimal>] [-pl_cdb_len <hexadecimal>] [-pl_cdb_control <hexadecimal>] [-pl_cdb_service <hexadecimal>] [-pl_cdb_miscinfo2 <hexadecimal>] [-pl_cdb_reserved <hexadecimal>] [-pl_cdb_transferlen <hexadecimal>] [-pl_cdb_rdprotect <hexadecimal>] [-pl_cdb_dpo <hexadecimal>] [-pl_cdb_fua <hexadecimal>] [-pl_cdb_fua_nv <hexadecimal>] [-pl_cdb_obsolete <hexadecimal>] [-pl_cdb_reserved2 <hexadecimal>] [-pl_cdb_groupnum <hexadecimal>] [-pl_cdb_mode <hexadecimal>] [-pl_cdb_bufferid <hexadecimal>] [-pl_cdb_bufferoffset <hexadecimal>] [-pl_cdb_allolen <hexadecimal>] [-pl_cdb_pblock <hexadecimal>] [-pl_cdb_corrct <hexadecimal>] [-pl_cdb_reserved3 <hexadecimal>] [-pl_cdb_pmi <hexadecimal>] [-pl_cdb_wrprotect <hexadecimal>] [-pl_cdb_paramlistlen <hexadecimal>] [-pl_cdb_wr_uncor <hexadecimal>] [-pl_cdb_core_dis <hexadecimal>] [-pl_cdb_xorpinfo <hexadecimal>] [-pl_cdb_disablewr <hexadecimal>] [-pl_cdb_immed <hexadecimal>] [-pl_cdb_reserved1 <hexadecimal>] [-pl_cdb_pwrcondmod <hexadecimal>] [-pl_cdb_pwrcond <hexadecimal>] [-pl_cdb_noflush <hexadecimal>] [-pl_cdb_loej <hexadecimal>] [-pl_cdb_start <hexadecimal>] [-pl_cdb_dbd <hexadecimal>] [-pl_cdb_pc <hexadecimal>] [-pl_cdb_pagecode <hexadecimal>] [-pl_cdb_subpagecode <hexadecimal>] [-pl_cdb_llbaa <hexadecimal>] [-pl_cdb_selectreport <hexadecimal>] [-pl_recordlen <hexadecimal>] [-pl_principalswitchpriority <hexadecimal>] [-pl_principalswitchname <hexadecimal>] [-pl_domainid_lists <keyed list>] [-pl_multiid_lists <keyed list>] [-pl_pagelen <hexadecimal>] [-pl_originswitchname <hexadecimal>] [-pl_notmeaningful <hexadecimal>] [-pl_respondswitchname <hexadecimal>] [-pl_flags <hexadecimal>] [-pl_vendorescid <keyed list>] [-pl_lsr_lists <keyed list>] [-pl_fspfheader <keyed list>] [-pl_lsh_lists <keyed list>] [-pl_reserved2 <hexadecimal>] [-pl_hellointerval <hexadecimal>] [-pl_deadinterval <hexadecimal>] [-pl_rxdomainid <hexadecimal>] [-pl_origiportindex <hexadecimal>] [-pl_ctiu <hexadecimal>] [-pl_porttype <hexadecimal>] [-pl_portid <hexadecimal>] [-pl_portname <hexadecimal>] [-pl_nodename <hexadecimal>] [-pl_initprocessassociator <hexadecimal>] [-pl_ipaddrnode <hexadecimal>] [-pl_classofservice <hexadecimal>] [-pl_fc4types <hexadecimal>] [-pl_ipaddrport <hexadecimal>] [-pl_fabricportname <hexadecimal>] [-pl_reserved3 <hexadecimal>] [-pl_hardaddr <hexadecimal>] [-pl_symbolicportname <hexadecimal>] [-pl_fc4features <hexadecimal>] [-pl_symbolicnodename <hexadecimal>] [-pl_portidentifier_list <hexadecimal>] [-pl_portname_list <hexadecimal>] [-pl_nodename_list <hexadecimal>] [-pl_fc4featurebits <hexadecimal>] [-pl_typecode <hexadecimal>] [-pl_protocolver <hexadecimal>] [-pl_basiczoning_list <hexadecimal>] [-pl_enhancezoning_list <hexadecimal>] [-pl_obsolete1 <hexadecimal>] [-pl_obsolete2 <hexadecimal>] [-pl_obsolete3 <hexadecimal>]
Arguments¶
-
-handle
¶
Specifies the handle of the FCoE stream block to be configured. This argument is mandatory. When the -mode argument is set to create, the handle must be the returned value of the sth::traffic_config command. When the -mode is set to modify or reset, the handle must be the returned value of the sth::fcoe_traffic_config command.
-
-mode
¶
Specifies the action to be taken. This argument is mandatory. Possible values are create, modify and reset.
- create
- Creates FCoE traffic to be applied to the stream block specified by the -handle argument.
- modify
- Modifies the FCoE traffic.
- reset
- Removes the FCoE traffic from the specified stream block.
The FCoE PDU is contained by the FCoE frame that is added to the stream by sth::fcoe_traffic_config. The fields are described by -version and the arguments below. You can refer to FIBRE CHANNEL BACKBONE - 5 (FC-BB-5) for more information. The figure below shows the FCoE PDU format:
-
-version
¶
Specifies the FCoE version. It is a 4-bit value. The default value is 0000.
-
-sof
¶
Specifies the Start of Frame (SOF) delimiter for the encapsulated FC frame. Possible values are soff, sofi2, sofn2, sofi3, sofn3, sofi4, sofn4, and sofc4. The default value is sofi3.
-
-eof
¶
Specifies the End of Frame (EOF) delimiter for the encapsulated FC frame. Possible values are eofn, eoft, eofni, eofa, eofdt, eofdti, eofrt, and eofrti. The default value is eoft.
-
-reserved1
¶
It is a 12-bit value. The default value is 000000000000.
-
-reserved2
¶
It is a 32-bit hex value. The default value is 00000000.
-
-reserved3
¶
It is a 32-bit hex value. The default value is 00000000.
-
-reserved4
¶
It is a 24-bit hex value. The default value is 000000.
-
-reserved5
¶
It is a 24-bit hex value. The default value is 000000.
-
-h_rctl
¶
Contains routing bits and information bits to categorize the frame function. The default value is 22.
-
-h_did
¶
Contains the address identifier of the destination Nx_Port. The default value is 000000.
-
-h_csctl
¶
Contains the Class Specific Control/Priority information. The default value is 00.
-
-h_sid
¶
Contains the address identifier of the source Nx_Port. The default value is 000000.
-
-h_type
¶
The data structure type (TYPE) is a one-byte field (Word 2, Bits 31-24) that identifies the protocol of the frame content for data frames. The default value is 00
-
-h_framecontrol
¶
The Frame Control (F_CTL) field (Word 2, Bits 23-0) is a three-byte field that contains the control information relating to the frame content. The default value is 000000.
-
-h_seqid
¶
The SEQ_ID is a one-byte field (Word 3, Bits 31-24) assigned by the Sequence Initiator that is unique for a specific D_ID and S_ID pair while the Sequence is open. The default value is 00.
-
-h_dfctl
¶
Data Field Control (DF_CTL) is a one-byte field (Word 3, Bits 23-16) that specifies the presence of optional headers at the beginning of the Data_Field for Device_Data or Video_Data frames. The default value is 00.
-
-h_seqcnt
¶
The sequence count (SEQ_CNT) is a two-byte field (Word 3, Bits 15-0) that indicates the sequential order of data frame transmission within a single Sequence or multiple consecutive Sequences for the same Exchange. The default value is 0000.
-
-h_origexchangeid
¶
Indicates the Originator Exchange_ID. The Originator Exchange_ID is a two-byte field (Word 4, Bits 31-16) that identifies the Exchange_ID assigned by the Originator of the Exchange. The default value is 0000.
-
-h_responseexchangeid
¶
Indicates the Responder Exchange_ID. The Responder Exchange_ID is a two-byte field (Word 4, Bits 15-0) assigned by the Responder that provides a unique, locally meaningful identifier at the Responder for an Exchange established by an Originator and identified by -h_origexchangeid. The default value is ffff.
-
-h_parameter
¶
The Parameter field (Word 5, Bits 31-0) has different meanings when the frame type (-h_type) is different. e.g. For Link_Control frames, this parameter field is used to carry information specific to the individual Link_Control frame. The default value is 00000000.
-
-pl_id
¶
Specifies the payload type for the fc frame. The possible values are custom, plogireq, plogiacc, plogirjt, flogireq, flogiacc, flogirjt, fdiscreq, fdiscacc, fdiscrjt, logoreq, logoacc, logorjt, fcpcmnd, efpreq, efpacc, diareq, diaacc, escreq, escacc, hloreq, lsureq, lsareq, ganxtacc, gpnidacc, gnnidacc, gcsidacc, gftidacc, gptidacc, gfpnidacc, gspnidacc, gffidacc, gidpnacc, gidnnacc, gsnnnnacc, gidftacc, gpnftacc, gnnftacc, rsnnnn, rffid, rspnid, rptid, rftid, rcsid, rnnid, rpnid, daid, mergereq, and mergereqacc. This argument is mandatory when -mode is set to create or modify.
-
-pl_reserved1
¶
The default value is 000000.
-
-pl_nportname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-pl_nodename
¶
The default value is10:00:10:94:00:00:00:01.
-
-pl_vendorversionlevel
¶
The default value is 00000000000000000000000000000000.
-
-pl_commonsvcparams
¶
This argument will represent a list of keyed values. The keys and their default values are listed below:
{ -fcphverhigh 00 -fcphverlow 20 -b2bcredit 0010 -commfeatures 8000 -rcvdatasize 0840 -totalconcurrentseq 0002 -reloffsetbyinfocategory 0000 -edtov 000007d0 }
-
-pl_class1svcparams
¶
This argument will represent a list of keyed values. The keys and their default values are listed below:
{ -serviceoptions 0000 -ictl 0000 -rctl 0000 -recdatafieldsize 0840 -currentseq 01 -endtoendcredit 0000 -openseqperexchange 0001 -reserved1 00 -reserved2 0000 }
-
-pl_class2svcparams
¶
Please refer to the -pl_class1svcparams argument.
-
-pl_class3svcparams
¶
Please refer to the -pl_class1svcparams argument.
-
-pl_class4svcparams
¶
Please refer to the -pl_class1svcparams argument.
-
-pl_reasoncode
¶
The default value is 3.
-
-pl_reasonexplanation
¶
The default value is 0F.
-
-pl_vendorunique
¶
The default value is 0.
-
-pl_nportid
¶
The default value is 000000.
-
-pl_portname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-pl_cdbtype
¶
Specifies the cdb type for payload when the payload type is fcpcmnd. Possible values are cdb6, cdb10, r_6, r_10, r_buff, r_l10, r_capacity10, w_6, w_10, w_buff, w_l10, w_verify10, xd_r10, xd_w10, ssu, ms_6, ms_10, and r_lun. This argument is mandatory when -mode is set to create or modify.
-
-pl_fcplun
¶
The default value is 000000000000000.
-
-pl_cmndrefnum
¶
The default value is 0.
-
-pl_reserved
¶
The default value is 0.
-
-pl_priority
¶
The default value is 0.
-
-pl_taskattrib
¶
The default value is 000.
-
-pl_taskmgmtflags
¶
The default value is 00.
-
-pl_addifcpcdblen
¶
The default value is 0.
-
-pl_rdata
¶
The default value is 0.
-
-pl_wdata
¶
The default value is 0.
-
-pl_fcpdi
¶
The default value is 00000000.
-
-pl_fcpbirddi
¶
The default value is 00000000.
-
-pl_cdb_miscinfo
¶
The default value is 000.
-
-pl_cdb_miscinfo1
¶
The default value is 000.
-
-pl_cdb_lba
¶
The default value is 0.
-
-pl_cdb_len
¶
The default value is 0.
-
-pl_cdb_control
¶
The default value is 00.
-
-pl_cdb_service
¶
The default value is 00000.
-
-pl_cdb_miscinfo2
¶
The default value is 00000000.
-
-pl_cdb_reserved
¶
The default value is 000.
-
-pl_cdb_transferlen
¶
The default value is 0.
-
-pl_cdb_rdprotect
¶
The default value is 000.
-
-pl_cdb_dpo
¶
The default value is 0.
-
-pl_cdb_fua
¶
The default value is 0.
-
-pl_cdb_fua_nv
¶
The default value is 0.
-
-pl_cdb_obsolete
¶
The default value is 0.
-
-pl_cdb_reserved2
¶
The default value is 000.
-
-pl_cdb_groupnum
¶
The default value is 0.
-
-pl_cdb_mode
¶
The default value is 0.
-
-pl_cdb_bufferid
¶
The default value is 0.
-
-pl_cdb_bufferoffset
¶
The default value is 0.
-
-pl_cdb_allolen
¶
The default value is 0.
-
-pl_cdb_pblock
¶
The default value is 0.
-
-pl_cdb_corrct
¶
The default value is 0.
-
-pl_cdb_reserved3
¶
The default value is 0000000.
-
-pl_cdb_pmi
¶
The default value is 0.
-
-pl_cdb_wrprotect
¶
The default value is 000.
-
-pl_cdb_paramlistlen
¶
The default value is 0.
-
-pl_cdb_wr_uncor
¶
The default value is 0.
-
-pl_cdb_core_dis
¶
The default value is 0.
-
-pl_cdb_xorpinfo
¶
The default value is 0.
-
-pl_cdb_disablewr
¶
The default value is 0.
-
-pl_cdb_immed
¶
The default value is 0.
-
-pl_cdb_reserved1
¶
The default value is 00.
-
-pl_cdb_pwrcondmod
¶
The default value is 000.
-
-pl_cdb_pwrcond
¶
The default value is 000.
-
-pl_cdb_noflush
¶
The default value is 0.
-
-pl_cdb_loej
¶
The default value is 0.
-
-pl_cdb_start
¶
The default value is 0.
-
-pl_cdb_dbd
¶
The default value is 0.
-
-pl_cdb_pc
¶
The default value is 00.
-
-pl_cdb_pagecode
¶
The default value is 0.
-
-pl_cdb_subpagecode
¶
The default value is 00.
-
-pl_cdb_llbaa
¶
The default value is 0.
-
-pl_cdb_selectreport
¶
The default value is 00.
-
-pl_recordlen
¶
The default value is 10.
-
-pl_reserved
¶
The default value is 000000.
-
-pl_principalswitchpriority
¶
The default value is ff.
-
-pl_pagelen
¶
The default value is 10.
-
-pl_principalswitchname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-pl_domainid_lists
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -domainid 00 -reserved1 0000 -reserved2 00000000 -switchname 20:00:10:94:00:00:00:01 }
-
-pl_multiid_lists
¶
This argument represents a list of keyed values, The keys and their default values are listed below:
{ -multicastgroupnumber 0 -reserved1 0000 -reserved2 000000000000000000000000 }
-
-pl_notmeaningful
¶
The default value is 00000000.
-
-pl_originswitchname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-pl_respondswitchname
¶
The default value is 20:00:10:94:00:00:00:01.
-
-pl_flags
¶
The default value is 00000000.
-
-pl_vendorescid
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -type 13 -length 3 -reserved 0000 -vendorid 00000000 }
-
-pl_fspfheader
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -fspfversion 02 -obsoletedfcsw4 00 -authenticationtype 00 -reserved 00 -originatingdomainid 00000001 -authentication 000000000000000 }
-
-pl_lsr_lists
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -lsrtype 01 -reserved1 00 -lsrage 2 -reserved2 00000000 -linkstateid 00000001 -advdomainid 00000000 -lsincarnationnumber 0 -reserved 0000 }
-
-pl_lsh_lists
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -lsrtype 01 -reserved1 00 -lsrage 1 -reserved2 00000000 -linkstateid 00000001 -advdomainid 00000000 -lsincarnationnumber 0 }
-
-pl_hellointerval
¶
The default value is 20.
-
-pl_deadinterval
¶
The default value is 80.
-
-pl_rxdomainid
¶
The default value is 00000001.
-
-pl_reserved2
¶
The default value is 00.
-
-pl_origiportindex
¶
The default value is 0.
-
-pl_porttype
¶
The possible values are unidentified, nxport, nlport, nport, flport, fport, fnlport, eport and bport.
-
-pl_portid
¶
The default value is 000000.
-
-pl_portname
¶
The default value is 20:00:10:94:00:00:00:00.
-
-pl_nodename
¶
The default value is 10:00:10:94:00:00:00:00.
-
-pl_symbolicportname
¶
The default value is {}.
-
-pl_symbolicnodename
¶
The default value is {}.
-
-pl_initprocessassociator
¶
The default value is 00:00:00:00:00:00:00:00.
-
-pl_ipaddrnode
¶
The default value is 00000000000000000000000000000000.
-
-pl_classofservice
¶
The default value is 00000000.
-
-pl_fc4types
¶
- The default value is 0000010000000000000000000000000000
- 000000000000000000000000000000
-
-pl_ipaddrport
¶
The default value is 00000000000000000000000000000000.
-
-pl_fabricportname
¶
The default value is 20:00:10:94:00:00:00:00.
-
-pl_reserved3
¶
The default value is 00.
-
-pl_hardaddr
¶
The default value is 000000.
-
-pl_ctiu
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -revision 01 -inid 000000 -gstype fc -gssubtype 02 -options 00 -reserved 00 -commandrespondcode 0000 -maximumresidualsize 0000 -fragmentid 00 -reserved 00 }
-
-pl_portidentifier_list
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -control 00000000 -portidentifier 000000 }
-
-pl_portname_list
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -control 00000000 -portidentifier 000000 -reserved 00000000 -portname 20:00:10:94:00:00:00:00 }
-
-pl_nodename_list
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -control 00000000 -portidentifier 000000 -reserved 00000000 -nodename 10:00:10:94:00:00:00:00 }
-
-pl_basiczoning_list
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -activezonesetlength 0 -zonesetdatabaseobjectlength 0 }
-
-pl_enhancezoning_list
¶
This argument represents a list of keyed values. The keys and their default values are listed below:
{ -reserved 0000 -enhancedzoningflags 00000000000000000000000000000000 -activezonesetlength 0 -zonesetdatabaseobjectlength 0 }
-
-pl_protocolver
¶
The default value is 00.
-
-pl_obsolete1
¶
The default value is 00.
-
-pl_obsolete2
¶
The default value is 00.
-
-pl_obsolete3
¶
The default value is 00.
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-pl_command
-pl_payload
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):
stream_id The FCoE traffic handle
status Success (1) or failure (0) of the operation.
procName The function name
log An error message (if the operation failed).
Description¶
The sth::fcoe_traffic_config configures FCoE to modify stream blocks set up
by the sth::traffic_config
function. Use the sth::fcoe_traffic_config
function to create new FCoE frames, modify existing FCoE frames, or reset
FCoE frames. (Use the -mode argument to specify the type of operation, and
see the Notes for this section for more information.)
When you create a FCoE frame, the Spirent HLTAPI adds FCoE to the
Ethernet Layer 2 frame to modify the stream block specified by the -handle
argument. To configure traffic, use the arguments of the
sth::fcoe_traffic_config
function to specify values for fields of an FCoE
datagram. When you start traffic during the test, Spirent HLTAPI generates
frames containing protocol headers based on the argument values. The
arguments provide information such as version, SOF, EOF, and other
datagram values.
However, the availability of the arguments is determined by the -pl_id and other arguments. The information below explains when you can select the specific arguments.
The following arguments are available whatever -pl_id is set to:
-sof, -eof, -reserved1, -reserved2, -reserved3, -reserved4,
-reserved5, -version, -h_did, -h_sid, -h_type, -h_framecontrol,
-h_seqid, -h_dfctl, -h_seqcnt, -h_origexchangeid,
-h_responseexchangeid, -h_parameter.
Except those arguments, other arguments are also available when the corresponding payload type is enabled in -pl_id. The arguments are described below: :
When custom is indicated in -pl_id, you can specify -pl_payload.
When plogiacc, plogireq, flogireq, flogiacc, fdiscreq, or fdiscacc is indicated in -pl_id, the following arguments are available:
-pl_reserved1, -pl_nportname, -pl_nodename, -pl_vendorversionlevel,
-pl_commonsvcparams, -pl_class1svcparams, -pl_class2svcparams,
-pl_class3svcparams, -pl_class4svcparams
When plogirjt, flogirjt, fdiscrjt, or logorjt is indicated in -pl_id, the following arguments are available:
-pl_reserved1, -pl_reserved2, -pl_reasoncode, -pl_explanationcode,
-pl_vendorunique
When logoreq is indicated in -pl_id, the following arguments are available:
-pl_reserved1, -pl_portname, -pl_nportid
When you specify logoacc for the -pl_id argument, these arguments are available:
-pl_reserved1
When fcpcmnd is indicated in -pl_id, you can specify these arguments:
-pl_cdbtype, -pl_fcplun, -pl_cmndrefnum, -pl_reserved, -pl_priority,
-pl_taskattrib, -pl_taskmgmtflags, -pl_addifcpcdblen, -pl_rdata,
-pl_wdata, -pl_fcpdl, -pl_fcpbirddl
When you indicate fcpcmnd in the -pl_id argument and set one or more of the arguments above to the specific values, you can specify the corresponding arguments. The information below provides the arguments that must be set and the corresponding arguments that you can specify.
When you set -pl_cdbtype to cdb6, these arguments are available:
-pl_cdb_miscinfo, -pl_cdb_lba, -pl_cdb_len, -pl_cdb_control
When -pl_cdbtype is set to cdb10, you can specify these options:
-pl_cdb_miscinfo1, -pl_cdb_service, -pl_cdb_lba,
-pl_cdb_miscinfo2, -pl_cdb_len, -pl_cdb_control
When -pl_cdbtype is set to r_6, these arguments are available:
-pl_cdb_reserved, -pl_cdb_lba, -pl_cdb_transferlen,
-pl_cdb_control
When -pl_cdbtype is set to r_10, these arguments are also available:
-pl_cdb_rdprotect, -pl_cdb_dpo, -pl_cdb_fua, -pl_cdb_reserved1,
-pl_cdb_fua_nv, -pl_cdb_obsolete, -pl_cdb_lba, -pl_cdb_reserved2,
-pl_cdb_groupnum, -pl_cdb_transferlen, -pl_cdb_control
When -pl_cdbtype is set to r_buff, these arguments are available:
-pl_cdb_mode, -pl_cdb_bufferid, -pl_cdb_bufferoffset,
-pl_cdb_allolen, -pl_cdb_control
When -pl_cdbtype is set to r_l10, these arguments are available:
-pl_cdb_reserved1, -pl_cdb_pblock, -pl_cdb_corrct,
-pl_cdb_obsolete, -pl_cdb_lba, -pl_cdb_reserved2,
-pl_cdb_transferlen, -pl_cdb_control
When -pl_cdbtype is set to r_capacity10, these arguments are available:
-pl_cdb_reserved1, -pl_cdb_obsolete, -pl_cdb_lba,
-pl_cdb_reserved2, -pl_cdb_reserved3, -pl_cdb_pmi,
-pl_cdb_control
When -pl_cdbtype is set to w_6, these arguments are available:
-pl_cdb_reserved, -pl_cdb_lba, -pl_cdb_transferlen,
-pl_cdb_control
When -pl_cdbtype is set to w_10, these arguments are available:
-pl_cdb_wrprotect, -pl_cdb_dpo, -pl_cdb_fua, -pl_cdb_reserved1,
-pl_cdb_fua_nv, -pl_cdb_obsolete, -pl_cdb_lba, -pl_cdb_reserved2,
-pl_cdb_groupnum, -pl_cdb_transferlen, -pl_cdb_control
When -pl_cdbtype is set to w_buff, you can specify these arguments:
-pl_cdb_mode, -pl_cdb_bufferid, -pl_cdb_bufferoffset,
-pl_cdb_paramListlen, -pl_cdb_control
When -pl_cdbtype is set to w_l10, these arguments are available:
-pl_cdb_core_dis, -pl_cdb_wr_uncor, -pl_cdb_pblock
-pl_cdb_reserved1, -pl_cdb_obsolete, -pl_cdb_lba,
-pl_cdb_reserved2, -pl_cdb_transferlen, -pl_cdb_control
When -pl_cdbtype is set to w_verify10, these arguments are available:
-pl_cdb_wrprotect, -pl_cdb_dpo, -pl_cdb_reserved1,
-pl_cdb_bytchk, -pl_cdb_obsolete, -pl_cdb_lba,
-pl_cdb_reserved2, -pl_cdb_groupnum, -pl_cdb_transferlen,
-pl_cdb_control
When pl_cdbtype is set toxd_r10, these arguments are also available:
-pl_cdb_reserved1 xorpinfo, -pl_cdb_lba, -pl_cdb_reserved2,
-pl_cdb_groupnum, -pl_cdb_transferlen, -pl_cdb_control
When -pl_cdbtype is set toxd_w10, these arguments are available:
-pl_cdb_wrprotect, -pl_cdb_dpo, -pl_cdb_fua,
-pl_cdb_disablewrite, -pl_cdb_fua_nv, -pl_cdb_reserved1,
-pl_cdb_lba, -pl_cdb_reserved2, -pl_cdb_groupnum,
-pl_cdb_transferlen, -pl_cdb_control
When -pl_cdbtype is set tossu, these arguments are available:
-pl_cdb_reserved immed, -pl_cdb_reserved1, -pl_cdb_reserved2,
-pl_cdb_pwrcondmod, -pl_cdb_pwrcond, -pl_cdb_reserved3 noflush,
-pl_cdb_loej, -pl_cdb_start, -pl_cdb_control
When -pl_cdbtype is set toms_6, these arguments are available:
-pl_cdb_reserved1, -pl_cdb_dbd, -pl_cdb_reserved2, -pl_cdb_pc,
-pl_cdb_pagecode, -pl_cdb_subpagecode, -pl_cdb_allolen,
-pl_cdb_control
When pl_cdbtype is set toms_10, these arguments are available:
-pl_cdb_reserved1, -pl_cdb_llbaa, -pl_cdb_dbd,
-pl_cdb_reserved2, -pl_cdb_pc, -pl_cdb_pagecode,
-pl_cdb_subpagecode, -pl_cdb_reserved3, -pl_cdb_allolen,
-pl_cdb_control
When -pl_cdbtype is set tor_lun, these arguments are available:
-pl_cdb_reserved1, -pl_cdb_selectreport, -pl_cdb_reserved2,
-pl_cdb_allolen, -pl_cdb_reserved3, -pl_cdb_control
When efpreq is indicated in -pl_id, these arguments are available:
-pl_recordlen, -pl_principalswitchpriority, -pl_principalswitchname,
-pl_reserved, -pl_domainid_lists, -pl_multiid_lists
When efpacc is indicated in the -pl_id argument, these arguments are available:
-pl_pagelen, -pl_principalswitchpriority, -pl_principalswitchname,
-pl_reserved, -pl_domainid_lists, -pl_multiid_lists
When iareq is indicated in the -pl_id argument, these arguments are available:
-pl_notmeaningful, -pl_originswitchname
When diaacc is indicated in -pl_id, these arguments are available:
-pl_notmeaningful, -pl_respondswitchname
When escreq is indicated in -pl_id, the following arguments are available:
-pl_flags, -pl_vendorescid
- When escacc is indicated in -pl_id, these arguments are available::
- -pl_reserved, -pl_vendorescid
When hloreq is indicated in -pl_id, these arguments are available:
-pl_reserved1, -pl_hellointerval, -pl_deadinterval, -pl_rxdomainid,
-pl_reserved2, -pl_origiportindex, -pl_fspfheader
When lsureq is indicated in -pl_id, these arguments are available:
-pl_reserved 000000, -pl_flags, -pl_fspfheader, -pl_lsr_lists
When lsareq is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_flags, -pl_fspfheader, -pl_lsh_lists
When ganxtacc is indicated in -pl_id, these arguments are available:
-pl_porttype, -pl_portid, -pl_portname, -pl_nodename,
-pl_symbolicportname, -pl_symbolicnodename, -pl_initprocessassociator,
-pl_ipaddrnode, -pl_classofservice, -pl_fc4types, -pl_ipaddrport,
-pl_fabricportname, -pl_reserved3, -pl_hardaddr, -pl_ctiu
When gpnidacc is indicated in -pl_id, these arguments are available:
-pl_portname, -pl_ctiu
When gnnidacc is indicated in -pl_id these arguments are available:
-pl_nodename, -pl_ctiu
When gcsidacc is indicated in -pl_id, these arguments are available:
-pl_classofservice, -pl_ctiu
When gftidacc is indicated in -pl_id, these arguments are available:
-pl_fc4types, -pl_ctiu
When gptidacc is indicated in -pl_id, these arguments are available:
-pl_porttype, -pl_ctiu
When gfpnidacc is indicated in -pl_id, these arguments are available:
-pl_fabricportname, -pl_ctiu
When gspnidacc is indicated in -pl_id, these arguments are available:
-pl_symbolicportname, -pl_ctiu
When gffidacc is indicated in -pl_id, these arguments are available:
-pl_fc4features, -pl_ctiu
When gidpnacc is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_ctiu
When gidnnacc is indicated in -pl_id, these arguments are available:
-pl_portidentifier_list, -pl_ctiu
When gsnnnnacc is indicated in -pl_id, these arguments are available:
-pl_symbolicnodename, -pl_ctiu
When gidftacc is indicated in -pl_id, these arguments are available:
-pl_portidentifier_list, -pl_ctiu
When gpnftacc is indicated in -pl_id, these arguments are available:
-pl_portname_list, -pl_ctiu
When gnnftacc is indicated in -pl_id, these arguments are available:
-pl_nodename_list, -pl_ctiu
When rsnnnn is indicated in -pl_id, these arguments are available:
-pl_symbolicnodename, -pl_nodename, -pl_ctiu
When rffidis indicated in -pl_id, these arguments are available:
-pl_reserved1, -pl_reserved2, -pl_fc4featurebits, -pl_typecode,
-pl_ctiu
When rspnid is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_symbolicportname, -pl_ctiu
When rptid is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_porttype, -pl_ctiu
When rftid is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_fc4types, -pl_ctiu
When rcsid is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_classofservice, -pl_ctiu
When rnnid is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_nodename, -pl_ctiu
When rpnid is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_portname, -pl_ctiu
When daid is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_portid, -pl_ctiu
When mergereq is indicated in -pl_id, these arguments are available:
-pl_protocolver basiczoning_list, -pl_enhancezoning_list
When mergereqacc is indicated in -pl_id, these arguments are available:
-pl_reserved, -pl_obsolete1, -pl_obsolete2, -pl_obsolete3
Examples¶
#### HLTAPI for Tcl ####
You must create Layer 2 traffic with the sth::traffic_config command first. The following example creates Layer 2 traffic:
set returnedString [sth::traffic_config\
-mode create\
-port_handle $port1\
-l2_encap ethernet_ii\
-transmit_mode continuous\
-rate_pps 1000\
]
puts "l2_traffic\n$returnedString"
keylget returnedString stream_id sb
The output for the example above:
{stream_id streamblock1} {status 1}
To create the FCoE frame in the Ethernet Layer 2 frame (In this case, the FCoE frame will be in the payload of the Ethernet Layer 2 frame). Spirent HLTAPI generator will generate FCoE traffic based on the following arguments:
set fcoe_header "-sof sofn3 -eof eofn -reserved1 0
-reserved2 0 -reserved3 0 \
-reserved4 0 -reserved5 0 -version 0"
set fc_header "-h_rctl 22 -h_did 0 -h_csctl 0 -h_sid 0 -h_type 0
-h_framecontrol 0 -h_seqid 0 \
-h_dfctl 0 -h_seqcnt 0 -h_origexchangeid 0
-h_responseexchangeid ffff -h_parameter f"
set fcoe_traffic_config "sth::fcoe_traffic_config \
-handle $sb \
-mode create \
$fcoe_header \
$fc_header \
-pl_id fcpcmnd \
-pl_fcplun 0 \
-pl_cmndrefnum 0 \
-pl_reserved 0 \
-pl_priority 0 \
-pl_taskattrib 0 \
-pl_taskmgmtflags 0\
-pl_cdbtype cdb6 \
-pl_cdb {-miscInfo 0 -lba 0 -length 0 -control 0} \
set returnedString [eval $fcoe_traffic_config]
puts "Create fcpcmnd (cdb6)\n$returnedString"
The output for the example above:
{status 1} {procName sth::fcoe_traffic_config} {streamid streamblock1}
The following example modifies the FCoE:
set pl_commonsvcparams "-fcphverhigh 0 -fcphverlow 20 -b2bcredit 10\
-commfeatures 8000 -rcvdatasize 840 \
-totalconcurrentseq 2 -reloffsetbyinfocategory 0\
-edtov 7d0"
set pl_classsvcparams "-serviceoptions 0 -ictl 0 -rctl 0
-recdatafieldsize 840 -currentseq 01 -endtoendcredit 0 \
-openseqperexchange 1 -reserved1 0 -reserved2 0 "
set fcoe_traffic_config "sth::fcoe_traffic_config \
-mode modify\
-handle $sb\
-pl_id plogireq \
-pl_reserved1 0 \
-pl_nportname 20:00:10:94:00:00:00:01 \
-pl_nodename 10:00:10:94:00:00:00:01 \
-pl_vendorversionlevel 0 \
-pl_commonsvcparams {$pl_commonsvcparams}\
-pl_class1svcparams {$pl_classsvcparams}
"
set returnedString [eval $fcoe_traffic_config]
puts "Change to plogireq by modify\n$returnedString"
The output for the example above:
{status 1} {procName sth::fcoe_traffic_config} {streamid streamblock1}
The example below deletes FCoE frames from the payload of Ethernet Layer 2 frames:
set returnedString [sth::fcoe_traffic_config -mode reset -handle $sb]
puts "Delete FCoE by reset\n$returnedString"
The output for the example above:
{status 1} {procName sth::fcoe_traffic_config} {streamid streamblock1}
#### HLTAPI for Python ####
The following example creates Layer 2 traffic first:
streamblock_ret1 = sth.traffic_config (
mode = 'create',
port_handle = port_handle[0],
l2_encap = 'ethernet_ii',
mac_src = '00:10:94:00:00:01',
ether_type = '88B5',
mac_dst = '00:10:94:00:00:02',
enable_control_plane= '0',
l3_length = '2030',
name = 'StreamBlock_1-2',
fill_type = 'constant',
fcs_error = '0',
fill_value = '0',
traffic_state = '1',
high_speed_result_analysis= '1',
length_mode = 'fixed',
disable_signature = '0',
enable_stream_only_gen= '1',
pkts_per_burst = '1',
inter_stream_gap_unit= 'bytes',
burst_loop_count = '30',
transmit_mode = 'continuous',
inter_stream_gap = '12',
rate_percent = '10');
Sample Output::
{'stream_id': 'streamblock1'} {'status': '1'}
To create the FCoE frame in the Ethernet Layer 2 frame (In this case, the FCoE frame will be in the payload of the Ethernet Layer 2 frame, with payload type efpreq), Spirent HLTAPI generator will generate FCoE traffic based on the following arguments:
stream_fcoe_ret = sth.fcoe_traffic_config (
handle = stream_id,
mode = 'create',
reserved1 = '0',
eof = 'eofn',
reserved2 = '00000000',
reserved3 = '00000000',
reserved4 = '000000',
reserved5 = '000000',
sof = 'soff',
version = '0',
h_parameter = '00000000',
h_dfctl = '00',
h_responseexchangeid= 'FFFF',
h_type = '01',
h_rctl = '02',
h_framecontrol = '290000',
h_seqid = '00',
h_sid = 'fffffd',
h_did = 'fffffd',
h_csctl = '00',
h_origexchangeid = '0000',
h_seqcnt = '0000',
pl_principalswitchname= '20:00:10:94:00:00:00:01',
pl_principalswitchpriority= 'FF',
pl_recordlen = '10',
pl_id = 'efpreq');
Sample Output:
{'status': '1', 'procName': 'sth::fcoe_traffic_config',
'streamid': 'streamblock1'}
#### HLTAPI for Perl ####
The following example creates Layer 2 traffic first:
my %streamblock_ret1 = sth::traffic_config (
mode => 'create',
port_handle => "$hport[1]",
l2_encap => 'ethernet_ii',
mac_src => '00:10:94:00:00:01',
ether_type => '88B5',
mac_dst => '00:10:94:00:00:02',
enable_control_plane=> '0',
l3_length => '2030',
name => 'StreamBlock_1-2',
fill_type => 'constant',
fcs_error => '0',
fill_value => '0',
traffic_state => '1',
high_speed_result_analysis=> '1',
length_mode => 'fixed',
disable_signature => '0',
enable_stream_only_gen=> '1',
pkts_per_burst => '1',
inter_stream_gap_unit=> 'bytes',
burst_loop_count => '30',
transmit_mode => 'continuous',
inter_stream_gap => '12',
rate_percent => '10');
Sample Output:
$VAR1 = 'status';
$VAR2 = '1';
$VAR3 = 'stream_id';
$VAR4 = 'streamblock1';
To create the FCoE frame in the Ethernet Layer 2 frame (In this case, the FCoE frame will be in the payload of the Ethernet Layer 2 frame, with payload type efpreq), Spirent HLTAPI generator will generate FCoE traffic based on the following arguments:
my %stream_fcoe_ret = sth::fcoe_traffic_config (
handle => "$stream_id",
mode => 'create',
reserved1 => '0',
eof => 'eofn',
reserved2 => '00000000',
reserved3 => '00000000',
reserved4 => '000000',
reserved5 => '000000',
sof => 'soff',
version => '0',
h_parameter => '00000000',
h_dfctl => '00',
h_responseexchangeid=> 'FFFF',
h_type => '01',
h_rctl => '02',
h_framecontrol => '290000',
h_seqid => '00',
h_sid => 'fffffd',
h_did => 'fffffd',
h_csctl => '00',
h_origexchangeid => '0000',
h_seqcnt => '0000',
pl_principalswitchname=> '20:00:10:94:00:00:00:01',
pl_principalswitchpriority=> 'FF',
pl_recordlen => '10',
pl_id => 'efpreq');
Sample Output:
$VAR1 = 'procName';
$VAR2 = 'sth::fcoe_traffic_config';
$VAR3 = 'status';
$VAR4 = '1';
$VAR5 = 'streamid';
$VAR6 = 'streamblock1';
End of Procedure Header