PPPoE Functions¶
pppox config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Configures PPPoE sessions for the specified Spirent HLTAPI port.
The Pointto-Point Protocol (PPP) provides a method of transporting datagrams over pointto-point links between hosts, switches, and routers. Spirent HLTAPI supports Pointto-Point Protocol over Ethernet (PPPoE), Pointto-Point Protocol over ATM (PPPoA), and Pointto-Point Protocol over Ethernet over ATM (PPPoEoA).
Synopsis:
Note: 1. M indicates the argument is `Mandatory`.
2. S indicates the argument is for `scaling` scenarios.
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 2516type 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 RFC2516type 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 2516type of relay agent) and dsl (for
the DSLtype 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 portwide 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 retransmission 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 ConfigureRequest 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 portwide 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 portwide 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::
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::
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 NegativeAcknowledgments
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
``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 ConfigureRequest. 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 portwide 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 portwide 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
portwide 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 ConfigureRequests 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 portwide 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.
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 pppox config}
If you have configured either IGMP over PPPoX and
modify pppox config, you must also modify the IGMP
handle to accept the new handle as well. (See the usage
examples provided for emulation igmp config.)
activate - Used for `scaling` scenarios.
1. Enables PPPoE devices and configures PPPoE parameters
for the devices created via the 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 ``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 reconnect and re-start, you must reconfigure
your settings.
Note::
1. Before using "pppox config mode=reset", you must
first delete all traffic streams with the
"traffic config mode=reset" command. Traffic
streams must be reset before PPPoX can be reset.
2. When modifying PPPoX sessions, only modify
pppox config when the aggregate.idle flag
returned by 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:
1. 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.
2. 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 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 Qin-Q (802.1q
Tunnel Tags) hosts with one handle returned. When it is set to 1,
Spirent TestCenter creates multiple Qin-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
roundrobin 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
roundrobin 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 PPPMax-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.
- Ciscospecific 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 "``pppox config mode=create"`` function. handle_list A list of emulated devices with PPPoE session configuratin created by ``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
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 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 “pppox stats mode=aggregate”. If aggregate.idle is “0”, then do not send 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
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 traffic config.
Examples:
The following example configures a PPPoE session:
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= $passwordSample Output for example shown above:
{status 1} {port_handle port1} {handles host2} {pppoe_port pppoeportconfig1} {pppoe_host host2}{pppoe_session pppoeclientblkconfig1} {procName pppox config}The following example configures multiple PPPoE sessions:
set pppHandles "" for {set i 1} {$i <= $num_blocks} {incr i} { set rL [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 [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 000000000001= 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 pppox control handle=$pppHandles action connect
pppox control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Connects, disconnects, pauses, resumes, retries, or resets the PPPoE sessions for the specified session block.
Synopsis:
Note: M indicates the argument is `Mandatory`.
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 reconnect. 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 "pppox control action=clear" and
"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
"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 “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 pppox control connect, retry, disconnect, pause, or resume actions again. When the aggregate.connected value is 1, you can disconnect the PPPoX sessions with “pppox control handle=<handle> action disconnect”. If configuring and connecting multiple PPPoX handles, configure all the handles before connecting PPPoE. Do not call 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:
To connect a PPPoE session:
pppox control handle=host2 action connectOutput for the above example:
{status 1} {procName pppox control} {handles host2}To connect multiple PPPoX handles:
set rL pppox control handle=$pppHandles action connectTo disconnect a PPPoE session:
pppox control handle=host2 action disconnectOutput for the above example:
{status 1} {procName pppox control} {handles host2}To connect only IPv4 PPPoX servers:
pppox server control action= connect port_handle= $hltSourcePort ipcp_mode= ipv4Output for the above example:
{status 1} {procName pppox control} {handles host1}
pppox stats¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- 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 the argument is `Mandatory`.
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.
- Ciscospecific Arguments:
- Although the retry option is supported by Spirent HLTAPI, we strongly recommend that you use 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` 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 ConfigureRequest messages received aggregate.lcp_cfg_req_tx........Number of LCP ConfigureRequest messages sent aggregate.lcp_cfg_rej_rx........Number of LCP ConfigureReject messages received aggregate.lcp_cfg_rej_tx........Number of LCP ConfigureReject messages sent aggregate.lcp_cfg_ack_rx........Number of LCP ConfigureACK messages received aggregate.lcp_cfg_ack_tx........Number of LCP ConfigureACK messages sent aggregate.lcp_cfg_nak_rx........Number of LCP ConfigureNAK messages received aggregate.lcp_cfg_nak_tx........Number of LCP ConfigureNAK messages sent aggregate.max_setup_time........Maximum time `Mandatory` to bring a session up aggregate.min_setup_time........Minimum time `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 TerminateACK messages received aggregate.term_ack_tx...........Number of LCP TerminateACK messages sent aggregate.term_req_rx...........Number of LCP TerminateRequest messages received aggregate.term_req_tx...........Number of LCP TerminateRequest 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 EchoRequest packets received session.<session ID>.echo_rsp_tx Total number of EchoReply 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 ConfigureAcknowledge packets received session.<session ID>.lcp_cfg_ack_tx Total number of ConfigureAcknowledge packets sent session.<session ID>.lcp_cfg_nak_rx Total number of ConfigureNegative- Acknowledge packets received session.<session ID>.lcp_cfg_nak_tx Total number of ConfigureNegative- Acknowledge packets sent session.<session ID>.lcp_cfg_rej_rx Total number of ConfigureReject packets received session.<session ID>.lcp_cfg_rej_tx Total number of ConfigureReject packets sent session.<session ID>.lcp_cfg_req_rx Total number of ConfigureRequest packets received session.<session ID>.lcp_cfg_req_tx Total number of ConfigureRequest 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 Sessionconfirmation packets received session.<session ID>.pads_tx Total number of PPPoE Active Discovery Sessionconfirmation 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 TerminateAcknowledge packets received session.<session ID>.term_ack_tx Total number of TerminateAcknowledge packets sent session.<session ID>.term_req_rx Total number of TerminateRequest packets received session.<session ID>.term_req_tx Total number of TerminateRequest packets sent
- Note: “*” indicates the statistic is not fully supported and only provides the aggregate
- count.
- Description:
- The
pppox stats
function retrieves a list of aggregate statistics for the PPPoE session configured on the specified port.
Examples:
To retrieve statistics when mode= is aggregate:
pppox stats handle=host2 mode aggregateSample 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 pppox stats} {handles host2}To retrieve statistics when mode= is session:
set results_ret3 [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 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}}}End of Procedure Header