DHCP Functions

emulation dhcp config

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

Purpose:

Creates, enables, modifies, or resets an emulated Dynamic Host Configuration Protocol (DHCP) clients or Dynamic Host Configuration Protocol for IPv6 or Prefix delegation (DHCPv6/PD) clients for the specified Spirent HLTAPI port or handle.

DHCP is used for IPv4 and IPv6. While both versions serve much the same purpose, the details of the protocol for IPv4 and IPv6 are sufficiently different that they may be considered separate protocols. You use Spirent HLTAPI to emulate a network containing DHCP or DHCPv6/PD clients.

DHCP uses a clientserver model, in which DHCP servers provide network addresses and configuration parameters to DHCP clients.

DHCPv6/PD is intended for delegating a longlived IPv6 prefix and configuration information from a delegating router to a requesting router, across an administrative boundary, where the delegating router does not require knowledge about the topology of the links in the network to which the prefixes will be assigned. Hosts attached to the requesting router can autoconfigure the IPv6 addresses from the delegated prefix.

Synopsis:

Note: M indicates the argument is `Mandatory`.

      emulation dhcp config
          mode= {create|enable|modify|reset} M
          port_handle <port handle> M `Mandatory` when mode= create
          handle= <dhcp_port|device> M
                             `Mandatory` when mode= create|enable|modify|reset
          ip_version= {4|6}
          broadcast_bit_flag= {0|1}
          circuit_id= <hexadecimal >
          circuit_id_suffix= <integer>
          circuit_id_suffix_step= <integer>
          circuit_id_suffix_count= <integer>
          circuit_id_suffix_repeat= <integer>
          client_id= < hexadecimal >
          client_id_suffix= <integer>
          client_id_suffix_count= <integer>
          client_id_suffix_step= <integer>
          client_id_suffix_repeat= <integer>
          client_id_type= <0-255>
          remote_id= <hexadecimal >
          remote_id_suffix= <integer>
          remote_id_suffix_count= <integer>
          remote_id_suffix_step= <integer>
          remote_id_suffix_repeat= <integer>
          lease_time= <10-2147483647>
          max_dhcp_msg_size= <264-1500>
          msg_timeout= <1000-99999000>
          outstanding_session_count= <1-2048>
          release_rate= <1-10000>
          request_rate= <1-10000>
          retry_count= <0-32>
          relay_agent_flag= {0|1}
          relay_agent_ip_addr= <a.b.c.d>
          relay_pool_ip_addr= <a.b.c.d>
          sequencetype= {PARALLEL|SEQUENTIAL}
          server_ip_addr= <a.b.c.d>
          starting_xid= <0-4294967295>
          dhcp6_reb_max_rt= <1-99999>
          dhcp6_reb_timeout= <1-99999>
          dhcp6_rel_max_rc=  <1-32>
          dhcp6_rel_timeout= <1-99999>
          dhcp6_ren_max_rt= <1-99999>
          dhcp6_ren_timeout= <1-99999>
          dhcp6_req_max_rc=  <1-32>
          dhcp6_req_max_rt= <1-99999>
          dhcp6_req_timeout= <1-99999>
          dhcp6_sol_max_rc=  <1-32>
          dhcp6_sol_max_rt= <1-99999>
          dhcp6_sol_timeout= <1-99999>
          dhcp6_outstanding_session_count= <1-2048>
          dhcp6_release_rate= <1-1000>
          dhcp6_request_rate= <1-1000>
          dhcp6_renew_rate= <1-1000>
          dhcp6_sequence_type= { PARALLEL|SEQUENTIAL }
          dhcp6_indef_rel_rt= {true|false}
          dhcp6_indef_req_rt= {true|false}
          dhcp6_indef_sol_rt= {true|false}
          dhcp6_dec_max_rc=  <1-32>
          dhcp6_dec_timeout= <1-99999>
          dhcp6_inforeq_max_rt= <1-99999>
          dhcp6_inforeq_timeout= <1-99999>
          dhcp6_cfm_duration= <1-99999>
          dhcp6_cfm_max_rt= <1-99999>
          dhcp6_cfm_timeout= <1-99999>

Arguments:

Common Arguments for DHCPv4 and DHCPv6

 handle
                 Specifies the handle of the port or the device upon which DHCP or
                 DHCPv6/PD emulation is configured. When mode is set to either
                 create, modify or reset, the value is returned by the
                 ``emulation dhcp config`` mode=is set to enable,
                 the value is the device handle returned by other protocol
                 emulation functions with mode create. This argument is `Mandatory`
                 for enable, modify and reset modes.

 port_handle
                 The handle of the port on which to configure DHCP or DHCPv6/PD
                 emulation. The port handle is returned by the
                 ``connect`` function. This argument is `Mandatory` for
                 create mode (see mode).

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


                  create - Starts emulating DHCP or DHCPv6/PD clients on the port
                           specified by port_handle.

                  enable- Starts the emulating DHCP or DHCPv6/PD clients on the
                          device specified by handle. You must specify the handle
                          argument.

                  modify - Changes the configuration parameters for the DHCP or
                          DHCPv6/PD clients identified by the handle argument.

                  reset - Stops the DHCP or DHCPv6/PD emulation locally without
                          attempting to clear the bound addresses from the DHCP server.
                          In addition, all DHCP or DHCPv6 group sessions information on
                          the port is cleared and the connection is restarted. Because
                          mode reset deletes the handle, do not use the handle following
                          this action.

                 Note: Before using emulation dhcp config mode=reset,
                       you must first delete all traffic streams with the
                       traffic config mode=reset command. Traffic
                       streams must be reset before DHCP or DHCPv6/PD can be reset.

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

                 Defines the IP version to be used. Possible values are 4 and
                 6. The default is 4.

DHCPv4 Arguments

 broadcast_bit_flag
                 Configures the flag to broadcast client responses. Possible values
                 are 0 and 1. If the argument is set to 1, the DHCP Server or
                 relay agent will broadcast DHCP messages using an IP broadcast
                 address. If it is set to 0, the DHCP or DHCPv6/PD Server or relay
                 agent will send the DHCP or DHCPv6/PD messages to the IP address
                 specified in the "yiaddr" field. The default is 1.

 circuit_id
                 Configures the circuit ID suboption of relay agent
                 option (82). This suboption encodes an agent-local
                 identifier of the circuit from which a DHCP
                 clientto-server packet was received. It is intended
                 for use by agents in relaying DHCP responses back to
                 the proper circuit. (See RFC 3046 for more
                 information.) The circuit ID must be globally
                 unique, and the value must be in the hexadecimal format.
                 The default is 0.

 circuit_id_suffix
                 Defines the suffix to append to the circuit ID. The default
                 is 0.

 circuit_id_suffix_step
                 Defines the increment used to generate circuit ID suffixes
                 (circuit_id_suffix) for emulated clients. The default is 1.

 circuit_id_suffix_count
                 Specifies the number of circuit ID suffixes. Possible values
                 range from 1 to <max_int>. The default is 1.


 circuit_id_suffix_repeat
                 Specifies the number of times a circuit ID suffix should
                 be repeated, before the step that is specified in the
                 circuit_id_suffix_step argument is applied to the
                 circuit ID suffix for incrementing. Possible values
                 range from 1 to <max_int>.

 client_id
                 Configures the client ID option (61). DHCP clients use client ID
                 (option 61) to specify their unique identifier. DHCP
                 servers use this value to index their database of address
                 bindings. This value is expected to be unique for all
                 clients in an administrative domain. This value must be in
                 hexadecimal format.

 client_id_suffix
                 Configure the suffix to append to the client ID. Possible values
                 range from 0 to <max_int-1>.

 client_id_suffix_count
                 Specifies the number of client ID suffixes. Possible values
                 range from 1 to <max_int>. The default is 1.

 client_id_suffix_step
                 Defines the increment used to generate client ID suffixes
                 (client_id_suffix) for emulated clients. Possible values range
                 from 0 to <max_int-1>. The default value is 1.

 client_id_suffix_repeat
                 Specifies the number of times a client ID suffix should
                 be repeated, before the step that is specified in the
                 client_id_suffix_step argument is applied to the
                 client ID suffix for incrementing. Possible values
                 range from 1 to <max_int>.

 client_id_type
                 Configures the client ID type. Possible values range from 0 to
                 255. You must specify this argument when you specify client_id.

 remote_id
                 Configures the remote ID suboption of relay agent
                 option. The remote ID can be used by relay agents that terminate
                 switched or permanent circuits and have mechanisms to identify the
                 remote host end of the circuit. The remote ID must be globally
                 unique, and the value must be in the hexadecimal format.
                 The default is 0.

 remote_id_suffix
                 Defines the suffix to append to the circuit ID. The default
                 is 0.

 remote_id_suffix_step
                 Defines the increment used to generate remote ID suffixes
                 (remote_id_suffix) for emulated clients. The default is 1.

 remote_id_suffix_repeat
                 Specifies the number of times a remote ID suffix should
                 be repeated, before the step that is specified in the
                 remote_id_suffix_step argument is applied to the
                 remote ID suffix for incrementing. Possible values
                 range from 1 to <max_int>.

 remote_id_suffix_count
                 Specifies the number of remote ID suffixes. Possible values
                 range from 1 to <max_int>. The default is 1.

 lease_time
                 Specifies a finite time period, in seconds, for use of the
                 IP address offered by the DHCP server. The actual lease
                 length that the DHCP sessions will receive depends on the
                 lease time configured for the DUT. For example, if the
                 Cisco DUT sends a lease time of one day (its default), then
                 the IP address will only be good for one day, regardless of
                 the value set by Spirent HLTAPI. Possible values range
                 from 10 to 2147483647. The default is 86400.

 max_dhcp_msg_size
                 Sets the maximum size, in bytes, of the DHCP message.
                 Spirent HLTAPI uses this value to negotiate the DHCP message
                 size, in bytes. Possible values range from 264 to 1500. The
                 default is 576.

 msg_timeout
                 Sets the maximum time, in milliseconds, to wait for receipt
                 of an offer or ack message after sending a corresponding
                 discover or request message. Possible values range from 1000
                 to 99999000. However, because Spirent HLTAPI accepts
                 seconds, the timeout value must be evenly divisible by 1000.
                 The default is 15000.

                 Note: The msg_timeout argument controls the determination
                       of when a discover or request message is counted as
                       unacknowledged.

 outstanding_session_count
                 Specifies the maximum number of outstanding sessions that
                 Spirent HLTAPI can resolve at one time. Possible values
                 are 1 to 2048. The default is 100.

 release_rate
                 The number of DHCP sessions that are released per second.
                 This value applies to all sessions on the port. Possible
                 values range from 1 to 10000. The default is 100.

                 Note: DHCPv4 release messages are unacknowledged; therefore,
                       the system may overwhelm the DHCP server.

 request_rate
                 The number of requests per second for DHCP client leases or
                 lease renewals. This value applies to all sessions on the
                 port. Possible values range from 1 to 10000. The default is
                 100.

 retry_count
                 The maximum number of times that discover or request
                 messages will be resent. This value limits the number of
                 additional transmissions of either a discover or request
                 message when no acknowledgement is received. Possible values
                 range from 0 to 65535. The default is 4.

                 Note: A session is considered failed once the retry_count
                       argument is exceeded.

 relay_agent_flag
                 Configures DHCP relay agent. The DHCP relay agent allows
                 you to place DHCP clients and DHCP servers on different
                 networks. Possible values are 0 (disabled) and 1 (enabled).
                 You can use this argument to control the configuration of
                 relay_agent_ip_addr and -server_ip_addr.

 relay_agent_ip_addr
                 Configures DHCP relay agent IP address. The value should
                 be in IPv4 format. The default value is 192.1.1.0.
                 You can use this argument when relay_agent_flag is enabled.

 relay_pool_ip_addr
                 Configures number of DHCP relay agent networks. The value should
                 be in IPv4 format. The default value is 0.0.0.0.

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

                 Specifies the portlevel sequence type that determines in what
                 order DHCP sessions are attempted. Possible values are
                 PARALLEL and SEQUENTIAL. The default is SEQUENTIAL.

 server_ip_addr
                 Configures DHCP server IP address. The default value is
                 192.1.1.2. The value should be in the IPv4 format.
                 You can use this argument when relay_agent_flag is enabled.
                 This argument is required when relay_agent_ip_addr is
                 used. Both arguments must be configured in the same segment.

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

                 Specifies the starting transaction identifier for the port. Each
                 DHCP session is assigned a unique transaction identifier.
                 Possible values range from 0 to 4294967295. The default is 0.

