VXLAN Functions

emulation vxlan config

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

Purpose:
This is a Spirent Extension created to configure, modify, or delete Virtual eXtensible Local Area Network (VXLAN) emulated devices on a Spirent HLTAPI chassis. VXLAN encapsulates MAC frames in a UDP header to create a Layer 2 connection across an IP network between two vSphere hypervisor hosts. These hosts are known as Virtual Tunnel Endpoints (VTEPs) and perform the encapsulation/decapsulation function for the tunnel. VXLAN uses IP multicast to associate a VM MAC address with a VTEP IP address.

Synopsis:

Note: M indicates the argument is `Mandatory`.

      emulation vxlan config
           mode= {create|modify|delete} M
           port_handle=  <port_handle>
           handle= <VXLAN_device_handle>
           count= <integer>
           encapsulation= {ethernet_ii | ethernet_ii_vlan | ethernet_ii_qinq}
           enable_ping_response= {1 | 0}
           ip_version= {4 | 6}
           intf_ip_addr= <a.b.c.d>
           intf_ip_addr_step= <a.b.c.d>
           gateway_ip_addr= <a.b.c.d>
           gateway_ip_addr_step= <a.b.c.d>
           gateway_ipv6_addr=  <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           intf_prefix_len= <1-32>
           intf_ipv6_addr=  <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           intf_ipv6_prefix_len= <1-128>
           link_local_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           link_local_ipv6_prefix_len= <0-128>
           mac_addr=  <aa:bb:cc:dd:ee:ff>
           mac_addr_step=  <aa:bb:cc:dd:ee:ff>
           qinq_incr_mode= {inner | outer | both}
           router_id= <a.b.c.d>
           router_id_ipv6= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           vlan_id= <0-4095>
           vlan_id_step= <0-4095>
           vlan_user_pri= <0-7>
           vlan_outer_id=  <0-4095>
           vlan_outer_id_step= <0-4095>
           vlan_outer_user_pri= <0-7>
           udp_dst_port= <1-63355>
           udp_src_port= <1-63355>
           multicast_type= {MULTICAST_IGMP | MULTICAST_PIM}
           udp_checksum_enabled= {true | false}
           vni= <numeric>
           communication_type= {MULTICAST_LEARNING | UNICAST_CONFIGURATION}
           multicast_group=  <a.b.c.d>
           vm_hosts= <host_handle>
           vxlansegmenthandle= <segment_handle>
           vxlan_use_remote_nve= {true | false}
           vxlan_remote_nve= <a.b.c.d>
           vxlan_remote_nve_step= <a.b.c.d>
           enable_flood= {true|false}
           flood_vtep_list= <IP list>

Arguments:

port_handle
                The port on which to create the emulated VXLAN device. This
                handle is returned by the ``connect`` function. It is `Mandatory`
                for mode create.

handle
                The VXLAN device handle. This argument is `Mandatory` for mode
                modify and delete.

mode
                Specifies the action to perform on the test port. This argument is
                `Mandatory`. Possible values are::

                 create -  Creates the emulated VXLAN device on the port specified
                           by port_handle.

                 modify -  Changes the configuration for the VXLAN device
                           identified by the handle argument.

                 delete -  Deletes the VXLAN device
                           identified by the handle argument

router_id
                Specifies the router ID of the emulated device. The value
                must be in IPv4 format.

router_id_ipv6
                Specifies the IPv6 router ID of the emulated device. The value
                must be in IPv6 format.

enable_ping_response
                Enables or disables the emulated VTEP device to respond to ping.
                Possible values are 0 (disable) and 1 (enable). The default is 0.

ip_version
                Defines the IP version to be used by the emulated VTEP device.
                Possible values are ipv4, ipv6 and ipv46. The default value is
                ipv4.

intf_ip_addr
                Specifies the IPv4 address of the interface for the emulated
                VTEP device. The default value is 192.85.1.3.

intf_ip_addr_step
                Specifies the step value to increment interface IPv4 addresses.
                The default value is 0.0.0.1.

gateway_ip_addr
                Specifies the IPv4 gateway address for the emulated VTEP device.


gateway_ip_addr_step
                Specifies the step value to increment gateway IPv4 addresses

intf_prefix_len
                Specifies the prefix length for the IPv6 address of the emulated
                VTEP device. Possible values range from 1 to 32. The default is 24.

intf_ipv6_addr
                Specifies the IPv6 address of the interface for the emulated
                VTEP device.

intf_ipv6_prefix_len
                Specifies the prefix length for the IPv6 address of the emulated
                device, possible values range from 0 to 128. The default is 64.

gateway_ipv6_addr
                Specifies the IPv6 gateway address for the emulated VTEP device.

link_local_ipv6_addr
                Specifies the link local IPv6 address for the emulated device.
                The default value is FE80::0.

link_local_ipv6_prefix_len
                Specifies the prefix length for the link local IPv6 address of
                the emulated device. Possible values range from 0 to 128. The
                default is 64.

mac_addr
                Specifies the MAC address of the emulated VTEP device. The
                default value is 10:10:00:10:00:01.

mac_addr_step
                Specifies the step value to increment MAC addresses. The
                default value is 10:10:00:10:00:01.

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


                 inner - Increments the inner VLAN ID before the outer VLAN ID

                 outer - Increments the outer VLAN ID before the inner VLAN ID

                 both - Increment both the inner and outer VLAN ID at the same time

                The default value is inner.

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


                 ethernet_ii - Ethernet II

                 ethernet_ii_vlan - Ethernet II with a single VLAN tag

                 ethernet_ii_qinq - Ethernet II with two VLAN tags

                The default value is ethernet_ii.

vlan_id
                Specifies the starting VLAN ID for the ethernet_ii_vlan
                encapsulation or the ethernet_ii_qinq encapsulation. Possible
                values range from 0 to 4095. The default value is 100. This
                argument is available when encapsulation is set to
                ethernet_ii_qinq or ethernet_ii_vlan.

vlan_id_step
                Specifies the step value to increment VLAN IDs. Possible
                values range from 0 to 4095.

vlan_user_pri
                Specifies the VLAN user priority assigned to the emulated VTEP
                devices. Possible values range from 0 to 7. The default value is 0.

vlan_outer_id
                Specifies the starting outer VLAN ID for the QinQ encapsulation.
                Possible values range from 0 to 4095. The default value is 100.
                This argument is available when encapsulation is set to
                ethernet_ii_qinq.

vlan_outer_id_step
                Specifies the step value to increment outer VLAN IDs. Possible
                values range from 0 to 4095.

vlan_outer_user_pri
                Specifies the VLAN priority to assign to the outer VLAN header.
                Possible values range from 0 to 7. The default value is 0.

udp_dst_port
                Specifies the UDP port number of the destination VTEP device.
                Possible values range from 1 to 65535. The default is 4789.

auto_select_udp_src_port
                Specifies whether to let Spirent HLTAPI generate the UDP
                source port number. Possible values are true and false. The
                default value is true.

udp_src_port
                Specifies the UDP port number of the source VTEP device. Possible
                values range from 1 to 65535. The default is 1025. This argument
                is only available when auto_select_udp_src_port is set to false.

multicast_type
                Specifies which kind of multicast will be used to associate a VM
                MAC address with a VTEP IP address. Possible values are
                MULTICAST_IGMP and MULTICAST_PIM. The default is MULTICAST_IGMP.

udp_checksum_enabled
                Enables or disables checksums for UDP. Possible values are true
                (enable) and false(disable). The default is false.

vni
                Specifies the VXLAN Network Identifier (VNI) value used to
                identify the VXLAN segment. The value must be an integer. The
                default is 1.

communication_type
                Specifies the method of communication between emulated VTEP
                devices. Possible values are::


                 MULTICAST_LEARNING        multicast
                 UNICAST_CONFIGURATION     unicast

                The default value is MULTICAST_LEARNING.

multicast_group
                Specifies the IPv4 multicast address for the VXLAN segment. This
                argument is only available when communication_type is set to
                MULTICAST_LEARNING.

vm_hosts
                A list of handles of the VM hosts to be linked to the configured
                VTEP devices.

