DHCP Functions¶
sth::emulation_dhcp_config¶
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 client-server model, in which DHCP servers provide network addresses and configuration parameters to DHCP clients.
DHCPv6/PD is intended for delegating a long-lived 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 auto-configure the IPv6 addresses from the delegated prefix.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::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
sth::emulation_dhcp_config
function. When -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
sth::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 sth::emulation_dhcp_config -mode reset, you must first delete all traffic streams with the sth::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 sub-option of relay agent option (82). This sub-option encodes an agent-local identifier of the circuit from which a DHCP client-to-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 sub-option 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 re-sent. 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 port-level 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 port-level 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 info-request 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 info-request 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
Cisco-specific 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 sth::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 sth::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¶
#### HLTAPI for Tcl ####
The following example creates a DHCP emulation port:
sth::emulation_dhcp_config -port_handle $hPort($device.$port)
-mode create \
-lease_time 10400
Sample output for example shown above:
{handles dhcpv4portconfig1} {status 1}
The following example creates a DHCP emulation port supporting relay agent:
sth::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 1 \
Sample output for example shown above:
{handles dhcpv4portconfig1} {status 1}
- The following example enables the device with DHCPv4::
- set device_ret_enable [sth::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:
sth::emulation_dhcp_config -handle dhcpv4portconfig1\
-mode modify \
-lease_time 71700 \
-relay_agent_flag 1 \
-circuit_id 29 \
Sample output for example shown above:
{status 1}
The following example stops the exiting DHCP port:
sth::emulation_dhcp_config \
-handle dhcpv4portconfig1 \
-mode reset \
Sample output for example shown above:
{status 1}
The following example creates a DHCPv6 emulation port:
sth::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:
sth::emulation_dhcp_config \
-mode modify \
-handle $hltHostPort \
-ip_version 6\
-dhcp6_outstanding_session_count 2\
-dhcp6_release_rate 50\
-dhcp6_request_rate 50]
#### HLTAPI for Python ####
The following example creates a DHCP emulation port:
device_ret0port = sth.emulation_dhcp_config (
mode = 'create',
ip_version = '4',
port_handle = port_handle[0],
starting_xid = '0',
lease_time = '60',
outstanding_session_count= '1000',
request_rate = '100',
msg_timeout = '60000',
retry_count = '4',
max_dhcp_msg_size = '576',
release_rate = '100');
Sample Output:
{'status': '1', 'handles': 'dhcpv4portconfig2', 'handle': {'port1'::
'dhcpv4portconfig2'}}
#### HLTAPI for Perl #### The following example creates a DHCP emulation port:
my %device_ret0port = sth::emulation_dhcp_config (
mode => 'create',
ip_version => '4',
port_handle => "$hport[1]",
starting_xid => '0',
lease_time => '60',
outstanding_session_count=> '1000',
request_rate => '100',
msg_timeout => '60000',
retry_count => '4',
max_dhcp_msg_size => '576',
release_rate => '100');
Sample Output:
$VAR1 = 'handle';
$VAR2 = {
'port1' => 'dhcpv4portconfig1'
};
$VAR3 = 'handles';
$VAR4 = 'dhcpv4portconfig1';
$VAR5 = 'status';
$VAR6 = '1';
Note
When first configuring DHCP/DHCPv6 emulation on a port, you must specify
“-mode create” and initialize the port handle argument before calling the
sth::emulation_dhcp_config
function.
End of Procedure Header
sth::emulation_dhcp_group_config¶
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
- M indicates that the argument is Mandatory .
- S indicates the argument is for
scaling
scenarios.
sth::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
sth::emulation_dhcp_config
function. For mode modify or mode reset, the handle is the group handle returned by thesth::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 ``sth::emulation_device_config`` function. This mode requires the value of param_handle as the input to the -handle option. Use this mode for ``Scaling`` scenarios. Refer to -count and -expand options under the sth::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
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
Before using sth::emulation_dhcp_group_config -mode reset, you must first delete all traffic streams with the “sth::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
llcsnap is not available for DHCPv6.
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
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.
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
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 non-Outrigger2 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 round-robin 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 round-robin 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 round-robin fashion until the number of sessions is exhausted. This argument is valid for DHCPv6 clients only.
Note
Applies only to Q-in-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 round-robin 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 round-robin fashion until the number of sessions specified in -num_sessions.
-
-qinq_oneblock
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether Spirent TestCenter creates Q-in-Q (802.1q Tunnel Tags) hosts with one handle returned. When it is set to 1, Spirent TestCenter creates multiple Q-in-Q hosts with one handle returned instead of returning multiple handles. You can configure all the generated hosts at one time by specifying this handle. Possible values are 0 (disabled) and 1 (enabled). The default value is 0.
-
-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 round-robin 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 round-robin fashion. The VLAN count must divide evenly into the number of sessions. The VLAN count cannot be greater than the session count. Possible values range from 1 to 4096. The default is 1.
-
-vlan_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 sub-option 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 Information-Request 12 Relay-Forward
-
-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:
sth::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:
sth::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 VPN-ID
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 sub-option of relay agent option (82). This sub-option encodes an agent-local identifier of the circuit from which a DHCP client-to-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 link-layer 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 link-layer address. This option is recommended for devices that have a permanently connected network interface with a link-layer address and do not have non-volatile, 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 Non-temporary 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 link-scoped multicast address used by a client to communicate with neighboring (i.e., on-link) relay agents and servers. All servers and relay agents are members of this multicast group. This is the default value. ALL_DHCP_SERVERS - A site-scoped 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 user-defined 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 link-layer 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 (DHCPv6-PD) 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 two-message 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 two-message exchange is used. If the rapid commit option is disabled on the server, the four-message 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 HMAC-MD5 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 HMAC-MD5 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 HMAC-MD5 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 sub-option 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 sub-option 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-00-ff-ff-ff 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 DHCPv6-PD 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
Cisco-specific 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
``sth::emulation_dhcp_group_config`` function.
handle_list A list of emulated devices enabled with group configured by the
``sth::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 sth::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 sth::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¶
#### HLTAPI for Tcl ####
The following example configures a group of DHCP subscribers on a port:
sth::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 1
Sample 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 [sth::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:
sth::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 2
Sample output for example shown above:
{handles dhcpv4blockconfig1} {status 1}
The following example stops the specified group of DHCP subscribers:
sth::emulation_dhcp_group_config \
-mode reset \
-handle dhcpv4blockconfig1
Sample 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 [sth::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:
sth::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 1
Sample 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:
sth::emulation_dhcp_group_config \
-handle $dhcpPortHandle\
-mode modify \
-dhcp6_client_mode DHCPPD \
-encap ethernet_ii\
-dhcp_range_ip_type 6 \
-num_sessions 10
Sample 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:
sth::emulation_dhcp_group_config \
-mode reset \
-handle host4 \
-dhcp_range_ip_type 6
Sample Output:
{status 1}
The following example configures a group of DHCPv6 subscribers:
sth::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 [sth::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 00-10-01-00-00-01\
-opt_list 1\
-enable_relay_link_selection 1\
-enable_router_option true\
-relay_client_macaddr_mask 00-00-00-ff-ff-ff\
-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 00-00-00-00-00-01\
-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 [sth::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 00-10-01-00-00-01\
-client_mac_addr_mask 00-00-00-ff-ff-ff\
-client_mac_addr_step 00-00-00-00-00-01\
-clients_per_home_gateway 1\
-iaid_step 0\
-relay_client_mac_addr_start 00-20-01-00-00-02\
-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 00-00-00-00-00-01\
-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 00-20-01-00-00-01\
-remote_id_enterprise 3457\
-hg_mac_start 00-10-01-00-00-01\
-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}}
#### HLTAPI for Python ####
The following example configures a group of DHCP subscribers on a port:
device_ret0 = sth.emulation_dhcp_group_config (
mode = 'create',
dhcp_range_ip_type = '4',
encap = 'ethernet_ii',
handle = dhcp_handle,
num_sessions = '1',
opt_list = ['1','6','15','33','44'],
host_name = 'client_@p-@b-@s',
mac_addr = '00:10:94:00:00:01',
mac_addr_step = '00:00:00:00:00:01',
ipv4_gateway_address= '192.85.1.1');
Sample Output:
{'status': '1', 'handles': 'dhcpv4blockconfig1', 'handle': 'host2'}
The following example configures a group of DHCPv6 subscribers on a port:
device_ret0 = sth.emulation_dhcp_group_config (
mode = 'create',
dhcp_range_ip_type = '6',
encap = 'ethernet_ii',
handle = dhcp_handle,
enable_reconfig_accept= 'false',
preferred_lifetime = '604800',
use_relay_agent_mac_addr_for_dataplane= 'true',
enable_relay_agent = 'false',
relay_server_ipv6_addr_step= '::',
dhcp6_range_duid_type= 'LLT',
prefix_length = '0',
duid_value = '1',
enable_rebind = 'false',
dhcp6_range_duid_vendor_id_increment= '1',
prefix_start = '::',
dad_transmits = '1',
control_plane_prefix= 'LINKLOCAL',
valid_lifetime = '2592000',
dhcp_realm = 'spirent.com',
enable_auth = 'false',
requested_addr_start= '::',
client_mac_addr_mask= '00:00:00:ff:ff:ff',
enable_dad = 'true',
dhcp6_range_duid_enterprise_id= '3456',
dhcp6_range_ia_t1 = '302400',
dst_addr_type = 'ALL_DHCP_RELAY_AGENTS_AND_SERVERS',
dhcp6_range_ia_t2 = '483840',
client_mac_addr = '00:10:01:00:00:01',
enable_renew = 'true',
enable_ldra = 'false',
dad_timeout = '1',
client_mac_addr_step= '00:00:00:00:00:01',
rapid_commit_mode = 'DISABLE',
dhcp6_client_mode = 'DHCPV6',
dhcp6_range_duid_vendor_id= '0001',
local_ipv6_prefix_len= '64',
local_ipv6_addr = '2001::2',
gateway_ipv6_addr_step= '::',
local_ipv6_addr_step= '::1',
gateway_ipv6_addr = '2001::1',
num_sessions = '1',
mac_addr = '00:10:94:00:00:01',
mac_addr_step = '00:00:00:00:00:01');
Sample Output:
{'status': '1', 'port_handle': 'port1', 'dhcpv6_handle': 'host2'}
#### HLTAPI for Perl ####
The following example configures a group of DHCP subscribers on a port:
my %device_ret0 = sth::emulation_dhcp_group_config (
mode => 'create',
dhcp_range_ip_type => '4',
encap => 'ethernet_ii',
handle => "$dhcp_handle",
num_sessions => '1',
opt_list => '1 6 15 33 44 ',
host_name => 'client_@p-@b-@s',
mac_addr => '00:10:94:00:00:01',
mac_addr_step => '00:00:00:00:00:01',
ipv4_gateway_address=> '192.85.1.1');
- Sample Output::
- $VAR1 = ‘handles’; $VAR2 = ‘dhcpv4blockconfig1’; $VAR3 = ‘handle’; $VAR4 = ‘host2’; $VAR5 = ‘status’; $VAR6 = ‘1’;
The following example configures a group of DHCPv6 subscribers on a port:
my %device_ret0 = sth::emulation_dhcp_group_config (
mode => 'create',
dhcp_range_ip_type => '6',
encap => 'ethernet_ii',
handle => "$dhcp_handle",
enable_reconfig_accept=> 'false',
preferred_lifetime => '604800',
use_relay_agent_mac_addr_for_dataplane=> 'true',
enable_relay_agent => 'false',
relay_server_ipv6_addr_step=> '::',
dhcp6_range_duid_type=> 'LLT',
prefix_length => '0',
duid_value => '1',
enable_rebind => 'false',
dhcp6_range_duid_vendor_id_increment=> '1',
prefix_start => '::',
dad_transmits => '1',
control_plane_prefix=> 'LINKLOCAL',
valid_lifetime => '2592000',
dhcp_realm => 'spirent.com',
enable_auth => 'false',
requested_addr_start=> '::',
client_mac_addr_mask=> '00:00:00:ff:ff:ff',
enable_dad => 'true',
dhcp6_range_duid_enterprise_id=> '3456',
dhcp6_range_ia_t1 => '302400',
dst_addr_type => 'ALL_DHCP_RELAY_AGENTS_AND_SERVERS',
dhcp6_range_ia_t2 => '483840',
client_mac_addr => '00:10:01:00:00:01',
enable_renew => 'true',
enable_ldra => 'false',
dad_timeout => '1',
client_mac_addr_step=> '00:00:00:00:00:01',
rapid_commit_mode => 'DISABLE',
dhcp6_client_mode => 'DHCPV6',
dhcp6_range_duid_vendor_id=> '0001',
local_ipv6_prefix_len=> '64',
local_ipv6_addr => '2001::2',
gateway_ipv6_addr_step=> '::',
local_ipv6_addr_step=> '::1',
gateway_ipv6_addr => '2001::1',
num_sessions => '1',
mac_addr => '00:10:94:00:00:01',
mac_addr_step => '00:00:00:00:00:01');
Sample Output:
$VAR1 = 'dhcpv6_handle';
$VAR2 = 'host2';
$VAR3 = 'port_handle';
$VAR4 = 'port1';
$VAR5 = 'status';
$VAR6 = '1';
End of Procedure Header
sth::emulation_dhcp_control¶
Purpose¶
Starts, stops, or restarts the DHCP or DHCPv6/PD subscriber group activity on the specified port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::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 Information-Request 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
sth::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 sth::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
sth::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 sth::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 the sth::emulation_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¶
#### HLTAPI for Tcl ####
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 [sth::emulation_dhcp_config -mode create -port_handle $p0]
keylget rL handles dhcpport1
# Configure two DHCP groups
set rL [sth::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 [sth::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 [sth::emulation_dhcp_control -action bind -handle $dhcpHandles]
Or to bind the two groups using the DHCP port handle:
set rL [sth::emulation_dhcp_control -action bind -port_handle $dhcpport1]
To connect all the groups of DHCPv6/PD clients on the port:
set returnedString [ sth::emulation_dhcp_control \
-port_handle $hltHostPort \
-action bind \
-ip_version 6]
To renew the specified group of DHCPv6/PD clients:
set returnedString [ sth::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 [ sth::emulation_dhcp_control \
-port_handle $hltHostPort \
-action release \
-ip_version 6]
The return values for the examples above:
{status 1}
#### HLTAPI for Python ####
The following example connects all the groups of DHCP clients on the port:
ctrl_ret1 = sth.emulation_dhcp_control (
port_handle = port_handle[0],
action = 'bind',
ip_version = '4');
Sample Output:
{'status': '1'}
#### HLTAPI for Perl ####
The following example connects all the groups of DHCP clients on the port:
my %ctrl_ret1 = sth::emulation_dhcp_control (
port_handle => "$hport[1]",
action => 'bind',
ip_version => '4');
Sample Output:
$VAR1 = 'status';
$VAR2 = '1';
End of Procedure Header
sth::emulation_dhcp_stats¶
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 that the argument is Mandatory .
sth::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
sth::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
sth::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 sth::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¶
#### HLTAPI for Tcl ####
DHCP for IPv4 (-mode aggregate):
sth::emulation_dhcp_stats -port_handle $dhcpport1 -mode aggregate
Sample 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):
sth::emulation_dhcp_stats -handle $dhcpgrp1 -mode session
Sample 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 [::sth::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 [ sth::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 [ sth::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.
#### HLTAPI for Python ####
Sample Input:
results_ret1 = sth.emulation_dhcp_stats (
port_handle = port_handle[0],
action = 'collect',
mode = 'session',
ip_version = '4');
Sample Output:
{'status': '1', 'group': {'dhcpv4blockconfig1': {'release_rate': '-',
'total_retried': '0', 'total_failed': '0', 'request_tx_count': '0',
'discover_tx_count': '0', 'request_rate': '-', 'nak_rx_count': '0',
'bound_renewed': '0', 'offer_rx_count': '0', 'elapsed_time': '0',
'release_tx_count': '0', 'bind_rate': '0', 'ack_rx_count': '0',
'currently_bound': '0', 'total_attempted': '0', 'total_bound': '0',
'currently_idle': '1', 'currently_attempting': '0', 'attempt_rate': '0'}}}
#### HLTAPI for Perl ####
Sample Input:
my %results_ret1 = sth::emulation_dhcp_stats (
port_handle => "$hport[1]",
action => 'collect',
mode => 'session',
ip_version => '4');
Sample Output:
$VAR1 = 'group';
$VAR2 = {
'dhcpv4blockconfig1' => {
'total_failed' => '0',
'nak_rx_count' => '0',
'ack_rx_count' => '0',
'currently_idle' => '1',
'total_attempted' => '0',
'bound_renewed' => '0',
'total_bound' => '0',
'currently_bound' => '0',
'total_retried' => '0',
'request_tx_count' => '0',
'discover_tx_count' => '0',
'release_rate' => '-',
'request_rate' => '-',
'currently_attempting' => '0',
'offer_rx_count' => '0',
'elapsed_time' => '0',
'bind_rate' => '0',
'release_tx_count' => '0',
'attempt_rate' => '0'
}
};
$VAR3 = 'status';
$VAR4 = '1';
End of Procedure Header