DHCPv6 Arguments (You must set ip_version to 6)

 dhcp6_reb_max_rt
                 Specifies the maximum rebind message retry timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 600.

 dhcp6_reb_timeout
                 Specifies the Rebind message initial timeout in seconds. Possible
                 values range from 1 to 99999. The default value is 10.

 dhcp6_rel_max_rc
                 Specifies the number of release retries. Possible values range
                 from 1 to 32. The default value is 5.

 dhcp6_rel_timeout
                 Specifies the Release message initial timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 1.

 dhcp6_ren_max_rt
                 Specifies the maximum retry timeout for Renew messages in seconds.
                 Possible values range from 1 to 99999. The default is 600

 dhcp6_ren_timeout
                 Specifies the Renew message initial timeout in seconds. Possible
                 values range from 1 to 99999. The default value is 10

 dhcp6_req_max_rc
                 Specifies the number of Request retries. Possible values range
                 from 1 to 32. The default value is 10.

 dhcp6_req_max_rt
                 Specifies the maximum Request message retry timeout in
                 seconds. Possible values range from 1 to 99999. The default value
                 is 30.

 dhcp6_req_timeout
                 Specifies the Request message initial timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 1.

 dhcp6_sol_max_rc
                 Specifies the number of solicit retries. Possible values range
                 from 1 to 32. The default value is 10.

 dhcp6_sol_max_rt
                 Specifies the maximum solicit message retry timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 120.

 dhcp6_sol_timeout
                 Specifies the Solicit message initial timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 1.

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

                 Specifies the number of DHCPv6 sessions to resolve at a time.
                 Possible values range from 1 to 2048. The default value is 1.

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

                 Number of DHCPv6 sessions that are released per second. This val
                 ue applies to all sessions on the port. Possible values range
                 from 1 to 1000. The default is 100 Use the Release operation to
                 release DHCPv6 sessions.

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

                 Requests per second for DHCPv6 client leases. This value applies
                 to all sessions on the port. Possible values range from 1
                 to 1000. The default is 100.

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

                 Renewals per second for DHCPv6 client renewals. This value
                 applies to all sessions on the port. Possible values range from 1
                 to 1000. The default is 100.

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

                 Specifies the portlevel sequence type that determines in what
                 order DHCPv6 sessions are attempted. Possible values are
                 PARALLEL and SEQUENTIAL. The default is SEQUENTIAL.

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

                 Enables or disables indefinite retry of Release messages.
                 Possible values are true (enable) and false (disable). The
                 default is false. Note: If you set it to true, argument
                 dhcp6_rel_max_rc will be unavailable.

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

                 Enables or disables indefinite retry of Request messages.
                 Possible values are true (enable) and false (disable). The
                 default is false. Note: If you set it to true, argument
                 dhcp6_req_max_rc will be unavailable.

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

                 Enables or disables indefinite retry of Solicit messages.
                 Possible values are true (enable) and false (disable). The
                 default is false. Note: If you set it to true, argument
                 dhcp6_sol_max_rc will be unavailable.

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

                 Specifies the number of Decline retries. Possible values range
                 from 1 to 32. The default value is 5.

 dhcp6_dec_timeout
                 Specifies the Decline message initial timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 1.

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

                 Specifies the maximum inforequest message timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 120.

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

                 Specifies the inforequest message initial timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 1.

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

                 Specifies the maximum duration to wait for the Confirm message
                 exchange to complete (in seconds). Possible values range from 1
                 to 99999. The default value is 10.

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

                 Specifies the maximum Confirm message timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 4.

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

                 Specifies the Confirm message initial timeout in seconds.
                 Possible values range from 1 to 99999. The default value is 1.

Arguments Unsupported by Save as HLTAPI:

The following Spirent HLTAPI arguments are currently not supported by the Save as
HLTAPI function::


  handle
  active
  name
Ciscospecific Arguments:

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

cisco_server_id_override
link_selection
retry_timer
response_wait
server_id_override
Return Values:

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

handles   Identifies the handle of the port on which the DHCP or DHCPv6/PD
          emulation was configured by emulation dhcp config. If you
          reset the port (mode reset), it returns a new handle.

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

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

The emulation dhcp config function creates, modifies, or resets an emulated DHCP or DHCPv6/PD client. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

When you create a DHCP or DHCPv6/PD client, use the port_handle argument to specify the Spirent HLTAPI port that the emulated DHCP session will use for DHCP communication. (The port handle value is contained in the keyed list returned by the connect function.)

Use the mode create function to define the characteristics of a DHCP session. You can use a single session to emulate multiple DHCP clients.

When you write an HLT API that uses Spirent HLTAPI Automation software for DHCP or DHCPv6/PD tests, you create a test configuration to emulate DHCP or DHCPv6/PD clients respectively. During a DHCP or DHCPv6/PD test, Spirent HLTAPI sends DHCP/DHCPv6 messages to, and receives messages from, the DUT (configured as a DHCP or DHCPv6/PD server respectively). In this context, you can create test configurations in which Spirent HLTAPI DHCP or DHCPv6/PD clients act as independent network hosts, communicating directly with a DHCP or DHCPv6/PD server. Spirent HLTAPI DHCP or DHCPv6/PD clients are part of a VLAN.

For information about the DHCP protocol, see RFC 2131, “Dynamic Host Configuration Protocol”. For information about DHCP for IPv6, See RFC 3315, “Dynamic Host Configuration Protocol for IPv6 (DHCPv6)”, and RFC 3633, “IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6”

Examples:

The following example creates a DHCP emulation port:

emulation dhcp config port_handle=$hPort($device.$port)
     mode= create
     lease_time= 10400

Sample output for example shown above:

{handles dhcpv4portconfig1} {status 1}

The following example creates a DHCP emulation port supporting relay agent:

emulation dhcp config port_handle=$hPort($device.$port)
    mode= create
    lease_time= 10400
    relay_agent_flag= 1
    relay_agent_ip_addr= 192.1.0.5
    server_ip_addr= 192.1.0.1
    circuit_id= 34
    circuit_id_suffix= 2
    circuit_id_suffix_step= 1

Sample output for example shown above:

{handles dhcpv4portconfig1} {status 1}

The following example enables the device with DHCPv4:

set device_ret_enable [emulation dhcp config
       mode=                                             enable
       ip_version=                                       4
       handle=                                           $devhandle
       starting_xid=                                     0
       lease_time=                                       60
       outstanding_session_count=                        1000
       request_rate=                                     100
       msg_timeout=                                      60000
       retry_count=                                      4
       sequencetype=                                     SEQUENTIAL
       max_dhcp_msg_size=                                576
       release_rate=                                     100 ]

Sample output for example shown above:

{handles dhcpv4portconfig1}{handle dhcpv4portconfig1}{status 1}

The following example modifies the exiting DHCP port:

emulation dhcp config handle=dhcpv4portconfig1
     mode= modify
     lease_time= 71700
     relay_agent_flag= 1
     circuit_id= 29

Sample output for example shown above:

{status 1}

The following example stops the exiting DHCP port:

emulation dhcp config
    handle= dhcpv4portconfig1
    mode= reset

Sample output for example shown above:

{status 1}

The following example creates a DHCPv6 emulation port:

emulation dhcp config
     mode=                             create
     port_handle=                      $hltHostPort
     ip_version= 6
     dhcp6_outstanding_session_count=  1\
     dhcp6_release_rate=               100
     dhcp6_request_rate=               100
     dhcp6_renew_rate=                 100
     dhcp6_sequence_type=              PARALLEL
     dhcp6_reb_max_rt=                 600
     dhcp6_reb_timeout=                10
     dhcp6_rel_max_rc=                 5
     dhcp6_rel_timeout=                1
     dhcp6_ren_max_rt=                 600
     dhcp6_ren_timeout=                10
     dhcp6_req_max_rc=                 10
     dhcp6_req_max_rt=                 30
     dhcp6_req_timeout=                1
     dhcp6_sol_max_rc=                 10
     dhcp6_sol_max_rt=                 120
     dhcp6_sol_timeout=                1
     dhcp6_dec_max_rc=                 5
     dhcp6_dec_timeout=                1
     dhcp6_inforeq_max_rt=             120
     dhcp6_inforeq_timeout=            1
     dhcp6_cfm_duration=               10
     dhcp6_cfm_max_rt=                 4
     dhcp6_cfm_timeout=                1]

The following example modifies the created DHCPv6 device:

emulation dhcp config
 mode=                         modify
 handle=                       $hltHostPort
 ip_version= 6
 dhcp6_outstanding_session_count=  2\
 dhcp6_release_rate=               50
 dhcp6_request_rate=               50]

emulation dhcp group config

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

Purpose:
Configures, modifies or resets a specified number of DHCP or DHCPv6/PD client sessions which belong to a subscriber group with specific Layer 2 network settings. Once the subscriber group has been configured, a handle is created, which can be used to modify the parameters or reset the sessions for the subscriber group or to control the binding, renewal, and release of the DHCP or DHCPv6/PD sessions.

Synopsis:

Note: 1. M indicates the argument is `Mandatory`.
      2. S indicates the argument is for `scaling` scenarios.

      emulation dhcp group config
        mode= {create|modify|enable|activate|reset} M
        handle= <dhcpGroup_handle|dhcpv6Group_handle|device_handle> M
                                  `Mandatory` when mode= create|modify|enable|reset
        port_handle <port handle> M `Mandatory` when mode= activate
        num_sessions= <1-65536>
        device_name= <string>
        auth_protocol= {delayed_auth|reconfig_key}
        default_host_addr_prefix= <0-32>
        broadcast_bit_flag= {true|false}
        client_count= <numeric>
        client_mac_addr_mask= <aa:bb:cc:dd:ee:ff>
        client_mac_addr= <aa:bb:cc:dd:ee:ff>
        client_mac_addr_step= <aa:bb:cc:dd:ee:ff>
        client_id= < hexadecimal >
        client_id_suffix= <integer>
        client_id_suffix_count= <integer>
        client_id_suffix_step= <integer>
        client_id_suffix_repeat= <integer>
        client_id_type= <0-255>
        circuit_id= <hexadecimal >
        circuit_id_suffix= <integer>
        circuit_id_suffix_count= <integer>
        circuit_id_suffix_step= <integer>
        circuit_id_suffix_repeat= <integer>
        control_plane_prefix= {linklocal|routeradvertisement}
        dhcp_range_ip_type= {4|6}
        enable_auto_retry= {true|false}
        enable_arp_server_id= {true|false}
        enable_router_option= {true|false}
        enable_relay_link_selection= {0|1}
        enable_relay_vpn_id= {0|1}
        ipv4_gateway_address= <a.d.c.d>
        ipv6_enable_gateway_learning= {true|false}
        dhcp_realm= <any>
        dhcp6_client_mode= {dhcppd|dhcpv6|dhcpv6andpd}
        dhcp6_delayed_auth_key_id= <0 - 429496729>
        dhcp6_delayed_auth_key_value= <alphanumeric>
        dhcp6_range_duid_enterprise_id= <numeric>
        dhcp6_range_duid_vendor_id= <alphanumeric>
        dhcp6_range_duid_vendor_id_increment= <alphanumeric>
        dhcp6_range_duid_type= {custom|en|ll|llt}
        dhcp6_range_ia_t1= <numeric>
        dhcp6_range_ia_t2= <numeric>
        dad_timeout= <numeric>
        dad_transmits= <numeric>
        dst_addr_type= {all_dhcp_relay_agents_and_servers|all_dhcp_servers}
        duid_value= <numeric>
        enable_auth= {true|false}
        enable_dad= {true|false}
        encap= {ethernet_ii|ethernet_ii_vlan|ethernet_ii_qinq|vc_mux|llcsnap|ethernet_ii_mvlan}
        enable_ldra= {true|false}
        enable_rebind= {true|false}
        enable_reconfig_accept= {true|false}
        enable_relay_agent= {true|false}
        enable_renew= {true|false}
        export_addr_to_clients= {0|1}
        enable_wildcards= {true|false}
        gateway_addresses= {0|1}
        gateway_ipv4_addr_step= <a.d.c.d>
        string_as_hex_value= {true|false}
        host_name= <host_name>
        include_in_message= {discover|request|both}|{1|3|4|5|6|8|11|12}
        option_value= <0-255>
        option_payload= <ALPHANUMERIC>
        remove_option=  {true|false}
        local_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        local_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        local_ipv6_prefix_len= <0-128>
        gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        mac_addr= <aa:bb:cc:dd:ee:ff>
        mac_addr_step= <aa:bb:cc:dd:ee:ff>
        opt_list= <list of numbers>
        preferred_lifetime
        prefix_length= <0-64>
        prefix_start= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        protocol= {dhcpoe|dhcpoeoa}
        pvc_incr_mode= {vci|vpi|both}
        qinq_incr_mode= {inner|outer|both}
        qinq_oneblock= {1|0}
        rapid_commit_mode= {ENABLE|DISABLE|SERVER}
        requested_addr_start= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        relay_agent_ipv4_subnet_mask= <a.b.c.d>
        relay_link_selection= <a.b.c.d>
        relay_server_ipv6_addr=  <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        relay_server_ipv6_addr_step=  <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        relay_agent_flag= {true|false}
        relay_agent_ip_addr= <a.b.c.d>
        retry_attempts= <integer>
        remote_id= <hexadecimal >
        remote_id_suffix= <integer>
        remote_id_suffix_count= <integer>
        remote_id_suffix_step= <integer>
        remote_id_suffix_repeat= <integer>
        remote_id_enterprise= <integer>
        server_ip_addr= <a.b.c.d>
        use_relay_agent_mac_addr_for_dataplane= {true|false}
        valid_lifetime= <NUMERIC>
        vlan_id= <1-4095>
        vlan_id_list= <1-4095>
        vlan_cfi= {0|1}
        vlan_id_step= <1-4095>
        vlan_id_count= <1-4096>
        vlan_id_count_list= <1-4096>
        vlan_id_mode= {fixed | increment}
        vlan_id_outer= <0-4095>
        vlan_outer_cfi= {0|1}
        vlan_id_outer_step= <1-4095>
        vlan_id_outer_count= <1-4096>
        vlan_id_outer_mode= {fixed|increment}
        vlan_id_step_list= <1-4095>
        vlan_id_repeat_count= <1-4095>
        vlan_id_repeat_count_list= <1-4095>
        vlan_outer_ether_type= {0x8100|0x88A8|0x88B5}
        vlan_outer_user_priority= <0-7>
        vlan_user_priority= <0-7>
        vlan_user_priority_list= <0-7>
        vci= <0-65535>
        vci_count= <1-65536>
        vci_step= <0-65535>
        vpi= <0-255>
        vpi_count= <1-256>
        vpi_step= <0-255>
        vpn_id= <string>
        vpn_type= {nvt_ascii|rfc_2685}
        expand= {true|false} S
        clients_per_relay_agent= <1-65535>
        enable_circuit_id= {true|false}
        enable_relay_server_id_override= {true|false}
        relay_server_id_override= <IPV4>
        enable_remote_id= {true|false}
        relay_client_macaddr_mask= <MAC>
        relay_client_macaddr_step= <MAC>
        relay_client_macaddr_start= <MAC>
        relay_server_ipv4addr_step= <IPV4>
        use_client_mac_addr_for_dataplane= {true|false}
        use_gateway_as_relayserver_ipv4addr= {true|false}
        clients_per_home_gateway= <1-65536>
        enable_interface_id= {true|false}
        export_addr_to_linked_clients= {true|false}
        hg_mac_start= <MAC>
        hg_mac_step= <MAC>
        iaid_start= <NUMERIC>
        iaid_step= <NUMERIC>
        interface_id= <ANY>
        dhcpv6_mode= {client|pd|pd_and_client}
        prefix_step= <IPV6>
        ipv6_relay_client_macaddr_start= <MAC>
        use_gateway_as_relay_server_ipv6_addr= {true|false}