vxlansegmenthandle
                The VXLAN segment handle used to modify VXLAN segment attributes.

vxlan_use_remote_nve
                Enable or disable the Remote Network Virtual Interface for the VM.
                Dependency: communication_type UNICAST_CONFIGURATION.
                Possible values are true (enable) and false(disable).
                The default is false.

vxlan_remote_nve
                Specifies the remote Network Virtual Interface for the VM.
                Dependency: communication_type UNICAST_CONFIGURATION.
                The default is 1.1.1.1.

vxlan_remote_nve_step
                Specifies the step value for the remote Network Virtual Interface
                for the VM.
                Dependency: communication_type UNICAST_CONFIGURATION.
                The default is none.

enable_flood
                Option to enable Flood VTEP List population.
                The default is false.

flood_vtep_list
                List of Remote VTEP IP addresses for flooding.
                The default is 0.0.0.0.
Description:

The emulation vxlan config function creates, modifies or deletes one or more emulated VXLAN (VETP) devices on the specified port. Use emulation device config specific= functions to create VM devices, and emulation multicast group config to create a multicast group before you use this function. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

When you create a VETP device, use the port_handle argument to specify the port handle that the emulated device will use. (The port handle value is contained in the keyed list returned by the connect function.)

During the VTEP creating process, the function establishes the link between the VM device and the VETP with argument vm_hosts. See Examples for a sample configuration.

Note: To modify vni, -communication_type, -multicast_group or VM hosts, you
must specify the target VXLAN segment handle using vxlansegmenthandle.

Arguments Unsupported by Save as HLTAPI:

This function is currently not supported by Save as HLTAPI.
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 or $FAILURE
log                      Error message if command returns {status 0}
handle                   The VXLAN device handle
vxlansegmenthandle       The VXLAN segment handle
Examples:

The following example creates an emulated VTEP device:

set vtep_ret2 [::emulation vxlan config
      port_handle= $port2
      mode= create
      router_id= 192.0.0.4
      ip_version= ipv4
      intf_ip_addr= 10.10.10.11
      intf_ip_addr_step= 0.0.0.1
      gateway_ip_addr= 10.10.10.10
      gateway_ip_addr_step= 0.0.0.1
      intf_prefix_len= 24
      mac_addr= 40:01:02:03:04:05
      mac_addr_step= 00:00:00:00:00:01
      udp_dst_port= 4789
      auto_select_udp_src_port= true
      multicast_type= MULTICAST_PIM
      udp_checksum_enabled= false
      vni= 2
      communication_type= MULTICAST_LEARNING
      multicast_group= $macstgroup1
      vm_hosts= $vm2
 ]

Sample Output:

{handle router2} {vxlansegmenthandle vxlansegmentconfig1} {status 1}

End of Procedure Header

emulation vxlan control

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

Purpose:
A Spirent Extension to start or stop the created VTEP devices.

Synopsis:

Note: M indicates the argument is `Mandatory`.
       emulation vxlan control
         action= {start | stop}
          port_handle= <port_handle_list>
          handle= <device_handle_list>

Arguments:

action
                Specifies the action to perform. This argument is `Mandatory`.
                Possible values are::


                 start - Start the VTEP device

                 stop  - Stop the VTEP device

port_handle
                Specifies a list of ports on which the action will be performed.
                You must specify either port_handle or -handle, but not both.

handle
                Specifies a list of VTEP devices on which to perform the action.
                You must specify either port_handle or -handle, but not both.
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 or $FAILURE
log                 Error message if command returns {status 0}
Description:
The emulation vxlan control function controls the configured VTEP devices.
Examples:

To start the specified VTEP device:

set status ::emulation vxlan control port_handle=$port1 action start

End of Procedure Header

emulation vxlan stats

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

Purpose:
A Spirent Extension to retrieve statistics for the VTEP devices configured on the specified test port.

Synopsis:

Note: M indicates the argument is `Mandatory`.

         emulation vxlan stats
              port_handle= <port_handle>
              handle= <device_handle>

Arguments:

port_handle
                Specifies the port handle from which to retrieve the statistics.
                You must specify either port_handle or handle, but not both.

handle
                Specifies the VXLAN device handle from which to retrieve the
                statistics. You must specify either port_handle or handle, but
                not both.
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 or $FAILURE

log                          Error message if command returns {status 0}

state                        The state of the VTEP device.
                             STOPPED and STARTED.
                             STOPPED - Left multicasts groups
                             STARTED - Joined multicast groups (if necessary) and
                                       sent out ARPs

learned_binding_count       The number of the binding VM devices learned

load_profile_run_state      The state of the load profile

resolved_vm_macs_count      The number of resolved VM MAC addresses

unresolved_vm_macs_count    The number of unresolved VM MAC address
Description:
The emulation vxlan stats function retrieves statistics for all emulated VTEP devices configured on a specified port, or statistics for a specified VTEP device.
Examples:

To get the statistics of VTEP devices on the specified ports:

set results [::emulation vxlan stats port_handle="$port1 $port2"]

Sample Output:

{router1 {{unresolved_vm_macs_count 0}{ load_profile_run_state false}
{resolved_vm_macs_count 1}{ learned_binding_count 1}{ state STARTED}}} {router2
{{unresolved_vm_macs_count 0}{ load_profile_run_state false}
{resolved_vm_macs_count 1}{ learned_binding_count 1}{ state STARTED}}} {status 1}

To get the statistics of the specified device:

set results [::emulation vxlan stats handle=router1]

Sample Output:

{router1 {{unresolved_vm_macs_count 0}{ load_profile_run_state false}
{resolved_vm_macs_count 1 }{learned_binding_count 1}{ state STARTED}}} {status 1}

End of Procedure Header

emulation vxlan port config

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

Purpose:

Spirent Extension (for Spirent HLTAPI only).

A Spirent Extension to create or delete VXLAN ports and interfaces

Synopsis:

Note: M indicates the argument is `Mandatory`.

       emulation vxlan port config
           port_handle= <port_handle>
           handle= <VTEP handle>
           mode= {create | delete}
           gateway_ip_addr= <a.b.c.d>
           gateway_ip_addr_step=  <a.b.c.d>
           mac_addr=  <aa:bb:cc:dd:ee:ff>
           mac_addr_step=  <aa:bb:cc:dd:ee:ff>
           prefix_len= <1-32>
           router_id= <a.b.c.d>
           router_id_step= <a.b.c.d>
           tunnel_ip_mode=  {interface_ip | router_id}
           vlan_count= <1-65535>
           vlan_enable= {true | false}
           vlan_id= <1-4095>
           vlan_id_step= <1-4095>
           vtep_ip_addr= <a.b.c.d>
           vtep_ip_addr_step= <a.b.c.d>

Arguments:

port_handle
                Specifies the port on which to create the emulated Virtual
                Machine (VM) or Virtual Tunnel Endpoint (VTEP) device. You must
                specify this argument for mode create.

handle
                Specifies the VM or VTEP handle created by the API. You must
                specify this argument for mode delete.


mode
                Specifies the action to perform. Possible values are create and
                delete. The modes are described below::


                 create  Creates VTEPs or VMs on the port specified by
                         port_handle

                 delete  Deletes the VTEP or VM specified by handle

                The default value is create.

gateway_ip_addr
                Specifies the IP address of the first gateway. The default value
                is 192.168.100.1.

gateway_ip_addr_step
                Specifies the step value by which to generate subsequent gateway
                IP addresses. The value must be in IPv4 format. The default value
                is 0.0.0.1.

mac_addr
                Specifies the first MAC address of the emulated device. The
                default value is 10:00:00:10:00:01.

mac_addr_step
                Specifies the step value by which to generate subsequent MAC
                addresses. The value must be in MAC format. The default value is
                00:00:00:00:00:01.

prefix_len
                Specifies the prefix length on the provider subnet. Possible
                values range from 1 to 32. The default value is 24.


router_id
                Specifies the router ID
                Values: IPv4
                Default: 10.1.1.1

router_id_step
                Specifies the increment value by which to create subsequent router IDs
                Values: IPv4
                Default: 0.0.0.1

tunnel_ip_mode
                Specifies the source of the tunnel IP address
                Values: interface_ip (Interface IP), router_id (Router ID)
                Default: interface_ip


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

