Ethernet EFM Functions

emulation efm config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:

Creates, modifies, deletes, or resets an emulated EFM router for a given port.

Ethernet in the First Mile (EFM) technology is a transparent extension of Ethernetbased LANs into wide area networks. No conversion of packet formats is required when transmitting between the LAN and WAN. EFM technology enables service providers to build and provision costeffective, highperformance broadband access to their customers, providing businesses and residences with voice, video, and data over a single gigabit Ethernet connection.

EFM supports remote failure indication, remote loopback, link monitoring, and management channel. The emulated router and its peer transmit packets periodically over a path between the devices. If a device stops receiving packets for long enough, the link is assumed to be broken.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation efm config
        mode= {create|modify|destroy|reset} M
        port_handle= <port_handle>
        critical_event= {0|1}
        dying_gasp= {0|1}
        error_frame_period_threshold <065535= >
        error_frame_period_window= <1-65535>
        error_frame_threshold <065535= >
        error_frame_summary_threshold= <0-65535>
        error_frame_summary_window= <100-9000>
        error_frame_window= <10-600>
        error_symbol_period_threshold <065535= >
        error_symbol_period_window= <1-65535>
        link_events= {0|1}
        link_fault= {0|1}
        link_notification_events_per_interval= <1-10>
        link_notifications_interval
        osi_enable= {0|1}
        osi_value= <hexadecimal>
        osi_oui= <000000FFFFFF>
        organization_specific_event_value
        organization_specific_event_oui= <000000FFFFFF>
        mac_local= <aa:bb:cc:dd:ee:ff>
        oam_mode= {active|passive}
        oui_value= <6 HEX chars>
        remote_loopback= {0|1}
        unidirectional= {0|1}
        variable_retrieval= {0|1}
        vsi_value= <8 HEX chars>
        variable_response_tx= {0|1}
        pdu_tx= {0|1}
        loopback_response_tx= {0|1}
        max_pdu_size= <4-2047>
        oam_version= <0-255>
        override_local_satisfied= {false|true|default}
        override_remote_stable= {false|true|default}
        override_revision= {0|1}
        revision= <0-65535>
        error_frame_count
        error_frame_period_count
        error_frame_summary_count
        error_symbol_period_count
        link_notifications_ose_oui
        link_notifications_ose_value
        loopback_response_timer= <1-10>
        lost_link_timer= {2 - 90}
        pdu_timer= <1-10>
        variable_response_timer= <1-10>
        variable_response_branch
        variable_response_data
        variable_response_indication= {0|1}
        variable_response_leaf
        variable_response_width
        variable_request_branch
        variable_request_leaf
        vlan_id= <0-4095>
        vlan_id_mode= { fixed|increment }
        vlan_id_step= <1-4094>
        vlan_user_priority= <0-7>
        vlan_outer_id= <0-4095>
        vlan_outer_id_mode= { fixed|increment }
        vlan_outer_id_step= <1-4094>
        vlan_outer_user_priority= <0-7>

Arguments:

critical_event
                Send Critical Event messages to signal the remote EFM
                router whether an unspecified critical event has occurred.
                Possible values are 0 and 1. The default is 0.

dying_gasp
                Send Dying Gasp messages to signal the remote EFM router
                whether an unrecoverable local fault has occurred.
                Possible values are 0 and 1. The default is 0.

error_frame_period_threshold
                The number of errored frames in the period must be equal to
                or greater than this value for Errored Frame Period Events
                to be generated. Possible values range from 0 to 65535. The
                default value is 30.

error_frame_period_window
                Defines the window, measured in received frames, within
                which the number of errored frames exceeds the threshold
                defined by the error_frame_period_threshold argument.
                Possible values range from 1 to 65535. The default value is
                300.

error_frame_threshold
                The number of detected errored frames in the period must be
                equal to or greater than this value for Errored Frame Events
                to be generated. Possible values range from 0 to 65535. The
                default value is 40.

error_frame_summary_threshold
                The number of errored frame seconds in the period must be
                equal to or greater than this value for Errored Frame
                Seconds Summary Event to be generated. Possible values range
                from 0 to 65535. The default value is 20.

error_frame_summary_window
                Defines the window, measured in 100ms intervals, within
                which the number of errored frame seconds exceeds the
                threshold defined by the error_frame_summary_threshold
                argument. Possible values range from 100 to 9000.The default
                value is 200.

error_frame_window
                Defines the window, measured in 100ms intervals, within
                which the number of errored frames exceeds the threshold
                defined by the error_frame_threshold argument. Possible
                values range from 10 to 600. The default value is 400.

error_symbol_period_threshold
                The number of errored symbols in the period must be equal to
                or greater than this value for Errored Symbol Period Events
                to be generated. Possible values range from 0 to 65535. The
                default value is 50.