Arguments:

Arguments Common for DHCPv4 and DHCPv6

 handle
                 Identifies the port and group or the device upon which emulation
                 is configured. This argument is `Mandatory`. When mode is modify
                 or reset, this parameter also specifies the DHCP or DHCPv6/PD
                 group number. For mode create, the handle is returned by the
                 ``emulation dhcp config`` function. For mode modify or mode
                 reset, the handle is the group handle returned by the
                 ``emulation dhcp group config`` function. For mode enable, the
                 handle is the device handle returned by other protocol emulation
                 functions with mode create.

 port_handle
                 Specifies the port on which to perform the action.
                 Applicable only in mode activate when -block_mode or -expand is specified.

 mode
                 Specifies the action to perform. Possible values are create,
                 enable, modify, and reset. There is no default. You must specify
                 a mode. The modes are described below::


                  create - Starts emulation on the port specified with
                          handle.

                  enable - Starts emulation on the device specified with
                          handle. You must specify the handle argument.

                  modify - Changes the configuration identified by the handle
                         argument by applying the parameters specified in
                         subsequent arguments.

                  activate - Start DHCP or DHCPv6/PD devices emulation on the port
                         specified with port_handle by Spirent TestCenter device
                         generate wizard command DeviceGenConfigExpand with parameters::

                             Dhcpv4DeviceGenProtocolParams
                             Dhcpv6DeviceGenProtocolParams

                         Used for `scaling` scenarios.
                         1. Enables DHCPv4/DHCPv6 devices and configures DHCPv4/DHCPv6
                            parameters for the devices created via the
                            ``emulation device config`` function. This mode requires
                            the value of param_handle as the input to the handle option.
                            Use this mode for `scaling` scenarios. Refer to count and
                            expand options under the emulation dhcp group config
                            function for more information. For this mode, only the following
                            set of options are valid::


                              For DHCPv4::


                              remote_id
                              vpn_id
                              circuit_id
                              server_ip_addr
                              relay_client_macaddr_start
                              opt_list
                              enable_relay_link_selection
                              enable_router_option
                              relay_client_macaddr_mask
                              host_name
                              relay_link_selection
                              use_gateway_as_relayserver_ipv4addr
                              enable_relay_vpn_id
                              enable_relay_server_id_override
                              enable_remote_id
                              relay_server_id_override
                              retry_attempts
                              enable_auto_retry
                              relay_pool_ip_addr
                              relay_client_macaddr_step
                              vpn_type
                              use_client_macaddr_for_dataplane
                              enable_circuit_id
                              relay_agent_flag
                              relay_server_ipv4addr_step
                              clients_per_relay_agent

                              For DHCPv6/PD::


                              dhcp_range_ip_type
                              dhcpv6_mode
                              remote_id
                              dhcp6_range_duid_vendor_id
                              client_mac_addr
                              client_mac_addr_mask
                              client_mac_addr_step
                              clients_per_home_gateway
                              iaid_step
                              relay_client_mac_addr_start
                              dhcp6_range_duid_type
                              prefix_start
                              enable_interface_id
                              interface_id
                              preferred_lifetime
                              prefix_ste
                              iaid_start
                              relay_server_ipv6_addr
                              use_relay_agent_mac_addr_for_dataplane
                              enable_renew
                              relay_server_ipv6_addr_step
                              dhcp6_range_ia_t1
                              use_gateway_as_relay_server_ipv6_addr
                              enable_remote_id
                              rapid_commit_mode
                              hg_mac_step
                              dhcp6_range_duid_enterprise_id
                              dhcp6_range_duid_vendor_id_increment
                              enable_rebind
                              export_addr_to_linked_clients
                              relay_client_mac_addr_step
                              remote_id_enterprise
                              hg_mac_start
                              duid_value
                              valid_lifetime
                              enable_relay_agent
                              prefix_length
                              dhcp6_range_ia_t2
                              clients_per_relay_agent

                         2. Creates devices and enables DHCPv4/DHCPv6 protocol.
                            Requires port_handle and -block_mode options.
                            For this mode, the following options are required/supported
                            along with the options specified above::


                              count
                              block_mode
                              block_name_index
                              name
                              vlan_id
                              vlan_outer_id
                              vlan_user_pri
                              vlan_id_count
                              vlan_id_repeatmode
                              vlan_outer_id_count
                              vlan_outer_user_pri
                              vlan_outer_id_repeatmode
                              router_id
                              router_id_step
                              router_id_ipv6
                              router_id_ipv6_step
                              intf_ip_addr
                              intf_ip_addr_step
                              intf_prefix_len
                              gateway_ip_addr
                              gateway_ip_addr_step
                              mac_addr
                              mac_addr_step
                              link_local_ipv6_addr
                              link_local_ipv6_addr_step
                              intf_ipv6_addr
                              intf_ipv6_addr_step
                              intf_ipv6_prefix_len
                              link_local_ipv6_prefix_len
                              gateway_ipv6_addr
                              gateway_ipv6_addr_step
                              mac_addr_step_per_port
                              mac_addr_step_per_vlan
                              ip_step_per_port
                              ip_step_per_vlan
                              ipv6_step_per_vlan
                              ipv6_step_per_port
                              link_local_ipv6_step_per_port
                              link_local_ipv6_step_per_vlan

                            Note: Please refer to the emulation_device_config documentation.

                  reset - Stops the DHCP or DHCPv6/PD emulation locally without
                         attempting to clear the bound addresses from the DHCP or
                         DHCPv6/PD server. In addition, all DHCP or DHCPv6/PD group
                         sessions information on the port is cleared.

                 Note:
                    1. For mode enable, the following options will be obsoleted
                       when ip_version is not 6::


                         mac_addr
                         mac_addr_step
                         vlan_id
                         vlan_id_outer
                         vlan_id_step,
                         vlan_id_outer_step
                         vlan_id_count
                         vlan_id_outer_count
                         vlan_user_priority
                         vlan_outer_user_priority
                         qinq_incr_mode,
                         qinq_oneblock
                         gateway_addresses
                         ipv4_gateway_address
                         vci
                         vpi
                         vci_count
                         vci_step
                         vpi_count
                         vpi_step
                         pvc_incr_modeemulation

                    2. Before using emulation dhcp group config mode=reset,
                       you must first delete all traffic streams with the
                       "traffic config mode=reset" command. Traffic
                       streams must be reset before DHCP can be reset.

 encap
                 Specifies the type of Layer 2 encapsulation used to define
                 source and destination MAC addresses for a stream. This
                 argument is `Mandatory`. Possible values are::

                  ethernet_ii     - Ethernet II

                  ethernet_ii_vlan - Ethernet II with a single VLAN tag

                  ethernet_ii_qinq - Ethernet II with two VLAN tags.

                  ethernet_ii_mvlan - Ethernet II with more than two VLAN tags.


                  vc_mux - Sets the ATM encapsulation type to Virtual Circuit
                           Multiplexing (VC_MUX). VC_MUX is
                           one of the two mechanisms for identifying the protocol
                           carried in ATM Adaptation Layer5 (AAL5) frames.
                           vc_mux is available for ATM cards.
                           Note: This option is not available for DHCPv6.

                  llcsnap - Sets the ATM encapsulation type to LLC encapsulation.
                           LLC encapsulation is the other mechanism for identifying
                           the protocol carried in AAL5 frames. llcsnap is
                           available for ATM cards. The default encap value for ATM
                           cards is vc_mux.

                 Note:
                     1. llcsnap is not available for DHCPv6.
                     2. ethernet_ii_vlan supports VLAN tagging on Ethernet
                        networks. When you set the encap argument to
                        ethernet_ii_vlan, the following arguments are available::


                         vlan_id
                         vlan_id_step
                         vlan_id_count

                     3. ethernet_ii_qinq supports two VLAN tags in a Ethernet frame.
                        When you set the encap argument to ethernet_ii_qinq, the
                        following arguments are available::


                         vlan_id
                         vlan_id_step
                         vlan_id_count
                         vlan_id_outer
                         vlan_id_outer_step
                         vlan_id_outer_count
                         qinq_incr_mode

                        If you set the encap argument to ethernet_ii, the arguments
                        above are not available.


                     4. ethernet_ii_mvlan specifies VLAN from the 3rd tag on.
                        Ethernet frame. The first two VLAN tags are specified
                        using vlan_id and vlan_outer_id and their related
                        arguments. When you set the encap argument to
                        ethernet_ii_mvlan, the following arguments are available::


                         vlan_id_list
                         vlan_id_step_list
                         vlan_id_count_list
                         vlan_ether_type_list
                         vlan_outer_ether_type
                         vlan_user_priority_list
                         vlan_id_repeat_count_list

                     5. When you set the encap argument to vc_mux or llcsnap,
                        the following arguments are available::


                          vci
                          vci_count
                          vci_step
                          vpi
                          vpi_count
                          vpi_step
                          pvc_incr_mode

 mac_addr
                 Specifies the first MAC address to use when emulating
                 multiple clients. The default is 00:10:01:00:00:01.

 mac_addr_step
                 Specifies the increment to use to generate additional MAC
                 addresses for multiple clients. Possible values range from
                 00.00.00.00.00.01 to 00.00.7f.ff.ff.ff. The default is
                 00.00.00.00.00.01.

 num_sessions
                 Specifies the number of DHCP or DHCPv6/PD clients to emulate.
                 Possible values range from 1 to 65536. The default is 4096.
                 Note: For Outrigger2 platforms, the maximum value is 131070.
                 For nonOutrigger2 platforms, the maximum is 4096.

 device_name
                 A text name for the emulated device configured with DHCP or
                 DHCPv6/PD clients.

 default_host_addr_prefix
                 Specifies the default prefix length for the host address.
                 This argument is applicable only for DHCPv4.
                 The default is 24.

 dhcp_range_ip_type
                 Defines the IP address version to be used. Possible values are
                 4(for DHCPv4) and 6(for DHCPv6). The default is 4.

 qinq_incr_mode
                 Specifies the increment mode for ethernet_ii_qinq
                 encapsulation. Possible values are inner, outer and both.
                 The default is inner. The values are described below::


                  inner - When the number of sessions is greater than
                         the inner VLAN count times the outer VLAN count, the
                         inner VLAN ID is incremented first until the specified
                         number of inner VLANs is exhausted, then the outer
                         VLAN ID is incremented. This continues in a
                         roundrobin fashion until the number of
                         sessions is exhausted.

                  outer - When the number of sessions is greater than the
                         inner VLAN count times the outer VLAN count, the outer
                         VLAN ID is incremented first until the specified number
                         of outer VLANs is exhausted, and then the inner VLAN ID is
                         incremented. This continues in a roundrobin fashion
                         until the number of sessions is exhausted.

                  both - When the number of sessions is greater than the
                         inner VLAN count times the outer VLAN count, the
                         inner VLAN ID and outer VLAN ID increment at the
                         same time. This continues in a roundrobin fashion
                         until the number of sessions is exhausted.
                         This argument is valid for DHCPv6 clients only.

                 Note: Applies only to Qin-Q Ethernet interfaces. For the
                       "inner" mode, when the number of sessions is greater than
                       the inner VLAN count multiplied by the outer VLAN count, the
                       inner VLAN ID is incremented first until the specified
                       number of inner VLANs is exhausted; then, the outer VLAN ID
                       is incremented. This continues in roundrobin fashion until
                       the number of sessions specified in num_sessions.
                       For the "outer" mode, when the number of sessions is greater
                       than the inner VLAN count multiplied by the outer VLAN count
                       outer VLAN count, the outer VLAN ID is incremented first
                       until the specified number of outer VLANs is exhausted; then
                       it increments the inner VLAN ID. This continues in
                       roundrobin fashion until the number of sessions specified
                       in num_sessions.

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

                 Determines whether Spirent TestCenter creates Qin-Q (802.1q
                 Tunnel Tags) hosts with one handle returned. When it is set to 1,
                 Spirent TestCenter creates multiple Qin-Q hosts with one
                 handle returned instead of returning multiple handles. You can
                 configure all the generated hosts at one time by specifying this
                 handle. Possible values are 0 (disabled) and 1 (enabled).
                 The default value is 0.

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

                 Specifies the canonical format indicator (CFI) field in VLAN
                 for the emulated router node. Possible values are 0 (Ethernet)
                 and 1 (Token Ring). The default is 1.

 vlan_id
                 The starting VLAN ID to use when generating DHCP/DHCPv6 clients
                 for ethernet_ii_vlan. Possible values range from 1 to 4095. This
                 argument is `Mandatory` for ethernet_ii_vlan.

 vlan_id_mode
                 Specifies how Spirent HLTAPI assigns VLAN tags when the
                 router count is greater than 1. Possible values are::


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

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

 vlan_id_count
                 The number of VLAN IDs to use when generating DHCP clients.
                 Spirent HLTAPI assigns VLAN membership in roundrobin
                 fashion. The VLAN count must divide evenly into the number
                 of sessions. The vlan_id_count cannot be greater than the
                 session count (num_session). Possible values range from 1
                 to 4096. The default is 1.

 vlan_id_outer
                 Starting outer VLAN ID, applies to DHCP w/Stacked VLAN
                 only. Possible values range from 0 to 4095. The default
                 is 1.

 vlan_id_outer_mode
                 Specifies how Spirent HLTAPI assigns VLAN tags when the router
                 count is greater than 1.
                 Possible values are::


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

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

 vlan_id_outer_step
                 The value that Spirent HLTAPI uses to increment the
                 outer VLAN ID. Possible step values range from 1 to 4095.
                 The default is 1.

 vlan_id_outer_count
                 The number of outer VLAN IDs to use when generating DHCP/DHCPv6
                 clients. Spirent HLTAPI assigns VLAN membership in
                 roundrobin fashion. The VLAN count must divide evenly into
                 the number of sessions. The VLAN count cannot be greater
                 than the session count. Possible values range from 1 to
                 4096. The default is 1.

 vlan_user_priority
                 Specifies the user priority of the inner VLAN. Possible values
                 range from 0 to 7. The default value is 0.

 vlan_outer_user_priority
                 Specifies the user priority of the outer VLAN. Possible values
                 range from 0 to 7. The default value is 0.

 vlan_id_step
                 The value that Spirent HLTAPI uses to increment the VLAN
                 ID for ethernet_ii_vlan. Possible step values range
                 from 1 to 4095. The default is 1.

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

                 Number of times to repeat the same IPv4 address before
                 incrementing it for the inner VLAN. The value must be an integer.
                 The default value is 0.

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

                 Specifies the Ethernet Type field for the inner VLAN. Possible
                 values are 0x8100, 0x88A8, and 0x88B5. The default value is
                 0x8100. You must specify the vlan_id argument.

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

                 Specifies the Ethernet Type field for the outer VLAN. Possible
                 values are 0x8100, 0x88A8, and 0x88B5. The default value is
                 0x8100. You must specify the vlan_outer_id argument.

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

                 Number of times to repeat the same IPv4 address before
                 incrementing it for the outer VLAN. The value must be an integer.
                 The default value is 0.

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

                 A list of VLAN IDs to use when generating DHCP/DHCPv6
                 clients for ethernet_ii_mvlan encapsulation. Possible values
                 range from 1 to 4095.

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

                 A list of values that Spirent HLTAPI uses to increment the VLAN
                 IDs for ethernet_ii_mvlan encapsulation. Possible step values
                 range from 1 to 4095. The default is 1.

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

                 A list of numbers of VLAN IDs to use when generating DHCP clients
                 using ethernet_ii_mvlan encapsulation. Possible values range from
                 1 to 4096. The default is 1.

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

                 Specifies a list of Ethernet Type fields for ethernet_ii_mvlan
                 encapsulation. Possible values are 0x8100, 0x88A8, and 0x88B5.
                 The default value is 0x8100.

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

                 Specifies a list of user priorities for ethernet_ii_mvlan
                 encapsulation. Possible values range from 0 to 7. The default
                 value is 0.

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

                 Specifies a list of numbers of times that a VLAN ID should be
                 repeated, before the step (vlan_id_step_list) is applied to the
                 VLAN IDs for incrementing. Possible step values range from 1 to
                 4095. The default is 0.

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

                 Specifies the CFI field in outer VLAN tag for the
                 emulated device. Possible values are 0 (Ethernet) and 1 (Token
                 Ring). The default is 1.

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

                 Configures the remote ID suboption of relay agent
                 option. The remote ID can be used by relay agents that terminate
                 switched or permanent circuits and have mechanisms to identify the
                 remote host end of the circuit. The remote ID must be globally
                 unique, and the value must be in the hexadecimal format.
                 The default is 0.

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

                 Defines the suffix to append to the circuit ID. The default
                 is 0.

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

                 Defines the increment used to generate remote ID suffixes
                 (remote_id_suffix) for emulated clients. The default is 1.

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

                 Specifies the number of times a remote ID suffix should
                 be repeated, before the step that is specified in the
                 remote_id_suffix_step argument is applied to the
                 remote ID suffix for incrementing. Possible values
                 range from 1 to <max_int>.

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

                 Specifies the number of remote ID suffixes. Possible values
                 range from 1 to <max_int>. The default is 1.

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

                 Specifies a list of Booleans to enable or disable the use of
                 wildcards for the Option Payload field in the custom option. The
                 length of the list must be the same as that of lists
                 string_as_hex_value, -include_in_message, -option_value,
                 option_payload and -remove_option. Possible values are true
                 (enable) and false (disable). The default value is false.

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

                 Specifies a list of Booleans to enable or disable value as
                 hexadecimal in the custom options. The length of the list must be
                 the same as that of lists enable_wildcards,
                 include_in_message, -option_value, -option_payload and
                 remove_option. Possible values are true
                 (enable) and false (disable). The default value is false.

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

                 Specifies a list of types of DHCP messages that will include
                 the custom option. The length of the list must be
                 the same as that of lists enable_wildcards,
                 string_as_hex_value, -option_value, -option_payload and
                 remove_option. The values are a list of numbers, each
                 corresponding to a message type. Possible values are described
                 below::


                   DHCPv4

                   DISCOVER   Include custom options in the DISCOVER message
                   REQUEST    Include custom options in the REQUEST message
                   BOTH       Include custom options in both DISCOVER and REQUEST
                              messages (Default)

                   DHCPv6

                    1        Solicit (Default)
                    3        Request
                    4        Confirm
                    5        Renew
                    6        Rebind
                    8        Release
                    11       InformationRequest
                    12       RelayForward


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

                 Specifies a list of option identifiers for the custom option.
                 The length of the list must be the same as that of lists
                 enable_wildcards, -string_as_hex_value, -include_in_message,
                 option_payload and -remove_option.
                 Possible values range from 0 to 255. The default value 0.

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

                 Specifies a list of payload strings in the DHCP custom option, in
                 the format specified below::


                  @s   Session index associated with the DHCP client
                  @b   Block (host/router) index
                  @p   Port name
                  @m   MAC address of the DHCP client
                  @x   Custom step in (start, count, step, zero padding, stutter) format
                  @@   Used to include the "@" symbol in the string

                 The default value is: "" (empty string). The length of the list
                 must be the same as that of lists enable_wildcards,
                 string_as_hex_value, -include_in_message, -option_value and
                 remove_option.

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

                 Specifies a list of Booleans to enable or disable option removal
                 for the custom option. The length of the list must be the same as
                 that of lists enable_wildcards, -string_as_hex_value,
                 include_in_message, -option_value and -option_payload. Possible
                 values are true (enable) and false (disable). The default value
                 is false.

