DHCP Functions¶
emulation dhcp config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Creates, enables, modifies, or resets an emulated Dynamic Host Configuration Protocol (DHCP) clients or Dynamic Host Configuration Protocol for IPv6 or Prefix delegation (DHCPv6/PD) clients for the specified Spirent HLTAPI port or handle.
DHCP is used for IPv4 and IPv6. While both versions serve much the same purpose, the details of the protocol for IPv4 and IPv6 are sufficiently different that they may be considered separate protocols. You use Spirent HLTAPI to emulate a network containing DHCP or DHCPv6/PD clients.
DHCP uses a clientserver model, in which DHCP servers provide network addresses and configuration parameters to DHCP clients.
DHCPv6/PD is intended for delegating a longlived IPv6 prefix and configuration information from a delegating router to a requesting router, across an administrative boundary, where the delegating router does not require knowledge about the topology of the links in the network to which the prefixes will be assigned. Hosts attached to the requesting router can autoconfigure the IPv6 addresses from the delegated prefix.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation dhcp config
mode= {create|enable|modify|reset} M
port_handle <port handle> M `Mandatory` when mode= create
handle= <dhcp_port|device> M
`Mandatory` when mode= create|enable|modify|reset
ip_version= {4|6}
broadcast_bit_flag= {0|1}
circuit_id= <hexadecimal >
circuit_id_suffix= <integer>
circuit_id_suffix_step= <integer>
circuit_id_suffix_count= <integer>
circuit_id_suffix_repeat= <integer>
client_id= < hexadecimal >
client_id_suffix= <integer>
client_id_suffix_count= <integer>
client_id_suffix_step= <integer>
client_id_suffix_repeat= <integer>
client_id_type= <0-255>
remote_id= <hexadecimal >
remote_id_suffix= <integer>
remote_id_suffix_count= <integer>
remote_id_suffix_step= <integer>
remote_id_suffix_repeat= <integer>
lease_time= <10-2147483647>
max_dhcp_msg_size= <264-1500>
msg_timeout= <1000-99999000>
outstanding_session_count= <1-2048>
release_rate= <1-10000>
request_rate= <1-10000>
retry_count= <0-32>
relay_agent_flag= {0|1}
relay_agent_ip_addr= <a.b.c.d>
relay_pool_ip_addr= <a.b.c.d>
sequencetype= {PARALLEL|SEQUENTIAL}
server_ip_addr= <a.b.c.d>
starting_xid= <0-4294967295>
dhcp6_reb_max_rt= <1-99999>
dhcp6_reb_timeout= <1-99999>
dhcp6_rel_max_rc= <1-32>
dhcp6_rel_timeout= <1-99999>
dhcp6_ren_max_rt= <1-99999>
dhcp6_ren_timeout= <1-99999>
dhcp6_req_max_rc= <1-32>
dhcp6_req_max_rt= <1-99999>
dhcp6_req_timeout= <1-99999>
dhcp6_sol_max_rc= <1-32>
dhcp6_sol_max_rt= <1-99999>
dhcp6_sol_timeout= <1-99999>
dhcp6_outstanding_session_count= <1-2048>
dhcp6_release_rate= <1-1000>
dhcp6_request_rate= <1-1000>
dhcp6_renew_rate= <1-1000>
dhcp6_sequence_type= { PARALLEL|SEQUENTIAL }
dhcp6_indef_rel_rt= {true|false}
dhcp6_indef_req_rt= {true|false}
dhcp6_indef_sol_rt= {true|false}
dhcp6_dec_max_rc= <1-32>
dhcp6_dec_timeout= <1-99999>
dhcp6_inforeq_max_rt= <1-99999>
dhcp6_inforeq_timeout= <1-99999>
dhcp6_cfm_duration= <1-99999>
dhcp6_cfm_max_rt= <1-99999>
dhcp6_cfm_timeout= <1-99999>
Arguments:
Common Arguments for DHCPv4 and DHCPv6
handle
Specifies the handle of the port or the device upon which DHCP or
DHCPv6/PD emulation is configured. When mode is set to either
create, modify or reset, the value is returned by the
``emulation dhcp config`` mode=is set to enable,
the value is the device handle returned by other protocol
emulation functions with mode create. This argument is `Mandatory`
for enable, modify and reset modes.
port_handle
The handle of the port on which to configure DHCP or DHCPv6/PD
emulation. The port handle is returned by the
``connect`` function. This argument is `Mandatory` for
create mode (see mode).
mode
Specifies the action to perform. Possible values are create,
enable, modify, and reset. This argument is `Mandatory`. The modes are
described below::
create - Starts emulating DHCP or DHCPv6/PD clients on the port
specified by port_handle.
enable- Starts the emulating DHCP or DHCPv6/PD clients on the
device specified by handle. You must specify the handle
argument.
modify - Changes the configuration parameters for the DHCP or
DHCPv6/PD clients identified by the handle argument.
reset - Stops the DHCP or DHCPv6/PD emulation locally without
attempting to clear the bound addresses from the DHCP server.
In addition, all DHCP or DHCPv6 group sessions information on
the port is cleared and the connection is restarted. Because
mode reset deletes the handle, do not use the handle following
this action.
Note: Before using emulation dhcp config mode=reset,
you must first delete all traffic streams with the
traffic config mode=reset command. Traffic
streams must be reset before DHCP or DHCPv6/PD can be reset.
ip_version
`Spirent Extension (for Spirent HLTAPI only).`
Defines the IP version to be used. Possible values are 4 and
6. The default is 4.
DHCPv4 Arguments
broadcast_bit_flag
Configures the flag to broadcast client responses. Possible values
are 0 and 1. If the argument is set to 1, the DHCP Server or
relay agent will broadcast DHCP messages using an IP broadcast
address. If it is set to 0, the DHCP or DHCPv6/PD Server or relay
agent will send the DHCP or DHCPv6/PD messages to the IP address
specified in the "yiaddr" field. The default is 1.
circuit_id
Configures the circuit ID suboption of relay agent
option (82). This suboption encodes an agent-local
identifier of the circuit from which a DHCP
clientto-server packet was received. It is intended
for use by agents in relaying DHCP responses back to
the proper circuit. (See RFC 3046 for more
information.) The circuit ID must be globally
unique, and the value must be in the hexadecimal format.
The default is 0.
circuit_id_suffix
Defines the suffix to append to the circuit ID. The default
is 0.
circuit_id_suffix_step
Defines the increment used to generate circuit ID suffixes
(circuit_id_suffix) for emulated clients. The default is 1.
circuit_id_suffix_count
Specifies the number of circuit ID suffixes. Possible values
range from 1 to <max_int>. The default is 1.
circuit_id_suffix_repeat
Specifies the number of times a circuit ID suffix should
be repeated, before the step that is specified in the
circuit_id_suffix_step argument is applied to the
circuit ID suffix for incrementing. Possible values
range from 1 to <max_int>.
client_id
Configures the client ID option (61). DHCP clients use client ID
(option 61) to specify their unique identifier. DHCP
servers use this value to index their database of address
bindings. This value is expected to be unique for all
clients in an administrative domain. This value must be in
hexadecimal format.
client_id_suffix
Configure the suffix to append to the client ID. Possible values
range from 0 to <max_int-1>.
client_id_suffix_count
Specifies the number of client ID suffixes. Possible values
range from 1 to <max_int>. The default is 1.
client_id_suffix_step
Defines the increment used to generate client ID suffixes
(client_id_suffix) for emulated clients. Possible values range
from 0 to <max_int-1>. The default value is 1.
client_id_suffix_repeat
Specifies the number of times a client ID suffix should
be repeated, before the step that is specified in the
client_id_suffix_step argument is applied to the
client ID suffix for incrementing. Possible values
range from 1 to <max_int>.
client_id_type
Configures the client ID type. Possible values range from 0 to
255. You must specify this argument when you specify client_id.
remote_id
Configures the remote ID suboption of relay agent
option. The remote ID can be used by relay agents that terminate
switched or permanent circuits and have mechanisms to identify the
remote host end of the circuit. The remote ID must be globally
unique, and the value must be in the hexadecimal format.
The default is 0.
remote_id_suffix
Defines the suffix to append to the circuit ID. The default
is 0.
remote_id_suffix_step
Defines the increment used to generate remote ID suffixes
(remote_id_suffix) for emulated clients. The default is 1.
remote_id_suffix_repeat
Specifies the number of times a remote ID suffix should
be repeated, before the step that is specified in the
remote_id_suffix_step argument is applied to the
remote ID suffix for incrementing. Possible values
range from 1 to <max_int>.
remote_id_suffix_count
Specifies the number of remote ID suffixes. Possible values
range from 1 to <max_int>. The default is 1.
lease_time
Specifies a finite time period, in seconds, for use of the
IP address offered by the DHCP server. The actual lease
length that the DHCP sessions will receive depends on the
lease time configured for the DUT. For example, if the
Cisco DUT sends a lease time of one day (its default), then
the IP address will only be good for one day, regardless of
the value set by Spirent HLTAPI. Possible values range
from 10 to 2147483647. The default is 86400.
max_dhcp_msg_size
Sets the maximum size, in bytes, of the DHCP message.
Spirent HLTAPI uses this value to negotiate the DHCP message
size, in bytes. Possible values range from 264 to 1500. The
default is 576.
msg_timeout
Sets the maximum time, in milliseconds, to wait for receipt
of an offer or ack message after sending a corresponding
discover or request message. Possible values range from 1000
to 99999000. However, because Spirent HLTAPI accepts
seconds, the timeout value must be evenly divisible by 1000.
The default is 15000.
Note: The msg_timeout argument controls the determination
of when a discover or request message is counted as
unacknowledged.
outstanding_session_count
Specifies the maximum number of outstanding sessions that
Spirent HLTAPI can resolve at one time. Possible values
are 1 to 2048. The default is 100.
release_rate
The number of DHCP sessions that are released per second.
This value applies to all sessions on the port. Possible
values range from 1 to 10000. The default is 100.
Note: DHCPv4 release messages are unacknowledged; therefore,
the system may overwhelm the DHCP server.
request_rate
The number of requests per second for DHCP client leases or
lease renewals. This value applies to all sessions on the
port. Possible values range from 1 to 10000. The default is
100.
retry_count
The maximum number of times that discover or request
messages will be resent. This value limits the number of
additional transmissions of either a discover or request
message when no acknowledgement is received. Possible values
range from 0 to 65535. The default is 4.
Note: A session is considered failed once the retry_count
argument is exceeded.
relay_agent_flag
Configures DHCP relay agent. The DHCP relay agent allows
you to place DHCP clients and DHCP servers on different
networks. Possible values are 0 (disabled) and 1 (enabled).
You can use this argument to control the configuration of
relay_agent_ip_addr and -server_ip_addr.
relay_agent_ip_addr
Configures DHCP relay agent IP address. The value should
be in IPv4 format. The default value is 192.1.1.0.
You can use this argument when relay_agent_flag is enabled.
relay_pool_ip_addr
Configures number of DHCP relay agent networks. The value should
be in IPv4 format. The default value is 0.0.0.0.
sequencetype
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the portlevel sequence type that determines in what
order DHCP sessions are attempted. Possible values are
PARALLEL and SEQUENTIAL. The default is SEQUENTIAL.
server_ip_addr
Configures DHCP server IP address. The default value is
192.1.1.2. The value should be in the IPv4 format.
You can use this argument when relay_agent_flag is enabled.
This argument is required when relay_agent_ip_addr is
used. Both arguments must be configured in the same segment.
starting_xid
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the starting transaction identifier for the port. Each
DHCP session is assigned a unique transaction identifier.
Possible values range from 0 to 4294967295. The default is 0.
DHCPv6 Arguments (You must set ip_version to 6)
dhcp6_reb_max_rt
Specifies the maximum rebind message retry timeout in seconds.
Possible values range from 1 to 99999. The default value is 600.
dhcp6_reb_timeout
Specifies the Rebind message initial timeout in seconds. Possible
values range from 1 to 99999. The default value is 10.
dhcp6_rel_max_rc
Specifies the number of release retries. Possible values range
from 1 to 32. The default value is 5.
dhcp6_rel_timeout
Specifies the Release message initial timeout in seconds.
Possible values range from 1 to 99999. The default value is 1.
dhcp6_ren_max_rt
Specifies the maximum retry timeout for Renew messages in seconds.
Possible values range from 1 to 99999. The default is 600
dhcp6_ren_timeout
Specifies the Renew message initial timeout in seconds. Possible
values range from 1 to 99999. The default value is 10
dhcp6_req_max_rc
Specifies the number of Request retries. Possible values range
from 1 to 32. The default value is 10.
dhcp6_req_max_rt
Specifies the maximum Request message retry timeout in
seconds. Possible values range from 1 to 99999. The default value
is 30.
dhcp6_req_timeout
Specifies the Request message initial timeout in seconds.
Possible values range from 1 to 99999. The default value is 1.
dhcp6_sol_max_rc
Specifies the number of solicit retries. Possible values range
from 1 to 32. The default value is 10.
dhcp6_sol_max_rt
Specifies the maximum solicit message retry timeout in seconds.
Possible values range from 1 to 99999. The default value is 120.
dhcp6_sol_timeout
Specifies the Solicit message initial timeout in seconds.
Possible values range from 1 to 99999. The default value is 1.
dhcp6_outstanding_session_count
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of DHCPv6 sessions to resolve at a time.
Possible values range from 1 to 2048. The default value is 1.
dhcp6_release_rate
`Spirent Extension (for Spirent HLTAPI only).`
Number of DHCPv6 sessions that are released per second. This val
ue applies to all sessions on the port. Possible values range
from 1 to 1000. The default is 100 Use the Release operation to
release DHCPv6 sessions.
dhcp6_request_rate
`Spirent Extension (for Spirent HLTAPI only).`
Requests per second for DHCPv6 client leases. This value applies
to all sessions on the port. Possible values range from 1
to 1000. The default is 100.
dhcp6_renew_rate
`Spirent Extension (for Spirent HLTAPI only).`
Renewals per second for DHCPv6 client renewals. This value
applies to all sessions on the port. Possible values range from 1
to 1000. The default is 100.
dhcp6_sequence_type
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the portlevel sequence type that determines in what
order DHCPv6 sessions are attempted. Possible values are
PARALLEL and SEQUENTIAL. The default is SEQUENTIAL.
dhcp6_indef_rel_rt
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables indefinite retry of Release messages.
Possible values are true (enable) and false (disable). The
default is false. Note: If you set it to true, argument
dhcp6_rel_max_rc will be unavailable.
dhcp6_indef_req_rt
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables indefinite retry of Request messages.
Possible values are true (enable) and false (disable). The
default is false. Note: If you set it to true, argument
dhcp6_req_max_rc will be unavailable.
dhcp6_indef_sol_rt
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables indefinite retry of Solicit messages.
Possible values are true (enable) and false (disable). The
default is false. Note: If you set it to true, argument
dhcp6_sol_max_rc will be unavailable.
dhcp6_dec_max_rc
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of Decline retries. Possible values range
from 1 to 32. The default value is 5.
dhcp6_dec_timeout
Specifies the Decline message initial timeout in seconds.
Possible values range from 1 to 99999. The default value is 1.
dhcp6_inforeq_max_rt
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the maximum inforequest message timeout in seconds.
Possible values range from 1 to 99999. The default value is 120.
dhcp6_inforeq_timeout
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the inforequest message initial timeout in seconds.
Possible values range from 1 to 99999. The default value is 1.
dhcp6_cfm_duration
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the maximum duration to wait for the Confirm message
exchange to complete (in seconds). Possible values range from 1
to 99999. The default value is 10.
dhcp6_cfm_max_rt
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the maximum Confirm message timeout in seconds.
Possible values range from 1 to 99999. The default value is 4.
dhcp6_cfm_timeout
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the Confirm message initial timeout in seconds.
Possible values range from 1 to 99999. The default value is 1.
Arguments Unsupported by Save as HLTAPI:
The following Spirent HLTAPI arguments are currently not supported by the Save as
HLTAPI function::
handle
active
name
- Ciscospecific Arguments:
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
cisco_server_id_override link_selection retry_timer response_wait server_id_override
- 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 handle of the port on which the DHCP or DHCPv6/PD emulation was configured by emulation dhcp config. If you reset the port (mode reset), it returns a new handle. status Success (1) or failure (0) of the operation. log An error message (if the operation failed).
- Description:
The
emulation dhcp config
function creates, modifies, or resets an emulated DHCP or DHCPv6/PD client. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)When you create a DHCP or DHCPv6/PD client, use the port_handle argument to specify the Spirent HLTAPI port that the emulated DHCP session will use for DHCP communication. (The port handle value is contained in the keyed list returned by the connect function.)
Use the mode create function to define the characteristics of a DHCP session. You can use a single session to emulate multiple DHCP clients.
When you write an HLT API that uses Spirent HLTAPI Automation software for DHCP or DHCPv6/PD tests, you create a test configuration to emulate DHCP or DHCPv6/PD clients respectively. During a DHCP or DHCPv6/PD test, Spirent HLTAPI sends DHCP/DHCPv6 messages to, and receives messages from, the DUT (configured as a DHCP or DHCPv6/PD server respectively). In this context, you can create test configurations in which Spirent HLTAPI DHCP or DHCPv6/PD clients act as independent network hosts, communicating directly with a DHCP or DHCPv6/PD server. Spirent HLTAPI DHCP or DHCPv6/PD clients are part of a VLAN.
For information about the DHCP protocol, see RFC 2131, “Dynamic Host Configuration Protocol”. For information about DHCP for IPv6, See RFC 3315, “Dynamic Host Configuration Protocol for IPv6 (DHCPv6)”, and RFC 3633, “IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6”
Examples:
The following example creates a DHCP emulation port:
emulation dhcp config port_handle=$hPort($device.$port) mode= create lease_time= 10400Sample output for example shown above:
{handles dhcpv4portconfig1} {status 1}The following example creates a DHCP emulation port supporting relay agent:
emulation dhcp config port_handle=$hPort($device.$port) mode= create lease_time= 10400 relay_agent_flag= 1 relay_agent_ip_addr= 192.1.0.5 server_ip_addr= 192.1.0.1 circuit_id= 34 circuit_id_suffix= 2 circuit_id_suffix_step= 1Sample output for example shown above:
{handles dhcpv4portconfig1} {status 1}The following example enables the device with DHCPv4:
set device_ret_enable [emulation dhcp config mode= enable ip_version= 4 handle= $devhandle starting_xid= 0 lease_time= 60 outstanding_session_count= 1000 request_rate= 100 msg_timeout= 60000 retry_count= 4 sequencetype= SEQUENTIAL max_dhcp_msg_size= 576 release_rate= 100 ]Sample output for example shown above:
{handles dhcpv4portconfig1}{handle dhcpv4portconfig1}{status 1}The following example modifies the exiting DHCP port:
emulation dhcp config handle=dhcpv4portconfig1 mode= modify lease_time= 71700 relay_agent_flag= 1 circuit_id= 29Sample output for example shown above:
{status 1}The following example stops the exiting DHCP port:
emulation dhcp config handle= dhcpv4portconfig1 mode= resetSample output for example shown above:
{status 1}The following example creates a DHCPv6 emulation port:
emulation dhcp config mode= create port_handle= $hltHostPort ip_version= 6 dhcp6_outstanding_session_count= 1\ dhcp6_release_rate= 100 dhcp6_request_rate= 100 dhcp6_renew_rate= 100 dhcp6_sequence_type= PARALLEL dhcp6_reb_max_rt= 600 dhcp6_reb_timeout= 10 dhcp6_rel_max_rc= 5 dhcp6_rel_timeout= 1 dhcp6_ren_max_rt= 600 dhcp6_ren_timeout= 10 dhcp6_req_max_rc= 10 dhcp6_req_max_rt= 30 dhcp6_req_timeout= 1 dhcp6_sol_max_rc= 10 dhcp6_sol_max_rt= 120 dhcp6_sol_timeout= 1 dhcp6_dec_max_rc= 5 dhcp6_dec_timeout= 1 dhcp6_inforeq_max_rt= 120 dhcp6_inforeq_timeout= 1 dhcp6_cfm_duration= 10 dhcp6_cfm_max_rt= 4 dhcp6_cfm_timeout= 1]The following example modifies the created DHCPv6 device:
emulation dhcp config mode= modify handle= $hltHostPort ip_version= 6 dhcp6_outstanding_session_count= 2\ dhcp6_release_rate= 50 dhcp6_request_rate= 50]
emulation dhcp group config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Configures, modifies or resets a specified number of DHCP or DHCPv6/PD client sessions which belong to a subscriber group with specific Layer 2 network settings. Once the subscriber group has been configured, a handle is created, which can be used to modify the parameters or reset the sessions for the subscriber group or to control the binding, renewal, and release of the DHCP or DHCPv6/PD sessions.
Synopsis:
Note: 1. M indicates the argument is `Mandatory`.
2. S indicates the argument is for `scaling` scenarios.
emulation dhcp group config
mode= {create|modify|enable|activate|reset} M
handle= <dhcpGroup_handle|dhcpv6Group_handle|device_handle> M
`Mandatory` when mode= create|modify|enable|reset
port_handle <port handle> M `Mandatory` when mode= activate
num_sessions= <1-65536>
device_name= <string>
auth_protocol= {delayed_auth|reconfig_key}
default_host_addr_prefix= <0-32>
broadcast_bit_flag= {true|false}
client_count= <numeric>
client_mac_addr_mask= <aa:bb:cc:dd:ee:ff>
client_mac_addr= <aa:bb:cc:dd:ee:ff>
client_mac_addr_step= <aa:bb:cc:dd:ee:ff>
client_id= < hexadecimal >
client_id_suffix= <integer>
client_id_suffix_count= <integer>
client_id_suffix_step= <integer>
client_id_suffix_repeat= <integer>
client_id_type= <0-255>
circuit_id= <hexadecimal >
circuit_id_suffix= <integer>
circuit_id_suffix_count= <integer>
circuit_id_suffix_step= <integer>
circuit_id_suffix_repeat= <integer>
control_plane_prefix= {linklocal|routeradvertisement}
dhcp_range_ip_type= {4|6}
enable_auto_retry= {true|false}
enable_arp_server_id= {true|false}
enable_router_option= {true|false}
enable_relay_link_selection= {0|1}
enable_relay_vpn_id= {0|1}
ipv4_gateway_address= <a.d.c.d>
ipv6_enable_gateway_learning= {true|false}
dhcp_realm= <any>
dhcp6_client_mode= {dhcppd|dhcpv6|dhcpv6andpd}
dhcp6_delayed_auth_key_id= <0 - 429496729>
dhcp6_delayed_auth_key_value= <alphanumeric>
dhcp6_range_duid_enterprise_id= <numeric>
dhcp6_range_duid_vendor_id= <alphanumeric>
dhcp6_range_duid_vendor_id_increment= <alphanumeric>
dhcp6_range_duid_type= {custom|en|ll|llt}
dhcp6_range_ia_t1= <numeric>
dhcp6_range_ia_t2= <numeric>
dad_timeout= <numeric>
dad_transmits= <numeric>
dst_addr_type= {all_dhcp_relay_agents_and_servers|all_dhcp_servers}
duid_value= <numeric>
enable_auth= {true|false}
enable_dad= {true|false}
encap= {ethernet_ii|ethernet_ii_vlan|ethernet_ii_qinq|vc_mux|llcsnap|ethernet_ii_mvlan}
enable_ldra= {true|false}
enable_rebind= {true|false}
enable_reconfig_accept= {true|false}
enable_relay_agent= {true|false}
enable_renew= {true|false}
export_addr_to_clients= {0|1}
enable_wildcards= {true|false}
gateway_addresses= {0|1}
gateway_ipv4_addr_step= <a.d.c.d>
string_as_hex_value= {true|false}
host_name= <host_name>
include_in_message= {discover|request|both}|{1|3|4|5|6|8|11|12}
option_value= <0-255>
option_payload= <ALPHANUMERIC>
remove_option= {true|false}
local_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
local_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
local_ipv6_prefix_len= <0-128>
gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
mac_addr= <aa:bb:cc:dd:ee:ff>
mac_addr_step= <aa:bb:cc:dd:ee:ff>
opt_list= <list of numbers>
preferred_lifetime
prefix_length= <0-64>
prefix_start= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
protocol= {dhcpoe|dhcpoeoa}
pvc_incr_mode= {vci|vpi|both}
qinq_incr_mode= {inner|outer|both}
qinq_oneblock= {1|0}
rapid_commit_mode= {ENABLE|DISABLE|SERVER}
requested_addr_start= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
relay_agent_ipv4_subnet_mask= <a.b.c.d>
relay_link_selection= <a.b.c.d>
relay_server_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
relay_server_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
relay_agent_flag= {true|false}
relay_agent_ip_addr= <a.b.c.d>
retry_attempts= <integer>
remote_id= <hexadecimal >
remote_id_suffix= <integer>
remote_id_suffix_count= <integer>
remote_id_suffix_step= <integer>
remote_id_suffix_repeat= <integer>
remote_id_enterprise= <integer>
server_ip_addr= <a.b.c.d>
use_relay_agent_mac_addr_for_dataplane= {true|false}
valid_lifetime= <NUMERIC>
vlan_id= <1-4095>
vlan_id_list= <1-4095>
vlan_cfi= {0|1}
vlan_id_step= <1-4095>
vlan_id_count= <1-4096>
vlan_id_count_list= <1-4096>
vlan_id_mode= {fixed | increment}
vlan_id_outer= <0-4095>
vlan_outer_cfi= {0|1}
vlan_id_outer_step= <1-4095>
vlan_id_outer_count= <1-4096>
vlan_id_outer_mode= {fixed|increment}
vlan_id_step_list= <1-4095>
vlan_id_repeat_count= <1-4095>
vlan_id_repeat_count_list= <1-4095>
vlan_outer_ether_type= {0x8100|0x88A8|0x88B5}
vlan_outer_user_priority= <0-7>
vlan_user_priority= <0-7>
vlan_user_priority_list= <0-7>
vci= <0-65535>
vci_count= <1-65536>
vci_step= <0-65535>
vpi= <0-255>
vpi_count= <1-256>
vpi_step= <0-255>
vpn_id= <string>
vpn_type= {nvt_ascii|rfc_2685}
expand= {true|false} S
clients_per_relay_agent= <1-65535>
enable_circuit_id= {true|false}
enable_relay_server_id_override= {true|false}
relay_server_id_override= <IPV4>
enable_remote_id= {true|false}
relay_client_macaddr_mask= <MAC>
relay_client_macaddr_step= <MAC>
relay_client_macaddr_start= <MAC>
relay_server_ipv4addr_step= <IPV4>
use_client_mac_addr_for_dataplane= {true|false}
use_gateway_as_relayserver_ipv4addr= {true|false}
clients_per_home_gateway= <1-65536>
enable_interface_id= {true|false}
export_addr_to_linked_clients= {true|false}
hg_mac_start= <MAC>
hg_mac_step= <MAC>
iaid_start= <NUMERIC>
iaid_step= <NUMERIC>
interface_id= <ANY>
dhcpv6_mode= {client|pd|pd_and_client}
prefix_step= <IPV6>
ipv6_relay_client_macaddr_start= <MAC>
use_gateway_as_relay_server_ipv6_addr= {true|false}
Arguments:
Arguments Common for DHCPv4 and DHCPv6
handle
Identifies the port and group or the device upon which emulation
is configured. This argument is `Mandatory`. When mode is modify
or reset, this parameter also specifies the DHCP or DHCPv6/PD
group number. For mode create, the handle is returned by the
``emulation dhcp config`` function. For mode modify or mode
reset, the handle is the group handle returned by the
``emulation dhcp group config`` function. For mode enable, the
handle is the device handle returned by other protocol emulation
functions with mode create.
port_handle
Specifies the port on which to perform the action.
Applicable only in mode activate when -block_mode or -expand is specified.
mode
Specifies the action to perform. Possible values are create,
enable, modify, and reset. There is no default. You must specify
a mode. The modes are described below::
create - Starts emulation on the port specified with
handle.
enable - Starts emulation on the device specified with
handle. You must specify the handle argument.
modify - Changes the configuration identified by the handle
argument by applying the parameters specified in
subsequent arguments.
activate - Start DHCP or DHCPv6/PD devices emulation on the port
specified with port_handle by Spirent TestCenter device
generate wizard command DeviceGenConfigExpand with parameters::
Dhcpv4DeviceGenProtocolParams
Dhcpv6DeviceGenProtocolParams
Used for `scaling` scenarios.
1. Enables DHCPv4/DHCPv6 devices and configures DHCPv4/DHCPv6
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 emulation dhcp group config
function for more information. For this mode, only the following
set of options are valid::
For DHCPv4::
remote_id
vpn_id
circuit_id
server_ip_addr
relay_client_macaddr_start
opt_list
enable_relay_link_selection
enable_router_option
relay_client_macaddr_mask
host_name
relay_link_selection
use_gateway_as_relayserver_ipv4addr
enable_relay_vpn_id
enable_relay_server_id_override
enable_remote_id
relay_server_id_override
retry_attempts
enable_auto_retry
relay_pool_ip_addr
relay_client_macaddr_step
vpn_type
use_client_macaddr_for_dataplane
enable_circuit_id
relay_agent_flag
relay_server_ipv4addr_step
clients_per_relay_agent
For DHCPv6/PD::
dhcp_range_ip_type
dhcpv6_mode
remote_id
dhcp6_range_duid_vendor_id
client_mac_addr
client_mac_addr_mask
client_mac_addr_step
clients_per_home_gateway
iaid_step
relay_client_mac_addr_start
dhcp6_range_duid_type
prefix_start
enable_interface_id
interface_id
preferred_lifetime
prefix_ste
iaid_start
relay_server_ipv6_addr
use_relay_agent_mac_addr_for_dataplane
enable_renew
relay_server_ipv6_addr_step
dhcp6_range_ia_t1
use_gateway_as_relay_server_ipv6_addr
enable_remote_id
rapid_commit_mode
hg_mac_step
dhcp6_range_duid_enterprise_id
dhcp6_range_duid_vendor_id_increment
enable_rebind
export_addr_to_linked_clients
relay_client_mac_addr_step
remote_id_enterprise
hg_mac_start
duid_value
valid_lifetime
enable_relay_agent
prefix_length
dhcp6_range_ia_t2
clients_per_relay_agent
2. Creates devices and enables DHCPv4/DHCPv6 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 - Stops the DHCP or DHCPv6/PD emulation locally without
attempting to clear the bound addresses from the DHCP or
DHCPv6/PD server. In addition, all DHCP or DHCPv6/PD group
sessions information on the port is cleared.
Note:
1. For mode enable, the following options will be obsoleted
when ip_version is not 6::
mac_addr
mac_addr_step
vlan_id
vlan_id_outer
vlan_id_step,
vlan_id_outer_step
vlan_id_count
vlan_id_outer_count
vlan_user_priority
vlan_outer_user_priority
qinq_incr_mode,
qinq_oneblock
gateway_addresses
ipv4_gateway_address
vci
vpi
vci_count
vci_step
vpi_count
vpi_step
pvc_incr_modeemulation
2. Before using emulation dhcp group config mode=reset,
you must first delete all traffic streams with the
"traffic config mode=reset" command. Traffic
streams must be reset before DHCP can be reset.
encap
Specifies the type of Layer 2 encapsulation used to define
source and destination MAC addresses for a stream. This
argument is `Mandatory`. Possible values are::
ethernet_ii - Ethernet II
ethernet_ii_vlan - Ethernet II with a single VLAN tag
ethernet_ii_qinq - Ethernet II with two VLAN tags.
ethernet_ii_mvlan - Ethernet II with more than two VLAN tags.
vc_mux - Sets the ATM encapsulation type to Virtual Circuit
Multiplexing (VC_MUX). VC_MUX is
one of the two mechanisms for identifying the protocol
carried in ATM Adaptation Layer5 (AAL5) frames.
vc_mux is available for ATM cards.
Note: This option is not available for DHCPv6.
llcsnap - Sets the ATM encapsulation type to LLC encapsulation.
LLC encapsulation is the other mechanism for identifying
the protocol carried in AAL5 frames. llcsnap is
available for ATM cards. The default encap value for ATM
cards is vc_mux.
Note:
1. llcsnap is not available for DHCPv6.
2. ethernet_ii_vlan supports VLAN tagging on Ethernet
networks. When you set the encap argument to
ethernet_ii_vlan, the following arguments are available::
vlan_id
vlan_id_step
vlan_id_count
3. ethernet_ii_qinq supports two VLAN tags in a Ethernet frame.
When you set the encap argument to ethernet_ii_qinq, the
following arguments are available::
vlan_id
vlan_id_step
vlan_id_count
vlan_id_outer
vlan_id_outer_step
vlan_id_outer_count
qinq_incr_mode
If you set the encap argument to ethernet_ii, the arguments
above are not available.
4. ethernet_ii_mvlan specifies VLAN from the 3rd tag on.
Ethernet frame. The first two VLAN tags are specified
using vlan_id and vlan_outer_id and their related
arguments. When you set the encap argument to
ethernet_ii_mvlan, the following arguments are available::
vlan_id_list
vlan_id_step_list
vlan_id_count_list
vlan_ether_type_list
vlan_outer_ether_type
vlan_user_priority_list
vlan_id_repeat_count_list
5. When you set the encap argument to vc_mux or llcsnap,
the following arguments are available::
vci
vci_count
vci_step
vpi
vpi_count
vpi_step
pvc_incr_mode
mac_addr
Specifies the first MAC address to use when emulating
multiple clients. The default is 00:10:01:00:00:01.
mac_addr_step
Specifies the increment to use to generate additional MAC
addresses for multiple clients. Possible values range from
00.00.00.00.00.01 to 00.00.7f.ff.ff.ff. The default is
00.00.00.00.00.01.
num_sessions
Specifies the number of DHCP or DHCPv6/PD clients to emulate.
Possible values range from 1 to 65536. The default is 4096.
Note: For Outrigger2 platforms, the maximum value is 131070.
For nonOutrigger2 platforms, the maximum is 4096.
device_name
A text name for the emulated device configured with DHCP or
DHCPv6/PD clients.
default_host_addr_prefix
Specifies the default prefix length for the host address.
This argument is applicable only for DHCPv4.
The default is 24.
dhcp_range_ip_type
Defines the IP address version to be used. Possible values are
4(for DHCPv4) and 6(for DHCPv6). The default is 4.
qinq_incr_mode
Specifies the increment mode for ethernet_ii_qinq
encapsulation. Possible values are inner, outer and both.
The default is inner. The values are described below::
inner - When the number of sessions is greater than
the inner VLAN count times the outer VLAN count, the
inner VLAN ID is incremented first until the specified
number of inner VLANs is exhausted, then the outer
VLAN ID is incremented. This continues in a
roundrobin fashion until the number of
sessions is exhausted.
outer - When the number of sessions is greater than the
inner VLAN count times the outer VLAN count, the outer
VLAN ID is incremented first until the specified number
of outer VLANs is exhausted, and then the inner VLAN ID is
incremented. This continues in a roundrobin fashion
until the number of sessions is exhausted.
both - When the number of sessions is greater than the
inner VLAN count times the outer VLAN count, the
inner VLAN ID and outer VLAN ID increment at the
same time. This continues in a roundrobin fashion
until the number of sessions is exhausted.
This argument is valid for DHCPv6 clients only.
Note: Applies only to Qin-Q Ethernet interfaces. For the
"inner" mode, when the number of sessions is greater than
the inner VLAN count multiplied by the outer VLAN count, the
inner VLAN ID is incremented first until the specified
number of inner VLANs is exhausted; then, the outer VLAN ID
is incremented. This continues in roundrobin fashion until
the number of sessions specified in num_sessions.
For the "outer" mode, when the number of sessions is greater
than the inner VLAN count multiplied by the outer VLAN count
outer VLAN count, the outer VLAN ID is incremented first
until the specified number of outer VLANs is exhausted; then
it increments the inner VLAN ID. This continues in
roundrobin fashion until the number of sessions specified
in num_sessions.
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.
vlan_cfi
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the canonical format indicator (CFI) field in VLAN
for the emulated router node. Possible values are 0 (Ethernet)
and 1 (Token Ring). The default is 1.
vlan_id
The starting VLAN ID to use when generating DHCP/DHCPv6 clients
for ethernet_ii_vlan. Possible values range from 1 to 4095. This
argument is `Mandatory` for ethernet_ii_vlan.
vlan_id_mode
Specifies how Spirent HLTAPI assigns VLAN tags when the
router count is greater than 1. Possible values are::
fixed - The VLAN ID is the same for all packets. The fixed
VLAN ID is the value of the vlan_id argument.
increment - For all packets, the VLAN tag ID increments by the
step size specified in the vlan_id_step argument.
vlan_id_count
The number of VLAN IDs to use when generating DHCP clients.
Spirent HLTAPI assigns VLAN membership in roundrobin
fashion. The VLAN count must divide evenly into the number
of sessions. The vlan_id_count cannot be greater than the
session count (num_session). Possible values range from 1
to 4096. The default is 1.
vlan_id_outer
Starting outer VLAN ID, applies to DHCP w/Stacked VLAN
only. Possible values range from 0 to 4095. The default
is 1.
vlan_id_outer_mode
Specifies how Spirent HLTAPI assigns VLAN tags when the router
count is greater than 1.
Possible values are::
fixed - The same VLAN ID is the same for all packets. The fixed
VLAN ID is the value of the vlan_id argument.
increment - For all packets, the VLAN tag ID increments by the
step size specified in the vlan_id_step argument.
vlan_id_outer_step
The value that Spirent HLTAPI uses to increment the
outer VLAN ID. Possible step values range from 1 to 4095.
The default is 1.
vlan_id_outer_count
The number of outer VLAN IDs to use when generating DHCP/DHCPv6
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_user_priority
Specifies the user priority of the inner VLAN. Possible values
range from 0 to 7. The default value is 0.
vlan_outer_user_priority
Specifies the user priority of the outer VLAN. Possible values
range from 0 to 7. The default value is 0.
vlan_id_step
The value that Spirent HLTAPI uses to increment the VLAN
ID for ethernet_ii_vlan. Possible step values range
from 1 to 4095. The default is 1.
vlan_id_repeat_count
`Spirent Extension (for Spirent HLTAPI only).`
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_ether_type
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the Ethernet Type field for the inner VLAN. Possible
values are 0x8100, 0x88A8, and 0x88B5. The default value is
0x8100. You must specify the vlan_id argument.
vlan_outer_ether_type
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the Ethernet Type field for the outer VLAN. Possible
values are 0x8100, 0x88A8, and 0x88B5. The default value is
0x8100. You must specify the vlan_outer_id argument.
vlan_outer_id_repeat_count
`Spirent Extension (for Spirent HLTAPI only).`
Number of times to repeat the same IPv4 address before
incrementing it for the outer VLAN. The value must be an integer.
The default value is 0.
vlan_id_list
`Spirent Extension (for Spirent HLTAPI only).`
A list of VLAN IDs to use when generating DHCP/DHCPv6
clients for ethernet_ii_mvlan encapsulation. Possible values
range from 1 to 4095.
vlan_id_step_list
`Spirent Extension (for Spirent HLTAPI only).`
A list of values that Spirent HLTAPI uses to increment the VLAN
IDs for ethernet_ii_mvlan encapsulation. Possible step values
range from 1 to 4095. The default is 1.
vlan_id_count_list
`Spirent Extension (for Spirent HLTAPI only).`
A list of numbers of VLAN IDs to use when generating DHCP clients
using ethernet_ii_mvlan encapsulation. Possible values range from
1 to 4096. The default is 1.
vlan_ether_type_list
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of Ethernet Type fields for ethernet_ii_mvlan
encapsulation. Possible values are 0x8100, 0x88A8, and 0x88B5.
The default value is 0x8100.
vlan_user_priority_list
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of user priorities for ethernet_ii_mvlan
encapsulation. Possible values range from 0 to 7. The default
value is 0.
vlan_id_repeat_count_list
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of numbers of times that a VLAN ID should be
repeated, before the step (vlan_id_step_list) is applied to the
VLAN IDs for incrementing. Possible step values range from 1 to
4095. The default is 0.
vlan_outer_cfi
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the CFI field in outer VLAN tag for the
emulated device. Possible values are 0 (Ethernet) and 1 (Token
Ring). The default is 1.
remote_id
`Spirent Extension (for Spirent HLTAPI only).`
Configures the remote ID suboption of relay agent
option. The remote ID can be used by relay agents that terminate
switched or permanent circuits and have mechanisms to identify the
remote host end of the circuit. The remote ID must be globally
unique, and the value must be in the hexadecimal format.
The default is 0.
remote_id_suffix
`Spirent Extension (for Spirent HLTAPI only).`
Defines the suffix to append to the circuit ID. The default
is 0.
remote_id_suffix_step
`Spirent Extension (for Spirent HLTAPI only).`
Defines the increment used to generate remote ID suffixes
(remote_id_suffix) for emulated clients. The default is 1.
remote_id_suffix_repeat
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of times a remote ID suffix should
be repeated, before the step that is specified in the
remote_id_suffix_step argument is applied to the
remote ID suffix for incrementing. Possible values
range from 1 to <max_int>.
remote_id_suffix_count
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of remote ID suffixes. Possible values
range from 1 to <max_int>. The default is 1.
enable_wildcards
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of Booleans to enable or disable the use of
wildcards for the Option Payload field in the custom option. The
length of the list must be the same as that of lists
string_as_hex_value, -include_in_message, -option_value,
option_payload and -remove_option. Possible values are true
(enable) and false (disable). The default value is false.
string_as_hex_value
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of Booleans to enable or disable value as
hexadecimal in the custom options. The length of the list must be
the same as that of lists enable_wildcards,
include_in_message, -option_value, -option_payload and
remove_option. Possible values are true
(enable) and false (disable). The default value is false.
include_in_message
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of types of DHCP messages that will include
the custom option. The length of the list must be
the same as that of lists enable_wildcards,
string_as_hex_value, -option_value, -option_payload and
remove_option. The values are a list of numbers, each
corresponding to a message type. Possible values are described
below::
DHCPv4
DISCOVER Include custom options in the DISCOVER message
REQUEST Include custom options in the REQUEST message
BOTH Include custom options in both DISCOVER and REQUEST
messages (Default)
DHCPv6
1 Solicit (Default)
3 Request
4 Confirm
5 Renew
6 Rebind
8 Release
11 InformationRequest
12 RelayForward
option_value
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of option identifiers for the custom option.
The length of the list must be the same as that of lists
enable_wildcards, -string_as_hex_value, -include_in_message,
option_payload and -remove_option.
Possible values range from 0 to 255. The default value 0.
option_payload
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of payload strings in the DHCP custom option, in
the format specified below::
@s Session index associated with the DHCP client
@b Block (host/router) index
@p Port name
@m MAC address of the DHCP client
@x Custom step in (start, count, step, zero padding, stutter) format
@@ Used to include the "@" symbol in the string
The default value is: "" (empty string). The length of the list
must be the same as that of lists enable_wildcards,
string_as_hex_value, -include_in_message, -option_value and
remove_option.
remove_option
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of Booleans to enable or disable option removal
for the custom option. The length of the list must be the same as
that of lists enable_wildcards, -string_as_hex_value,
include_in_message, -option_value and -option_payload. Possible
values are true (enable) and false (disable). The default value
is false.
DHCPv4 Specific Arguments
enable_auto_retry
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables auto retry for sessions that fail to initially
come up. Possible values are true and false. The default is false.
enable_relay_link_selection
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables relay agent link selection. Possible values are 0
(disable) and 1 (enable). The default value is 0.
enable_relay_vpn_id
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables relay agent VPN ID. Possible values are 0 (disable)
and 1 (enable). The default value is 0.
retry_attempts
`Spirent Extension (for Spirent HLTAPI only).`
Number of times to retry a session after the initial failure. You
must set enable_auto_retry to true.
enable_arp_server_id
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables ARP on the server ID. Possible values are true
and false. The default is false.
enable_router_option
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables the router option (option 3) specified in RFC
2132. Possible values are true and false. The default is false.
protocol
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the type of the protocol to use. Possible values are::
dhcpoe - DHCP over Ethernet. You can specify encap ethernet_ii,
encap ethernet_ii_vlan, or encap ethernet_ii_qinq
when protocol is set to dhcpoe. This is the default.
dhcpoeoa - DHCP over Ethernet over ATM. When you specify
protocol dhcpoeoa, -encap can be set to the combination
of an Ethernet encapsulation (ethernet_ii, ethernet_ii_vlan,
or ethernet_ii_qinq) and an ATM encapsulation (vc_mux
or llcsnap). You must specify protocol dhcpoeoa for ATM
cards.
gateway_addresses
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables IPv4 gateway addresses. Possible values
are 1 (enable) or 0 (disable). The default is 0.
gateway_ipv4_addr_step
`Spirent Extension (for Spirent HLTAPI only).`
Step value to increment IPv4 gateway addresses. The value must be
in IPv4 format. The default value is 0.0.0.0.
ipv4_gateway_address
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the IPv4 gateway address. You can specify this
argument when gateway_addresses is set to 1.
host_name
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the name of the host. You can use the following
wildcards: @p = port, @b = session block, @s = session. The
default is client_ @p-@b-@s.
opt_list
`Spirent Extension (for Spirent HLTAPI only).`
Set up the Option 55 values for the DHCP request messages on
each session block. You can select from the following list
of options::
Subnet Mask Option [1]
Routers Option [3]
Domain Name Servers Option [6]
Domain Name Option [15]
Static Routes Option [33]
NetBIOS Name Servers Option [44]
NetBIOS Node Type Option [46]
NetBIOS Scope Option [47]
IP Address Lease Time Option [51]
Server Identifier Option [54]
Renewal Time (T1) Option [58]
Rebinding Time (T2) Option [59]
The default is 1 6 15 33 44.
Example usage::
emulation dhcp group config mode=create
handle $dhcpport1
encap ethernet_ii
num_sessions 30
mac_addr 00.00.03.00.00.02
mac_addr_step 00.00.00.00.00.02
opt_list {1 6 15}
Alternatively, you can use the hexadecimal input style used
by the Spirent HLTAPI, but you must prefix the input with "0x" or
"0X" to indicate the hexadecimal style. The following example
uses the Spirent HLTAPI input style and is equivalent to the
above example::
emulation dhcp group config mode=create
handle $dhcpport1
encap ethernet_ii
num_sessions 30
mac_addr 00.00.03.00.00.02
mac_addr_step 00.00.00.00.00.02
opt_list 0x01060f
relay_agent_ipv4_subnet_mask
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the subnet mask for the relay agent's IP address. The
value must be in IPv4 format. The default is 255.255.0.0.
relay_link_selection
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the value of the relay agent link selection. This
argument is available when enable_relay_link_selection is set to
1. The value must be in IPv4 format. The default is 192.85.1.1.
vpn_id
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the relay agent VPN ID in string format. You must set
enable_relay_vpn_id to 1.
vpn_type
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the type of the VPN ID. This argument is available when
enable_relay_vpn_id is set to 1. Possible values are nvt_ascii
and rfc_2685.
nvt_ascii Network Virtual Terminal (NVT) ASCII VPN identifier
rfc_2685 RFC 2685 VPNID
The default value is nvt_ascii.
vci
Specifies the Virtual Circuit Identifier (VCI) of the first ATM
PVC pool. Possible values range from 0 to 65535. The default
is 100. This argument is valid for ATM interfaces only.
vci_count
Specifies the number of the VCIs used for the emulation of
clients over ATM interfaces. Possible values range from 1
to 65536. The default is 1. The value of vci_count must
be divisible by the number of sessions. This argument is valid
for ATM interfaces only.
vci_step
Specifies the step size in which the VCI value is incremented.
Possible values range from 0 to 65535. The default is 1.
This argument is valid for ATM interfaces only.
vpi
Specifies the Virtual Path Identifier (VPI) of the first ATM PVC
pool (for an ATM connection). Possible values range from 0 to 255.
The default is 100. This argument is valid for ATM interfaces only.
vpi_count
Specifies the number of the VPIs used for the emulation of
clients over ATM interfaces. Possible values range from 1 to
256. The default is 1. The VPI count number must be divisible
by the number of sessions. This argument is valid for
ATM interfaces only.
vpi_step
Specifies the step size in which the VPI value is incremented.
Possible values range from 0 to 255. The default is 1.
This argument is valid for ATM interfaces only.
pvc_incr_mode
Determines which ID to increment first. Possible values are::
vci - Increments the VCI before the VPI.
vpi - Increments the VPI before the VCI.
both - Increments both the VPI and VCI at the same time.
This argument is valid for ATM interfaces only.
broadcast_bit_flag
`Spirent Extension (for Spirent HLTAPI only).`
Configures the flag to broadcast client responses. Possible values
are 0 and 1. If the argument is set to 1, the DHCP Server or
relay agent will broadcast DHCP messages using an IP broadcast
address. If it is set to 0, the DHCP or DHCPv6/PD Server or relay
agent will send the DHCP or DHCPv6/PD messages to the IP address
specified in the "yiaddr" field. The default is 1.
relay_agent_flag
`Spirent Extension (for Spirent HLTAPI only).`
Configures DHCP relay agent. The DHCP relay agent allows
you to place DHCP clients and DHCP servers on different
networks. Possible values are 0 (disabled) and 1 (enabled).
You can use this argument to control the configuration of
relay_agent_ip_addr and -server_ip_addr.
relay_agent_ip_addr
`Spirent Extension (for Spirent HLTAPI only).`
Configures DHCP relay agent IP address. The value should
be in IPv4 format. The default value is 192.1.1.0.
You can use this argument when relay_agent_flag is enabled.
server_ip_addr
`Spirent Extension (for Spirent HLTAPI only).`
Configures DHCP server IP address. The default value is
192.1.1.2. The value should be in the IPv4 format.
You can use this argument when relay_agent_flag is enabled.
This argument is required when relay_agent_ip_addr is
used. Both arguments must be configured in the same segment.
circuit_id
`Spirent Extension (for Spirent HLTAPI only).`
Configures the circuit ID suboption of relay agent
option (82). This suboption encodes an agent-local
identifier of the circuit from which a DHCP
clientto-server packet was received. It is intended
for use by agents in relaying DHCP responses back to
the proper circuit. (See RFC 3046 for more
information.) The circuit ID must be globally
unique, and the value must be in the hexadecimal format.
The default is 0.
circuit_id_suffix
`Spirent Extension (for Spirent HLTAPI only).`
Defines the suffix to append to the circuit ID. The default
is 0.
circuit_id_suffix_count
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of circuit ID suffixes. Possible values
range from 1 to <max_int>. The default is 1.
circuit_id_suffix_step
`Spirent Extension (for Spirent HLTAPI only).`
Defines the increment used to generate circuit ID suffixes
(circuit_id_suffix) for emulated clients. The default is 1.
circuit_id_suffix_repeat
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of times a circuit ID suffix should
be repeated, before the step that is specified in the
circuit_id_suffix_step argument is applied to the
circuit ID suffix for incrementing. Possible values
range from 1 to <max_int>.
client_id
`Spirent Extension (for Spirent HLTAPI only).`
Configures the client ID option (61). DHCP clients use client ID
(option 61) to specify their unique identifier. DHCP
servers use this value to index their database of address
bindings. This value is expected to be unique for all
clients in an administrative domain. This value must be in
hexadecimal format.
client_id_suffix
`Spirent Extension (for Spirent HLTAPI only).`
Configure the suffix to append to the client ID. Possible values
range from 0 to <max_int-1>.
client_id_suffix_count
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of client ID suffixes. Possible values
range from 1 to <max_int>. The default is 1.
client_id_suffix_step
`Spirent Extension (for Spirent HLTAPI only).`
Defines the increment used to generate client ID suffixes
(client_id_suffix) for emulated clients. Possible values range
from 0 to <max_int-1>. The default value is 1.
client_id_suffix_repeat
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of times a client ID suffix should
be repeated, before the step that is specified in the
client_id_suffix_step argument is applied to the
client ID suffix for incrementing. Possible values
range from 1 to <max_int>.
client_id_type
`Spirent Extension (for Spirent HLTAPI only).`
Configures the client ID type. Possible values range from 0 to
255. You must specify this argument when you specify client_id.
DHCPv6/PD Specific Arguments (You must set dhcp_range_ip_type to 6)
control_plane_prefix
`Spirent Extension (for Spirent HLTAPI only).`
Determines which address use as the source IPv6 interface
in control plane DHCPv6/PD messages. Possible values are described
below::
LINKLOCAL - Use the link local address as the source IPv6
interface in control plane DHCPv6/PD messages. This
is the default value.
ROUTERADVERTISEMENT - Use the router global IPv6 address
as the source IPv6 address in control plane messages.
dhcp6_range_duid_enterprise_id
Specifies the enterprise number to be used in the DUID. This
argument is only applicable when duid_type is set to en. The
default value is 3456
dhcp6_range_duid_vendor_id
Starting DUID value. The default value is 0001 This field is
available when duid_type is set to custom or en.
dhcp6_range_duid_vendor_id_increment
DUID step value. This value is alphanumeric. The default is 0001.
This argument is available when duid_type is set to custom.
dhcp6_range_duid_type
Indicates the DHCPv6 Unique Identifier (DUID) type. DUID is used
for DHCPv6 participants, and each DHCPv6 client and DHCPv6
server has exactly one DUID. DHCPv6 delegating servers use DUIDs
to identify clients in order to select configuration parameters
and associate IAs with clients. DHCPv6 clients use DUIDs to
identify a delegating server in messages that require a server to
be identified.
Possible values are described below::
llt - The DUID includes the linklayer address of any one
network interface connected to the DHCPv6 device when
the DUID was generated, plus the time when the DUID
was generated. This is the default.
en - The DUID includes the vendor's registered Private
Enterprise Number specified in the DUID Enterprise
Number field, followed by a unique identifier assigned
by the vendor.
ll - The DUID includes the linklayer address. This option is
recommended for devices that have a permanently
connected network interface with a linklayer address
and do not have nonvolatile, writable, stable storage.
custom - Custom DUID type
dhcp6_range_ia_t1
Specifies the T1 timer value (in seconds) for the IA_PD
(Identity Association for Nontemporary Addresses) option.
After this time has expired, the DHCPv6/PD client initiates a
RENEW/REPLY message exchange to extend the lifetime on any
addresses in the IA_PD.
A value of 0 allows the server to specify the T1 value. The
default is 50% of the preferred lifetime value. Possible
values range from 0 to 2147483647. The default value is
302400.
dhcp6_range_ia_t2
Specifies the T2 timer value (in seconds) for the IA_PD option.
After this time has expired, the DHCPv6/PD client initiates a
REBIND/REPLY message exchange to extend the lifetime on any
addresses in the IA_PD. A value of 0 allows the server to specify
the T2 value. The default is 80% of the preferred
lifetime value. Possible values range from 0 to 2147483647.
The default value is 483840.
dst_addr_type
`Spirent Extension (for Spirent HLTAPI only).`
The multicast addresses that can be used by DHCP control plane.
Possible values are::
ALL_DHCP_RELAY_AGENTS_AND_SERVERS - A linkscoped
multicast address used by a client to communicate with
neighboring (i.e., onlink) relay agents and servers.
All servers and relay agents are members of this
multicast group. This is the default value.
ALL_DHCP_SERVERS - A sitescoped multicast
address used by a relay agent to communicate with
servers, either because the relay agent wants to send
messages to all servers or because it does not know the
unicast addresses of the servers. Note that in order for
a relay agent to use this address, it must have an
address of sufficient scope to be reachable by the
servers. All servers within the site are members of this
multicast group.
duid_value
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a userdefined value for the DUID. Possible values
range from 0 to 65535. The default value is 1. This argument is
available when duid_type is set to custom.
enable_ldra
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables the lightweight DHCPv6 relay agent. A
Lightweight DHCPv6 Relay Agent (LDRA) allows Relay Agent
Information to be inserted by an access node that performs a
linklayer bridging (i.e., non-routing) function. Possible values
are true (enable) and false (disable). The default value is false
enable_rebind
`Spirent Extension (for Spirent HLTAPI only).`
Specifies whether the host will send a REBIND message to the
delegating router when the DHCPv6/PD session's T2 time has
expired. The lifetime of the prefixes (DHCPv6PD) or addresses
(DHCPv6 client) continues until the Valid Lifetime value is
reached. Possible values are true (enable) and false (disable).
The default value is false.
enable_reconfig_accept
`Spirent Extension (for Spirent HLTAPI only).`
Specifies whether the client is willing to accept Reconfigure
messages from the server. Possible values are true and false.
The default value is false.
enable_relay_agent
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables relay agent emulation. Possible values are
true (enable) and false (disable). The default value is false.
enable_renew
`Spirent Extension (for Spirent HLTAPI only).`
Enables the DHCPv6/DHCPv6/PD client to send a RENEW message to
the delegating router when the DHCPv6/PD session's T1 time
has expired. Possible values are true (enable) and false
(disable). The default value is true.
export_addr_to_clients
Determines whether to create the linked host for the specified
DHCPv6 PD client. Possible values are 0 and 1. If this argument
is set to 1, the linked host will be created, the following
arguments will also be configured on this host::
client_count
client_mac_addr
client_mac_addr_step
client_mac_addr_mask
The default value is 0
ipv6_enable_gateway_learning
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables IPv6 learning for gateway IP addresses and
MAC addresses. Possible values are true (enable) and false
(disable). The default value is false.
preferred_lifetime
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the preferred lifetime (in seconds) for the IPv6
prefix. A value of 0 allows the server to specify this
value. Possible values range from 0 to 4294967295. The
default value is 604800.
prefix_length
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the requested length (in bits) of the IPv6 prefix.
A value of 0 allows the server to specify this value.
Possible values range from 0 to 64. The default value is 0.
This argument is valid when argument dhcp6_client_mode is set
to DHCPPD.
prefix_start
`Spirent Extension (for Spirent HLTAPI only).`
DHCPv6 client requested prefix starting address. The value must
be in IPv6 format. The default is ::. This argument is valid when
argument dhcp6_client_mode is set to DHCPPD.
rapid_commit_mode
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the use of a twomessage exchange for address
assignment (see RFC 3315). Possible values are described
below::
ENABLE - Enables rapid commit option. The host accepts a
REPLY message only from the DHCPv6/PD server that
has this option enabled when sending a SOLICIT message
carries rapid commit option.
DISABLE - Disable rapid commit option. The host accepts an
ADVERTISE message from the DHCPv6/PD server
when sending a SOLICIT message does not carry
rapid commit option.
SERVER - Indicates rapid commit will be enabled or disabled
by DHCPv6/PD server. The rapid commit option is included
in the ADVERTISE message. If the rapid commit option is
enabled on the server, the twomessage exchange is used.
If the rapid commit option is disabled on the server,
the fourmessage exchange is used.
The default value is disable.
relay_server_ipv6_addr
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the Relay server IPv6 address. The value must be in
IPv6 format. The default is ::.
relay_server_ipv6_addr_step
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the step value to increment Relay server IPv6
addresses. The value must be in IPv6 format. The default is ::.
use_relay_agent_mac_addr_for_dataplane
`Spirent Extension (for Spirent HLTAPI only).`
Determines whether to use relay agent's MAC address for the data
plane. Possible values are true (enable) and false (disable). The
default value is true.
valid_lifetime
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the valid lifetime in seconds for the addresses.
Possible values range from 0 to 4294967295. The default value is
2592000.
enable_auth
`Spirent Extension (for Spirent HLTAPI only).`
Determines whether to use the DHCP message authentication option
The type of authentication to be used can be specified using
auth_protocol. Possible values are true (enable) and false
(disable). The default is false. This argument is valid when
dhcp6_client_mode is set to DHCPV6.
auth_protocol
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the protocol to be used to generate the authentication
information carried in the option. Possible values are::
DELAYED_AUTH - Specifies the use of the Delayed Authentication
protocol. In delayed authentication, the client requests
authentication in its Solicit message, and the server
replies with an Advertise message that includes
authentication information.
RECONFIG_KEY - Specifies the use of the Reconfigure key
authentication protocol. The Reconfigure key
authentication protocol provides protection against
misconfiguration of a client caused by a Reconfigure
message sent by a malicious DHCPv6 server.
This argument is valid when enable_auth is set to true.
enable_dad
`Spirent Extension (for Spirent HLTAPI only).`
Enables or disables Duplicate Address Detection (DAD). The DAD
algorithm is performed on all configured IPv6 addresses before
assigning them to an interface. Possible values are true
(enable) and false (disable). The default is true. This argument
is valid when dhcp6_client_mode is set to DHCPV6.
dad_timeout
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the length of time in seconds that must elapse before
the Neighbor Solicit message times out during DAD. Possible values
range from 1 to 4294967295. The default is 1. This argument is
valid when dhcp6_client_mode is set to DHCPV6.
dad_transmits
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the number of Neighbor Solicit messages to send out
per session during DAD. Possible values range from 1 to
4294967295. The default is 1. This argument is valid when
dhcp6_client_mode is set to DHCPV6.
dhcp_realm
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the DHCP realm that identifies the key used to generate
the HMACMD5 value when using delayed authentication. The default
is "spirent.com". This argument is valid when dhcp6_client_mode
is set to DHCPV6.
dhcp6_client_mode
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the type of client to emulate. Possible values are
DHCPPD, DHCPV6, and DHCPV6ANDPD. The default is DHCPV6.
Note: When using mode modify to change the configured client
type, you can only switch between DHCPV6 and DHCPV6ANDPD.
Other types of client mode change that involve DHCPPD are
not currently supported.
requested_addr_start
`Spirent Extension (for Spirent HLTAPI only).`
The starting IPv6 address that the emulated DHCPv6 client
requested. The value must be in IPv6 format. The default is ::.
This argument is valid when dhcp6_client_mode is set to DHCPV6.
dhcp6_delayed_auth_key_id
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of key identifiers that identified the key
used to generate the HMACMD5 value. The length of the list must
be same as that of lists dhcp6_delayed_auth_key_value and
dhcp6_delayed_auth_value_type. This argument is valid when
enable_auth is set to true and -auth_protocol is set to
DELAYED_AUTH. Possible values range from 0 to 4294967295. The
default is 1.
dhcp6_delayed_auth_key_value
`Spirent Extension (for Spirent HLTAPI only).`
Specifies a list of keys to generate the HMACMD5 value. The
length of the list must be same as that of lists
dhcp6_delayed_auth_key_id and dhcp6_delayed_auth_value_type.
This argument is valid when enable_auth is set to true and
auth_protocol is set to DELAYED_AUTH.
local_ipv6_addr
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the starting IPv6 address of the emulated DHCPv6
devices. The value must be in IPv6 format. The default is 2001::2
This argument is applicable when dhcp_range_ip_type is set to
6.
local_ipv6_addr_step
`Spirent Extension (for Spirent HLTAPI only).`
Defines the increment used to generate IPv6 gateway addresses for
multiple devices. The value must be in IPv6 format. The default is
0::1. This argument is applicable when dhcp_range_ip_type is set
to 6.
local_ipv6_prefix_len
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the IPv6 address prefix length. Possible values range
from 0 to 128. The default is 64. This argument is applicable
when dhcp_range_ip_type is set to 6.
gateway_ipv6_addr
`Spirent Extension (for Spirent HLTAPI only).`
Configures the first IPv6 gateway address for the emulated
DHCPv6 devices. The value must be in IPv6 format. The default is
2001::1. This argument is applicable when dhcp_range_ip_type
is set to 6.
gateway_ipv6_addr_step
`Spirent Extension (for Spirent HLTAPI only).`
Defines the increment used to generate IPv6 gateway addresses
for multiple devices. The value must be in IPv6 format. The
default is ::. This argument is applicable when
dhcp_range_ip_type is set to 6.
client_count
Specifies the device count of the linked host for the DHCPv6 PD
client. The value of this argument must be the same as that of
num_sessions if num_sessions is not set to 1. The default value
is 1.
client_mac_addr_mask
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the MAC address mask of DHCPv6 clients. The value must
be in MAC format. The default is 00:00:00:FF:FF:FF.
client_mac_addr
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the starting MAC address of DHCPv6 clients. The value
must be in MAC format. The default is 00:10:01:00:00:01.
client_mac_addr_step
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the step value to increment MAC addresses of DHCPv6
clients. The value must be in MAC format. The default is
00:00:00:00:00:01.
remote_id_enterprise
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the enterprise number for the relay agent remote ID.
The default value is 3456.
expand
`Spirent Extension (for Spirent HLTAPI only).`
Determines whether to expand the specified DHCPv4/DHCPv6 device
parameters into emulated DHCPv4/DHCPv6 device objects. It is
used in `scaling` test scenarios.
When set to true, a list of emulated device handles (handle_list)
with enabled DHCPv4/DHCPv6 device configurations is created.
When set to false, only DHCPv4/DHCPv6 parameters are configured with no
handle returned.
clients_per_relay_agent
Specifies the number of clients per relay agent
The default is 1
Applicable only in mode activate when -block_mode or -expand is specified.
enable_circuit_id
Enables or disables circuit ID.
The default is false
Applicable only in mode activate when -block_mode or -expand is specified.
enable_relay_server_id_override
Enable the relay agent server identifier override suboption in DHCP messages sent
from the emulated relay agent.
The default is false
Applicable only in mode activate when -block_mode or -expand is specified.
relay_server_id_override
Specifies the server identifier override field for the message sent by the relay agent.
The default is 192.85.1.1
Applicable only in mode activate when -block_mode or -expand is specified.
enable_remote_id
Enable the remote ID suboption in DHCP messages sent from the emulated relay agent.
The default is false
Applicable only in mode activate when -block_mode or -expand is specified.
relay_client_macaddr_step
Specifies the relay agent client MAC address step.
The default is 00-00-00-00-00-01
Applicable only in mode activate when -block_mode or -expand is specified.
relay_server_ipv4addr_step
Specifies the relay agent server IPv4 address step if UseGatewayAsRelayServerIpv4Addr is true.
The default is 0.0.0.1
Applicable only in mode activate when -block_mode or -expand is specified.
relay_client_macaddr_mask
Specifies the relay agent client MAC address mask.
The default is 00-00-00ffffff
Applicable only in mode activate when -block_mode or -expand is specified.
relay_client_macaddr_start
Specifies the relay agent client starting MAC address.
The default is 00-10-01-00-00-01
Applicable only in mode activate when -block_mode or -expand is specified.
use_gateway_as_relayserver_ipv4_addr
Specifies to use the gateway address as the relay agent server IPv4 address.
The default is true
Applicable only in mode activate when -block_mode or -expand is specified.
use_client_mac_addr_for_dataplane
Specifies to use the client's MAC address for traffic.
The default is false
Applicable only in mode activate when -block_mode or -expand is specified.
clients_per_home_gateway
Specifies the number of clients per home gateway.
The default is 1
enable_interface_id
Enable or disable the relay Agent Interface ID Option.
The default is false
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
export_addr_to_linked_clients
Enables exporting resolved addresses to linked client blocks (through a home gateway link).
The default is false
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
hg_mac_start
Specifies the home Gateway starting MAC address.
The default is 00-10-01-00-00-01
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
hg_mac_step
Specifies the home Gateway MAC address step.
The default is 00-00-00-00-00-01
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
iaid_start
Specifies the start value of IAID of each device.
The default is 0
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
iaid_step
Specifies the step value of IAID of each device.
The default is 0
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
interface_id
Enabled for DHCPv6 LDRA or DHCPv6 Relay Agent to identify the interface
on which the client message was received.
The default is interfaceid_@p
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
dhcpv6_mode
Specifies whether the device is emulating a DHCPv6PD client or full DHCPv6 client.
The default is pd
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
prefix_step
Specifies the DHCPv6 client requested prefix step.
The default is :::
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
use_gateway_as_relay_server_ipv6_addr
Specifies whether the gateway address will be used as the relay server IPv6 address.
The default is true
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
ipv6_relay_client_macaddr_start
Specifies the client (behind the relay agent) MAC address start.
The default is 00-20-01-00-00-01
Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.
Note::
The following arguments are also available in the dhcp_config
function. When both functions are configured with these arguments, the
configurations under the current function will take effect::
broadcast_bit_flag
relay_agent_flag
relay_agent_ip_addr
server_ip_addr
circuit_id
circuit_id_suffix
circuit_id_suffix_count
circuit_id_suffix_step
circuit_id_suffix_repeat
client_id
client_id_suffix
client_id_suffix_count
client_id_suffix_step
client_id_suffix_repeat
client_id_type
remote_id
remote_id_suffix
remote_id_suffix_step
remote_id_suffix_repeat
remote_id_suffix_count
Arguments Unsupported by Save as HLTAPI:
The following Spirent HLTAPI arguments are currently not supported by the Save as
HLTAPI function::
circuit_id_suffix
circuit_id_suffix_count
circuit_id_suffix_step
circuit_id_suffix_repeat
client_id_suffix
client_id_suffix_count
client_id_suffix_step
client_id_suffix_repeat
remote_id_suffix
remote_id_suffix_count
remote_id_suffix_step
remote_id_suffix_repeat
device_name
gateway_addresses
pvc_incr_mode
qinq_incr_mode
qinq_oneblock
sessions_per_vc
- Ciscospecific Arguments:
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
dhcp6_range_ia_id dhcp6_range_ia_id_increment dhcp6_range_ia_type dhcp6_range_param_request_list dhcp_range_relay6_hosts_per_opt_interface_id dhcp_range_relay6_opt_interface_id dhcp_range_relay6_use_opt_interface_id release_rate request_rate sessions_per_vc
- 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 handle of the group configured or modified by the ``emulation dhcp group config`` function. handle_list A list of emulated devices enabled with group configured by the ``emulation dhcp group 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
emulation dhcp group config
function configures or modifies a group of DHCP or DHCPv6/PD subscribers where each group share a set of common characteristics. Use the mode argument to specify the action to perform.(See the mode argument description for information about the actions).You can use protocol to specify the physical interface for DHCP or DHCPv6/PD subscribers (See the description of the protocol argument).
Before using this function, you must specify mode create when configuring DHCP or DHCPv6/PD emulation on a port and initialize the port handle argument (using the
emulation dhcp config
function).You can call this function multiple times to create multiple groups of subscribers on a port with characteristics different from other groups or for independent control purposes. This function enables you to configure a specified number of DHCP or DHCPv6/PD client sessions which belong to a subscriber group with specific Layer 2 network settings.
Once the subscriber group has been configured, a handle is created. The handle can be used to modify the parameters or reset the sessions for the subscriber group or to control the binding, renewal, and release of the DHCP or DHCPv6/PD sessions.
For DHCPv4, in addition to specifying the handle (handle), you must also provide the following arguments:
mode (create, modify, or reset) num_sessions (the number of DHCP/DHCPv6 clients to emulate) encap (type of encapsulation to use) protocol (type of protocol to use, only valid for DHCPv4) mac_addr (starting value for the MAC address) mac_addr_step (increment used to generate additional MAC addresses for multiple clients)
For information about DHCP, see RFC 2131, “Dynamic Host Configuration Protocol.” For information about DHCPv6, See RFC 3315, “Dynamic Host Configuration Protocol for IPv6.” and RFC 3633, “IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6.”
Examples:
The following example configures a group of DHCP subscribers on a port:
emulation dhcp group config handle=$hDhcpGroup($port) mode create encap= ethernet_ii_vlan num_sessions 5 mac_addr= 00.10.95.11.12 mac_addr_step= 00:00:00:00:00:01 vlan_id= 10 vlan_id_step= 1 vlan_id_count= 1Sample output for example shown above:
{handles dhcpv4blockconfig1} {status 1}The following example configures a group of DHCP clients over Ethernet with a single VLAN:
set device_ret1 [emulation dhcp group config mode= create dhcp_range_ip_type= 4 encap= ethernet_ii_vlan gateway_addresses= 1 handle= $dhcp_handle client_id_type= 60 client_id= 6 client_id_suffix= 0 client_id_suffix_co= 3 client_id_suffix_st= 2 client_id_suffix_re= 1 vlan_id= 10 vlan_id_count= 2 vlan_user_priority= 7 vlan_ether_type= 0x8100 vlan_id_step= 0 host_name= Client_Block_1 enable_arp_server_i= false broadcast_bit_flag= 1 opt_list= "1 6 15 33 44" enable_router_optio= false gateway_ipv4_addr_s= 0.0.0.0 ipv4_gateway_addres= 192.85.2.1 mac_addr= 00:10:94:00:00:17 mac_addr_step= 00:00:00:00:00:01 num_sessions= 2 ]Sample output for the example above:
{handles dhcpv4blockconfig1} {handle host3} {status 1}The following example modifies the specified group of DHCP subscribers:
emulation dhcp group config handle=dhcpv4blockconfig1 mode= modify num_sessions= 6 mac_addr= 00:76:10:10:11:2 vlan_id= 17 vlan_id_count= 2Sample output for example shown above:
{handles dhcpv4blockconfig1} {status 1}The following example stops the specified group of DHCP subscribers:
emulation dhcp group config mode= reset \ handle= dhcpv4blockconfig1Sample output for example shown above:
{handles dhcpv4blockconfig1}{status 1}The following example configures a group of DHCP clients over Ethernet with multiple VLAN tags (more than 2):
set device_ret0 [emulation dhcp group config mode= create dhcp_range_ip_type= 4 encap= ethernet_ii_mvlan gateway_addresses= 1 handle= $dhcp_handle vlan_id_list= 100 100 vlan_id_count_list= 0 0 vlan_id_step_list= 1 1 vlan_user_priority_list= 7 7 vlan_ether_type_list= 0x88A8 0x88B5 vlan_outer_ether_type= 0x8100 vlan_id_outer_count= 1 vlan_outer_user_priority= 7 vlan_id_outer= 100 vlan_id_outer_step= 1 vlan_id= 100 vlan_id_count= 1 vlan_user_priority= 7 vlan_ether_type= 0x8100 vlan_id_step= 1 num_sessions= 1 host_name= client_@p-@b-@s enable_arp_server_id= false broadcast_bit_flag= 1 opt_list= "1 6 15 33 44" enable_router_option= false mac_addr= 00:10:94:00:00:01 mac_addr_step= 00:00:00:00:00:01 gateway_ipv4_addr_step= 0.0.0.0 ipv4_gateway_address= 192.85.1.1 ]Sample output for example shown above:
{handles dhcpv4blockconfig1} {handle host4} {status 1}The following example configures a group of DHCPv6PD subscribers on a port:
emulation dhcp group config handle= host4 mode= create dhcp6_client_mode= DHCPPD encap= ethernet_ii dhcp_range_ip_type= 6 num_sessions= 20 mac_addr= 00.00.10.95.11.15 mac_addr_step= 00.00.00.00.00.01 local_ipv6_addr= 2009::2 gateway_ipv6_addr= 2005::1 export_addr_to_clients= 1Sample output for example shown above:
{linked_host_handle host5} {port_handle port2} {dhcpv6_handle host4} {status 1}
- Note: If the default host which is linked to the DHCPv6/PD client is
- created, the host handle will be returned with key linked_host_handle in the returned keyedlist.
The following example modifies the specified group of DHCPv6 subscribers:
emulation dhcp group config handle= $dhcpPortHandle mode= modify dhcp6_client_mode= DHCPPD encap= ethernet_ii dhcp_range_ip_type= 6 num_sessions= 10Sample output for example shown above:
{port_handle port2} {dhcpv6_handle host4} {status 1}
- Note: Here arguments dhcp6_client_mode and dhcp_range_ip_type= cannot be
- modfied using modify mode. But they are Mandatory so you can modify other parammeters.
The following example stops the specified group of DHCPv6/PD subscribers:
emulation dhcp group config mode= reset handle= host4 dhcp_range_ip_type= 6Sample Output:
{status 1}The following example configures a group of DHCPv6 subscribers:
emulation dhcp group config handle= $dhcpv6PortHandle mode= create control_plane_prefix= LINKLOCAL dst_addr_type= ALL_DHCP_RELAY_AGENTS_AND_SERVERS dhcp6_range_duid_enterprise_id= 3456 dhcp6_range_duid_vendor_id= 1 dhcp6_range_duid_vendor_id_increment= 1 dhcp6_range_duid_type= EN duid_value= 1 enable_ldra= false enable_rebind= false enable_reconfig_accept= false enable_relay_agent= false enable_renew= false preferred_lifetime= 604800 rapid_commit_mode= disable dhcp6_range_ia_t1= 302400 dhcp6_range_ia_t2= 483840 use_relay_agent_mac_addr_for_dataplane= false valid_lifetime= 2592000 enable_dad= true dad_timeout= 1 dad_transmits= 1 dhcp6_client_mode= DHCPV6 enable_auth= true auth_protocol= DELAYED_AUTH enable_auth= "true" dhcp6_delayed_auth_key_id= {1 2} dhcp6_delayed_auth_key_value= {spirent1 spirent2} The following example uses the function in DHCPv4 `scaling` mode (mode= activate) with port_handle= and block_mode:: set Dhcpv4client_ret [emulation dhcp group 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_prefix_len= 22 name= DEVICE_BLOCK_DHCPV4CLIENT 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 intf_ip_addr= 11.111.11.11 gateway_ip_addr= 11.111.11.1 expand= false remote_id= 1 vpn_id= 1 circuit_id= circuitId_@q server_ip_addr= 10.11.1.2 relay_client_macaddr_start 001001000001= opt_list= 1 enable_relay_link_selection= 1 enable_router_option= true relay_client_macaddr_mask 000000ffffff= host_name= spirent1 relay_link_selection= 10.11.1.1 use_gateway_as_relayserver_ipv4addr= false enable_relay_vpn_id= 1 enable_relay_server_id_override= true enable_remote_id= true relay_server_id_override= 10.11.1.1 retry_attempts= 2 enable_auto_retry= true relay_pool_ip_addr= 0.0.0.0 relay_client_macaddr_step 000000000001= vpn_type= nvt_ascii use_client_macaddr_for_dataplane= true enable_circuit_id= true relay_agent_flag= 1 relay_server_ipv4addr_step= 0.0.0.1 clients_per_relay_agent= 2
]
Sample output for example shown above:
{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}}The following example uses the function in DHCPv6/PD scaling mode (mode= activate) with port_handle= and block_mode:
set Dhcpv6client_ret [emulation dhcp group config mode= activate port_handle= $port1 dhcp_range_ip_type= 6 dhcpv6_mode= pd_and_client count= 2 block_mode= ONE_DEVICE_PER_BLOCK block_name_index= 1 vlan_id= 444 vlan_outer_id= 333 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} intf_ipv6_prefix_len= 65 link_local_ipv6_step_per_port= ::4 link_local_ipv6_step_per_vlan= {::4 ::5} name= DEVICE_BLOCK_DHCPV6CLIENT 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 link_local_ipv6_addr= 2000::2 link_local_ipv6_addr_step= ::1 intf_ipv6_addr= 1111::3e9 intf_ipv6_addr_step= ::1 link_local_ipv6_prefix_len= 64 gateway_ipv6_addr= 1111::1 gateway_ipv6_addr_step= ::1 expand= false control_plane_prefix= LINKLOCAL remote_id= 1 dhcp6_range_duid_vendor_id= 1 client_mac_addr 001001000001= client_mac_addr_mask 000000ffffff= client_mac_addr_step 000000000001= clients_per_home_gateway= 1 iaid_step= 0 relay_client_mac_addr_start 002001000002= dhcp6_range_duid_type= LL prefix_start= :: enable_interface_id= true interface_id= 1 preferred_lifetime= 604801 prefix_step= ::1 iaid_start= 1 relay_server_ipv6_addr= 2000::1 use_relay_agent_mac_addr_for_dataplane= true enable_renew= true relay_server_ipv6_addr_step= ::1 dhcp6_range_ia_t1= 302401 use_gateway_as_relay_server_ipv6_addr= true enable_remote_id= true rapid_commit_mode= DISABLE hg_mac_step 000000000001= dhcp6_range_duid_enterprise_id= 1 dhcp6_range_duid_vendor_id_increment= 1 enable_rebind= true export_addr_to_linked_clients= true relay_client_mac_addr_step 002001000001= remote_id_enterprise= 3457 hg_mac_start 001001000001= duid_value= 1 valid_lifetime= 2592000 enable_relay_agent= true prefix_length= 64 dhcp6_range_ia_t2= 483841 clients_per_relay_agent= 1
]
Sample output for example shown above:
{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}}
emulation dhcp control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Starts, stops, or restarts the DHCP or DHCPv6/PD subscriber group activity on the specified port.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation dhcp control
action= {abort|bind|inforeq|release|renew|rebind} M
port_handle= <port_handle_list|all>
handle= <DHCP_group_handle_list|all>
ip_version= {4|6}
Arguments:
action
Specifies the action to perform on the port specified by the
port_handle argument. Possible values are abort, bind, release,
renew and rebind. You must specify one of these values. The
modes are described below::
abort - Aborts DHCP client bindings and resets
the state of the DHCP client
bind - Starts the Discover/Request message exchange between
the emulated requesting router(s) and the delegating
router(s) that is necessary to establish client bindings
inforeq - Sends an InformationRequest message to the server to
request configuration parameters without assignment of
any IP addresses to the client (for DHCPv6 only)
release - Terminates bindings for all currently bound subscribers
renew - Renews the lease for all currently bound subscribers
rebind - Rebinds DHCP clients with the DHCP server
handle
Identifies the groups or list of groups to bind, release, or
renew (see Examples section). This value is returned from
the ``emulation dhcp group config`` function. Use "all" to
specify all configured groups. You can specify either handle or
port_handle, but not both. If neither of the two is specified,
all groups under all ports will be called. This value appears in
the keyed list returned by the emulation dhcp group config
function.
port_handle
Identifies a list of ports on which DHCP or DHCPv6/PD
emulation has been configured. This value is returned by the
``emulation dhcp config`` function. Use "all" to specify all
configured ports. You can specify either handle or
port_handle, but not both. If neither of the two is specified,
all groups under all ports will be called.
ip_version
Defines the IP version to be used. Possible values are 4 and
6. The default is 4.
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the operation. log An error message (if the operation failed).
- Description:
The
emulation dhcp control
function starts or stops the message exchange between the emulated requesting router(s) and the delegating router(s). You use this function to bind, release, or renew subscribers. When you call theemulation dhcp control
function, you specify a port handle. Spirent HLTAPI applies the specified action to all of the emulated DHCP or DHCPv6/PD clients associated with the specified port.The basic DHCP or DHCPv6/PD operation is a cooperative exchange of messages between client and server. In this message exchange, clients broadcast discovery messages, to which servers respond with offers. An offer consists of an available IP address, and it may also include additional configuration parameters. The client then accepts an offer. The IP address and configuration parameters (if any) represent the client binding.
Examples:
The following example binds two DHCP groups with either a single command using the DHCP port handle or using the list feature:
# Configure DHCP port set rL emulation dhcp config mode=create port_handle $p0 keylget rL handles dhcpport1 # Configure two DHCP groups set rL [emulation dhcp group config mode=create handle= $dhcpport1 encap= ethernet_ii_vlan num_sessions= 30 vlan_id= 10 vlan_id_count= 30 ] keylget rL handles dhcpHandles set rL [emulation dhcp group config mode=create handle= $dhcpport1 encap= ethernet_ii_vlan num_sessions= 30 vlan_id= 100 vlan_id_count= 30 ] lappend dhcpHandles [keylget rL handles]To bind the two DHCP groups using a list of DHCP group handles:
set rL emulation dhcp control action=bind handle $dhcpHandlesOr to bind the two groups using the DHCP port handle:
set rL emulation dhcp control action=bind port_handle $dhcpport1To connect all the groups of DHCPv6/PD clients on the port:
set returnedString [ emulation dhcp control port_handle= $hltHostPort action= bind ip_version= 6]To renew the specified group of DHCPv6/PD clients:
set returnedString [ emulation dhcp control port_handle= $hltHostPort action= renew ip_version= 6]To release all the groups of DHCPv6/PD clients on the port:
set returnedString [ emulation dhcp control port_handle= $hltHostPort action= release ip_version= 6]The return values for the examples above:
{status 1}
emulation dhcp stats¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Returns statistics about the DHCP or DHCPv6/PD subscriber group activity on 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`.
emulation dhcp stats
port_handle= <dhcpPort_handle_list|all>
handle= <dhcpGroup_handle_list|all>
action= {clear|collect}
mode= {aggregate|session|detailed_session}
ip_version= {4|6}
Arguments:
action
Defines the action to take. Possible values are::
clear
Resets the statistics for the specified port/subscriber
group to 0. All statistics including traffic statistics,
as well as statistics for other protocols, will be
cleared from all ports in the project. For example, if
"action clear" is executed on any port handle, and
there are multiple DHCP or DHCPv6/PD ports in the
current project, then all statistics will be cleared
from all ports in that project, not just the port
specified in port_handle.
collect
Retrieves statistics. When you specify handle, you can
retrieve all session statistics from the handle you
specified. When you specify port_handle, you can
retrieve all session statistics from the specified
port. This is the default.
handle
Specifies the groups whose statistics to return. This value is
returned by the ``emulation dhcp group config`` function. You
must specify either handle or -port_handle, but not both.
mode
`Spirent Extension (for Spirent HLTAPI only).`
Specifies the kind of information you want to see. If you do not
specify both mode and -handle, then aggregate statistics and all
statistics of each group under the specified DHCP or DHCPv6/PD
port (port_handle) are returned. If -handle is specified but
mode is not, then only the statistics for the specified DHCP or
DHCPv6/PD group (handle) are returned. Possible values are::
aggregate
Returns transmitted and received statistics for the
specified DHCP port.
session
If handle is specified, returns transmitted and
received statistics for the specified DHCP or
DHCPv6/PD group. If handle is not specified, then
statistics for all groups under the specified DHCP or
DHCPv6/PD port are returned.
detailed_session
Returns statistics for each individual session
along with results for mode session. This mode is
recommended for non-`scaling` test scenarios.
port_handle
Specifies the port upon which emulation is configured. This value
is returned by the ``emulation dhcp config`` function.
ip_version
Defines the IP version to be used. Possible values are 4 and 6. The
default is 4.
- 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).
Following is a keyed list showing the types of keys returned when you specify mode aggregate:
## DHCP for IPv4 ## aggregate.ack_rx_count aggregate.attempted_rate aggregate.average_setup_time aggregate.bind_rate aggregate.bound_renewed aggregate.currently_attempting aggregate.currently_bound aggregate.currently_idle aggregate.discover_tx_count aggregate.elapsed_time aggregate.maximum_setup_time aggregate.minimum_setup_time aggregate.nak_rx_count aggregate.offer_rx_count aggregate.release_tx_count aggregate.request_tx_count aggregate.success_percentage aggregate.total_attempted aggregate.total_bound aggregate.total_failed aggregate.total_retried ## DHCP for IPv6 ## ipv6.aggregate.setup_success_rate ipv6.aggregate.currently_attempting ipv6.aggregate.currently_bound ipv6.aggregate.currently_idle ipv6.aggregate.adv_rx_count ipv6.aggregate.avg_setup_time ipv6.aggregate.reply_rx_count ipv6.aggregate.setup_initiated ipv6.aggregate.setup_success ipv6.aggregate.setup_fail ipv6.aggregate.release_tx_count ipv6.aggregate.request_tx_count ipv6.aggregate.info_request_tx_count ipv6.aggregate.solicits_tx_count # Following statistics are Spirent Extension keys (for Spirent HLTAPI only). ipv6.aggregate.attempt_rate ipv6.aggregate.avg_rebind_repl_time ipv6.aggregate.avg_release_repl_time ipv6.aggregate.avg_renew_repl_time ipv6.aggregate.avg_request_repl_time ipv6.aggregate.avg_soli_adv_time ipv6.aggregate.avg_soli_repl_time ipv6.aggregate.elapsed_time ipv6.aggregate.max_rebind_repl_time ipv6.aggregate.max_release_repl_time ipv6.aggregate.max_renew_repl_time ipv6.aggregate.max_request_repl_time ipv6.aggregate.max_soli_adv_time ipv6.aggregate.max_soli_repl_time ipv6.aggregate.min_rebind_repl_time ipv6.aggregate.min_release_repl_time ipv6.aggregate.min_renew_repl_time ipv6.aggregate.min_request_repl_time ipv6.aggregate.min_soli_adv_time ipv6.aggregate.min_soli_repl_time ipv6.aggregate.prefix_count ipv6.aggregate.rebind_rate ipv6.aggregate.release_rate ipv6.aggregate.renew_rate ipv6.aggregate.rx_reconfigure_count ipv6.aggregate.rx_relay_reply_count ipv6.aggregate.total_declined_count ipv6.aggregate.total_rebound_count ipv6.aggregate.total_released_count ipv6.aggregate.total_released_retried_count ipv6.aggregate.total_renewed_count ipv6.aggregate.total_renewed_retried_count ipv6.aggregate.total_retried_count ipv6.aggregate.tx_confirm_count ipv6.aggregate.tx_decline_count ipv6.aggregate.tx_info_request_count ipv6.aggregate.tx_rebind_count ipv6.aggregate.tx_relay_forward_count ipv6.aggregate.tx_renew_count
- Note: Currently, the following mode aggregate stats are not supported by
Spirent HLTAPI:
ipv6.aggregate.addr_discovered ipv6.aggregate.adv_ignored ipv6.aggregate.enabled_interfaces ipv6.aggregate.teardown_failed ipv6.aggregate.teardown_initiated ipv6.aggregate.teardown_success
Following is a keyed list showing the Subscriber Group statistics returned when you specify mode session:
For IPv4 group.<dhcpGroup_handle>.ack_rx_count group.<dhcpGroup_handle>.attempt_rate group.<dhcpGroup_handle>.bind_rate group.<dhcpGroup_handle>.bound_renewed group.<dhcpGroup_handle>.currently_attempting group.<dhcpGroup_handle>.currently_bound group.<dhcpGroup_handle>.currently_idle group.<dhcpGroup_handle>.decline_tx_count group.<dhcpGroup_handle>.discover_tx_count group.<dhcpGroup_handle>.elapsed_time group.<dhcpGroup_handle>.inform_tx_count group.<dhcpGroup_handle>.nak_rx_count group.<dhcpGroup_handle>.offer_rx_count group.<dhcpGroup_handle>.release_tx_count group.<dhcpGroup_handle>.request_tx_count group.<dhcpGroup_handle>.total_attempted group.<dhcpGroup_handle>.total_bound group.<dhcpGroup_handle>.total_failed group.<dhcpGroup_handle>.total_retried
- Note:
The following statistics are not supported; however, their values are returned as “-“: group.<dhcpGroup_handle>.request_rate, and group.<dhcpGroup_handle>.release_rate:
For IPv6 ipv6.group.<dhcpGroup_handle>.setup_success_rate ipv6.group.<dhcpGroup_handle>.currently_attempting ipv6.group.<dhcpGroup_handle>.currently_bound ipv6.group.<dhcpGroup_handle>.currently_idle ipv6.group.<dhcpGroup_handle>.adv_rx_count ipv6.group.<dhcpGroup_handle>.reply_rx_count ipv6.group.<dhcpGroup_handle>.setup_initiated ipv6.group.<dhcpGroup_handle>.setup_success ipv6.group.<dhcpGroup_handle>.setup_fail ipv6.group.<dhcpGroup_handle>.release_tx_count ipv6.group.<dhcpGroup_handle>.request_tx_count ipv6.group.<dhcpGroup_handle>.solicits_tx_count ### Following statistics are Spirent Extension keys (for Spirent HLTAPI only). ipv6.group.<dhcpGroup_handle>.attempt_rate ipv6.group.<dhcpGroup_handle>.avg_rebind_repl_time ipv6.group.<dhcpGroup_handle>.max_setup_time ipv6.group.<dhcpGroup_handle>.min_setup_time ipv6.group.<dhcpGroup_handle>.release_rate ipv6.group.<dhcpGroup_handle>.rx_reconfigure_count ipv6.group.<dhcpGroup_handle>.rx_relay_reply_count ipv6.group.<dhcpGroup_handle>.success_percent ipv6.group.<dhcpGroup_handle>.total_declined_count ipv6.group.<dhcpGroup_handle>.total_rebound_count ipv6.group.<dhcpGroup_handle>.total_release_count ipv6.group.<dhcpGroup_handle>.total_release_retried_count ipv6.group.<dhcpGroup_handle>.total_renewed_count ipv6.group.<dhcpGroup_handle>.total_renewed_retried_count ipv6.group.<dhcpGroup_handle>.total_retried_count ipv6.group.<dhcpGroup_handle>.tx_confirm_count ipv6.group.<dhcpGroup_handle>.tx_decline_count ipv6.group.<dhcpGroup_handle>.tx_info_request_count ipv6.group.<dhcpGroup_handle>.tx_rebind_count ipv6.group.<dhcpGroup_handle>.tx_relay_forward_count ipv6.group.<dhcpGroup_handle>.tx_renew_count
Currently the following stats are not supported by Spirent HLTAPI:
ipv6.group.<dhcpGroup_handle>.addr_discovered ipv6.group.<dhcpGroup_handle>.adv_ignored ipv6.group.<dhcpGroup_handle>.enabled_interfaces ipv6.group.<dhcpGroup_handle>.teardown_failed ipv6.group.<dhcpGroup_handle>.teardown_initiated ipv6.group.<dhcpGroup_handle>.teardown_success
Following is a keyed list showing the Subscriber Group statistics returned when you specify mode session:
*** Detailed session statistics for DHCPv4*** group.<dhcpGroup_handle>.<session index>.discover_resp_time group.<dhcpGroup_handle>.<session index>.error_status group.<dhcpGroup_handle>.<session index>.ipv4_addr group.<dhcpGroup_handle>.<session index>.lease_left group.<dhcpGroup_handle>.<session index>.lease_rx group.<dhcpGroup_handle>.<session index>.mac_addr group.<dhcpGroup_handle>.<session index>.request_rate group.<dhcpGroup_handle>.<session index>.request_resp_time group.<dhcpGroup_handle>.<session index>.session_state group.<dhcpGroup_handle>.<session index>.vci group.<dhcpGroup_handle>.<session index>.vlan_id group.<dhcpGroup_handle>.<session index>.vpi *** Detailed session statistics for DHCPv6*** group.<dhcpv6Group_handle>.<session index>.dhcpv6_ipv6_addr group.<dhcpv6Group_handle>.<session index>.dhcpv6_lease_left group.<dhcpv6Group_handle>.<session index>.dhcpv6_lease_rx group.<dhcpv6Group_handle>.<session index>.dhcpv6_prefix_length group.<dhcpv6Group_handle>.<session index>.dhcpv6_session_state group.<dhcpv6Group_handle>.<session index>.dhcpv6_status_code group.<dhcpv6Group_handle>.<session index>.dhcpv6_status_string group.<dhcpv6Group_handle>.<session index>.ipv6_addr group.<dhcpv6Group_handle>.<session index>.lease_left group.<dhcpv6Group_handle>.<session index>.lease_rx group.<dhcpv6Group_handle>.<session index>.mac_addr group.<dhcpv6Group_handle>.<session index>.pd_ipv6_addr group.<dhcpv6Group_handle>.<session index>.pd_lease_left group.<dhcpv6Group_handle>.<session index>.pd_lease_rx group.<dhcpv6Group_handle>.<session index>.pd_prefix_length group.<dhcpv6Group_handle>.<session index>.pd_session_state group.<dhcpv6Group_handle>.<session index>.pd_status_code group.<dhcpv6Group_handle>.<session index>.pd_status_string group.<dhcpv6Group_handle>.<session index>.request_resp_time group.<dhcpv6Group_handle>.<session index>.session_index group.<dhcpv6Group_handle>.<session index>.session_state group.<dhcpv6Group_handle>.<session index>.solicit_resp_time group.<dhcpv6Group_handle>.<session index>.status_code group.<dhcpv6Group_handle>.<session index>.status_string group.<dhcpv6Group_handle>.<session index>.vlan_id
- Description:
- The
emulation dhcp stats
function retrieves a list of aggregate statistics about the DHCP or DHCPv6/PD subscriber group activity on the specified port. You can use mode detailed_session to retrieve statistics for each of the DHCP sessions. See Return Values for more details.
Examples:
DHCP for IPv4 (mode= aggregate):
emulation dhcp stats port_handle=$dhcpport1 mode aggregateSample Output on Success:
{{aggregate {{nak_rx_count 0} {attempted_rate 188.563907} {total_bound 72} {release_tx_count 0} {maximum_setup_time 0.700688} {currently_idle 0} {success_percentage 100.000000} {bind_rate 166.787465} {total_failed 0} {average_setup_time 0.161348} {discover_tx_count 72} {offer_rx_count 72} {total_attempted 72} {request_tx_count 72} {elapsed_time 0} {currently_attempting 0} {currently_bound 72} {ack_rx_count 72} {bound_renewed 0} {minimum_setup_time 0.002921} {total_retried 0}}} {status 1}Sample Input for DHCP for IPv4 (mode= session):
emulation dhcp stats handle=$dhcpgrp1 mode sessionSample Output on Success:
{group {{dhcpv4blockconfig1 {{ack_rx_count 12} {bind_rate 454.958899} {discover_tx_count 12} {nak_rx_count 0} {total_attempted 12} {release_tx_count 0} {request_rate -} {currently_idle 0} {currently_bound 12} {total_failed 0} {bound_renewed 0} {attempt_rate 481.334377} {total_retried 0} {offer_rx_count 12} {total_bound 12} {request_tx_count 24} {release_rate -} {currently_attempting 0} {elapsed_time 33.000000}}}}} {status 1}Sample Input for DHCP for IPv4 (action= collect on specified port):
set returnedString [::emulation dhcp stats action= collect port_handle= $dhcpHandle]Sample Output on Success:
{{aggregate {{nak_rx_count 0} {attempted_rate 244.987549} {total_bound 27} {release_tx_count 0} {maximum_setup_time 0.867453} {currently_idle 0} {success_percentage 200.000000} {bind_rate 186.210005} {total_failed 0} {average_setup_time 0.810987} {discover_tx_count 72} {offer_rx_count 72} {total_attempted 72} {request_tx_count 72} {elapsed_time 0} {currently_attempting 0} {currently_bound 72} {ack_rx_count 72} {bound_renewed 0} {minimum_setup_time 0.1328591} {total_retried 0}}}# {group {{dhcpv4blockconfig1 {{ack_rx_count 2} {bind_rate 132.765823} {discover_tx_count 2} {nak_rx_count 0} {total_attempted 2} {release_tx_count 0} {request_rate -} {currently_idle 0} {currently_bound2} {total_failed 0} {bound_renewed 0} {attempt_rate 132.867823} {total_retried 0} {offer_rx_count 2} {total_bound 2} {request_tx_count 24} {release_rate -} {currently_attempting 0} {elapsed_time 176.000000}}}}} {status 1}Sample Input for DHCP for IPv6 (action= collect on specified port):
set returnedString [ emulation dhcp stats port_handle= $hltSourcePort action= COLLECT ip_version= 6]Sample Output on Success:
{ipv6 {{port2 {{aggregate {{state BOUND} {setup_initiated 20} {release_tx_count 0} {adv_rx_count 20} {currently_idle 0} {reply_rx_count 20} {currently_bound 20} {success_percent 100} {setup_success 20} {min_setup_time 6.888} {max_setup_time 63.978} {avg_setup_time 10.8092} {request_tx_count 20} {setup_fail 0} {setup_success_rate 0.994701869696343} {currently_attempting 0} {solicits_tx_count 20}}}}} {aggregate {{state BOUND} {min_soli_repl_time 1003.686} {min_soli_adv_time 3.68} {setup_initiated 20} {renew_rate 0} {min_release_repl_time 0} {max_soli_repl_time 1007.64} {max_soli_adv_time 57.166} {avg_soli_repl_time 1004.3929} {avg_soli_adv_time 7.0759} {release_tx_count 0} {adv_rx_count 20} {currently_idle 0} {reply_rx_count 20} {prefix_count 20} {max_release_repl_time 0} {avg_release_repl_time 0} {min_rebind_repl_time 0} {currently_bound 20} {max_rebind_repl_time 0} {avg_rebind_repl_time 0} {setup_success 20} {min_request_repl_time 3.208} {min_renew_repl_time 0} {elapsed_time 21.107612} {request_tx_count 20} {setup_fail 0} {setup_success_rate 0.994701869696343} {currently_attempting 0} {solicits_tx_count 20} {max_request_repl_time 6.812} {max_renew_repl_time 0} {avg_request_repl_time 3.7333} {avg_renew_repl_time 0} {rebind_rate 0}}}}} {status 1}Sample Input for DHCP for IPv6 (mode= detailed_session on specified port):
set returnedString [ emulation dhcp stats port_handle= $hltHostPort action= collect mode= detailed_session ip_version= 6]On Success:
{ipv6 {{aggregate {{state REQUEST} {release_tx_count 0} {avg_soli_repl_time 501.1895} {max_soli_adv_time 3.73} {reply_rx_count 1} {max_rebind_repl_time 0} {currently_attempting 1} {request_tx_count 1} {setup_initiated 2} {renew_rate 0} {currently_idle 2} {max_release_repl_time 0} {setup_fail 0} {elapsed_time 2.004661} {avg_renew_repl_time 0} {max_request_repl_time 1.553} {min_soli_adv_time 3.73} {adv_rx_count 1} {avg_soli_adv_time 1.865} {max_soli_repl_time 1002.379} {avg_rebind_repl_time 0} {setup_success_rate 0.99762664620867} {min_soli_repl_time 1002.379} {min_release_repl_time 0} {avg_release_repl_time 0} {prefix_count 1} {currently_bound 1} {min_rebind_repl_time 0} {setup_success 1} {min_renew_repl_time 0} {min_request_repl_time 1.553} {solicits_tx_count 7} {avg_request_repl_time 1.553} {max_renew_repl_time 0} {rebind_rate 0}}} {dhcpv6blockconfig1 {{1 {{request_resp_time 0.001553} {mac_addr 00.00.10.95.11.15} {lease_left 2591965.248237} {vlan_id {}} {pd_lease_left 0} {pd_status_code OK} {dhcpv6_ipv6_addr 2000::1} {pd_ipv6_addr ::} {session_state BOUND} {dhcpv6_status_string {}} {pd_prefix_length 0} {solicit_resp_time 0.00373} {pd_session_state IDLE} {lease_rx 2592000} {ipv6_addr 2000::1} {status_string {}} {status_code OK} {session_index 0} {pd_status_string {}} {pd_lease_rx 0} {dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx 2592000} {dhcpv6_lease_left 2591965.248237} {dhcpv6_session_state BOUND}}} {2 {{request_resp_time 0} {mac_addr 00.00.10.95.11.16} {lease_left 0} {vlan_id {}} {pd_lease_left 0} {pd_status_code OK} {dhcpv6_ipv6_addr ::} {pd_ipv6_addr ::} {session_state SOLICITING} {dhcpv6_status_string {}} {pd_prefix_length 0} {solicit_resp_time 0} {pd_session_state IDLE} {lease_rx 0} {ipv6_addr ::} {status_string {}} {status_code OK} {session_index 1} {pd_status_string {}} {pd_lease_rx 0} {dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx 0} {dhcpv6_lease_left 0} {dhcpv6_session_state SOLICITING}}} {3 {{request_resp_time 0} {mac_addr 00.00.10.95.11.17} {lease_left 0} {vlan_id {}} {pd_lease_left 0} {pd_status_code OK} {dhcpv6_ipv6_addr ::} {pd_ipv6_addr ::} {session_state IDLE} {dhcpv6_status_string {}} {pd_prefix_length 0} {solicit_resp_time 0} {pd_session_state IDLE} {lease_rx 0} {ipv6_addr ::} {status_string {}} {status_code OK} {session_index 2} {pd_status_string {}} {pd_lease_rx 0} {dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx 0} {dhcpv6_lease_left 0} {dhcpv6_session_state IDLE}}} {4 {{request_resp_time 0} {mac_addr 00.00.10.95.11.18} {lease_left 0} {vlan_id {}} {pd_lease_left 0} {pd_status_code OK} {dhcpv6_ipv6_addr ::} {pd_ipv6_addr ::} {session_state IDLE} {dhcpv6_status_string {}} {pd_prefix_length 0} {solicit_resp_time 0} {pd_session_state IDLE} {lease_rx 0} {ipv6_addr ::} {status_string {}} {status_code OK} {session_index 3} {pd_status_string {}} {pd_lease_rx 0} {dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx 0} {dhcpv6_lease_left 0} {dhcpv6_session_state IDLE}}}}}}} {status 1}
- Note: For DHCPv4, the blank statistics “-” are statistics that are not
- supported in this.
End of Procedure Header