error_symbol_period_window
                Defines the window, measured in number of symbols, within
                which the number of errored symbols exceeds the threshold
                defined by the error_symbol_period_threshold argument.
                Possible values range from 1 to 65535. The default value is
                500.

link_events
                Specifies whether the EFM emulated router supports signaling
                Link Events, which include Errored Symbol Period Events,
                Errored Frame Events, Errored Frame Period Events and
                Errored Frame Seconds Summary Events. Possible values are 0
                and 1. When the link_events argument is enabled, the
                emulated EFM router will send Event Notification OAMPDUs
                (Operation, Administration and Maintenance Protocol Data
                Unit) containing a Link Event TLV (Type Length Value) for
                every event to its peer. The default is 0.

link_fault
                Send Link Fault message in Information OAMPDU to signal the
                remote EFM router whether receive path is broken. Possible
                values are 0 and 1. The default is 0.

link_notification_events_per_interval
                Number of times to transmit the Link OAM event notification
                in a period. Possible values range from 1 to 10. The
                default is 2.

link_notifications_interval
                Specifies the initial time base in 100 ms intervals.
                The default is 0.

mac_local
                Defines the MAC address {aa:bb:cc:dd:ee:ff} of the EFM
                router. The mode argument must be set to either "config" or
                "modify".

mode
                Specifies the action to perform on the specified test port.
                This argument is `Mandatory`.  Possible values are create,
                modify, destroy, and reset. The modes are described below::


                create
                         Creates one emulated EFM router on the portspecified in
                         the port_handle argument. To create routers, specify
                         the port_handle argument. You must specify the
                         port_handle argument.

                modify
                         Changes the configuration for the EFM router on the
                         port identified by the port_handle argument. You must
                         specify the port_handle argument.

                destroy
                         Deletes the EFM router on the port specified in
                         the port_handle argument. You must specify the
                         port_handle argument.

                reset
                         Same as destroy mode.


oam_mode
                Defines the operation mode of EFM. Possible values are:

                active
                       Initiates the EFM OAM Discovery process and
                       can send any OAMPDU to its peer. At least one EFM
                       router in a P2P(point to point) link must be in active
                       mode.

                passive
                       Waits for the remote EFM router in active mode
                       to initiate the Discovery process.

                The default is active.

oui_value
                Defines the Organizational Unique Identifier (OUI) value.
                OUI is the first 24 bits of a MAC address for a network
                device, which indicates the specific vendor for that device
                as assigned by the IEEE. Specify this value as a string of
                six hexadecimal characters. The default is 000000.

osi_enable
                Specifies a list of Booleans to determine whether you want the
                data Organization Specific information TLV data in Information
                OAMPDUs to be applied. Possible values are 0 (No) and 1 (Yes).
                The default is 1. The length of the list must be the same as
                that the length of lists osi_value and osi_oui list.

osi_value
                Specifies a list of data fields of Organization Specific
                information TLV in Information OAMPDU except OUI. The default is
                00. The value should be in hexadecimal format with an even
                length. The length of the list must be the same as that of the
                length of lists osi_value and osi_enable.
                For example, {01}, {0102}, {030405}
osi_oui
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the OUI value in Organization Specific information TLV
                in Information OAMPDUs. Possible values range from 000000FFFFFF.
                The default is 001094. The length of the list must be the same
                as that of lists osi_value and osi_enable.

organization_specific_event_value
                Specifies the value of the Organization Specific OAMPDU data
                field except OUI. The default is 00. The value should be in
                hexadecimal format with an even length. (For example, {01},
                {0102}, {030405}).

organization_specific_event_oui
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the OUI value of the Organization Specific OAMPDU Data
                field. Possible values range from 000000FFFFFF. The default is
                001094.

port_handle
                Specifies the port on which to create, modify, destroy or
                reset the EFM router. This argument is `Mandatory` for the
                four modes (create|modify|destroy|reset).

remote_loopback
                Specifies that EFM emulation should attempt to put its peer
                into Remote Loopback mode. OAM remote loopback can be used
                for fault localization and link performance testing.
                Statistics from both the emulated EFM router and its peer
                can be queried and compared at any time while the peer of
                the emulated EFM router is in OAM remote loopback mode. When
                remote_loopback is enabled, the local EFM router in Active
                mode sends a Loopback Control OAMPDU to get the remote EFM
                router into Remote Loopback mode. The Passive EFM router is
                not permitted to send Loopback Control OAMPDUs. Possible
                values are 0 and 1. The default is 0.

unidirectional
                Specifies that EFM should run in Unidirectional mode. This
                is an OAMPDUbased mechanism that notifies the remote EFM
                router when one direction of a link is nonoperational and
                therefore data transmission is disabled. When a link is
                operating in Unidirectional OAM mode, the OAM sublayer
                ensures that only Information OAMPDUs with the Link Fault
                critical link event indication set. Meanwhile, no
                Information TLVs are sent across the link. Possible values
                are 0(off) and 1(on). The default is 0(off).