DHCPv4 Specific Arguments

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

                 Enables or disables auto retry for sessions that fail to initially
                 come up. Possible values are true and false. The default is false.

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

                 Enables or disables relay agent link selection. Possible values are 0
                 (disable) and 1 (enable). The default value is 0.

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

                 Enables or disables relay agent VPN ID. Possible values are 0 (disable)
                 and 1 (enable). The default value is 0.

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

                 Number of times to retry a session after the initial failure. You
                 must set enable_auto_retry to true.

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

                 Enables or disables ARP on the server ID. Possible values are true
                 and false. The default is false.

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

                 Enables or disables the router option (option 3) specified in RFC
                 2132. Possible values are true and false. The default is false.

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

                 Specifies the type of the protocol to use. Possible values are::


                  dhcpoe - DHCP over Ethernet. You can specify encap ethernet_ii,
                           encap ethernet_ii_vlan,   or encap ethernet_ii_qinq
                           when protocol is set to dhcpoe. This is the default.

                  dhcpoeoa - DHCP over Ethernet over ATM. When you specify
                          protocol dhcpoeoa, -encap can be set to the combination
                          of an Ethernet encapsulation (ethernet_ii, ethernet_ii_vlan,
                          or ethernet_ii_qinq) and an ATM encapsulation (vc_mux
                          or llcsnap). You must specify protocol dhcpoeoa for ATM
                          cards.

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

                 Enables or disables IPv4 gateway addresses. Possible values
                 are 1 (enable) or 0 (disable). The default is 0.

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

                 Step value to increment IPv4 gateway addresses. The value must be
                 in IPv4 format. The default value is 0.0.0.0.

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

                 Specifies the IPv4 gateway address. You can specify this
                 argument when gateway_addresses is set to 1.

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

                 Specifies the name of the host. You can use the following
                 wildcards: @p = port, @b = session block, @s = session. The
                 default is client_ @p-@b-@s.

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

                 Set up the Option 55 values for the DHCP request messages on
                 each session block. You can select from the following list
                 of options::


                  Subnet Mask Option [1]
                  Routers Option [3]
                  Domain Name Servers Option [6]
                  Domain Name Option [15]
                  Static Routes Option [33]
                  NetBIOS Name Servers Option [44]
                  NetBIOS Node Type Option [46]
                  NetBIOS Scope Option [47]
                  IP Address Lease Time Option [51]
                  Server Identifier Option [54]
                  Renewal Time (T1) Option [58]
                  Rebinding Time (T2) Option [59]

                 The default is 1 6 15 33 44.
                 Example usage::


                  emulation dhcp group config mode=create
                                handle $dhcpport1
                                encap ethernet_ii
                                num_sessions 30
                                mac_addr 00.00.03.00.00.02
                                mac_addr_step 00.00.00.00.00.02
                                opt_list {1 6 15}

                 Alternatively, you can use the hexadecimal input style used
                 by the Spirent HLTAPI, but you must prefix the input with "0x" or
                 "0X" to indicate the hexadecimal style. The following example
                 uses the Spirent HLTAPI input style and is equivalent to the
                 above example::


                   emulation dhcp group config mode=create
                              handle $dhcpport1
                              encap ethernet_ii
                              num_sessions 30
                              mac_addr 00.00.03.00.00.02
                              mac_addr_step 00.00.00.00.00.02
                              opt_list 0x01060f

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

                 Specifies the subnet mask for the relay agent's IP address. The
                 value must be in IPv4 format. The default is 255.255.0.0.

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

                 Specifies the value of the relay agent link selection. This
                 argument is available when enable_relay_link_selection is set to
                 1. The value must be in IPv4 format. The default is 192.85.1.1.

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

                 Specifies the relay agent VPN ID in string format. You must set
                 enable_relay_vpn_id to 1.

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

                 Specifies the type of the VPN ID. This argument is available when
                 enable_relay_vpn_id is set to 1. Possible values are nvt_ascii
                 and rfc_2685.

                 nvt_ascii   Network Virtual Terminal (NVT) ASCII VPN identifier
                 rfc_2685    RFC 2685 VPNID

                 The default value is nvt_ascii.

 vci
                 Specifies the Virtual Circuit Identifier (VCI) of the first ATM
                 PVC pool. Possible values range from 0 to 65535. The default
                 is 100. This argument is valid for ATM interfaces only.

 vci_count
                 Specifies the number of the VCIs used for the emulation of
                 clients over ATM interfaces. Possible values range from 1
                 to 65536. The default is 1. The value of vci_count must
                 be divisible by the number of sessions. This argument is valid
                 for ATM interfaces only.

 vci_step
                 Specifies the step size in which the VCI value is incremented.
                 Possible values range from 0 to 65535. The default is 1.
                 This argument is valid for ATM interfaces only.

 vpi
                 Specifies the Virtual Path Identifier (VPI) of the first ATM PVC
                 pool (for an ATM connection). Possible values range from 0 to 255.
                 The default is 100. This argument is valid for ATM interfaces only.

 vpi_count
                 Specifies the number of the VPIs used for the emulation of
                 clients over ATM interfaces. Possible values range from 1 to
                 256. The default is 1. The VPI count number must be divisible
                 by the number of sessions. This argument is valid for
                 ATM interfaces only.

 vpi_step
                 Specifies the step size in which the VPI value is incremented.
                 Possible values range from 0 to 255. The default is 1.
                 This argument is valid for ATM interfaces only.

 pvc_incr_mode
                 Determines which ID to increment first. Possible values are::


                  vci - Increments the VCI before the VPI.
                  vpi - Increments the VPI before the VCI.
                  both - Increments both the VPI and VCI at the same time.

                 This argument is valid for ATM interfaces only.

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

                 Configures the flag to broadcast client responses. Possible values
                 are 0 and 1. If the argument is set to 1, the DHCP Server or
                 relay agent will broadcast DHCP messages using an IP broadcast
                 address. If it is set to 0, the DHCP or DHCPv6/PD Server or relay
                 agent will send the DHCP or DHCPv6/PD messages to the IP address
                 specified in the "yiaddr" field. The default is 1.

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

                 Configures DHCP relay agent. The DHCP relay agent allows
                 you to place DHCP clients and DHCP servers on different
                 networks. Possible values are 0 (disabled) and 1 (enabled).
                 You can use this argument to control the configuration of
                 relay_agent_ip_addr and -server_ip_addr.

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

                 Configures DHCP relay agent IP address. The value should
                 be in IPv4 format. The default value is 192.1.1.0.
                 You can use this argument when relay_agent_flag is enabled.

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

                 Configures DHCP server IP address. The default value is
                 192.1.1.2. The value should be in the IPv4 format.
                 You can use this argument when relay_agent_flag is enabled.
                 This argument is required when relay_agent_ip_addr is
                 used. Both arguments must be configured in the same segment.

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

                 Configures the circuit ID suboption of relay agent
                 option (82). This suboption encodes an agent-local
                 identifier of the circuit from which a DHCP
                 clientto-server packet was received. It is intended
                 for use by agents in relaying DHCP responses back to
                 the proper circuit. (See RFC 3046 for more
                 information.) The circuit ID must be globally
                 unique, and the value must be in the hexadecimal format.
                 The default is 0.

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

                 Defines the suffix to append to the circuit ID. The default
                 is 0.

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

                 Specifies the number of circuit ID suffixes. Possible values
                 range from 1 to <max_int>. The default is 1.


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

                 Defines the increment used to generate circuit ID suffixes
                 (circuit_id_suffix) for emulated clients. The default is 1.

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

                 Specifies the number of times a circuit ID suffix should
                 be repeated, before the step that is specified in the
                 circuit_id_suffix_step argument is applied to the
                 circuit ID suffix for incrementing. Possible values
                 range from 1 to <max_int>.

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

                 Configures the client ID option (61). DHCP clients use client ID
                 (option 61) to specify their unique identifier. DHCP
                 servers use this value to index their database of address
                 bindings. This value is expected to be unique for all
                 clients in an administrative domain. This value must be in
                 hexadecimal format.

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

                 Configure the suffix to append to the client ID. Possible values
                 range from 0 to <max_int-1>.

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

                 Specifies the number of client ID suffixes. Possible values
                 range from 1 to <max_int>. The default is 1.

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

                 Defines the increment used to generate client ID suffixes
                 (client_id_suffix) for emulated clients. Possible values range
                 from 0 to <max_int-1>. The default value is 1.

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

                 Specifies the number of times a client ID suffix should
                 be repeated, before the step that is specified in the
                 client_id_suffix_step argument is applied to the
                 client ID suffix for incrementing. Possible values
                 range from 1 to <max_int>.

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

                 Configures the client ID type. Possible values range from 0 to
                 255. You must specify this argument when you specify client_id.

