Multicast API Functions

sth::emulation_multicast_group_config

Purpose

Creates, modifies, or deletes multicast groups on Spirent HLTAPI. Use these multicast functions with the HLTAPI functions for the IGMP (for IPv4), MLD (for IPv6), and PIM protocols.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_multicast_group_config
     [-mode {create|modify|delete}  M]
     [-handle <multicast_group_pool_handle>]
     [-ip_addr_start {<a.b.c.d> |  <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>}]
     [-ip_addr_step <integer> | <a.b.c.d> | <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
     [-ip_prefix_len <1-128>]
     [-num_groups <1-65535>]
     [-pool_name <group_pool_name>]
     [-ip_group_mem_step <a.b.c.d> | <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
     [-pool_name_index <integer>]
     [-count <integer>]

Arguments

-handle

The handle of the multicast group to modify or delete. This argument is Mandatory for modify or delete mode but is not used for create mode.

-ip_addr_start

Specifies the first multicast group address in the group pool. The default for IPv4 is 224.0.0.1. If you do not enter an IPv6 address, the default IPv4 address is used.

-ip_addr_step

Specifies the amount by which to increment the first multicast group address to generate each subsequent group address in the group pool. This argument can be configured either in integer format or in IPv4 address format or in IPv6 address format. The IPv4 or IPv6 address is automatically converted to an integer value and then used as the address increment. Possible values range from 0 to 4294967295. The default value is 1.

-ip_prefix_len

Sets the bit in the address by which to change the step value to generate each subsequent address in the pool. Possible values range from 1 to 128. The default for IPv4 addresses is 32. The default for IPv6 is 128.

-mode

Specifies the action to perform. Possible values are create, modify, or delete, This argument is Mandatory . The modes are described below:

create   Creates a multicast group pool.

modify   Changes the configuration parameters for the
         multicast group identified by the -handle argument.

delete   Deletes the multicast group pool specified by
         -handle.
-num_groups

Specifies the number of multicast groups in the group pool. Possible values range from 1 to 65535. The default is 1.

-pool_name

Assigns a name to the group pool.

-pool_name_index

Specifies the starting value of the index for the pool name.

Dependency: -pool_name

-count

Specifies the number of multicast groups. The default value is 1.

-ip_group_mem_step

Specifies the amount by which to increment the IP address between the specified multicast groups. This argument can be configured either in IPv4 address format or in IPv6 address format. This argument is available for mode -modify.

Arguments Unsupported by Save as HLTAPI

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 multicast group pool that you
          configured using the sth::emulation_multicast_group_config
          function.

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

log       An error message (if the operation failed).

Description

The sth::emulation_multicast_group_config function creates, modifies, or deletes multicast groups. A multicast group is a set of recipients that all want to receive a particular data stream.

You specify the starting IP address (-ip_addr_start) for this multicast group as well as the increment value by which other IP addresses will be created (-ip_addr_step), the prefix length (ip_prefix_len), the number of groups in the pool (-num_groups), and the name of the group pool (-pool_name).

Data addressed to the starting IP address is forwarded to all members of the multicast group.

Use the -mode argument to specify the action to perform. (See the -mode argument description for information about the actions.)

Use this function to configure groups that will all receive the same data packets.

Note

This function is Mandatory by sth::emulation_igmp_group_config to configure IGMP groups.

Examples

#### HLTAPI for Tcl ####

The following example creates a multicast group containing five groups:

sth::emulation_multicast_group_config
      -mode create \
      -num_groups 5

Sample Output:

{handles group01} {status 1}

The following example modifies the multicast groups IP addresses of the created multicast groups. It increments the IP addresses between the multicast groups by the ip_group_mem_step value.

set mld_ret [sth::emulation_mld_config
-mode activate
-port_handle $port1
-count 1
-block_mode one_network_per_block
-block_name_index
 1
-vlan_id 5
-vlan_id_step 1
-vlan_id_count 5
-link_local_ipv6_addr
 fe80::1
-link_local_ipv6_addr_step
 0::1:0:0:0
-intf_ipv6_addr
 2001::3
-intf_ipv6_addr_step
 0:0:0:1::0
-link_local_ipv6_prefix_len
 64
-gateway_ipv6_addr
 2001::2
-gateway_ipv6_addr_step
 0:0:0:1::0
-mld_version v2
-expand true
-device_group_mapping
 one_to_one
-mcast_ipv6_addr
 ff1e::2000
-ignore_memberships
 false
-mcast_group_count
 38
-filtered_sources
 custom
-src_ipv6_addr 2003::1
-src_count 2
-src_step 4
-src_ipv6_prefix
 128]

Sample Output:

 {param_handle emulateddevicegenparams1} {status 1} {handle {}} {handle_list {emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4 emulateddevice5}} {mld_handle_list {mldhostconfig1 mldhostconfig2 mldhostconfig3 mldhostconfig4 mldhostconfig5}} {mld_group_handle_list {mldgroupmembership1 mldgroupmembership2 mldgroupmembership3 mldgroupmembership4 mldgroupmembership5}} {multicast_group_handle_list {ipv6group1 ipv6group2 ipv6group3 ipv6group4 ipv6group5}} {handles {emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4 emulateddevice5}}

set multicast_group_hdl [keylget mld_ret multicast_group_handle_list]

set device_ret0_ipgroup_modify [sth::emulation_multicast_group_config\
       -mode                                             modify\
       -handle                                           $multicast_group_hdl\
       -ip_addr_start                                    ff1e::2000 \
       -ip_group_mem_step                                ::38 \
       -num_groups                                       38 ]

Sample Output:

{status 1} {handle {ipv6group1 ipv6group2 ipv6group3 ipv6group4 ipv6group5}}

#### HLTAPI for Python ####

The following example creates a multicast group containing one group:

my %device_ret0_macstgroup_1 = sth::emulation_multicast_group_config (
            mode                => 'create',
            ip_prefix_len       => '32',
            ip_addr_start       => '225.0.0.1',
            ip_addr_step        => '1',
            num_groups          => '1',
            pool_name           => 'Ipv4Group_1');

Sample Output:

{'status': '1', 'handle': 'ipv4group1'}

#### HLTAPI for Perl ####

The following example creates a multicast group containing one group:

my %device_cfg_ret5_macstgroup_1 = sth::emulation_multicast_group_config (
               mode                => 'create',
               ip_prefix_len       => '32',
               ip_addr_start       => '225.0.0.1',
               ip_addr_step        => '1',
               num_groups          => '1',
               pool_name           => 'Ipv4Group_1');

Sample Output:

$VAR1 = 'handle';
$VAR2 = 'ipv4group1';
$VAR3 = 'status';
$VAR4 = '1';

Note

The use of IGMP or MLD messages in host-router communication is determined by the IP version of the traffic. If hosts are sending IPv4 traffic, then hosts and routers use IGMP for multicast group membership communication. If hosts are sending IPv6 traffic, then MLD is used. A Spirent HLTAPI test configuration can use either PIM-SM or PIM-SSM for router-to-router communication.

Spirent HLTAPI supports the use of IGMP versions 1, 2, or 3 for multicast group membership.

End of Procedure Header

sth::emulation_multicast_source_config

Purpose

Creates, modifies, or deletes multicast sources on Spirent HLTAPI. Use this procedure with the sth::emulation_igmp_group_config (IGMPv3), sth::emulation_mld_group_config (MLD), and sth::emulation_pim_group_config (PIM) procedures. Source pool definitions might be shared among ports if supported by vendor.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_multicast_source_config
     [-mode {create|modify|delete}  M]
     [-handle <multicast_group_pool_handle>]
     [-ip_addr_start {<a.b.c.d> | <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>}
     [-ip_addr_step <integer> | <a.b.c.d> | <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
     [-ip_prefix_len <1-128>]
     [-num_sources <1-65535>]
     [-pool_name <source_pool_name>]

Arguments

-handle

The handle of the multicast source pool to modify or delete. This argument is Mandatory for modify or delete mode but is not used for create mode.

-ip_addr_start

Specifies the first multicast source address in the source pool. The default for IPv4 is 224.0.0.1. If you do not enter an IPv6 address, the default IPv4 address is used.

-ip_addr_step

Specifies the amount by which to increment the source address to generate each subsequent address in the pool. This argument can be configured either in integer format or in IPv4 address format or in IPv6 address format. The IPv4 or IPv6 address is automatically converted to an integer value and then used as the address increment. Possible values range from 0 to 4294967295. The default value is 1.

-ip_prefix_len

Sets the bit in the address by which to change the step value to generate each subsequent address in the pool. Possible values range from 1 to 128. The default for IPv4 addresses is 32. The default for IPv6 is 128.

-mode

Specifies the action to perform. Possible values are create, modify, or delete, This argument is Mandatory . The modes are described below: :

create
Creates a multicast source pool.
modify
Changes the configuration parameters for the multicast source identified by the -handle argument.
delete
Deletes the multicast source pool specified by -handle.
-num_sources

Specifies the number of multicast sources in the source pool. Possible values range from 1 to 65535. The default is 1.

-pool_name

Assigns a name to the source pool.

Arguments Unsupported by Save as HLTAPI

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 multicast source pool that you
          configured using the sth::emulation_multicast_source_config
          function.

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

log       An error message (if the operation failed).

Description

The sth::emulation_multicast_source_config function creates, modifies, or deletes multicast sources (that is, the sources of multicast traffic). A multicast source is a host that sends data to a multicast group.

A source host sends data to a multicast group by setting the destination IP address of the datagram to be the multicast group address.

Before a host can send data to a multicast group, or join the list of recipients for a group, it must know the address of the multicast group. Use the sth::emulation_multicast_source_config function to specify the source IP addresses from which the host systems will receive multicast traffic.

Hosts who want to receive data from the multicast group join the group by sending a message to a multicast router on a local interface, using either IGMP (for IPv4 addresses) or MLD (for IPv6 addresses).

Use the -mode argument to specify the action to perform. (See the -mode argument description for information about the actions.)

Multicast routers communicate among themselves using a multicast routing protocol such as PIM.

Note

This function is Mandatory by the sth::emulation_igmp_source_config function to configure IGMP sources.

Examples

#### HLTAPI for Tcl ####

The following example creates a multicast source configuration:

sth::emulation_multicast_source_config \
              -mode "create" \
              -ip_addr_start $source_ip \
              -ip_addr_step 1 \
              -ip_prefix_len 32 \
              -num_sources $num_sources \
              -pool_name " PoolName "

Sample Output:

{handles multicastSourcePool1} {status 1}

#### HLTAPI for Python ####

The following example creates a multicast source configuration:

device_ret0_macstsource_1 = sth.emulation_multicast_source_config (
             mode                = 'create',
             ip_addr_start       = '2.0.1.0',
             ip_prefix_len       = '32',
             ip_addr_step        = '1',
             num_sources         = '1');

Sample Output:

{'status': '1', 'handle': 'multicastSourcePool(0)'}

#### HLTAPI for Perl ####

The following example creates a multicast source configuration:

my %device_ret0_macstsource_1 = sth::emulation_multicast_source_config (
             mode                => 'create',
             ip_addr_start       => '2.0.1.0',
             ip_prefix_len       => '32',
             ip_addr_step        => '1',
             num_sources         => '1');

Sample Output:

$VAR1 = 'handle';
$VAR2 = 'multicastSourcePool(0)';
$VAR3 = 'status';
$VAR4 = '1';

End of Procedure Header

sth::emulation_mcast_wizard_config

Purpose

Spirent Extension (for Spirent HLTAPI only).

Creates or deletes the multicast routing topology, mapping the operations of Multicast Routing Wizard in the Spirent TestCenter GUI.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_mcast_wizard_config
       [-mode {create|modify|delete}  M]
       [-port_handle_upstream <ALPHANUM>   M]
       [-port_handle_downstream <ALPHANUM>   M]
       [-handle <ALPHANUM>]
       [-mcast_protocol_upstream {none | sm | ssm}]
       [-sub_if_upstream {true | false}]
       [-vlan_id_upstream <1-4095>]
       [-igp_protocol {none | ospf | isis | bgp}]
       [-ipv4_prefix_len_upstream <1-32>]
       [-enable_bsr {true | false}]
       [-ipv6_prefix_len_upstream <1-128>]
       [-router_id_upstream <4-octet>]
       [-ipv4_router_upstream <a.b.c.d>]
       [-ipv4_gw_addr_upstream <a.b.c.d>]
       [-ipv4_rp_addr_upstream <a.b.c.d>]
       [-ipv6_gw_addr_upstream <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_router_upstream <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_rp_addr_upstream <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-hosts_routers_per_port <1-2000>]
       [-hosts_routers_per_vlan <1-2000>]
       [-ipv4_prefix_len_downstream <1-32>]
       [-ipv6_prefix_len_downstream <1-128>]
       [-sub_if_count_downstream <1-65535>]
       [-sub_if_downstream {true | false}]
       [-vlan_id_downstream <1-4095>]
       [-vlan_id_step_downstream <1-4095>]
       [-ipv4_gw_addr_downstream <a.b.c.d>]
       [-ipv4_mcast_protocol_downstream {sm | ssm | igmp_v1 | igmp_v2 | igmp_v3}]
       [-ipv4_host_router_downstream <a.b.c.d>]
       [-ipv4_host_router_downstream_step <a.b.c.d>]
       [-ipv4_vlan_incr <a.b.c.d>]
       [-ipv6_gw_addr_downstream <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_mcast_protocol_downstream {sm | ssm | mld_v1 | mld_v2}]
       [-router_id_downstream <4-octet>]
       [-ipv6_host_router_downstream <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_host_router_downstream_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_vlan_incr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv4_base_group_addr <a.b.c.d>]
       [-ipv4_base_src_addr <a.b.c.d>]
       [-ipv4_base_group_addr_step <a.b.c.d>]
       [-ipv4_base_src_addr_step <a.b.c.d>]
       [-ipv4_group_port_step <a.b.c.d>]
       [-ipv4_group_vlan_step <a.b.c.d>]
       [-ipv4_src_port_step <a.b.c.d>]
       [-ipv4_src_vlan_step <a.b.c.d>]
       [-ipv6_base_group_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_base_src_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_base_group_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_base_src_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_group_port_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_group_vlan_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_src_port_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-ipv6_src_vlan_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
       [-create_traffic {true | false}]
       [-filter_mode {include exclude}]
       [-traffic_frame_size <12-16383>]
       [-groups_per_host <1-2000>]
       [-hosts_rx_same_groups {true | false}]
       [-ip_version {v4 | v6}]
       [-traffic_load <0-100>]
       [-ports_rx_same_groups {true | false}]
       [-src_addr_count_per_host <1-2000>]

Arguments

-port_handle_upstream

Specifies the port handle on which you want to configure upstream hosts/routers for the Multicast Routing Wizard. The value uniquely identifies a port on a chassis. This argument is Mandatory .

-port_handle_downstream

Specifies the port handle on which you want to configure downstream device hosts/routers for the multicast wizard. The value uniquely identifies a port on a chassis. This argument is Mandatory .

-handle

A list of handles of hosts/routers to be created in the Multicast Routing Wizard. This argument is Mandatory for -mode delete.

-mode

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

create
Creates the emulated multicast host/router on the port specified by port handle
delete
Deletes the multicast device host/router identified by the -handle argument

The default value is create.

-mcast_protocol_upstream

Specifies the multicast protocol for upstream groups. Possible values are:

none       None
sm         PIM-SM
ssm        PIM-SSM

The default value is sm.

-sub_if_upstream

Enables or disables upstream sub-interfaces. Possible values are true (enable) and false (disable). The default value is false.

-vlan_id_upstream

Specifies the ID of the first VLAN in the upstream block. This argument is available when -sub_if_upstream is enabled. Possible values range from 1 to 4095. The default value is 1.

-igp_protocol

Specifies the interior gateway protocol for upstream groups. Possible values are:

none          None
ospf          OSPF
isis          ISIS
bgp           BGP

The default value is ospf.

-ipv4_prefix_len_upstream

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

-enable_bsr

Enables or disables Bootstrap messages. PIM routers enabled for bootstrap routing functionality generate Bootstrap messages periodically. Possible values are true (enable) and false (disable). The default value is false.

-ipv6_prefix_len_upstream

Specifies the IPv6 prefix length on the upstream subnet. Possible values range from 1 to 128. The default value is 64.

-router_id_upstream

Specifies the router ID of the upstream test port. The value is a 4-octet ID. The default value is 192.85.1.2.

-ipv4_router_upstream

Specifies the upstream router’s IP address on the test port. The value is the first IPv4 address for the DUT if -sub_if_upstream is enabled. The default value is 192.85.1.2.

-ipv4_gw_addr_upstream

Specifies the gateway/DUT IPv4 address. The default value is 192.85.1.1.

-ipv4_rp_addr_upstream

Specifies the IPv4 address of the emulated Rendezvous Point (RP) router, a PIM-SM router configured as the root of the multicast distribution tree. The default value is 192.0.2.0.

-ipv6_gw_addr_upstream

Specifies the IPv6 gateway/DUT address. The default value is 2000::1.

-ipv6_router_upstream

Specifies the upstream router’s IPv6 address on the test port. This argument is available when -sub_if_upstream is enabled. The default value is 2000::2.

-ipv6_rp_addr_upstream

Specifies the IPv6 address of the emulated RP router. The default value is 2001:db8::1.

-hosts_routers_per_port

Specifies the number of emulated hosts or routers to create for each port. This argument is available when -sub_if_downstream is disabled. Possible values range from 1 to 2000. The default value is 1.

-hosts_routers_per_vlan

Specifies the number of emulated hosts or routers to create for each VLAN. This argument is available when sub-interfaces are enabled. Possible values range from 1 to 2000. The default value is 1.

-ipv4_prefix_len_downstream

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

-ipv6_prefix_len_downstream

Specifies the IPv6 prefix length on the downstream subnet. Possible values range from 1 to 128. The default value is 64.

-sub_if_count_downstream

Specifies the number of sub-interfaces to create on the downstream port. Possible values range from 1 to 65535. The default value is 1.

-sub_if_downstream

Enables or disables downstream sub-interfaces. Sub-interfaces allow multiple routers and multiple VLANs to be created per port. Possible values are true (enable) and false (disable). The default value is false.

-vlan_id_downstream

Specifies the ID of the first VLAN in the downstream block. This argument is available when -sub_if_downstream is enabled. Possible values range from 1 to 4095. The default value is 1.

-vlan_id_step_downstream

Specifies the step value by which to generate additional VLAN IDs. This argument is available when -sub_if_downstream is enabled. Possible values range from 1 to 4095. The default value is 1.

-ipv4_gw_addr_downstream

Specifies the IPv4 address of the downstream network gateway/DUT. The default value is 192.85.1.1.

-ipv4_mcast_protocol_downstream

Specifies the IPv4 multicast protocol for downstream groups. Possible values are:

sm                PIM-SM
ssm               PIM-SSM
igmp_v1           IGMPv1
igmp_v2           IGMPv2
igmp_v3           IGMPv3

The default value is igmp_v2.

-ipv4_host_router_downstream

Specifies the IP address of the first emulated downstream host or router. The default value is 192.85.1.2.

-ipv4_host_router_downstream_step

Specifies the step value by which to generate additional IP addresses for hosts or routers. The default value is 0.0.0.1.

-ipv4_vlan_incr

Specifies the step value by which to generate additional IPv4 hosts/gateways. The value must be in IPv4 format. The default value is 0.0.1.0.

-ipv6_gw_addr_downstream

Specifies the IPv6 address of the first downstream gateway/DUT. The default value is 2000::1.

-ipv6_mcast_protocol_downstream

Specifies the IPv6 multicast protocol for downstream groups. Possible values are:

sm         PIM-SM
ssm        PIM-SSM
mld_v1     MLDv1
mld_v2     MLDv2

The default value is mld_v1.

-router_id_downstream

Specifies the router ID of the downstream test port. This argument is available when -ip_version is 6. The value must be a 4-octet ID. The default value is 192.85.1.2.

-ipv6_host_router_downstream

Specifies the IPv6 address of the first emulated host or router. The default value is 2000::2.

-ipv6_host_router_downstream_step

Specifies the step value by which to generate additional IPv6 hosts or routers. The value must be in IPv6 format. The default value is ::1.

-ipv6_vlan_incr

Specifies the step value by which to generate additional IPv6 hosts/gateways. The value must be in IPv6 format. The default value is ::0.

-ipv4_base_group_addr

Specifies the multicast IPv4 address for the first group. The default value is 232.0.0.1.

-ipv4_base_src_addr

Specifies the IPv4 address for the first source. The default value is 10.1.1.2.

-ipv4_base_group_addr_step

Specifies the step value by which to generate additional IPv4 group addresses. The default value is 0.0.0.1.

-ipv4_base_src_addr_step

Specifies the step value by which to generate additional source IPv4 addresses. The value must be in IPv4 format. The default value is 0.0.1.0.

-ipv4_group_port_step

Specifies the step value by which to generate additional group IPv4 addresses. The value must be in IPv4 format. The default value is 0.1.0.0.

-ipv4_group_vlan_step

Specifies the step value by which to generate additional VLAN IPv4 addresses. The value must be in IPv4 format. The default value is 0.0.1.0.

-ipv4_src_port_step

Specifies the step value by which to generate additional port IPv4 addresses. The value must be in IPv4 format. The default value is 0.1.0.0.

-ipv4_src_vlan_step

Specifies the step value by which to generate additional source VLAN IPv4 addresses. The value must be in IPv4 format. The default value is 0.0.1.0.

-ipv6_base_group_addr

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

-ipv6_base_src_addr

Specifies the IPv6 address for the first source. The default value is 2000::1.

-ipv6_base_group_addr_step

Specifies the step value by which to generate additional group IPv6 addresses. The value must be in IPv6 format. The default value is ::0:1.

-ipv6_base_src_addr_step

Specifies the step value by which to generate additional source IPv6 addresses. The value must be in IPv6 format. The default value is ::0:1.

-ipv6_group_port_step

Specifies the step value by which to generate additional port IPv6 addresses for multicast groups. The value must be in IPv6 format. The default value is 1::.

-ipv6_group_vlan_step

Specifies the step value by which to generate additional VLAN IPv6 addresses for multicast groups. The value must be in IPv6 format. The default value is ::1:0.

-ipv6_src_port_step

Specifies the step value by which to generate additional source IPv6 addresses. The value must be in IPv6 format. The default value is ::1.

-ipv6_src_vlan_step

Specifies the step value by which to generate additional source VLAN IPv6 addresses. The value must be in IPv6 format. The default value is ::1:0.

-create_traffic

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

-filter_mode

Specifies the IGMPv3 filter mode. Possible values are:

include
Data from the specified sources are filtered and forwarded to the hosts by the multicast router.
exclude
Data from the specified sources are filtered and not forwarded to the hosts by the multicast router.

The default is include.

-traffic_frame_size

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

-groups_per_host

Specifies the number of groups to be created for each host. Possible values range from 1 to 2000. The default value is 1.

-hosts_rx_same_groups

Specifies how groups are distributed across hosts on a port. Possible values are true and false. When set to true, all hosts on a port join the same groups. When set to false, all hosts on a port join different groups. The default value is true.

-ip_version

Specifies the IP version for the upstream/downstream traffic. Possible values are v4 and v6. The default value is v4.

-traffic_load

Specifies the traffic load in percentage. Possible values range from 0 to 100. The default value is 10.

-ports_rx_same_groups

Determines whether all ports will join the same group (true) or different groups (false). The default value is true.

-src_addr_count_per_host

Specifies the number of source addresses per host. Possible values range from 1 to 2000. The default value is 1.

Return Values

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

handle                   The handle that identifies the Multicast Routing Wizard
                         configuration

upstream_handle          The handle that identifies the upstream Multicast Routing
                         Wizard configuration

downstream_handle        The handle that identifies the downstream Multicast Routing
                         Wizard configuration

streamblock_handle       The handle that identifies streamblocks created by the
                         Multicast Routing Wizard

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

log                      An error message (if the operation failed)

Description

The sth::emulation_mcast_wizard_config function configures multicast routing topology, mapping the operations of the Multicast Routing Wizard in the Spirent Test Center GUI.

It takes -port_handle_upstream and -port_handle_downstream as Mandatory inputs, and creates a multicast routing topology. Use the -mode argument to specify the operation to perform. See the -mode argument for a description of the actions.

Examples

The following example creates a multicast routing topology:

set device_ret0 [sth::emulation_mcast_wizard_config\
       -mode                                     create\
       -ip_version                               v4\
       -port_handle_upstream                   $port1 \
       -port_handle_downstream              $port2 \
       -mcast_protocol_upstream                sm \
       -sub_if_upstream                        false \
       -vlan_id_upstream                       100 \
       -igp_protocol                           ospf \
       -enable_bsr                             true \
       -router_id_upstream                     11.1.1.1 \
       -ipv4_router_upstream                    11.1.1.2 \
       -ipv4_gw_addr_upstream                  11.1.1.1 \
       -ipv4_prefix_len_upstream               24 \
       -ipv4_rp_addr_upstream                  3.3.3.3 \
       -ipv6_gw_addr_upstream                  2000::1 \
       -ipv6_router_upstream                   2000::2 \
       -ipv6_prefix_len_upstream               64 \
       -ipv6_rp_addr_upstream                  2000::10 \
       -hosts_routers_per_port                   1 \
       -hosts_routers_per_vlan                 1 \
       -router_id_downstream                     120.1.1.1\
       -ipv4_prefix_len_downstream                24 \
       -sub_if_downstream                      false \
       -sub_if_count_downstream                1 \
       -vlan_id_downstream                     100 \
       -vlan_id_step_downstream                2 \
       -ipv4_gw_addr_downstream                12.1.1.1 \
       -ipv4_mcast_protocol_downstream         sm \
       -ipv4_host_router_downstream            12.1.1.2 \
       -ipv4_host_router_downstream_step       0.0.0.1\
       -ipv4_vlan_incr                         1.1.1.1 \
       -ipv6_gw_addr_downstream                3000::1 \
       -ipv6_mcast_protocol_downstream         mld_v2 \
       -ipv6_host_router_downstream            3000::2 \
       -ipv6_host_router_downstream_step       ::1 \
       -ipv6_vlan_incr                         3000::11 \
       -ipv6_prefix_len_downstream             64 \
       -ipv4_base_group_addr                   224.0.0.10 \
       -ipv4_base_group_addr_step              0.0.0.1 \
       -ipv4_group_port_step                   0.0.0.1 \
       -ipv4_group_vlan_step                   0.0.0.1\
       -ipv6_base_group_addr                   ff1e::1\
       -ipv6_base_group_addr_step              ::1 \
       -ipv6_group_port_step                   ::1 \
       -ipv6_group_vlan_step                   ::1 \
       -groups_per_host                        1 \
       -hosts_rx_same_groups                   false \
       -ports_rx_same_groups                   true \
       -filter_mode                            exclude \
       -ipv4_base_src_addr                     11.1.1.2 \
       -ipv4_base_src_addr_step                0.0.0.1 \
       -ipv4_src_port_step                     0.0.0.2 \
       -ipv4_src_vlan_step                     0.0.0.2 \
       -ipv6_base_src_addr                     4000::1 \
       -ipv6_base_src_addr_step                ::1 \
       -ipv6_src_port_step                     ::1 \
       -ipv6_src_vlan_step                     ::1 \
       -src_addr_count_per_host                1 \
       -create_traffic                         true \
       -traffic_frame_size                     1208 \
       -traffic_load                           10 \
]

Sample output:

{upstream_handle {{port1 {{host_handle host1} {router_handle router1}}}}}
{downstream_handle {{port2 {{host_handle host2}}}}} {streamblock_handle
streamblock1} {handle mcastgenparams1} {status 1}

The following example removes the specified multicast routing topology:

set device_ret0 [sth::emulation_mcast_wizard_config \
  -mode           delete \
  -handle          "$mcast_hnd $upstream_router_handle $downstream_host_handle \
                    $upstream_host_handle"\
                    ]

Sample Output:

{status 1}

End of Procedure Header