DHCP Server Functions

emulation dhcp server config

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

Purpose:

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

A DHCP or DHCPv6/PD server is an Internet host that returns configuration parameters to DHCP or DHCPv6/PD clients respectively. DHCP or DHCPv6/PD servers can dynamically assign an IP address and deliver configuration parameters to a DHCP or DHCPv6/PD client on a TCP/IP network. DHCP allows the reuse of an address that is no longer needed by the client to which it was assigned.

Synopsis:

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

   emulation dhcp server config
        mode= {create|enable|modify|activate|reset} M
        port_handle= <port_handle>
        handle= <dhcp_server_handle>|<device_handle>
        count= <1-100000>
        encapsulation= {ETHERNET_II | ETHERNET_II_VLAN | ETHERNET_II_QINQ |
               ATM_LLC_SNAP_ETHERNET_II | ATM_VC_MUX_ETHERNET_II}
        ip_version= {4|6}
        mac_addr_step= <aa:bb:cc:dd:ee:ff>
        rebinding_time_percent= <1-200>
        renewal_time_percent= <0-200>
        vlan_id= <0-4095>
        vlan_cfi= {0|1}>
        vlan_id_count= <1-4096>
        vlan_id_mode= {fixed|increment}
        vlan_id_step= <0-4095>
        vlan_user_priority= <0-7>
        vlan_outer_id= <0-4095>
        vlan_outer_cfi= {0|1}>
        vlan_outer_id_count= <1-4096>
        vlan_outer_id_mode= {fixed|increment}
        vlan_outer_id_step= <0-4095>
        vlan_outer_user_priority= <0-7>
        vlan_id_outer= <0-4095>
        vlan_id_outer_step= <1-4096>
        vlan_id_outer_count= {fixed|increment}
        vlan_id_outer_mode= <0-4095>
        assign_strategy= {gateway | circuit_id | remote_id | link_selection |
                           vpn_id | pool_by_pool | interface_id}]
        circuit_id= <circuit_id_list>
        circuit_id_count= <1-4294967295>
        decline_reserve_time= <1-600>
        dhcp_ack_options= {0|1}
        dhcp_ack_time_offset= <8 HEX chars>
        dhcp_ack_router_address= <a.b.c.d>
        dhcp_ack_time_server_address= <a.b.c.d>
        dhcp_ack_circuit_id= <8 HEX chars>
        dhcp_ack_remote_id= <8 HEX chars>
        dhcp_offer_options= {0|1}
        dhcp_offer_time_offset= <integer>
        dhcp_offer_router_address= <a.b.c.d>
        dhcp_offer_time_server_address= <a.b.c.d>
        dhcp_offer_circuit_id= <8 HEX chars>
        domain_name= <ALPHANUM>
        domain_name_server_list= <server_name_list>
        dhcp_offer_remote_id= <8 HEX chars>
        enable_custom_pool=  {true|false}
        enable_overlap_addr= {true|false}
        host_name= <host_name>
        host_addr_prefix_length=  <0-32>
        ip_address= <a.b.c.d>
        ip_step= <a.b.c.d>
        ip_prefix_step= <integer>
        ip_prefix_length= <0-32>
        ip_repeat= <integer>
        ip_gateway= <a.b.c.d>
        lease_time= <10-4294967295>
        ipaddress_pool= <a.b.c.d>
        ipaddress_count= <integer>
        ipaddress_increment= <integer>
        min_allowed_lease_time= <1-4294967295>
        offer_reserve_time= <1-600>
        local_mac= <aa:bb:cc:dd:ee:ff>
        remote_mac= <aa.bb.cc.dd.ee.ff>
        router_list= <ip_list>
        remote_id= <remote_id_list>
        remote_id_count= <1-20>
        vci= <0-65535>
        vci_count= <1-65536>
        vci_step= <0-65535>
        vpi= <0-255>
        vpi_count= <1-256>
        vpi_step= <0-255>
        vpn_id= <circuit_id_list >
        vpn_id_count= <1-4294967295>
        vpn_id_type= {nvt_ascii|rfc_2685}
        addr_pool_step_per_server= <numeric>
        addr_pool_host_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        addr_pool_addresses_per_server= <numeric>
        addr_pool_prefix_length= <0-128>
        addr_pool_start_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        add_addr_pool_preferred_lifetime= <numeric>
        add_addr_pool_valid_lifetime= <numeric>
        add_addr_pool_remote_id= <ANY>
        add_addr_pool_remote_id_count= <1-20>
        add_addr_pool_remote_id_enterprise= <numeric>
        add_addr_pool_min_iaid= <numeric>
        add_addr_pool_max_iaid= <numeric>
        add_addr_pool_interface_id= <ANY>
        add_addr_pool_interface_id_count= <1-20>
        addr_pool_custom_enable_wildcards= {true|false}
        addr_pool_custom_string_as_hex_value= {true|false}
        addr_pool_custom_include_in_message= {ADVERTISE| REPLY|RECONFIGURE|RELAY_REPL}
        addr_pool_custom_option_value= <0-255>
        addr_pool_custom_option_payload= <ALPHANUMERIC>
        add_addr_pool_step_per_server= <numeric>
        add_addr_pool_host_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        add_addr_pool_addresses_per_server= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        add_addr_pool_prefix_length= <0-128>
        add_addr_pool_start_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        add_prefix_pool_step_per_server= <numeric>
        add_prefix_pool_per_server= <numeric>
        add_prefix_pool_prefix_length= <0-128>
        add_prefix_pool_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        add_prefix_pool_start_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        add_prefix_pool_valid_lifetime= <numeric>
        add_prefix_pool_remote_id_enterprise= <numeric>
        add_prefix_pool_remote_id_count= <1-20>
        add_prefix_pool_remote_id= <ANY>
        add_prefix_pool_preferred_lifetime= <numeric>
        add_prefix_pool_interface_id= <ANY>
        add_prefix_pool_interface_id_count= <1-20>
        add_prefix_pool_min_iaid= <numeric>
        add_prefix_pool_max_iaid= <numeric>
        dhcp6_delayed_auth_key_id= <0-4294967295>
        dhcp6_delayed_auth_key_value= <ALPHANUMERIC>
        dhcp_realm= <ANY>
        gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        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>
        server_emulation_mode= {DHCPV6|DHCPV6_PD}
        enable_delayed_auth= {true|false}
        enable_reconfigure_key= {true|false}
        preferred_lifetime= <numeric>
        reconfigure_key= <ALPHANUMERIC>
        reconfigure_key_value_type= {ASCII| HEX}
        valid_lifetime= <numeric>
        prefix_pool_step_per_server= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        prefix_pool_per_server= <numeric>
        prefix_pool_prefix_length= <0-128>
        prefix_pool_step= <numeric>
        prefix_pool_start_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
        prefix_pool_custom_enable_wildcards= {true|false}
        prefix_pool_custom_string_as_hex_value= {true|false}
        prefix_pool_custom_include_in_message= {ADVERTISE| REPLY|RECONFIGURE|RELAY_REPL}
        prefix_pool_custom_option_value= <0-255>
        prefix_pool_custom_option_payload= <ALPHANUMERIC>
        server_custom_enable_wildcards= {true|false}
        server_custom_string_as_hex_value= {true|false}
        server_custom_include_in_message= {ADVERTISE| REPLY|RECONFIGURE|RELAY_REPL}
        server_custom_option_value= <0-255>
        server_custom_option_payload= <ALPHANUMERIC>
        pvc_incr_mode= {vci|vpi|both}
        qinq_incr_mode= {inner|outer|both}
        tos_value= <NUMERIC|HEX>
        expand= {true|false} S
        prefix_pool_start= <IPV6>
        addr_pool_start= <IPV6>
        prefix_pool_length= <1-128>
        ipv6_addr_pool_host_step= <IPV6>
        addr_pool_count= <1-32768>
        prefix_pool_count= <1-32768>
        addr_pool_length= <1-128>
        ipv6_prefix_pool_step= <IPV6>
        addr_pool_step= <IPV6>

Arguments:

Arguments Common for DHCPv4 and DHCPv6

 port_handle
                 Specifies the port on which to create the DHCP or DHCPv6/PD
                 server when mode is set to "create". This argument is `Mandatory`
                 only for "create" mode.

 mode
                 Specifies the action to perform on the specified port or
                 DHCP or DHCPv6/PD server handle. The modes are described below::


                  create - Creates a DHCP or DHCPv6/PD server on the port
                          specified with the port_handle argument. You must
                          specify the port_handle argument.

                  enable- Creates a DHCP or DHCPv6/PD server on the device
                          specified with the handle argument. You must specify the
                          handle argument.

                  modify - Changes the configuration for the DHCP or DHCPv6/PD
                           server identified by the handle argument. You must specify
                           the handle argument.

                  activate - Used for `scaling` scenarios.
                           1. Enables DHCPv4/DHCPv6 server devices and configures DHCPv4/DHCPv6
                              server 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 DHCPv6/PD::


                                ip_version
                                remote_id
                                interface_id
                                prefix_pool_start
                                remote_id_enterprise
                                addr_pool_start
                                valid_lifetime
                                interface_id_count
                                server_emulation_mode
                                renewal_time_percent
                                prefix_pool_length
                                ipv6_addr_pool_host_step
                                addr_pool_count
                                remote_id_count
                                rebinding_time_percent
                                preferred_lifetime
                                prefix_pool_count
                                addr_pool_length
                                ipv6_prefix_pool_step
                                addr_pool_step

                         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 - Deletes the DHCP or DHCPv6/PD server identified by the handle
                          argument. You must specify the handle argument.

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


                            local_mac
                            remote_mac
                            vlan_id
                            vlan_id_mode
                            vlan_id_step
                            vlan_id_count
                            vlan_user_priority
                            vlan_ethertype
                            ip_address
                            ip_step
                            ip_prefix_step
                            ip_prefix_length
                            ip_repeat
                            ip_gateway
                            ipv6_gateway
                            vlan_outer_id
                            vlan_outer_id_mode
                            vlan_outer_id_step
                            vlan_outer_id_count
                            vlan_outer_user_priority
                            vlan_outer_ethertype
                            qinq_incr_mode
                            vci
                            vci_step
                            vci_count
                            vpi
                            vpi_step
                            vpi_count
                            pvc_incr_mode

 handle
                 Specifies the DHCP or DHCPv6/PD server handle when mode is set
                 to modify or reset, or specifies the device handle when mode is
                 set to enable. This argument is `Mandatory` for modes enable,
                 modify and reset. See mode.

 count
                 Specifies the number of emulated DHCP or DHCPv6/PD server
                 devices. Possible values range from 1 to 100000. The default
                 value is 1.

 encapsulation
                 Specifies the type of Layer 2 encapsulation. Possible values are::


                  ETHERNET_II - Specifies the Layer 2 encapsulation to be
                                 Ethernet II frame. This option is available for
                                 Ethernet cards.

                                 If you specify vlan_* parameters, Ethernet II with
                                 a single VLAN tag will be enabled.

                                 If you specify both vlan_* and vlan_outer_*
                                 parameters, Ethernet II with two VLAN tags will
                                 be enabled.

                  ETHERNET_II_VLAN - Ethernet II with a single VLAN tag

                  ETHERNET_II_QINQ - Ethernet II with two VLAN tags.

                  ATM_LLC_SNAP_ETHERNET_II - Specifies the Layer 2
                                encapsulation to Ethernet over VC Multiplexed ATM
                                which will encapsulate the Ethernet packets inside
                                AAL5 LLC_SNAP frames. This option is available
                                for ATM cards.

                  ATM_VC_MUX_ETHERNET_II - Specifies the Layer 2
                                encapsulation to Ethernet over LLC Encapsulated
                                ATM which will encapsulate the Ethernet packets
                                inside AAL5 VC_MUX frames. This option is
                                available for ATM cards.

                 Note: 1. ATM_LLC_SNAP_ETHERNET_II and ATM_VC_MUX_ETHERNET_II are
                       not available for DHCPv6.
                       2. These values are not case sensitive. User can specify either
                       upper or lower case.
                       Example: ETHERNET_II or ethernet_ii

 mac_addr_step
                 Specifies the increment to generate additional MAC addresses for
                 DHCP clients. The value must be in MAC format. The default value
                 is 00:00:00:00:00:01.

 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.

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

                 Specifies rebinding lease time (T2) as a percentage of Lease Time.
                 Possible values range from 0.0 to 200.0. The default is 87.5 for
                 DHCPv4, 80 for DHCPv6.

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

                 Specifies the percent of the lease time at which the client
                 should begin the renewal process (T1). Possible values range from
                 0 to 200. The default value is 50.

 vlan_id
                 Specifies the VLAN ID of the VLAN interface. Possible values
                 range from 0 to 4095. You can specify this argument when
                 encapsulation is set to ETHERNET_II, ETHERNET_II_VLAN,
                 ATM_LLC_SNAP_ETHERNET_II or ATM_VC_MUX_ETHERNET_II.

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

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

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

                 Specifies the number of VLAN IDs to use when generating
                 multiple VLANs. Possible values range from 1 to
                 4096. The default value is 1.

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

                 Specifies how Spirent TestCenter 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.

                 The default is increment.

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

                 The step size by which the VLAN value is incremented when
                 you set vlan_id_mode to "increment". Possible values range
                 from 0 to 4095. You must specify the step size when
                 vlan_id_count is greater than 1. The default is 1.

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

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

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

                 The outer VLAN ID of VLAN subinterface. Possible values
                 range from 0 to 4095. The default is 1. When you use
                 vlan_outer_id, you must specify vlan_id. You can specify this
                 argument when encapsulation is set to ETHERNET_II,
                 ETHERNET_II_QINQ, ATM_LLC_SNAP_ETHERNET_II or
                 ATM_VC_MUX_ETHERNET_II. You can specify this argument only
                 when ip_version is set to 4.

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

                 Specifies the number of outer VLAN IDs to use when generating
                 multiple outer VLANs. Possible values range from 1 to 4096.
                 The default is 1. You can specify this argument only
                 when ip_version is set to 4.

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

                 Specifies how Spirent TestCenter assigns VLAN tags to
                 packets in the specified outer header when the router count
                 is greater than 1. You can specify this argument only
                 when ip_version is set to 4. Possible values are::


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

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

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

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

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

                 The amount by which to increment the specified outer VLAN ID
                 (vlan_outer_id) for subsequent packets. Possible values
                 range from 1 to 4094. You must specify this step when
                 you specify increment for the vlan_outer_id_mode argument.
                 You can specify this argument only when ip_version is set to 4.

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

                 Specifies the VLAN priority to assign to the outer header.
                 Possible values range from 0 to 7. The default is 0.
 vlan_id_outer
                 `Spirent Extension (for Spirent HLTAPI only).`

                 The outer VLAN ID of VLAN subinterface. Possible values
                 range from 0 to 4095. The default is 1. When you use
                 vlan_id_outer, you must specify vlan_id. You can specify this
                 argument when encapsulation is set to ETHERNET_II,
                 ETHERNET_II_QINQ, ATM_LLC_SNAP_ETHERNET_II or
                 ATM_VC_MUX_ETHERNET_II. You can specify this argument only
                 when ip_version is set to 6.

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

                 Specifies the number of outer VLAN IDs to use when generating
                 multiple outer VLANs. Possible values range from 1 to 4096.
                 The default is 1. You can specify this argument only
                 when ip_version is set to 6.

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

                 Specifies how Spirent TestCenter assigns VLAN tags to
                 packets in the specified outer header when the router count
                 is greater than 1. You can specify this argument only
                 when ip_version is set to 6. Possible values are::


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

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

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

                 The amount by which to increment the specified outer VLAN ID
                 (vlan_id_outer) for subsequent packets. Possible values
                 range from 1 to 4094. You must specify this step when
                 you specify increment for the vlan_id_outer_mode argument.
                 You can specify this argument only when ip_version is set to 6.