DHCPv6/PD Specific Arguments (You must set dhcp_range_ip_type to 6)

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

                 Determines which address use as the source IPv6 interface
                 in control plane DHCPv6/PD messages. Possible values are described
                 below::


                  LINKLOCAL - Use the link local address as the source IPv6
                           interface in control plane DHCPv6/PD messages. This
                           is the default value.

                  ROUTERADVERTISEMENT - Use the router global IPv6 address
                           as the source IPv6 address in control plane messages.

 dhcp6_range_duid_enterprise_id
                 Specifies the enterprise number to be used in the DUID. This
                 argument is only applicable when duid_type is set to en. The
                 default value is 3456

 dhcp6_range_duid_vendor_id
                 Starting DUID value. The default value is 0001 This field is
                 available when duid_type is set to custom or en.

 dhcp6_range_duid_vendor_id_increment
                 DUID step value. This value is alphanumeric. The default is 0001.
                 This argument is available when duid_type is set to custom.

 dhcp6_range_duid_type
                 Indicates the DHCPv6 Unique Identifier (DUID) type. DUID is used
                 for DHCPv6 participants, and each DHCPv6 client and DHCPv6
                 server has exactly one DUID. DHCPv6 delegating servers use DUIDs
                 to identify clients in order to select configuration parameters
                 and associate IAs with clients. DHCPv6 clients use DUIDs to
                 identify a delegating server in messages that require a server to
                 be identified.
                 Possible values are described below::


                  llt - The DUID includes the linklayer address of any one
                       network interface connected to the DHCPv6 device when
                       the DUID was generated, plus the time when the DUID
                       was generated. This is the default.

                  en - The DUID includes the vendor's registered Private
                       Enterprise Number specified in the DUID Enterprise
                       Number field, followed by a unique identifier assigned
                       by the vendor.

                  ll - The DUID includes the linklayer address. This option is
                       recommended for devices that have a permanently
                       connected network interface with a linklayer address
                       and do not have nonvolatile, writable, stable storage.

                  custom - Custom DUID type

 dhcp6_range_ia_t1
                 Specifies the T1 timer value (in seconds) for the IA_PD
                 (Identity Association for Nontemporary Addresses) option.
                 After this time has expired, the DHCPv6/PD client initiates a
                 RENEW/REPLY message exchange to extend the lifetime on any
                 addresses in the IA_PD.

                 A value of 0 allows the server to specify the T1 value. The
                 default is 50% of the preferred lifetime value. Possible
                 values range from 0 to 2147483647. The default value is
                 302400.

 dhcp6_range_ia_t2
                 Specifies the T2 timer value (in seconds) for the IA_PD option.
                 After this time has expired, the DHCPv6/PD client initiates a
                 REBIND/REPLY message exchange to extend the lifetime on any
                 addresses in the IA_PD. A value of 0 allows the server to specify
                 the T2 value. The default is 80% of the preferred
                 lifetime value. Possible values range from 0 to 2147483647.
                 The default value is 483840.

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

                 The multicast addresses that can be used by DHCP control plane.
                 Possible values are::


                  ALL_DHCP_RELAY_AGENTS_AND_SERVERS  -  A linkscoped
                           multicast address used by a client to communicate with
                           neighboring (i.e., onlink) relay agents and servers.
                           All servers and relay agents are members of this
                           multicast group. This is the default value.

                  ALL_DHCP_SERVERS - A sitescoped multicast
                          address used by a relay agent to communicate with
                          servers, either because the relay agent wants to send
                          messages to all servers or because it does not know the
                          unicast addresses of the servers. Note that in order for
                          a relay agent to use this address, it must have an
                          address of sufficient scope to be reachable by the
                          servers. All servers within the site are members of this
                          multicast group.

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

                 Specifies a userdefined value for the DUID. Possible values
                 range from 0 to 65535. The default value is 1. This argument is
                 available when duid_type is set to custom.

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

                 Enables or disables the lightweight DHCPv6 relay agent. A
                 Lightweight DHCPv6 Relay Agent (LDRA) allows Relay Agent
                 Information to be inserted by an access node that performs a
                 linklayer bridging (i.e., non-routing) function. Possible values
                 are true (enable) and false (disable). The default value is false

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

                 Specifies whether the host will send a REBIND message to the
                 delegating router when the DHCPv6/PD session's T2 time has
                 expired. The lifetime of the prefixes (DHCPv6PD) or addresses
                 (DHCPv6 client) continues until the Valid Lifetime value is
                 reached. Possible values are true (enable) and false (disable).
                 The default value is false.

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

                 Specifies whether the client is willing to accept Reconfigure
                 messages from the server. Possible values are true and false.
                 The default value is false.

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

                 Enables or disables relay agent emulation. Possible values are
                 true (enable) and false (disable). The default value is false.

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

                 Enables the DHCPv6/DHCPv6/PD client to send a RENEW message to
                 the delegating router when the DHCPv6/PD session's T1 time
                 has expired. Possible values are true (enable) and false
                 (disable). The default value is true.

 export_addr_to_clients
                 Determines whether to create the linked host for the specified
                 DHCPv6 PD client. Possible values are 0 and 1. If this argument
                 is set to 1, the linked host will be created, the following
                 arguments will also be configured on this host::


                   client_count
                   client_mac_addr
                   client_mac_addr_step
                   client_mac_addr_mask

                 The default value is 0

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

                 Enables or disables IPv6 learning for gateway IP addresses and
                 MAC addresses. Possible values are true (enable) and false
                 (disable). The default value is false.

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

                 Specifies the preferred lifetime (in seconds) for the IPv6
                 prefix. A value of 0 allows the server to specify this
                 value. Possible values range from 0 to 4294967295. The
                 default value is 604800.

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

                 Specifies the requested length (in bits) of the IPv6 prefix.
                 A value of 0 allows the server to specify this value.
                 Possible values range from 0 to 64. The default value is 0.
                 This argument is valid when argument dhcp6_client_mode is set
                 to DHCPPD.

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

                 DHCPv6 client requested prefix starting address. The value must
                 be in IPv6 format. The default is ::. This argument is valid when
                 argument dhcp6_client_mode is set to DHCPPD.

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

                 Specifies the use of a twomessage exchange for address
                 assignment (see RFC 3315). Possible values are described
                 below::


                  ENABLE - Enables rapid commit option. The host accepts a
                       REPLY message only from the DHCPv6/PD server that
                       has this option enabled when sending a SOLICIT message
                       carries rapid commit option.

                  DISABLE - Disable rapid commit option. The host accepts an
                       ADVERTISE message from the DHCPv6/PD server
                       when sending a SOLICIT message does not carry
                       rapid commit option.

                  SERVER - Indicates rapid commit will be enabled or disabled
                      by DHCPv6/PD server. The rapid commit option is included
                      in the ADVERTISE message. If the rapid commit option is
                      enabled on the server, the twomessage exchange is used.
                      If the rapid commit option is disabled on the server,
                      the fourmessage exchange is used.

                 The default value is disable.

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

                 Specifies the Relay server IPv6 address. The value must be in
                 IPv6 format. The default is ::.

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

                 Specifies the step value to increment Relay server IPv6
                 addresses. The value must be in IPv6 format. The default is ::.

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

                 Determines whether to use relay agent's MAC address for the data
                 plane. Possible values are true (enable) and false (disable). The
                 default value is true.

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

                 Specifies the valid lifetime in seconds for the addresses.
                 Possible values range from 0 to 4294967295. The default value is
                 2592000.

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

                 Determines whether to use the DHCP message authentication option
                 The type of authentication to be used can be specified using
                 auth_protocol. Possible values are true (enable) and false
                 (disable). The default is false. This argument is valid when
                 dhcp6_client_mode is set to DHCPV6.

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

                 Specifies the protocol to be used to generate the authentication
                 information carried in the option. Possible values are::


                  DELAYED_AUTH - Specifies the use of the Delayed Authentication
                         protocol. In delayed authentication, the client requests
                         authentication in its Solicit message, and the server
                         replies with an Advertise message that includes
                         authentication information.

                  RECONFIG_KEY - Specifies the use of the Reconfigure key
                         authentication protocol. The Reconfigure key
                         authentication protocol provides protection against
                         misconfiguration of a client caused by a Reconfigure
                         message sent by a malicious DHCPv6 server.

                 This argument is valid when enable_auth is set to true.

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

                 Enables or disables Duplicate Address Detection (DAD). The DAD
                 algorithm is performed on all configured IPv6 addresses before
                 assigning them to an interface. Possible values are true
                 (enable) and false (disable). The default is true. This argument
                 is valid when dhcp6_client_mode is set to DHCPV6.

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

                 Specifies the length of time in seconds that must elapse before
                 the Neighbor Solicit message times out during DAD. Possible values
                 range from 1 to 4294967295. The default is 1. This argument is
                 valid when dhcp6_client_mode is set to DHCPV6.

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

                 Specifies the number of Neighbor Solicit messages to send out
                 per session during DAD. Possible values range from 1 to
                 4294967295. The default is 1. This argument is valid when
                 dhcp6_client_mode is set to DHCPV6.

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

                 Specifies the DHCP realm that identifies the key used to generate
                 the HMACMD5 value when using delayed authentication. The default
                 is "spirent.com". This argument is valid when dhcp6_client_mode
                 is set to DHCPV6.

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

                 Specifies the type of client to emulate. Possible values are
                 DHCPPD, DHCPV6, and DHCPV6ANDPD. The default is DHCPV6.

                 Note: When using mode modify to change the configured client
                       type, you can only switch between DHCPV6 and DHCPV6ANDPD.
                       Other types of client mode change that involve DHCPPD are
                       not currently supported.

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

                 The starting IPv6 address that the emulated DHCPv6 client
                 requested. The value must be in IPv6 format. The default is ::.
                 This argument is valid when dhcp6_client_mode is set to DHCPV6.

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

                 Specifies a list of key identifiers that identified the key
                 used to generate the HMACMD5 value. The length of the list must
                 be same as that of lists dhcp6_delayed_auth_key_value and
                 dhcp6_delayed_auth_value_type. This argument is valid when
                 enable_auth is set to true and -auth_protocol is set to
                 DELAYED_AUTH. Possible values range from 0 to 4294967295. The
                 default is 1.

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

                 Specifies a list of keys to generate the HMACMD5 value. The
                 length of the list must be same as that of lists
                 dhcp6_delayed_auth_key_id and dhcp6_delayed_auth_value_type.
                 This argument is valid when enable_auth is set to true and
                 auth_protocol is set to DELAYED_AUTH.

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

                 Specifies the starting IPv6 address of the emulated DHCPv6
                 devices. The value must be in IPv6 format. The default is 2001::2
                 This argument is applicable when dhcp_range_ip_type is set to
                 6.

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

                 Defines the increment used to generate IPv6 gateway addresses for
                 multiple devices. The value must be in IPv6 format. The default is
                 0::1. This argument is applicable when dhcp_range_ip_type is set
                 to 6.

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

                 Specifies the IPv6 address prefix length. Possible values range
                 from 0 to 128. The default is 64. This argument is applicable
                 when dhcp_range_ip_type is set to 6.

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

                 Configures the first IPv6 gateway address for the emulated
                 DHCPv6 devices. The value must be in IPv6 format. The default is
                 2001::1. This argument is applicable when dhcp_range_ip_type
                 is set to 6.

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

                 Defines the increment used to generate IPv6 gateway addresses
                 for multiple devices. The value must be in IPv6 format. The
                 default is ::. This argument is applicable when
                 dhcp_range_ip_type is set to 6.

 client_count
                 Specifies the device count of the linked host for the DHCPv6 PD
                 client. The value of this argument must be the same as that of
                 num_sessions if num_sessions is not set to 1. The default value
                 is 1.

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

                 Specifies the MAC address mask of DHCPv6 clients. The value must
                 be in MAC format. The default is 00:00:00:FF:FF:FF.

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

                 Specifies the starting MAC address of DHCPv6 clients. The value
                 must be in MAC format. The default is 00:10:01:00:00:01.

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

                 Specifies the step value to increment MAC addresses of DHCPv6
                 clients. The value must be in MAC format. The default is
                 00:00:00:00:00:01.

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

                 Specifies the enterprise number for the relay agent remote ID.
                 The default value is 3456.

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

                 Determines whether to expand the specified DHCPv4/DHCPv6 device
                 parameters into emulated DHCPv4/DHCPv6 device objects. It is
                 used in `scaling` test scenarios.

                 When set to true, a list of emulated device handles (handle_list)
                 with enabled DHCPv4/DHCPv6 device configurations is created.

                 When set to false, only DHCPv4/DHCPv6 parameters are configured with no
                 handle returned.

 clients_per_relay_agent
                 Specifies the number of clients per relay agent
                 The default is 1
                 Applicable only in mode activate when -block_mode or -expand is specified.

 enable_circuit_id
                 Enables or disables circuit ID.
                 The default is false
                 Applicable only in mode activate when -block_mode or -expand is specified.

 enable_relay_server_id_override
                 Enable the relay agent server identifier override suboption in DHCP messages sent
                 from the emulated relay agent.
                 The default is false
                 Applicable only in mode activate when -block_mode or -expand is specified.

 relay_server_id_override
                 Specifies the server identifier override field for the message sent by the relay agent.
                 The default is 192.85.1.1
                 Applicable only in mode activate when -block_mode or -expand is specified.

 enable_remote_id
                 Enable the remote ID suboption in DHCP messages sent from the emulated relay agent.
                 The default is false
                 Applicable only in mode activate when -block_mode or -expand is specified.

 relay_client_macaddr_step
                 Specifies the relay agent client MAC address step.
                 The default is 00-00-00-00-00-01
                 Applicable only in mode activate when -block_mode or -expand is specified.

 relay_server_ipv4addr_step
                 Specifies the relay agent server IPv4 address step if UseGatewayAsRelayServerIpv4Addr is true.
                 The default is 0.0.0.1
                 Applicable only in mode activate when -block_mode or -expand is specified.

 relay_client_macaddr_mask
                 Specifies the relay agent client MAC address mask.
                 The default is 00-00-00ffffff
                 Applicable only in mode activate when -block_mode or -expand is specified.

 relay_client_macaddr_start
                 Specifies the relay agent client starting MAC address.
                 The default is 00-10-01-00-00-01
                 Applicable only in mode activate when -block_mode or -expand is specified.

 use_gateway_as_relayserver_ipv4_addr
                 Specifies to use the gateway address as the relay agent server IPv4 address.
                 The default is  true
                 Applicable only in mode activate when -block_mode or -expand is specified.

 use_client_mac_addr_for_dataplane
                 Specifies to use the client's MAC address for traffic.
                 The default is false
                 Applicable only in mode activate when -block_mode or -expand is specified.

 clients_per_home_gateway
                 Specifies the number of clients per home gateway.
                 The default is 1

 enable_interface_id
                 Enable or disable the relay Agent Interface ID Option.
                 The default is false
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 export_addr_to_linked_clients
                 Enables exporting resolved addresses to linked client blocks (through a home gateway link).
                 The default is false
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 hg_mac_start
                 Specifies the home Gateway starting MAC address.
                 The default is 00-10-01-00-00-01
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 hg_mac_step
                 Specifies the home Gateway MAC address step.
                 The default is 00-00-00-00-00-01
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 iaid_start
                 Specifies the start value of IAID of each device.
                 The default is 0
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 iaid_step
                 Specifies the step value of IAID of each device.
                 The default is 0
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 interface_id
                 Enabled for DHCPv6 LDRA or DHCPv6 Relay Agent to identify the interface
                 on which the client message was received.
                 The default is interfaceid_@p
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 dhcpv6_mode
                 Specifies whether the device is emulating a DHCPv6PD client or full DHCPv6 client.
                 The default is pd
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 prefix_step
                 Specifies the DHCPv6 client requested prefix step.
                 The default is :::

                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 use_gateway_as_relay_server_ipv6_addr
                 Specifies whether the gateway address will be used as the relay server IPv6 address.
                 The default is true
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 ipv6_relay_client_macaddr_start
                 Specifies the client (behind the relay agent) MAC address start.
                 The default is 00-20-01-00-00-01
                 Applicable only in DHCPv6/PD mode activate when -block_mode or -expand is specified.

 Note::

     The following arguments are also available in the dhcp_config
     function. When both functions are configured with these arguments, the
     configurations under the current function will take effect::


      broadcast_bit_flag
      relay_agent_flag
      relay_agent_ip_addr
      server_ip_addr
      circuit_id
      circuit_id_suffix
      circuit_id_suffix_count
      circuit_id_suffix_step
      circuit_id_suffix_repeat
      client_id
      client_id_suffix
      client_id_suffix_count
      client_id_suffix_step
      client_id_suffix_repeat
      client_id_type
      remote_id
      remote_id_suffix
      remote_id_suffix_step
      remote_id_suffix_repeat
      remote_id_suffix_count

