PPPoE Functions¶
sth::pppox_config¶
Purpose¶
Configures PPPoE sessions for the specified Spirent HLTAPI port.
The Point-to-Point Protocol (PPP) provides a method of transporting datagrams over point-to-point links between hosts, switches, and routers. Spirent HLTAPI supports Point-to-Point Protocol over Ethernet (PPPoE), Point-to-Point Protocol over ATM (PPPoA), and Point-to-Point Protocol over Ethernet over ATM (PPPoEoA).
Synopsis¶
Note
- M indicates that the argument is Mandatory .
- S indicates the argument is for
scaling
scenarios.
sth::pppox_config [-mode {create|modify|activate|reset} M] [-port_handle <handle>] [-handle <session_block_handle>] [-encap {ethernet_ii|ethernet_ii_vlan|ethernet_ii_mvlan|ethernet_ii_qinq|vc_mux|llcsnap}] [-protocol {pppoe|pppoa|pppoeoa}] [-ac_select_mode <service_name>] [-agent_mac_addr <aa:bb:cc:dd:ee:ff> ] [-agent_session_id <session_id>] [-agent_type {2516|dsl} ] [-attempt_rate <1-1000>] [-auth_mode {none|pap|chap|pap_or_chap}] [-username <username>] [-username_wildcard {0|1}] [-wildcard_pound_start <0-65535>] [-wildcard_pound_fill <0-9>] [-wildcard_pound_end <0-65535>] [-wildcard_question_start <0-65535>] [-wildcard_question_fill <0-9> ] [-wildcard_question_end <0-65535>] [-password <password>] [-password_wildcard {0|1}] [-wildcard_pound_start <0-65535>] [-wildcard_pound_fill <0-9> ] [-wildcard_pound_end <0-65535>] [-wildcard_question_start <0-65535>] [-wildcard_question_fill <0-9> ] [-wildcard_question_end <0-65535>] [-auth_req_timeout <1-65535>] [-auto_retry {0|1}] [-chap_ack_timeout <1-65535> ] [-circuit_id_suffix_mode {none|incr}] [-circuit_id_incr_start <integer>] [-circuit_id_incr_step <integer>] [-circuit_id_incr_count <integer>] [-client_traffic_behavior {all_sessions_connected|ignore_failed_sessions}] [-config_req_timeout <1-65535>] [-max_configure_req <1-65535>] [-max_outstanding <2-65535>] [-max_terminate_req <1-65535>] [-device_block_mode {multi_device_per_block|one_device_per_block}] [-disconnect_rate <1-1000>] [-dut_assigned_src_addr 1] [-echo_req 0] [-echo_req_interval <0-65535>] [-fsm_max_naks <1-65535> ] [-gateway_ip_addr <a.b.c.d>] [-gateway_ip_step <a.b.c.d>] [-gateway_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-gateway_ipv6_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-include_id {0|1}] [-intf_ip_addr <a.b.c.d>] [-intf_ip_addr_step <a.b.c.d>] [-gateway_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-gateway_ipv6_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-intermediate_agent {0|1}] [-ip_cp {ipv4_cp|ipv6_cp|ipv4v6_cp}] [-auto_fill_ipv6 {0|1}] [-ipcp_req_timeout <1-65535>] [-lcp_mru <128-65535>] [-local_magic {0|1}] [-mac_addr <aa:bb:cc:dd:ee:ff>] [-mac_addr_step <aa:bb:cc:dd:ee:ff>] [-max_auth_req <1-65535> ] [-max_auto_retry_count <1-65535> ] [-max_configure_req <1-65535> ] [-max_echo_acks <0-65535> ] [-max_ipcp_req <1-65535> ] [-max_padi_req <1-65535> ] [-max_padr_req <1-65535> ] [-mru_neg_enable {0|1}] [-num_sessions <1-65535>] [-padi_include_tag {0|1}] [-padi_req_timeout <1-65535>] [-padr_include_tag {0|1}] [-padr_req_timeout <1-65535>] [-pppoe_circuit_id <alphanumeric>] [-pppoe_remote_id <alphanumeric>] [-qinq_incr_mode {inner|outer|both}] [-qinq_oneblock {1|0}] [-remote_id_suffix_mode {none|incr }] [-remote_id_incr_start <integer>] [-remote_id_incr_step <integer>] [-remote_id_incr_count <integer>] [-service_name <name>] [-stack_gateway_ip_recycle_count <0-65535> ] [-stack_gateway_ip_repeat_count <0-65535>] [-term_req_timeout <1-65535>] [-vci <0-65535>] [-vci_count <1-65536>] [-vci_step <0-65535>] [-vpi <0-255>] [-vpi_count <1-256>] [-vpi_step <0-255>] [-pvc_incr_mode {vpi|vci|both}] [-vlan_id <0-4095>] [-vlan_id_count <1-4095>] [-vlan_id_step <0-4095>] [-vlan_user_priority <0-7>] [-vlan_cfi {1|0}] [-vlan_tpid <0-65535>] [-vlan_id_repeat_count <0-65535> ] [-vlan_id_stack_count <1-65535>] [-vlan_id_outer <0-4095>] [-vlan_id_outer_count <1-4096>] [-vlan_id_outer_step <0-4095>] [-vlan_outer_user_priority <0-7>] [-vlan_outer_cfi {1|0}] [-vlan_tpid_outer <0-65535>] [-vlan_cfi_list {1|0}] [-vlan_id_count_list <1-4095> [-vlan_id_list <0-4095>] [-vlan_id_step_list <0-4095>] [-vlan_tpid_list <0-65535>] [-vlan_user_priority_list <0-7>] [-expand {true|false} S] [-ac_name <ANY>] [-emulation_type {client}] [-enable_max_payload_tag {true|false}] [-ipv4_addr_pool_count <1-65535>] [-ipv4_addr_pool_start <IPV4>] [-ipv4_addr_pool_step <NUMERIC>] [-ipv6_addr_pool_count <1-65535>] [-ipv6_addr_pool_int_id_start <IPV6>] [-ipv6_addr_pool_int_id_step <IPV6>] [-ipv6_addr_pool_prefix_step <IPV6>] [-ipv6_addr_pool_prefix_start <IPV6>] [-max_payload_bytes <0-65535>] [-remote_or_session_id <ANY>]
Arguments¶
-
-ac_select_list
¶
Use this option with -ac_select_mode only when the specified type of service is either ac_mac or ac_name. This option specifies the ac mac address and percentage pair as either 00:11:00:00:00:11|50 or 00:11:00:00:00:12|50 or the ac name and percentage pair as either ciscoAC|60 or ciscoAC2|40.
-
-ac_select_mode
¶
Specifies the type of service (ISP name, class or QoS) requested. If blank, (not specified or empty string specified), any service is acceptable. There are various ways the AC can be selected based on the PADO received from AC. The default is an empty string.
-
-agent_mac_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Enabled for RFC 2516-type relay agents only. The Relay Agent MAC address is the MAC address of the next hop from the subscriber client group to the access concentrator. Its format is aa:bb:cc:dd:ee:ff. The default is “” (empty String).
-
-agent_session_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the session ID of the RFC2516-type relay agent (see -agent_type). Use wildcard characters to make each ID unique:
@s - Session index associated with the PPPoX client. @b - Block (host/router) index @p - Port name @m - MAC address of the PPPoX client
You can also include the following customizable substitution options:
@x - Custom step setup in (start,count,step,zeropadding,stutter) format start - starting value count - number of values to generate step - amount to increment the start value when the start value must be stepped zeropadding - length the value should be padded to by prepending 0's stutter - number of times the session_id value should be repeated before applying the next step
To include the “@” symbol in a relay agent option, use it twice:
@@ - This must be used to include the textual "@" symbol in the string
The default is “remote @m-@p-@g”.
Note
The relay remote ID (-agent_remote_id) and relay session ID (-agent_session_id) parameters are mutually exclusive.
-
-agent_type
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the type of relay agent to use. Possible values are 2516 (for the RFC 2516-type of relay agent) and dsl (for the DSL-type of relay agent). The default is 2516.
-
-attempt_rate
¶
Specifies the PPP attempt rate, in seconds, for all PPP session blocks on this port. Possible values range from 1 to 1000. The default is 100. This is a port-wide option. Any subsequent use of this option on a port after the initial “-mode create” will overwrite any previous setting.
-
-auth_mode
¶
Specifies the authentication mode. During the Link Control Protocol (LCP) phase, one peer may send an authentication challenge to the other. LCP supports Password Authentication Protocol (PAP) and Challenge Handshake Authentication Protocol (CHAP). Possible values are:
none - No authentication. pap - PAP chap - CHAP MD5 pap_or_chap - Automatically negotiated; accepts both PAP and CHAP offered by the DUT.
The default is none.
-
-auth_req_timeout
¶
Specifies the timeout wait period for the server to either send a CHAP challenge or time between the re-transmission of a PAP request. Possible values range from 1 to 65525 seconds. The default is 3 seconds.
-
-auto_retry
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables an automatic retry to connect failed PPP sessions. Possible values are 0 (disable) and 1 (enable). The default value is 0.
-
-chap_ack_timeout
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the timeout wait period for the server to send an ACK to a challenge response. Possible values range from 1 to 65525 seconds. The default is 3 seconds.
-
-circuit_id_suffix_mode
¶
Defines the mode of circuit ID suffix that is appended to circuit ID name. Possible values are none and incr. The default is incr. The modes are described below:
none - Indicates there is no circuit ID suffix. incr - Indicates the circuit ID suffix increments in the step specified in the -circuit_id_incr_step argument.
Note
The list mode is not supported by Spirent HLTAPI.
-
-circuit_id_incr_start
¶
Specifies the starting value of circuit ID suffix. The default is 0. You can specify this argument when -circuit_id_suffix_mode is incr.
-
-circuit_id_incr_step
¶
Specifies the step size in which the circuit ID suffix increments. The default is 1. You can specify this argument when -circuit_id_suffix_mode is incr.
-
-circuit_id_incr_count
¶
Defines the circuit ID suffix repeat value. The default is 1. You can specify this argument when -circuit_id_suffix_mode is set to incr.
-
-client_traffic_behavior
¶
Specifies how traffic should be handled based on the results of session connecting. Possible values are:
all_sessions_connected - Start traffic only if all sessions are connected. ignore_failed_sessions - Ignore sessions that failed to connect.
The default is all_sessions_connected. Note that it is a project level argument. If modified, all the PPPox clients will be impacted.
-
-config_req_timeout
¶
Specifies the configuration timeout value in seconds. When this expires, another PPP Configure-Request packet will be sent, until the value defined for the -max_configure_req argument is reached. After that, the session is terminated. This is a port-wide option. Any subsequent use of this option on a port after the initial “-mode create” will overwrite any previous setting. Possible values range from 1 to 65535. The default is 3. See also -max_configure_req.
-
-device_block_mode
¶
Specifies how device blocks are allocated to represent the devices that are created. Possible values are described below:
multi_device_per_block Creates multiple devices on one device block. If you specify this mode and set -num_sessions to 10, Spirent HLTAPI creates one device block with a device count of 10. one_device_per_block Creates one device on one device block. If you specify this mode and set -num_sessions to 10, Spirent HLTAPI creates 10 device blocks, with a device count of 1 on each device block.
The default value is multi_device_per_block.
-
-disconnect_rate
¶
Specifies the PPP disconnect rate for all PPP session blocks on this port. Possible values range from 1 to 1000. The default is 1000. This is a port-wide option. Any subsequent use of this option on a port after the initial “-mode create” will overwrite any previous setting.
-
-dut_assigned_src_addr
¶
The DUT assigned source address, which is always set to 1. The IP address is always assigned by the DUT.
-
-echo_req
¶
Enables or disables echo requests. Possible values are 0 (false) and 1 (true).
-
-echo_req_interval
¶
Specifies the interval (in seconds) between sending out consecutive echo requests. Possible values range from 0 to 65525 seconds. The default is 10 seconds.
-
-encap
¶
Identifies the type of Layer 2 encapsulation to use. Possible values are ethernet_ii, ethernet_ii_vlan, ethernet_ii_mvlan, ethernet_ii_qinq, vc_mux and llcsnap. ethernet_ii, ethernet_ii_vlan, ethernet_ii_mvlan, and ethernet_ii_qinq support Ethernet encapsulation, while vc_mux and llcsnap support ATM encapsulation.
If you use the -vlan_* arguments to define a VLAN interface with a single tag, you must set the Layer 2 encapsulation type to ethernet_ii_vlan.
If you use the -vlan_outer* arguments to define a Q-in-Q interface, you must set the L2 encapsulation type to ethernet_ii_qinq.
If you use -vlan_*_list or -vlan_outer_*_list arguments to define a VLAN interface with more than two tags, you must set the Layer 2 encapsulation type to ethernet_ii_mvlan. ethernet_ii_mvlan specifies VLAN from the 3rd tag on. The first two VLAN tags are specified with vlan_id, vlan_outer_id, and their related arguments.
If you use the -vci_* arguments and -vpi_* arguments to define a ATM interface, you must set the L2 encapsulation type to vc_mux or llcsnap
When the -protocol argument is set to pppoeoa, then both Ethernet and ATM encapsulation will be set. In this case, you can set the L2 encapsulation type to the combination of {ethernet_ii|ethernet_ii_vlan|ethernet_ii_qinq} and {vc_mux|llcsnap}.
Note
If you modify the encapsulation value from encap ethernet_ii or ethernet_ii_vlan to ethernet_ii_qinq or vice versa (using “-mode modify”), you must resend all parameters. Otherwise, the parameters use their default values. The following example configures PPPoE for QinQ:
sth::pppox_config -port_handle port1 \ -mode create \ -protocol pppoe \ -encap ethernet_ii_qinq \ -auth_mode pap \ -include_id 1 \ -num_sessions 15000 \ -mac_addr 00.00.12.00.00.02 \ -mac_addr_step 00.00.00.00.00.01 \ -username spirent \ -password spirent \ -vlan_id 1 \ -vlan_id_outer 10 \ -vlan_id_count 3000 \ -vlan_id_outer_count 5 \ -vlan_id_step 1 \ -vlan_id_outer_step 1 \ -qinq_incr_mode inner \
The following example configures PPPoEoA for VLAN:
sth::pppox_config -port_handle port1 \ -mode create \ -protocol pppoeoa \ -encap "ethernet_ii_vlan llcsnap ?\ -auth_mode none\ -include_id 1 \ -num_sessions 15000 \ -mac_addr 00.00.12.00.00.02 \ -mac_addr_step 00.00.00.00.00.01 \ -vlan_id 1 \ -vlan_id_count 3000 \ -vlan_id_step 1 \
-
-fsm_max_naks
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the maximum number of Negative-Acknowledgments allowed during LCP and NCP configuration/negotiation. Possible values range from 1 to 65535. The default is 5.
-
-handle
¶
Specifies the handle of the PPPoE session group to use when -mode is set to “modify” or “reset.” This argument is Mandatory for modify mode only. The handle is returned by the
sth::pppox_config
function.
-
-include_id
¶
Specifies whether to include the CHAP ID in challenge messages. Possible values are:
1 - The CHAP ID is included in challenge messages. 0 - The CHAP ID is not included.
The default is 0.
-
-intermediate_agent
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables the relay agent. Possible value are 0 (disable the relay agent) or 1 (enable the relay agent). The default is 0.
-
-ip_cp
¶
The IP Control Protocol (IPCP) version to enable. Possible values are:
ipv4_cp - Enables IPv4 addressing ipv6_cp - Enables IPv6 addressing ipv4v6_cp - Enables IPv4 and IPv6 addressing.
-
-gateway_ip_addr
¶
Specifies the starting IPv4 gateway address of the emulated PPPoX client. The value must be in IPv4 format. This argument is available when -ip_cp is set to ipv4_cp or ipv4v6_cp.
-
-gateway_ip_step
¶
Defines the increment used to generate IPv4 gateway addresses. The value must be in IPv4 format. This argument is available when -ip_cp is set to ipv4_cp or ipv4v6_cp.
-
-gateway_ipv6_addr
¶
Defines the starting IPv6 gateway address of the emulated PPPoX client. The values must be in IPv6 format. This argument is available when -ip_cp is set to ipv6_cp or ipv4v6_cp.
-
-gateway_ipv6_step
¶
Defines the increment used to generate gateway IPv6 addresses. The values must be in IPv6 format. This argument is available when -ip_cp is set to ipv6_cp or ipv4v6_cp.
-
-intf_ip_addr
¶
Defines the starting IPv4 address of the emulated PPPoX client. The value must be in IPv4 format. This argument is available when -ip_cp is set to ipv4_cp.
-
-intf_ip_addr_step
¶
Defines the increment used to generate IPv4 addresses. The value must be in IPv4 format. This argument is available when -ip_cp is set to ipv4_cp.
-
-intf_ipv6_addr
¶
Defines the starting IPv6 address of the emulated PPPoX client. The value must be in IPv6 format. This argument is available when -ip_cp is set to ipv6_cp or ipv4v6_cp.
-
-intf_ipv6_addr_step
¶
Defines the increment used to generate IPv6 addresses. The value must be in IPv6 format. This argument is available when -ip_cp is set to ipv6_cp or ipv4v6_cp.
-
-auto_fill_ipv6
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables IPv6 auto filling. Possible value are 0 (disable) or 1 (enable). The default is 1. This option is available when the -ip_cp argument is set to ipv6_cp or ipv4v6_cp.
-
-ipcp_req_timeout
¶
Specifies the timeout value (in seconds) for acknowledgment of an NCP Configure-Request. Possible values range from 1 to 65535 seconds. The default value is 3 seconds.
-
-lcp_mru
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the local maximum receive unit (MRU) size in bytes. Possible values range from 128 to 65535. For PPPoE, the MRU size cannot exceed 65535. The default is 1492. This is a port-wide option. Any subsequent use of this option on a port after the initial “-mode create” will overwrite any previous setting.
-
-local_magic
¶
Enables or disables the use of the magic number for detection of data link layer errors. This argument is used for loop back detection. Possible values are 0 (disable magic number) and 1 (enable magic number). The default is 1. This is a port-wide option. Any subsequent use of this option on a port after the initial “-mode create” will overwrite any previous setting.
-
-mac_addr
¶
Specifies the starting value for the MAC address. The default is 00-10-94-01-00-01.
-
-mac_addr_step
¶
Specifies the step value applied to the base MAC address. The default is 00:00:00:00:00:01
-
-max_auth_req
¶
Specifies the maximum number of authentication requests that can be sent without getting an authentication response from the DUT. Possible values range from 1 to 65535. The default is 5.
-
-max_auto_retry_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the maximum number of automatic retry attempts. Possible values range from 1 to 65535. The default is 65535.
-
-max_configure_req
¶
Specifies the maximum number of times a PPP Configure- Request packet can be sent without a response before a session fails. Possible values range from 1 to 65535. The default is 5. See also -config_req_timeout, This is a port-wide option. Any subsequent use of this option on a port after the initial “-mode create” will overwrite any previous setting.
-
-max_echo_acks
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the maximum number of consecutive, unanswered echo request to send before failing the subscriber session. Possible values range from 0 to 65535. The default is 3. If you specify 0 for this argument, echo requests are disabled. Specifying any other number enables echo requests on the port; this is the same as setting -echo_req to 1. See also -echo_req and -term_req_timeout.
-
-max_ipcp_req
¶
Specifies the maximum number of NCP Configure-Requests that can be sent without acknowledgement before a session fails. Possible values range from 1 to 65535. The default is 10. See also -term_req_timeout.
-
-max_outstanding
¶
Specifies the maximum number of sessions that can be connecting or disconnecting at one time for all PPP session blocks on this port. Possible values range from 2 to 65535. The default is 100. This is a port-wide option. Any subsequent use of this option on a port after the initial “-mode create” will overwrite any previous setting.
-
-max_padi_req
¶
Specifies the maximum number of PADI packets that can be sent without acknowledgment before a session fails. Possible values range from 1 to 65535. The default is 5.
-
-max_padr_req
¶
Specifies the maximum number of PADR packets that can be sent without acknowledgment before a session fails. Possible values range from 1 to 65535. The default is 5.
-
-max_terminate_req
¶
Specifies the maximum number of times a PPP Terminate- Request packet can be sent before a session fails. Possible values range from 1 to 65535. The default is 10. See also -term_req_timeout.
-
-mode
¶
Specifies the action to perform. Possible values are create, modify, and reset. This argument is Mandatory . The modes are described below:
create - Configures the PPPoE sessions on the port specified with the -port_handle argument. The first "-mode create" argument also creates the PPPoE port object. modify - Changes the configuration for the PPPoE port and session block identified by the -handle argument. sth::pppox_config -mode modify -handle host2 -username spirent -password spirent Output: {status 1} {handles host2} {port_handle port1} {pppoe_port pppoxportconfig1} {pppoe_session pppoeclientblockconfig1} {procName sth::pppox_config} If you have configured either IGMP over PPPoX and modify sth::pppox_config, you must also modify the IGMP handle to accept the new handle as well. (See the usage examples provided for sth::emulation_igmp_config.) activate - Used for ``Scaling`` scenarios. 1. Enables PPPoE devices and configures PPPoE parameters for the devices created via the sth::emulation_device_config function. This mode requires the value of param_handle as the input to the -handle option. Use this mode for ``Scaling`` scenarios. Refer to -count and -expand options under the ``sth::pppox_config`` function for more information. For this mode, only the following set of options are valid:: ac_name pppoe_circuit_id agent_type auth_mode max_padi_req max_auto_retry_count agent_mac_addr echo_req emulation_type enable_max_payload_tag ipv6_addr_pool_count ipv6_addr_pool_int_id_start padr_req_timeout ipv6_addr_pool_prefix_start ipv4_addr_pool_start include_id password username ipv6_addr_pool_int_id_step max_payload_bytes ipv6_addr_pool_prefix_step ipv4_addr_pool_count service_name auto_retry padi_req_timeout padi_include_tag max_echo_acks ipv4_addr_pool_step remote_or_session_id intermediate_agent echo_req_interval padr_include_tag ip_cp lower_encap max_padr_req 2. Creates devices and enables PPPoE protocol. Requires -port_handle and -block_mode options. For this mode, the following options are required/supported along with the options specified above:: -count -block_mode -block_name_index -name -vlan_id -vlan_outer_id -vlan_user_pri -vlan_id_count -vlan_id_repeatmode -vlan_outer_id_count -vlan_outer_user_pri -vlan_outer_id_repeatmode -router_id -router_id_step -router_id_ipv6 -router_id_ipv6_step -intf_ip_addr -intf_ip_addr_step -intf_prefix_len -gateway_ip_addr -gateway_ip_addr_step -mac_addr -mac_addr_step -link_local_ipv6_addr -link_local_ipv6_addr_step -intf_ipv6_addr -intf_ipv6_addr_step -intf_ipv6_prefix_len -link_local_ipv6_prefix_len -gateway_ipv6_addr -gateway_ipv6_addr_step -mac_addr_step_per_port -mac_addr_step_per_vlan -ip_step_per_port -ip_step_per_vlan -ipv6_step_per_vlan -ipv6_step_per_port -link_local_ipv6_step_per_port -link_local_ipv6_step_per_vlan .. note:: Please refer to the emulation_device_config documentation. reset - Deletes the session block associated with the handle name. To re-connect and re-start, you must reconfigure your settings.
Note
- Before using “sth::pppox_config -mode reset”, you must first delete all traffic streams with the “sth::traffic_config -mode reset” command. Traffic streams must be reset before PPPoX can be reset.
- When modifying PPPoX sessions, only modify sth::pppox_config when the aggregate.idle flag returned by sth::pppox_stats is 1 and no sessions are connected.
-
-mru_neg_enable
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables MRU negotiation. Possible value are 0 (disable) or 1 (enable). The default is 1.
-
-num_sessions
¶
The number of PPPoE clients to emulate. Possible values range from 1 to 65535. The default is 1.
Note
If the value of -encap is set to “ethernet_ii_vlan”, then the value of -num_sessions must be divided evenly by value of -vlan_id_count.
If the value of -encap is set to “ethernet_ii_qinq” then the value of -num_sessions must be divided evenly by the least common multiple of vlan_id_count and vlan_id_outer_count.
Likewise, if the value of -encap is set to ” vc_mux” or “llcsnap”, then the value of -num_sessions must be divided evenly by the least common multiple of vpi_count and vci_count.
-
-padi_include_tag
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies whether to include the relay agent tags in transmitted PADI messages. Possible values are 0 (do not include relay agent tags in PADI messages) or 1 (include relay agent tags in PADI messages). The default is 1.
-
-padi_req_timeout
¶
Specifies the timeout value (in seconds) for acknowledgment of a PADI packet. Possible values range from 1 to 65535. The default is 3.
-
-padr_include_tag
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies whether to include the relay agent tags in transmitted PADR messages. Possible values are 0 (do not include relay agent tags in PADR messages) or 1 (include relay agent tags in PADR messages). The default is 1.
-
-padr_req_timeout
¶
Specifies the timeout value (in seconds) for acknowledgment of a PADR packet. Possible values range from 1 to 65535. The default is 3.
-
-pppoe_circuit_id
¶
Defines the circuit ID name. The default is “circuit”. The value must be in alphanumeric format.
-
-pppoe_remote_id
¶
Defines the remote ID name. The default is “remote”. The value must be in alphanumeric format.
-
-password
¶
Specifies the string base from which the passwords are generated (for example, Password#) when the authentication mode is pap, chap, or pap_or_chap (see -auth_mode). The default is “pass”. See Notes for information about using wildcards in passwords.
-
-password_wildcard
¶
Enables wildcard substitution in the -password argument. Possible values are 0 (false) and 1 (true). If the value is set to 1, any wildcards used in -password are replaced with the corresponding values for -wildcard_pound_start, wildcard_pound_end, wildcard_question_start and -wildcard_question_end. If the value is 0, wildcards are not replaced in the specified password. The default is 0.
-
-port_handle
¶
Specifies the handle of the port on which to create the PPPoE port and session block when -mode is set to “create”. This argument is Mandatory for create mode only. Specifies the port handle is returned by the sth::connect function.
-
-protocol
¶
Specifies the type of protocol to use. The possible values are pppoe, pppoa, and pppoeoa. The default value is pppoe.
-
-qinq_incr_mode
¶
Determines which VLAN ID to increment first. Possible values are:
inner - increment the inner VLAN ID before the outer VLAN ID outer - increment the outer VLAN ID before the inner VLAN ID both - increment both the inner and outer VLAN ID at the same time
The default is outer.
-
-qinq_oneblock
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether Spirent TestCenter creates Q-in-Q (802.1q Tunnel Tags) hosts with one handle returned. When it is set to 1, Spirent TestCenter creates multiple Q-in-Q hosts with one handle returned instead of returning multiple handles. You can configure all the generated hosts at one time by specifying this handle. Possible values are 0 (disabled) and 1 (enabled).The default value is 0.
-
-remote_id_suffix_mode
¶
Defines the mode of remote ID suffix that is appended to remote ID name. Possible values are none and incr. The default is incr. The modes are described below:
none - Indicates there is no remote ID suffix. incr - Indicates the remote ID suffix increments in the step specified in the -remote_id_incr_step argument.
Note
The list mode is not supported by Spirent HLTAPI.
-
-remote_id_incr_start
¶
Specifies the starting value of remote ID suffix. The default is 0. You can specify this argument when -remote_id_suffix_mode is incr.
-
-remote_id_incr_step
¶
Specifies the step size in which the remote ID suffix increments. The default is 1. You can specify this argument when -remote_id_suffix_mode is incr.
-
-remote_id_incr_count
¶
Defines the remote ID suffix repeat value. The default is 1. You can specify this argument when -remote_id_suffix_mode is incr.
-
-service_name
¶
Spirent Extension (for Spirent HLTAPI only).
Indicates the service (ISP name, class, or QoS) requested. If you do not specify a service name or specify an empty string, Spirent HLTAPI will accept any service.
-
-stack_gateway_ip_recycle_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of times to increment the IPv4 gateway address before returning to the starting value. Possible values range from 0 to 65535. The default value is 0.
-
-stack_gateway_ip_repeat_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of times to repeat the same IPv4 gateway address before incrementing it. Possible values range from 0 to 65535. The default value is 0.
-
-term_req_timeout
¶
The maximum amount of time (in seconds) that the termination process can take before another PPP Terminate- Request packet is sent. If there is no response, another packet is sent until the value defined for the -max_terminate_req argument is reached, and then the session is terminated. Possible values range from 1 to 65535. The default is 10. See also -max_terminate_req.
-
-username
¶
The string base from which the usernames are generated (for example, User#) when the authentication mode is pap, chap, or pap_or_chap (see -auth_mode). The default is “anonymous”. See Notes for information about using wildcards in passwords.
-
-username_wildcard
¶
Enables wildcard substitution in the -username argument. Possible values are 0 (false) and 1 (true). If the value is set to 1, any wildcards used in -username are replaced with the corresponding values according to -willcard_pound_start, -wildcard_pound_end, -wildcard_question_start and -wilcard_question_end. If the value is 0, wildcards are not replaced. The default is 0.
-
-pvc_incr_mode
¶
Determines which ID to increment first. Possible values are:
vci - Increments the VC ID before the Virtual Path (VP) ID vpi - Increments the VP ID before the Virtual Circuit (VC)ID both - Increments both the VP and VC ID at the same time
-
-vci
¶
Specifies the VCI of the first ATM PVC pool. Possible values range from 0 to 65535.
-
-vci_count
¶
The number of VCI to use when generating PPPoE clients. The value must be less than num_sessions.
-
-vci_step
¶
Specifies the step size in which the VCI value is incremented. Possible values range from 0 to 65535. The default value is 0.
-
-vpi
¶
Specifies the VPI of the first ATM PVC pool (for an ATM connection). Possible values are 0 to 255.
-
-vpi_count
¶
The number of VPI to use when generating PPPoE clients. The value must be less than num_sessions.
-
-vpi_step
¶
Specifies the step size in which the VPI value is incremented. Possible values are from 0 to 255. The default value is 0.
-
-vlan_id
¶
The first inner VLAN ID to use when generating PPPoE clients. Possible values range from 0 to 4095. The default is 1.
-
-vlan_cfi
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the VLAN Canonical Format Indicator (CFI). Possible values are 1 and 0. The default value is 0.
-
-vlan_id_count
¶
The number of inner VLAN IDs to use when generating PPPoE clients. Spirent HLTAPI assigns VLAN membership in round-robin fashion. If the value of -encap is set to “ethernet_ii_vlan”, then the value of -num_sessions must be divided evenly by the value of -vlan_id_count. Possible values range from 1 to 4096. The default is 1.
-
-vlan_id_outer
¶
The first outer VLAN ID to use when generating PPPoE clients . This ID only applies to PPPoE w/Stacked VLAN. Possible values range from 0 to 4095. The default is 1.
-
-vlan_outer_cfi
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the outer VLAN CFI. The possible values are 1 and 0. The default value is 0.
-
-vlan_id_outer_count
¶
The number of outer VLAN IDs to use when generating PPPoE clients. Spirent HLTAPI assigns VLAN membership in round-robin fashion. The VLAN count must divide evenly into the number of sessions. The VLAN count cannot be greater than the session count. Possible values range from 1 to 4096. The default is 1.
-
-vlan_id_outer_step
¶
The value that Spirent HLTAPI uses to increment the outer VLAN ID. Possible step values range from 0 to 4095. The default is 0.
-
-vlan_id_step
¶
The value that Spirent HLTAPI uses to increment the inner VLAN ID. Possible step values range from 0 to 4095. The default is 0.
-
-vlan_id_repeat_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of times to repeat the same IPv4 address before incrementing it for the inner VLAN. The value must be an integer. The default value is 0.
-
-vlan_id_stack_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of VLAN objects to be created. Possible values range from 1 to 65535. The default value is 1.
-
-vlan_user_priority
¶
Specifies the inner VLAN priority to assign to the specified port. Possible values range from 0 to 7. The default is 0.
-
-vlan_user_priority_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of inner VLAN priorities to assign to the specified port. Possible values range from 0 to 7. The default value is 0.
-
-vlan_outer_user_priority
¶
Specifies the outer VLAN priority to assign to the specified port. Possible values range from 0 to 7. The default is 0.
-
-vlan_tpid
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the Ethernet type of VLAN for the device interface. Possible values range from 0 to 65535. The default value is 33024.
-
-vlan_tpid_outer
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the Ethernet type of outer VLAN for the device interface. Possible values range from 0 to 65535. The default value is 33024.
-
-vlan_id_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of VLAN IDs to use when generating PPPoE clients using ethernet_ii_mvlan encapsulation. Possible values range from 1 to 4095. The default is 100.
-
-vlan_cfi_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of VLAN CFIs to use when generating PPPoE clients using ethernet_ii_mvlan encapsulation. Possible values are 1 and 0. The default value is 0.
-
-vlan_id_count_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of numbers of VLAN IDs to use when generating PPPoE clients using ethernet_ii_mvlan encapsulation. Possible values range from 1 to 4096. The default value is 1.
-
-vlan_id_step_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of values to increment inner VLAN IDs using ethernet_ii_mvlan encapsulation. Possible step values range from 1 to 4095. The default value is 1.
-
-vlan_tpid_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of VLAN Tag Protocol IDs for ethernet_ii_mvlan encapsulation. Possible values range from 0 to 65535. The default value is 33024.
-
-wildcard_pound_fill
¶
Spirent Extension (for Spirent HLTAPI only).
Wildcard fill character for -wildcard_pound_start and -wildcard_pound_end. If 0, the numbers are replaced without leading zeroes. Otherwise, leading zeroes are added to ensure that the number is at least the specified number of digits wide. Possible values range from 0 to 9. The default is 0. See Notes for more about using wildcards.
-
-wildcard_question_fill
¶
Spirent Extension (for Spirent HLTAPI only).
Wildcard fill character for -wildcard_question_start and -wildcard_question_end. If 0, the numbers are replaced without leading zeroes. Otherwise, leading zeroes are added to ensure that the number is at least the specified number of digits wide. Possible values range from 0 to 9. The default is 0. See Notes for more about using wildcards.
-
-wildcard_pound_start
¶
Starting numerical value to replace the wildcard pound (#) character in user names and passwords, such as user# or pwd#. Possible values range from 0 to 65535. The default is 1. See Notes for more about using wildcards.
-
-wildcard_pound_end
¶
Final numerical value to replace the wildcard pound (#) character in user names and passwords, such as user# or pwd#. Possible values range from 0 to 65535. The default is 1. See Notes for more about using wildcards.
-
-wildcard_question_start
¶
Starting numerical value to replace the wildcard question mark character in user names and passwords. Possible values range from 0 to 65535. The default is 1. See Notes for more about using wildcards.
-
-wildcard_question_end
¶
Final numerical value to replace the wildcard question mark character in user names and passwords. Possible values range from 0 to 65535. The default is 1. See Notes for more about using wildcards.
-
-expand
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether to expand the specified PPPoE device parameters into emulated PPPoE device objects. It is used in
Scaling
test scenarios.When set to true, a list of emulated device handles (handle_list) with enabled PPPoE device configurations is created.
When set to false, only PPPoE parameters are configured with no handle returned.
-
-ac_name
¶
Specifies the Access Concentrator name in the PADO messages. The default is spirenttestcenter Applicable only in -mode activate when -block_mode or -expand is specified.
-
-emulation_type
¶
Specifies the PPPoX node emulation type. The default is client Applicable only in -mode activate when -block_mode or -expand is specified.
-
-enable_max_payload_tag
¶
Enables the PPP-Max-Payload-Tag (see RFC 4638). The default is false
-
-ipv4_addr_pool_count
¶
Specifies the number of IPv4 addresses in the PPPoX server’s pool. The default is 1 Applicable only in -mode activate when -block_mode or -expand is specified.
-
-ipv4_addr_pool_step
¶
Specifies the step IPv4 address for the PPPoX server’s pool. The default is 1 Applicable only in -mode activate when -block_mode or -expand is specified.
-
-ipv4_addr_pool_start
¶
Specifies the starting IPv4 address for the PPPoX server’s pool. The default is 192.0.1.0 Applicable only in -mode activate when -block_mode or -expand is specified.
-
-ipv6_addr_pool_int_id_step
¶
Specifies the IPv6 address pool Interface ID (lower 64 bits) step. The default is ::1 Applicable only in -mode activate when -block_mode or -expand is specified.
-
-ipv6_addr_pool_int_id_start
¶
Specifies the IPv6 address pool Interface ID (lower 64 bits) start. The default is ::2 Applicable only in -mode activate when -block_mode or -expand is specified.
-
-ipv6_addr_pool_prefix_start
¶
Specifies the IPv6 address pool prefix (upper 64 bits) start. The default is 2001::: Applicable only in -mode activate when -block_mode or -expand is specified.
-
-ipv6_addr_pool_prefix_step
¶
Specifies the IPv6 address pool prefix (upper 64 bits) step. The default is 0:0:0:1::: Applicable only in -mode activate when -block_mode or -expand is specified.
-
-max_payload_bytes
¶
Specifies the maximum number of PPP payload bytes the client can transmit and receive. The default is 1500 Applicable only in -mode activate when -block_mode or -expand is specified.
-
-remote_or_session_id
¶
Specifies the remote ID or session ID depending on the relay agent type. Special wildcards allowed. The default is remote @m-@p-@b Applicable only in -mode activate when -block_mode or -expand is specified.
Arguments Unsupported by Save as HLTAPI¶
The following Spirent HLTAPI arguments are currently not supported by the Save as HLTAPI function:
-qinq_incr_mode
-qinq_oneblock
-apply
-reset_mode
Vendor Specific Arguments Processed by Spirent HLTAPI Wrapper¶
-
-max_negotiation_retrys
¶
Specifies the maximum number of automatic retry attempts. Possible values range from 1 to 65535. The default is 65535.
-
-max_lcp_failure
¶
Specifies the maximum number of times a PPP Configure- Request packet can be sent without a response before a session fails. Possible values range from 1 to 65535. The default is 5.
-
-ppp_local_ip
¶
Defines the starting IPv4 address of the emulated PPPoX client. The value must be in IPv4 format. This argument is available when -ip_cp is set to ipv4_cp.
Vendor Specific Arguments Ignored by Spirent HLTAPI Wrapper¶
None.
Note
For more information about Spirent HLTAPI Wrapper, refer to Chapter 4 Spirent HLTAPI Wrapper in Spirent HLTAPI Programmer’s Reference.
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-echo_rsp
-sessions_per_vc
-vlan_user_priority_count
-vlan_user_priority_step
-circuit_id_suffix_list
-remote_id_suffix_list
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):
handles Identifies the PPPoE session block handle (or group) returned
by the "``sth::pppox_config -mode create"`` function.
handle_list
A list of emulated devices with PPPoE session configuratin created by
``sth::pppox_config`` function when expand is set true.
status Success (1) or failure (0) of the operation.
log An error message (if the operation failed).
Description¶
The sth::pppox_config
function creates or modifies an emulated PPPoE
session block. Use the -mode argument to specify the action to perform.
(See the -mode argument description for information about the actions.)
Modifying any option during a PPPoE session which currently is a member of a multicast group will sever the PPPoE session, IGMP host, and multicast group relationship. Therefore, do not use sth::pppox_config while sessions are connected to prevent aborting the PPPoX engine. To see if sessions are connected, look at the aggregate.idle flag returned by “sth::pppox_stats -mode aggregate”. If aggregate.idle is “0”, then do not send sth::pppox_config. If the PPPoX engine is aborted, you will need to reconfigure the PPPoX session. If using IGMP over PPPoX, you will also need to reconfigure the IGMP session.
When you create a PPPoE session block, you must use the -port_handle
argument to specify the Spirent HLTAPI port that the emulated PPPoE
session block will use for PPPoE communication. (The port handle value is
contained in the keyed list returned by the sth::connect
function.)
Use the -mode create argument to define the characteristics of a PPPoE session block. You can use a single session block to emulate multiple PPPoE clients.
In addition to specifying the port handle (-port_handle), you must also provide one or more of the following arguments when you create a PPPoE session block, or use their default values:
-num_sessions (the number of PPPoE clients to emulate)
-mac_addr (starting value for the MAC address)
-mac_addr_step (increment used to generate additional MAC addresses for
multiple clients)
-auth_mode (authentication style)
-include_id (include or exclude the CHAP ID in challenge messages)
-username (if specifying an authentication style)
-password (if specifying an authentication style)
For a detailed description of PPPoE encapsulation, see “RFC 2516 - A Method for Transmitting PPP Over Ethernet (PPPoE)”.
For an example of how to configure PPPoE traffic, see the documentation for sth::traffic_config.
Examples¶
#### HLTAPI for Tcl ####
The following example configures a PPPoE session:
sth::pppox_config -port_handle $p0 \
-mode create \
-protocol pppoe \
-encap ethernet_ii \
-local_magic 1 \
-max_configure_req 5 \
-max_terminate_req 10 \
-attempt_rate 100 \
-disconnect_rate 100 \
-max_outstanding 100 \
-num_sessions 1 \
-mac_addr $mac_addr \
-username $username \
-password $password
Sample Output for example shown above:
{status 1} {port_handle port1} {handles host2} {pppoe_port \
pppoeportconfig1}\
{pppoe_host host2}{pppoe_session pppoeclientblkconfig1} {procName \
sth::pppox_config}
The following example configures multiple PPPoE sessions:
set pppHandles ""
for {set i 1} {$i <= $num_blocks} {incr i} {
set rL [sth::pppox_config -port_handle port1 \
-mode create \
-protocol pppoe \
-encap ethernet_ii \
-num_sessions $num_sessions \
]
#Create a list of PPPoX handles
keylget rL handles pppHandle
lappend pppHandles $pppHandle
}
The following example uses the function in Scaling
mode (-mode activate)
with -port_handle and -block_mode:
set pppoe_ret [sth::pppox_config\
-mode activate \
-port_handle $port1\
-count 2 \
-block_mode ONE_DEVICE_PER_BLOCK\
-block_name_index 1\
-vlan_id 444 \
-vlan_outer_id 333 \
-router_id 11.111.11.11 \
-router_id_step 0.0.0.2\
-mac_addr 00:11:11:11:11:11 \
-mac_addr_step 00:00:00:00:00:02 \
-mac_addr_step_per_port 00:00:00:00:01:01 \
-mac_addr_step_per_vlan {"" 00:00:00:00:00:01} \
-ip_step_per_port 0.0.0.5 \
-ip_step_per_vlan {"" 0.0.1.1} \
-intf_ipv6_prefix_len 65 \
-ipv6_step_per_vlan {"" ::2} \
-ipv6_step_per_port ::1 \
-intf_prefix_len 22 \
-link_local_ipv6_step_per_port ::4 \
-link_local_ipv6_step_per_vlan {"" ::5} \
-name DEVICE_BLOCK_PPPOX \
-vlan_user_pri 3 \
-vlan_id_count 2 \
-vlan_id_repeatmode REPEAT_ACROSS_PORT\
-vlan_outer_id_count 2 \
-vlan_outer_user_pri 4 \
-vlan_outer_id_repeatmode REPEAT_ACROSS_PORT\
-router_id_ipv6 0101::011 \
-router_id_ipv6_step ::11 \
-intf_ip_addr 11.111.11.11 \
-gateway_ip_addr 11.111.11.1 \
-expand true \
-ac_name spirent\
-pppoe_circuit_id circuit1\
-agent_type 2516\
-auth_mode none\
-max_padi_req 11\
-max_auto_retry_count 2\
-agent_mac_addr 00-00-00-00-00-01\
-echo_req true\
-emulation_type client\
-enable_max_payload_tag true\
-ipv6_addr_pool_count 1\
-ipv6_addr_pool_int_id_start ::2\
-padr_req_timeout 4\
-ipv6_addr_pool_prefix_start 2002::\
-ipv4_addr_pool_start 10.1.1.1\
-include_id true\
-password spirent\
-username spirent\
-ipv6_addr_pool_int_id_step ::2\
-max_payload_bytes 1400\
-ipv6_addr_pool_prefix_step ::\
-ipv4_addr_pool_count 2\
-service_name spirent\
-auto_retry true\
-padi_req_timeout 20\
-padi_include_tag true\
-max_echo_acks 10\
-ipv4_addr_pool_step 1\
-remote_or_session_id remote\
-intermediate_agent true\
-echo_req_interval 20\
-padr_include_tag true\
-ip_cp ipv4_cp\
-lower_encap pppoe\
-max_padr_req 3]
Sample Output:
{param_handle emulateddevicegenparams1} {status 1} {handle_list {emulateddevice1
emulateddevice2 emulateddevice3 emulateddevice4 emulateddevice5 emulateddevice6
emulateddevice7 emulateddevice8}} {handle {}} {handles {emulateddevice1
emulateddevice2 emulateddevice3 emulateddevice4 emulateddevice5 emulateddevice6
emulateddevice7 emulateddevice8}}
To connect all PPPoX handles in list:
set rL [sth::pppox_control -handle $pppHandles -action connect]
#### HLTAPI for Python ####
The following example configures one PPPoE session:
device_ret0 = sth.pppox_config (
mode = 'create',
encap = 'ethernet_ii_vlan',
protocol = 'pppoe',
username_wildcard = '1',
wildcard_pound_start= '1',
wildcard_pound_end = '3',
ac_select_mode = 'service_name',
circuit_id_suffix_mode= 'incr',
circuit_id_incr_start= '1',
circuit_id_incr_step= '3',
circuit_id_incr_count= '3',
remote_id_suffix_mode= 'none',
port_handle = port_handle[0],
max_outstanding = '100',
disconnect_rate = '1000',
attempt_rate = '100',
pppoe_circuit_id = 'circuit',
mru_neg_enable = '1',
max_configure_req = '10',
chap_ack_timeout = '3',
max_padi_req = '10',
padi_include_tag = '1',
padr_req_timeout = '3',
max_terminate_req = '10',
term_req_timeout = '3',
username = 'spirent#',
use_partial_block_state= 'false',
max_auto_retry_count= '65535',
agent_session_id = 'remote',
agent_type = 'dsl',
max_ipcp_req = '10',
intermediate_agent = '1',
echo_req_interval = '10',
password = 'spirent',
local_magic = '1',
config_req_timeout = '3',
active = '1',
auto_retry = 'false',
padi_req_timeout = '3',
agent_mac_addr = '00:00:00:00:00:00',
lcp_mru = '1492',
ip_cp = 'ipv4_cp',
auto_fill_ipv6 = '1',
max_echo_acks = '0',
auth_mode = 'chap',
include_id = '1',
ipcp_req_timeout = '3',
pppoe_remote_id = 'remote',
max_padr_req = '10',
padr_include_tag = '1',
echo_req = 'false',
fsm_max_naks = '5',
vlan_cfi = '0',
vlan_id = '100',
vlan_user_priority = '7',
vlan_id_step = '0',
num_sessions = '1',
mac_addr = '00:10:94:00:00:01',
mac_addr_repeat = '0',
mac_addr_step = '00:00:00:00:00:01',
intf_ip_addr = '192.85.1.3',
gateway_ip_addr = '192.85.1.1',
intf_ip_addr_step = '0.0.0.1',
gateway_ip_step = '0.0.0.0');
Sample Output:
{'status': '1', 'pppoe_session': 'pppoeclientblockconfig1',
'handles': 'host4', 'handle': 'host4',
'procName': 'sth::pppox_config', 'pppoe_port': 'pppoxportconfig1',
'port_handle': 'port1'}
#### HLTAPI for Perl ####
The following example configures one PPPoE session:
my %device_ret0 = sth::pppox_config (
mode => 'create',
encap => 'ethernet_ii_vlan',
protocol => 'pppoe',
username_wildcard => '1',
wildcard_pound_start=> '1',
wildcard_pound_end => '3',
ac_select_mode => 'service_name',
circuit_id_suffix_mode=> 'incr',
circuit_id_incr_start=> '1',
circuit_id_incr_step=> '3',
circuit_id_incr_count=> '3',
remote_id_suffix_mode=> 'none',
port_handle => "$hport[1]",
max_outstanding => '100',
disconnect_rate => '1000',
attempt_rate => '100',
pppoe_circuit_id => 'circuit',
mru_neg_enable => '1',
max_configure_req => '10',
chap_ack_timeout => '3',
max_padi_req => '10',
padi_include_tag => '1',
padr_req_timeout => '3',
max_terminate_req => '10',
term_req_timeout => '3',
username => 'spirent#',
use_partial_block_state=> 'false',
max_auto_retry_count=> '65535',
agent_session_id => 'remote',
agent_type => 'dsl',
max_ipcp_req => '10',
intermediate_agent => '1',
echo_req_interval => '10',
password => 'spirent',
local_magic => '1',
config_req_timeout => '3',
active => '1',
auto_retry => 'false',
padi_req_timeout => '3',
agent_mac_addr => '00:00:00:00:00:00',
lcp_mru => '1492',
ip_cp => 'ipv4_cp',
auto_fill_ipv6 => '1',
max_echo_acks => '0',
auth_mode => 'chap',
include_id => '1',
ipcp_req_timeout => '3',
pppoe_remote_id => 'remote',
max_padr_req => '10',
padr_include_tag => '1',
echo_req => 'false',
fsm_max_naks => '5',
vlan_cfi => '0',
vlan_id => '100',
vlan_user_priority => '7',
vlan_id_step => '0',
num_sessions => '1',
mac_addr => '00:10:94:00:00:01',
mac_addr_repeat => '0',
mac_addr_step => '00:00:00:00:00:01',
intf_ip_addr => '192.85.1.3',
gateway_ip_addr => '192.85.1.1',
intf_ip_addr_step => '0.0.0.1',
gateway_ip_step => '0.0.0.0');
Sample Output:
$VAR1 = 'procName';
$VAR2 = 'sth::pppox_config';
$VAR3 = 'pppoe_port';
$VAR4 = 'pppoxportconfig1';
$VAR5 = 'pppoe_session';
$VAR6 = 'pppoeclientblockconfig1';
$VAR7 = 'handle';
$VAR8 = 'host4';
$VAR9 = 'handles';
$VAR10 = 'host4';
$VAR11 = 'status';
$VAR12 = '1';
$VAR13 = 'port_handle';
$VAR14 = 'port1';
Note
You can generate outgoing usernames and passwords based on wildcard replacements. The following example generates 50 user names and passwords:
sth::pppox_config -port_handle $p0 \
-mode create -protocol pppoe -encap ethernet_ii \
-num_sessions $num_sessions \
-username User# \
-password Pass? \
-wildcard_pound_start 1 \
-wildcard_pound_end 50 \
-wildcard_question_start 1 \
-wildcard_question_end 50 \
The # character represents a counter. For example, define a counter to start at 1 (-wildcard_pound_start 1), run to 50 (-wildcard_pound_end), and increment by 1. Then, in the -username argument, specify user#, which would be replaced with User1, User2, and so on, when authentication begins.
The wildcard is replaced with a counter, starting at 1. For example, User becomes User1, User2, and so on. If you do not specify, then no substitution will take place.
End of Procedure Header
sth::pppox_control¶
Purpose¶
Connects, disconnects, pauses, resumes, retries, or resets the PPPoE sessions for the specified session block.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::pppox_control [-action {connect|disconnect|retry|reset|pause|resume|clear} M] [-handle <handle>] [-port_handle <port_handle_list>] [-ipcp_mode {ipv4|ipv6|ipv4v6}]
Arguments¶
-
-action
¶
Specifies the action to perform. Possible values are connect, disconnect, reset, retry, pause, resume, and clear. You must specify one of these values. The modes are described below:
connect - Establishes all PPPoX sessions on the specified session block. disconnect - Disconnects all established PPPoX sessions from the specified session block. retry - Attempts to connect failed PPPoX sessions on the port. You can only use the retry command after the sessions have finished attempting to connect (that is, the stats show that either aggregate.idle or aggregate.connected is 1). reset - Terminates the port. This action does not reset the defaults nor does it attempt to re-connect. To re- connect to the port, you must reconfigure the session block. pause - Pause all PPPoX sessions that are connecting or disconnecting. resume - Resume PPPoX sessions that were paused with "-action pause" while connecting or disconnecting. clear - Clears the PPPoX statistics for the port. You can only use this command after the sessions have been disconnected (that is, aggregate.idle is 1). You cannot clear the PPPoX port statistics while sessions are currently connected (that is, aggregate.connected is 1). abort - Aborts all PPPoX sessions and resets the PPP emulation engine (without bringing the sessions back up) on the specified device.
Note
Use “sth::pppox_control -action clear” and “sth::pppox_control -action retry” only while sessions are in the idle state. To see if the PPPoX engine is in the idle state, look at the aggregate.idle flag returned by “sth::pppox_stats -mode aggregate”. If aggregate.idle is “0”, then do not send this command.
-
-handle
¶
Identifies a list of session blocks on which to connect, disconnect, reset, retry, pause, resume, or clear the PPPoX sessions.
-
-port_handle
¶
Specifies a list of ports to use. When you specify this argument, the action (-action) will be applied to all PPPoX sessions on the port. You must specify either -handle or -port_handle, but not both.
-
-ipcp_mode
¶
Specifies the IP version of PPPoX sessions to connect, retry or disconnect. Possible values are ipv4, ipv6 and ipv4v6. The default mode is ipv4v6. You must specify one of these values. The modes are described below:
ipv4 - Use this mode, to connect, retry or disconnect all IPv4 PPPoX sessions under the specified -handle or the -port_handle. ipv6 - Use this mode, to connect, retry or disconnect all IPv6 PPPoX sessions under the specified -handle or the -port_handle. ipv4v6 - Use this mode, to connect, retry or disconnect all IPv4 and IPv6 PPPoX sessions under the specified -handle or the -port_handle.
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 pppox_control function stops or starts PPPoE session blocks. You can use the function to perform the following actions: connecting, disconnecting, resetting, retrying, pausing, resuming, or clearing PPPoE sessions. When you call the pppox_control function, you specify a handle.
You can check the aggregate.idle and aggregate.connected fields returned by “sth::pppox_stats -mode aggregate” to see when all sessions have finished connecting or disconnecting. If the aggregate.idle or aggregate.connected values are equal to 1, then you can send the sth::pppox_control connect, retry, disconnect, pause, or resume actions again. When the aggregate.connected value is 1, you can disconnect the PPPoX sessions with “sth::pppox_control [-handle <handle>] -action disconnect”. If configuring and connecting multiple PPPoX handles, configure all the handles before connecting PPPoE. Do not call sth::pppox_config while aggregate.connecting, aggregate.connected, or aggregate.disconnecting are equal to 1.
While in either the aggregate.connecting, aggregate.connected, or aggregate.disconnecting state, the PPPoE engine cannot accept newly configured PPPoE session blocks. Therefore, if you plan to configure and bring up multiple PPPoX groups, configure all the PPPoE session blocks before connecting PPPoE sessions.
Examples¶
#### HLTAPI for Tcl ####
To connect a PPPoE session:
sth::pppox_control -handle host2 -action connect
Output for the above example:
{status 1} {procName sth::pppox_control} {handles host2}
To connect multiple PPPoX handles:
set rL [sth::pppox_control -handle $pppHandles -action connect]
To disconnect a PPPoE session:
sth::pppox_control -handle host2 -action disconnect
Output for the above example:
{status 1} {procName sth::pppox_control} {handles host2}
To connect only IPv4 PPPoX servers:
sth::pppox_server_control \
-action connect \
-port_handle $hltSourcePort \
-ipcp_mode ipv4\
Output for the above example:
{status 1} {procName sth::pppox_control} {handles host1}
#### HLTAPI for Python ####
To connect a list of PPPoX handles:
device_list = [device_ret0['handle'].split()[0],device_ret1['handle'].split()[0]]
ctrl_ret1 = sth.pppox_control (
handle = device_list,
action = 'connect');
Sample Output:
{'status': '1', 'procName': 'sth::pppox_control', 'handles': 'host4 host6'}
#### HLTAPI for Perl ####
To connect a list of PPPoX handles:
my $device_list = "$device_ret0{handle}[0] $device_ret1{handle}[0]";
my %ctrl_ret1 = sth::pppox_control (
handle => "$$device_list",
action => 'connect');
Sample Output:
$VAR1 = 'procName';
$VAR2 = 'sth::pppox_control';
$VAR3 = 'handles';
$VAR4 = 'host4 host6';
$VAR5 = 'status';
$VAR6 = '1';
End of Procedure Header
sth::pppox_stats¶
Purpose¶
Returns PPPoE port statistics associated with the specified port. Statistics include the connection status and number and type of messages sent and received from the specified port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::pppox_stats [-mode {aggregate | session} M] [-handle <PPPoE_session_block_handle>] [-port_handle <port_handle>]
Arguments¶
-
-handle
¶
Specifies the handle of the PPPoE session block for which you want to retrieve PPPoE port statistics. You must specify -handle or -port_handle, but not both.
-
-port_handle
¶
Specifies the port for which you want to retrieve PPPoE statistics. You must specify -handle or -port_handle, but not both.
-
-mode
¶
Specifies the type of statistics to return in the keyed list. The -mode argument is Mandatory . Possible values are aggregate or session:
aggregate Retrieves transmitted and received statistics for all PPPoE sessions associated with the specified port and a status value (1 for success). session Retrieves transmitted and received statistics for only the PPPoE sessions specified with -handle.
Note
Session statistics are only valid after the PPPoE sessions are established. They will not be returned nor accessible until you are connected.
Cisco-specific Arguments¶
Although the -retry option is supported by Spirent HLTAPI, we strongly recommend that you use sth::pppox_control -action retry instead.
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
Following is a keyed list showing the types of keys returned for -mode aggregate:
aggregate.atm_mode Specifies whether the port is in ATM mode
(currently not supported)
aggregate.avg_setup_time........Average time :mandatory:`Mandatory` to bring a session up
aggregate.chap_auth_rsp_tx......Number of CHAP messages sent
aggregate.chap_auth_chal_rx.....The number of CHAP messages received*
aggregate.chap_auth_succ_rx......The number of CHAP messages received*
aggregate.chap_auth_fail_rx......The number of CHAP messages received*
aggregate.connecting............PPPoE clients that are connecting. If
aggregate.connecting is 1, then there are
sessions connecting on the port.
aggregate.connected.............All sessions that have finished with NCP
negotiation. If aggregate.connected is 1,
then PPPoX has finished attempting all
configured PPPoX sessions.
aggregate.idle..................The sessions have been disconnected or
terminated. If aggregate.idle is 1, then
the port state is idle.
aggregate.disconnecting.........If aggregate.disconnecting is 1, then PPPoX
sessions are disconnecting.
aggregate.connect_attempts......Number of sessions attempted
aggregate.connect_success.......Number of sessions that connected
successfully
aggregate.disconnect_failed.....Number of sessions that failed to
disconnect
aggregate.disconnect_success....Number of sessions that disconnected
successfully
aggregate.echo_req_rx...........Number of Echo Requests received
aggregate.echo_rsp_tx...........Number of Echo Replies sent
aggregate.ipcp_cfg_ack_rx.......Total number of IPCP messages received*
aggregate.ipcp_cfg_ack_tx.......Total number of IPCP messages sent*
aggregate.ipcp_cfg_nak_rx.......Total number of IPCP messages received*
aggregate.ipcp_cfg_nak_tx.......Total number of IPCP messages sent*
aggregate.ipcp_cfg_rej_rx.......Total number of IPCP messages received*
aggregate.ipcp_cfg_rej_tx.......Total number of IPCP messages sent*
aggregate.ipcp_cfg_req_rx.......Total number of IPCP messages received*
aggregate.lcp_cfg_req_rx........Number of LCP Configure-Request messages
received
aggregate.lcp_cfg_req_tx........Number of LCP Configure-Request messages
sent
aggregate.lcp_cfg_rej_rx........Number of LCP Configure-Reject messages
received
aggregate.lcp_cfg_rej_tx........Number of LCP Configure-Reject messages
sent
aggregate.lcp_cfg_ack_rx........Number of LCP Configure-ACK messages
received
aggregate.lcp_cfg_ack_tx........Number of LCP Configure-ACK messages
sent
aggregate.lcp_cfg_nak_rx........Number of LCP Configure-NAK messages
received
aggregate.lcp_cfg_nak_tx........Number of LCP Configure-NAK messages sent
aggregate.max_setup_time........Maximum time :mandatory:`Mandatory` to bring a session
up
aggregate.min_setup_time........Minimum time :mandatory:`Mandatory` to bring a session up
aggregate.num_sessions..........Number of sessions configured
aggregate.padi_rx...............Number of PADI messages received
aggregate.padi_tx...............Number of PADI messages sent
aggregate.pado_rx...............Number of PADO messages received
aggregate.padr_tx...............Number of PADR messages sent
aggregate.pads_rx...............Number of PADS messages received
aggregate.padt_tx...............Number of PADT messages sent
aggregate.padt_rx...............Number of PADT messages received
aggregate.pap_auth_ack_rx.......Number of PAP ACK messages received
aggregate.pap_auth_nak_rx.......Number of PAP NAK messages received
aggregate.pap_auth_req_tx.......Number of PAP Request messages sent
aggregate.retry_count...........Number of sessions that have been retried
using the Retry function
aggregate.sessions_up...........Number of sessions currently active
aggregate.sessions_down.........Number of sessions that failed to connect
aggregate.success_setup_rate....Number of sessions per second that have
been established
aggregate.term_ack_rx...........Number of LCP Terminate-ACK messages
received
aggregate.term_ack_tx...........Number of LCP Terminate-ACK messages
sent
aggregate.term_req_rx...........Number of LCP Terminate-Request messages
received
aggregate.term_req_tx...........Number of LCP Terminate-Request messages
sent
Following is a keyed list showing the types of keys returned for -mode session:
session.<session ID>.agg
The aggregate statistics of all sessions on that
particular host
session.<session ID>.attempted
Number of times this session was attempted
session.<session ID>.chap_auth_chal_rx
Total number of CHAP responses received*
session.<session ID>.chap_auth_fail_rx
Total number of CHAP responses received *
session.<session ID>.chap_auth_rsp_tx
Total number of CHAP responses sent*
session.<session ID>.chap_auth_succ_rx
Total number of CHAP responses received *
session.<session ID>.completed
Number of times this session was
successfully connected and disconnected
session.<session ID>.connect_success
Number of times this session was
successfully connected and disconnected
session.<session ID>.echo_req_rx
Total number of Echo-Request packets
received
session.<session ID>.echo_rsp_tx
Total number of Echo-Reply packets sent
session.<session ID>.failed_connect
Number of times this session failed to
connect
session.<session ID>.failed_disconnect
Number of times this session failed to
disconnect
session.<session ID>.ip_addr
IPv4 address assigned by the DUT to the
subscriber
session.<session ID>.ipv6_addr
IPv6 address assigned by the DUT to the
subscriber
session.<session ID>.ipv6_global_addr
IPv6 global address
session.<session ID>.ipcp_cfg_ack_rx
Total number of IPCP responses received
(IPv4)*
session.<session ID>.ipcp_cfg_ack_tx
Total number of IPCP responses received
(IPv4)*
session.<session ID>.ipcp_cfg_nak_rx
Total number of IPCP responses receive
(IPv4)*
session.<session ID>.ipcp_cfg_nak_tx
Total number of IPCP responses received
(IPv4)*
session.<session ID>.ipcp_cfg_rej_rx
Total number of IPCP responses received
(IPv4)*
session.<session ID>.ipcp_cfg_rej_tx
Total number of IPCP responses received
(IPv4)*
session.<session ID>.ipcp_cfg_req_rx
Total number of IPCP responses received
(IPv4)*
session.<session ID>.ipcp_cfg_req_tx
Total number of IPCP responses received
(IPv4)*
session.<session ID>.lcp_cfg_ack_rx
Total number of Configure-Acknowledge
packets received
session.<session ID>.lcp_cfg_ack_tx
Total number of Configure-Acknowledge
packets sent
session.<session ID>.lcp_cfg_nak_rx
Total number of Configure-Negative-
Acknowledge packets received
session.<session ID>.lcp_cfg_nak_tx
Total number of Configure-Negative-
Acknowledge packets sent
session.<session ID>.lcp_cfg_rej_rx
Total number of Configure-Reject packets
received
session.<session ID>.lcp_cfg_rej_tx
Total number of Configure-Reject packets
sent
session.<session ID>.lcp_cfg_req_rx
Total number of Configure-Request packets
received
session.<session ID>.lcp_cfg_req_tx
Total number of Configure-Request packets
sent
session.<session ID>.padi_rx
Total number of PPPoE Active Discovery
Initialized packets received
session.<session ID>.padi_tx
Total number of PPPoE Active Discovery
Initialized packets sent
session.<session ID>.pado_rx
Total number of PPPoE Active Discovery
Offer packets received
session.<session ID>.pado_tx
Total number of PPPoE Active Discovery
Offer packets sent
session.<session ID>.padr_rx
Total number of PPPoE Active Discovery
Request packets received
session.<session ID>.padr_tx
Total number of PPPoE Active Discovery
Request packets sent
session.<session ID>.pads_rx
Total number of PPPoE Active Discovery
Session-confirmation packets received
session.<session ID>.pads_tx
Total number of PPPoE Active Discovery
Session-confirmation packets sent
session.<session ID>.padt_rx
Total number of PPPoE Active Discovery
Terminate packets received
session.<session ID>.padt_tx
Total number of PPPoE Active Discovery
Terminate packets sent
session.<session ID>.pap_auth_ack_rx
Total number of PAP responses received*
session.<session ID>.pap_auth_nak_rx
Total number of PAP responses sent*
session.<session ID>.pap_auth_req_tx
Total number of PAP responses received*
session.<session ID>.setup_time
Amount of time taken to bring up the
session
session.<session ID>.term_ack_rx
Total number of Terminate-Acknowledge
packets received
session.<session ID>.term_ack_tx
Total number of Terminate-Acknowledge
packets sent
session.<session ID>.term_req_rx
Total number of Terminate-Request packets
received
session.<session ID>.term_req_tx
Total number of Terminate-Request packets
sent
Note
“*” indicates the statistic is not fully supported and only provides the aggregate count.
Description¶
The sth::pppox_stats
function retrieves a list of aggregate
statistics for the PPPoE session configured on the specified port.
Examples¶
#### HLTAPI for Tcl ####
To retrieve statistics when -mode is aggregate:
sth::pppox_stats -handle host2 -mode aggregate
Sample Output:
{status 1} {aggregate {{term_req_rx 0} {term_ack_tx 0} {ipcp_cfg_rej_tx 6}
{lcp_cfg_rej_tx 0} {padt_tx 1} {pap_auth_ack_rx 0} {term_req_tx
1} {ipcp_cfg_ack_rx 6} {connect_success 2} {lcp_cfg_ack_rx 2} {num_sessions
1} {echo_req_rx 0} {chap_auth_fail_rx 0} {padr_tx 2} {max_setup_time 156}
{disconnect_success 1} {chap_auth_chal_rx 0} {echo_rsp_tx 0}
{pads_rx 2} {chap_auth_succ_rx 0} {ipcp_cfg_req_rx 6} {sessions_up 1}
{pap_auth_nak_rx 0} {ipcp_cfg_ack_tx 6} {ipcp_cfg_nak_rx 6}
{disconnect_failed 0} {lcp_cfg_req_rx 2} {padi_rx 0} {lcp_cfg_ack_tx 2}
{lcp_cfg_nak_rx 0} {min_setup_time 149} {success_setup_rate 6}
{chap_auth_rsp_tx 0} {term_ack_rx 0} {pads_tx 0} {pap_auth_req_tx 0}
{ipcp_cfg_rej_rx 6} {ipcp_cfg_req_tx 6} {sessions_down 0} {lcp_cfg_rej_rx 0}
{ipcp_cfg_nak_tx 6} {lcp_cfg_req_tx 2} {padi_tx 2} {padt_rx 0}
{lcp_cfg_nak_tx 0} {connect_attempts 2} {avg_setup_time 152} {pado_rx 2}
{connecting 0} {connected 1} {disconnecting 0} {idle 0} {atm_mode
0}}} {procName sth::pppox_stats} {handles host2}
To retrieve statistics when -mode is session:
set results_ret3 [sth::pppox_stats \
-handle $device\
-mode session\
]
Sample Output:
{status 1} {session {{1 {{term_req_rx 0} {term_ack_tx 0} {ipcp_cfg_rej_tx 0}
{ipv6_global_addr 2001::2} {padr_rx 0} {lcp_cfg_rej_tx 0} {padt_tx 0}
{failed_disconnect 0} {pado_tx 0} {pap_auth_ack_rx 0} {ipcp_cfg_ack_rx 0}
{term_req_tx 0} {connect_success 1} {lcp_cfg_ack_rx 1} {completed 0}
{echo_req_rx 0} {chap_auth_fail_rx 0} {padr_tx 1} {ip_addr 0.0.0.0}
{chap_auth_chal_rx 0} {echo_rsp_tx 0} {setup_time 33} {pads_rx 1}
{chap_auth_succ_rx 0} {ipcp_cfg_req_rx 0} {ipcp_cfg_ack_tx 0} {pap_auth_nak_rx
0} {ipcp_cfg_nak_rx 0} {lcp_cfg_req_rx 1} {failed_connect 0} {lcp_cfg_ack_tx 1}
{ipv6_addr fe80::2} {padi_rx 0} {lcp_cfg_nak_rx 0} {chap_auth_rsp_tx 0}
{term_ack_rx 0} {pads_tx 0} {ipcp_cfg_rej_rx 0} {pap_auth_req_tx 0}
{ipcp_cfg_req_tx 0} {ipcp_cfg_nak_tx 0} {lcp_cfg_rej_rx 0} {lcp_cfg_req_tx 1}
{attempted 1} {padi_tx 1} {lcp_cfg_nak_tx 0} {padt_rx 0} {pado_rx 1}}} {2
{{term_req_rx 0} {term_ack_tx 0} {ipcp_cfg_rej_tx 0} {ipv6_global_addr
2001:0:0:1::3} {padr_rx 0} {lcp_cfg_rej_tx 0} {padt_tx 0} {failed_disconnect 0}
{pado_tx 0} {pap_auth_ack_rx 0} {ipcp_cfg_ack_rx 0} {term_req_tx 0}
{connect_success 1} {lcp_cfg_ack_rx 1} {completed 0} {echo_req_rx 0}
{chap_auth_fail_rx 0} {padr_tx 1} {ip_addr 0.0.0.0} {chap_auth_chal_rx 0}
{echo_rsp_tx 0} {setup_time 23} {pads_rx 1} {chap_auth_succ_rx 0}
{ipcp_cfg_req_rx 0} {ipcp_cfg_ack_tx 0} {pap_auth_nak_rx 0} {ipcp_cfg_nak_rx 0}
{lcp_cfg_req_rx 1} {failed_connect 0} {lcp_cfg_ack_tx 1} {ipv6_addr fe80::3}
{padi_rx 0} {lcp_cfg_nak_rx 0} {chap_auth_rsp_tx 0} {term_ack_rx 0} {pads_tx 0}
{ipcp_cfg_rej_rx 0} {pap_auth_req_tx 0} {ipcp_cfg_req_tx 0} {ipcp_cfg_nak_tx 0}
{lcp_cfg_rej_rx 0} {lcp_cfg_req_tx 1} {attempted 1} {padi_tx 1} {lcp_cfg_nak_tx
0} {padt_rx 0} {pado_rx 1}}}}} {procName sth::pppox_stats} {handles host3} {agg
{{term_req_rx 0} {term_ack_tx 0} {ipcp_cfg_rej_tx 0} {ipv6_global_addr {2001::2
2001:0:0:1::3}} {padr_rx 0} {lcp_cfg_rej_tx 0} {padt_tx 0} {failed_disconnect 0}
{pado_tx 0} {pap_auth_ack_rx 0} {ipcp_cfg_ack_rx 0} {term_req_tx 0}
{connect_success 2} {lcp_cfg_ack_rx 2} {completed 0} {echo_req_rx 0}
{chap_auth_fail_rx 0} {padr_tx 2} {ip_addr {0.0.0.0 0.0.0.0}} {chap_auth_chal_rx
0} {echo_rsp_tx 0} {setup_time 56} {pads_rx 2} {chap_auth_succ_rx 0}
{ipcp_cfg_req_rx 0} {ipcp_cfg_ack_tx 0} {pap_auth_nak_rx 0} {ipcp_cfg_nak_rx 0}
{lcp_cfg_req_rx 2} {failed_connect 0} {lcp_cfg_ack_tx 2} {ipv6_addr {fe80::2
fe80::3}} {padi_rx 0} {lcp_cfg_nak_rx 0} {chap_auth_rsp_tx 0} {term_ack_rx 0}
{pads_tx 0} {ipcp_cfg_rej_rx 0} {pap_auth_req_tx 0} {ipcp_cfg_req_tx 0}
{ipcp_cfg_nak_tx 0} {lcp_cfg_rej_rx 0} {lcp_cfg_req_tx 2} {attempted 2} {padi_tx
2} {lcp_cfg_nak_tx 0} {padt_rx 0} {pado_rx 2}}}
#### HLTAPI for Python ####
Sample Input:
results_ret1 = sth.pppox_stats (
handle = device,
mode = 'aggregate');
Sample Output:
{'status': '1', 'aggregate': {'num_sessions': '1', 'ipcp_cfg_nak_rx': '0',
'echo_rsp_tx': '0', 'term_ack_rx': '0', 'ipcp_cfg_nak_tx': '0',
'lcp_cfg_ack_rx': '0', 'lcp_cfg_ack_tx': '0', 'pado_rx': '0', 'padr_rx': '0',
'pads_rx': '0', 'padr_tx': '0', 'ipcp_cfg_rej_rx': '0',
'disconnect_success': '0', 'max_setup_time': '0', 'ipcp_cfg_rej_tx': '0',
'disconnect_failed': '0', 'chap_auth_succ_rx': '0', 'padt_rx': '0',
'term_ack_tx': '0', 'min_setup_time': '0', 'avg_setup_time': '0',
'padt_tx': '0', 'pads_tx': '0', 'lcp_cfg_rej_rx': '0', 'lcp_cfg_req_tx': '0',
'pap_auth_ack_rx': '0', 'connecting': '0', 'connect_success': '0',
'chap_auth_fail_rx': '0', 'disconnecting': '0', 'lcp_cfg_rej_tx': '0',
'lcp_cfg_req_rx': '0', 'pap_auth_req_tx': '0', 'echo_req_rx': '0',
'sessions_up': '0', 'ipcp_cfg_ack_rx': '0', 'connected': '0',
'connect_attempts': '0', 'atm_mode': '0', 'pap_auth_nak_rx': '0', 'term_req_tx'::
'0', 'chap_auth_chal_rx': '0', 'ipcp_cfg_ack_tx': '0', 'lcp_cfg_nak_rx': '0',
'term_req_rx': '0', 'padi_tx': '0', 'chap_auth_rsp_tx': '0', 'idle': '1',
'abort': '0', 'ipcp_cfg_req_rx': '0', 'padi_rx': '0', 'sessions_down': '0',
'ipcp_cfg_req_tx': '0', 'success_setup_rate': '0', 'lcp_cfg_nak_tx': '0'},
'handles': 'host4', 'procName': 'sth::pppox_stats'}
#### HLTAPI for Perl ####
Sample Input:
my %results_ret1 = sth::pppox_stats (
handle => "$device",
mode => 'aggregate');
Sample Output:
$VAR1 = 'procName';
$VAR2 = 'sth::pppox_stats';
$VAR3 = 'handles';
$VAR4 = 'host4';
$VAR5 = 'status';
$VAR6 = '1';
$VAR7 = 'aggregate';
$VAR8 = {
'echo_req_rx' => '0',
'ipcp_cfg_ack_rx' => '0',
'term_req_tx' => '0',
'ipcp_cfg_ack_tx' => '0',
'pap_auth_nak_rx' => '0',
'lcp_cfg_req_rx' => '0',
'sessions_up' => '0',
'padi_tx' => '0',
'term_ack_tx' => '0',
...
};
End of Procedure Header