DHCPv4 Specific Arguments

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

                 Specifies the strategy with which the server chooses address
                 pools to assign addresses.
                 Possible values are described below::


                  gateway        Assign addresses from those pools that
                                 have the same network as the IP address

                  circuit_id     Assign addresses from those pools that
                                 match the relay agent circuit ID option received

                  remote_id      Assign addresses from those pools that match the
                                 relay agent remote ID option received

                  link_selection  Assign addresses from those pools that match the
                                  relay agent link selection option received

                  vpn_id         Assign addresses from those pools that match the
                                 relay agent virtual subnet selection option received

                  pool_by_pool   Assign indiscriminate addresses from the default
                                 pool

                  interface_id   Assign address from those pools that match the relay
                                 agent interface ID option received. This option is
                                 available only for DHCPV6 devices.

                 Use | to combine multiple values if you want to specify more than
                 one strategy.
                 Note: Specifying pool_by_pool will disable all other options.

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

                 Specifies a list of relay agent circuit IDs to generate, so
                 the pool can assign addresses for those DHCP clients that match
                 any circuit ID in the list. This argument is available
                 when assign_strategy is set to circuit_id.

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

                 Specifies the maximum number of circuit IDs to generate. This
                 argument is available when assign_strategy is set to circuit_id.
                 Possible values range from 1 to 4294967295. The default value is 1.

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

                 Specifies the time to reserve a lease after a Decline message is
                 received, in seconds. Possible values range from 1 to 600. The
                 default value is 10.

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

                 Specifies the domain name for the server (option 15)

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

                 Specifies a list of domain name servers (option 6)


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

                 Enables or disables DHCP server custom pool. Possible values are
                 true (enable) and false (disable). If the value is true,
                 host_addr_prefix_length is available. The default value is false.

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

                 Enables/disables address reuse. Possible values are true (enable)
                 and false (disable). The default value is false.

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

                 Specifies the host address prefix length for the custom pool. Possible
                 values range from 0 to 32. The default value is 24. You must set
                 enable_custom_pool to true.

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

                 Specifies the server host name

 ip_address
                 Specifies the first IPv4 address of the emulated DHCP
                 server. The default value is 192.85.1.3.

 ip_step
                 Specifies the step value for IPv4 addresses. The default
                 increment is 0.0.0.1. You can use ip_prefix_step and
                 ip_prefix_length to replace ip_step argument. If the
                 three arguments are specified, ip_step must be equivalent
                 with the step value figured out by ip_prefix_step and
                 ip_prefix_length.

 ip_prefix_step
                 Specifies the size of the step applied to the prefix length
                 bit position. You can use it with ip_prefix_length to
                 increase the IPv4 address when you are not also using
                 ip_step. You must set ip_prefix_length if you use
                 ip_prefix_step.

 ip_prefix_length
                 Specifies the IPv4 address prefix length. The prefix length
                 is the bit position at which the ip_prefix_step is applied.
                 This argument is `Mandatory` when you use ip_prefix_step.
                 Possible values range from 0 to 32. The default value is 24.

 ip_repeat
                 Specifies the number of times to repeat the same IPv4
                 address before incrementing. The default value is 1.

 ip_gateway
                 Specifies the IPv4 gateway address of the emulated DHCP
                 server. The default value is 192.85.1.1.

 lease_time
                 Specifies a finite time period, in seconds, to use the
                 IP address offered by the DHCP server. The actual lease
                 length that the DHCP sessions will receive depends on the
                 lease time configured by the DHCP server. For example, if the
                 DHCP server 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 4294967295. The default value is 3600.

 ipaddress_pool
                 Specifies the first IPv4 address in the DHCP server address
                 pool. An address pool is a set of addresses assigned by
                 Internet Assigned Numbers Authority (IANA) or an
                 associated organization.

 ipaddress_count
                 Specifies the number of IPv4 addresses in the DHCP server
                 address pool. The default value is 65536.

 ipaddress_increment
                 Specifies the number by which to increase each IPv4 address in the
                 DHCP server address pool. The default value is 1.


 dhcp_ack_options
                 Enable or disable the DHCP ACK (Acknowledge) options of the
                 emulated DHCP server. DHCP Options are tagged data items
                 that carry the configuration parameters and other control
                 information. The data items are stored in the "options" field
                 of the DHCP messages. DHCP ACK options are tagged data
                 items stored in the "options" field of the DHCP ACK
                 messages. DHCP ACK messages are sent by a selected
                 DHCP server to acknowledge the client DHCP REQUEST
                 messages. Possible values are 0 and 1. The default value is
                 0 (disabled). If enabled, you can specify DHCP ACK options
                 which will be encapsulated in the DHCP ACK message sent to
                 the client by the DHCP server.

 dhcp_ack_time_offset
                 Specifies DHCP ACK Option time offset (Option 2) in seconds.
                 Its value can be positive or negative. The default value is
                 0. You can use dhcp_ack_time_offset when
                 dhcp_ack_options is enabled.

 dhcp_ack_router_address
                 Specifies the DHCP ACK option router option (Option 3) IPv4
                 address. You can specify multiple IPv4 addresses. The
                 default value is 0.0.0.0. You can use this argument
                 when dhcp_ack_options is enabled.

 dhcp_ack_time_server_address
                 Specifies the DHCP ACK option timer server address (Option
                 4). You can specify multiple IPv4 addresses. The default
                 value is 0.0.0.0. You can use this argument
                 when dhcp_ack_options is enabled.

 dhcp_ack_circuit_id
                 Specifies the circuit ID suboption (suboption 1) of the
                 and is eight HEX characters. You can use this argument
                 when dhcp_ack_options is enabled.

 dhcp_ack_remote_id
                 Specifies the remote ID suboption (suboption 2) of the DHCP
                 ACK Option relay agent (Option 82). The length is fixed and
                 is eight HEX characters. You must set dhcp_ack_options to 1
                 when using dhcp_ack_remote_id.

 dhcp_offer_options
                 Enables or disables the DHCP OFFER Options of the emulated DHCP
                 server. DHCP OFFER messages are sent by each DHCP
                 server that receives the client DHCP DISCOVER packet to
                 respond the DHCP DISCOVER packet.  Possible values
                 are 0 and 1. The default value is 0(disabled). If enabled,
                 you can specify DHCP OFFER options which will be
                 encapsulated in the DHCP OFFER message
                 sent to the client by the DHCP server.

 dhcp_offer_time_offset
                 Specifies DHCP OFFER option time offset (Option 2) in
                 seconds. Its value can be positive or negative. The default
                 value is 0. You must set dhcp_offer_options to 1 when
                 using dhcp_offer_time_offset.

 dhcp_offer_router_address
                 Specifies DHCP OFFER option router option (Option 3) IPv4
                 address. You can specify multiple IPv4 addresses.
                 The default value is 0.0.0.0. You must set
                 dhcp_offer_options to 1 when using
                 dhcp_offer_router_adddress.

 dhcp_offer_time_server_address
                 Specifies DHCP OFFER Option timer server address(Option 4).
                 You can specify multiple IPv4 addresses. The default
                 value is 0.0.0.0. You must set dhcp_offer_options to 1
                 when using dhcp_offer_time_server_address.

 dhcp_offer_circuit_id
                 Specifies the circuit ID suboption (suboption 1) of DHCP
                 OFFER option relay agent (Option 82). The length is fixed and
                 is eight HEX characters. You must set dhcp_offer_options to
                 1 when using dhcp_offer_circuit_id.

 dhcp_offer_remote_id
                 Specifies the remote ID suboption (suboption 2) of DHCP
                 OFFER option relay agent (Option 82). The length is fixed and
                 is eight HEX characters. You must set dhcp_offer_options to
                 1 when using dhcp_offer_remote_id.

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

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


                  vci - Increments the Virtual Circuit Identifier (VCI) before the
                        Virtual Path Identifier (VPI).

                  vpi - Increments the VPI before the VCI.

                  both - Increments both the VPI and VCI at the same time.

                 You can specify this argument when encapsulation is
                 set to ATM_LLC_SNAP_ETHERNETII or ATM_VC_MUX_ETHERNETII.


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

                 Specifies the minimum lease time the server allows the client to
                 request, in seconds. Possible values range from 1 to 4294967295.
                 The default value is 10.

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

                 Specifies the time to reserve a lease after an Offer message is
                 sent, in seconds. Possible values range from 1 to 600. The
                 default value is 10.

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

                 Specifies a list of router IP addresses on the client subnet
                 (option 3)

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

                 Specifies a list of relay agent remote IDs to generate, so
                 the pool can assign addresses for those DHCP clients that match
                 any remote ID in the list. This argument is available when
                 assign_strategy is set to remote_id.

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

                 Specifies the maximum number of remote IDs to generate. This
                 argument is available when assign_strategy is set to remote_id.
                 Possible values range from 1 to 20. The default value is 1.

 local_mac
                 Specifies the first MAC address of the emulated DHCP server

 remote_mac
                 Specifies the MAC address of the remote peer (DUT).

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

                 Specifies the IPv4 ToS value as an indication of the quality of
                 service wanted. The value must be numerical or hexadecimal. The
                 default value is 192.

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

                 Specifies the VCI of the first ATM PVC pool.
                 Possible values range from 0 to 65535. The default is 100.
                 You can specify this argument when encapsulation is
                 set to ATM_LLC_SNAP_ETHERNETII or
                 ATM_VC_MUX_ETHERNETII.

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

                 Specifies the number of 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. You can specify
                 this argument when encapsulation is set to
                 ATM_LLC_SNAP_ETHERNETII or
                 ATM_VC_MUX_ETHERNETII.

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

                 Specifies the step size in which the VCI value is incremented.
                 Possible values range from 0 to 65535. The default is 1.
                 You can specify this argument when encapsulation is
                 set to ATM_LLC_SNAP_ETHERNETII or
                 ATM_VC_MUX_ETHERNETII.

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

                 Specifies the VPI of the first ATM PVC pool (for an ATM
                 connection). Possible values range from 0 to 255. The default is 100.
                 You can specify this argument when encapsulation is
                 set to ATM_LLC_SNAP_ETHERNETII or
                 ATM_VC_MUX_ETHERNETII.

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

                 Specifies the number of 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. You can specify this
                 argument when encapsulation is set to
                 ATM_LLC_SNAP_ETHERNETII or
                 ATM_VC_MUX_ETHERNETII.

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

                 Specifies the step size in which the VPI value is incremented.
                 Possible values range from 0 to 255. The default is 1. You can
                 specify this argument when encapsulation is
                 set to ATM_LLC_SNAP_ETHERNETII or
                 ATM_VC_MUX_ETHERNETII.

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

                 Specifies a list of relay agent VPN IDs to generate, so the
                 pool can assign addresses for those DHCP clients that match any
                 VPN ID in the list. This argument is available when
                 assign_strategy is set to vpn_id.

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

                 Specifies the maximum number of VPN IDs to generate.
                 This argument is available when set assign_strategy is set to
                 vpn_id. Possible values range from 1 to 4294967295. The default
                 value is 1.

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

                 Specifies the VPN ID type. This argument is available when
                 assign_strategy is set to vpn_id.
                 Possible values are::

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

                 The default value is nvt_ascii.

