FCoE Functions¶
fcoe config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- 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 FCBB_E (FC over Ethernet) device discovery, initialization, and maintenance.
Synopsis:
Note: M indicates the argument is `Mandatory`.
fcoe config
mode= {create|enable|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 ``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.
enable Starts emulating FCoE device(s) on the device
specified by the 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 64bit 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 64bit. 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 (FCOUI) 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
FCFS-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
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
connect
function.)Example:
The following segment is an example for fcoe config:: set returnedString [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 [fcoe config handle $fcoeDevice mode modify vlan_pri 1 ] puts "Modify FCoE device\n$returnedString" set returnedString 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}
fcoe control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Discovers, logins, logouts, starts, and stops the specified FCoE devices.
Synopsis:
Note: M indicates the argument is `Mandatory`.
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
``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 FCSW-5)
that is able to forward FCoE frames across one or
more FCFMACs, 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
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:
The following segment is an example for fcoe config:: set returnedString [fcoe stats handle= $fcoeDevice ] puts "$returnedString" Sample Output:: {status 1} {handle host1} {procName fcoe_control}
fcoe stats¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- 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 indicates the argument is `Mandatory`.
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
``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 Substate 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
fcoe stats
function retrieves a list of aggregate statistics for the FCoE device configured on the specified port.Example:
The following example retrieves statistics of the FCoE device configured on the specified port:: set returnedString fcoe stats handle=$fcoeDevice mode summary puts "$returnedString" set returnedString 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 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 fcoe stats}
fip traffic config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Creates, modifies, or deletes FIP raw stream blocks, which are stream blocks without endpoints such as hosts and routers.
Please refer to FCBB-5, FC-FS-2, and FC-FS-3 for more information.
Synopsis:
Note: M indicates the argument is `Mandatory`.
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
traffic config; mode=is set to modify or reset,
the value of handle must be the returned value of
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.
|-----------------------------------------------------------------|
|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1 |1 |1|1|1|1| | | | | | | | | | |
|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5 |4 |3|2|1|0|9|8|7|6|5|4|3|2|1|0|
0 | | version | reserved1 |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
1 | operationcode | reserved2 | subcode |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
2 | Descriptor List Length (auto) |fp|sp| reserved3 |a|s|f|
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
3 |FIP Descriptor List(m works, depends on the values list of dl_id)|
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
n-1 | padding (n-m-3) |
|-----------------------------------------------------------------|
The FIP_Header is subdivided into fields as shown above::
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
FCFMAC. The FCFMAC 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 FCFS-3) contained in the
descriptor. The Name_Identifier is a 64bit identifier, with
a 60bit value preceded with a 4bit
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 FCFS-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.
vxport_reserved
The default value is 0000.
fka_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.
|---------------------------------------------------------------|
|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1| | | | | | | | | | |
|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|
0 | h_rctl | h_did |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
1 | h_csctl | h_did |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
2 | h_type | h_framecontrol |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
3 | h_seqid | h_dfctl | h_seqcnt |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
4 | h_origexchangeid | h_responseexchangeid |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
5 | h_parameter |
|---------------------------------------------------------------|
The Frame_Header is subdivided into fields as shown above::
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::
|--------------------------------------------------------------------|
|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1 |1 |1 |1 |1|1| | | | | | | | | | |
|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5 |4 |3 |2 |1|0|9|8|7|6|5|4|3|2|1|0|
0 |fcphversionhigh| fcphversionlow| buffertobuffercredit |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|---|-|-|-|-|-|-|-|-|-|-|-|-|
1 | commfeatures |bufferto- | rcvdatasize |
1 | |buffercredit| |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|---|-|-|-|-|-|-|-|-|-|-|-|-|
2 | totalconcurrentsequence | reloffsetbyinfocategory |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|---|-|-|-|-|-|-|-|-|-|-|-|-|
5 | edtov |
|--------------------------------------------------------------------|
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::
|----------------------------------------------------------------|
|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1 |1|1|1|1|1|1| | | | | | | | | | |
|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6 |5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|
0 | serviceoptions | ictl (Initiator Control) |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
1 | rctl (Recipient Control) | recdatafieldsize |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
3 | reserved1 |currentsequences| endtoendcredit |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
4 | openseqperexchange | reserved2 |
|----------------------------------------------------------------|
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.
|---------------------------------------------------------------------|
|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1| | | | | | | | | | |
|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5 |4 |3 |2 |1 |0 |
| pl_code |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
| pl_revision | pl_flags | pl_bbscn |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
| pl_ratov (R_A_TOV) |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
| pl_edtov (E_D_TOV) |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
| pl_reqinterconnportname(Requestor/Responder Interconnect Port Name) |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
| pl_reqswitchname (Requestor/Responder Switch Name) |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
| pl_classfsvcparams(Class F Service Parameters) |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
|pl_class1interconnectportparams(Class 1 Interconnect Port Parameters)|
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
|pl_class2interconnectportparams(Class 2 Interconnect Port Parameters)|
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
|pl_class3interconnectportparams(Class 3 Interconnect Port Parameters)|
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--|--|--|--|--|--|
| pl_islflowcontrol (ISL Flow Control) |
| ... |
|---------------------------------------------------------------------|
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.
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):
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
Example:
To create a Layer 2 frame by traffic config:: set returnedString [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 "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 "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 fip traffic config mode=reset handle $sb dl_id macaddr puts "Delete the macaddr\n$returnedString" To delete the whole FIP frame:: set returnedString 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 fip traffic config} {streamid streamblock1} Change to Flogi Accept Frame by modify {status 1} {procName fip traffic config} {streamid streamblock1} Delete the macaddr {status 1} {procName fip traffic config} {streamid streamblock1} Delete FIP by reset {status 1} {procName fip traffic config} {streamid streamblock1}
fcoe traffic config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- 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 indicates the argument is `Mandatory`.
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 traffic config mode=is
set to modify or reset, the handle must be the returned
value of the 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
fcoe traffic config. version=and the arguments
below. You can refer to FIBRE CHANNEL BACKBONE - 5 (FCBB-5) for more
information. The figure below shows the FCoE PDU format::
|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1| | | | | | | | | | |
|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|
0 | |version| reserveds1 |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
1 | reserved2 |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
2 | reserved3 |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
3 | reserveds1 | sof |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
4 | fc_frame (n words) |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
n+4 | eof | |
|---------------------------------------------------------------|
version
Specifies the FCoE version. It is a 4bit 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 12bit value. The default value is 000000000000.
reserved2
It is a 32bit hex value. The default value is 00000000.
reserved3
It is a 32bit hex value. The default value is 00000000.
reserved4
It is a 24bit hex value. The default value is 000000.
reserved5
It is a 24bit hex value. The default value is 000000.
|---------------------------------------------------------------|
|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1| | | | | | | | | | |
|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|
0 | h_rctl | h_did |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
1 | h_csctl | h_sid |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
2 | h_type | h_framecontrol |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
3 | h_seqid | h_dfctl | h_seqcnt |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
4 | h_origexchangeid | h_responseexchangeid |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
5 | h_parameter |
|---------------------------------------------------------------|
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 onebyte 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
threebyte field that contains the control information
relating to the frame content. The default value is 000000.
h_seqid
The SEQ_ID is a onebyte 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 onebyte 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 twobyte 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 twobyte 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 twobyte 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.
- Ciscospecific 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 fcoe traffic config configures FCoE to modify stream blocks set up by the
sth::traffic_config
function. Use the 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
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:
You must create Layer 2 traffic with the traffic config command first. The following example creates Layer 2 traffic:
set returnedString [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 sbThe 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 "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 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 "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 fcoe traffic config} {streamid streamblock1}The example below deletes FCoE frames from the payload of Ethernet Layer 2 frames:
set returnedString fcoe traffic config mode=reset handle $sb puts "Delete FCoE by reset\n$returnedString"The output for the example above:
{status 1} {procName fcoe traffic config} {streamid streamblock1}End of Procedure Header