Arguments Unsupported by Save as HLTAPI:

The following Spirent HLTAPI arguments are currently not supported by the Save as
HLTAPI function::


     circuit_id_suffix
     circuit_id_suffix_count
     circuit_id_suffix_step
     circuit_id_suffix_repeat
     client_id_suffix
     client_id_suffix_count
     client_id_suffix_step
     client_id_suffix_repeat
     remote_id_suffix
     remote_id_suffix_count
     remote_id_suffix_step
     remote_id_suffix_repeat
     device_name
     gateway_addresses
     pvc_incr_mode
     qinq_incr_mode
     qinq_oneblock
     sessions_per_vc
Ciscospecific Arguments:

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

dhcp6_range_ia_id
dhcp6_range_ia_id_increment
dhcp6_range_ia_type
dhcp6_range_param_request_list
dhcp_range_relay6_hosts_per_opt_interface_id
dhcp_range_relay6_opt_interface_id
dhcp_range_relay6_use_opt_interface_id
release_rate
request_rate
sessions_per_vc
Return Values:

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

handles   Identifies the handle of the group configured or modified by the
          ``emulation dhcp group config`` function.

handle_list   A list of emulated devices enabled with group configured by the
          ``emulation dhcp group config`` function when expand is set true.

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

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

The emulation dhcp group config function configures or modifies a group of DHCP or DHCPv6/PD subscribers where each group share a set of common characteristics. Use the mode argument to specify the action to perform.(See the mode argument description for information about the actions).

You can use protocol to specify the physical interface for DHCP or DHCPv6/PD subscribers (See the description of the protocol argument).

Before using this function, you must specify mode create when configuring DHCP or DHCPv6/PD emulation on a port and initialize the port handle argument (using the emulation dhcp config function).

You can call this function multiple times to create multiple groups of subscribers on a port with characteristics different from other groups or for independent control purposes. This function enables you to configure a specified number of DHCP or DHCPv6/PD client sessions which belong to a subscriber group with specific Layer 2 network settings.

Once the subscriber group has been configured, a handle is created. The handle can be used to modify the parameters or reset the sessions for the subscriber group or to control the binding, renewal, and release of the DHCP or DHCPv6/PD sessions.

For DHCPv4, in addition to specifying the handle (handle), you must also provide the following arguments:

mode          (create, modify, or reset)
num_sessions  (the number of DHCP/DHCPv6 clients to emulate)
encap         (type of encapsulation to use)
protocol      (type of protocol to use, only valid for DHCPv4)
mac_addr      (starting value for the MAC address)
mac_addr_step (increment used to generate additional MAC addresses for
                multiple clients)

For information about DHCP, see RFC 2131, “Dynamic Host Configuration Protocol.” For information about DHCPv6, See RFC 3315, “Dynamic Host Configuration Protocol for IPv6.” and RFC 3633, “IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6.”

Examples:

The following example configures a group of DHCP subscribers on a port:

emulation dhcp group config handle=$hDhcpGroup($port)
      mode create encap= ethernet_ii_vlan
      num_sessions 5 mac_addr= 00.10.95.11.12
      mac_addr_step=   00:00:00:00:00:01
      vlan_id= 10
      vlan_id_step= 1
      vlan_id_count= 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 [emulation dhcp group config
        mode=                            create
        dhcp_range_ip_type=              4
        encap=                           ethernet_ii_vlan
        gateway_addresses=               1
        handle=                          $dhcp_handle
        client_id_type=                  60
        client_id=                       6
        client_id_suffix=                0
        client_id_suffix_co=             3
        client_id_suffix_st=             2
        client_id_suffix_re=             1
        vlan_id=                         10
        vlan_id_count=                   2
        vlan_user_priority=              7
        vlan_ether_type=                 0x8100
        vlan_id_step=                    0
        host_name=                       Client_Block_1
        enable_arp_server_i=             false
        broadcast_bit_flag=              1
        opt_list=                        "1 6 15 33 44"
        enable_router_optio=             false
        gateway_ipv4_addr_s=             0.0.0.0
        ipv4_gateway_addres=             192.85.2.1
        mac_addr=                        00:10:94:00:00:17
        mac_addr_step=                   00:00:00:00:00:01
        num_sessions=                    2
]

Sample output for the example above:

{handles dhcpv4blockconfig1} {handle host3} {status 1}

The following example modifies the specified group of DHCP subscribers:

emulation dhcp group config handle=dhcpv4blockconfig1
         mode= modify
         num_sessions= 6
         mac_addr= 00:76:10:10:11:2
         vlan_id= 17
         vlan_id_count= 2

Sample output for example shown above:

{handles dhcpv4blockconfig1} {status 1}

The following example stops the specified group of DHCP subscribers:

emulation dhcp group config
         mode= reset \
         handle= 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 [emulation dhcp group config
   mode=                               create
   dhcp_range_ip_type=                 4
   encap=                              ethernet_ii_mvlan
   gateway_addresses=                  1
   handle=                             $dhcp_handle
   vlan_id_list=                       100 100
   vlan_id_count_list=                 0 0
   vlan_id_step_list=                  1 1
   vlan_user_priority_list=            7 7
   vlan_ether_type_list=               0x88A8 0x88B5
   vlan_outer_ether_type=              0x8100
   vlan_id_outer_count=                1
   vlan_outer_user_priority=           7
   vlan_id_outer=                      100
   vlan_id_outer_step=                 1
   vlan_id=                            100
   vlan_id_count=                      1
   vlan_user_priority=                 7
   vlan_ether_type=                    0x8100
   vlan_id_step=                       1
   num_sessions=                       1
   host_name=                          client_@p-@b-@s
   enable_arp_server_id=               false
   broadcast_bit_flag=                 1
   opt_list=                           "1 6 15 33 44"
   enable_router_option=               false
   mac_addr=                           00:10:94:00:00:01
   mac_addr_step=                      00:00:00:00:00:01
   gateway_ipv4_addr_step=             0.0.0.0
   ipv4_gateway_address=               192.85.1.1
    ]

Sample output for example shown above:

{handles dhcpv4blockconfig1} {handle host4} {status 1}

The following example configures a group of DHCPv6PD subscribers on a port:

emulation dhcp group config
      handle=                               host4
      mode=                                 create
      dhcp6_client_mode=                    DHCPPD
      encap=                                ethernet_ii
      dhcp_range_ip_type=                   6
      num_sessions=                         20
      mac_addr=                             00.00.10.95.11.15
      mac_addr_step=                        00.00.00.00.00.01
      local_ipv6_addr=                      2009::2
      gateway_ipv6_addr=                    2005::1
      export_addr_to_clients=               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:

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:

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:

        emulation dhcp group config
            handle=                       $dhcpv6PortHandle
            mode=                         create
            control_plane_prefix=         LINKLOCAL
            dst_addr_type=                ALL_DHCP_RELAY_AGENTS_AND_SERVERS
            dhcp6_range_duid_enterprise_id=  3456
            dhcp6_range_duid_vendor_id=        1
            dhcp6_range_duid_vendor_id_increment=   1
            dhcp6_range_duid_type=                 EN
            duid_value=                   1
            enable_ldra=                  false
            enable_rebind=                false
            enable_reconfig_accept=       false
            enable_relay_agent=           false
            enable_renew=                 false
            preferred_lifetime=           604800
            rapid_commit_mode=            disable
            dhcp6_range_ia_t1=            302400
            dhcp6_range_ia_t2=            483840
            use_relay_agent_mac_addr_for_dataplane= false
            valid_lifetime=               2592000
            enable_dad=                   true
            dad_timeout=                  1
            dad_transmits=                1
            dhcp6_client_mode=           DHCPV6
            enable_auth=                  true
            auth_protocol=                DELAYED_AUTH
            enable_auth= "true"
            dhcp6_delayed_auth_key_id=  {1 2}
            dhcp6_delayed_auth_key_value= {spirent1 spirent2}