DHCPv6/PD Specific Arguments (You must specify ip_version 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 value is
                 2001::1. This argument is available when dhcp_range_ip_type is
                 set to ipv6.

 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 available when dhcp_range_ip_type is
                 set to ipv6.

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

                 Specifies the starting IPv6 address of the emulated dhcpv6
                 devices. The default value is 2001::2. This argument is
                 available when dhcp_range_ip_type is set to ipv6.

 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 value is 0::1. This argument is available when
                 dhcp_range_ip_type is set to ipv6.

 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 value is 64. This argument is
                 available when dhcp_range_ip_type is set to ipv6.

 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 enable_delayed_auth
                 is set to true.

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

                 Defines the server emulation mode. Possible values are DHCPV6
                 and DHCPV6_PD. The default is DHCPV6_PD.

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

                 Enables or disables delayed authentication for the Authentication
                 option in the IPv6 message. Possible values are true (enable) and
                 false (disable). The default is false.

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

                 Enables or disables Reconfigure key authentication. Possible
                 values are true (enable) and false (disable). The default is
                 false.

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

                 Preferred lifetime in seconds for the IPv6 addresses. The default
                 value is 604800.

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

                 Specifies the key used for Reconfigure key authentication. The
                 value is alphanumeric. The default value is spirentcom123456.

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

                 Defines the Reconfigure key value type. Possible values are
                 ASCII and HEX. The default is ASCII.

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

                 Specifies the lease time for the IPv6 addresses, in seconds.
                 The default value is 2592000.

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

                 Specifies the step value for the IPv6 addresse pool per
                 server. The default value is 1. This argument is available when
                 emulation_mode is set to DHCPV6.

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

                 Specifies the host addresses' step in the IPv6 address pool. The
                 value must be in IPv6 format. The default is ::1. This argument
                 is available when emulation_mode is set to DHCPV6.

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

                 Specifies the number of addresses in the pool. The default value
                 is 1. This argument is available when emulation_mode is set to
                 DHCPv6.

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

                 Specifies the IPv6 address prefix length. Possible values range
                 from 0 to 128. The default value is 64. This argument is
                 available when emulation_mode is set to DHCPV6.

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

                 Specifies the starting address in the pool. The value must be in
                 IPv6 format. The default value is 2000::1. This argument is
                 available when emulation_mode is set to DHCPV6.

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

                 Specifies a list of Booleans to enable or disable wildcard
                 expansion in the Option Payload field in address pool custom
                 options. The length of the list must be same as the other address
                 pool custom option attributes. Possible values are true (enable)
                 and false (disable). The default is false.

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

                 Specifies a list of Booleans to enable or disable value as
                 hexadecimal in the address pool custom option. The length of the
                 list must be same as that of lists
                 addr_pool_custom_enable_wildcards,
                 addr_pool_custom_include_in_message,
                 addr_pool_custom_option_value and
                 addr_pool_custom_option_payload. Possible values are true
                 (enable) and false (disable). The default is false.

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

                 Specifies a list of types of DHCPv6 messages that will include
                 the address pool custom option. The length of the list must
                 be same as that of lists addr_pool_custom_enable_wildcards,
                 addr_pool_custom_string_as_hex_value,
                 addr_pool_custom_option_value and
                 addr_pool_custom_option_payload. Possible values are ADVERTISE,
                 REPLY, RECONFIGURE and RELAY_REPL. The default is the combined
                 values of ADVERTISE and Reply.

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

                 Specifies a list of Option identifiers in the address pool custom
                 option. The length of the list must be same as that of lists
                 addr_pool_custom_option_enable_wildcards,
                 addr_pool_custom_include_in_message,
                 addr_pool_custom_option_option_payload, and
                 addr_pool_custom_option_string_as_hex_value. Possible values
                 range from 0 to 255. The default value is 0.

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

                 Specifies a list of the Option payload strings in the address pool
                 custom option. The length of the list must be same as that of
                 lists addr_pool_custom_option_enable_wildcards,
                 addr_pool_custom_option_msg_type,
                 addr_pool_custom_include_in_message and
                 addr_pool_custom_option_string_as_hex_value. The value is
                 alphanumeric.

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

                 Specifies the additional step value for the IPv6 addresse pool
                 per server. The default value is 1. This argument is available
                 when emulation_mode is set to DHCPV6.

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

                 Specifies the additional host addresses' step in the IPv6 address
                 pool. The value must be in IPv6 format. The default is ::1. This
                 argument is available when emulation_mode is set to DHCPV6.

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

                 Specifies the additional number of addresses in the pool. The
                 default value is 1. This argument is available when
                 emulation_mode is set to DHCPV6.

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

                 Specifies the additional IPv6 address prefix length. Possible
                 values range from 0 to 128. The default value is 64. This
                 argument is available when
                 emulation_mode is set to DHCPV6.

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

                 Specifies the additional starting address in the pool. The value
                 must be in IPv6 format. The default value is 2000::1. This
                 argument is available when emulation_mode is set to DHCPV6.

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

                 Specifies the preferred lifetime in seconds for the addresses.
                 The default value is 604800. This argument is
                 available when emulation_mode is set to DHCPV6.

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

                 Specifies the valid lifetime in seconds for the addresses.
                 The default value is 2592000. This argument is
                 available when emulation_mode is set to DHCPV6.

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

                 Specifies the remote id for the address pool.
                 The default value is remoteId_@p-@b-@s. This argument is
                 available when emulation_mode is set to DHCPV6 and -assign_strategy
                 is set to REMOTE_ID.

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

                 Specifies the maximum remote id count that can be generated.
                 The default value is 1. This argument is
                 available when emulation_mode is set to DHCPV6 and -assign_strategy
                 is set to REMOTE_ID.

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

                 Specifies the vendor’s registered enterprise number in remote id option.
                 The default value is 3456. This argument is
                 available when emulation_mode is set to DHCPV6 and -assign_strategy
                 is set to REMOTE_ID.

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

                 Generate a list of interface ID so that this pool can assign addresses
                 for those DHCPv6 clients that match any of the interface ID in the list.
                 The default value is interfaceId_@p. This argument is
                 available when emulation_mode is set to DHCPV6 and -assign_strategy
                 is set to INTERFACE_ID.

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

                 Specifies the maximum interface id count that can be generated.
                 The default value is 1. This argument is
                 available when emulation_mode is set to DHCPV6 and -assign_strategy
                 is set to INTERFACE_ID.

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

                 Specifies the minimum identifier for an Identity Association (IA) to
                 accept in the pool. The default value is 0. This argument is
                 available when emulation_mode is set to DHCPV6.

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

                 Specifies the maximum identifier for an IA to accept in the pool.
                 The default value is 4294967295. This argument is
                 available when emulation_mode is set to DHCPV6.

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

                 Specifies the increment value for the next client IPv6 address in
                 the pool. The value must be in IPv6 format. The default value is
                 0:0:0:1::.

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

                 Specifies the number of prefix pools per server. The default
                 value is 1.

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

                 Specifies the prefix length for the IPv6 clients. Possible values
                 range from 0 to 128. The default value is 64.

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

                 Specifies the increment value for the next client address in the
                 server. The default value is 1.

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

                 Starting network address assigned to clients. The default value
                 is 2000::1.

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

                 Specifies a list of Booleans to enable or disable wildcard
                 expansion in the prefix custom option. The length of the list
                 must be same as that of
                 prefix_pool_custom_option_string_as_hex_value,
                 prefix_pool_custom_include_in_messag,
                 prefix_pool_custom_option_value, and
                 prefix_pool_custom_option_payload Possible values are true
                 (enable) and false (disable). The default is false.

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

                 Specifies a list of Booleans to enable or disable value as
                 hexadecimal in the prefix custom option. The length of the list
                 must be same as that of
                 prefix_pool_custom_option_enable_wildcards,
                 prefix_pool_custom_include_in_messag,
                 prefix_pool__custom_option_value, and
                 prefix_pool_custom_option_payload. Possible values are true
                 (enable) and false (disable). The default is false.

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

                 Specifies a list of types of DHCPv6 messages that will include
                 the prefix pool custom option. The length of the list must be
                 same as that of prefix_pool_custom_option_enable_wildcards
                 prefix_pool_custom_option_string_as_hex_value,
                 prefix_pool__custom_option_value, and
                 prefix_pool_custom_option_payload. Possible values are
                 ADVERTISE, REPLY, RECONFIGURE and RELAY_REPL. The default is a
                 combined value of ADVERTISE and REPLY.

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

                 Specifies a list of option identifiers in the prefix custom option.
                 The length of the list must be same as that of lists
                 prefix_pool_custom_option_enable_wildcards,
                 prefix_pool_custom_option_msg_type,
                 prefix_pool_custom_option_option_payload, and
                 prefix_pool_custom_option_string_as_hex_value. Possible values
                 range from 0 to 255. The default value is 0.

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

                 Specifies a list of Option Payload strings in the prefix pool custom
                 option. The length of the list must be same as that of lists
                 prefix_pool_custom_option_enable_wildcards,
                 prefix_pool_custom_option_msg_type,
                 prefix_pool_custom_include_in_message, and
                 prefix_pool_custom_option_string_as_hex_value.

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

                 Specifies the additional increment value for the next client IPv6
                 address in the server. The default value is 1. This argument is
                 available when emulation_mode is set to DHCPV6.

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

                 Specifies the additional number of prefix pools per server. The
                 default value is 1. This argument is available when
                 emulation_mode is set to DHCPV6.

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

                 Specifies the additional prefix length for the IPv6 clients.
                 Possible values range from 0 to 128. The default value is 64.
                 This argument is available when emulation_mode is set to DHCPV6.

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

                 Specifies the additional increment value for the next client
                 address in the pool. The default value is 0:0:0:1::. This
                 argument is available when emulation_mode is set to DHCPV6.

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

                 Starting network address assigned to clients. The default value
                 is 2000::1. This argument is available when emulation_mode is
                 set to DHCPV6.

 add_prefix_pool_valid_lifetime
                 Specifies the length of time that an address remains in the
                 valid state, during which the address can be used for new or
                 existing communications. The validlifetime must be greater
                 than the preferredlifetime. This argument is available when
                 emulation_mode is set to DHCPv6/PD.
                 Possible values range from 0 to 4294967295.
                 The default value is 2592000.

 add_prefix_pool_remote_id_enterprise
                 Specifies the value of the enterprise number for the relay remote ID.
                 Possible values range from 1 to 4294967295. The default value is 3456.
                 This argument is available when emulation_mode is set to DHCPv6/PD
                 and assign_strategy is set to REMOTE_ID.

 add_prefix_pool_remote_id_count
                 Specifies the maximum remote ID count that can be generated.
                 Possible values range from 1 to 20. The default value is 1.
                 This argument is available when emulation_mode is set to DHCPv6/PD
                 and assign_strategy is set to REMOTE_ID.

 add_prefix_pool_remote_id
                 Specifies the remote ID for the prefix pool. The default value is
                 remoteId_@p-@b-@s. This argument is available when emulation_mode
                 is set to DHCPv6/PD and assign_strategy is set to REMOTE_ID.

 add_prefix_pool_preferred_lifetime
                 Specifies the length of time that a valid address is in the
                 preferred state and can be used without any restrictions.
                 The validlifetime must be greater than the preferredlifetime.
                 This argument is available when emulation_mode is set to DHCPv6/PD.
                 Possible values range from 0 to 4294967295.
                 The default value is 604800.

 add_prefix_pool_interface_id
                 Generate a list of interface ID so that this pool can assign addresses
                 for those DHCPv6 clients that match any of the interface ID in the list.
                 The default value is interfaceId_@p. This argument is available when
                 emulation_mode is set to DHCPv6/PD and -assign_strategy is set to INTERFACE_ID.

 add_prefix_pool_interface_id_count
                 Specifies the maximum interface ID count that can be generated.
                 Possible values range from 1 to 20. The default value is 1.
                 This argument is available when emulation_mode is set to
                 DHCPv6/PD and assign_strategy is set to INTERFACE_ID.

 add_prefix_pool_min_iaid
                 Specifies the minimum identifier for an Identity Association (IA) to
                 accept in the pool. This argument is available when emulation_mode
                 is set to DHCPv6/PD. Possible values range from 0 to 4294967295.
                 The default value is 0.

 add_prefix_pool_max_iaid
                 Starting network address assigned to clients. The default value
                 is 2000::1. This argument is available when emulation_mode
                 is set to DHCPv6/PD. Possible values range from 0 to 4294967295.
                 The default value is 0.

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

                 Specifies the list of Key identifiers used to generate the
                 HMACMD5 values. The length of the list must be same as the
                 dhcp6_delayed_auth_key_value. Possible values range from 0 to
                 4294967295. The default is 1. This argument is available when
                 enable_auth is set to true and -auth_protocol is set to
                 DELAYED_AUTH.

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

                 Specifies a list of keys used to generate the HMACMD5 value.
                 The length of the list must be same as the
                 dhcp6_delayed_auth_key_id. This value is alphanumeric.
                 The default value is spirent123. This argument is available when
                 enable_auth is set to true and -auth_protocol is set to
                 DELAYED_AUTH.

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

                 Specifies the increment mode for ethernet_ii_qinq encapsulation.
                 This parameter only applies to Qin-Q Ethernet interfaces.
                 Possible values are inner, outer, and both. The default is
                 inner. The value of count must be divisible by the values of
                 vlan_id_count and vlan_outer_id_count.
                 The modes 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.

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

                 Specifies a list of Booleans to enable or disable wildcard
                 expansion for the DHCPv6 server custom option. The length
                 of the list must be same as that of
                 server_custom_string_as_hex_value,
                 server_custom_include_in_message, server_custom_option_value.
                 server custom option attributes and server_custom_option_value.
                 Possible values are (enable) true and false (disable). The
                 default is false.

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

                 Specifies a list of Booleans to enable or disable value as
                 hexadecimal in the DHCPv6 server custom option. The length of
                 the list must be same as that of server_custom_enable_wildcards,
                 server_custom_include_in_message, server_custom_option_value,
                 and server_custom_option_payload. Possible values are true
                 (enable) and false (disable). The default is false.

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

                 Specifies a list of types of DHCPv6 messages that will include
                 DHCPv6 server custom option. The length of the list must be same
                 as that of lists server_custom_enable_wildcards,
                 server_custom_string_as_hex_value, server_custom_option_value
                 and server_custom_option_payload. Possible values are ADVERTISE,
                 REPLY, RECONFIGURE, and RELAY_REPL. The default is the combined
                 values of ADVERTISE and REPLY.

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

                 Specifies a list of Option identifiers for the DHCPv6 server
                 custom option. The length of the list must be same as that of
                 lists server_custom_option_enable_wildcards,
                 server_pool_custom_option_msg_type,
                 serverl_custom_option_option_payload, and
                 server_custom_option_string_as_hex_value. Possible values range
                 from 0 to 255. The default is 0.

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

                 Specifies a list of Option payload strings for the DHCPv6 server
                 custom option. The length of the list must be same as that of
                 lists server_custom_option_enable_wildcards,
                 server_pool_custom_option_msg_type,
                 server_custom_include_in_message, and
                 server_custom_option_string_as_hex_value.

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

                 Determines whether to expand the specified DHCPv4/DHCPv6 server 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 server device configurations is created.

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

 prefix_pool_start
                 Specifies thepPrefix pool starting address.
                 The default is 2000:::

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

 addr_pool_start
                 Specifies the address pool starting address.
                 The default is 2000::1
                 Applicable only in mode activate when -block_mode or -expand is specified.

 prefix_pool_length
                 Specifies the prefix pool length.
                 The default is 64
                 Applicable only in mode activate when -block_mode or -expand is specified.

 ipv6_addr_pool_host_step
                 Specifies the address pool host step.
                 The default is ::1
                 Applicable only in mode activate when -block_mode or -expand is specified.

 addr_pool_count
                 Specifies the number of addresses in the address pool.
                 The default is 200
                 Applicable only in mode activate when -block_mode or -expand is specified.

 prefix_pool_count
                 Specifies the number of prefixes in the prefix pool.
                 The default is 200
                 Applicable only in mode activate when -block_mode or -expand is specified.

 addr_pool_length
                 Specifies the address pool prefix length.
                 The default is 64
                 Applicable only in mode activate when -block_mode or -expand is specified.

 ipv6_prefix_pool_step
                 Specifies the prefix pool step.
                 The default is :::

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

 addr_pool_step
                 Specifies the address pool step per server.
                 The default is :::

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

Arguments Unsupported by Save as HLTAPI:

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


  dhcp_ack_options
  dhcp_ack_time_offset
  dhcp_ack_router_address
  dhcp_ack_time_server_address
  dhcp_ack_circuit_id
  dhcp_ack_remote_id
  dhcp_offer_options
  dhcp_offer_time_offset
  dhcp_offer_router_address
  dhcp_offer_time_server_address
  dhcp_offer_circuit_id
  dhcp_offer_remote_id
  handle
  pvc_incr_mode
  qinq_incr_mode
  vlan_id_mode
  vlan_outer_id_mode
Ciscospecific Arguments:

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

dhcp_ack_link_selection
dhcp_ack_cisco_server_id_override
dhcp_ack_server_id_override
dhcp_ignore_mac
dhcp_ignore_mac_mask
dhcp_mac_nak
dhcp_mac_nak_mask
dhcp_ack_subnet_mask
dhcp_offer_subnet_mask
dhcp_offer_link_selection
dhcp_offer_cisco_server_id_override
dhcp_offer_server_id_override
ipv6_gateway
ip_count
spfc_mac_mask_pool
spfc_mac_pattern_pool
spfc_mac_ipaddress_pool
spfc_mac_ipaddress_count
spfc_mac_ipaddress_increment
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):