vlan_count
                Specifies the VLAN count
                Values: 1-65535
                Default: 1

vlan_id
                Specifies the ID for the first VLAN in a block. You must set
                vlan_enable to true. Possible values
                range from 1 to 4095. The default value is 1.

vlan_id_step
                Specifies the step value by which to generate subsequent VLAN IDs.
                Possible values range from 1 to 4095. The default value is 1.

vtep_ip_addr
                Specifies the IP address of the emulated
                VTEP device. The default value is 192.168.100.2.

vtep_ip_addr_step
                Specifies the step value by which to generate subsequent IP
                addresses for VTEPs. The value must be in IPv4 format. The
                default value is 0.0.0.1.
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           VM or VTEP handle created by the function
status           Success (1) or failure (0) of the operation
log              An error message (if the operation failed)
Description:

The emulation vxlan port config function creates or deletes VXLAN ports and interfaces, mapping the operation of the VXLAN wizard on the Spirent TestCenter GUI.

If the operation fails, Spirent HLTAPI returns an error message.

Examples:

The following example configures VXLAN ports and interfaces:

set device_ret0 [emulation vxlan port config mode= create
   port_handle=                                      $port1
   vlan_enable=                                      false
   mac_addr_step=                                    00:00:00:00:00:01
   mac_addr=                                         0a:10:94:00:00:01
   vtep_ip_addr=                                     172.16.10.10
   gateway_ip_addr=                                  172.16.10.20
   gateway_ip_addr_step=                             0.0.0.2
   prefix_len=                                       24
   sub_interface_count=                              1
   sub_interface_enable=                             true]

Sample Output:

{handle status}

End of Procedure Header

emulation nonvxlan port config

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

Purpose:

Spirent Extension (for Spirent HLTAPI only).

A Spirent Extension to create or delete nonVXLAN ports and interfaces

Synopsis:

Note: M indicates the argument is `Mandatory`.

        emulation nonvxlan port config
              port_handle= <port_handle>
              mode= {create | delete}
              device_count= <1-65535>
              gateway_ip_addr= <a.b.c.d>
              gateway_ip_addr_step= <a.b.c.d>
              ip_addr= <a.b.c.d>
              ip_addr_step= <a.b.c.d>
              ip_prefix= < 1-32>
              mac_addr= <aa:bb:cc:dd:ee:ff>
              mac_addr_step= <aa:bb:cc:dd:ee:ff>
              vlan_enable= {true | false}
              vlan_id=  <1-4095>
              vlan_id_step= <1-4095>

Arguments:

port_handle
                Specifies the port handle on which to create nonVXLAN hosts. You must
                specify this argument for mode create.

mode
                Specifies the action to perform. Possible values are create and
                delete. The modes are described below::


                 create   Creates nonVXLAN hosts on the port specified by -port_handle
                 delete   Deletes the host specified by handle

                The default value is create.

handle
                Host handle created by the current API. You must specify this
                argument for mode delete.

device_count
                Specifies the number of devices to create. The default value is 1.

gateway_ip_addr
                Specifies the IP address of the first gateway. The default value is
                192.168.100.1.

gateway_ip_addr_step
                Specifies the step value by which to generate subsequent gateway IP
                addresses. The value must be in IPv4 format. The default value is
                0.0.0.1.

ip_addr
                Specifies the IP address of the emulated device. The default value is
                192.168.100.2.

ip_addr_step
                Specifies the step value by which to generate subsequent IP addresses.
                The value must be in IPv4 format. The default value is 0.0.0.1.

ip_prefix
                Specifies the prefix length for the IP address. Possible values range
                from 1 to 32. The default value is 24.

mac_addr
                Specifies the first MAC address of the emulated device.
                The default value is 10:00:00:10:00:01.

mac_addr_step
                Specifies the step value by which to generate subsequent MAC
                addresses. The value must be in MAC format. The default value is
                00:00:00:00:00:01.

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

vlan_id
                Specifies the ID for the first VLAN in a block. You must set
                vlan_enable to true. Possible values range from 1 to 4095. The
                default value is 1.

vlan_id_step
                Specifies the step value by which to generate subsequent VLAN IDs.
                Possible values range from 1 to 4095. The default value is 1.
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           NonVXLAN host handle created by the function
status           Success (1) or failure (0) of the operation
log              An error message (if the operation failed)
Description:

The emulation nonvxlan port config VXLAN= hosts, mapping the operation of the VXLAN wizard on the Spirent TestCenter GUI.

If the operation fails, Spirent HLTAPI returns an error message.

Examples:

The following example configures nonVXLAN= ports and interfaces:

set device_ret1 [emulation nonvxlan port config
   mode=                                      create
   port_handle=                               $port3
   device_count=                              2
   vlan_enable=                               true
   mac_addr_step=                             00:00:00:00:00:01
   mac_addr=                                  00:10:94:00:00:01
   gateway_ip_addr=                           192.85.1.4
   vni=                                       140]

Sample Output:

{handle status}

End of Procedure Header

emulation vxlan wizard config

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

Purpose:
This is a Spirent Extension created to configure the VXLAN topology, mapping the operations of VXLAN wizard in the Spirent TestCenter GUI

Synopsis:

Note: M indicates the argument is `Mandatory`.

   emulation vxlan wizard config

     handle= <vxlan_wizard_parameters_handle>
     mode= {create|delete}

     configure vxlan port

     use_vxlan_ports=  {true|false}

     Configure VTEP

     auto_select_udp_src_port= {true|false}
     udp_checksum_enable= {true|false}
     udp_src_port= <1-65535>
     udp_src_port_step= <1-32767>
     vteps_per_sub_interf_count= <1-10000>

     Configure Segments

     vxlan_segments_per_vtep= < integer >
     segments_per_block= <1-65535>
     vni= <1-16777215>
     vni_step= <1-10000>
     l3_vni_for_evpn_learning=  {true|false}
     vxlan_host_l3_vni= <0-16777215>
     vxlan_host_l3_vni_step= <0-100000>
     use_same_vnis_across_ports= {true|false}
     use_same_vnis_across_vteps= {true|false}

     Configure VM Devices

     vxlan_ip_type=  {ipv4|ipv4andipv6|ipv6|mac }
     vms_per_segment= <1-10000>
     vms_per_vtep= <0-10000>
     vlan_enable= {true|false}
     vlan_id= <1-4095>
     vlan_id_step= <1-4095>
     mac_addr= <aa:bb:cc:dd:ee:ff>
     mac_addr_step= <aa:bb:cc:dd:ee:ff>
     mac_addr_prefix= <1-48>
     host_ip_addr= <a.b.c.d>
     ip_addr_step=  <a.b.c.d>
     ip_addr_step_per_segment= <a.b.c.d>
     ip_addr_incr_per_port= <a.b.c.d>
     gateway_ip_addr= <a.b.c.d>
     gateway_ip_addr_step= <a.b.c.d>
     ip_prefix= <1-32>
     host_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     ipv6_addr_step_per_segment= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     ipv6_addr_incr_per_port= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     ipv6_prefix= <0-128>

     Configure Learning Mode

     vxlan_segment_type= {evpn_learning|multicast_learning|
                          unicast_and_multicast|unicast_configuration}]
     bgp_mode=  {ebgp|ibgp}
     as_byte_mode=  {as2byte|as4byte}

     Configure EVPN Overlay

     dut_as= <1-65535>
     dut_as_step= <0-65535>
     dut_as_num_step_per_port= <0-65535>
     as_num= <1-65535>
     as_num_step= <0-65535>
     as_num_step_per_port= <0-65535>
     dut_as_4byte= <Number:Number>
     dut_as_num_4byte_step= <string>
     dut_as_num_4byte_step_per_port= <string>
     as_num_4byte= <string>
     as_num_4byte_step= <string>
     as_num_4byte_step_per_port= <string>
     dut_ip_addr= <a.b.c.d>
     dut_ip_addr_step= <a.b.c.d>
     bgp_session_ip_type=  {internface_ip|router_id}
     use_gateway_as_dut=  {true|false}
     config_l3_vni=  {true|false}

     Configure Multicast

     vxlan_segment_multicast_type= {igmp|pim}
     vxlan_multicast_ip_addr= <a.b.c.d>
     vxlan_multicast_ip_addr_step= <a.b.c.d>
     igmp_multicast_version= {igmp_v2|igmp_v3}
     pim_mode_vxlan= {sm|ssm}
     use_bi_dir= {true|false}
     vxlan_multicast_rp_addr= <a.b.c.d>

     Configure L3 VNI Segments

     l3_vxlan_segments_per_vtep= <1-65535>
     l3_segments_per_block= <1-65535>
     l3_vni= <0-16777215>
     l3_vni_step= <0-100000>
     l3_vni_params= <0-16777215>
     l3_vni_step_params= <0-100000>
     l3_use_same_vnis_across_ports=  {true|false}
     l3_use_same_vnis_across_vteps=  {true|false}

     Configure L3 VNI VM Devices

     l3_vxlan_ip_type=  {ipv4|ipv4andipv6|ipv6}
     l3_vms_per_segment= <0-10000>
     l3_vlan_enable=  {true|false}
     l3_vlan_id= <0-4095>
     l3_vlan_id_step= <0-4095>
     l3_mac_addr= <aa:bb:cc:dd:ee:ff>
     l3_mac_addr_step= <aa:bb:cc:dd:ee:ff>
     l3_mac_add_prefix= <1-48>
     l3_host_ip_addr= <a.b.c.d>
     l3_ip_addr_step= <a.b.c.d>
     l3_ip_addr_step_per_Segment= <a.b.c.d>
     l3_ip_addr_incr_per_port= <a.b.c.d>
     l3_gateway_ip_addr= <a.b.c.d>
     l3_gateway_ip_addr_step= <a.b.c.d>
     l3_ip_prefix= <0-32>
     l3_host_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     l3_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     l3_ipv6_addr_step_per_segment= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     l3_ipv6_addr_incr_per_port= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     l3_gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     l3_gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     l3_ipv6_prefix= <0-128>

     Configure EVPN Routes

     vxlan_evpn_topology_types= {custom|multihome|singlehome}
     vxlan_wizard_ad_route= {true|false}
     vxlan_wizard_ad_route_type= {per_esi|per_evi}
     vxlan_wizard_inclusive_multicast_route= {true|false}
     vxlan_wizard_ad_route_esi= {true|false}
     vxlan_wizard_ad_route_evi= {true|false}
     vxlan_wizard_ether_segment_route= {true|false}
     vxlan_active_standby_mode= {all_active|single_active}
     vxlan_wizard_ip_prefix_route= {true|false}
     vxlan_wizard_mac_ip_route= {true|false}
     vxlan_wizard_mac_and_ip_route=  {true|false}
     vxlan_wizard_mac_only_route=  {true|false}
     vxlan_wizard_ipv4_unicast_route=  {true|false}
     vxlan_ether_segment_value_type= {type0|type1|type2|type3|type4|type5}
     vxlan_ether_tag_id= <integer>
     vxlan_ether_segment_id= < X:X:X:X:X:X:X:X:X >
     vxlan_ether_segment_id_step= < X:X:X:X:X:X:X:X:X >
     vxlan_config_next_hop=  {true|false}
     vxlan_next_hop_addr= <a.b.c.d>
     vxlan_next_hop_step_per_device= <a.b.c.d>
     vxlan_next_hop_step_per_port= <a.b.c.d>
     vxlan_evpn_router_mac_ext_community= {true|false}
     vxlan_auto_config_rd_rt=  {true|false}
     vxlan_auto_config_rt=  {as_vni|as_vlan|nexthop_as|nexthop_vni|
                                     nexthop_vlan|router_id_as|router_id_vni|
                                     router_id_vlan|gateway_ip_as|gateway_ip_vni|
                                     gateway_ip_vlan|interface_ip_as|interface_ip_vni|
                                     interface_ip_vlan}]
     vxlan_auto_config_rd=
                                     {as_vni|as_vlan|nexthop_as|nexthop_vni|
                                     nexthop_vlan|router_id_as|router_id_vni|
                                     router_id_vlan|gateway_ip_as|
                                     gateway_ip_vni|gateway_ip_valn|interface_ip_as|
                                     interface_ip_vni|interface_ip_vlan}]
     vxlan_route_target= <AS:Number|IPv4:Number>
     vxlan_route_target_step= <AS:Number|IPv4:Number>
     vxlan_route_dist= <AS:Number|IPv4:Number>
     vxlan_route_dist_step= <AS:Number|IPv4:Number>
     vxlan_evpn_ip_prefix_gateway_type= {vaipaddress|vtepipaddress}
     vxlan_evpn_router_mac_addr= <aa:bb:cc:dd:ee:ff>
     vxlan_evpn_router_mac_addr_step= <aa:bb:cc:dd:ee:ff>
     vxlan_vaip_addr= <a.b.c.d>
     vxlan_vaip_addr_step= <a.b.c.d>
     vxlan_va_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
     vxlan_va_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>

     Configure NonVXLAN= port

     use_non_vxlan_ports=  {true|false}


     Configure Traffic

     create_traffic= {true|false}
     traffic_flow= {bidirectional|host_to_vxlan|vxlan_to_host}
     traffic_frame_size= <12-16383>
     traffic_load_percent_ports= <1-100>
     traffic_type= {ipv4|mac}

     vxlan_use_remote_nve= {true | false}
     vxlan_remote_nve= <a.b.c.d>
     vxlan_remote_nve_step= <a.b.c.d>
     enable_flood= {true|false}
     flood_vtep_list= <IP list>

Arguments:

handle
                The VXLAN wizard configuration handle returned by the current
                function. Note: This handle cannot be used with mode delete.

mode
                Specifies the action to perform. The modes are described
                below::


                 create   Creates the VXLAN test topology

                 delete   Deletes the specified VM, VTEP, or host

                The default value is create.

auto_select_udp_src_port
                Determines whether to generate port numbers automatically.
                Possible values are true and false. If it is set to true,
                Spirent HLTAPI will assign port numbers automatically. The
                default value is true.

udp_checksum_enable
                Enables/disables UDP checksum. Possible values are true
                (enable) and false (disable). The default value is false.

udp_src_port
                Specifies the UDP source port of the first VTEP. You must
                set auto_select_udp_src_port to false. Possible values
                range from 1 to 65535. The default value is 1025.

udp_src_port_step
                Specifies the step value by which to create subsequent
                VTEPs. Possible values range from 1 to 32767. The default
                value is 1.

vteps_per_sub_interf_count
                Specifies the number of VTEP devices per subinterface.
                Possible values range from 1 to 10000. The default value is
                1.

host_ip_addr
                Specifies the host IP address. The default value is
                100.0.0.1.

ip_addr_step_per_segment
                Specifies the step value by which to create subsequent IP
                addresses across segments. The value must be in IPv4
                format. The default value is 0.0.1.0.

ip_prefix
                Length of the prefix portion of the IP address. Possible
                values range from 1 to 32. The default value is 24.

ip_addr_incr_per_port
                Specifies the step value by which to create subsequent IP
                addresses across ports. The value must be in IPv4 format.
                The default value is 0.0.0.0.

ip_addr_step
                Specifies the step value by which to create subsequent IP
                addresses. The default value is 0.0.0.1.

mac_addr
                Specifies the value of the first MAC address. This argument
                is available when vxlan_vm_mode is set to vmdevice. The
                default value is 00:00:10:01:00:00.

mac_addr_step
                Specifies the step value by which to create subsequent MAC
                addresses. This argument is available when vxlan_vm_mode
                is set to vmdevice. The default value is 00:00:00:00:00:01.

use_same_vnis_across_ports
                Determines whether to use the same VNI across the ports.
                Possible values are true and false. If it is set to true,
                the VNI will remain the same across the ports. The default
                value is true.

use_same_vnis_across_vteps
                Determines whether to restart the VNI numbering for each
                VTEP. Possible values are true and false. If it is set to
                true, Spirent HLTAPI will restart the VNI numbering for
                each VTEP. The default value is true.

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