variable_retrieval
                Specifies that EFM emulation should have variable retrieval
                enabled. Possible values are 0 and 1. The default is 0,
                which indicates the emulated EFM router does not support
                sending Variable Response OAMPDUs.

vsi_value
                Defines the VendorSpecific Identifier (VSI) value. VSI is a
                32bit Identifier used to differentiate a vendor's product
                model or versions. Specify this value as a string of eight
                hexadecimal characters. The default is 00000000.

variable_response_tx
                `Spirent Extension (for Spirent HLTAPI only).`

                Enables or disables the transmission of variable responses.
                Possible values are 0 and 1. The default is 1.

pdu_tx
                `Spirent Extension (for Spirent HLTAPI only).`

                Enables or disables the transmission of PDUs. Possible values
                are 0 and 1. The default is 1.

loopback_response_tx
                `Spirent Extension (for Spirent HLTAPI only).`

                Enables or disables the transmission of loopback responses.
                Possible values are 0 and 1. The default is 1.

max_pdu_size
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the maximum OAMPDU size supported. Possible values
                range from 4 to 2047. The default is 1500.


oam_version
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the OAM version of the emulated router. Possible
                values range from 0 to 255. The default is 1.

override_local_satisfied
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies whether the local satisfied flag is to be overridden
                Possible values are::


                 false - Set local satisfied to false.

                 true - Set local satisfied to true.

                 default - Use the default handling of the local satisfied flag.

                The default is default.

override_remote_stable
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies whether the remote stable flag is to be overridden.
                Possible values are::


                 false - Set remote stable to false.

                 true - Set remote stable to true.

                 default - Use the default handling of the remote stable flag.

                The default is default.


override_revision
                `Spirent Extension (for Spirent HLTAPI only).`

                Enables or disables overriding of the revision number.
                Possible values are 0 and 1. The default is 0.

revision
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the current revision number. Possible values range
                from 0 to 65535. The default is 0. This argument is available
                when override_revision is set to 1.

error_frame_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the number of detected errored frames in the period,
                specified in 100 ms intervals. The default is 1.

error_frame_period_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the number of detected frame errors in the period,
                specified in terms of frames. The default is 1.

error_frame_summary_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the number of detected errored frame seconds in the
                period, specified in 100 ms intervals. The default is 1.

error_symbol_period_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the number of detected symbol errors in the period,
                specified in number of symbols. The default is 1.

link_notifications_ose_oui
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the OUI of Organization Specific Event TLV in Event
                Notification OAMPDUs. Possible values range from 000000 to
                FFFFFF. The default is 001094.

link_notifications_ose_value
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the Organization Specific Event TLV data in Event
                Notification OAMPDU except OUI. The default is 00. The value
                should be in hexadecimal format with an even length. (For
                example, {01}, {0102}, {030405})

loopback_response_timer
                `Spirent Extension (for Spirent HLTAPI only).`

                Number of seconds to wait for a loopback response. Possible
                values range from 1 to 10. The default is 1.

lost_link_timer
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the lost link timer used to reset the discovery state
                machine. Possible values range from 2 to 90. The default is 5.

pdu_timer
                `Spirent Extension (for Spirent HLTAPI only).`

                Number of seconds to wait for a received PDU and the interval at
                which Information PDUs are sent. Possible values range from 1 to
                10. The default is 1.

variable_response_timer
                `Spirent Extension (for Spirent HLTAPI only).`

                Number of seconds to wait for a variable response. Possible
                values range from 1 to 10. The default is 1.

variable_response_branch
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of Variable branches in Variable Response
                OAMPDUs. The value must be a onebyte hex. The default is 00.
                The length of the list must be the same as that of lists
                variable_response_data, variable_response_indication,
                variable_response_leaf and variable_response_width.

variable_response_data
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of Variable values in Variable Response OAMPDUs.
                The default is 00. The value should be in hexadecimal format
                with an even length. The length of the list must be the same as
                that of lists variable_response_branch,
                variable_response_indication, variable_response_leaf and
                variable_response_width. (For example, {01}, {0102}, {030405})

variable_response_indication
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of Booleans to determine whether to enable the
                indication bit of the variable width. Possible values are 0
                (disable) and 1 (enable). The default is 0. The length must be
                the same as that of lists variable_response_branch,
                variable_response_data, variable_response_leaf and
                variable_response_width.

variable_response_leaf
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of Variable leaves in Variable Response OAMPDUs.
                The value must be a twobyte hex. The default is 0000.
                length of the list must be the same as that of lists
                variable_response_branch, variable_response_indication,
                variable_response_data and variable_response_width.

variable_response_width
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of widths in Variable Response OAMPDUs. The
                default is 00. The length of the list must be the same as that
                of lists variable_response_branch,
                variable_response_indication, variable_response_leaf and
                variable_response_data.