The following example uses the function in DHCPv4 `scaling` mode (mode= activate)
with port_handle= and block_mode::


  set Dhcpv4client_ret [emulation dhcp group config
              mode=                                            activate
              port_handle=                                     $port1
              count=                                           2
              block_mode=                                      ONE_DEVICE_PER_BLOCK
              block_name_index=                                1
              vlan_id=                                         444
              vlan_outer_id=                                   333
              router_id=                                       11.111.11.11
              router_id_step=                                  0.0.0.2
              mac_addr=                                        00:11:11:11:11:11
              mac_addr_step=                                   00:00:00:00:00:02
              mac_addr_step_per_port=                          00:00:00:00:01:01
              mac_addr_step_per_vlan=                          {"" 00:00:00:00:00:01}
              ip_step_per_port=                                0.0.0.5
              ip_step_per_vlan=                                {"" 0.0.1.1}
              intf_prefix_len=                                 22
              name=                                            DEVICE_BLOCK_DHCPV4CLIENT
              vlan_user_pri=                                   3
              vlan_id_count=                                   2
              vlan_id_repeatmode=                              REPEAT_ACROSS_PORT
              vlan_outer_id_count=                             2
              vlan_outer_user_pri=                             4
              vlan_outer_id_repeatmode=                        REPEAT_ACROSS_PORT
              intf_ip_addr=                                    11.111.11.11
              gateway_ip_addr=                                 11.111.11.1
              expand=                                          false
              remote_id=                                       1
              vpn_id=                                          1
              circuit_id=                                      circuitId_@q
              server_ip_addr=                                  10.11.1.2
              relay_client_macaddr_start                      001001000001=
              opt_list=                                        1
              enable_relay_link_selection=                     1
              enable_router_option=                            true
              relay_client_macaddr_mask                       000000ffffff=
              host_name=                                       spirent1
              relay_link_selection=                            10.11.1.1
              use_gateway_as_relayserver_ipv4addr=              false
              enable_relay_vpn_id=                             1
              enable_relay_server_id_override=                 true
              enable_remote_id=                                true
              relay_server_id_override=                        10.11.1.1
              retry_attempts=                                  2
              enable_auto_retry=                               true
              relay_pool_ip_addr=                              0.0.0.0
              relay_client_macaddr_step                       000000000001=
              vpn_type=                                        nvt_ascii
              use_client_macaddr_for_dataplane=               true
              enable_circuit_id=                              true
              relay_agent_flag=                               1
              relay_server_ipv4addr_step=                     0.0.0.1
              clients_per_relay_agent=                        2

]

Sample output for example shown above:

{param_handle emulateddevicegenparams1} {status 1} {handle_list {emulateddevice1 emulateddevice2
emulateddevice3 emulateddevice4 emulateddevice5 emulateddevice6 emulateddevice7 emulateddevice8}}
{handle {}} {handles {emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4
emulateddevice5 emulateddevice6 emulateddevice7 emulateddevice8}}

The following example uses the function in DHCPv6/PD scaling mode (mode= activate) with port_handle= and block_mode:

set Dhcpv6client_ret [emulation dhcp group config
            mode=                                            activate
            port_handle=                                     $port1
            dhcp_range_ip_type=                              6
            dhcpv6_mode=                                     pd_and_client
            count=                                           2
            block_mode=                                      ONE_DEVICE_PER_BLOCK
            block_name_index=                                1
            vlan_id=                                         444
            vlan_outer_id=                                   333
            mac_addr=                                        00:11:11:11:11:11
            mac_addr_step=                                   00:00:00:00:00:02
            mac_addr_step_per_port=                          00:00:00:00:01:01
            mac_addr_step_per_vlan=                          {"" 00:00:00:00:00:01}
            intf_ipv6_prefix_len=                            65
            link_local_ipv6_step_per_port=                   ::4
            link_local_ipv6_step_per_vlan=                   {::4 ::5}
            name=                                            DEVICE_BLOCK_DHCPV6CLIENT
            vlan_user_pri=                                   3
            vlan_id_count=                                   2
            vlan_id_repeatmode=                              REPEAT_ACROSS_PORT
            vlan_outer_id_count=                             2
            vlan_outer_user_pri=                             4
            vlan_outer_id_repeatmode=                        REPEAT_ACROSS_PORT
            router_id_ipv6=                                  0101::011
            router_id_ipv6_step=                             ::11
            link_local_ipv6_addr=                            2000::2
            link_local_ipv6_addr_step=                        ::1
            intf_ipv6_addr=                                  1111::3e9
            intf_ipv6_addr_step=                             ::1
            link_local_ipv6_prefix_len=                      64
            gateway_ipv6_addr=                               1111::1
            gateway_ipv6_addr_step=                          ::1
            expand=                                          false
            control_plane_prefix=                            LINKLOCAL
            remote_id=                                       1
            dhcp6_range_duid_vendor_id=                      1
            client_mac_addr                           001001000001=
            client_mac_addr_mask                            000000ffffff=
            client_mac_addr_step                            000000000001=
            clients_per_home_gateway=                        1
            iaid_step=                                       0
            relay_client_mac_addr_start                     002001000002=
            dhcp6_range_duid_type=                           LL
            prefix_start=                                    ::
            enable_interface_id=                             true
            interface_id=                                    1
            preferred_lifetime=                              604801
            prefix_step=                                     ::1
            iaid_start=                                      1
            relay_server_ipv6_addr=                          2000::1
            use_relay_agent_mac_addr_for_dataplane=          true
            enable_renew=                                    true
            relay_server_ipv6_addr_step=                     ::1
            dhcp6_range_ia_t1=                               302401
            use_gateway_as_relay_server_ipv6_addr=           true
            enable_remote_id=                                true
            rapid_commit_mode=                               DISABLE
            hg_mac_step                                     000000000001=
            dhcp6_range_duid_enterprise_id=                  1
            dhcp6_range_duid_vendor_id_increment=            1
            enable_rebind=                                   true
            export_addr_to_linked_clients=                   true
            relay_client_mac_addr_step                      002001000001=
            remote_id_enterprise=                            3457
            hg_mac_start                                    001001000001=
            duid_value=                                      1
            valid_lifetime=                                  2592000
            enable_relay_agent=                              true
            prefix_length=                                   64
            dhcp6_range_ia_t2=                               483841
            clients_per_relay_agent=                         1

]

Sample output for example shown above:

{param_handle emulateddevicegenparams1} {status 1} {handle_list {emulateddevice1 emulateddevice2
emulateddevice3 emulateddevice4 emulateddevice5 emulateddevice6 emulateddevice7 emulateddevice8}}
{handle {}} {handles {emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4
emulateddevice5 emulateddevice6 emulateddevice7 emulateddevice8}}

emulation dhcp control

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

Purpose:
Starts, stops, or restarts the DHCP or DHCPv6/PD subscriber group activity on the specified port.

Synopsis:

Note: M indicates the argument is `Mandatory`.

     emulation dhcp control
        action= {abort|bind|inforeq|release|renew|rebind} M
        port_handle= <port_handle_list|all>
        handle= <DHCP_group_handle_list|all>
        ip_version= {4|6}

Arguments:

action
                Specifies the action to perform on the port specified by the
                port_handle argument. Possible values are abort, bind, release,
                renew and rebind. You must specify one of these values. The
                modes are described below::


                 abort -  Aborts DHCP client bindings and resets
                          the state of the DHCP client

                 bind - Starts the Discover/Request message exchange between
                        the emulated requesting router(s) and the delegating
                        router(s) that is necessary to establish client bindings

                 inforeq - Sends an InformationRequest message to the server to
                           request configuration parameters without assignment of
                           any IP addresses to the client (for DHCPv6 only)

                 release - Terminates bindings for all currently bound subscribers

                 renew -  Renews the lease for all currently bound subscribers

                 rebind - Rebinds DHCP clients with the DHCP server

handle
                Identifies the groups or list of groups to bind, release, or
                renew (see Examples section). This value is returned from
                the ``emulation dhcp group config`` function. Use "all" to
                specify all configured groups. You can specify either handle or
                port_handle, but not both. If neither of the two is specified,
                all groups under all ports will be called. This value appears in
                the keyed list returned by the emulation dhcp group config
                function.

port_handle
                Identifies a list of ports on which DHCP or DHCPv6/PD
                emulation has been configured. This value is returned by the
                ``emulation dhcp config`` function. Use "all" to specify all
                configured ports. You can specify either handle or
                port_handle, but not both. If neither of the two is specified,
                all groups under all ports will be called.

ip_version
                Defines the IP version to be used. Possible values are 4 and
                6. The default is 4.
Return Values:

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

status     Success (1) or failure (0) of the operation.
log        An error message (if the operation failed).
Description:

The emulation dhcp control function starts or stops the message exchange between the emulated requesting router(s) and the delegating router(s). You use this function to bind, release, or renew subscribers. When you call the 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:

The following example binds two DHCP groups with either a single command using the DHCP port handle or using the list feature:

# Configure DHCP port
set rL emulation dhcp config mode=create port_handle $p0
keylget rL handles dhcpport1

# Configure two DHCP groups
set rL [emulation dhcp group config mode=create
                handle= $dhcpport1
                encap= ethernet_ii_vlan
                num_sessions= 30
                vlan_id= 10
                vlan_id_count= 30

 ]

 keylget rL handles dhcpHandles

 set rL [emulation dhcp group config mode=create
                   handle= $dhcpport1
                   encap= ethernet_ii_vlan
                   num_sessions= 30
                   vlan_id= 100
                   vlan_id_count= 30

   ]

 lappend dhcpHandles [keylget rL handles]

To bind the two DHCP groups using a list of DHCP group handles:

set rL emulation dhcp control action=bind handle $dhcpHandles

Or to bind the two groups using the DHCP port handle:

set rL emulation dhcp control action=bind port_handle $dhcpport1

To connect all the groups of DHCPv6/PD clients on the port:

set returnedString [ emulation dhcp control
                  port_handle=    $hltHostPort
                  action=         bind
                  ip_version=     6]

To renew the specified group of DHCPv6/PD clients:

set returnedString [ emulation dhcp control
                 port_handle=    $hltHostPort
                 action=         renew
                 ip_version=     6]

To release all the groups of DHCPv6/PD clients on the port:

set returnedString [ emulation dhcp control
                 port_handle=    $hltHostPort
                 action=         release
                 ip_version=     6]

The return values for the examples above:

{status 1}

emulation dhcp stats

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

Purpose:
Returns statistics about the DHCP or DHCPv6/PD subscriber group activity on the specified port. Statistics include the connection status and number and type of messages sent and received from the specified port.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation dhcp stats
        port_handle= <dhcpPort_handle_list|all>
        handle= <dhcpGroup_handle_list|all>
        action= {clear|collect}
        mode= {aggregate|session|detailed_session}
        ip_version= {4|6}

Arguments:

action
                Defines the action to take. Possible values are::


                 clear
                         Resets the statistics for the specified port/subscriber
                         group to 0. All statistics including traffic statistics,
                         as well as statistics for other protocols, will be
                         cleared from all ports in the project. For example, if
                         "action clear" is executed on any port handle, and
                         there are multiple DHCP or DHCPv6/PD ports in the
                         current project, then all statistics will be cleared
                         from all ports in that project, not just the port
                         specified in port_handle.

                  collect
                         Retrieves statistics. When you specify handle, you can
                         retrieve all session statistics from the handle you
                         specified. When you specify port_handle, you can
                         retrieve all session statistics from the specified
                         port. This is the default.

handle
                Specifies the groups whose statistics to return. This value is
                returned by the ``emulation dhcp group config`` function. You
                must specify either handle or -port_handle, but not both.

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

                Specifies the kind of information you want to see. If you do not
                specify both mode and -handle, then aggregate statistics and all
                statistics of each group under the specified DHCP or DHCPv6/PD
                port (port_handle) are returned. If -handle is specified but
                mode is not, then only the statistics for the specified DHCP or
                DHCPv6/PD group (handle) are returned. Possible values are::


                 aggregate
                        Returns transmitted and received statistics for the
                        specified DHCP port.

                 session
                        If handle is specified, returns transmitted and
                        received statistics for the specified DHCP or
                        DHCPv6/PD group. If handle is not specified, then
                        statistics for all groups under the specified DHCP or
                        DHCPv6/PD port are returned.

                 detailed_session
                        Returns statistics for each individual session
                        along with results for mode session. This mode is
                        recommended for non-`scaling` test scenarios.

port_handle
                Specifies the port upon which emulation is configured. This value
                is returned by the ``emulation dhcp config`` function.

ip_version
                Defines the IP version to be used. Possible values are 4 and 6. The
                default is 4.
Return Values:

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

status         Success (1) or failure (0) of the operation.
log            An error message (if the operation failed).

Following is a keyed list showing the types of keys returned when you specify mode aggregate:

## DHCP for IPv4 ##

aggregate.ack_rx_count
aggregate.attempted_rate
aggregate.average_setup_time
aggregate.bind_rate
aggregate.bound_renewed
aggregate.currently_attempting
aggregate.currently_bound
aggregate.currently_idle
aggregate.discover_tx_count
aggregate.elapsed_time
aggregate.maximum_setup_time
aggregate.minimum_setup_time
aggregate.nak_rx_count
aggregate.offer_rx_count
aggregate.release_tx_count
aggregate.request_tx_count
aggregate.success_percentage
aggregate.total_attempted
aggregate.total_bound
aggregate.total_failed
aggregate.total_retried

## DHCP for IPv6 ##