vlan_id
                Specifies the first VLAN ID. You must set vlan_enable to
                true. Possible values range from 1 to 4095. The default
                value is 1.

vlan_id_step
                Specifies the step value by which to create subsequent VLAN
                IDs. Possible values range from 1 to 4095. The default
                value is 1.

vms_per_segment
                Specifies the number of VMs per segment. Possible values
                range from 1 to 10000. The default value is 1.

vni
                Specifies the initial VXLAN Network Identifier (VNI).
                Possible values range from 1 to 16777215. The default value
                is 100.

vni_step
                Specifies the step value by which to create subsequent
                VNIs. Possible values range from 1 to 10000. The default
                value is 1.

vxlan_segments_per_vtep
                Specifies the number of segments per VTEP. The default
                value is 1.

dut_as
                Specifies the AS number of the DUT. Possible values range
                from 1 to 65535. The default value is 1.

dut_as_4byte
                Specifies the 4byte AS of the DUT. The value must be in
                format of number:number. The default value is 1:1.

dut_ip_addr
                Specifies the IP address of the DUT. The default value is
                10.0.0.1.

dut_ip_addr_step
                Specifies the step value by which to create subsequent DUT
                IP addresses. The value must be in IPv4 format. The default
                value is 0.0.0.1.

igmp_multicast_version
                Specifies the version of the IGMP to use. You must set
                vxlan_segment_multicast_type to igmp. Possible values are
                igmp_v2 and igmp_v3. The default value is igmp_v2.

pim_mode_vxlan
                Specifies the multicast mode to use for PIM. You must set
                vxlan_segment_multicast_type to pim. Possible values are::


                 sm   PIMSM
                 ssm  PIMSSM

                The default value is sm.

use_bi_dir
                Enables or disables bidirectional Hello Option set. You
                must set vxlan_segment_multicast_type to pim. Possible
                values are true (enable) and false (disable). The default
                value is false.

vxlan_multicast_ip_addr
                Specifies the IP address of the first multicast group. The
                default value is 225.0.0.1.

vxlan_multicast_ip_addr_step
                Specifies the step value by which to create subsequent IP
                addresses for multicast groups. The value must be in IPv4
                format. The default value is 0.0.0.1.

vxlan_multicast_rp_addr
                Specifies the IP address of the rendezvous point (RP). You
                must set pim_mode_vxlan to sm. The default value is
                192.0.0.1.

vxlan_segment_multicast_type
                Specifies the multicast protocol. You must set
                vxlan_segment_type to multicast_learning. Possible values
                are igmp and pim. The default value is igmp.

vxlan_segment_type
                Specifies the learning type of the VXLAN segment.
                Possible values are described below::


                 evpn_learning              EVPN overlay learning
                 multicast_learning         Multicast learning
                 unicast_and_multicast      Unicast and multicast learning
                 unicast_configuration      Unicast learning

                The default value is unicast_configuration.

vxlan_active_standby_mode
                Specifies the Multihoming type. Possible values are
                all_active single_active. The default value is
                single_active.

vxlan_ether_segment_id
                Specifies the Ethernet Segment ID (ESI) for the EVPN route.
                The value must be in the format of AS:Value
                (X:X:X:X:X:X:X:X:X). The default value is
                00:00:00:00:00:00:00:00:00.

vxlan_ether_segment_id_step
                Specifies the step value by which to create subsequent
                ESIs. The value must be in the format of AS:Value
                (X:X:X:X:X:X:X:X:X). The default value is
                00:00:00:00:00:00:00:00:00.

vxlan_ether_segment_value_type
                Specifies the type of the Ethernet segment value. Possible
                values are described below::


                 type0       Operator
                 type1       IEEE 802.1AX, LACP
                 type2       Bridged LAN
                 type3       MAC Based
                 type4       Router ID
                 type5       Autonomous System

                The default value is type0.

vxlan_ether_tag_id
                Specifies the Ethernet tag value to identify a broadcast
                domain. Possible values range from 0 to 4294967295. The
                default value is 0.

vxlan_evpn_ip_prefix_gateway_type
                Specifies the gateway type for IP prefix routes. Possible
                values are described below::


                 vaipaddress      Virtual Appliance (VA) IP address
                 vtepipaddress    VTEP IP address

                The default value is vaipaddress.

vxlan_evpn_router_mac_addr
                Specifies the MAC address of the virtual appliance.
                The default value is 00:00:00:00:00:00.

vxlan_evpn_router_mac_addr_step
                Specifies the step value by which to create subsequent MAC
                addresses for virtual appliances. The value must be in MAC
                format. The default value is 00:00:00:00:00:01.

vxlan_evpn_router_mac_ext_community
                Specifies whether to advertise the Router's MAC extended
                community attribute in IP Prefix routes. Possible values
                are true and false. When it is set to true, the Router's
                MAC extended community attribute will be advertised in IP
                Prefix routes. The default value is false.

vxlan_evpn_topology_types
                Specifies the topology to use to create the routes.
                Possible values are described below::


                 custom           Custom
                 multihome        Multihomed topology
                 singlehome       Singlehomed topology

                The default value is singlehome.

vxlan_route_dist
                Specifies the route distinguisher of the first VRF. The
                value must be in format of AS:Number or IPv4:Number. The
                default value is 192.0.0.1:1.

vxlan_route_dist_step
                Specifies the step value by which to create subsequent
                route distinguishers. The value must be in format of
                AS:Number or IPv4:Number. The default value is 0:1.

vxlan_route_target
                Specifies the route target value of the first VRF. The
                value must be in format of AS:Number or IPv4:Number. The
                default value is 100:1.

vxlan_route_target_step
                Specifies the step value by which to create subsequent
                route targets. The value must be in format of AS:Number or
                IPv4:Number. The default value is 0:1.

vxlan_vaip_addr
                Specifies the IP address of the virtual appliance. This
                argument is available when vxlan_evpn_ip_prefix_gateway_type
                is set to vaipaddress. The default value is 0.0.0.0.

vxlan_vaip_addr_step
                Specifies the step value by which to create subsequent IP
                addresses for virtual appliances. This argument is
                available when vxlan_evpn_ip_prefix_gateway_type is set to
                vaipaddress. The default value is 0.0.0.1.

vxlan_wizard_ad_route
                Specifies whether to create EVPN AD routes. Possible values
                are true and false. When it is set to true, EVPN AD routes
                will be created. The default value is false.

vxlan_wizard_ad_route_esi
                Specifies whether the type of AD routes to be created is
                per ESI. You must set vxlan_evpn_topology_types to custom.
                Possible values are true (per ESI) and false. The default
                value is false.

vxlan_wizard_ad_route_evi
                Specifies whether the type of AD routes to be created is
                per EVI. Possible values are true (per EVI) and false. The
                default value is false.

vxlan_wizard_ad_route_type
                Specifies the type of AD routes to be created. You must set
                vxlan_evpn_topology_types to multihome or custom. Possible
                values are per_esi and per_evi. The default value is
                per_esi.

vxlan_wizard_ether_segment_route
                Specifies whether to create EVPN Ethernet Segment routes.
                You must set vxlan_evpn_topology_types to custom. Possible
                values are true and false. When it is set to true, EVPN
                Ethernet Segment routes will be created. The default value
                is true.

vxlan_wizard_inclusive_multicast_route
                Specifies whether to create EVPN IP prefix routes. You must
                set vxlan_evpn_topology_types to custom. Possible values
                are true and false. When it is set to true, EVPN Inclusive
                Multicast routes will be created. The default value is
                true.

vxlan_wizard_ip_prefix_route
                Specifies whether to create EVPN Inclusive Multicast
                routes. Possible values are true and false. When it is set
                to true, EVPN Inclusive Multicast routes will be created.
                The default value is true.

vxlan_wizard_mac_ip_route
                Specifies whether to create EVPN MAC/IP routes. You must
                set vxlan_evpn_topology_types to custom. Possible values
                are true and false. When it is set to true, EVPN MAC/IP
                routes will be created. The default value is true.

create_traffic
                Determines whether to create traffic. Possible values are
                true and false. When it is set to true, traffic_flow,
                traffic_frame_size, traffic_load_percent_ports, and
                traffic_type are available to create streamblocks. The
                default value is false.