variable_request_branch
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of Variable branches in Variable Request
                OAMPDUs. The value must be a onebyte hex. The default is 00.
                The length of the list must be the same as that of list
                variable_request_leaf.

variable_request_leaf
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of Variable leaves in Variable Request OAMPDUs.
                The value must be a twobyte hex. The default is 0000. The
                length of the list must be the same as that of list
                variable_request_branch.

vlan_id
                `Spirent Extension (for Spirent HLTAPI only).`

                The inner VLAN ID of VLAN subinterface. Possible values
                range from 0 to 4095. The default is 1.

vlan_id_mode
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies inner VLAN ID assignment for multiple router
                configurations. Valid values are "fixed" or "increment". If you
                specify "fixed", all of the routers will be assigned the same
                VLAN ID (the value of the vlan_id argument). If you specify
                "increment", then Spirent HLTAPI assigns unique VLAN IDs. When
                you use increment mode, you must also specify the vlan_id_step
                argument to define the increment value.

vlan_id_step
                `Spirent Extension (for Spirent HLTAPI only).`

                The step size by which the inner VLAN value is incremented when
                you set vlan_id_mode to "increment". Possible values range
                from 1 to 4094. You must specify the step when the count
                argument is greater than 1. The default is 1.

vlan_user_priority
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the inner VLAN priority for the inner
                VLANs on this port. Possible values
                range from 0 to 7. The default is 0.

vlan_outer_id
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the outer VLAN ID of VLAN subinterface.
                Possible values range from 0 to 4095. The default is 1.
                When you use vlan_outer_id, you must specify vlan_id.

vlan_outer_id_mode
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how Spirent TestCenter assigns VLAN tags to
                packets in the specified outer header when router count
                is greater than 1. Possible values are::


                 fixed -  The outer VLAN ID is the same for all packets.
                          The fixed outer VLAN ID is the value of the
                          vlan_outer_id argument.

                 increment - For all packets, the outer VLAN tag ID
                           increments by the step specified in the
                           vlan_outer_id_step argument.

vlan_outer_id_step
                `Spirent Extension (for Spirent HLTAPI only).`

                The amount by which to increment the specified outer VLAN ID
                (vlan_outer_id) for subsequent packets. Possible values
                range from 1 to 4094. You must specify this step when
                you specify "increment" for the vlan_outer_id_mode argument.

vlan_outer_user_priority
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the VLAN priority to assign to the outer header.
                Possible values range from 0 to 7. The default is 0.

Arguments Unsupported by Save as HLTAPI:

None
Ciscospecific Arguments:

The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:

passive_peer_only
pdu_count
mac_remote
automatic_discovery
error_symbol_period_event
error_frame_event
error_frame_period_event
error_frame_seconds_summary_event
organization_specific_event_enable
size
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 handle that identifies the router created by the
         ``emulation efm config`` function.

status   Success (1) or failure (0) of the operation.

log      An error message (if the operation failed).
Description:

The emulation efm config function creates, modifies, deletes, or resets an emulated EFM router. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

When you create an emulated router, use the port_handle argument to specify the Spirent HLTAPI port that the emulated router will use for EFM communication. (The port handle value is contained in the keyed list returned by the connect function.) Create mode returns the handle of the EFM router.

After you create an emulated EFM router, use the “emulation_efm_control mode start” command for Spirent HLTAPI to start the router communication. The EFM router in Active mode sends Information PDUs to initiate the Discovery process. It may send Event Notification PDUs when link_events is enabled and Loopback Control PDUs when remote_loopback is enabled. The EFM router in Passive mode waits for the EFM router in Active mode to initiate the Discovery process.

If the local EFM router and the remote EFM router are satisfied with the settings, an OAM link is established. During the test, use the emulation efm control function to stop individual routers.

Examples:

The following example creates an EFM router:

emulation efm config
     port_handle=                     $hltSourcePort
     mode=                             create
     critical_event=                   0
     dying_gasp=                       1
     error_frame_period_threshold=     100
     error_frame_period_window=        200
     error_frame_threshold=            50
     error_frame_summary_threshold=    40
     error_frame_summary_window=       150
     error_frame_window=               180
     error_symbol_period_threshold=    10
     error_symbol_period_window=       30
     link_events=                      1
     link_fault=                       0
     mac_local=                        "00.00.00.01.00.01"
     oam_mode=                         active
     oui_value=                        000001
     remote_loopback=                  1
     unidirectional=                   1
     variable_retrieval=               1
     vsi_value=                        00000001
     loopback_response_tx=             0
     pdu_tx=                           1
     variable_response_tx=             0
     max_pdu_size=                     1500
     oam_version=                      1
     override_local_satisfied=         true
     override_remote_stable=           true
     override_revision=                1
     revision=                         3
     error_frame_count=                2
     error_frame_period_count=         3
     error_frame_summary_count=        4
     error_symbol_period_count=        5
     link_notification_events_per_interval= 4
     link_notifications_interval=      1
     link_notifications_ose_oui=       000002
     link_notifications_ose_value=     {0708}
     loopback_response_timer=          2
     lost_link_timer=                  6
     pdu_timer=                        4
     variable_response_timer=          5
     organization_specific_event_oui=  000004
     organization_specific_event_value=    01
     osi_enable=                       {1 1}
     osi_oui=                         {000003 000004}
     osi_value=                       {0506 0708}
     variable_response_indication=    {1 1}
     variable_response_data=          {0506 08}
     variable_response_branch=        {02 03}
     variable_response_leaf=          {0003 0004}
     variable_response_width=         {03 05}
     variable_request_branch=         {01 02}
     variable_request_leaf=           {0001 0002}
     vlan_id=                         2
     vlan_id_mode=                    increment
     vlan_id_step=                    2
     vlan_user_priority=              1
     vlan_outer_id=                   10
     vlan_outer_id_mode=              increment
     vlan_outer_id_step=              2
     vlan_outer_user_priority=        2

Sample output for example shown above:

{handle router1} {status 1}

The following example modifies the created EFM router:

emulation efm config
     mode= modify
     port_handle= portHandle
     oam_mode= passive

Sample output for example shown above:

{handle router1} {status 1}

The following examples delete the specified EFM router:

emulation efm config
     mode= delete
     port_handle= portHandle
emulation efm config
mode= reset port_handle= portHandle

Sample output for example shown above:

{status 1}

emulation efm control

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
Starts or stops an EFM router from routing traffic for the specified port.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation efm control
       action=  {start|stop|start_variable_request|stop_variable_request|
                 start_loopback|stop_loopback|start_event_notification|
                 stop_event_notification|start_organization_specific_event|
                 stop_organization_specific_event|resume} M]
       port_handle= <port_handle_list> M
       pdu_packing= {single_tlv|batch_tlvs}
       period= <1-10>
       error_symbol_period_event_enable=  {0|1}
       error_frame_event_enable= {0|1}
       error_frame_period_event_enable= {0|1}
       error_frame_seconds_summary_event_enable= {0|1}
       organization_specific_event_enable=  {0|1}
       pause_at= { fault|active_passive|send_local_remote|
                    send_local_remote_ok|send_any|none}]
       tx_type=  {single_mag|periodic}

Arguments:

port_handle
                Identifies a list of ports on which to stop or start the EFM
                router. This argument is `Mandatory`.

action
                Specifies the action to be taken on the specified port.
                Possible values are start or stop. This argument is
                `Mandatory`. Possible values are::

                 start - Starts the EFM emulation for the specified port

                 stop - Stops the EFM emulation for the specified port

                 start_variable_request - Starts sending Variable Requests to DUT

                 stop_variable_request - Stops sending Variable Requests to DUT

                 start_loopback       - Send a Loopback Control OAMPDU to
                                       enable remote loopback

                 stop_loopback        - Send a Loopback Control OAMPDU to
                                       disable remote loopback

                 start_event_notification - Starts sending Link Event
                                           Notification PDUs
                 stop_event_notification  - Stops sending Link Event
                                           Notification PDUs

                 resume        -            Resumes sending Link OAM commands

                 start_organization_specific_event - Starts sending Organization
                                                    Specific Event PDUs

                 stop_organization_specific_event  -  Stops sending Organization
                                                     Specific Event

pdu_packing
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how TLVs are packed into the PDU when a Variable
                Request OAMPDU or Event Notification OAMPDU is sent.
                Possible values are::


                 single_tlv - Send a single TLV per PDU

                 batch_tlvs - Batch TLVs into a minimum number of PDUs

                The default is single_tlv. This argument is available
                when action is set to start_variable_request or
                start_event_notification.

period
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the transmission period to send Variable Request
                OAMPDU/Event Notification OAMPDU/Organization Specific
                OAMPDU periodically. Possible values range from 1 to 10.
                This argument is available when action is set to one of the
                following values::


                 start_variable_request
                 start_event_notification
                 start_organization_specific_event.


error_symbol_period_event_enable
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies whether to send an errored symbol period event
                when you send Event Notification OAMPDUs. Possible
                values are 0 and 1. The default is 0. This argument is
                available when action is set to start_event_notification.

error_frame_event_enable
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies whether to send an errored frame event when
                you send Event Notification OAMPDUs. Possible values
                are 0 and 1. The default is 0. This argument is available when
                action is set to start_event_notification.


error_frame_period_event_enable
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies whether to send an errored frame period event when you
                send Event Notification OAMPDUs. Possible values are 0 and 1.
                The default is 0. This argument is available when action is set
                to start_event_notification.