handle.port_handle
       The port handle on which DHCP or DHCPv6/PD server emulation was
       configured

handle.dhcp_handle
       The handle that identifies the DDHCP or DHCPv6/PD server emulation
       created by the ``emulation dhcp server config`` function

handles
       The emulated device handles list with enabled DHCPv4/DHCPv6 server
                   configurations is created when expand is set true.

handle_list
       The emulated device handles list with enabled DHCPv4/DHCPv6 server
       configurations is created 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 server config function creates, modifies, or resets an emulated DHCP or DHCPv6/PD server. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

Use create mode to create the DHCP or DHCPv6/PD server on the specified port. The handle of the DHCP or DHCPv6/PD server host you created is returned. You can modify the DHCP or DHCPv6/PD server host using modify and reset modes.

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

In addition to specifying the port, you must also provide one or more of the following pieces of information when you create a DHCP server:

DHCP for IPv4:

  • The IPv4 address for the emulated DHCP server (the ip_address argument)
  • The IPv4 address for the DHCP server (DUT) to communicate with (the ip_gateway argument)
  • The first IPv4 address in the DHCP server address pool (the ipaddress_pool argument)

DHCPv6/PD:

  • The IPv6 address for the emulated DHCPv6/PD server (the local_ipv6_addr
    argument)
  • The IPv6 address for the DHCPv6/PD server (DUT) to communicate with (the gateway_ipv6_addr argument)
  • The first IPv6 address in the DHCPv6/PD server address pool (the addr_pool_start_addr argument or the -prefix_pool_start_addr argument respectively)

After you create a DHCP or DHCPv6/PD server, use the emulation dhcp server control mode=connect command for Spirent HLTAPI to connect the server. To reset all of the DHCP or DHCPv6/PD servers associated with a particular port, use the reset mode with the emulation dhcp server control function.

Examples:

The following example creates a DHCP server on the specified port:

emulation dhcp server config
       count= 1
       port_handle= port1
       local_mac= 00:10:94:00:00:03
       ip_address= 192.0.1.4
       ip_step= 0.0.1.0
       ip_prefix_length= 24
       ip_prefix_step= 1
       ip_repeat= 1
       ip_gateway= 192.0.1.1
       ipaddress_pool= 192.0.1.5 \
       ipaddress_increment= 2
       ipaddress_count= 30
       enable_custom_pool=  true
       host_addr_prefix_length=  18
       vlan_id= 200
       vlan_ethertype= 0x8100
       lease_time= 20
       dhcp_ack_options= 1
       dhcp_ack_time_offset= 12
       dhcp_ack_router_adddress= 10.0.0.1
       dhcp_ack_time_server_address= 20.0.0.1
       dhcp_ack_circuit_id= 12345678
       dhcp_ack_remote_id= 87654321
       dhcp_offer_options= 1
       dhcp_offer_time_offset= 25
       dhcp_offer_router_address= 10.0.0.2
       dhcp_offer_time_server_address= 20.0.0.2 \
       dhcp_offer_circuit_id= 22221111
       dhcp_offer_remote_id= 11112222

Sample output for example shown above:

{handle {{port_handle port1} {dhcp_handle host1}}} {status 1}

The following example configures a DHCP server over Ethernet over ATM on a port:

emulation dhcp server config
        mode= create
        count= 10
        encapsulation= ATM_LLC_SNAP_ETHERNET_II
        port_handle= $hltSourcePort
        local_mac= 00:10:94:00:00:03
        ip_address= 192.0.1.4
        ip_gateway= 192.0.1.1
        ipaddress_pool= 192.0.1.5
        ipaddress_increment= 2
        ipaddress_count= 30
        lease_time= 20
        vci= 100
        vci_step= 2
        vpi= 200
        vpi_step= 3
        vci_count= 3
        vpi_count= 4

Sample output for example shown above:

{handle {{port_handle port1} {dhcp_handle host1}}} {status 1}

The following example modifies the created DHCP server:

emulation dhcp server config
        mode= modify
        handle= dhcpserverHandle1
        ip_address= 192.0.1.6
        dhcp_ack_options= 1
        dhcp_ack_time_offset= 10
        dhcp_ack_circuit_id= 87654321

Sample output for example shown above:

{handle {dhcp_handle host1}}} {status 1}

The following example resets the specified DHCP server:

emulation dhcp server config
      mode= reset
      handle= dhcpserverHandle1

The following example creates a new DHCPv6 server:

emulation dhcp config
       mode=                             create
       port_handle=                      $hltHostPort
       ip_version=                          6
       server_emulation_mode=            DHCPV6_PD
       enable_delayed_auth=              false
       enable_reconfigure_key=           false
       preferred_lifetime=               604800
       rebinding_time_percent=           80.0
       reconfigure_key=                  spirentcom123456
       reconfigure_key_value_type=       ASCII
       renewal_time_percent=             50.0
       valid_lifetime=                   592000
       addr_pool_step_per_server=        1
       addr_pool_host_step=              ::1
       addr_pool_addresses_per_server=   1
       addr_pool_prefix_length=          64
       addr_pool_start_addr=             2000::1
       addr_pool_custom_enable_wildcards=      {false false}
       addr_pool_custom_string_as_hex_value=  {false false}
       addr_pool_custom_include_in_message=   {ADVERTISE REPLY}
       addr_pool_custom_option_value=                 {1 2}
       addr_pool_custom_option_payload=            {none none}

The following example modifies the created DHCPv6 server:

emulation dhcp group config
        mode=                        modify
        handle=                      $hltHostPort
        rebinding_time_percent=           70.0
        reneval_time_percent=             50.0
        valid_lifetime=                   2992000
        enable_delayed_auth=              true
        dhcp6_delayed_auth_key_id=         {1 2}
        dhcp6_delayed_auth_key_value=  {spirent1  spirent2} ]

Sample output for example shown above:

{status 1}

The following example is for qinq_incr_mode= inner:

emulation dhcp server config
           mode= create
           count= 10
           qinq_incr_mode= inner
           port_handle= port1
           vlan_user_priority= 7
           vlan_outer_id_count= 2
           vlan_outer_id= 101
           ip_address= 192.168.1.4
           vlan_id_count= 5
           vlan_id= 201
           ipaddress_pool= 192.168.1.5
           ip_version= 4
           encapsulation= ETHERNET_II_QINQ
           vlan_outer_user_priority= 0
           local_mac= 00:00:00:62:0A:01

Sample output for example shown above:

# Generated values for outer VLAN ID
 101 101 101 101 101 102 102 102 102 102

# Generated values for inner VLAN ID
 201 202 203 204 205 201 202 203 204 205

The following example is for qinq_incr_mode= outer:

emulation dhcp server config
              mode= create
              count= 10
              qinq_incr_mode= outer
              port_handle= port1
              vlan_user_priority= 7
              vlan_outer_id_count= 2
              vlan_outer_id= 101
              ip_address= 192.168.1.4
              vlan_id_count= 5
              vlan_id= 201
              ipaddress_pool= 192.168.1.5
              ip_version= 4
              encapsulation= ETHERNET_II_QINQ
              vlan_outer_user_priority= 0
              local_mac= 00:00:00:62:0B:01

Sample output for example shown above:

# Generated values for outer VLAN ID
101 102 101 102 101 102 101 102 101 102
# Generated values for inner VLAN ID
201 201 202 202 203 203 204 204 205 205

The following example is for qinq_incr_mode= both:

emulation dhcp server config
              mode= create
              count= 20
              qinq_incr_mode= both
              port_handle= port1
              vlan_user_priority= 7
              vlan_outer_id_count= 10
              vlan_outer_id= 101
              ip_address= 192.168.1.4
              vlan_id_count= 5
              vlan_id= 201
              ipaddress_pool= 192.168.1.5
              ip_version= 4
              encapsulation= ETHERNET_II_QINQ
              vlan_outer_user_priority= 0
              local_mac= 00:00:00:62:0c:01

Sample output for example shown above:

# Generated values for outer VLAN ID
101 102 103 104 105 106 107 108 109 110
# Generated values for inner VLAN ID
201 202 203 204 205 201 202 203 204 205

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

set Dhcpv4server_ret [emulation dhcp server 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:01
            mac_addr_step_per_port=                          00:00:00:01:00:01
            mac_addr_step_per_vlan=                          {"" 00:00:00:00:10:01}
            ip_step_per_port=                                0.0.0.5
            ip_step_per_vlan=                                {"" 0.0.1.1}
            intf_prefix_len=                                 22
            name=                                            DEVICE_BLOCK_DHCPV4SERVER
            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=                                          true

]

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 server scaling mode (mode= activate) with port_handle= and block_mode:

set Dhcpv6server_ret [emulation dhcp server config
            mode=                                            activate
            port_handle=                                     $port1
            count=                                           2
            block_mode=                                      ONE_DEVICE_PER_BLOCK
            block_name_index=                                1
            ip_version=                                      6
            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:01:00:01 00:00:00:00:00:01}
            intf_ipv6_prefix_len=                            65
            ipv6_step_per_vlan=                              {"" ::2}
            ipv6_step_per_port=                              ::1
            link_local_ipv6_step_per_port=                   ::4
            link_local_ipv6_step_per_vlan=                   {::4 ::5}
            name=                                            DEVICE_BLOCK_DHCPV6SERVER
            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
            gateway_ip_addr=                                 11.111.11.1
            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=                                          true
            prefix_pool_start=                               2001::
            addr_pool_start=                                 2001::1
            valid_lifetime=                                  2592001
            server_emulation_mode=                           DHCPV6_PD
            renewal_time_percent=                            50
            prefix_pool_length=                              64
            ipv6_addr_pool_host_step=                        ::1
            addr_pool_count=                                 200
            rebinding_time_percent=                          80
            preferred_lifetime=                              604800
            prefix_pool_count=                               200
            addr_pool_length=                                64
            ipv6_prefix_pool_step=                                ::
            addr_pool_step=                                  ::

]

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 server relay agent config

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

Purpose:

Spirent Extension (for Spirent HLTAPI only).

Configures IPv4 address pools in which the IPv4 addresses are assigned to DHCP clients through a Relay Agent by the DHCP server.

DHCP relay agents are used to forward DHCP packets between DHCP clients and DHCP servers when the clients and servers are not on the same physical subnet. The relay agent sets the gateway address (giaddr field of the DHCP packet) and, if configured, adds the relay agent information option (Option 82) in the packet and forwards it to the DHCP server. The reply sent from the server is forwarded back to the client after Option 82 is removed.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation dhcp server relay agent config
           handle= <server_handle> M
           mode= {create | modify | delete} M
           circuit_id= < circuit_id list>
           circuit_id_count= <1-4294967295>
           domain_name= <ALPHANUM>
           domain_name_server_list= <server_list>
           dhcp_ack_options= {0 | 1}
           dhcp_ack_time_offset= <integer>
           dhcp_ack_router_address= <a.b.c.d>
           dhcp_ack_time_server_address= <a.b.c.d>
           dhcp_ack_circuit_id= <hexadecimal>
           dhcp_ack_remote_id= <hexadecimal>
           dhcp_offer_options= {0 | 1}
           dhcp_offer_time_offset= <integer>
           dhcp_offer_router_address= <a.b.c.d>
           dhcp_offer_time_server_address= <a.b.c.d>
           dhcp_offer_circuit_id= <hexadecimal>
           dhcp_offer_remote_id= <hexadecimal
           prefix_length= <0-32>
           relay_agent_pool_count= <integer>
           relay_agent_pool_step= <a.b.c.d>
           relay_agent_ipaddress_pool= <a.b.c.d>
           relay_agent_ipaddress_count= <integer>
           relay_agent_ipaddress_step= <a.b.c.d>
           router_list= < ip_list >
           remote_id= <remote_id_list>
           remote_id_count= <1-20>
           vpn_id= < vpn_id_list>
           vpn_id_count= <1-4294967295>
           vpn_id_type= {nvt_ascii|rfc_2685}

Arguments:

handle
                Specifies the host handle for the DHCP server. When you set
                the mode argument to create, the value of this argument is
                returned from emulation dhcp server config. When you
                set the mode argument to modify or delete, the value of
                this argument indicates the handle(s) of the created DHCP
                server relay agent pool(s) returned from
                emulation dhcp server relay agent config. For the
                modify or delete mode, the value of this argument can be a
                list of handles. This argument is `Mandatory`.

mode
                Specifies the action to be performed. This argument is
                `Mandatory`. Possible values are listed below::

                 create - Creates IPv4 address pools for DHCP server to be
                          assigned to clients through the relay agent.

                 modify - Modifies the created IPv4 address pools.

                 delete - Deletes the created IPv4 address pools.


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

                Specifies a list of relay agent circuit IDs to generate, so
                the pool can assign addresses for those DHCP clients that match
                any circuit ID in the list. This argument is available
                when assign_strategy is set to circuit_id in the
                ``emulation dhcp server config`` function.

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

                Specifies the maximum number of circuit IDs to generate. This
                argument is available when assign_strategy is set to circuit_id in
                the ``emulation dhcp server config`` function. Possible values
                range from 1 to 4294967295. The default value is 1.


dhcp_ack_options
                Enables or disables the DHCP ACK Options. Possible
                values of this argument are 1 (enable) and 0 (disable). When
                this argument is set to 1, you can configure the DHCP ACK
                Options by specifying the arguments below::


                  dhcp_ack_time_offset
                  dhcp_ack_router_address
                  dhcp_ack_time_server_address
                  dhcp_ack_circuit_id
                  dhcp_ack_remote_id

                The default value is 0.

dhcp_ack_time_offset
                Specifies the DHCP ACK Option time offset (Option 2) in seconds.
                Its value can be positive or negative. The default value is
                0. You can specify this argument when the dhcp_ack_options
                argument is set to 1.

dhcp_ack_router_address
                Specifies the DHCP ACK option router option (Option 3) IPv4
                address. You can specify multiple IPv4 addresses. The
                default value is 0.0.0.0. You can specify this argument
                when the dhcp_ack_options argument is set to 1.

dhcp_ack_time_server_address
                Specifies the DHCP ACK option timer server address (Option
                4). You can specify multiple IPv4 addresses. The default
                value is 0.0.0.0. You can specify this argument
                when the dhcp_ack_options argument is set to 1.

dhcp_ack_circuit_id
                Specifies the circuit ID suboption (suboption 1) of the
                DHCP ACK option relay agent information option (Option 82).
                The intended use for the circuit ID suboption is to relay DHCP
                responses back to the proper circuit. The
                value of this argument must be eight hexadecimal characters.
                You can specify this argument when the dhcp_ack_options
                argument is set to 1.

dhcp_ack_remote_id
                Specifies the Remote ID suboption (suboption 2) of the DHCP
                ACK Option relay agent information option (Option 82). The
                Remote ID suboption may be added by DHCP relay agents
                which terminate switched or permanent circuits and have
                mechanisms to identify the remote host end of the circuit.
                The value of this argument must be eight hexadecimal
                characters. You can specify this argument when the
                dhcp_ack_options argument is set to 1.

dhcp_offer_options
                Enables or disables DHCP OFFER Options of the emulated DHCP
                server. Possible values are 0 and 1. The default value is
                0 (disabled). When this argument is enabled, you can specify the
                DHCP OFFER options below::


                  dhcp_offer_time_offset
                  dhcp_offer_router_address
                  dhcp_offer_time_server_address
                  dhcp_offer_circuit_id
                  dhcp_offer_remote_id