traffic_flow
                Defines the type of the traffic flow. Possible values are
                described below::


                 bidirectional      Bidirectional
                 host_to_vxlan      Unidirectional from the host
                 vxlan_to_host      Unidirectional to the host

                The default value is bidirectional.

traffic_frame_size
                Specifies the size of frames to generate. Possible values
                range from 12 to 16383. The default value is 1518.

traffic_load_percent_ports
                Specifies the percent of traffic load generated on each
                port. Possible values range from 0 to 100. The default
                value is 10.

traffic_type
                Specifies the traffic type. Possible values are ipv4 and
                mac. The default value is ipv4.

gateway_ip_addr
                Specifies the first gateway IP address
                Values: IPv4
                Default: 100.0.0.1

gateway_ip_addr_step
                Specifies the increment value by which to create subsequent
                gateway IP addresses
                Values: IPv4
                Default: 0.0.0.1

gateway_ipv6_addr
                Specifies the gateway IPv6 address
                Values: IPv6
                Default: 2001::1

gateway_ipv6_addr_step
                Specifies the increment value by which to create subsequent
                gateway IPv6 addresses
                Values: IPv6
                Default: 0::1

host_ipv6_addr
                Specifies the first VM/host IPv6 address
                Values: IPv6
                Default: 2001::2

ipv6_addr_incr_per_port
                Specifies the increment value by which to create subsequent
                IPv6 addresses across ports
                Values: IPv6
                Default: 0::0

ipv6_addr_step
                Specifies the increment value by which to create subsequent
                IPv6 addresses
                Values: IPv6
                Default: 0::1

ipv6_addr_step_per_segment
                Specifies the increment value by which to create subsequent
                IPv6 addresses across segments
                Values: IPv6
                Default: 0::1:0

ipv6_prefix
                Specifies the prefix length of the IPv6 address
                Values: 0-128
                Default: 64

vxlan_host_l3_vni
                Specifies the value of the first VNI in the VXLAN segment
                Values: 0-16777215
                Default: 200


vxlan_host_l3_vni_step
                Specifies the increment value by which to create subsequent
                VNIs in the VXLAN segment
                Values: 0-100000
                Default: 1

l3_vni_for_evpn_learning
                Enables or disables Layer 3 VNI for EVPN Type-2 advertising
                Values: true, false
                Default: false

segments_per_block
                Specifies the number of segments per block
                Values: 1-65535
                Default: 1

vms_per_vtep
                Specifies the number of VMs per VTEP
                Values: 0-10000
                Default:  0

vxlan_ip_type
                Specifies the address configuration mode
                Values: ipv4, ipv4andipv6, ipv6, mac
                Default: ipv4

as_byte_mode
                Specifies the type of Autonomous System (AS) number
                Dependency: vxlan_segment_type evpn_learning
                Values::


                 as2byte   2byte AS

                 as4byte   4byte AS

                Default: as2byte

as_num
                Specifies the 2byte AS number
                Dependency: vxlan_segment_type evpn_learning
                Values: 1-65535
                Default: 1

as_num_4byte
                Specifies the 4byte AS number
                Dependency: vxlan_segment_type evpn_learning
                Values: string
                Default: 1.1

as_num_4byte_step
                Specifies the increment value by which to create subsequent
                4byte AS numbers
                Dependency: vxlan_segment_type evpn_learning
                Values: string
                Default: 0

as_num_4byte_step_per_port
                Specifies the increment value by which to create subsequent
                4byte AS numbers across ports
                Dependency: vxlan_segment_type evpn_learning
                Values: string
                Default: 0

as_num_step
                Specifies the increment value by which to create subsequent
                2byte AS numbers
                Dependency: vxlan_segment_type evpn_learning
                Values: 0-65535
                Default: 1

as_num_step_per_port
                Specifies the increment value by which to create subsequent
                2byte AS numbers across ports
                Dependency: vxlan_segment_type evpn_learning
                Values: 0-65535
                Default: 0

bgp_mode
                Specifies the BGP mode to use for EVPN overlay
                Dependency: vxlan_segment_type evpn_learning
                Values: ebgp (external BGP), ibgp (internal BGP)
                Default: ebgp

config_l3_vni
                Enables or disables Layer 3 VNI for EVPN overlay
                Dependency: vxlan_segment_type evpn_learning
                Values: true, false
                Default: false

dut_as_num_4byte_step
                Specifies the increment value by which to create subsequent
                4byte DUT AS numbers
                Dependency: vxlan_segment_type evpn_learning
                Values: string
                Default: 0

dut_as_num_4byte_step_per_port
                Specifies the increment value by which to create subsequent
                4byte DUT AS numbers across ports
                Dependency: vxlan_segment_type evpn_learning
                Values: string
                Default: 0

dut_as_num_step_per_port
                Specifies the increment value by which to create subsequent
                DUT AS numbers across ports
                Dependency: vxlan_segment_type evpn_learning
                Values: 0-65535
                Default:  0

dut_as_step
                Specifies the increment value by which to create subsequent
                DUT AS numbers
                Dependency: vxlan_segment_type evpn_learning
                Values: 0-65535
                Default: 1

use_vxlan_ports
                Enables or disables configurations on VXLAN ports
                Values: true, false
                Default: true

vxlan_va_ipv6_addr
                Specifies the first virtual appliance's IPv6 address in the
                IP prefix route
                Dependency: vxlan_segment_type evpn_learning AND
                            vxlan_wizard_ip_prefix_route true
                Values: IPv6
                Default: 2002::1

vxlan_va_ipv6_addr_step
                Specifies the increment value by which to create subsequent
                IPv6 addresses for virtual appliances
                Dependency: vxlan_wizard_ip_prefix_route true AND
                            vxlan_evpn_ip_prefix_gateway_type vaipaddress
                Values: IPv6
                Default: 0::1

vxlan_wizard_mac_and_ip_route
                Enables or disables MAC and IP routes (Type 2)
                Dependency: vxlan_segment_type evpn_learning
                Values: true, false
                Default: true

vxlan_wizard_mac_only_route
                Determines whether to only generate MAC routes for Type 2
                routes
                Dependency: vxlan_wizard_mac_and_ip_route true
                Values: true, false
                Default: true

l3_vni
                Specifies the first VNI for the VXLAN segment
                Dependency: l3_vni_for_evpn_learning true
                Values: 0-16777215
                Default: 1000

l3_vni_step
                Specifies the increment value by which to create subsequent
                VNIs for the VXLAN segment
                Dependency: l3_vni_for_evpn_learning true
                Values: 0-100000
                Default:  1

l3_vlan_enable
                Enables or disables VLAN tagging on the Layer 3 VM
                Dependency: config_l3_vni true
                Values: true, false
                Default: false

l3_host_ip_addr
                Specifies the first IP address for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: IPv4
                Default: 200.0.0.2

l3_ip_addr_step_per_segment
                Specifies the increment value by which to create subsequent
                IP addresses for Layer 3 VM devices across segments
                Dependency: config_l3_vni true
                Values: IPv4
                Default: 0.0.1.0

l3_ip_prefix
                Specifies the IP prefix length for the Layer 3 VM
                Dependency: config_l3_vni true
                Values: 0-32
                Default: 24

l3_ip_addr_incr_per_port
                Specifies the increment value by which to create subsequent
                IP addresses for Layer 3 VM devices across ports
                Dependency: config_l3_vni true
                Values: IPv4
                Default: 0.0.0.0

l3_ip_addr_step
                Specifies the increment value by which to create subsequent IP
                addresses for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: IPv4
                Default: 0.0.0.1

l3_mac_addr
                Specifies the first MAC address for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: MAC
                Default: 00:00:20:01:00:00

l3_mac_addr_step
                Specifies the increment value by which to create subsequent
                MAC addresses
                Dependency: config_l3_vni true
                Values: MAC
                Default: 00:00:00:00:00:01

l3_use_same_vnis_across_ports
                Determines whether to use the same VNI across ports
                Dependency: config_l3_vni true
                Values: true, false
                Default: true

l3_use_same_vnis_across_vteps
                Determines whether to use the same VNI across VTEPs
                Dependency: config_l3_vni true
                Values: true, false
                Default: true