error_frame_seconds_summary_event_enable
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies whether to send an errored frame seconds summary event
                when you send Event Notification OAMPDUs. Possible values are
                0 and 1. The default is 0. This argument is available when
                action is set to start_event_notification.

organization_specific_event_enable
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies whether to send an organization specific event when
                you send Event Notification OAMPDUs. Possible values are 0 and
                1. The default is 0. This argument is available when action is
                set to start_event_notification.

tx_type
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the message transmission type to send Variable Request
                OAMPDU/Event Notification OAMPDU/Organization Specific OAMPDUs.
                Possible values are::


                 single_mag  - Send a single message.

                 periodic    - Send continuous messages.

                The default is single_mag. This argument is available when
                action is set to one of the following values::


                 start_variable_request
                 start_event_notification
                 start_ organization_specific_event


pause_at
                `Spirent Extension (for Spirent HLTAPI only).`

                The state the Link OAM router will remain in, until
                action is set to "resume".
                Possible values are::


                  Value                   Description
                  fault                   FAULT state
                  active_passive          ACTIVE_SEND_LOCAL or PASSIVE_WAIT state,
                                          depending on OAM mode
                  send_local_remote       SEND_LOCAL_REMOTE state
                  send_local_remote_ok    SEND_LOCAL_REMOTE_OK state
                  send_any                SEND_ANY state
                  none                    NONE

                The default is none.
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

status    Success (1) or failure (0) of the operation.
log       An error message (if the operation failed).
Description:
The emulation efm control function controls the routing of traffic through the specified ports. You can use this function to perform two actions: starting routers and stopping routers.

Examples:

To start the EFM router on the specified port:

emulation efm control mode=start port_handle portHandle

To stop the EFM router on the specified port:

emulation efm control mode=stop port_handle portHandle

Sample Output:

{status 1}

emulation efm stat

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
Returns EFM statistics on the specified port. Statistics include the EFM connection status and link event counters.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation efm stat
        port_handle= <port_handle> M
        action=   {get|reset} M

Arguments:

port_handle
                Specifies the ports for which you want information. This
                argument is `Mandatory`.

action
                Specifies the action to take on the specified port
                handles. This argument is `Mandatory`. Possible values are::

                 get     Retrieves all EFM statistics for the specified port.

                 reset   Deletes all EFM statistics for the specified port.
Return Values:

Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):

status
Retrieves a value indicating the success (1) or failure (0) of the operation.
log
Retrieves a message describing the last error that occurred during the operation. If the operation was successful - {status 1} - the log value is null.
port_handle
The ports for which you want to retrieve information about the EFM session.
local_state

Indicates the state information of the emulated EFM router. Possible values are NONE, UNSATISFIED, NOT COMPLETED, and COMPLETED:

NONE - Indicates there is no state information
     available.

UNSATISFIED - Indicates that the Discovery process
            cannot complete.

NOT COMPLETED - Indicates that the Discovery process is
              in progress.

COMPLETED - Indicates that the Discovery process is
          complete.

The following keys are returned when you specify action get:

statistics
remote_dte_oam_version
The OAM version of the remote OAM client
remote_dte_revision
Revision number of the remote OAM client
remote_max_pdu_size
Maximum PDU size supported on the remote OAM client
current_discovery_state

Value of the local DTE state:

UNSATISFIED    Discovery can not
               complete
NOT_COMPLETED  Discovery has not
               completed
COMPLETED      Discovery has
               completed
RESERVED       Reserved flag should not
               be received
NONE           No current state exists
local_dte_tx_critical_event_bit

Value of the critical event flag:

OFF  Critical event is not enabled
ON   Critical event is enabled
local_dte_tx_dying_gasp_bit

Value of the dying gasp flag:

OFF  Dying gasp is not enabled
ON   Dying gasp is enabled
local_dte_tx_link_fault_bit

Value of the link fault flag:

OFF  Link fault is not enabled
ON   Link fault is enabled
remote_dte_rx_critical_event_bit

Value of the remote critical event flag:

OFF  Remote critical event is not enabled
ON   Remote critical event is enabled
remote_dte_rx_dying_gasp_bit

Value of the remote dying gasp flag:

OFF  Remote dying gasp is not enabled
ON   Remote dying gasp is enabled
remote_dte_rx_link_fault_bit

Value of the remote link fault flag:

OFF  Remote link fault is not enabled
ON   Remote link fault is enabled
remote_dte_multiplexer_action_value

Value of the remote multiplexer action:

FWD       Forwarding nonOAMPDUs
DISCARD   Discarding nonOAMPDUs
remote_dte_parser_action_value

Value of the remote parser action:

FWD       Forwarding nonOAMPDUs
LB        Looping back nonOAMPDUs
DISCARD   Discarding nonOAMPDUs
RESERVED  Reserved flag should not be set

