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