ipv6.aggregate.setup_success_rate
ipv6.aggregate.currently_attempting
ipv6.aggregate.currently_bound
ipv6.aggregate.currently_idle
ipv6.aggregate.adv_rx_count
ipv6.aggregate.avg_setup_time
ipv6.aggregate.reply_rx_count
ipv6.aggregate.setup_initiated
ipv6.aggregate.setup_success
ipv6.aggregate.setup_fail
ipv6.aggregate.release_tx_count
ipv6.aggregate.request_tx_count
ipv6.aggregate.info_request_tx_count
ipv6.aggregate.solicits_tx_count
# Following statistics are Spirent Extension keys (for Spirent HLTAPI only).
ipv6.aggregate.attempt_rate
ipv6.aggregate.avg_rebind_repl_time
ipv6.aggregate.avg_release_repl_time
ipv6.aggregate.avg_renew_repl_time
ipv6.aggregate.avg_request_repl_time
ipv6.aggregate.avg_soli_adv_time
ipv6.aggregate.avg_soli_repl_time
ipv6.aggregate.elapsed_time
ipv6.aggregate.max_rebind_repl_time
ipv6.aggregate.max_release_repl_time
ipv6.aggregate.max_renew_repl_time
ipv6.aggregate.max_request_repl_time
ipv6.aggregate.max_soli_adv_time
ipv6.aggregate.max_soli_repl_time
ipv6.aggregate.min_rebind_repl_time
ipv6.aggregate.min_release_repl_time
ipv6.aggregate.min_renew_repl_time
ipv6.aggregate.min_request_repl_time
ipv6.aggregate.min_soli_adv_time
ipv6.aggregate.min_soli_repl_time
ipv6.aggregate.prefix_count
ipv6.aggregate.rebind_rate
ipv6.aggregate.release_rate
ipv6.aggregate.renew_rate
ipv6.aggregate.rx_reconfigure_count
ipv6.aggregate.rx_relay_reply_count
ipv6.aggregate.total_declined_count
ipv6.aggregate.total_rebound_count
ipv6.aggregate.total_released_count
ipv6.aggregate.total_released_retried_count
ipv6.aggregate.total_renewed_count
ipv6.aggregate.total_renewed_retried_count
ipv6.aggregate.total_retried_count
ipv6.aggregate.tx_confirm_count
ipv6.aggregate.tx_decline_count
ipv6.aggregate.tx_info_request_count
ipv6.aggregate.tx_rebind_count
ipv6.aggregate.tx_relay_forward_count
ipv6.aggregate.tx_renew_count
Note: Currently, the following mode aggregate stats are not supported by

Spirent HLTAPI:

ipv6.aggregate.addr_discovered
ipv6.aggregate.adv_ignored
ipv6.aggregate.enabled_interfaces
ipv6.aggregate.teardown_failed
ipv6.aggregate.teardown_initiated
ipv6.aggregate.teardown_success

Following is a keyed list showing the Subscriber Group statistics returned when you specify mode session:

For IPv4
group.<dhcpGroup_handle>.ack_rx_count
group.<dhcpGroup_handle>.attempt_rate
group.<dhcpGroup_handle>.bind_rate
group.<dhcpGroup_handle>.bound_renewed
group.<dhcpGroup_handle>.currently_attempting
group.<dhcpGroup_handle>.currently_bound
group.<dhcpGroup_handle>.currently_idle
group.<dhcpGroup_handle>.decline_tx_count
group.<dhcpGroup_handle>.discover_tx_count
group.<dhcpGroup_handle>.elapsed_time
group.<dhcpGroup_handle>.inform_tx_count
group.<dhcpGroup_handle>.nak_rx_count
group.<dhcpGroup_handle>.offer_rx_count
group.<dhcpGroup_handle>.release_tx_count
group.<dhcpGroup_handle>.request_tx_count
group.<dhcpGroup_handle>.total_attempted
group.<dhcpGroup_handle>.total_bound
group.<dhcpGroup_handle>.total_failed
group.<dhcpGroup_handle>.total_retried
Note:
  1. 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
    
  2. Currently the following stats are not supported by Spirent HLTAPI:

    ipv6.group.<dhcpGroup_handle>.addr_discovered
    ipv6.group.<dhcpGroup_handle>.adv_ignored
    ipv6.group.<dhcpGroup_handle>.enabled_interfaces
    ipv6.group.<dhcpGroup_handle>.teardown_failed
    ipv6.group.<dhcpGroup_handle>.teardown_initiated
    ipv6.group.<dhcpGroup_handle>.teardown_success
    

Following is a keyed list showing the Subscriber Group statistics returned when you specify mode session:

*** Detailed session statistics for DHCPv4***
group.<dhcpGroup_handle>.<session index>.discover_resp_time
group.<dhcpGroup_handle>.<session index>.error_status
group.<dhcpGroup_handle>.<session index>.ipv4_addr
group.<dhcpGroup_handle>.<session index>.lease_left
group.<dhcpGroup_handle>.<session index>.lease_rx
group.<dhcpGroup_handle>.<session index>.mac_addr
group.<dhcpGroup_handle>.<session index>.request_rate
group.<dhcpGroup_handle>.<session index>.request_resp_time
group.<dhcpGroup_handle>.<session index>.session_state
group.<dhcpGroup_handle>.<session index>.vci
group.<dhcpGroup_handle>.<session index>.vlan_id
group.<dhcpGroup_handle>.<session index>.vpi

*** Detailed session statistics for DHCPv6***
group.<dhcpv6Group_handle>.<session index>.dhcpv6_ipv6_addr
group.<dhcpv6Group_handle>.<session index>.dhcpv6_lease_left
group.<dhcpv6Group_handle>.<session index>.dhcpv6_lease_rx
group.<dhcpv6Group_handle>.<session index>.dhcpv6_prefix_length
group.<dhcpv6Group_handle>.<session index>.dhcpv6_session_state
group.<dhcpv6Group_handle>.<session index>.dhcpv6_status_code
group.<dhcpv6Group_handle>.<session index>.dhcpv6_status_string
group.<dhcpv6Group_handle>.<session index>.ipv6_addr
group.<dhcpv6Group_handle>.<session index>.lease_left
group.<dhcpv6Group_handle>.<session index>.lease_rx
group.<dhcpv6Group_handle>.<session index>.mac_addr
group.<dhcpv6Group_handle>.<session index>.pd_ipv6_addr
group.<dhcpv6Group_handle>.<session index>.pd_lease_left
group.<dhcpv6Group_handle>.<session index>.pd_lease_rx
group.<dhcpv6Group_handle>.<session index>.pd_prefix_length
group.<dhcpv6Group_handle>.<session index>.pd_session_state
group.<dhcpv6Group_handle>.<session index>.pd_status_code
group.<dhcpv6Group_handle>.<session index>.pd_status_string
group.<dhcpv6Group_handle>.<session index>.request_resp_time
group.<dhcpv6Group_handle>.<session index>.session_index
group.<dhcpv6Group_handle>.<session index>.session_state
group.<dhcpv6Group_handle>.<session index>.solicit_resp_time
group.<dhcpv6Group_handle>.<session index>.status_code
group.<dhcpv6Group_handle>.<session index>.status_string
group.<dhcpv6Group_handle>.<session index>.vlan_id
Description:
The emulation dhcp stats function retrieves a list of aggregate statistics about the DHCP or DHCPv6/PD subscriber group activity on the specified port. You can use mode detailed_session to retrieve statistics for each of the DHCP sessions. See Return Values for more details.

Examples:

DHCP for IPv4 (mode= aggregate):

emulation dhcp stats port_handle=$dhcpport1 mode 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):

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 [::emulation dhcp stats
               action= collect
               port_handle= $dhcpHandle]

Sample Output on Success:

{{aggregate {{nak_rx_count 0} {attempted_rate 244.987549} {total_bound 27}
{release_tx_count 0} {maximum_setup_time 0.867453} {currently_idle 0}
{success_percentage 200.000000} {bind_rate 186.210005} {total_failed 0}
{average_setup_time 0.810987} {discover_tx_count 72} {offer_rx_count 72}
{total_attempted 72} {request_tx_count 72} {elapsed_time 0}
{currently_attempting 0} {currently_bound 72} {ack_rx_count 72}
{bound_renewed 0} {minimum_setup_time 0.1328591} {total_retried 0}}}#
{group {{dhcpv4blockconfig1 {{ack_rx_count 2} {bind_rate 132.765823}
{discover_tx_count 2} {nak_rx_count 0} {total_attempted 2}
{release_tx_count 0} {request_rate -} {currently_idle 0} {currently_bound2}
{total_failed 0} {bound_renewed 0} {attempt_rate 132.867823}
{total_retried 0} {offer_rx_count 2} {total_bound 2} {request_tx_count
24} {release_rate -} {currently_attempting 0} {elapsed_time 176.000000}}}}}
{status 1}

Sample Input for DHCP for IPv6 (action= collect on specified port):

set returnedString [ emulation dhcp stats
                  port_handle=    $hltSourcePort
                  action=         COLLECT
                  ip_version=   6]

Sample Output on Success:

{ipv6 {{port2 {{aggregate {{state BOUND} {setup_initiated 20} {release_tx_count 0}
{adv_rx_count 20} {currently_idle 0} {reply_rx_count 20} {currently_bound 20}
{success_percent 100} {setup_success 20} {min_setup_time 6.888} {max_setup_time
63.978} {avg_setup_time 10.8092} {request_tx_count 20} {setup_fail 0}
{setup_success_rate 0.994701869696343} {currently_attempting 0} {solicits_tx_count
20}}}}} {aggregate {{state BOUND} {min_soli_repl_time 1003.686} {min_soli_adv_time
3.68} {setup_initiated 20} {renew_rate 0} {min_release_repl_time 0}
{max_soli_repl_time 1007.64} {max_soli_adv_time 57.166} {avg_soli_repl_time
1004.3929} {avg_soli_adv_time 7.0759} {release_tx_count 0} {adv_rx_count 20}
{currently_idle 0} {reply_rx_count 20} {prefix_count 20} {max_release_repl_time 0}
{avg_release_repl_time 0} {min_rebind_repl_time 0} {currently_bound 20}
{max_rebind_repl_time 0} {avg_rebind_repl_time 0} {setup_success 20}
{min_request_repl_time 3.208} {min_renew_repl_time 0} {elapsed_time 21.107612}
{request_tx_count 20} {setup_fail 0} {setup_success_rate 0.994701869696343}
{currently_attempting 0} {solicits_tx_count 20} {max_request_repl_time 6.812}
{max_renew_repl_time 0} {avg_request_repl_time 3.7333} {avg_renew_repl_time 0}
{rebind_rate 0}}}}} {status 1}

Sample Input for DHCP for IPv6 (mode= detailed_session on specified port):

set returnedString [ emulation dhcp stats
    port_handle=    $hltHostPort
    action=         collect
    mode=           detailed_session
    ip_version=     6]

On Success:

{ipv6 {{aggregate {{state REQUEST} {release_tx_count 0} {avg_soli_repl_time
501.1895} {max_soli_adv_time 3.73} {reply_rx_count 1} {max_rebind_repl_time 0}
{currently_attempting 1} {request_tx_count 1} {setup_initiated 2} {renew_rate 0}
{currently_idle 2} {max_release_repl_time 0} {setup_fail 0} {elapsed_time
2.004661} {avg_renew_repl_time 0} {max_request_repl_time 1.553}
{min_soli_adv_time 3.73} {adv_rx_count 1} {avg_soli_adv_time 1.865}
{max_soli_repl_time 1002.379} {avg_rebind_repl_time 0} {setup_success_rate
0.99762664620867} {min_soli_repl_time 1002.379} {min_release_repl_time 0}
{avg_release_repl_time 0} {prefix_count 1} {currently_bound 1}
{min_rebind_repl_time 0} {setup_success 1} {min_renew_repl_time 0}
{min_request_repl_time 1.553} {solicits_tx_count 7} {avg_request_repl_time 1.553}
{max_renew_repl_time 0} {rebind_rate 0}}} {dhcpv6blockconfig1 {{1
{{request_resp_time 0.001553} {mac_addr 00.00.10.95.11.15} {lease_left
2591965.248237} {vlan_id {}} {pd_lease_left 0} {pd_status_code OK}
{dhcpv6_ipv6_addr 2000::1} {pd_ipv6_addr ::} {session_state BOUND}
{dhcpv6_status_string {}} {pd_prefix_length 0} {solicit_resp_time 0.00373}
{pd_session_state IDLE} {lease_rx 2592000} {ipv6_addr 2000::1} {status_string {}}
{status_code OK} {session_index 0} {pd_status_string {}} {pd_lease_rx 0}
{dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx 2592000}
{dhcpv6_lease_left 2591965.248237} {dhcpv6_session_state BOUND}}} {2
{{request_resp_time 0} {mac_addr 00.00.10.95.11.16} {lease_left 0} {vlan_id {}}
{pd_lease_left 0} {pd_status_code OK} {dhcpv6_ipv6_addr ::} {pd_ipv6_addr ::}
{session_state SOLICITING} {dhcpv6_status_string {}} {pd_prefix_length 0}
{solicit_resp_time 0} {pd_session_state IDLE} {lease_rx 0} {ipv6_addr ::}
{status_string {}} {status_code OK} {session_index 1} {pd_status_string {}}
{pd_lease_rx 0} {dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx
0} {dhcpv6_lease_left 0} {dhcpv6_session_state SOLICITING}}} {3
{{request_resp_time 0} {mac_addr 00.00.10.95.11.17} {lease_left 0} {vlan_id {}}
{pd_lease_left 0} {pd_status_code OK} {dhcpv6_ipv6_addr ::} {pd_ipv6_addr ::}
{session_state IDLE} {dhcpv6_status_string {}} {pd_prefix_length 0}
{solicit_resp_time 0} {pd_session_state IDLE} {lease_rx 0} {ipv6_addr ::}
{status_string {}} {status_code OK} {session_index 2} {pd_status_string {}}
{pd_lease_rx 0} {dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx
0} {dhcpv6_lease_left 0} {dhcpv6_session_state IDLE}}} {4 {{request_resp_time 0}
{mac_addr 00.00.10.95.11.18} {lease_left 0} {vlan_id {}} {pd_lease_left 0}
{pd_status_code OK} {dhcpv6_ipv6_addr ::} {pd_ipv6_addr ::} {session_state IDLE}
{dhcpv6_status_string {}} {pd_prefix_length 0} {solicit_resp_time 0}
{pd_session_state IDLE} {lease_rx 0} {ipv6_addr ::} {status_string {}}
{status_code OK} {session_index 3} {pd_status_string {}} {pd_lease_rx 0}
{dhcpv6_status_code OK} {dhcpv6_prefix_length 0} {dhcpv6_lease_rx 0}
{dhcpv6_lease_left 0} {dhcpv6_session_state IDLE}}}}}}} {status 1}
Note: For DHCPv4, the blank statistics “-” are statistics that are not
supported in this.

End of Procedure Header