Spirent Extension (for Spirent HLTAPI only).

local_dte_multiplexer_action_value

Value of the local multiplexer action:

FWD       Forwarding nonOAMPDUs
DISCARD   Discarding nonOAMPDUs

Spirent Extension (for Spirent HLTAPI only).

local_dte_parser_action_value Value of the parser action:

FWD       Forwarding nonOAMPDUs
LB        Looping back nonOAMPDUs
DISCARD   Discarding nonOAMPDUs
RESERVED  Reserved flag should
          not be set

Spirent Extension key (for Spirent HLTAPI only).

remote_state

Value of the remote DTE state:

UNSATISFIED      Discovery can not
                 complete
NOT_COMPLETED    Discovery has not
                 completed
COMPLETED        Discovery has completed
RESERVED         Reserved flag should not
                 be received
NONE             No current state exists

Spirent Extension (for Spirent HLTAPI only).

info_pdu_timesout
Number of information PDU timeouts

Spirent Extension (for Spirent HLTAPI only).

rx_loopback_pdu_count
Number of loopback PDUs received

Spirent Extension (for Spirent HLTAPI only).

loopback_pdu_timesout
Number of loopback PDU timeouts

Spirent Extension (for Spirent HLTAPI only).

tx_loopback_pdu_count Number of loopback PDUs transmitted

Spirent Extension (for Spirent HLTAPI only).

tx_org_specific_pdu_count Number of organization specific PDUs
transmitted

Spirent Extension (for Spirent HLTAPI only).

rx_variable_request_pdu_count Number of variable request PDUs
received

Spirent Extension (for Spirent HLTAPI only).

variable_request_pdu_time_out Number of variable request PDU
timeouts

Spirent Extension (for Spirent HLTAPI only).

tx_variable_request_pdu_count Number of variable request PDUs
transmitted

Spirent Extension (for Spirent HLTAPI only).

rx_ variable_response_pdu_count
Number of variable response PDUs received

Spirent Extension (for Spirent HLTAPI only).

tx_ variable_response_pdu_count
Number of variable response PDUs transmitted
mac_remote
link_events_enabled

Value of the link events flag:

TRUE - Supports interpreting
Link Events
oam_mode
State of the emulated router
oampdu_count
Number of OAMPDUs received
oampdu_size
Size of OAMPDUs
oui_value
OUI Value
remote_loopback_enabled

Value of the remote loopback flag:

TRUE - Runs in Remote Loopback mode
unidir_enabled

Value of the unidirectional flag:

TRUE - Supports unidirectional mode
variable_retrieval_enabled

Value of the variable retrieval flag:

TRUE - Supports sending Variable
Response OAMPDUs
vsi_value
VSI Value
oampdu_count
Number of OAMPDUs received
oui_value
OUI Value
vsi_value
Specifies the vendor specific information
tx_information_oam_pdu_count
Number of information PDUs transmitted
tx_link_event_notification_count
Number of event PDUs transmitted
rx_information_oam_pdu_count
Number of information PDUs received
rx_link_event_notification_count
Number of event PDUs received
rx_organization_specific_oam_pdu_count
Number of organization specific PDUs received

Spirent Extension (for Spirent HLTAPI only).

remote_vsi_value
Vendor specific information value on the remote OAM client

alarms

errored_frame_events
Number of Errored Frame Events detected
errored_frame_period_events
Number of Errored Frame Period Events detected
errored_frame_seconds_summary_events
Number of Errored Frame Period Events detected
errored_symbol_period_events
Number of Errored Symbol Period Events detected
organization_specific_events
Number of organization specific events received
tx_errored_symbol_period_events
Number of errored symbol period events transmitted
tx_errored_frame_events
Number of errored frame events transmitted
tx_errored_frame_period_events
Number of errored frame period events transmitted
tx_errored_frame_seconds_summary_events
Number of errored frame seconds summary events transmitted
tx_organization_specific_event
Number of organization specific events transmitted
tx_critical_events
Number of critical events transmitted
tx_dying_gasp
Number of dying gasps transmitted
tx_link_fault
Number of link faults transmitted
rx_critical_events
Number of critical events received
rx_dying_gasp
Number of dying gasp received
rx_link_fault
Number of link faults received
event_notification

Spirent Extension (for Spirent HLTAPI only).

There can be a more than one event_notification hash. For example, if you send two kinds of Link Event Notification PDUs, you will get two event_notification hashes. Please refer to the sample output for more details. The hash elements are described below:

event_type             Spirent HLTAPI value of the event type
                       Errored symbol period event
                       ERRORED_FRAME           Errored frame event
                       ERRORED_FRAME_PERIOD    Errored frame period event
                       ERRORED_FRAME_SECONDS_SUMMARY  Errored frame seconds
                                                      summary event
                       ORG_SPECIFIC            Organization specific
                                               event