l3_vlan_id
                Specifies the first VLAN ID for the Layer 3 VM
                Dependency: config_l3_vni true
                Values: 0-4095
                Default: 1

l3_vlan_id_step
                Specifies the increment value by which to create subsequent
                VLAN IDs for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: 0-4095
                Default: 1

l3_vms_per_segment
                Specifies the number of VMs per segment
                Dependency: config_l3_vni true
                Values: 0-10000
                Default: 1

l3_vxlan_segments_per_vtep
                Specifies the number of VXLAN segments per VTEP
                Dependency: config_l3_vni true
                Values: 1-65535
                Default: 1

l3_gateway_ip_addr
                Specifies the first gateway IP address for Layer 3 VM
                devices
                Dependency: config_l3_vni true
                Values: IPv4
                Default: 200.0.0.1

l3_gateway_ip_addr_step
                Specifies the increment value by which to create subsequent
                gateway IP addresses for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: IPv4
                Default: 0.0.0.1

l3_gateway_ipv6_addr
                Specifies the first gateway IPv6 address for Layer 3 VM
                devices
                Dependency: config_l3_vni true
                Values: IPv6
                Default: 4001::1

l3_gateway_ipv6_addr_step
                Specifies the increment value by which to create subsequent
                gateway IPv6 addresses for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: IPv6
                Default: 0::1

l3_host_ipv6_addr
                Specifies the first IPv6 address for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: IPv6
                Default: 4001::2

l3_ipv6_addr_incr_per_port
                Specifies the increment value by which to create subsequent
                IPv6 addresses for Layer 3 VM devices across ports
                Dependency: config_l3_vni true
                Values: IPv6
                Default: 0::0

l3_ipv6_addr_step
                Specifies the increment value by which to create subsequent
                IPv6 addresses for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: IPv6
                Default: 0::1

l3_ipv6_addr_step_per_segment
                Specifies the increment value by which to create subsequent
                IPv6 addresses for Layer 3 VM devices across segments
                Dependency: config_l3_vni true
                Values: IPv6
                Default: 0::1:0

l3_ipv6_prefix
                Specifies the prefix length for the IPv6 address of the
                Layer 3 VM device
                Dependency: config_l3_vni true
                Values: 0-128
                Default: 64

l3_mac_add_prefix
                Specifies the prefix length for the MAC address of the
                Layer 3 VM device
                Dependency: config_l3_vni true
                Values: 1-48
                Default: 48

l3_vni_params
                Specifies the first VNI for the Layer 3 VNI segment
                Dependency: config_l3_vni true
                Values: 0-16777215
                Default: 1000

l3_vni_step_params
                Specifies the increment value by which to create subsequent
                VNIs in the Layer 3 VNI segment
                Dependency: config_l3_vni true
                Values: 0-100000
                Default: 1

l3_segments_per_block
                Specifies the number of Layer 3 VNI segments per block
                Dependency: config_l3_vni true
                Values: 1-65535
                Default:  1

l3_vxlan_ip_type
                Specifies the address configuration mode for Layer 3 VM devices
                Dependency: config_l3_vni true
                Values: ipv4, ipv4andipv6, ipv6
                Default: ipv4

use_non_vxlan_ports
                Determines whether to configure nonVXLAN ports
                Values: true, false
                Default: true

mac_addr_prefix
                Specifies the prefix length of the VM's MAC address
                Values: 1-48
                Default: 48

bgp_session_ip_type
                Specifies the source of the BGP session IP address
                Dependency: l3_vni_for_evpn_learning true
                Values: internface_ip, router_id
                Default: internface_ip

use_gateway_as_dut
                Enables or disables using gateway as the DUT
                Dependency: l3_vni_for_evpn_learning true
                Values: true, false
                Default: true

vxlan_wizard_ipv4_unicast_route
                Determines whether to generate IPv4 unicast routes for the VTEP
                Values: true, false
                Default: false

vxlan_config_next_hop
                Determines whether to configure next hop addresses
                Values: true, false
                Default: false

vxlan_next_hop_addr
                Specifies the first next hop address for the EVPN route
                Dependency: vxlan_config_next_hop true
                Values: IPv4
                Default: 192.168.100.2

vxlan_next_hop_step_per_device
                Specifies the increment value by which to create subsequent next
                hop addresses across devices
               Dependency: vxlan_config_next_hop true
                Values: IPv4
                Default: 0.0.0.1

vxlan_next_hop_step_per_port
                Specifies the increment value by which to create subsequent next
                hop addresses across ports
                Dependency: vxlan_config_next_hop true
                Values: IPv4
                Default: 0.0.0.1

vxlan_auto_config_rd_rt
                Determines whether to configure VRF route targets and route
                distinguishers from a list of predefined options
                Values::


                 true       Configure VRF route targets and route distinguishers
                            from a list of predefined options

                 false      Configure specific values manually

                Default: true

vxlan_auto_config_rt
                Specifies the pattern used to configure route targets
                Dependency: vxlan_auto_config_rd_rt true
                Values::


                  as_vni                             AS:VNI
                  as_vlan                            AS:VLAN
                  nexthop_as                         NEXTHOP:AS
                  nexthop_vni                        NEXTHOP:VNI
                  nexthop_vlan                       NEXTHOP:VLAN
                  route_id_as                        RouterID:AS
                  router_id_vni                      RouterID:VNI
                  router_id_vlan                     RouterID:VLAN
                  gateway_ip_as                      GatewayIP:AS
                  gateway_ip_vni                     GatewayIP:VNI
                  gateway_ip_vlan                    GatewayIP:VLAN
                  interface_ip_as                    InterfaceIP:AS
                  interface_ip_vni                   InterfaceIP:VNI
                  interface_ip_vlan                  InterfaceIP:VLAN

                Default: as_vni

vxlan_auto_config_rd
                Specifies the pattern used to configure route distinguishers
                Dependency: vxlan_auto_config_rd_rt true
                Values::


                  as_vni                             AS:VNI
                  as_vlan                            AS:VLAN
                  nexthop_as                         NEXTHOP:AS
                  nexthop_vni                        NEXTHOP:VNI
                  nexthop_vlan                       NEXTHOP:VLAN
                  router_id_as                        RouterID:AS
                  router_id_vni                      RouterID:VNI
                  router_id_vlan                     RouterID:VLAN
                  gateway_ip_as                      GatewayIP:AS
                  gateway_ip_vni                     GatewayIP:VNI
                  gateway_ip_vlan                    GatewayIP:VLAN
                  interface_ip_as                    InterfaceIP:AS
                  interface_ip_vni                   InterfaceIP:VNI
                  interface_ip_vlan                  InterfaceIP:VLAN

                Default: as_vni

vxlan_use_remote_nve
                Enable or disable the Remote Network Virtual Interface for the VM.
                Dependency: communication_type unicast_configuration.
                Possible values are true (enable) and false(disable).
                The default is false.

vxlan_remote_nve
                Specifies the remote Network Virtual Interface for the VM.
                Dependency: communication_type unicast_configuration.
                The default is 1.1.1.1.

vxlan_remote_nve_step
                Specifies the step value for the remote Network Virtual Interface
                for the VM.
                Dependency: communication_type unicast_configuration.
                The default is none.

enable_flood
                Option to enable Flood VTEP List population.
                The default is false.

flood_vtep_list
                List of Remote VTEP IP addresses for flooding.
                The default is 0.0.0.0.

Arguments Unsupported by Save as HLTAPI:

This function is currently not supported by Save as HLTAPI.
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                  The VXLAN wizard configuration handle
vtep_handle             A list of VTEP device handles
vm_handle               A list of VM device handles
host_handle             A list of host handles
vxlanseg_handle         The VXLAN segment handle
status                  Success (1) or failure (0) of the operation
log                     An error message (if the operation failed)
Description:

The emulation vxlan wizard config function configures VXLAN topology, mapping the operations of VXLAN wizard in the Spirent TestCenter GUI. It takes VTEP/VM handles returned by emulation vxlan port config VXLAN=hosts returned by emulation nonvxlan port config, and creates a VXLAN topology.

