MVPN Functions

sth::emulation_mvpn_provider_port_config

Purpose

Adds or deletes an emulated provider-side test port.

Multicast VPN (MVPN) is a technology to deploy the multicast service in an existing Multiprotocol Label Switching (MPLS)/ Border Gateway Protocol (BGP) VPN. It transmits multicast data between private networks by encapsulating the original multicast packets.

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

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_mvpn_provider_port_config
    [-port_handle <port_handle>  M]
    [-action {add|delete}  M]
    [-dut_interface_ipv4_addr <a.b.c.d>]
    [-dut_interface_ipv4_addr_step <a.b.c.d>]
    [-dut_interface_ipv4_prefix_length <0-32>]
    [-dut_interface_ipv6_addr   <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
    [-dut_interface_ipv6_addr_step  <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
    [-dut_interface_ipv6_prefix_length <1-128>]
    [-mvpn_type {rosen|nextgen}]
    [-ng_encap  {ipv4|ipv6|ipv4v6}]
    [-ng_multicast_traffic_role {sender|receiver|sender_and_receiver}]
    [-sub_interface_enable {1|0}]
    [-sub_interface_count <1-95>]
    [-vlan_id <0-4095>]
    [-vlan_id_step <0-4095>]

Arguments

-port_handle

Specifies the test port to be added to MVPN provider side. This argument is Mandatory .

-action

Specifies the action to be performed. This argument is mandatory. Possible values are described below:

add      Adds a provider-side test port
delete   Deletes a provider-side test port
-dut_interface_ipv4_addr

Defines the first IPv4 address of the DUT interfaces connected to the port. The default value is “0.0.0.0”.

-dut_interface_ipv4_addr_step

Specifies the step size in which the DUT IPv4 address is incremented. The default value is 0.0.1.0. The number of times that the step repeats is same as the number of sub-interfaces. This argument is only applicable when -sub_interface_enable is enabled.

-dut_interface_ipv4_prefix_length

IPv4 address prefix length of DUT interface connected to the port. Possible values range from 0 to 32. The default value is 24.

-dut_interface_ipv6_addr

Spirent Extension (for Spirent HLTAPI only).

Specifies the first IPv6 address of the DUT interfaces connected to the port. The default value is ::.

-dut_interface_ipv6_addr_step

Spirent Extension (for Spirent HLTAPI only).

Specifies the step value to increment DUT IPv6 addresses. This argument is only available when -sub_interface_enable is enabled. The default value is 0:0:0:1::. The number of times that the step repeats is same as the number of sub-interfaces.

-dut_interface_ipv6_prefix_length

Spirent Extension (for Spirent HLTAPI only).

Specifies the IPv6 address’s prefix length of the DUT interface connected to the port. Possible values range from 1 to 128. The default value is 64.

-mvpn_type

Spirent Extension (for Spirent HLTAPI only).

Specifies the type of MVPN to be tested. Possible values are:

rosen     Rosen MVPN as specified in RFC 6037
nextgen   NG-MPVN as specified in RFC 6513/6514

The default value is rosen.

-ng_encap

Spirent Extension (for Spirent HLTAPI only).

Identifies the type of encapsulation for the NG-MVPN. Possible values are:

ipv4     IPv4 NG-MVPN
ipv6     IPv6 NG-MVPN
ipv4v6   Dual stack NG-MVPN

The default value is ipv4.

-ng_multicast_traffic_role

Spirent Extension (for Spirent HLTAPI only).

Specifies the role of the emulated device in multicast traffic. Possible values are:

sender                      Sender only
receiver                    Receiver only
sender_and_receiver         Sender and receiver

The default value is sender_and_receiver.

-sub_interface_enable

Determines whether the sub-interface on the DUT interface is enabled. Possible values are 0 (disabled) and 1 (enabled). The default value is 0. Sub-interfaces allow multiple routers and multiple VLANs to be created on each port. When this argument is enabled, you can specify the following arguments:: -sub_interface_count, -dut_interface_ipv4_addr_step, -vlan_id, and -vlan_id_step.

-sub_interface_count

Defines the number of sub-interfaces (VLANs) of the DUT interface. Possible values range from 1 to 95. The default value is 1. This argument is only applicable when -sub_interface_enable is enabled.

-vlan_id

Specifies the starting VLAN ID of DUT interfaces. Possible values range from 0 to 4095. The default value is 1. This argument is only applicable when -sub_interface_enable is enabled.

-vlan_id_step

Defines the step size in which the VLAN ID is incremented. Possible values range from 0 to 4095. The default is 1. This argument is only applicable when -sub_interface_enable is enabled.

Cisco-specific Arguments

None

Return Values

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

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

Description

The sth::emulation_mvpn_provider_port_config function adds or deletes an emulated MVPN provider-side test port. Use the -port_handle argument to specify the port to be added. Use the -action argument to specify the action to perform. (See the -action argument description for information about the actions.)

Use -action add to add one provider-side test port with the MVPN protocol. The added port can be removed with delete mode.

You can use -dut_interface_ipv4_addr, -dut_interface_ipv4_addr_step, and -dut_interface_ipv4_prefix_length to configure the DUT interface that is connected to the test port.

Use the -sub_interface_enable argument to determine whether the sub-interface on the DUT interface is enabled. -sub_interface_count, -dut_interface_ipv4_addr_step, -vlan_id, and -vlan_id_step are applicable only when the -sub_interface_enable option is enabled.

Examples

The following example adds a test port to MVPN provider side:

sth::emulation_mvpn_provider_port_config -port_handle $p1 \
           -action add \
           -dut_interface_ipv4_addr 6.145.1.1 \
           -dut_interface_ipv4_prefix_length 24 \
           -dut_interface_ipv4_addr_step 0.0.1.0

Sample output for example shown above:

{status 1}

The following example deletes a test port from MVPN provider side:

sth::emulation_mvpn_provider_port_config -port_handle $p1 \
             -action delete \

Sample output for example shown above:

{status 1}

The following example configures the provider router for the NG-MVPN:

set device_ret0_router0 [sth::emulation_mvpn_provider_port_config\
           -action add\
           -port_handle $port2\
           -dut_interface_ipv4_addr 10.1.1.1\
           -dut_interface_ipv4_addr_step 1.0.0.0\
           -dut_interface_ipv4_prefix_length 24\
           -mvpn_type nextgen\
           -ng_encap ipv4\
           -ng_multicast_traffic_role receiver\
     ]

End of Procedure Header

sth::emulation_mvpn_customer_port_config

Purpose

Adds or deletes a Multicast VPN emulation test port on the MVPN customer side.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_mvpn_customer_port_config
  [-port_handle <port_handle>  M]
  [-action {add|delete}   M]
  [-dut_interface_ipv4_addr <a.b.c.d>]
  [-dut_interface_ipv4_addr_step <a.b.c.d>]
  [-dut_interface_ipv4_prefix_length <0-32>]
  [-dut_interface_ipv6_addr   <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-dut_interface_ipv6_addr_step  <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-dut_interface_ipv6_prefix_length <1-128>]
  [-sub_interface_enable {1|0}]
  [-sub_interface_count <1-95>]
  [-vlan_id <0-4095>]
  [-vlan_id_step <0-4095>]
  [-mvpn_type {rosen|nextgen}]
  [-ng_encap  {ipv4|ipv6|ipv4v6}]
  [-ng_multicast_traffic_role {sender|receiver|sender_and_receiver}]

Arguments

-port_handle

Specifies the test port to be added to the MVPN customer side. This argument is Mandatory .

-action

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

add - Adds a customer-side test port
delete - Deletes a customer-side test port
-dut_interface_ipv4_addr

Defines the first IPv4 address of the DUT interfaces that are connected to the port. The default value is “0.0.0.0”.

-dut_interface_ipv4_addr_step

Specifies the step size in which the DUT IPv4 address is incremented. The default value is 0.0.1.0. The number of times that the step repeats is same as the number of sub-interfaces. This argument is only applicable when -sub_interface_enable is enabled.

-dut_interface_ipv4_prefix_length

Specifies the IPv4 address prefix length of DUT interface that is connected to the port. Possible values range from 0 to 32. The default value is 24.

-dut_interface_ipv6_addr

Spirent Extension (for Spirent HLTAPI only).

Specifies the first IPv6 address of the DUT interfaces connected to the port. The default value is ::.

-dut_interface_ipv6_addr_step

Spirent Extension (for Spirent HLTAPI only).

Specifies the step value to increment DUT IPv6 addresses. This argument is only available when -sub_interface_enable is enabled. The default value is 0:0:0:1::. The number of times that the step repeats is same as the number of sub-interfaces.

-dut_interface_ipv6_prefix_length

Spirent Extension (for Spirent HLTAPI only).

Specifies the IPv6 address’s prefix length of the DUT interface connected to the port. Possible values range from 1 to 128. The default value is 64.

-mvpn_type

Spirent Extension (for Spirent HLTAPI only).

Specifies the type of MVPN to be tested. Possible values are:

rosen     Rosen MVPN as specified in RFC 6037
nextgen   NG MPVN as specified in RFC 6513/6514

The default value is rosen.

-ng_encap

Spirent Extension (for Spirent HLTAPI only).

Identifies the type of encapsulation for the NG-MVPN. Possible values are:

ipv4     IPv4 NG-MVPN
ipv6     IPv6 NG-MVPN
ipv4v6   Dual stack NG-MVPN

The default value is ipv4.

-ng_multicast_traffic_role

Spirent Extension (for Spirent HLTAPI only).

Specifies the role of the emulated device in multicast traffic. Possible values are:

sender                      Sender only
receiver                    Receiver only
sender_and_receiver         Sender and receiver

The default value is sender_and_receiver.

-sub_interface_enable

Determines whether the sub-interface on the DUT interface is enabled. Possible values are 0 (disabled) and 1 (enabled). The default value is 0. Sub-interfaces allow multiple routers and multiple VLANs to be created on each port. When this argument is enabled, you can specify the following arguments:: -sub_interface_count, -dut_interface_ipv4_addr_step, -vlan_id, and -vlan_id_step.

-sub_interface_count

Defines the number of sub-interfaces (VLANs) of the DUT interface. Possible values range from 1 to 95. The default value is 1. This argument is only applicable when -sub_interface_enable is enabled.

-vlan_id

Specifies the starting VLAN ID of DUT interfaces. Possible values range from 0 to 4095. The default value is 1. This argument is only applicable when -sub_interface_enable is enabled.

-vlan_id_step

Defines the step size in which the VLAN ID is incremented. Possible values range from 0 to 4095. The default is 1. This argument is only applicable when -sub_interface_enable is enabled.

Cisco-specific Arguments

None

Return Values

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

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

Description

The sth::emulation_mvpn_customer_port_config function adds or deletes an emulated MVPN customer-side test port. Use the -port_handle argument to specify the port to be added. Use the -action argument to specify the action to perform. (See the -action argument description for information about the actions.)

For more information, you can refer to the description of the sth::emulation_mvpn_provider_port_config function. The usage of sth::emulation_mvpn_customer_port_config options is similar to that of the sth::emulation_mvpn_provider_port_config options.

Examples

The following example adds a test port to MVPN customer side:

sth::emulation_mvpn_customer_port_config -port_handle $p2 \
               -action add \
               -dut_interface_ipv4_addr 6.146.1.1 \
               -dut_interface_ipv4_prefix_length 24 \
               -dut_interface_ipv4_addr_step 0.0.1.0

Sample output for example shown above:

{status 1}

The following example deletes a test port from MVPN customer side:

sth::emulation_mvpn_provider_port_config -port_handle $p2 \
             -action delete \

Sample output for example shown above:

{status 1}

The following example configures the customer router for the NG-MVPN:

set device_ret0_router0 [sth::emulation_mvpn_customer_port_config\
       -action add\
       -port_handle $port1\
       -dut_interface_ipv4_addr 30.1.1.1\
       -dut_interface_ipv4_addr_step 0.0.0.0\
       -dut_interface_ipv4_prefix_length 24\
       -dut_interface_ipv6_addr 3001::1\
       -dut_interface_ipv6_addr_step ::1\
       -dut_interface_ipv6_prefix_length 64\
       -mvpn_type nextgen\
       -ng_encap ipv4v6 \
       -ng_multicast_traffic_role sender\
   ]

End of Procedure Header

sth::emulation_mvpn_config

Purpose

The sth::emulation_mvpn_config function configures an RFC 2547bis style MPLS IP VPN network topologies, creates emulated and simulated CE, P, and PE routers, selects and enables routing and labeling protocols, configures multicast VPNs, and creates the traffic that is sent between VPNs.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_mvpn_config
  [-dut_loopback_ipv4_addr <a.b.c.d>]
  [-dut_as <1-65535>]
  [-dut_4byte_as_enable {1|0}]
  [-dut_4byte_as <65535:65535>]
  [-igp_protocol { ospf|isis|rip }]
  [-mpls_protocol { ldp|rsvp }]
  [-bgp_bfd_enable {1|0}]
  [-mpls_rsvp_bandwidth_per_link {1-2147483647}]
  [-mpls_rsvp_bandwidth_per_tunnel {1-2147483647}]
  [-mpls_rsvp_egress_label { next_available|implicit_null|
       explicit_null }]
  [-mpls_rsvp_transit { accept_all|accept_configured }]
  [-mpls_rsvp_min_label {1-65535}]
  [-mpls_rsvp_max_label {1-65535}]
  [-mpls_rsvp_graceful_restart_enable {1|0}]
  [-mpls_rsvp_recover_time <0-4294967295>]
  [-mpls_rsvp_restart_time <0-4294967295>]
  [-mpls_rsvp_bfd_enable {1|0}]
  [-mpls_ldp_hello_type { direct|targeted}]
  [-mpls_ldp_transport_mode { none|tester_ip|router_id }]
  [-mpls_ldp_hello_interval <1-21845>]
  [-mpls_ldp_keepalive_interval <1-21845>]
  [-mpls_ldp_egress_label { next_available|implicit_null|explicit_null }
  [-mpls_ldp_min_label <1-65535>]
  [-mpls_ldp_graceful_restart_enable {1|0}]
  [-mpls_ldp_recover_time <0-4294967>]
  [-mpls_ldp_reconnect_time <0-4294967>]
  [-mpls_ldp_bfd_enable {1|0}]
  [-igp_ospfv2_area_id <a.b.c.d>]
  [-igp_ospfv2_network_type {native|broadcast|p2p}]
  [-igp_ospfv2_router_priority <0-255>]
  [-igp_ospfv2_interface_cost <1-65535>]
  [-igp_ospfv2_options {tbit|ebit|mcbit|npbit|eabit|dcbit|obit|unused7}]
  [-igp_ospfv2_authentication_mode {none|simple|md5}]
  [-igp_ospfv2_authentication_password <password>]
  [-igp_ospfv2_authentication_md5_key <0-255>]
  [-igp_ospfv2_graceful_restart_enable {1|0}]
  [-igp_ospfv2_graceful_restart_type {none|rfc_standard|ll_signalling}]
  [-igp_ospfv2_bfd_enable {1|0}]
  [-igp_isis_level {level1|level2|level1_and_2}]
  [-igp_isis_network_type {broadcast|p2p}]
  [-igp_isis_router_priority <0-127>]
  [-igp_isis_area1 <ANY>]
  [-igp_isis_area2 <ANY>]
  [-igp_isis_area3 <ANY>]
  [-igp_isis_circuit_id <0-255>]
  [-igp_isis_authentication_mode {none|simple|md5 }]
  [-igp_isis_authentication_password <ANY>]
  [-igp_isis_authentication_md5_key <0-255>]
  [-igp_isis_metric_mode {narrow|wide|narrow_and_wide}]
  [-igp_isis_l1_metric <1-63>]
  [-igp_isis_l1_wide_metric <0-16777215>]
  [-igp_isis_l2_metric <1-63>]
  [-igp_isis_l2_wide_metric <0-16777215>]
  [-igp_isis_graceful_restart_enable {1|0}]
  [-igp_isis_hello_padding {1|0}]
  [-igp_isis_bfd_enable {1|0}]
  [-ipv4_unique_groups_per_sender {0|1}]
  [-ipv4_starting_group_address <a.b.c.d>]
  [-ipv4_group_count <1-65535>]
  [-ipv4_group_address_increment <a.b.c.d>]
  [-ipv6_unique_groups_per_sender  {0|1}]
  [-ipv6_starting_group_address <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-ipv6_group_count  <1-65535>]
  [-ipv6_group_address_increment <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-ipv6_vpn_route_mpls_label_type  {site|route}]
  [-p_router_enable {1|0}]
  [-p_router_number_per_sub_interface <1-65535>]
  [-p_router_topology_type {tree|grid}
  [-p_router_loopback_ipv4_addr <a.b.c.d>]
  [-p_router_loopback_ipv4_addr_step <a.b.c.d>]
  [-p_router_interface_ipv4_addr <a.b.c.d>]
  [-p_router_interface_ipv4_addr_prefix_length <0-32>]
  [-pe_router_number_per_sub_interface <1-65535>]
  [-pe_router_loopback_ipv4_addr <a.b.c.d>]
  [-pe_router_loopback_ipv4_addr_step <a.b.c.d>]
  [-bgp_route_reflector_enable {1|0}]
  [-bgp_route_reflector_per_sub_interface <1-65535>]
  [-bgp_route_reflector_per_pe <1-65535>]
  [-bgp_route_reflector_loopback_ipv4_addr <a.b.c.d>]
  [-bgp_route_reflector_loopback_ipv4_addr_step <a.b.c.d>]
  [-bgp_route_reflector_cluster_id <a.b.c.d>]
  [-bgp_route_reflector_cluster_id_step <a.b.c.d>]
  [-bgp_route_reflector_ids  <a.b.c.d>]
  [-bgp_route_reflector_mode   {stc_as_rr|dut_as_rr}]
  [-vrf_number <1-65535>]
  [-vrf_rd_assignment {use_rt|manual}]
  [-vrf_route_target_start <ANY>]
  [-vrf_route_target_step <ANY>]
  [-customer_ce_vrf_assignment {round_robin|sequential}]
  [-customer_ce_bgp_as <1-65535>]
  [-customer_ce_bgp_as_step_per_ce_enable {1|0}]
  [-customer_ce_bgp_as_step_per_ce <0-65535>]
  [-customer_ce_bgp_as_step_per_vrf_enable {1|0}]
  [-customer_ce_bgp_as_step_per_vrf <0-65535>]
  [-customer_ce_bgp_4byte_as_enable {1|0}]
  [-customer_ce_bgp_4byte_as <ANY>]
  [-customer_ce_bgp_4byte_as_step_per_ce_enable {1|0}]
  [-customer_ce_bgp_4byte_as_step_per_ce <0-65535>]
  [-customer_ce_bgp_4byte_as_step_per_vrf_enable {1|0}]
  [-customer_ce_bgp_4byte_as_step_per_vrf <0-65535>]
  [-customer_ce_routing_protocol {bgp|ospf|rip|isis|static_route|mixed}]
  [-customer_ce_bgp_percent <0-100>]
  [-customer_ce_rip_percent <0-100>]
  [-customer_ce_ospf_percent <0-100>]
  [-customer_ce_isis_percent <0-100>]
  [-customer_ce_static_route_percent <0-100>]
  [-customer_ipv4_mcast_sender_per_route <1-2147483647>]
  [-customer_ipv4_mcast_sender_routes_per_ce  <1-2147483647>]
  [-customer_ipv4_vpn_route_step <NUMERIC>]
  [-customer_ipv4_vpn_route_start <a.b.c.d>]
  [-customer_ipv4_vpn_route_prefix_length   <1-32>]
  [-customer_ipv4_vpn_route_overlap  {0|1}]
  [-customer_ipv6_vpn_route_step <NUMERIC>]
  [-customer_ipv6_vpn_route_prefix_length <1-128>]
  [-customer_ipv6_vpn_route_overlap  {0|1}]
  [-customer_ipv6_vpn_route_start <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-provider_ipv4_mcast_sender_per_route <1-2147483647>]
  [-provider_ipv4_mcast_sender_routes_per_ce  <1-2147483647>]
  [-provider_ipv4_vpn_route_step <NUMERIC>]
  [-provider_ipv4_vpn_route_start <a.b.c.d>]
  [-provider_ipv4_vpn_route_prefix_length <1-32>]
  [-provider_ipv4_vpn_route_overlap  {0|1}]
  [-provider_ipv6_vpn_route_step <NUMERIC>]
  [-provider_ipv6_vpn_route_prefix_length <1-128>]
  [-provider_ipv6_vpn_route_overlap   {0|1}]
  [-provider_ipv6_vpn_route_start <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-multicast_traffic_enable  {0|1}]
  [-customer_enable_all_ipv6_mcast_sender_routes_per_ce  {0|1}]
  [-customer_enable_all_ipv4_mcast_sender_routes_per_ce  {0|1}]
  [-customer_enable_cust_bsr   {0|1}]
  [-customer_rp_increment <a.b.c.d>]
  [-customer_rp_addr <a.b.c.d>]
  [-customer_ce_pim_protocol  {sm|ssm}]
  [-customer_ipv6_rp_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-customer_ipv6_rp_increment <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-customer_ipv6_routes_per_ce <1-2147483647>]
  [-customer_ipv6_mcast_sender_per_route  <1-2147483647>]
  [-customer_ipv6_mcast_sender_routes_per_ce <1-2147483647>]
  [-customer_ipv6_ce_route_type  {internal|external}]
  [-customer_rd_start <ANY>]
  [-customer_rd_step_per_vrf_enable {1|0}]
  [-customer_rd_step_per_vrf <ANY>]
  [-customer_rd_step_per_ce_enable {1|0}]
  [-customer_rd_step_per_ce <ANY>]
  [-provider_pe_vrf_assignment {vpn_per_pe|pe_per_vpn}]
  [-provider_pe_vrf_count <integer>]
  [-provider_pe_vrf_all_assign {1|0}]
  [-provider_ce_bgp_as_enable {1|0}]
  [-provider_ce_bgp_as <1-65535>]
  [-provider_ce_bgp_as_step_per_ce_enable  {1|0}]
  [-provider_ce_bgp_as_step_per_ce <1-65535>]
  [-provider_ce_bgp_as_step_per_vrf_enable {1|0}]
  [-provider_ce_bgp_as_step_per_vrf <1-65535>]
  [-provider_ce_bgp_4byte_as_enable {1|0}]
  [-provider_ce_bgp_4byte_as <ANY>]
  [-provider_ce_bgp_4byte_as_step_per_ce_enable {1|0}]
  [-provider_ce_bgp_4byte_as_step_per_ce <1-65535>]
  [-provider_ce_bgp_4byte_as_step_per_vrf_enable {1|0}]
  [-provider_ce_bgp_4byte_as_step_per_vrf <1-65535>]
  [-provider_ipv6_routes_per_ce <1-2147483647>]
  [-provider_ipv6_mcast_sender_per_route <1-2147483647>]
  [-provider_ipv6_mcast_sender_routes_per_ce <1-2147483647>]
  [-provider_rd_start <ANY>]
  [-provider_rd_step_per_vrf_enable {1|0}]
  [-provider_rd_step_per_vrf  <ANY>]
  [-provider_rd_step_per_ce_enable {1|0}]
  [-provider_rd_step_per_ce  <ANY>]
  [-customer_use_ports_enable  {0|1}]
  [-provider_use_ports_enable  {0|1}]
  [-customer_multicast_traffic_load_percent_from_ports <0-100>]
  [-provider_multicast_traffic_load_percent_from_ports  <0-100>]
  [-multicast_default_mdt_addr <a.b.c.d>]
  [-multicast_default_mdt_increment <a.b.c.d>]
  [-multicast_data_mdt_enable {1|0}]
  [-multicast_data_mdt_addr <a.b.c.d>]
  [-multicast_data_mdt_increment <a.b.c.d>]
  [-multicast_framesize <12-16383>]
  [-multicast_receiver_have_same_group {1|0}]
  [-multicast_group_count <1-65535>]
  [-multicast_group_addr_start <a.b.c.d>]
  [-multicast_group_addr_increment <a.b.c.d>]
  [-multicast_group_increment_per_interface {1|0}]
  [-multicast_group_addr_increment_per_vlan <a.b.c.d>]
  [-multicast_group_addr_increment_per_port <a.b.c.d>]
  [-multicast_multiple_sender_enable {1|0}]
  [-multicast_multiple_sender_count <1-65535>]
  [-multicast_provider_pim_protocol { pim_sm|pim_ssm}]
  [-multicast_provider_bsr_enable {1|0}]
  [-multicast_provider_rp_addr <a.b.c.d>]
  [-multicast_customer_pim_protocol {pim_sm|pim_ssm}]
  [-multicast_customer_bsr_enable {1|0}]
  [-multicast_customer_rp_addr <a.b.c.d>]
  [-multicast_customer_rp_increment <a.b.c.d>]
  [-customer_route_type { internal|external}]
  [-customer_route_count_per_ce <1-2147483647>]
  [-customer_route_start <a.b.c.d>]
  [-customer_route_step <a.b.c.d>]
  [-customer_route_prefix_length <1-32>]
  [-customer_route_overlap {1|0}]
  [-provider_route_count_per_ce <1-2147483647>]
  [-provider_route_start <a.b.c.d>]
  [-provider_route_step <a.b.c.d>]
  [-provider_route_prefix_length <1-32>]
  [-provider_route_overlap {1|0}]
  [-vrf_route_mpls_label_type {label_per_site|label_per_route}]
  [-vrf_route_mpls_label_start <1-1048575>]
  [-traffic_frame_size <12-16383>]
  [-traffic_analyzer_enable {1|0}]
  [-traffic_load_percent_from_provider_port <0-100>]
  [-traffic_load_percent_from_customer_port <0-100>]
  [-multicast_traffic_flow_direction {customer_to_provider|
       customer_to_customer|customer_to_all_other|
       provider_to_customer}]
  [-multicast_traffic_source_count <1-65535>]
  [-multicast_traffic_all_source_enable {1|0}]
  [-multicast_traffic_receiver_count <integer>]
  [-multicast_traffic_all_receiver_enable {1|0}]
  [-mdt_switch_over_traffic_enable {1|0}]
  [-mdt_switch_over_interval <0-65535>]
  [-mdt_switch_over_delay <0-65535>]
  [-unicast_traffic_enable {1|0}]
  [-unicast_traffic_flow_direction {customer_to_core|
       core_to_customer|bidirectional|fully_meshed}]
  [-unicast_traffic_stream_group_method {aggregate|vpn }]
  [-unicast_traffic_use_single_stream_per_endpoint_pair {1|0}]
  [-traffic_pattern  {one_to_one|one_to_many}]
  [-use_dut_ifc_as_rp_addr   {0|1}]
  [-vpn_v4_enable  {0|1}]
  [-vpn_v6_enable  {0|1}]
  [-ldp_hello_type  {directed|targeted}]
  [-mvpn_type {nextgen|rosen}]

Arguments

-dut_loopback_ipv4_addr

Specifies the loopback IPv4 address of DUT. Loopback IPv4 address of DUT Loopback address is a special IP number that is designated for the software loopback interface of a machine. You must specify the value of this argument in IPv4 format. The default value is 10.0.0.1.

-dut_as

The autonomous system (AS) number of DUT. Possible values range from 1-65535. The default value is 1.

-dut_4byte_as_enable

Determines whether 4-byte AS number is enabled on DUT. When it is set to 1, you can specify the 4-byte AS number. Possible values are 0 and 1. The default values is 0.

-dut_4byte_as

Specifies the 4-byte AS number of DUT. You should set it in the format of “<integer>:<integer>”. The integer used must be smaller than 65535. The default value is 1:1.

-igp_protocol

Specifies the Interior Gateway Protocol (IGP) used by DUT. Networks within an autonomous system communicate routing information to each other using an IGP protocol. Possible values are:

ospf   Indicates Open Shortest Path First(OSPF) that is a
       router protocol used within larger autonomous
       system networks.

isis   Specifies the Intermediate System to Intermediate
       System(IS-IS) protocol. Routers (Intermediate
       Systems) use IS-IS to exchange routes within a single
       network (routing domain).

rip    Specifies the Routing Information Protocol (RIP).

The default value is ospf.

-mpls_protocol

Specifies the MPLS protocol to be used by DUT. MPLS refers to a mechanism which directs and transfers data between Wide Area Networks (WANs) nodes with high performance, regardless of the content of the data. The default value is ldp. Possible values are described below:

none    Specifies that there is no MPLS protocol to be used
        by DUT.

ldp     Indicates the Label Distribution Protocol(LDP).

rsvp    Indicates the resource reservation setup protocol
        (RSVP).
-bgp_bfd_enable

Determines whether the Bidirectional Forwarding Detection (BFD) is enabled on BGP on DUT. Possible values are 0 and 1. The default is 0.

Specifies the maximum bandwidth per ISIS/OSPFv2 TE link for simulated Provider router topology links. The value is measured in bytes per second. Possible values range from 1 to 2147483647. The default value is 100000. This option is only applicable when you specify -mpls_protocol rsvp.

-mpls_rsvp_bandwidth_per_tunnel

RSVP-TE Bandwidth rate, measured in bytes per second, for provider tunnels. Possible values range from 1 to 2147483647. The default value is 0. This option is only applicable when you specify -mpls_protocol rsvp.

-mpls_rsvp_egress_label

Specifies the label advertised if the emulated router is at the tail-end of the tunnel. Possible values are next_available, implicit_null, and explicit_null. The default is next_available. This option is only applicable when you specify -mpls_protocol rsvp. The values are described below:

next_available   Advertises the next available label.
                 For each Forwarding Equivalence Class (FEC), the
                 Label Switching Router (LSR) advertises the next
                 available label from the label pool (Min Label
                 to Max Label).

implicit_null   Advertises label 3, the implicit null label.
                This label value (three) is used in a RSVP packet
                to enable penultimate hop label popping. The
                egress LSR signals a request to its upstream
                neighbor to pop the top label in the stack and
                forward the rest of the packet. This value does
                not appear in the encapsulation.

explicit_null  Advertise label 9, the explicit null label.
               A zero (IPv4 datagram) or two (IPv6 datagram) MPLS
               label value indicates to the penultimate router
               that it is to pop the label upon receipt and
               forward the IP packet to the egress router for
               Layer 3 forwarding. Explicit null instructions are
               signaled to the penultimate router by the egress
               router.
-mpls_rsvp_transit

Defines the reservation message sent when the emulated router is not the tail-end router for PATH messages it receives. Possible values are accept_all and accept_configured. The default value is accept_configured. This option is only applicable when you specify -mpls_protocol rsvp. Possible values are described below:

accept_all   The router sends a reservation message
             with the next available label for every PATH
             message received by the unique MAC/VLAN
             combination on the port.

accept_configured   The router sends a reservation
             message with the next available label in
             response to PATH messages that match one
             of its egress tunnels.
-mpls_rsvp_min_label

Defines the minimum label number used by the RSVP session. Possible values range from 1 to 65535. The default value is 16. This option is only applicable when you specify -mpls_protocol rsvp.

-mpls_rsvp_max_label

Defines the maximum label number used by the RSVP session. Possible values range from 1 to 65535. The default value is 65535. This option is only applicable when you specify -mpls_protocol rsvp.

-mpls_rsvp_graceful_restart_enable

Enables or disables the RSVP graceful restart. Possible values are 0 (disable) and 1 (enable). If it is set to 1, enables graceful restart which adds a RESTART_CAP object in HELLO messages. Enabling graceful restart will automatically enable HELLO messages. This option is only applicable when you specify -mpls_protocol rsvp. The default value is 0.

-mpls_rsvp_recover_time

Specifies the length of time (in milliseconds) that the sender desires for the recipient to re-synchronize RSVP and MPLS forwarding state with the sender after the re- establishment of Hello synchronization. Possible values are 0 to 4294967295. A value of zero (0) indicates that MPLS forwarding state was not preserved across a particular reboot. The default value is 0. This option is applicable only when you enable the -mpls_rsvp_graceful_restart_enable argument.

-mpls_rsvp_restart_time

Specifies the sum of the time, in milliseconds, it takes the sender of the object to restart its RSVP component (to the point where it can exchange RSVP HELLO with its neighbors) and the communication channel that is used for RSVP communication. Possible values are 0 to 4294967295. The default is 3000. This option is applicable only when you enable the -mpls_rsvp_graceful_restart_enable argument.

-mpls_rsvp_bfd_enable

Enables or disables the Bidirectional Forwarding Detection (BFD) on RSVP session. Possible values are 1 (enable) and 0 (disable). When it is set to 1, Spirent HLTAPI creates a BFD session with IP addressing matching provider-side routers. The default value is 0. To use this argument, you must specify -mpls_protocol rsvp.

-mpls_ldp_hello_type

Specifies the type of Hello packet on LDP. This option is only applicable when you specify -mpls_protocol ldp. Possible values are:

direct   A Basic Discovery mechanism that is used to locate
        directly-connected neighbors. The Peer IP address is
        the DUT interface address.

targeted   An Extended Discovery mechanism that is used to
          locate neighbors which are not directly connected.
          The Peer IP address is the DUT loopback address.

The default value is direct. This argument is only applicable when you specify -mpls_protocol ldp.

-mpls_ldp_transport_mode

Specifies the mode of LDP Transport Address TLV. Possible values are:

none      Specifies that the Transport Address TLV will not be
          included in LDP Hello messages.

tester_ip   Indicates that the LSR will take the emulated
        router interface address as the transport address and
        include the Transport Address TLV in LDP Hello
        messages.

router_id   Indicates that the LSR will take the emulated
       router ID, that is, the loopback address as the
       transport address and include the Transport Address
       TLV in LDP Hello messages.

The default value is tester_ip. This option is only applicable when you specify -mpls_protocol ldp.

-mpls_ldp_hello_interval

Specifies the amount of time, in seconds, between HELLO messages in LDP session. Possible values range from 1 to 21845. The default value is 5. This option is only applicable when you specify -mpls_protocol ldp.

-mpls_ldp_keepalive_interval

Specifies the amount of time, in seconds, between KEEPALIVE messages. Possible values range from 1 to 21845. The default is 60. This option is only applicable when you specify -mpls_protocol ldp.

-mpls_ldp_egress_label

Specifies the emulated label advised by the emulated peer. The default is next_available. This option is only applicable when you specify -mpls_protocol ldp. Possible values are described below:

next_available   Advertises the next available label.
    For each Forwarding Equivalence Class (FEC), the
    Label Switching Router (LSR) advertises the next
    available label from the label pool (Min Label to
    Max Label).

implicit_null    Advertises label 3, the implicit null label.
    This label value (three) is used on an LDP
    packet to enable penultimate hop label popping. The
    egress LSR signals a request to its upstream neighbor
    to pop the top label in the stack and forward the rest
    of the packet. This value does not appear in the
    encapsulation.

explicit_null    Advertise label 9, the explicit null label.
    A zero (IPv4 datagram) or two (IPv6 datagram)
    MPLS label value indicates to the penultimate router
    that it is to pop the label upon receipt and forward the
    IP packet to the egress router for Layer 3 forwarding.
    Explicit null instructions are signaled to the
    penultimate router by the egress router.
-mpls_ldp_min_label

Defines the minimum label number used by the LDP session. Possible values range from 1 to 65535. The default value is 16. This option is only applicable when you specify -mpls_protocol ldp.

-mpls_ldp_graceful_restart_enable

Enables or disables the LDP graceful restart. Possible values are 0 (disable) and 1 (enable). If it is set to 1, enables graceful restart which adds a RESTART_CAP object in HELLO messages. Enabling graceful restart will automatically enable HELLO messages. This option is only applicable when you specify -mpls_protocol ldp. The default value is 0.

-mpls_ldp_recover_time

Specifies the length of time (in milliseconds) that the sender desires for the recipient to re-synchronize LDP and MPLS forwarding state with the sender after the re- establishment of Hello synchronization. Possible values are 0 to 4294967. A value of zero (0) indicates that MPLS forwarding state was not preserved across a particular reboot. The default value is 140. This option is applicable only when you enable the -mpls_ldp_graceful_restart_enable argument.

-mpls_ldp_reconnect_time

Specifies the amount of time, in seconds, it takes Spirent HLTAPI to reconnect after a graceful restart. To use this option, you must also enable -mpls_ldp_graceful_restart_enable and specify a value for the -mpls_ldp_recover_time argument. Possible values are 0 to 4294967. The default is 60.

-mpls_ldp_bfd_enable

Enables or disables the Bidirectional Forwarding Detection (BFD) on LDP session. Possible values are 1 (enable) and 0 (disable). When it is set to 1, Spirent HLTAPI creates a BFD session with IP addressing matching provider-side routers. The default value is 0. To use this argument, you must specify -mpls_protocol ldp.

-igp_ospfv2_area_id

Specifies the IP address indicating the customer-side area to which the emulated router belongs. You must specify it in the IPv4 format. The default value is 0.0.0.0. To use this argument, you must specify -igp_protocol ospf.

-igp_ospfv2_network_type

Specifies the type of network link. Possible values are:

native  Specifies the interface on OSPF session uses the
        adjacency implied by the port-type. Use this setting
        to override the physical link type to emulate a
        broadcast adjacency over POS, or a point-to-point
        adjacency over Ethernet.

broadcast   Ethernet links use a Broadcast adjacency.

p2p   POS links use a P2P (point-to-point) adjacency.

The default value is native. To use this argument, you must specify -igp_protocol ospf.

-igp_ospfv2_router_priority

Specifies the router priority of the emulated router. Set the router priority to a higher or lower value to influence the designated router (DR) and backup designated router (BDR) selection process. Possible values range from 0 to 255. The default is 0. To use this argument, you must specify -igp_protocol ospf.

-igp_ospfv2_interface_cost

Indicates the cost of the interface connecting the emulated router to the neighbor DUT router. Possible values range from 1 to 65535. The default is 1. To use this argument, you must specify -igp_protocol ospf.

-igp_ospfv2_options

A bit mask that specifies the settings of the Options field in Hello packets sent to the DUT. The Options field describes the optional OSPF capabilities of the router. Section A.2 in RFC 2328 describes the Options field for OSPFv2. Only OSPFv2 is involved in MVPN, so not all the values for v3 of this switch are available in this command. To use this argument, you must specify -igp_protocol ospf. Use hexadecimal for this value. The default for OSPFv2 is 0x02, which sets the E-bit (binary 00000010). The values are described below:

TOS: 0x01: bit of "Type Of Service". This bit is not
         available in this command.
E: 0x02:  External Routing: This bit specifies the way
         AS-external-LSAs are flooded. When this bit is
         set, the area type is external_capable; when this
         bit is cleared, the area type is stub.
MC: 0x04: Multicast: This bit specifies whether IP
        multicast datagrams are forwarded.
NP: 0x08: This bit specifies the handling of Type-7
         LSAs.
EA: 0x10: External Attribute: This bit specifies the
         router's willingness to receive and forward
         External-Attributes-LSAs.
R: 0x10:  This bit indicates if the originator is an active
         router.
DC: 0x20: Demand Circuit: This bit specifies the router's
         handling of demand circuits.
O: 0x40:  Opaque: This bit specifies the router's
         willingness to receive and forward Opaque
         LSAs.
-igp_ospfv2_authentication_mode

Specifies the type of authentication to be used. To use this argument, you must specify -igp_protocol ospf. Possible values are:

none   Indicates that no attributes have been set (no
       authentication).

simple   Indicates the simple authentication will be used.
      The packet is authenticated by the receiving router if
      the password matches the authentication key that is
      included in the packet. This method provides little
      security because the authentication key can be
      learned by capturing packets.

md5   Use the MD5 key ID for authentication.
      The packet contains a cryptographic checksum, but
      not the authentication key itself. The receiving router
      performs a calculation based on the MD5 algorithm
      and an authentication key ID. The packet is
      authenticated if the calculated checksum matches.
      This method provides a stronger assurance that
      routing data originated from a router with a valid
      authentication key.

The default value is none.

-igp_ospfv2_authentication_password

Indicates the password used in OSPFv2 authentication. Use this argument only if -igp_ospfv2_authentication_mode is set to simple or md5. When you specify -igp_ospfv2_authentication_mode simple, the value of this argument should be of 1-8 alphanumeric characters. When you specify -igp_ospfv2_authentication_mode md5, the value of this argument should be of 1-16 alphanumeric characters. The default value is “spirent”.

-igp_ospfv2_authentication_md5_key

Specifies the MD5 key used in OSPFv2 authentication. Possible values range from 0 to 255. The default is 1. Use this argument only if the -igp_ospfv2_authentication_mode option is set to md5.

-igp_ospfv2_graceful_restart_enable

Enables or disables the ospfv2 graceful restart. Possible values are 0 (disable) and 1 (enable). If it is set to 1, enables graceful restart which adds a RESTART_CAP object in HELLO messages. Enabling graceful restart will automatically enable HELLO messages. This option is only applicable when you specify -igp_protocol ospf. The default value is 0.

-igp_ospfv2_graceful_restart_type

Specifies the type of graceful restart to be used by ospfv2 session. Possible values are:

none           Indicates there is no graceful restart.

rfc_standard   Defines that the graceful restart follows RFC
               3623.

ll_signalling   Indicates the Link-Layer Signaling.

The default value is none. Use this argument only if -igp_ospfv2_graceful_restart_enable is enabled.

-igp_ospfv2_bfd_enable

Enables or disables BFD on the OSPF interface on the DUT. Possible values are 1 (enable) and 0 (disable). The default value is 0. This argument is applicable only when -igp_protocol is set to ospf.

-igp_isis_level

Specifies the IS-IS level used in the customer side. It defines the type of adjacency Spirent HLTAPI establishes with the DUT. The default value is level2. Use this argument only if the -igp_protocol is set to isis. Possible values are described below:

level1   Specifies that Spirent HLTAPI will establish
         adjacency on Level 1 (intra-area).

level2   Specifies that Spirent HLTAPI will establish
         adjacency on Level 2 (inter area).

level1_and_2   Specifies that Spirent HLTAPI will
          establish adjacency on both Level 1 and Level 2.
-igp_isis_network_type

Specifies the IS-IS network type at the customer side. Possible values are:

broadcast     Indicates that the network is a broadcast
              network, as in an Ethernet connection.
              This is the default.

ptop          Point-to-point (PTOP). A network formed by a
              point-to-point link between two routers.

The default value is broadcast. Use this argument only if the -igp_protocol is set to isis.

-igp_isis_router_priority

Sets the priority for the emulated IS-IS router. IS-IS routers use the priority to elect the designated and back-up designated routers. The default is 0. Possible values are 0 to 127. Use this argument only if the -igp_protocol is set to isis.

-igp_isis_area1

Specifies the Mandatory area address. You must specify at least one address. Spirent HLTAPI supports up to three addresses per emulated router. Use this argument only if the -igp_protocol is set to isis.

-igp_isis_area2

Specifies the optional area address. Use this argument only if the -igp_protocol is set to isis. The default is “”.

-igp_isis_area3

Specifies the optional area address. Use this argument only if the -igp_protocol is set to isis. The default is “”.

-igp_isis_circuit_id

Specifies the circuit ID for the IS-IS session. Possible values range from 0 to 255. The default value is 1. Use this argument only when the -igp_protocol is set to isis.

-igp_isis_authentication_mode

Specifies the type of authentication to be used. To use this argument, you must specify -igp_protocol isis. Possible values are:

none
Indicates that no attributes have been set (no authentication).
simple
Indicates that simple authentication will be used.
md5
Use the MD5 key ID for authentication.

The default value is none.

-igp_isis_authentication_password

Indicates the password used in IS-IS authentication. Use this argument only if -igp_isis_authentication_mode is set to simple or md5. When you specify -igp_isis_authentication_mode simple, the value of this argument should be of 1-8 alphanumeric characters. When you specify -igp_isis_authentication_mode md5, the value of this argument should be of 1-16 alphanumeric characters. The default value is “spirent”.

-igp_isis_authentication_md5_key

Specifies the MD5 key used in IS-IS authentication. Possible values range from 0 to 255. The default is 1. Use this argument only when the -igp_isis_authentication_mode option is set to md5.

-igp_isis_metric_mode

Specifies the length of the metric field in the Link State Path (LSP) packet. To use this argument, you must specify -igp_protocol isis. The default value is narrow_and_wide. Possible values are described below:

narrow   Router advertises routes with a narrow (6-bit)
         metric.

wide     Router advertises routes with a wide (24- or 32-bit)
         metric (required for IS-IS TE).

narrow_and_wide   Router advertises the same route with
                  both metrics.
-igp_isis_l1_metric

Metric of the emulated router interface. It is advertised in the Level 1 IS Neighbors metric TLV and is used for Level 1 LSPs. It is blank and disabled if -igp_isis_level is set to level2 or if -igp_isis_metric_mode is set to wide. Use this argument only when you specify -igp_protocol isis. Possible values range from 1 to 63. The default is 1.

-igp_isis_l1_wide_metric

Indicates the three-octet metric of a link from the emulated router to the DUT. It is advertised in the Extended IS Reachability TLV of the L1 LSP originated by the emulated router. It is blank and disabled if -igp_isis_level is set to level2 or if -igp_isis_metric_mode is set to narrow. Possible values range from 0 to 16777215. The default is 1.

-igp_isis_l2_metric

Metric of the emulated router interface. It is advertised in the Level 2 IS Neighbors metric TLV and is used for Level 2 LSPs. It is blank and disabled if -igp_isis_level is set to level1 or if -igp_isis_metric_mode is set to wide. Use this argument only when you specify -igp_protocol isis. Possible values range from 1 to 63. The default is 1.

-igp_isis_l2_wide_metric

Indicates the three-octet metric of a link from the emulated router to the DUT. It is advertised in the Extended IS Reachability TLV of the L2 LSP originated by the emulated router. It is blank and disabled if -igp_isis_level is set to level1 or if -igp_isis_metric_mode is set to narrow. Possible values range from 0 to 16777215. The default is 1.

-igp_isis_graceful_restart_enable

Enables or disables the IS-IS graceful restart. Possible values are 0 (disable) and 1 (enable). If it is set to 1, enables graceful restart which adds a RESTART_CAP object in HELLO messages. Enabling graceful restart will automatically enable HELLO messages. This option is only applicable when you specify -igp_protocol isis. The default value is 0.

-igp_isis_hello_padding

Enables or disables hello padding. When you enable this option, Spirent HLTAPI pads all Hello packets to the ISO standard sized Protocol Data Unit (PDU). When you disable this option, Spirent HLTAPI pads the initial Hello packet and use a smaller PDU for subsequent Hello packets. This option is only applicable when you specify -igp_protocol isis. Possible values are 1 (enable) and 0 (disable). The default is 1.

-igp_isis_bfd_enable

Enables or disables the Bidirectional Forwarding Detection (BFD) on IS-IS session. Possible values are 1 (enable) and 0 (disable). When it is set to 1, Spirent HLTAPI creates a BFD session with IP addressing matching provider-side routers. The default value is 0. To use this argument, you must specify -igp_protocol isis.

-p_router_enable

Enables or disables the emulation of provider routers in the test. When it is set to 0, only provider edge routers will be emulated or simulated. Possible values are 1 and 0. The default is 1.

-p_router_number_per_sub_interface

The number of provider routers per provider-side sub-interface. Only 1 emulated provider router (P router) is created per sub-interface. If this number is greater than 1, the additional P routers are simulated through the IGP protocol routes. The topology for the additional P routers is determined by the -p_router_topology_type option. Possible values range from 1 to 65535. The default is 1. Use this argument only when -p_router_enable is enabled.

-p_router_topology_type

Defines the topology of the provider network. Possible values are tree and grid. The default value is tree. Use this argument only when -p_router_enable is enabled.

-p_router_loopback_ipv4_addr

Defines the first loopback address of emulated P routers. The value of this option should be in IPv4 format. The default value is 192.0.1.1. Use this argument only when -p_router_enable is enabled.

-p_router_loopback_ipv4_addr_step

Indicates the step applied to the loopback addresses for the emulated P routers. The value of this option should be in IPv4 format. The default is 0.0.1.0. Use this argument only when -p_router_enable is enabled.

-p_router_interface_ipv4_addr

Specifies the starting IPv4 interface address of the emulated P routers. The default is 1.0.0.1. Use this argument only when -p_router_enable is enabled.

-p_router_interface_ipv4_addr_prefix_length

Specifies the IP prefix length on the simulated P router IPv4 interfaces. Possible values range from 0 to 32. The default is 24. Use this argument only when -p_router_enable is enabled.

-pe_router_number_per_sub_interface

Defines the number of provider-edge (PE) routers created on each provider-side sub-interface. Possible values range from 1 to 65535. The default is 1. Use this argument only when -p_router_enable is enabled.

-pe_router_loopback_ipv4_addr

Specifies the starting provider-side PE router IPv4 address. The default is 10.0.0.2. Use this argument only when -p_router_enable is enabled.

-pe_router_loopback_ipv4_addr_step

Defines the step size by which the provider-side PE router is incremented. The default is 0.0.0.1. Use this argument only when -p_router_enable is enabled.

-bgp_route_reflector_enable

Enables the usage of core side route reflectors. When this attribute is enabled, Spirent HLTAPI emulates a BGP route reflector on one (or more) of the generated P routers. The DUT should be set up to peer with the route reflector instead of the PE routers (which Spirent HLTAPI simulates through advertised routes). Possible values are 1 (enable) and 0 (disable). The default is 0.

-bgp_route_reflector_per_sub_interface

Specifies the number of route reflectors per provider-side sub-interface. Possible values are 1 to 65535. The default is 1. You can use this argument only when -bgp_route_reflector_enable is enabled.

-bgp_route_reflector_per_pe

Specifies the number of route reflectors per provider edge router. Possible values are 1 to 65535. The default is 1. You can use this argument only when -bgp_route_reflector_enable is enabled.

-bgp_route_reflector_loopback_ipv4_addr

Specifies the starting loopback IPv4 address of the route reflectors. The default is 7.7.7.7. You can use this argument only when -bgp_route_reflector_enable is enabled.

-bgp_route_reflector_loopback_ipv4_addr_step

The amount by which to increment provider-side route reflector loopback IP address (-bgp_route_reflector_loopback_ipv4_addr) for each subsequent route reflector. The default value is 0.0.0.1. You can use this argument only when -bgp_route_reflector_enable is enabled.

-bgp_route_reflector_cluster_id

Specifies the starting cluster ID of the route reflectors. A router reflector cluster normally has a single route reflector. To avoid a single point of failure, you can configure a cluster with more than one route reflector. If more than one route reflector is configured for a cluster, all the route reflectors in the cluster must be configured with a cluster ID. This ID enables route reflectors to recognize route updates from route reflectors in the same cluster. The default value is 0.0.0.0. The value of this option should be in IPv4 format. You can use this argument only when -bgp_route_reflector_enable is enabled.

-bgp_route_reflector_cluster_id_step

The amount by which to increment cluster ID (-bgp_route_reflector_cluster_id) for each subsequent route reflector. The default value is 0.0.0.1. You can use this argument only when -bgp_route_reflector_enable is enabled.

-vrf_number

Specifies the number of VPN Routing and Forwarding tables (VRFs) to be configured. VPN Routing and Forwarding table, on the PE router, that is configured for a particular interface or sub-interface. The table includes the routing information that defines a customer VPN site attached to a PE router. Possible values range from 1 to 65535. The default is 1.

-vrf_rd_assignment

Specifies the route distinguisher assignment mode. Possible values are:

use_rt   Uses the Route Target field for all Route
         Distinguishers in the VPN.

manual   Manually configures Route Distinguishers by
        setting customer or provider RD start, step per VPN,
        step per CE.

The default value is use_rt.

-vrf_route_target_start

Specifies the starting route target for the VPN. The Route Target identifies a set of sites to which a PE router distributes routes. The format should be “AS-Number:value” or “IPv4-Address:value”. The default value is 1:00.

-vrf_route_target_step

Specifies the step size in which the route target is incremented. The format should be “AS-Number:value” or “IPv4-Address:value”. The default value is 1:00.

-customer_ce_vrf_assignment

Determines how VRFs are assigned to customer side Customer Edge routers (CE). Possible values are:

round_robin   The first CE that is created is assigned to the
        first VRF. The second CE that is created is assigned
        to the second VRF, and so forth. When the specified
        number of VRFs is reached, the VRF assignment
        repeats from the first VRF.

sequential   CEs that are created are assigned to the first
         VRF until the calculated number of CEs per VRF is
         reached. Additional CEs are assigned to the second
         and subsequent VRFs in the same fashion.
-customer_ce_bgp_as

Specifies the starting number of BGP AS on customer side. Possible values range from 1 to 65535. The default is 1.

-customer_ce_bgp_as_step_per_ce_enable

Enables or disables the step value for AS numbers across CE routers on customer side. Possible values are 0 and 1. The default is 0. You can use this argument when -customer_ce_routing_protocol is set to bgp or mixed.

-customer_ce_bgp_as_step_per_ce

Indicates the step value for AS numbers across CE routers on customer side. Possible values range from 0 to 65535. The default is 1. Use this argument only when -customer_ce_bgp_as_step_per_ce_enable is enabled.

-customer_ce_bgp_as_step_per_vrf_enable

Enables or disables the step value for CE AS numbers across VPNs. Possible values are 1 (enable) and 0 (disable). The default is 1. You can use this argument when -customer_ce_routing_protocol is set to bgp or mixed.

-customer_ce_bgp_as_step_per_vrf

Specifies the step value for AS numbers across VPNs. Possible value range from 0 to 65535. The default is 1. Use this option only when -customer_ce_bgp_as_step_per_vrf_enable is enabled.

-customer_ce_bgp_4byte_as_enable

Enables or disables 4-byte AS numbers on customer side. Possible values are 1 (enable) and 0 (disable). When it is set to 1, you can specify 4-byte AS numbers. The default value is 0. You can use this argument when -customer_ce_routing_protocol is set to bgp or mixed.

-customer_ce_bgp_4byte_as

Specifies the starting CE 4-byte AS number on customer side. The default value is 1:01. You can specify this argument only when the -customer_ce_bgp_4byte_as_enable option is enabled.

-customer_ce_bgp_4byte_as_step_per_ce_enable

Enables or disables step value for CE 4-byte AS numbers across CE routers. Possible values are 1 (enable) and 0 (disable). If it is set to 1, you can specify the step value for CE 4-byte AS numbers across CE routers. The default is 0. You can use this argument when -customer_ce_routing_protocol is set to bgp or mixed and -customer_ce_bgp_4byte_as_enable is enabled.

-customer_ce_bgp_4byte_as_step_per_ce

Specifies the step value for CE 4-byte AS numbers across CE routers. Possible values range from 0 to 65535. The default value is 1. Use this option only when the -customer_ce_bgp_4byte_as_step_per_ce_enable option is enabled.

-customer_ce_bgp_4byte_as_step_per_vrf_enable

Enables or disables step value for CE 4-byte AS numbers across VPNs. Possible values are 1 (enable) and 0 (disable). If it is set to 1, you can specify the step value for CE 4-byte AS numbers across VPNs. The default is 1. You can use this argument when -customer_ce_routing_protocol is set to bgp or mixed and -customer_ce_bgp_4byte_as_enable is enabled.

-customer_ce_bgp_4byte_as_step_per_vrf

Specifies the step value for CE 4-byte AS numbers across VPNs. Possible values range from 0 to 65535. The default value is 1. Use this option only when the -customer_ce_bgp_4byte_as_step_per_vrf_enable option is enabled.

-customer_ce_routing_protocol

Defines the interior gateway routing protocol used by CEs on the customer side. Possible values are bgp, ospf, rip, isis, static_route, and mixed. The default value is bgp. Possible values are described below:

bgp    Border Gateway Protocol (BGP).

ospf   Open Shortest Path First (OSPF) protocol.

rip    Routing Information Protocol (RIP).

isis   Intermediate System to Intermediate System (IS-IS)

static_route   Indicates routes through a data network are
           routes are described by fixed paths (statically).
           These usually entered into the router by the system
           administrator.

mixed     Indicates the route between DUT and CE routes are
          described by fixed paths (statically). If it is
          set to mixed, you can specify -customer_ce_bgp_percent,
          -customer_ce_rip_percent,
          -customer_ce_ospf_percent, and
          -customer_ce_isis_percent. The options above are
          used to indicate the percentage of routes to be
          advertised over the protocols to be used.
-customer_ce_bgp_percent

Specifies the percentage of customer side CEs using BGP. This attribute is only applicable when the -customer_ce_routing_protocol attribute is set to mixed. Possible values range from 0 to 100. The default value is 0.

-customer_ce_rip_percent

Specifies the percentage of customer side CEs using RIP. This attribute is only applicable when the -customer_ce_routing_protocol attribute is set to mixed. Possible values range from 0 to 100. The default value is 0.

-customer_ce_ospf_percent

Specifies the percentage of customer side CEs using OSPFv2. This attribute is only applicable when the -customer_ce_routing_protocol attribute is set to mixed. Possible values range from 0 to 100. The default value is 0.

-customer_ce_isis_percent

Specifies the percentage of customer side CEs using IS-IS. This attribute is only applicable when the -customer_ce_routing_protocol attribute is set to mixed. Possible values range from 0 to 100. The default value is 0.

-customer_ce_static_route_percent

Specifies the percentage of customer side CEs using static routes. This attribute is only applicable when the -customer_ce_routing_protocol attribute is set to mixed. Possible values range from 0 to 100. The default value is 0.

-customer_rd_start

Indicates the starting Route Distinguisher for the VPN route on customer side. An 8-byte value that is concatenated with an IPv4 prefix to create a unique VPN IPv4 prefix. There are two types that you can use:

Type 0   The administrator sub-field is a 2-byte AS number
       and the assigned sub-field is a 4-byte number
       assigned by the service provider. The format will be::
       n:n, which indicates "administrator:assigned".

Type 1  The administrator sub-field is a 4-byte IPv4
        address and assigned sub-field is a 2-byte number
        assigned by the service provider. The format will be
        n.n.n.n:n, which indicates "administrator:assigned".

The default value is 1:00.

-customer_rd_step_per_vrf_enable

Enables or disables the route distinguisher step across VPNs on customer side. Possible values are 1 (enable) and 0 (disable). When it is set to 1, you can specify the -customer_rd_step_per_vrf argument. The default is 1. Use this argument only when the -vrf_rd_assignment argument is set to manual.

-customer_rd_step_per_vrf

Specifies the step size in which the route distinguisher across VPNs is incremented. The administrator field of the step value is added to the administrator field of the starting route distinguisher and the assigned field of the step value is added to the assigned field of the starting route distinguisher. The type of the route distinguishers do not have to match, although it is desirable for ease of administration. The default value is 1:00. Use this argument only when -customer_rd_step_per_vrf_enable is enabled.

-customer_rd_step_per_ce_enable

Enables or disables the route distinguisher step across CE routers on the customer side. Possible values are 1 (enable) and 0 (disable). When it is set to 1, you can specify the -customer_rd_step_per_ce argument. The default is 0. Use this argument only when the -vrf_rd_assignment argument is set to manual.

-customer_rd_step_per_ce

Specifies the step value for additional route distinguishers for each CE router. The administrator field of the step value is added to the administrator field of the starting route distinguisher and the assigned field of the step value is added to the assigned field of the starting route distinguisher. The type of the route distinguishers do not have to match, although it is desirable for ease of administration. The default value is 0:00. Use this argument only when -customer_rd_step_per_ce_enable is enabled.

-provider_pe_vrf_assignment

Indicates how VPNs are assigned to Provider Edge routers (PEs). Possible values are:

vpn_per_pe   Indicates VPNs will be distributed across a
             set of PEs.

pe_per_vpn   Indicates PEs will be distributed across a set
             of VPNs.

The default value is vpn_per_pe.

-provider_pe_vrf_count

Specifies the number of items (VPNs or PEs) assigned to each target (VPN or PE). When the -provider_pe_vrf_assignment argument is set to vpn_per_pe, this argument indicates the number of VPNs assigned to each PE and possible values range from 1 to the number of VPNs. When the -provider_pe_vrf_assignment argument is set to pe_per_vpn, this argument indicates the number of PEs assigned to each VPN and possible values range from 1 to the number of PEs. The default is 1.

If this number is less than the maximum number of items, and if there is more than one target, the specified number of items is assigned in round-robin fashion to each target. Use this argument only when -provider_pe_vrf_all_assign is set to 0.

-provider_pe_vrf_all_assign

Determines whether each PE uses all VPNs. Possible values are 1 (enable) and 0 (disable). If it is set to 0, you can manually set the number of VPNs for each PE will advertise routes for. The default value is 0.

-provider_ce_bgp_as_enable

Enables or disables the BGP AS number of the CEs on the provider side. Possible values are 1 (enable) and 0 (disable). When it is set to 1, you can use CE BGP AS related options. The default value is 0.

-provider_ce_bgp_as

Indicates the starting BGP AS number on customer side. Possible values range from 1 to 65535. The default value is 1. Use this argument only when you enable the -provider_ce_bgp_as_enable argument.

-provider_ce_bgp_as_step_per_ce_enable

Enables or disables the step value for additional CE BGP AS number across CEs on the provider side. Possible values are 1 (enable) and 0 (disable). The default is 0.

-provider_ce_bgp_as_step_per_ce

Defines the step value for the additional CE BGP AS number across CEs on the provider side. Possible values range from 1 to 65535. The default value is 1. This argument is only applicable when the -provider_ce_bgp_as_step_per_ce_enable option is enabled.

-provider_ce_bgp_as_step_per_vrf_enable

Enables or disables the step value for additional CE BGP AS number across VPNs. Possible values are 1 (enable) and 0 (disable). The default is 1.

-provider_ce_bgp_as_step_per_vrf

Defines the step value for the additional CE BGP AS number across VPNs. Possible values range from 1 to 65535. The default value is 1. This argument is only applicable when the -provider_ce_bgp_as_step_per_vrf_enable option is enabled.

-provider_ce_bgp_4byte_as_enable

Enables or disables the 4-byte AS numbers on the provider side. Possible values are 1 (enable) and 0 (disable). The default value is 0.

-provider_ce_bgp_4byte_as

Defines the first 4-byte AS number of CEs on the provider side. The default value is 1:01. Use this argument only when the -provider_ce_bgp_4byte_as_enable attribute is enabled.

-provider_ce_bgp_4byte_as_step_per_ce_enable

Enables or disables the 4-byte AS step value for additional CE BGP ASs across CEs on the provider side. Possible values are 1 (enable) and 0 (disable). The default is 0.

-provider_ce_bgp_4byte_as_step_per_ce

Specifies the 4-byte AS step value for the additional CE ASs across CEs on the provider side. Possible values range from 1 to 65535. The default value is 1. This argument is applicable only when -provider_ce_bgp_4byte_as_step_per_ce_enable is enabled.

-provider_ce_bgp_4byte_as_step_per_vrf_enable

Enables or disables the CE BGP 4-byte AS step per VPN on the provider side. Possible values are 1 (enable) and 0 (disable). When it is set to 1, you can specify the -provider_ce_bgp_4byte_as_step_per_vrf attribute. The default value is 1.

-provider_ce_bgp_4byte_as_step_per_vrf

Indicates the step value for the additional CE 4-byte AS numbers across VPNs on the provider side. Possible values range from 1 to 65535. The default value is 1.

-provider_rd_start

Indicates the starting Route Distinguisher for the VPN route on the provider side. An 8-byte value that is concatenated with an IPv4 prefix to create a unique VPN IPv4 prefix. There are two types that you can use:

Type 0   The administrator sub-field is a 2-byte AS number
        and the assigned sub-field is a 4-byte number
        assigned by the service provider. The format will be::
        n:n, which indicates "administrator:assigned".

Type 1   The administrator sub-field is a 4-byte IPv4
        address and assigned sub-field is a 2-byte number
        assigned by the service provider. The format will be
        n.n.n.n:n, which indicates "administrator:assigned".

The default value is 1:00.

-provider_rd_step_per_vrf_enable

Enables or disables the step value for additional route distinguishers in each VRF on the provider side. The administrator field of value is added to the administrator field of the starting route distinguisher, and the assigned field of the step value is added to the assigned field of the starting route distinguisher. The type of the route distinguishers do not have to match, although it is desirable for ease of administration. Possible values are 1 (enable) and 0 (disable). The default is 1. This argument is applicable only when the -vrf_rd_assignment argument is set to manual.

-provider_rd_step_per_vrf

Specifies the step value for the provider-side additional route distinguisher across VPNs. The default value is 1:00. Use this argument only when -provider_rd_step_per_vrf_enable is enabled.

-provider_rd_step_per_ce_enable

Enables or disables the step value for the additional provider-side route distinguisher across CEs. Possible values are 0 and 1. When it is set to 1, you can specify the step value for the additional provider-side route distinguisher across CEs. The default value is 0.

-provider_rd_step_per_ce

Specifies the step value for the additional provider-side route distinguisher across CEs. The default value is 1:00. Use this argument only when -provider_rd_step_per_ce_enable is enabled.

-multicast_default_mdt_addr

Specifies the IP address of the first default multicast distribution tree (MDT) for multicast traffic. MDT provides the information needed to interconnect the same MVRFs that exist on the different PE routers. MVPN supports two MDT types: the default MDT and data MDT. The default MDT is a permanent channel for Protocol Independent Multicast (PIM) control messages and low-bandwidth streams between all PE routers in a particular multicast domain. The values of this argument should be in IPv4 format. The default value is 239.1.1.1.

-multicast_default_mdt_increment

Defines the increment used to generate default MDT addresses for multicast traffic. The default value is 0.0.0.1.

-multicast_data_mdt_enable

Enables or disables the data MDT address for multicast traffic. Data MDTs are optional. If enabled, they are dynamically created to provide optimal paths for high-bandwidth transmissions, such as full-motion video, that do not need to be sent to every PE router. Possible values are 1 (enable) and 0 (disable). The default value is 0.

-multicast_data_mdt_addr

Specifies the IP address of the first MDT for multicast traffic. The value of this argument must be in IPv4 format. The default value is 230.1.1.2. Use this argument only when -multicast_data_mdt_enable is enabled.

-multicast_data_mdt_increment

Defines the increment used to generate data MDT addresses for multicast traffic. The default value is 0.0.0.1. Use this argument only when -multicast_data_mdt_enable is enabled.

-multicast_receiver_have_same_group

Enables or disables that all receivers are subscribed to all groups. Possible values are 1 (enable) and 0 (disable). When it is set to 1, you can subscribe all the receivers to all groups, which allows the receivers to receive the PIM control messages and multicast traffic that are sent by other receivers. The default value is 1.

-multicast_group_count

Defines the number of multicast groups. Possible values range from 1 to 65535. The default value is 1.

-multicast_group_addr_start

Defines the starting multicast group address. The value of this argument must be in IPv4 format. The default value is 225.0.0.1.

-multicast_group_addr_increment

Defines the increment used to generate multicast group addresses. The value of this argument must be in IPv4 format. The default value is 0.0.0.1.

-multicast_group_increment_per_interface

Enables or disables the increment used to generate multicast group addresses across interfaces (ports or VLANs). Possible values are 1 (enable) and 0 (disable). The default value is 0. This argument is only applicable only when the -multicast_receiver_have_same_group argument is disabled.

-multicast_group_addr_increment_per_vlan

Specifies increment used to generate multicast group addresses across VLANs. This argument is applicable only when -multicast_group_increment_per_interface is enabled. The default value is 0.0.1.0. The value of this argument must be in IPv4 format.

-multicast_group_addr_increment_per_port

Specifies increment used to generate multicast group addresses across ports. This argument is applicable only when -multicast_group_increment_per_interface is enabled. The default value is 0.0.1.0. The value of this argument must be in IPv4 format.

-multicast_multiple_sender_enable

Enables or disables multiple multicast senders. Possible values are 1 (enable) and 0 (disable). When it is set to 0, Spirent HLTAPI creates a single source (a host). When it is set to 0, Spirent HLTAPI creates multicast sources (a host block), and you can determine the number of hosts in the host block by specifying the -multicast_multiple_sender_count argument. The default value is 0.

-multicast_multiple_sender_count

Defines the number of multiple multicast senders. Possible values range from 1 to 65535. The default value is 1.This argument is applicable only when the -multicast_multiple_sender_enable argument is enabled.

-multicast_provider_pim_protocol

Specifies the PIM protocol to be used on provider side. Possible values are:

pim_sm   All three group types are supported: (S,G), (*,G),
         and (*,*,RP).

pim_ssm   Join/Prune messages are only sent for (S, G)
          groups. (*,*,RP) or (*,G) groups cannot be added.

The default value is pim_sm.

-multicast_provider_bsr_enable

Enables or disables Bootstrap messages on multicast provider side. Possible values are 1 (enable) and 0 (disable). The default value is 0. When it is set to 1, PIM routers enabled for bootstrap routing functionality that generates Bootstrap messages periodically. This argument is only applicable when you specify -multicast_provider_pim_protocol pim_sm.

-multicast_provider_rp_addr

Specifies the IP address of the provider-side Rendezvous Point (RP) router, a PIM CSM router configured as the root of a multicast distribution tree. Required for (,G) and (,*,RP) groups. The value of this argument must be in IPv4 format. The default value is 192.0.2.0. This argument is only applicable when you specify -multicast_provider_pim_protocol pim_sm.

-multicast_customer_pim_protocol

Specifies the PIM protocol to be used on customer side. Possible values are:

pim_sm   All three group types are supported: (S,G), (*,G),
         and (*,*,RP).

pim_ssm   Join/Prune messages are only sent for (S, G)
           groups. (*,*,RP) or (*,G) groups cannot be added.

The default value is pim_sm.

-multicast_customer_bsr_enable

Enables or disables Bootstrap messages on multicast customer side. Possible values are 1 (enable) and 0 (disable). The default value is 0. When it is set to 1, PIM routers enabled for bootstrap routing functionality that generates Bootstrap messages periodically. This argument is applicable only when -multicast_customer_pim_protocol is set to pim_sm.

-multicast_customer_rp_addr

Specifies the IP address of the customer-side Rendezvous Point (RP) router, a PIM CSM router configured as the root of a multicast distribution tree. Required for (,G) and (,*,RP) groups. The value of this argument must be in IPv4 format. The default value is 192.0.2.0. This argument is applicable only when -multicast_customer_pim_protocol is set to pim_sm.

-multicast_customer_rp_increment

Specifies the increment value used to generate RP addresses on the customer side. The value of this argument must be in IPv4 format. The default value is 0.0.0.1. This argument is applicable only when -multicast_customer_pim_protocol is set to pim_sm.

-customer_route_type

Specifies the type of the route advertised by emulated CEs on customer side. Possible values are:

internal   Indicates that the route and the CE that advertises
           the route are in the same AS.

external    Indicates that the route and the CE that advertises
            the route are not in the same AS.

The default value is internal. This argument is applicable only when the -customer_ce_routing_protocol option includes OSPF and IS-IS.

-customer_route_count_per_ce

Specifies the number of routers to be added to each CE on customer side. Possible values range from 1 to 2147483647. The default is 1.

-customer_route_start

Indicates the first route advertised by emulated CE routers on customer side. Each subsequent route is incremented by the values specified by the -customer_route_step argument and the -customer_route_prefix_length argument. The default value is 10.1.1.0. The value of this argument must be in IPv4 format.

-customer_route_step

Specifies the step size in which the route address on customer side is incremented. The value of this argument is IPv4 format. The default value is 0.0.1.0.

-customer_route_prefix_length

Specifies the prefix length of route addresses on customer side. Possible values range from 1 to 32. The default value is 24.

-customer_route_overlap

Enables or disables route overlap on customer side. Possible values are 1 (enable) and 0 (disable). When it is set to 1, all VPNs advertise the same routes. For example, a CE in VPN1 advertises Route0 and Route1, and a CE in VPN2 also advertises Route0 and Route1. When it is set to 0, each VPN advertises unique routes. For example, a CE in VPN1 advertises Route0 and Route1, and a CE in VPN 2 advertises Route2 and Route3. The default value is 0.

-provider_route_count_per_ce

Specifies the number of simulated CE routes that appear to be connected behind the PE. Possible values range from 1 to 2147483647. The default value is 1.

-provider_route_start

Specifies the starting route address on provider side. The value of this argument must be in IPv4 format. The default value is 110.1.1.0.

-provider_route_step

Specifies the step size in which the route address on provider side is incremented. The value of this argument is IPv4 format. The default value is 0.0.1.0.

-provider_route_prefix_length

Specifies the prefix length of route addresses on provider side. Possible values range from 1 to 32. The default value is 24.

-provider_route_overlap

Enables or disables route overlap on provider side. Possible values are 1 (enable) and 0 (disable). When it is set to 1, all VPNs advertise the same routes. For example, a CE in VPN1 advertises Route0 and Route1, and a CE in VPN2 also advertises Route0 and Route1. When it is set to 0, each VPN advertises unique routes. For example, a CE in VPN1 advertises Route0 and Route1, and a CE in VPN 2 advertises Route2 and Route3. The default value is 0.

-vpn_v4_enable

Spirent Extension (for Spirent HLTAPI only).

Enables/disables IPv4 Next Generation MVPN (NG-MVPN). Possible values are 0 (disable) and 1 (enable). The default value is 1.

-vpn_v6_enable

Spirent Extension (for Spirent HLTAPI only).

Enables/disables IPv6 NG-MVPN (RFC 6513/6514). Possible values are 0 (disable) and 1 (enable). The default value is 0.

-traffic_pattern

Spirent Extension (for Spirent HLTAPI only).

Specifies the traffic mapping method to be used within each host block. Possible values are:

one_to_one      Every endpoint within the source endpoint block
                transmits traffic to the corresponding destination
                endpoint within the destination endpoint block.

one_to_many     Every endpoint within the source endpoint block
                transmits traffic to every destination endpoint
                within the destination endpoint block.

The default value is one_to_many.

-use_dut_ifc_as_rp_addr

Spirent Extension (for Spirent HLTAPI only).

Determines whether to set the Rendezvous Point (RP) address to the address of the DUT interface. Possible values are 0 and 1. When set to 1, the RP address will be set to the address of the DUT interface. The default value is 1.

-customer_use_ports_enable

Spirent Extension (for Spirent HLTAPI only).

Determines whether to set the DUT to port connections. Possible values are 0 and 1. If the test does not use provider-side ports, set it to 0. The default value is 1.

-provider_use_ports_enable

Spirent Extension (for Spirent HLTAPI only).

Determines whether to set the provider-side DUT to port connections. Possible values are 0 and 1. If the test does not use customer-side ports, set it to 0. The default value is 1.

-customer_multicast_traffic_load_percent_from_ports

Spirent Extension (for Spirent HLTAPI only).

Traffic load percent from customer ports. When both VPNv4 and VPNv6 are configured, the configured load is split evenly between the v4 and v6 VPNs. Possible values range from 0 to 100. The default value is 10.

-provider_multicast_traffic_load_percent_from_ports

Spirent Extension (for Spirent HLTAPI only).

Traffic load percent from provider ports. When both VPNv4 and VPNv6 are configured, the configured load is split evenly between the v4 and v6 VPNs. Possible values range from 0 to 100. The default value is 10.

-multicast_framesize

Spirent Extension (for Spirent HLTAPI only).

Size of frames in bytes, including the header. Possible values range from 12 to 16383. The default value is 1500.

-ipv6_vpn_route_mpls_label_type

Spirent Extension (for Spirent HLTAPI only).

Specifies the method by which labels are assigned within a traffic block. Possible values are:

site    Label per site. All routes in one traffic route are
        advertised with the same label

route   Label per route. Each route in one traffic route is
        advertised with a unique label

The default value is site.

-customer_ipv6_vpn_route_step

Spirent Extension (for Spirent HLTAPI only).

Identifies which part of the IPv6 address to increment for subsequent routes on the customer side. The default value is 1.

-customer_ipv6_vpn_route_prefix_length

Spirent Extension (for Spirent HLTAPI only).

Identifies the IPv6 network portion of the starting route identifier on the customer side. Possible values range from 1 to 128. The default value is 64.

-customer_ipv6_vpn_route_overlap

Spirent Extension (for Spirent HLTAPI only).

Determines how IPv6 routes are advertised on the customer side. Possible values are 0 and 1. When set to 1, all VPNs advertise the same routes. When set to 0, each VPN advertises unique routes. The default value is 0.

-customer_ipv6_vpn_route_start

Spirent Extension (for Spirent HLTAPI only).

First IPv6 route advertised by emulated CE routers. The value must be in IPv6 format. The default value is 2001::.

-provider_ipv6_vpn_route_step

Spirent Extension (for Spirent HLTAPI only).

Identifies which part of the IPv6 address to increment for subsequent routes on the provider side. The default value is 1.

-provider_ipv6_vpn_route_prefix_length

Spirent Extension (for Spirent HLTAPI only).

Identifies the IPv6 network portion of the starting route identifier on the provider side. Possible values range from 1 to 128. The default value is 64.

-provider_ipv6_vpn_route_overlap

Spirent Extension (for Spirent HLTAPI only).

Determines how routes are advertised on the provider side. Possible values are 0 and 1. When set to 1, all VPNs advertise the same routes. When set to 0, each VPN advertises unique routes. The default value is 0.

-provider_ipv6_vpn_route_start

Spirent Extension (for Spirent HLTAPI only).

First IPv6 route advertised by emulated PE routers on the provider side. The value must be in IPv6 format. The default value is 2001::.

-ipv6_unique_groups_per_sender

Spirent Extension (for Spirent HLTAPI only).

Determines how IPv6 multicast groups are created. Possible values are 0 and 1. When set to 1, groups are created per VPN. When set to 0, groups are created per sender. The default value is 0.

-ipv6_starting_group_address

Spirent Extension (for Spirent HLTAPI only).

IPv6 multicast address for the first group. The default value is ff3e::1.

-ipv6_group_count

Spirent Extension (for Spirent HLTAPI only).

Number of IPv6 multicast groups to create per VPN or sender. Possible values range from 1 to 65535. The default value is 1.

-ipv6_group_address_increment

Spirent Extension (for Spirent HLTAPI only).

Increment value used to create subsequent IPv6 multicast addresses. The value must be in IPv6 format. The default value is ::1.

-customer_ipv6_rp_addr

Spirent Extension (for Spirent HLTAPI only).

IPv6 address of the RP router on the customer side. The default value is 2001::1.

-customer_ipv6_rp_increment

Spirent Extension (for Spirent HLTAPI only).

Step value for subsequent RP addresses on the customer side. The value must be in IPv6 format. The default value is 0:0:0:1::.

-customer_ipv6_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

Number of IPv6 routes per CE on the customer side. Possible values range from 1 to 2147483647. The default value is 1.

-customer_ipv6_mcast_sender_per_route

Spirent Extension (for Spirent HLTAPI only).

Number of senders per sender route on the customer side. Possible values range from 1 to 2147483647. The default value is 1.

-customer_ipv6_mcast_sender_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

Number of configured IPv6 unicast routes to be used as multicast senders on the customer side. Possible values range from 1 to 2147483647. The default value is 1.

-customer_ipv6_ce_route_type

Spirent Extension (for Spirent HLTAPI only).

Specifies the type of IPv6 route to be advertised by emulated CEs on the customer side. This argument is available when -customer_ce_routing_protocol is set to ospf or isis. Possible values are:

internal    The route and the CE that advertise
            the route are in the same AS

external    The route and the CE that advertises
            the route are not in the same AS

The default value is internal.

-provider_ipv6_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

Number of IPv6 routers to be added to each CE on the provider side. Possible values range from 1 to 2147483647. The default value is 1.

-provider_ipv6_mcast_sender_per_route

Spirent Extension (for Spirent HLTAPI only).

Number of senders per sender route on the provider side. Possible values range from 1 to 2147483647. The default value is 1.

-provider_ipv6_mcast_sender_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

Number of configured IPv6 unicast routes on the provider side to be used as multicast senders. Possible values range from 1 to 2147483647. The default value is 1.

-customer_ipv4_vpn_route_step

Spirent Extension (for Spirent HLTAPI only).

Identifies which part of the IPv4 address to increment for subsequent routes. The default value is 1.

-customer_ipv4_vpn_route_start

Spirent Extension (for Spirent HLTAPI only).

First IPv4 route advertised by emulated CE routers of the VPN. The value must be in IPv4 format. The default value is 10.1.1.0.

-customer_ipv4_vpn_route_prefix_length

Spirent Extension (for Spirent HLTAPI only).

Specifies the IPv4 network portion of the starting route identifier. Possible values range from 1 to 32. The default value is 1.

-customer_ipv4_vpn_route_overlap

Spirent Extension (for Spirent HLTAPI only).

Determines how IPv4 routes are advertised on the customer side. Possible values are 0 and 1. When set to 1, all VPNs on the customer side advertise the same routes. When set to 0, each VPN on the customer side advertises unique routes. The default value is 0.

-provider_ipv4_vpn_route_step

Spirent Extension (for Spirent HLTAPI only).

Identifies which part of the IPv4 address to increment for subsequent routes on the provider side. The default value is 1.

-provider_ipv4_vpn_route_start

Spirent Extension (for Spirent HLTAPI only).

First IPv4 route advertised by emulated PE routers. The value must be in IPv4 format. The default value is 110.1.1.0.

-provider_ipv4_vpn_route_prefix_length

Spirent Extension (for Spirent HLTAPI only).

IPv4 network portion of the starting route identifier on the provider side. Possible values range from 1 to 32. The default value is 24.

-provider_ipv4_vpn_route_overlap

Spirent Extension (for Spirent HLTAPI only).

Determines how IPv4 routes are advertised on the provider side. Possible values are 0 and 1. When set to 1, all VPNs on the customer side advertise the same routes. When set to 0, each VPN on the customer side advertises unique routes. The default value is 0.

-ipv4_unique_groups_per_sender

Spirent Extension (for Spirent HLTAPI only).

Determines whether to create groups per VPN or per sender. Possible values are 0 and 1. When set to 0, groups are created per VPN. When set to 1, groups are created per sender. The default value 0.

-ipv4_starting_group_address

Spirent Extension (for Spirent HLTAPI only).

IPv4 multicast address for the first group. The value must be in IPv4 format. The default value is 232.0.0.1.

-ipv4_group_count

Spirent Extension (for Spirent HLTAPI only).

Number of IPv4 multicast groups to create per VPN or sender. Possible values range from 1 to 65535. The default value is 1.

-ipv4_group_address_increment

Spirent Extension (for Spirent HLTAPI only).

Increment value used to create subsequent IPv4 multicast group addresses. The value must be in IPv4 format. The default value is 0.0.0.1.

-customer_ipv4_mcast_sender_per_route

Spirent Extension (for Spirent HLTAPI only).

Number of senders per sender route on the customer side. Possible values range from 1 to 2147483647. The default value is 1.

-customer_ipv4_mcast_sender_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

Number of configured IPv4 unicast routes on the customer side to be used as multicast senders. Possible values range from 1 to 2147483647. The default value is 1.

-provider_ipv4_mcast_sender_per_route

Spirent Extension (for Spirent HLTAPI only).

Number of senders per sender route on the provider side. Possible values range from 1 to 2147483647. The default value is 1.

-provider_ipv4_mcast_sender_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

Number of configured IPv4 unicast routes on the provider side to be used as multicast senders. Possible values range from 1 to 2147483647. The default value is 1.

-multicast_traffic_enable

Spirent Extension (for Spirent HLTAPI only).

Enables/disables multicast traffic. Possible values are 0 (disable) and 1 (enable). The default value is 1.

-customer_enable_all_ipv6_mcast_sender_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

When enabled, all of the IPv6 routes per CE are configured as senders. The NG-MVPN wizard uses the unicast routes as multicast senders and binds them to the stream block. Possible values are 0 (enable) and 1 (disable). The default value is 1.

-customer_enable_all_ipv4_mcast_sender_routes_per_ce

Spirent Extension (for Spirent HLTAPI only).

When enabled, all of the IPv4 routes per CE are configured as senders. The NG-MVPN wizard uses the unicast routes as multicast senders and binds them to the stream block. Possible values are 0 (enable) and 1 (disable). The default value is 1.

-customer_enable_cust_bsr

Spirent Extension (for Spirent HLTAPI only).

Determines whether to send Bootstrap messages. PIM routers that are enabled for bootstrap routing functionality will periodically generate Bootstrap messages. Possible values are 0 and 1. If set to 1, Bootstrap messages will be sent. The default value is 1.

-customer_rp_increment

Spirent Extension (for Spirent HLTAPI only).

Step value for subsequent RP addresses. The value must be in IPv4 format. The default value is 0.0.0.1.

-customer_rp_addr

Spirent Extension (for Spirent HLTAPI only).

IPv4 address of the RP router on the customer side. The default value is 192.0.2.0.

-customer_ce_pim_protocol

Spirent Extension (for Spirent HLTAPI only).

Type of the PIM protocol used by the CE router. Possible values are:

sm   All three group types are supported: (S,G), (*,G), and
     (*,*,RP)

ssm  Join/Prune messages are only sent for (S, G) groups.
      (*,*,RP) or (*,G) groups cannot be added.

The default value is sm.

-bgp_route_reflector_ids

Spirent Extension (for Spirent HLTAPI only).

Specifies the BGP route reflector ID. The value must be in IPv4 format. The default value is 0.0.0.0.

-bgp_route_reflector_mode

Spirent Extension (for Spirent HLTAPI only).

Specifies the BGP reflector mode. Possible values are:

dut_as_rr       Specify the DUT as the route reflector
stc_as_rr       Specify Spirent TestCenter as the route reflector

The default value is stc_as_rr.

-ldp_hello_type

Spirent Extension (for Spirent HLTAPI only).

Type of Hello packet transmitted by the LDP router. Possible values are:

direct      Basic discovery mechanism used to locate
            directly connected  neighbors. Peer IP address
            is DUT interface address

targeted    Extended discovery mechanism used to locate
            neighbors not directly connected. Peer IP address
            is DUT loopback address

The default value is direct.

-mvpn_type

Spirent Extension (for Spirent HLTAPI only).

Specifies the type of MVPN to be tested. Possible values are:

rosen       Rosen MVPN as specified in RFC 6037

nextgen     BGP Signaled (Next Generation) MPVN as specified in
            RFC 6513/6514

The default value is rosen.

-vrf_route_mpls_label_type

Defines the method by which labels are assigned within a traffic block. Possible values are:

label_per_site   Specifies that all routes in one traffic route
                 are advertised with the same label.

label_per_route   Indicates that each route in one traffic
                  route is advertised with a unique label.

The default is label_per_site.

-vrf_route_mpls_label_start

Specifies the first MPLS label to be assigned to VPN routes on provider side. Possible value range from 1 to 1048575. The default value is 16.

-traffic_frame_size

Indicates the traffic frame size. Possible values range from 12 to 16383. The default value is 1280.

-traffic_analyzer_enable

Determines whether traffic analyzers on the provider side ports are created. Possible values are 1 (enable) and 0 (disable). When it is set to 1, Spirent HLTAPI creates traffic analyzers on the provider side ports. The default value is 0. Use this option only when -multicast_traffic_flow_direction is set to customer_to_provider or customer_to_all_other.

-traffic_load_percent_from_provider_port

Specifies the load percentage for test traffic from each provider-side port. Possible values range from 0 to 100. The default value is 10.

-traffic_load_percent_from_customer_port

Specifies the load percentage for test traffic from each customer side port. Possible values range from 0 to 100. The default value is 10.

-multicast_traffic_flow_direction

Defines the traffic flow to be created. Possible values are described below:

customer_to_provider   Indicates that the traffic flow is
          from the emulated customer CE devices to the
          emulated provider CE devices, through the DUT.
          This is the default value.

customer_to_customer   Indicates that the traffic flow is
         from the emulated customer CE devices to other
         emulated customer CE devices, through the DUT.

customer_to_all_other   Indicates that the traffic flow is
         from the emulated customer CE devices to other
         emulated customer CE devices and provider CE
         devices, through the DUT.

provider_to_customer   Indicates that the traffic flow is
         from the emulated provider CE devices to the
         emulated customer CE devices, through the DUT.
-multicast_traffic_source_count

Defines the number of sources for multicast traffic. Possible values range from 1 to 65535. The default value is 65535.

-multicast_traffic_all_source_enable

Determines whether Spirent HLTAPI enables all sources for multicast traffic. When it is set to 1, you can enable all sources. Possible values are 0 ( disable) and 1 (enable). The default value is 1.

-multicast_traffic_receiver_count

Defines the number of the receivers for multicast traffic. The default value is 1.

-multicast_traffic_all_receiver_enable

Determines whether Spirent HLTAPI enables all receivers for multicast traffic. When it is set to 1, you can enable all sources. Possible values are 0 (disable) and 1 (enable). The default value is 1.

-mdt_switch_over_traffic_enable

Determines to switch traffic from default MDT to data MDT. When it is set to 1, you can switch traffic from default MDT to data MDT. Possible values are 1 (enable) and 0 (disable). The default is 0. Use this argument only when you enable -multicast_default_mdt_addr and specify -multicast_traffic_flow_direction provider_to_customer.

-mdt_switch_over_interval

Defines the duration between the first MDT join and switching from the default MDT to the data MDT. Possible values range from 0 to 65535. The default value is 60.This argument is applicable only when the -mdt_switch_over_traffic_enable argument is enabled.

-mdt_switch_over_delay

Specifies the MDT switch over delay time. Possible values range from 0 to 65535. The default value is 3. This argument is applicable only when the -mdt_switch_over_traffic_enable argument is enabled.

-unicast_traffic_enable

Determines whether the unicast traffic can be used. Possible values are 1 (enable) and 0 (disable). When it is set to 1, you can specify the -unicast_traffic_flow_direction argument, the -unicast_traffic_stream_group_method argument, and the -unicast_traffic_use_single_stream_per_endpoint_pair argument. The default is 0.

-unicast_traffic_flow_direction

Specifies the type of unicast traffic flows to create. This argument is applicable only when the -unicast_traffic_enable argument is enabled. Possible values are described below:

customer_to_core  The traffic flow is from the emulated
                  CE devices to the emulated PE devices,
                  through the DUT.

core_to_customer  The traffic flow is from the emulated
                  PE devices to the emulated CE device. It runs
                  through the emulated P device and the DUT.

bidirectional    Traffic flow in both directions between the
                 emulated CE and the simulated CE devices behind
                 the PEs. This is the default value.

fully_meshed     Traffic flows are created between all CE
                 sites within the same VRF that are on different
                 ports.
-unicast_traffic_stream_group_method

Determines how to aggregate streams in a stream block. This argument is applicable only when the -unicast_traffic_enable argument is enabled. Possible values are described below:

aggregate    Aggregates all streams into a single stream
             block.

vpn         Aggregates all streams for a single VPN into
            a single stream block.
-unicast_traffic_use_single_stream_per_endpoint_pair

Determines whether to assign a single stream ID to each endpoint pair. Possible values are 1 (enable) and 0 (disable). The default value is 1 (enable) and 0 (disable). When it is set to 1, each endpoint is assigned a single stream ID. When it is set to 0, each flow between endpoint pairs is assigned a single stream ID. The default value is 0. This argument is applicable only when the -unicast_traffic_enable argument is enabled.

Cisco-specific Arguments

None

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         Identifies the handle of the MVPN network topology
               configured by the sth::emulation_mvpn_config
               function.

traffic_handle   Defines the handle of the traffic created by the
                 ``sth::emulation_mvpn_config`` function.

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

log               An error message (if the operation failed).

Description

The sth::emulation_mvpn_config function configures an RFC 2547bis style MPLS IP VPN network topologies, creates emulated and simulated CE, P, and PE routers, selects and enables routing and labeling protocols, configures multicast VPNs, and creates the traffic that is sent between VPNs.

This command emulates MPLS IP VPN topologies from two points-of-view: customer side and provider side. The customer side includes the CE routers and routes and IP traffic sent from those devices. This side of the network also includes the routing between CE and PE devices (the DUT). The provider side includes P and PE devices, IGP and BGP routing, VPN or VRF mapping, and labeled IP traffic sent from the provider side to the customer side of the network.

When you write an HLT API that uses Spirent HLTAPI Automation software for MVPN tests, you configure a test configuration to emulate MVPN networks.

During a MVPN test, the DUT works as a PE router of the VPN network. Spirent HLTAPI customer-side port sets up a control plane session and sends data plan packets to PE-CE interface of the DUT. Spirent HLTAPI provider-side port sets up a control plane session and sends data plane packets to the provider network interface.

In this context, you can create MVPN test configuration with emulation customer-side port and provider-side port. The emulation customer-side port acts as a CE device connecting to the local VPN site of DUT PE router. The emulation provider-side port acts as the provider network of the MPLS VPN connected to the remote VPN site. Each of the two emulated sides can send emulated VPN traffic to the DUT, from the local VPN site or from the Remote VPN site.

Examples

The following example configures a MVPN network topology:

set cmdStatus [sth::emulation_mvpn_config
            -mode create \
            -dut_loopback_ipv4_addr 220.1.1.1 \
            -dut_as 123 \
            -igp_protocol ospf \
            -mpls_protocol none \
            -p_router_enable 0 \
            -pe_router_number_per_sub_interface 1 \
            -pe_router_loopback_ipv4_addr 1.10.1.1 \
            -pe_router_loopback_ipv4_addr_step 0.0.0.1 \
            -vrf_number 1 \
            -vrf_rd_assignment use_rt \
            -vrf_route_target_start 200:1 \
            -vrf_route_target_step 200:1 \
            -customer_ce_vrf_assignment round_robin \
            -customer_ce_bgp_as 211 \
            -customer_ce_bgp_as_step_per_vrf_enable 1 \
            -customer_ce_bgp_as_step_per_vrf 1 \
            -customer_ce_routing_protocol bgp \
            -provider_pe_vrf_assignment vpn_per_pe \
            -provider_pe_vrf_count 1 \
            -multicast_provider_pim_protocol pim_sm \
            -multicast_provider_rp_addr 220.1.1.1 \
            -multicast_customer_pim_protocol pim_sm \
            -multicast_customer_rp_addr 6.146.1.1 \
            -multicast_customer_rp_increment 0.0.0.1 \
            -multicast_default_mdt_addr 239.192.1.1 \
            -multicast_default_mdt_increment 0.0.0.1 \
            -multicast_data_mdt_enable 0 \
            -multicast_group_count 1 \
            -multicast_group_addr_start 225.0.0.1 \
            -multicast_group_addr_increment 0.0.0.1 \
            -multicast_receiver_have_same_group 1 \
            -customer_route_type internal \
            -customer_route_count_per_ce 1 \
            -customer_route_start 19.1.1.0 \
            -customer_route_step 0.0.0.1 \
            -customer_route_prefix_length 24 \
            -provider_route_count_per_ce 1 \
            -provider_route_start 119.1.1.0 \
            -provider_route_step 0.0.0.1 \
            -provider_route_prefix_length 24 \
            -multicast_traffic_flow_direction customer_to_provider \
            -multicast_traffic_all_source_enable 1\
            -multicast_traffic_all_receiver_enable 1\
            -unicast_traffic_enable 0\
            -unicast_traffic_flow_direction bidirectional \
            -unicast_traffic_stream_group_method aggregate \
            -traffic_frame_size 1280 \
            -traffic_load_percent_from_provider_port 0.1 \
            -traffic_load_percent_from_customer_port 0.1]

Sample SUCCESS output:

{status 1} {handle mvpnhandle1} {traffic_handle mvpntraffic1}

Sample FAILURE output:

{status 0} {log XXX}

The following example configures NG-MVPN:

set device_ret0_router0 [sth::emulation_mvpn_config \
            -mode create\
            -mvpn_type  nextgen\
            -vpn_v4_enable  1\
            -vpn_v6_enable 1\
            -provider_use_ports_enable    1\
            -dut_loopback_ipv4_addr  200.200.200.1\
            -dut_as 100\
            -igp_protocol ospf\
            -mpls_protocol rsvp\
            -igp_ospfv2_area_id 0.0.0.0\
            -igp_ospfv2_network_type native\
            -igp_ospfv2_router_priority 0\
            -igp_ospfv2_interface_cost 1\
            -igp_ospfv2_options 2\
            -igp_ospfv2_authentication_mode    none\
            -mpls_rsvp_bandwidth_per_link 10000\
            -mpls_rsvp_bandwidth_per_tunnel 0\
            -mpls_rsvp_egress_label next_available\
            -mpls_rsvp_transit  accept_configured\
            -mpls_rsvp_min_label 16\
            -mpls_rsvp_max_label 65535\
            -mpls_rsvp_graceful_restart_enable 0\
            -p_router_loopback_ipv4_addr 200.200.200.2\
            -p_router_loopback_ipv4_addr_step 0.0.0.1\
            -pe_router_number_per_sub_interface 1\
            -pe_router_loopback_ipv4_addr  200.200.200.2\
            -pe_router_loopback_ipv4_addr_step  0.0.0.1\
            -customer_use_ports_enable    1\
            -vrf_number 1\
            -vrf_rd_assignment manual\
            -vrf_route_target_start   100:100\
            -vrf_route_target_step    0:1\
            -customer_ce_vrf_assignment round_robin\
            -customer_ce_bgp_as 1\
            -customer_ce_pim_protocol     sm\
            -customer_ce_routing_protocol bgp\
            -customer_ce_bgp_percent   100\
            -customer_rd_start 100:100\
            -customer_ce_bgp_as_step_per_vrf_enable 1\
            -customer_ce_bgp_as_step_per_vrf  1\
            -provider_rd_start 200:200\
            -provider_rd_step_per_vrf_enable 1\
            -provider_rd_step_per_vrf  1:0\
            -provider_pe_vrf_assignment vpn_per_pe\
            -provider_pe_vrf_count 1\
            -customer_ipv6_rp_addr    2001::1\
            -customer_ipv6_rp_increment 0:0:0:1::\
            -customer_rp_addr 1.1.1.1\
            -customer_rp_increment 0.0.0.1\
            -ipv4_group_address_increment     0.0.0.1\
            -ipv4_group_count 10\
            -ipv4_starting_group_address     226.1.1.1\
            -ipv4_unique_groups_per_sender 0\
            -ipv6_group_address_increment     ::1\
            -ipv6_group_count 10\
            -ipv6_starting_group_address     ff1e::1\
            -ipv6_unique_groups_per_sender 0\
            -provider_ipv4_vpn_route_overlap  0\
            -provider_ipv4_vpn_route_prefix_length 24\
            -provider_ipv4_vpn_route_start     110.1.1.0\
            -provider_ipv4_vpn_route_step 1\
            -customer_ipv4_vpn_route_overlap  0\
            -customer_ipv4_vpn_route_prefix_length       24\
            -customer_ipv4_vpn_route_start     100.1.1.0\
            -customer_ipv4_vpn_route_step 1\
            -vrf_route_mpls_label_type label_per_site\
            -vrf_route_mpls_label_start 16\
            -customer_route_type       internal\
            -provider_ipv6_vpn_route_start  2005::\
            -provider_ipv6_vpn_route_overlap  0\
            -provider_ipv6_vpn_route_prefix_length  64\
            -provider_ipv6_vpn_route_step 1\
            -customer_ipv6_vpn_route_start 2100::1\
            -customer_ipv6_vpn_route_overlap  0\
            -customer_ipv6_vpn_route_prefix_length 64\
            -customer_ipv6_vpn_route_step 1\
            -ipv6_vpn_route_mpls_label_type site\
            -customer_ipv6_ce_route_type internal\
            -customer_enable_all_ipv4_mcast_sender_routes_per_ce 1\
            -customer_enable_all_ipv6_mcast_sender_routes_per_ce 1\
            -multicast_traffic_enable  1\
            -provider_enable_all_ipv4_mcast_sender_routes_per_ce 1\
            -provider_enable_all_ipv6_mcast_sender_routes_per_ce 1\
            -customer_multicast_traffic_load_percent_from_ports   10\
            -multicast_framesize    1500]

End of Procedure Header

sth::emulation_mvpn_control

Purpose

The sth::emulation_mvpn_control function starts or stops a configured MVPN topology.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_mvpn_control
   [-action { start|stop}  M]
   [-handle <mvpn_topology_handle_list>]
   [-mvpn_type {nextgen|rosen}]

Arguments

-action

Specifies the action to be performed. This argument is mandatory. Possible values are described below:

start     Starts the MVPN network
stop      Stops the MVPN network
-handle

Specifies a list of MVPN network topologies to be started or stopped

-mvpn_type

Spirent Extension (for Spirent HLTAPI only).

Determines which type of MVPN to be tested. Possible values are:

rosen     Rosen MVPN as specified in RFC 6037
nextgen   NG-MPVN as specified in RFC 6513/6514

The default value is rosen.

Cisco-specific Arguments

None

Return Values

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

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

Description

The sth::emulation_mvpn_control function controls the configured MVPN topology. You can use the function to perform two actions: starting MVPN topology and stopping MVPN topology.

Examples

The following example starts a MVPN network topology:

sth::emulation_mvpn_control -action start -handle $mvpnHdl

The following example stops a MVPN network topology:

sth::emulation_mvpn_control -action stop -handle $mvpnHdl

The following example starts the configured NG-MVPN:

set mvpn_ctrl [sth::emulation_mvpn_control -action start\
          -mvpn_type nextgen\
          -handle "$CeRtrv6 $CeRtrv4 $PeRouter $PRouter"]

Sample output for the examples above:

# On Success
    {{status 1} }

# On Failure
    {{status 0} {log xxxxxxx}}

End of Procedure Header

sth::emulation_mvpn_info

Purpose

Retrieves statistics for the configured MVPN topology.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_mvpn_info
   [-handle <mvpn_topology_handle>  M]
   [-mode {bgp|rsvp|ldp|ospfv2|isis|pim|aggregate}   M]
   [-mvpn_type {nextgen|rosen}]

Arguments

-handle

Specifies the MVPN network on which the information will be retrieved. This argument is Mandatory .

-mode

Determines the information about which protocol will be retrieved. This argument is Mandatory . Possible values are bgp, rsvp, ldp, ospfv2, isis, pim, and aggregate. The default value is aggregate. When you specify aggregate, the information about all the protocols above will be retrieved.

-mvpn_type

Spirent Extension (for Spirent HLTAPI only).

Determines the type of MVPN from which to retrieve results. Possible values are:

rosen     Rosen MVPN as specified in RFC 6037
nextgen   NG-MPVN as specified in RFC 6513/6514

The default value is rosen.

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).
port.xxx.device_handle
Returns an emulated device handle which has protocols running on it for the purpose of gathering detailed protocol results.

The pattern of a certain protocol return key will be “port.xxx.device.yyy.protocolxx.ooxx”. xxx represents the port handle the emulated device is on; yyy represents the emulated device handle the protocol running on; protocolxx represents the protocol name like bgp and ldp; ooxx represents detailed return key of a certain protocol.

The statistics that will be returned are listed below: :

BGP protocol information

port.xxx.device.yyy.bgp.router_state
Router state
port.xxx.device.yyy.bgp.bgp_type
BGP type
port.xxx.device.yyy.bgp.tx_advertised_route
Number of the sent advertised routes.
port.xxx.device.yyy.bgp.tx_withdrawn_route
Number of the sent withdrawn routes.
port.xxx.device.yyy.bgp.tx_advertised_update
Number of sent advertised update messages.
port.xxx.device.yyy.bgp.tx_keepalive
Number of sent keepalive messages.
port.xxx.device.yyy.bgp.tx_notification
Number of sent notification messages.
port.xxx.device.yyy.bgp.tx_notify_code
Number of sent notify codes.
port.xxx.device.yyy.bgp.tx_notify_subcode
Number of sent notify subcodes.
port.xxx.device.yyy.bgp.tx_open
Number of sent open messages.
port.xxx.device.yyy.bgp.tx_route_refresh
Number of sent route refresh messages.
port.xxx.device.yyy.bgp.tx_withdrawn_update
Number of sent withdrawn update messages.
port.xxx.device.yyy.bgp.last_rx_update_route
Number of received withdrawn update routes.
port.xxx.device.yyy.bgp.outstanding_route
Number of outstanding routes.
port.xxx.device.yyy.bgp.rx_advertised_route
Number of received advertised routes.
port.xxx.device.yyy.bgp.rx_advertised_update
Number of received advertised update messages.
port.xxx.device.yyy.bgp.rx_keepalive
Number of received keepalive messages.
port.xxx.device.yyy.bgp.rx_notification
Number of received notification messages.
port.xxx.device.yyy.bgp.rx_notify_code
Number of received notify codes.
port.xxx.device.yyy.bgp.rx_notify_subcode
Number of received notify subcodes.
port.xxx.device.yyy.bgp.rx_open
Number of received open messages.
port.xxx.device.yyy.bgp.rx_route_refresh
Number of received route refresh messages.
port.xxx.device.yyy.bgp.rx_withdrawn_route
Number of received withdrawn routes.

OSPFv2 protocol information

port.xxx.device.yyy.ospfv2.router_state
Router state.
port.xxx.device.yyy.ospfv2.neighbor_state
Neighbor state.
port.xxx.device.yyy.ospfv2.rx_ack
Number of received acknowledge messages.
port.xxx.device.yyy.ospfv2.rx_asbr_summary_lsa
Number of received Autonomous System Boundary Router (ASBR) summary LSA.
port.xxx.device.yyy.ospfv2.rx_as_external_lsa
Number of received AS external Link-State Advertisements (LSAs)
port.xxx.device.yyy.ospfv2.rx_dd
Number of received Database Description packets.
port.xxx.device.yyy.ospfv2.rx_hello
Number of received hello messages.
port.xxx.device.yyy.ospfv2.rx_network_lsa
Number of received network LSAs.
port.xxx.device.yyy.ospfv2.rx_nssa_lsa
Number of received NSSA LSAs.
port.xxx.device.yyy.ospfv2.rx_request
Number of received request messages.
port.xxx.device.yyy.ospfv2.rx_router_lsa
Number of received router LSAs.
port.xxx.device.yyy.ospfv2.rx_summary_lsa
Number of received summary LSAs.
port.xxx.device.yyy.ospfv2.rx_telsa
Number of received TE LSAs.
port.xxx.device.yyy.ospfv2.rx_update
Number of received update messages.
port.xxx.device.yyy.ospfv2.tx_ack
Number of sent acknowledge messages.
port.xxx.device.yyy.ospfv2.tx_asbr_summary_lsa
Number of sent ASBR summary LSAs.
port.xxx.device.yyy.ospfv2.tx_as_external_lsa
Number of sent AS external LSAs.
port.xxx.device.yyy.ospfv2.tx_dd
Number of sent Database Description packets.
port.xxx.device.yyy.ospfv2.tx_hello
Number of sent hello messages.
port.xxx.device.yyy.ospfv2.tx_network_lsa
Number of sent network LSAs.
port.xxx.device.yyy.ospfv2.tx_nssa_lsa
Number of sent NSSA LSAs.
port.xxx.device.yyy.ospfv2.tx_request
Number of sent request messages.
port.xxx.device.yyy.ospfv2.tx_router_lsa
Number of sent router LSAs.
port.xxx.device.yyy.ospfv2.tx_summary_lsa
Number of sent summary LSAs.
port.xxx.device.yyy.ospfv2.tx_telsa
Number of sent TE LSAs.
port.xxx.device.yyy.ospfv2.tx_update
Number of sent update messages.

IS-IS protocol information

port.xxx.device.yyy.isis.router_state
Router state.
port.xxx.device.yyy.isis.adjacency_level
Adjacency level.
port.xxx.device.yyy.isis.rx_l1_csnp
Number of received L1 Complete Sequence Number PDUs (CSNPs).
port.xxx.device.yyy.isis.rx_l1_lan_hello
Number of L1 LAN Hellos sent to the DUT
port.xxx.device.yyy.isis.rx_l1_lsp
Number of L1 LSPs received from the DUT
port.xxx.device.yyy.isis.rx_l1_psnp
Number of L1 Partial Sequence Number PDUs (PSNPs) received from the DUT
port.xxx.device.yyy.isis.rx_l2_csnp
Number of received L2 CSNPs.
port.xxx.device.yyy.isis.rx_l2_lan_hello
Number of L2 LAN Hellos received from the DUT.
port.xxx.device.yyy.isis.rx_l2_lsp
Number of L2 LSPs received from the DUT.
port.xxx.device.yyy.isis.rx_l2_psnp
Number of L2 PSNPs received from the DUT
port.xxx.device.yyy.isis.rx_ptp_hello
Number of Peer to peer hellos received from the DUT
port.xxx.device.yyy.isis.tx_l1_csnp
Number of the sent L1 CSNPs.
port.xxx.device.yyy.isis.tx_l1_lan_hello
Number of L1 LAN Hellos sent to the DUT.
port.xxx.device.yyy.isis.tx_l1_lsp
Number of L1 LSPs sent to the DUT.
port.xxx.device.yyy.isis.tx_l1_psnp
Number of L1 PSNPs sent to the DUT.
port.xxx.device.yyy.isis.tx_l2_csnp
Number of L2 CSNPs sent to the DUT.
port.xxx.device.yyy.isis.tx_l2_lan_hello
Number of L2 LAN Hellos sent to the DUT.
port.xxx.device.yyy.isis.tx_l2_lsp
Number of L2 LSPs sent to the DUT.
port.xxx.device.yyy.isis.tx_l2_psnp
Number of L2 PSNPs sent to the DUT.
port.xxx.device.yyy.isis.tx_ptp_hello
Number of peer to peer Hellos sent to the DUT.

RIP protocol information

port.xxx.device.yyy.rip.router_state
Router State.
port.xxx.device.yyy.rip.rx_advertised_update
Number of received advertised update messages.
port.xxx.device.yyy.rip.rx_withdrawn_update
Number of received withdrawn update messages.
port.xxx.device.yyy.rip.tx_advertised_update
Number of sent advertised update messages.
port.xxx.device.yyy.rip.tx_withdrawn_update
Number of sent withdrawn update messages.

LDP protocol information

port.xxx.device.yyy.ldp.router_state
Router state.
port.xxx.device.yyy.ldp.lsp_up_num
Number of LSPs in the up state.
port.xxx.device.yyy.ldp.lsp_down_num
Number of LSPs in the down state.
port.xxx.device.yyy.ldp.rx_direct_hello
Number of the received direct Hellos.
port.xxx.device.yyy.ldp.rx_keepalive
Number of the received keepalive messages
port.xxx.device.yyy.ldp.rx_label_abort
Number of label abort requests received.
port.xxx.device.yyy.ldp.rx_label_mapping
Number of label mapping messages received.
port.xxx.device.yyy.ldp.rx_label_release
Number of label release messages received
port.xxx.device.yyy.ldp.rx_label_request
Number of label requests received.
port.xxx.device.yyy.ldp.rx_label_withdraw
Number of label withdraw messages received.
port.xxx.device.yyy.ldp.rx_notification
Number of notification messages received.
port.xxx.device.yyy.ldp.rx_notify_code
Number of notify codes received.
port.xxx.device.yyy.ldp.rx_targeted_hello
Number of targeted Hellos received.
port.xxx.device.yyy.ldp.tx_direct_hello
Number of direct Hellos sent.
port.xxx.device.yyy.ldp.tx_keepalive
Number of keepalive messages sent.
port.xxx.device.yyy.ldp.tx_label_abort
Number of label abort requests sent.
port.xxx.device.yyy.ldp.tx_label_mapping
Number of label mapping messages sent.
port.xxx.device.yyy.ldp.tx_label_release
Number of label release messages sent.
port.xxx.device.yyy.ldp.tx_label_request
Number of label requests sent.
port.xxx.device.yyy.ldp.tx_notification
Number of notification messages sent.
port.xxx.device.yyy.ldp.tx_notify_code
Number of notify codes sent.
port.xxx.device.yyy.ldp.tx_targeted_hello
Number of targeted Hellos sent.

RSVP protocol information

port.xxx.device.yyy.rsvp.router_state
Router State.
port.xxx.device.yyy.rsvp.avg_lsp_setup_time
Average time to set up an LSP on the session.
port.xxx.device.yyy.rsvp.egress_lsp_up
Number of egress LSPs in up state.
port.xxx.device.yyy.rsvp.last_rx_path_error_code
Number of Path Error messages received.
port.xxx.device.yyy.rsvp.last_rx_resv_error_code
Number of Reservation Error messages received.
port.xxx.device.yyy.rsvp.last_tx_path_error_code
Number of Path Error messages sent.
port.xxx.device.yyy.rsvp.last_tx_resv_error_code
Number of Reservation Error messages sent.
port.xxx.device.yyy.rsvp.lsp_connecting
Number of LSPs in connecting state.
port.xxx.device.yyy.rsvp.lsp_down
Number of LSPs in the down state.
port.xxx.device.yyy.rsvp.lsp_up
Number of LSPs in the up state.
port.xxx.device.yyy.rsvp.max_lsp_setup_time
Maximum time to set up an LSP on the session.
port.xxx.device.yyy.rsvp.min_lsp_setup_time
Minimum time to set up an LSP on the session.
port.xxx.device.yyy.rsvp.rx_hello
Number of received Hellos.
port.xxx.device.yyy.rsvp.rx_path
Number of path messages sent.
port.xxx.device.yyy.rsvp.rx_path_error
Number of Path Error messages received.
port.xxx.device.yyy.rsvp.rx_path_recovery
Number of PATH Recovery packets received
port.xxx.device.yyy.rsvp.rx_path_teardown
Number of Path Teardown messages received.
port.xxx.device.yyy.rsvp.rx_resv
Number of Reservation messages received.
port.xxx.device.yyy.rsvp.rx_resv_confirmation
Number of Reservation Confirmation messages received
port.xxx.device.yyy.rsvp.rx_resv_error
Number of Reservation Error messages received.
port.xxx.device.yyy.rsvp.rx_resv_teardown
Number of Reservation Teardown messages received.
port.xxx.device.yyy.rsvp.tx_hello
Number of Hellos sent.
port.xxx.device.yyy.rsvp.tx_path
Number of path messages sent.
port.xxx.device.yyy.rsvp.tx_path_error
Number of Path Error messages sent.
port.xxx.device.yyy.rsvp.tx_path_recovery
Number of PATH Recovery packets sent.
port.xxx.device.yyy.rsvp.tx_path_teardown
Number of Path Teardown messages sent.
port.xxx.device.yyy.rsvp.tx_resv
Number of Reservation messages sent.
port.xxx.device.yyy.rsvp.tx_resv_confirmation
Number of Reservation Confirmation messages sent.
port.xxx.device.yyy.rsvp.tx_resv_error
Number of Reservation Error messages sent.
port.xxx.device.yyy.rsvp.tx_resv_teardown
Number of Reservation Teardown messages sent.

PIM protocol information

port.xxx.device.yyy.pim.router_state
Router state.
port.xxx.device.yyy.pim.neighbor_num
Number of PIM neighbors for the router.
port.xxx.device.yyy.pim.rx_assert
Number of Assert messages received.
port.xxx.device.yyy.pim.rx_boot_strap
Number of Bootstrap messages received.
port.xxx.device.yyy.pim.rx_cand_rp_advert
Number of candidate RP Advertisements received
port.xxx.device.yyy.pim.rx_group_rp
Number of (,,RP) groups received.
port.xxx.device.yyy.pim.rx_group_s_g
Number of (S,G) groups received.
port.xxx.device.yyy.pim.rx_group_s_g_rpt
Number of (S,G,rpt) groups received.
port.xxx.device.yyy.pim.rx_group_star_g
Number of (*,G) groups received.
port.xxx.device.yyy.pim.rx_hello
Number of received Hellos.
port.xxx.device.yyy.pim.rx_join_prune
Number of Join/Prune messages received.
port.xxx.device.yyy.pim.rx_register
Number of Register messages received.
port.xxx.device.yyy.pim.rx_register_stop
Number of Register Stop messages received.
port.xxx.device.yyy.pim.tx_assert
Number of Assert messages sent.
port.xxx.device.yyy.pim.tx_boot_strap
Number of Bootstrap messages sent.
port.xxx.device.yyy.pim.tx_cand_rp_advert
Number of candidate RP Advertisements sent.
port.xxx.device.yyy.pim.tx_group_rp
Number of (,,RP) groups sent.
port.xxx.device.yyy.pim.tx_group_s_g
Number of (S,G) groups sent.
port.xxx.device.yyy.pim.tx_group_s_g_rpt
Number of (S,G,rpt) groups sent.
port.xxx.device.yyy.pim.tx_group_star_g
Number of (*,G) groups sent.
port.xxx.device.yyy.pim.tx_hello
Number of Hellos sent.
port.xxx.device.yyy.pim.tx_join_prune
Number of Join/Prune messages sent.
port.xxx.device.yyy.pim.tx_register
Number of Register messages sent.
port.xxx.device.yyy.pim.tx_register_stop
Number of Register Stop messages sent.

BFD protocol information

port.xxx.device.yyy.bfd.session_up
Number of BFD sessions in the Up state.
port.xxx.device.yyy.bfd.session_down
Number of BFD session in the down state.
port.xxx.device.yyy.bfd.tx_bfd_pdu
Number of BFD PDUs sent.
port.xxx.device.yyy.bfd.rx_bfd_pdu
Number of BFD PDUs received.

Description

The sth::emulation_mvpn_info function provides information about the configured MVPN network topology.

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). 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

Sample Input:

puts "get mvpn configuration BGP info"
set cmdStatus [sth::emulation_mvpn_info -mode bgp -handle $mvpnHdl]

Sample Output:

{port {{port2 {{devices router4} {device {{router4 {{bgp
{{rx_advertised_route 2} {rx_open 1} {rx_notify_code 0}
{tx_advertised_route 1} {last_rx_update_route 1} {tx_open 1}
{tx_withdrawn_update 0} {rx_notify_subcode 0}
{rx_advertised_update 2} {tx_notify_code 0} {rx_withdrawn_route 0}
{rx_notification 0} {tx_advertised_update 1} {tx_notify_subcode 0}
{router_state ESTABLISHED} {tx_withdrawn_route 0} {bgp_type EBGP}
{tx_notification 0} {rx_route_refresh 0} {outstanding_route 1}
{rx_keepalive 4}{tx_keepalive 5} {tx_route_refresh 0}}}}}}}}}
{port1 {{devices router2} {device {{router2 {{bgp
{{rx_advertised_route 29} {rx_open 1} {rx_notify_code 0}
{tx_advertised_route 2} {last_rx_update_route 3} {tx_open 1}
{tx_withdrawn_update 0} {rx_notify_subcode 0}
{rx_advertised_update 11} {tx_notify_code 0} {rx_withdrawn_route 0}
{rx_notification 0} {tx_advertised_update 2} {tx_notify_subcode 0}
{router_state ESTABLISHED} {tx_withdrawn_route 0} {bgp_type IBGP}
{tx_notification 0} {rx_route_refresh 0} {outstanding_route 2}
{rx_keepalive 4} {tx_keepalive 4} {tx_route_refresh 0}}}}}}}}}}} {status 1}

Sample Input:

# To get NG-MVPN results
set mvpn_ctrl [sth::emulation_mvpn_info -mode ospfv2\
                           -handle "$CeRtrv6 $CeRtrv4 $PeRouter $PRouter"\
                           -mvpn_type nextgen]

End of Procedure Header