time_stamp                Timestamp of the event in 100 ms intervals


window_size               Window size of the event


threshold                 Threshold of the event


error_count               Error count of the event


error_running_total       Error running total of the event


event_running_total       Event running total

oui                       OUI in Organization Specific Event TLV of
                          Event Notification PDUs

value                     Value of the Organization Specific Event
                          TLV in Event Notification PDUs
Description:

The emulation efm stat function provides information about the ports specified for the EFM configuration.

This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message. Function return values are formatted as a keyed list supported by the Tcl extension software - TclX). Use the TclX function (keylget) to retrieve data from the keyed list. (See Return Values for a description of each key.)

Note:

The following mac_remote statistics keys are not supported::


 oampdu_size
 tx_loopback_enable_count
 tx_loopback_disable_count
 rx_loopback_enable_count
 rx_loopback_disable_count
 rx_invalid_oam_pdu_count

The following alarms statistics keys are not supported::


 rx_errored_symbol_period_events
 rx_errored_frame_events
 rx_errored_frame_period_events
 rx_errored_frame_seconds_summary_events
 rx_organization_specific_event

The following statistics keys are not supported::


 attempted_discovery_count
 successful_discovery_count
 unsuccessful_discovery_count
 last_discovery_time
 min_discovery_time
 max_discovery_time
 avg_discovery_time
 lost_link_timeouts_count
 last_info_tlv_received_timestamp
 attempted_loopback_enable_count
 successful_loopback_enable_count
 unsuccessful_loopback_enable_count
 attempted_loopback_disable_count
 successful_loopback_disable_count
 unsuccessful_loopback_disable_count
 last_loopback_enable_time
 last_loopback_disable_time
 current_remote_loopback_state
 current_link_event_notification_state
 remote_dte_mac
 local_dte_tx_last_oampdu_type
 remote_dte_rx_last_oampdu_type
 last_error_description

Examples:

Sample Input:

::emulation efm stat
               action= get
               port_handle= portHandle

Sample Output:

{port_handle port2} {local_state COMPLETED} {statistics
{{tx_org_specific_pdu_count 0} {local_dte_multiplexer_action_value FWD}
{remote_max_pdu_size 1500} {local_dte_tx_critical_event_bit OFF}
{remote_dte_multiplexer_action_value DISCARD}{local_dte_tx_dying_gasp_bit ON}
{loopback_pdu_timesout 0} {remote_dte_oam_version1}
{remote_dte_rx_dying_gasp_bit OFF} {remote_state COMPLETED}
{remote_dte_parser_action_value FWD} {info_pdu_timesout 0}
{rx_variable_request_pdu_count 6} {tx_variable_request_pdu_count 0}
{rx_variable_response_pdu_count 0} {current_discovery_state COMPLETED}
{local_dte_tx_link_fault_bit OFF} {remote_dte_rx_critical_event_bit OFF}
{rx_loopback_pdu_count 1} {tx_loopback_pdu_count 0}
{tx_variable_response_pdu_count 0} {variable_request_pdu_timeouts 0}
{remote_dte_rx_link_fault_bit OFF} {local_dte_parser_action_value FWD}
{remote_dte_revision 5}}} {alarms {{rx_link_fault 0} {tx_link_fault 0}
{tx_errored_frame_seconds_summary_events 1} {errored_frame_period_events 0}
{rx_critical_events 0} {errored_frame_seconds_summary_events 0}
{tx_errored_frame_period_events 1} {rx_dying_gasp 0} {tx_dying_gasp 23}
{tx_errored_symbol_period_events 1} {tx_errored_frame_events 1}
{tx_organization_specific_events 0} {tx_critical_events 0}
{errored_symbol_period_events 1} {errored_frame_events 0}
{organization_specific_events 1}}} {mac_remote {{rx_information_oam_pdu_count 6}
{variable_retrieval_enabled FALSE} {tx_link_event_notification_count 16}
{remote_vsi_value {0000 0002}} {rx_link_event_notification_count 8} {oui_value
00-00-01} {oam_mode PASSIVE} {link_events_enabled FALSE}
{tx_information_oam_pdu_count 7} {remote_loopback_enabled FALSE} {unidir_enabled
FALSE} {vsi_value {0000 0001}} {rx_organization_specific_oam_pdu_count 4}
{oampdu_count 25}}} {event_notification {{1 {{event_type ERRORED_SYMBOL_PERIOD}
{error_count 5} {value {}} {event_running_total 0} {error_running_total 5} {oui
{}} {threshold 20} {time_stamp 222} {window_size 40}}} {2 {{event_type
ORG_SPECIFIC} {error_count 0} {value {07 08}} {event_running_total 0}
{error_running_total 0} {oui 00-00-02}{threshold 0} {time_stamp 0} {window_size
0}}}}} {status 1}

End of Procedure Header