dhcp_offer_time_offset
                Specifies the DHCP OFFER option time offset (Option 2) in
                seconds. Its value can be positive or negative. The default
                value is 0. You can specify this argument when the
                dhcp_offer_options argument is enabled.

dhcp_offer_router_address
                Specifies the router option (Option 3) of the DHCP OFFER
                options. The router option defines a list of IPv4
                addresses for routers on the client's subnet. You can
                specify a list of IPv4 addresses. The default value is
                0.0.0.0. You can specify this argument when
                dhcp_offer_options is enabled.

dhcp_offer_time_server_address
                Specifies the time server option (Option 4) of the DHCP
                OFFER Options. The time server option defines a list of
                IPv4 addresses for the time servers available to the client.
                You can specify this argument when dhcp_offer_options is
                enabled.

dhcp_offer_circuit_id
                Configures the circuit ID suboption of the relay agent
                option (82). The value of this argument must be eight
                hexadecimal characters. This argument is available when
                dhcp_offer_options is enabled.

dhcp_offer_remote_id
                Configures the remote ID suboption of relay agent option
                (Option 82). The value of this argument must be eight
                hexadecimal characters. This argument is available when
                dhcp_offer_options is enabled.

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

                Specifies the domain name for the server (option 15)

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

                Specifies a list of domain name servers (option 6)

relay_agent_pool_count
                Specifies the number of address pools to be created.
                The default value is 1.

relay_agent_pool_step
                Specifies the increment used to generate the IPv4 addresses
                of IPv4 address pools when the count
                (relay_agent_pool_count) is larger than 1. The values of
                this argument must be in IPv4 format. The default
                value is 1.0.0.0.

relay_agent_ipaddress_pool
                Specifies the starting IP address for address pools.
                The default value is 192.0.1.0.

prefix_length
                Specifies the IPv4 address prefix length of the address in
                the pool. Possible values range from 0 to 32. The default
                value is 24.

relay_agent_ipaddress_count
                Defines the number of IPv4 addresses that can be assigned
                to clients in a pool. The largest value of this argument
                equals the number of remaining IPv4 addresses after the
                addresses that have been assigned are taken from the total
                number of IPv4 addresses in a pool. The total number of IPv4
                addresses in a pool depends on the value of the prefix_length
                argument. Possible values range from 0 to the number of
                remaining IPv4 addresses in a pool. The default value is 24.

relay_agent_ipaddress_step
                Defines the increment used to generate IPv4 addresses in
                an address pool. The default value is 0.0.0.1.

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

                Specifies a list of router IP addresses on the client subnet
                (option 3)

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

                Specifies a list of relay agent remote IDs to generate so
                the pool can assign addresses for those DHCP clients that match
                any remote ID in the list. This argument is available when
                assign_strategy is set to remote_id in the
                ``emulation dhcp server config`` function.

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

                Specifies the maximum number of remote IDs to generate. This
                argument is available when assign_strategy is set to remote_id
                in the ``emulation dhcp server config`` function. Possible
                values range from 1 to 20. The default value is 1.

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

                Specifies a list of relay agent VPN IDs to generate, so the
                pool can assign addresses for those DHCP clients that match any
                VPN ID in the list. This argument is available when
                assign_strategy is set to vpn_id in the
                ``emulation dhcp server config`` function.

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

                Specifies the maximum number of VPN IDs to generate.
                This argument is available when assign_strategy is set to vpn_id
                in the ``emulation dhcp server config`` function. Possible
                values range from 1 to 4294967295. The default value is 1.

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

                Specifies the VPN ID type. This argument is available when
                assign_strategy is set to vpn_id in the
                ``emulation dhcp server config`` function.
                Possible values are::


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

                The default value is nvt_ascii.

Arguments Unsupported by Save as HLTAPI:

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


  dhcp_ack_options
  dhcp_ack_time_offset
  dhcp_ack_router_add dress
  dhcp_ack_time_server_address
  dhcp_ack_circuit_id
  dhcp_ack_remote_id
  dhcp_offer_options
  dhcp_offer_time_offset
  dhcp_offer_router_address
  dhcp_offer_time_server_address
  dhcp_offer_circuit_id
  dhcp_offer_remote_id
  relay_agent_pool_count
  relay_agent_pool_step
  vlan_id_count
  vlan_outer_id_count
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).
pool_handles       Handle(s) of the created DHCP server address
                   pool(s).
Description:

The emulation dhcp server relay agent config creates, modifies, or deletes IPv4 address pools where the IPv4 addresses are assigned to DHCP clients through a Relay Agent. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

Use mode create to create address pools on the specified DHCP server. The handle of the DHCP server host is returned from emulation dhcp server config. You can modify or delete the address pools you created with the modify or delete mode.

When you create multiple emulated address pools where addresses are assigned to DHCP clients through a relay agent, use the relay_agent_pool_step argument and relay_agent_ipaddress_pool argument to specify the starting address and the increment step.

You can use the dhcp_ack_options argument and the dhcp_offer_options argument to insert specific options in ACK or OFFER messages sent to the DHCP relay agent by the DHCP server.

Examples:

To create a DHCP server relay agent address pool:

# step1: Config DHCP server host
 set returnedString [ emulation dhcp server config
                     mode=                       create
                     port_handle=                port1
                     count=                      1
                     local_mac=                  00:10:94:00:00:03
                     ip_address=                 100.1.0.8
                     ip_gateway=                 100.1.0.1
                     ipaddress_pool=             100.1.0.9
                     lease_time=                 60]

 keylget returnedString handle.dhcp_handle dhcpServer

# step2: create two relay agent address pools
 set returnedString [ emulation dhcp server relay agent config
                    handle=                     $dhcpServer
                    mode=                       create
                    relay_agent_pool_count=     2
                    relay_agent_pool_step=      1.0.0.0
                    relay_agent_ipaddress_pool= 110.0.0.5
                    relay_agent_ipaddress_count=    50
                    relay_agent_ipaddress_step= 0.0.0.1
                    dhcp_ack_options=           1
                    dhcp_ack_time_offset=       8000]

The example above creates two address pools on the DHCP server named $dhcpServer. The number of IPv4 addresses in each address pool is 50. The IP address of the first address pool is 110.0.0.5. The IP address of the second address pool is 111.0.0.5. The IPv4 addresses in the first address pool are listed below:

110.0.0.5
110.0.0.6
110.0.0.7
...
110.0.0.55

The IPv4 addresses in the second address pool are listed below:

111.0.0.5
111.0.0.6
111.0.0.7
 ...
111.0.0.55

Sample Output:

{pool_handles {dhcpv4serverpoolconfig1 dhcpv4serverpoolconfig2}}
{status 1}

emulation dhcp server control

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

Purpose:
Connects, renews, or resets DHCP or DHCPv6/PD server(s) on the specified ports or the DHCP or DHCPv6/PD handles/servers respectively.

Synopsis:

Note: M indicates the argument is `Mandatory`.

      emulation dhcp server control
           action= {connect|renew|reset} M
           port_handle= {<port_handle_list>|all}
           dhcp_handle= {<server_handle_list>|all}
           ip_version= {4|6}

Arguments:

dhcp_handle
                Identifies a list of DHCP or DHCPv6/PD server handles on which to
                connect, renew, or reset the server. The selected action value
                applies only to the specified DHCP or DHCPv6/PD handles
                respectively. Use "all" to specify all devices under all ports.
                You can specify either dhcp_handle or -port_handle, but not
                both. If neither of the two is specified, all devices under all
                ports will be called.

action
                Specifies the action to be taken on the specified DHCP or
                DHCPv6/PD handles specified by the dhcp_handle argument, or on
                the port handle specified by the port_handle argument. This
                argument is `Mandatory`. Possible values are:

                connect
                            Connects the DHCP or DHCPv6/PD servers on the
                            specified ports or DHCP or DHCPv6/PD handles.

                renew
                            Reconnects the DHCP or DHCPv6/PD servers on the
                            specified ports or DHCP or DHCPv6/PD handles
                            respectively.

                reset
                            Resets the DHCP or DHCPv6/PD servers on the specified
                            ports or DHCP or DHCPv6/PD handles respectively.

port_handle
                Specifies a list of ports on which the DHCP or DHCPv6/PD server
                will connect, renew, and reset. Use "all" to specify all ports.
                You can specify either dhcp_handle or -port_handle, but not
                both. If neither of the two is specified, all devices under all
                ports will be called.

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.
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 server control function controls the DHCP or DHCPv6/PD server on the specified ports. You can use this function to perform several actions:

  • Connecting a DHCP or DHCPv6/PD server
  • Renewing a DHCP or DHCPv6/PD server
  • Resetting a DHCP or DHCPv6/PD server

When you call the emulation dhcp server control function, you specify either a DHCP or DHCPv6/PD server handle or a port handle. Spirent HLTAPI applies the specified action to the specified DHCP or DHCPv6/PD server or to all of the emulated DHCP or DHCPv6/PD servers associated with the specified port.

Examples:

To connect the specified DHCP server:

emulation dhcp server control
         action= connect
         dhcp_handle= dhcpserverHandle

To connect all DHCP servers on the specified port:

emulation dhcp server control
         action= connect
         port_handle= port1

To renew the specified DHCP server:

emulation dhcp server control
         action= renew
         dhcp_handle= dhcpserverHandle

To renew all DHCP servers on the specified port:

emulation dhcp server control
         action= renew
         port_handle= port1

To reset the specified DHCP server:

emulation dhcp server control
          action= reset
          dhcp_handle= dhcpserverHandle

To reset all DHCP servers on the specified port:

emulation dhcp server control
         action= renew
         port_handle= port1
             DHCPv6/PD:

To connect the specified DHCPv6/PD server:

emulation dhcp server control
         action= connect
         dhcp_handle= dhcpserverHandle
         ip_version=     6

To connect all DHCPv6/PD servers on the specified port:

emulation dhcp server control
         action= connect
         port_handle= port1
         ip_version=     6

To renew the specified DHCPv6/PD server:

emulation dhcp server control
         action= renew
         dhcp_handle= dhcpserverHandle
         ip_version=     6

To renew all DHCPv6/PD servers on the specified port:

emulation dhcp server control
         action= renew
         port_handle= port1
         ip_version=     6

To reset the specified DHCPv6/PD server:

emulation dhcp server control
          action= reset
          dhcp_handle= dhcpserverHandle
          ip_version=     6

To reset all DHCPv6/PD servers on the specified port:

emulation dhcp server control
         action= renew
         port_handle= port1
         ip_version=     6

Sample Output:

{status 1}

emulation dhcp server stats

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

Purpose:
Returns statistics of the DHCPv6/PD server.

Synopsis:

Note: M indicates the argument is `Mandatory`.

     emulation dhcp server stats
           action=  {collect|clear} M
           dhcp_handle= {<dhcp_server_handle_list>|all}
           port_handle= {<port_handle_list>|all}
           ip_version= {4|6}

Arguments:

dhcp_handle
                Specifies a list of DHCP or DHCPv6/PD server handles from which to
                extract the server statistics data. Use "all" to return results
                from all devices. You can specify dhcp_handle or -port_handle,
                but not both. If neither of the two is specified, statistics from
                all devices under all ports will be returned.

action
                Specifies the action of the statistics for the specified port or
                DHCP or DHCPv6/PD server. This argument is mandaotry. Possible
                values are:

                collect
                            Retrieves the statistics from the specified ports or
                            DHCP or DHCPv6/PD servers

                clear
                            Removes all statistics

port_handle
                Specifies a list of ports from which to extract DHCP or DHCPv6/PD
                server statistics data. Use "all" to return results from all
                ports. You can specify either dhcp_handle or -port_handle, but
                not both. If neither of the two is specified, statistics from all
                devices under all ports will be returned.

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.
Return Values:

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

status         Retrieves a value indicating the success (1) or failure
               (0) of the operation.

log            Retrieves a message describing the last error that
               occurred during the operation. If the operation was
               successful - {status 1} - the log value is null.

aggregate statistics
               Provided when port_handle is used. Contains the
               aggregate statistics from all the DHCP or DHCPv6/PD
               handles/servers on the specified port_handle.

server specific statistics
               Provided when dhcp_server is used. Contains the
               statistics from the specified DHCP or DHCPv6/PD handle/server.

The following keys are returned when you specify port_handle:

DHCP for IPv4
aggregate.<port_handle>.rx.discover
aggregate.<port_handle>.rx.offer     (not supported)
aggregate.<port_handle>.rx.request
aggregate.<port_handle>.rx.decline
aggregate.<port_handle>.rx.ack            (not supported)
aggregate.<port_handle>.rx.nak            (not supported)
aggregate.<port_handle>.rx.release
aggregate.<port_handle>.rx.inform
aggregate.<port_handle>.rx.force_renew    (not supported)
aggregate.<port_handle>.rx.relay_agent    (not supported)
aggregate.<port_handle>.tx.discover       (not supported)
aggregate.<port_handle>.tx.offer
aggregate.<port_handle>.tx.request        (not supported)
aggregate.<port_handle>.tx.decline        (not supported)
aggregate.<port_handle>.tx.ack
aggregate.<port_handle>.tx.nak
aggregate.<port_handle>.tx.release        (not supported)
aggregate.<port_handle>.tx.inform         (not supported)
aggregate.<port_handle>.tx.force_renew    (not supported)
aggregate.<port_handle>.allocated.ip      (not supported)

DHCP for IPv6: (Spirent Extension keys)
ipv6.aggregate.<port_handle>.current_bound_count
ipv6.aggregate.<port_handle>.rx_confirm_count
ipv6.aggregate.<port_handle>.rx_decline_count
ipv6.aggregate.<port_handle>.rx_info_request_count
ipv6.aggregate.<port_handle>.rx_rebind_count
ipv6.aggregate.<port_handle>.rx_release_count
ipv6.aggregate.<port_handle>.rx_renew_count
ipv6.aggregate.<port_handle>.rx_request_count
ipv6.aggregate.<port_handle>.rx_soilicit_count
ipv6.aggregate.<port_handle>.total_bound_count
ipv6.aggregate.<port_handle>.total_expired_count
ipv6.aggregate.<port_handle>.total_release_count
ipv6.aggregate.<port_handle>.total_renewed_count
ipv6.aggregate.<port_handle>.tx_advertise_count
ipv6.aggregate.<port_handle>.tx_reconfigure_count
ipv6.aggregate.<port_handle>.tx_reconfigure_rebind_count
ipv6.aggregate.<port_handle>.tx_reconfigure_renew_count
ipv6.aggregate.<port_handle>.tx_reply_count

The following keys are returned when you specify dhcp_handle:

DHCP for IPv4
dhcp_handle.<dhcp_handle>.rx.discover
dhcp_handle.<dhcp_handle>.rx.offer        (not supported)
dhcp_handle.<dhcp_handle>.rx.request
dhcp_handle.<dhcp_handle>.rx.decline
dhcp_handle.<dhcp_handle>.rx.ack          (not supported)
dhcp_handle.<dhcp_handle>.rx.nak          (not supported)
dhcp_handle.<dhcp_handle>.rx.release
dhcp_handle.<dhcp_handle>.rx.inform
dhcp_handle.<dhcp_handle>.rx.force_renew  (not supported)
dhcp_handle.<dhcp_handle>.rx.relay_agent  (not supported)
dhcp_handle.<dhcp_handle>.tx.discover     (not supported)
dhcp_handle.<dhcp_handle>.tx.offer
dhcp_handle.<dhcp_handle>.tx.request      (not supported)
dhcp_handle.<dhcp_handle>.tx.decline      (not supported)
dhcp_handle.<dhcp_handle>.tx.ack
dhcp_handle.<dhcp_handle>.tx.nak
dhcp_handle.<dhcp_handle>.tx.release      (not supported)
dhcp_handle.<dhcp_handle>.tx.inform       (not supported)
dhcp_handle.<dhcp_handle>.tx.force_renew  (not supported)
dhcp_handle.<dhcp_handle>.allocated.ip    (not supported)

DHCP for IPv6:  (Spirent Extension keys)
ipv6.dhcp_handle.<dhcp_handle>.current_bound_count
ipv6.dhcp_handle.<dhcp_handle>.rx_confirm_count
ipv6.dhcp_handle.<dhcp_handle>.rx_decline_count
ipv6.dhcp_handle.<dhcp_handle>.rx_info_request_count
ipv6.dhcp_handle.<dhcp_handle>.rx_rebind_count
ipv6.dhcp_handle.<dhcp_handle>.rx_release_count
ipv6.dhcp_handle.<dhcp_handle>.rx_renew_count
ipv6.dhcp_handle.<dhcp_handle>.rx_request_count
ipv6.dhcp_handle.<dhcp_handle>.rx_soilicit_count
ipv6.dhcp_handle.<dhcp_handle>.total_bound_count
ipv6.dhcp_handle.<dhcp_handle>.total_expired_count
ipv6.dhcp_handle.<dhcp_handle>.total_release_count
ipv6.dhcp_handle.<dhcp_handle>.total_renewed_count
ipv6.dhcp_handle.<dhcp_handle>.tx_advertise_count
ipv6.dhcp_handle.<dhcp_handle>.tx_reconfigure_count
ipv6.dhcp_handle.<dhcp_handle>.tx_reconfigure_rebind_count
ipv6.dhcp_handle.<dhcp_handle>.tx_reconfigure_renew_count
ipv6.dhcp_handle.<dhcp_handle>.tx_reply_count
Description:

The emulation dhcp server info function provides statistics about either the specified DHCP or DHCPv6/PD server handles or ports.

This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message. Function return values are formatted as a keyed list (supported by the Tcl extension software - TclX). Use the TclX function keylget to retrieve data from the keyed list. (See Return Values for a description of each key.)

Examples:

##DHCP for IPv4 ##

The following example collects statistics on the specified port:

::emulation dhcp server stats
              action= collect
              port_handle= port1

Sample output for example shown above:

{dhcp_server_state UP} {aggregate {{port1 {{tx {{nak 0}
{offer 0} {ack 0}}} {rx {{decline 0} {release 0}
{request 0} {inform 0} {discover 0}}}}}}} {status 1}

The following example collects statistics on the specified DHCP server:

::emulation dhcp server stats
             action= collect
             dhcp_handle= host1

Sample output for example shown above:

{dhcp_server_state UP} {dhcp_handle {{host1 {{tx {{nak 0}
{offer 0} {ack 0}}} {rx {{decline 0} {release 0}
{request 0} {inform 0} {discover 0}}}}}}} {status 1}

The following example clears statistics on the specified port:

::emulation dhcp server stats
             action= clear
             port_handle= host1

Sample output for example shown above:

{status 1}

The following example clears statistics on the specified DHCP server:

::emulation dhcp server stats
             action= clear
             dhcp_handle= host1

Sample output for example shown above:

{status 1}

##DHCP for IPv6##

The following example collects statistics on the specified port:

::emulation dhcp server stats
              action= collect
              port_handle= port1
              ip_version=   6

Sample output for example shown above:

{ipv6 {{aggregate {{port1 {{rx_soilicit_count 1} {tx_advertise_count 1}
{rx_release_count 0} {total_bound_count 1} {tx_reconfigure_renew_count 0}
{total_expired_count 0} {total_renewed_count 0} {rx_decline_count 0}
{rx_rebind_count 0} {current_bound_count 1} {rx_renew_count 0} {rx_request_count 1}
{tx_reconfigure_count 0} {total_release_count 0} {rx_info_request_count 0}
{tx_reply_count 1} {tx_reconfigure_rebind_count 0} {rx_confirm_count 0}}}}}}}

The following example clears statistics on the specified port:

::emulation dhcp server stats
             action= clear
             port_handle= host1
             ip_version=   6

Sample output for example shown above:

{status 1}

The following example clears statistics on the specified DHCPv6/PD server:

::emulation dhcp server stats
             action= clear
             dhcp_handle= host1
             ip_version=   6

Sample output for example shown above:

{status 1}

End of Procedure Header