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 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  "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