Use the mode argument to specify the operation to perform. See the mode argument for a description of the actions.

Examples:

The following example configures a VXLAN topology:

set VxWizard [emulation vxlan wizard config
  mode=                                             create
  auto_select_udp_src_port=                         false
  udp_src_port=                                     1026
  vteps_per_sub_interf_count=                       1
  vms_per_segment=                                  5
  vlan_enable=                                      false
  host_ip_addr=                                     1.1.1.1
  ip_addr_step_per_segment=                         0.0.0.2
  ip_prefix=                                        24
  mac_addr=                                         00:10:94:11:00:11
  vxlan_segment_type=                               multicast_learning
  vxlan_multicast_ip_addr=                          225.10.10.10
  vxlan_segment_multicast_type=                     igmp
  vxlan_active_standby_mode=                        single_active
  vxlan_ether_segment_value_type=                   type1
  vxlan_wizard_ether_segment_route=                 false
  vni=                                              100
  vxlan_segments_per_vtep=                          1
  use_same_vnis_across_vteps=                       false
  create_traffic=                                   true
  traffic_flow=                                     host_to_vxlan
  traffic_frame_size=                               512
  traffic_load_percent_ports=                       5
  traffic_type=                                     ipv4]

Sample Output:

{vtep_handle vm_handle host_handle vxlanseg_handle handle status}

End of Procedure Header

emulation vxlanvm wizard config

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

Purpose:
This is a Spirent Extension created to configure the VXLAN VM, mapping the operations of VXLAN Add VMs wizard in the Spirent TestCenter GUI.

Synopsis:

Note: M indicates the argument is `Mandatory`.

   emulation vxlanvm wizard config

     port_handle= <port_handle>
     mode= {create}
     vxlanseg_handle= <segment_handle>
     endpoint_handles= <endpoint_handles>

Arguments:

port_handle
                Specifies the port handle used for VXLAN VM wizard configuration

mode
                Specifies the action to perform. The modes are described
                below::


                 create   Creates the VXLAN VM

                The default value is create.

vxlanseg_handle
                Specifies the VXLAN segment handle used to add VXLAN VM.
                Can be vxlanseg_handle returned from emulation vxlan wizard config

endpoint_handles
                Specifies the endpoints handles (device handles) for adding VXLAN VM
                under port_handle.

Arguments Unsupported by Save as HLTAPI:

This function is currently not supported by Save as HLTAPI.
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:
Adding VXLAN VM for the endpoint handles under port handle and vxlan segment handle.
Examples:

The following example addes VXLAN VM or $devices, $seghnd is vxlanseg_handle returned from emulation vxlan wizard config:

emulation vxlanvm wizard config endpoint_handles=$devices port_handle port2 -vxlanseg_handle $seghnd

Sample Output:

{status 1}

End of Procedure Header

emulation vxlan global config

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

Purpose:

Spirent Extension (for Spirent HLTAPI only).

Configures VXLAN global configuration.

Synopsis:

Note: M indicates the argument is `Mandatory`.

       emulation vxlan global config
           discard_evpn_learning= {true | false}
           enable_drv_vxlan_bindings= {true | false}
           enable_evpn_overlay_irb= {true | false}
           enable_evpn_type5_va= {true | false}
           enable_traffic_scale_evpn_learning= {true | false}
           enable_vxlan_flow_based_traffic= {true | false}
           enable_vxlan_scale= {true | false}
           evpn_overlay_irb_mode= {asymmetric | symmetric}

Arguments:

discard_evpn_learning
                Determines whether to ignore EVPN learning and use the
                manual configuration instead. Possible values are true and
                false. The default value is false.

enable_drv_vxlan_bindings
                Determines whether to enable DRV for VXLAN Bindings.
                Possible values are true and false. When it is set to true,
                enables updating of bindings to dynamic results view(VXLAN
                Binding Results). The default value is false.

enable_evpn_overlay_irb
                Determines whether to use integrated routing and bridging.
                Possible values are true and false. The default value is false.

enable_evpn_type5_va
                Determines whether to use the virtual appliance IP address as
                the gateway address for Type 5 routes. Possible values are true
                and false. The default value is false.

enable_traffic_scale_evpn_learning
                Determines whether to optimize highscale, traffic-only testing
                of VTEPs using EVPN learning. Possible values are true and false.
                The default value is false.

enable_vxlan_flow_based_traffic
                Determines whether to optimize highscale, traffic-only testing
                of all VTEPs using unicast, multicast or EVPN learnings.
                Possible values are true and false. The default value is false.

enable_vxlan_scale
                Determines whether to optimize highscale testing of VTEPs with
                one VNI using multicast learning. Possible values are true and
                false. The default value is true.

evpn_overlay_irb_mode
                Specifies the mode of integrated routing and bridging. Possible
                values are true and false. In Asymmetric mode, Option
                config_l3_vni must be disabled in VXLAN segment. In Symmetric
                mode if Router MAC extended community is not enabled in route for
                a traffic endpoint then VM MACs in traffic packet will not be
                overwritten with VTEP Router MAC. Before selecting  Symmetric mode
                ensure that Router MAC extended community is enabled in route
                and must be in applied state.
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 vxlan global config function configures VXLAN global configuration.

If the operation fails, Spirent HLTAPI returns an error message.

Examples:

The following example configures VXLAN global configuration.

set VxGlobalConfig [emulation vxlan global config
discard_evpn_learning= false enable_vxlan_bindings_result_view= false enable_evpn_overlay_irb= true enable_type5_overlay_index= true enable_traffic_scale_evpn_learning= false enable_vxlan_flow_based_traffic= false enable_vxlan_vteps_scale_option= true evpn_overlay_irb_mode= symmetric ]

Sample Output:

{status 1}

End of Procedure Header

emulation vxlan macmobility wizard config

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

Purpose:
Configures VXLAN MAC mobility.

Synopsis:

Note: M indicates the argument is `Mandatory`.

       emulation vxlan macmobility wizard config
           dst_sb_handle= <streamblock handle>
           evpn_mac_adv_routes_handle= <route handle>
           vm_device_handle= <VM handle> M
           vtep_handle= <VTEP handle> M
           vxlan_seg_handle= <segment handle> M
           src_sb_handle= <streamblock handle>
           next_hop= <a.b.c.d>
           route_distinguisher= <IPv4:value>
           route_distinguisher_step= <string>
           route_target= <string>
           route_target_step= <string>

Arguments:

dst_sb_handle
                Specifies the destination streamblock handle.

evpn_mac_adv_routes_handle
                Specifies the EVPN MAC advertisement route handle.

vm_device_handle
                Specifies the handles of VM devices on the source side.
                This argument is `Mandatory`.

vtep_handle
                Specifies the VXLAN VTEP handles. This argument is `Mandatory`.

vxlan_seg_handle
                Specifies the VXLAN segment handle. This argument is `Mandatory`.

src_sb_handle
                Specifies the destination streamblock handle.

next_hop
                Specifies the first next hop address for new type2 router.
                The default value is 0.0.0.0.

route_distinguisher
                Specifies the configuration of VRF route distinguisher
                for new type2 router. The default value is 192.0.0.1:1.

route_distinguisher_step
                Specifies the VRF route distinguisher step value for
                new type2 router. The default value is 0:1.

route_target
                Specifies the configuration of VRF route target for
                new type2 router. The default value is 100:1.

route_target_step
                Specifies the configuration of VRF route target step
                value for new type2 router. The default value is 0:1.
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           Configured VXLAN MAC mobility handle
status           Success (1) or failure (0) of the operation
log              An error message (if the operation failed)
Description:

The emulation vxlan macmobility wizard config function configures VXLAN MAC mobility.

If the operation fails, Spirent HLTAPI returns an error message.

Examples:

The following example configures VXLAN MAC mobility configuration.

set VxGlobalConfig [emulation vxlan macmobility wizard config
discard_evpn_learning= false vm_device_handle= $vm_hnd vtep_handle= $vtep_hnd vxlan_seg_handle= $seg_hnd next_hop= 15.1.1.1 route_distinguisher= 65.50.50.1:5 route_target= 222:3

Sample Output:

{handle macmobilitygenparams1} {status 1}

End of Procedure Header