MLD Functions¶
sth::emulation_mld_config¶
Purpose¶
Creates, modifies, or deletes a Multicast Listener Discovery Protocol (MLD) session on the specified Spirent HLTAPI port or handle.
MLD is a communications protocol that manages IPv6 multicast groups. Use MLD to track IPv6 multicast membership.
Synopsis¶
Note
- M indicates that the argument is Mandatory .
- S indicates the argument is for
scaling
scenarios.
sth::emulation_mld_config [-mode {create|modify|activate|delete} M] [-port_handle <port_handle>] [-handle <device_handle>|<mld_session_handle>] [-count <1-65535> ] [-filter_mode {include | exclude}] [-filter_ip_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-force_leave {0|1}] [-force_robust_join {0|1}] [-general_query 1] [-group_query 1] [-insert_checksum_errors {0|1}] [-intf_ip_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-intf_ip_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-intf_prefix_len <1-128>] [-insert_length_errors {0|1}] [-ip_router_alert 1 ] [-link_local_intf_ip_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-link_local_intf_prefix_len <1-128>] [-max_response_control 0 ] [-mld_version {v1|v2} ] [-msg_interval <0-4294967295>] [-neighbor_intf_ip_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-neighbor_intf_ip_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-qinq_incr_mode {inner|outer|both}] [-robustness <2-255>] [-suppress_report 1] [-unsolicited_report_interval <0-4294967295>] [-use_partial_block_state {0|1}] [-vlan_cfi {0|1}] [-vlan_outer_cfi {0 | 1}] [-vlan_id <0-4095> ] [-vlan_id_count <1-4096>] [-vlan_id_mode {fixed|increment}] [-vlan_id_step <0-4094>] [-vlan_user_priority <0-7>] [-vlan_id_outer <0-4095>] [-vlan_id_outer_mode {fixed|increment}] [-vlan_id_outer_count <1-4096>] [-vlan_id_outer_step <0-4094>] [-vlan_outer_user_priority <0-7>] [-expand {true|false} S] [-mcast_group_count <1-32000>] [-ignore_memberships {true|false}] [-device_group_mapping {many_to_many|one_to_one|round_robin}] [-mcast_ipv6_addr <IPV6>] [-filtered_sources {custom|existing|none}] [-src_ipv6_addr <IPV6>] [-src_count <1-4294967295>] [-src_step <0-4294967295>] [-src_ipv6_prefix <1-128>] [-source_filters {true | false}] [-source_list <device_list or host_list>] [-incr_src_ipv6_addr_per_device <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
Arguments¶
-
-count
¶
Defines the number of MLD sessions to create on the interface. Possible values are 1 to 65535. The default is 1. You can configure up to 8192 sessions per port.
-
-filter_mode
¶
Specifies an explicit set of sources from which the multicast group is interested in receiving data (configures MLDv2 Include Filter mode). Possible values are include and exclude. The default is “include”.
- 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.
-
-filter_ip_addr
¶
Configure the filtered IP address. The values must be in IPv6 format. The default value is 2008::8.
-
-force_leave
¶
Spirent Extension (for Spirent HLTAPI only).
Controls whether all hosts are Mandatory to send leave reports when leaving the multicast group. Valid values are 0 (false) and 1 (true). The default is 0. If set to 0, hosts are not Mandatory to send a Leave Group message when leaving a multicast group. If set to 1, hosts are Mandatory to send a Leave Group message when leaving a multicast group. This argument affects all hosts except the last one, which is always Mandatory to send an MLDv1 leave report. MLDv1 hosts leaving a multicast group may optionally send a leave report to the all-routers multicast group.
-
-force_robust_join
¶
Spirent Extension (for Spirent HLTAPI only).
Controls whether a second unsolicited join report is transmitted by the MLDv1 host. Valid values are 0 (false) and 1 (true). The default is 0. If set to 0, MLDv1 hosts do not transmit a second join report. If set to 1, MLDv1 hosts do transmit a second join report.
When an MLDv1 host joins a multicast group, it immediately transmits an initial unsolicited membership report for that group, in case it is the first member of that group on the network. In case the initial report gets damaged or lost, it is recommended that you send a second unsolicited report.
-
-general_query
¶
Always enabled. When -general_query is set to 1, Spirent HLTAPI responds to only general queries received on the interface.
-
-group_query
¶
Always enabled. When -group_query is set to 1, Spirent HLTAPI responds to only group-specific (and source/group) queries received on the interface.
-
-handle
¶
The handle of the MLD host configured on the port to use when -mode is set to either modify or delete. When mode is create, Spirent HLTAPI creates MLD over the provided device. (Please refer to -mode for more information)
-
-insert_checksum_errors
¶
Spirent Extension (for Spirent HLTAPI only).
Controls the insertion of checksum errors into the MLD messages by the hardware. Valid values are 0 (false) and 1 (true). The default is 0. If set to 0, the MLD checksum of the transmitted packet is not modified. If set to 1, the MLD checksum of the transmitted packet is flipped by the protocol stack (that is, the least significant bit is inverted.)
-
-insert_length_errors
¶
Spirent Extension (for Spirent HLTAPI only).
Controls the insertion of message length errors into the MLD messages by the MLD stack. Valid values are 0 (false) and 1 (true). The default is 0. If set to 1, every MLD packet transmitted by the host will be two bytes shorter than normal If set to 0, the MLD packet lengths will not be modified.
-
-intf_ip_addr
¶
Specifies the first IPv6 address in the group. This argument is Mandatory .
-
-intf_ip_addr_step
¶
Specifies the difference between interface IP addresses of consecutive hosts when multiple MLD hosts are created. The default increment is 1. This argument is only applicable in create mode.
-
-intf_prefix_len
¶
Specifies the address prefix length on the emulated host, Possible values for IPv6 addresses range from 1 to 128; the default is 64,
-
-ip_router_alert
¶
Alerts transit routers to examine the contents of an IP packet more closely. When -ip_router_alert is set to 1, Spirent HLTAPI enables the IP router alert option. This argument is always enabled (1 or true) in Spirent HLTAPI whenever hosts send to routers. The IP router alert option is useful for new protocols that are addressed to a destination but require relatively complex processing in routers along the path. (See RFC 2113 for more information.)
-
-link_local_intf_ip_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the first link local IPv6 address in the group.
-
-link_local_intf_prefix_len
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the address prefix length on the emulated host, Possible values for link local IPv6 addresses range from 1 to 128; the default is 128.
-
-max_response_control
¶
Always set to 0 (false).
-
-mld_version
¶
Specifies the multicasting protocol used to manage multicast group memberships. Possible values are:
v1 - Initial multicasting protocol version for IPv6, similar to IGMPv2. It is specified in RFC 2710. v2 - Version of MLD, specified in draft-vida-mld- v2-08.txt, that adds the "include" and "exclude" filter functionality.
-
-mode
¶
Specifies the action to perform. Possible values are create, modify, and delete. This argument is Mandatory . The modes are described below: :
- create
- Creates MLD hosts on the specified port or handle, but does not start them.
- modify
- Changes the configuration parameters for the MLD hosts identified by the -handle argument. When -port_handle is provided, Spirent HLTAPI creates one or more emulated hosts that are associated with the specified port. When -handle is provided, Spirent HLTAPI creates MLD over the specified device.
- activate
- Used for
Scaling
scenarios. Enables MLD devices and configures MLD parameters for the devices created via the sth::emulation_device_config function. This mode requires the value of param_handle as the input to the -handle option. Use this mode for
Scaling
scenarios. Refer to -count and -expand options under thesth::emulation_mld_config
function for more information. For this mode, only the following set of options are valid:mld_version device_group_mapping mcast_ipv6_addr ignore_memberships mcast_group_count filtered_sources src_ipv6_addr src_count src_step src_ipv6_prefix
Creates devices and enables MLD protocol. Requires -port_handle and -block_mode options. For this mode, the following options are required/supported along with the options specified above:
-count -block_mode -block_name_index -name -vlan_id -vlan_outer_id -vlan_user_pri -vlan_id_count -vlan_id_repeatmode -vlan_outer_id_count -vlan_outer_user_pri -vlan_outer_id_repeatmode -router_id_ipv6 -router_id_ipv6_step -mac_addr -mac_addr_step -link_local_ipv6_addr -link_local_ipv6_addr_step -intf_ipv6_addr -intf_ipv6_addr_step -intf_ipv6_prefix_len -link_local_ipv6_prefix_len -gateway_ipv6_addr -gateway_ipv6_addr_step -mac_addr_step_per_port -mac_addr_step_per_vlan -ipv6_step_per_vlan -ipv6_step_per_port -link_local_ipv6_step_per_port -link_local_ipv6_step_per_vlan -source_filters -source_list -incr_src_ipv6_addr_per_device
Note
Please refer to the emulation_device_config documentation.
- Used for
- delete
- Stops the MLD emulation locally without attempting to clear the bound addresses from the MLD server. In addition, all MLD group sessions information on the port is cleared and the connection is restarted.
Note
When -handle is provided for -mode modify, the following options will be obsoleted:
-intf_ip_addr -intf_ip_addr_step -intf_prefix_len -neighbor_intf_ip_addr -neighbor_intf_ip_addr_step -vlan_cfi -vlan_id -vlan_id_mode -vlan_id_step -vlan_user_priority -vlan_outer_cfi -vlan_id_count -vlan_id_outer -vlan_id_outer_count -vlan_id_outer_step -vlan_id_outer_mode -vlan_outer_user_priority -qinq_incr_mode -link_local_intf_ip_addr -link_local_intf_ip_addr_step -link_local_intf_prefix_len
-
-msg_interval
¶
Maximum output rate of MLD message packets generated per millisecond. Set this value to 0 to send messages as fast as possible. Possible values range from 0 to 4294967295. The default is 0.
-
-neighbor_intf_ip_addr
¶
Specifies the IP address of the interface for the MLD neighbor (next hop) that will establish an adjacency with the DUT. The default for IPv6 is 2000::1.
-
-neighbor_intf_ip_addr_step
¶
Specifies the difference between the MLD neighbor’s interface IP addresses when multiple MLD hosts are created. The default is 0000:0000:0000:0000:0000:0000:0000:0000 (that is, the same address).
-
-port_handle
¶
The handle of the port on which to create the MLD session.
-
-qinq_incr_mode
¶
Determines which VLAN ID to increment first. Possible values are:
inner - Increments the inner VLAN ID before the outer VLAN ID outer - Increments the outer VLAN ID before the inner VLAN ID both - Increment both the inner and outer VLAN ID at the same time.
The default value is inner.
-
-robustness
¶
Specifies the number of times to send a State Change Report. This number is used in the calculation of default values for various timers and counters. Possible values are 2 to 255. The default value is 2. For MLDv1, you must set -force_robust_join to 1.
-
-suppress_report
¶
Suppresses the transmission of a listener report that duplicates one received on the interface. Multicast hosts can suppress the transmission of reports to reduce the amount of multicast communication. This argument is always enabled.
-
-unsolicited_report_interval
¶
Sets the interval (in 1/10 seconds) to wait before re- sending the host’s initial report of membership in a group. Possible values are 0 to 4294967295. The default value is 100 for MLDv1 and 10 for MLDv2. Set it to 0 if you do not want to send an unsolicited report.
-
-use_partial_block_state
¶
Spirent Extension (for Spirent HLTAPI only).
Controls the use of a partial block state. Possible values are 1 (true) and 0 (false). When set to 1, this argument enables using a partial block state. When set to 0, it disables the use of a partial block state.
-
-vlan_cfi
¶
Sets the canonical format indicator field in VLAN for the emulated router node. Possible values are 0 (Ethernet) and 1 (Token Ring). The default is 1. If set to 0, it indicates Token Ring and packets are dropped by Ethernet ports. If set to 0, it indicates the network is Ethernet.
-
-vlan_id
¶
Defines the VLAN ID of the first VLAN sub-interface. Possible values range from 0 to 4095. The default is 1. When the mode is either “create” or “enable”, Spirent HLTAPI checks for a vlan object on the port with the given VLAN ID. If no VLAN object with that ID exists, Spirent HLTAPI creates a VLAN object with the specified VLAN ID.
-
-vlan_id_count
¶
Specifies the number of inner VLAN tags to generate for the stream. Possible values range from 1 to 4096. The default is 1.
-
-vlan_id_mode
¶
If you configure more than one interface on Spirent HLTAPI with VLAN, you can choose to either automatically increment the VLAN tag (mode “increment”) or leave it idle for each interface (mode “fixed”), in which case the VLAN ID is the same for all packets. If you set this argument to “increment”, then you must also specify the -vlan_id_step argument to indicate the step size. The default is increment.
-
-vlan_id_step
¶
Defines the step size by which the VLAN value is incremented when you set -vlan_id_mode to “increment”. Possible values range from 0 to 4094. You must specify the step when the -count argument is greater than 1. The default is 1.
-
-vlan_id_outer
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the VLAN ID for a particular outer header. Possible values range from 0 to 4095.
-
-vlan_id_outer_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of VLAN tags to generate for the outer header. Possible values range from 1 to 4096. The default is 1. You must set the -vlan_id_outer_mode argument to increment.
-
-vlan_id_outer_mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies how Spirent Test Center will assign VLAN tags to packets in the specified outer header. Possible values are:
- fixed
- The outer VLAN ID is the same for all packets.
- increment
- For all packets, the outer VLAN tag ID increments by the step specified in the -vlan_id_outer_step argument.
-
-vlan_id_outer_step
¶
Spirent Extension (for Spirent HLTAPI only).
The amount by which to increment the specified outer VLAN ID (-vlan_id_outer) for subsequent packets. Possible values range from 0 to 4094. The default is 0.
-
-vlan_outer_cfi
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies whether the canonical format indicator (cfi) value is set for the VLAN outer header. Possible values are 0 or 1.
-
-vlan_outer_user_priority
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the VLAN priority to assign to the outer header. Possible values range from 0 to 7. The default is 0.
-
-vlan_user_priority
¶
Defines the VLAN priority for the VLANs on this port. Possible values range from 0 to 7. The default is 0.
-
-expand
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether to expand the specified MLD device parameters into emulated MLD device objects. It is used in
Scaling
test scenarios.When set to true, a list of emulated device handles (handle_list) with enabled MLD device configurations is created.
When set to false, only MLD parameters are configured with no handle returned.
-
-mcast_group_count
¶
Specifies the number of multicast groups to subscribe to. Possible values range from 1 to 32000. The default is 1. Applicable only in -mode activate when -block_mode or -expand is specified.
-
-ignore_memberships
¶
Specifies to enable/disable configuration of group memberships. Possible values are true and false. The default is true. Applicable only in -mode activate when -block_mode or -expand is specified.
-
-mcast_ipv6_addr
¶
Specifies the IPv4 multicast group address. The default is ff1e::1 Applicable only in -mode activate when -block_mode or -expand is specified.
-
-device_group_mapping
¶
Specifies the mapping between the device and subscribed multicast group within their respective blocks. The default is many_to_many Applicable only in -mode activate when -block_mode or -expand is specified.
-
-src_ipv6_addr
¶
Specifies the ulticast source IPv6 address. The default is 2001::2 Applicable only in -mode activate when -block_mode or -expand is specified. These argument settings are required:
-filtered_sources custom -source_filters false
-
-src_count
¶
Specifies the number of multicast sources. The default is 1 Applicable only in -mode activate when -block_mode or -expand is specified. These argument settings are required:
-filtered_sources custom -source_filters false
-
-src_step
¶
Specifies the step for the multicast source address. The default is 1 Applicable only in -mode activate when -block_mode or -expand is specified. These argument settings are required:
-filtered_sources custom -source_filters false
-
-filtered_sources
¶
Mode for specifying filtered sources. Applicable only in -mode activate when -block_mode or -expand is specified. Possible values are:
existing - Use existing sources (Hosts). custom - Specify sources by entering starting source IP, count, and step. none - Specifies an empty source list.
The default is none.
-
-src_ipv6_prefix
¶
Specifies the multicast source IPv6 prefix length. The default is 64. Applicable only in -mode activate when -block_mode or -expand is specified. These argument settings are required:
-filtered_sources custom -source_filters false
-
-source_filters
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies to configure source address pool when -mode is set to activate. Applicable only in -mode activate when -block_mode or -expand is specified. Possible values are:
true - Configures source IP as MLDV2 host IP. false - Configures source IP based on the -source_list or -incr_src_ipv6_addr_per_device argument setting.
The default is true.
-
-source_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies to provide the list of device handles. MLDV2 group sources will be mapped with provided device IP. Applicable only in -mode activate when -block_mode or -expand is specified. These argument settings are required:: -filtered_sources existing -source_filters false
-
-incr_src_ipv6_addr_per_device
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the source IP incrementation per MLDV2 host in IPV6 format. Applicable only in -mode activate when -block_mode or -expand is specified. These argument settings are required:
-filtered_sources custom -source_filters false -src_ipv6_addr aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh
Arguments Unsupported by Save as HLTAPI¶
The following Spirent HLTAPI arguments are currently not supported by the Save as HLTAPI function:
-qinq_incr_mode
-vlan_id_outer_count
Vendor Specific Arguments Processed by Spirent HLTAPI Wrapper¶
None
Vendor Specific Arguments Ignored by Spirent HLTAPI Wrapper¶
-max_groups_per_pkts
-reset
-mac_address_init
-msg_count_per_interval
-mac_address_step
Note
For more information about Spirent HLTAPI Wrapper, refer to Chapter 4 Spirent HLTAPI Wrapper in Spirent HLTAPI Programmer’s Reference.
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-max_groups_per_pkts
-max_response_time
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 MLD session handle. A handle to the MLD host block is returned on success.
handle_list
A list of emulated devices with enabled MLD configuratin created by
``sth::emulation_mld_config`` function when expand is set true.
status Success (1) or failure (0) of the operation.
log An error message (if the operation failed).
Description¶
The sth::emulation_mld_config
function creates, modifies, enables,
or deletes one or more emulated MLD hosts. Use the -mode argument
to specify the action to perform. (See the -mode argument description for
information about the actions.)
When you create an MLD host, use the -port_handle argument to
specify the Spirent HLTAPI port that the emulated MLD host will
use for MLD communication. (The port handle value is contained in the
keyed list returned by the sth::connect
function.)
Use the -mode create function to define the characteristics of an MLD host.
Spirent HLTAPI supports the use of MLD versions 1 and 2 for multicast group membership.
For more information about the MLD protocol, see RFC 2710 (MLDv1) and draft-vida-mld-v2-08.txt (MLDv2).
Examples¶
#### HLTAPI for Tcl ####
The following example creates an MLD session:
sth::emulation_mld_config \
-port_handle $port_handle1 \
-mode create \
-mld_version v1 \
-intf_ip_addr 2001::3 \
-neighbor_intf_ip_addr 2001::1
Sample output for example shown above:
{handle host1} {status 1}
The following example uses the function in Scaling
mode (-mode activate)
with -port_handle and -block_mode:
set mld_ret [sth::emulation_mld_config\
-mode activate \
-port_handle $port1\
-count 2 \
-block_mode ONE_DEVICE_PER_BLOCK\
-block_name_index 1\
-vlan_id 444 \
-vlan_outer_id 333 \
-mac_addr 00:11:11:11:11:11 \
-mac_addr_step 00:00:00:00:00:02 \
-mac_addr_step_per_port 00:00:00:00:01:01 \
-mac_addr_step_per_vlan {"" 00:00:00:00:00:01} \
-intf_ipv6_prefix_len 65 \
-ipv6_step_per_vlan {"" ::2} \
-ipv6_step_per_port ::1 \
-link_local_ipv6_step_per_port ::1:0 \
-link_local_ipv6_step_per_vlan {::4 ::5} \
-name DEVICE_BLOCK_MLD \
-vlan_user_pri 3 \
-vlan_id_count 2 \
-vlan_id_repeatmode REPEAT_ACROSS_PORT\
-vlan_outer_id_count 2 \
-vlan_outer_user_pri 4 \
-vlan_outer_id_repeatmode REPEAT_ACROSS_PORT\
-router_id_ipv6 0101::011 \
-router_id_ipv6_step ::11 \
-link_local_ipv6_addr fe80::2 \
-link_local_ipv6_addr_step ::1 \
-intf_ipv6_addr 1111::3e9 \
-intf_ipv6_addr_step ::1 \
-link_local_ipv6_prefix_len 64 \
-gateway_ipv6_addr 1111::1 \
-gateway_ipv6_addr_step ::1 \
-expand true \
-mld_version v2\
-device_group_mapping many_to_many\
-mcast_ipv6_addr ff1e::2\
-ignore_memberships false\
-mcast_group_count 2\
-filtered_sources custom\
-src_ipv6_addr 2002::5\
-src_count 2\
-src_step 2\
-src_ipv6_prefix 64\
-incr_src_ipv6_addr_per_device 0.0.1.0 \
-source_filters false ]
Sample Output:
{param_handle emulateddevicegenparams1} {status 1} {handle {}} {handle_list
{emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4 emulateddevice5
emulateddevice6 emulateddevice7 emulateddevice8}} {mld_handle_list {mldhostconfig1
mldhostconfig2 mldhostconfig3 mldhostconfig4 mldhostconfig5 mldhostconfig6
mldhostconfig7 mldhostconfig8}} {mld_group_handle_list {mldgroupmembership1
mldgroupmembership2 mldgroupmembership3 mldgroupmembership4 mldgroupmembership5
mldgroupmembership6 mldgroupmembership7 mldgroupmembership8}}
{multicast_group_handle_list {ipv4group1 ipv4group2 ipv4group3 ipv4group4 ipv4group5
ipv4group6 ipv4group7 ipv4group8}} {handles {emulateddevice1 emulateddevice2
emulateddevice3 emulateddevice4 emulateddevice5 emulateddevice6 emulateddevice7
emulateddevice8}}
#### HLTAPI for Python ####
The following example creates an MLD session:
device_ret0 = sth.emulation_mld_config (
mode = 'create',
link_local_intf_ip_addr= 'fe80::1',
link_local_intf_ip_addr_step= '::1',
link_local_intf_prefix_len= '64',
port_handle = port_handle[0],
msg_interval = '0',
neighbor_intf_ip_addr_step= '::',
neighbor_intf_ip_addr= '2001::1',
intf_ip_addr = '2001::2',
intf_prefix_len = '64',
intf_ip_addr_step = '::1',
insert_length_errors= 'FALSE',
mld_version = 'v1',
unsolicited_report_interval= '10',
insert_checksum_errors= 'FALSE',
force_leave = 'FALSE',
use_partial_block_state= 'FALSE',
force_robust_join = 'FALSE',
count = '1');
Sample Output:
{'status': '1', 'handles': 'mldhostconfig1', 'handle': 'host2'}
#### HLTAPI for Perl ####
The following example creates an MLD session:
my %device_ret0 = sth::emulation_mld_config (
mode => 'create',
link_local_intf_ip_addr=> 'fe80::1',
link_local_intf_ip_addr_step=> '::1',
link_local_intf_prefix_len=> '64',
port_handle => "$hport[1]",
msg_interval => '0',
neighbor_intf_ip_addr_step=> '::',
neighbor_intf_ip_addr=> '2001::1',
intf_ip_addr => '2001::2',
intf_prefix_len => '64',
intf_ip_addr_step => '::1',
insert_length_errors=> 'FALSE',
mld_version => 'v1',
unsolicited_report_interval=> '10',
insert_checksum_errors=> 'FALSE',
force_leave => 'FALSE',
use_partial_block_state=> 'FALSE',
force_robust_join => 'FALSE',
count => '1');
Sample Output:
$VAR1 = 'handle';
$VAR2 = 'host2';
$VAR3 = 'handles';
$VAR4 = 'mldhostconfig1';
$VAR5 = 'status';
$VAR6 = '1';
Note
When first configuring MLD emulation on a port, you must specify
-mode create and initialize the port handle before calling the
sth::emulation_mld_config
function.
End of Procedure Header
sth::emulation_mld_group_config¶
Purpose¶
Creates group pools and source pools and modifies group and
source pools from MLD hosts. This function configures multicast
group ranges for an emulated MLD host. You must use the common
sth::multicast_source_config
functions with
this function.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_mld_group_config [-mode {create|modify|delete} M] [-session_handle <mld_session_handle>] [-group_pool_handle <multicast_group_pool_handle>] [-handle <group_member_handle> ] [-source_pool_handle <multicast_source_pool_handle>] [-device_group_mapping {many_to_many|one_to_one|round_robin}] [-user_defined_src {true|false}] [-ip_addr_list <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-host_handle <host_handle>]
Arguments¶
-
-group_pool_handle
¶
Specifies the name of the group (that is, the list of multicast IP addresses) to link to the MLD host during create mode. Before specifying the group pool handle, use the
sth::emulation_multicast_group_config
function to add the group pool. See Multicast APIs in this documentation set for information about the sth::emulation_multicast_group_config andsth::emulation_multicast_source_config
functions. This argument is Mandatory in mode create.
-
-handle
¶
Sets the group membership handle that associates group pools with an MLD host. In modify mode, the membership handle must be used in conjunction with the session handle to identify the multicast group pools. -mode modify returns the same handle passed in. This argument is Mandatory in modes modify and delete.
-
-mode
¶
Specifies the action to perform. Possible values are create, modify, and delete. There is no default; you must specify a mode. This argument is Mandatory .
- create
- Starts emulation on the port specified with -session_handle and associates an existing multicast group pool (-group_pool_handle) with the specified MLD host (that is, joins the membership). You must specify a session handle with -mode create.
- modify
- Changes the configuration identified by the -handle argument by applying the parameters specified in subsequent arguments.
- delete
- Remove one group of pools from this session.
-
-session_handle
¶
Specifies the handle of the MLD host on which to configure the MLD group ranges. This argument is Mandatory in mode create.
-
-source_pool_handle
¶
Specifies the name of the source pool (that is, the list of non-multicast source IP addresses) to associate with the groups during create mode. Each multicast group may contain 0 or more of these source IP addresses. Use this argument if the host only wants specific information within the specified multicast group (-group_pool_handle). Specifying the source pool handle along with the group pool handle in the
sth::emulation_mld_group_config
function adds the range of source IP addresses to each multicast group.Before specifying the source pool handle, use the
sth::emulation_multicast_source_config
function to add the source pools. See “Multicast APIs” in this documentation set for information about the sth::emulation_multicast_source_config andsth::emulation_multicast_group_config
functions.
-
-device_group_mapping
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the method of mapping between the device and the subscribed multicast group within their respective blocks. Possible values are:
- many_to_many
- Creates a full mesh of devices and groups
- one_to_one
- Assigns one device to each group. The mapping stops when it reaches the end of either devices or groups. Extra devices or groups are not mapped.
- round_robin
- Creates a round-robin pattern of devices and groups
The default value is many_to_many.
-
-user_defined_src
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables user-defined multicast sources. Possible values are true (enable) and false (disable). The default value is false.
-
-ip_addr_list
¶
Spirent Extension (for Spirent HLTAPI only).
A list of IP addresses that are used to specify a range of source addresses. This argument is available when -user_defined_src is enabled.
-
-host_handle
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the handle of the host on which to configure the MLD source
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 group (group_member_handle) created
by the
sth::emulation_mld_group_config
function. - group_pool_handle
- Identifies the group pool handle used by the
sth::emulation_mld_group_config
function to configure or modify the group member. - source_pool_handle
- Identifies the source pool handle used by the
sth::emulation_mld_group_config
function to configure or modify the group member. - status
- Success (1) or failure (0) of the operation.
- log
- An error message (if the operation failed).
Description¶
The sth::emulation_mld_group_config
function configures or
modifies a group of MLD hosts where each group share a
set of common characteristics. Use the -mode argument to specify
the action to perform. (See the -mode argument description for information
about the actions.)
Before using this function, you must specify “-mode create” when
configuring MLD host emulation on a port and initialize the port handle
argument (using the sth::emulation_mld_config
function).
When calling sth::emulation_mld_group_config using “-mode create”, this function will return the group member handle for use with the -handle argument.
You can link groups of multicast IP addresses to any interested host or just a subset of IP addresses within each group.
Each multicast IP address directs the information it represents to any host interested in subscribing to it.
To subscribe to only one or more particular IP addresses that exist within
a multicast group, you must use the -source_pool_handle as well. Specifying
the source_pool_handle along with the group_pool_handle in the
sth::emulation_mld_group_config
function, adds the range of source IP
addresses to each multicast group.
Examples¶
#### HLTAPI for Tcl ####
The following example configures the hosts, represented by “mldSessionHandle”, to subscribe to the multicast group(s) represented by “McGroupHandle”:
sth::emulation_mld_group_config \
-mode create \
-group_pool_handle $McGroupHandle \
-session_handle $mldSessionHandle
Sample output for example shown above:
{status 1} {handle mldhostconfig1}
The following example configures the hosts, represented by mldSessionHandle, to subscribe to the multicast group(s) represented by McGroupHandle with user defined source IP list:
sth::emulation_mld_group_config \
-mode create \
-group_pool_handle $McGroupHandle \
-session_handle $mldSessionHandle \
-device_group_mapping round_robin \
-user_defined_src true \
-ip_addr_list "2001::1 1000::2"]
Sample output for example shown above:
{status 1} {handle mldhostconfig1}
#### HLTAPI for Python ####
The following example configures the hosts, represented by “mld_host”, to subscribe to the multicast group(s) represented by “mld_group”:
device_ret0_group = sth.emulation_mld_group_config (
mode = 'create',
session_handle = mld_host,
group_pool_handle = mld_group);
Sample Output: {‘status’: ‘1’, ‘handle’: ‘mldgroupmembership1’}
#### HLTAPI for Perl ####
The following example configures the hosts, represented by “$mld_host”, to subscribe to the multicast group(s) represented by “$mld_group”:
my %device_ret0_group = sth::emulation_mld_group_config (
mode => 'create',
session_handle => "$mld_host",
group_pool_handle => "$mld_group");
Sample Output:
$VAR1 = 'handle';
$VAR2 = 'mldgroupmembership1';
$VAR3 = 'status';
$VAR4 = '1';
End of Procedure Header
sth::emulation_mld_control¶
Purpose¶
Start, stop, or restart the MLD host on the specified port. Leaves and joins group pools.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_mld_control [-mode {join|leave|leave_join} M] [-group_member_handle <handle>] [-port_handle < port_handle_list >] [-handle <MLD_session_handle_list>] [-delay <seconds>] [-data_duration <seconds>] [-calculate_latency {0|1} ]
Arguments¶
-
-calculate_latency
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies whether to calculate latencies when joining or leaving multicast groups. Possible values are 0 (do not calculate latency) and 1 (calculate latency). If set to 1 during an MLD Join, HLTAPI cannot capture the MLD control plane packets because the analyzer stops to collect packets so it can calculate latency.
Note
Background traffic analysis with MLD is unavailable with calculate latency enabled. Also, if you are testing multiple joins and leaves with calculate latency enabled, you must add a delay (a few seconds) between subsequent joins and leaves (see example below).
The following example does 100 iterations of join and leaves on 90 sessions. A 10-second delay is added after each join and each leave (using the Tcl command “after”). The delay duration to use depends on the number of iterations and number of sessions:
for {set joinleaveidx 0} {$joinleaveidx < 100} \ {incr joinleaveidx} { # MLD join sth::emulation_mld_control \ -mode join \ -calculate_latency 1 \ -handle $MLDSessionHandle # Adding a delay between join and leave. # This value is based on 90 sessions joining. # May need to be adjusted when ``Scaling`` higher. after 10000 # MLD leave sth::emulation_mld_control \ -mode leave \ -calculate_latency 1 \ -handle $MLDSessionHandle # Adding a delay between the last leave and # the next join when this loops. # This value is based on 90 sessions leaving. # May need to be adjusted when ``Scaling`` higher. after 10000 }
-
-delay
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the amount of time, in seconds, between joins and leaves. The default is 0.
-
-data_duration
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the amount of time, in seconds, to wait before latencies are calculated. The default is 10.
-
-group_member_handle
¶
Identifies the MLD (one or more) group member handle.
-
-port_handle
¶
Specifies a list of ports on which to perform the MLD actions. This argument is Mandatory when the -mode argument is “start”, “stop”, or “restart”.
-
-handle
¶
Identifies a list of MLD groups to stop, start, restart, join, or leave. This value is returned by the
sth::emulation_mld_group_config
function. If you do not specify a group, the specified action is applied to all groups configured on the port specified by -port_handle. This value appears in the keyed list returned by the sth::emulation_mld_group_config function.
-
-mode
¶
Specifies the action to perform on the specified handle. If you provide a handle (-handle), this argument performs the specified action on all groups on this session. If you provide a group member handle (-group_member_handle), this argument performs the specified action on the specified group pool(s). If you do not provide either a handle or a group member handle, this argument performs the specified action on all groups on all sessions. Possible values are start, stop, join, leave and leave_join. You must specify one of these values. The modes are described below: :
- join
- Joins all groups specified by -handle or joins group pools specified by -group_member_handle. If you do not provide a handle, this action joins all groups on all ports. This action only affects the status of the groups, it will not start the MLD protocol.
- leave
- Leave (or unjoin) all groups specified by -handle or group pools specified by -group_member_handle. If you do not provide a handle, this action leaves all groups on all ports. This action only affects the status of the groups, it will not start or stop the protocol.
- leave_join
- Rejoins all groups specified by -handle or rejoins group pools specified by -group_member_handle. The device specified by -handle or -group_member_handle will resend IGMP/MLD Reports.
Note
There is a critical limitation for MLD Latency tests. For MLD Latency tests (IgmpMldLeaveGroupsCommand), the Spirent TestCenter analyzer only filters on the upper two and lower two bytes of the IPv6 group address. Therefore, if you step any of the 12 bytes in between, these streams will get aggregated based on the values of the upper and lower two bytes. The Spirent TestCenter analyzer does not have enough filter space to filter on the entire 16-byte IPv6 group address.
For example, the following IPv6 group addresses are sent from port1:
FF1E:1111:0:0:0:0:0:1 FF1E:1111:0:0:0:0:0:2 FF1E:2222:0:0:0:0:0:1 FF1E:2222:0:0:0:0:0:2 Suppose an MLD host on port 2 joins all the groups. You will be receiving packets from all four group addresses, but notice how the groups will be aggregated onto two streams on the analyzer due to the limitation of not being able to differentiate the middle 12 bytes of the packets. First, analyzer looks at the upper and lower two bytes of each packet and ignore the middle 12 bytes, as shown below:: FF1E:1111:0:0:0:0:0:1 FF1E:1111:0:0:0:0:0:2 FF1E:2222:0:0:0:0:0:1 FF1E:2222:0:0:0:0:0:2 Next, packets are aggregated based on the values of the upper and lower two bytes, as shown below:: Upper Lower FF1E 1 * represents (FF1E:1111:0:0:0:0:0:1 and FF1E:2222:0:0:0:0:0:1) FF1E 2 * represents (FF1E:1111:0:0:0:0:0:2 and FF1E:1111:0:0:0:0:0:2)
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_mld_control
function sends a Join or Leave message from
the host to inform a router that the host is either joining the multicast
group specified by handle or group_member_handle or terminating its
membership in the specified multicast group.
When you call the sth::emulation_mld_control
function, you
specify a handle. Spirent HLTAPI applies the specified action to
all of the emulated MLD hosts associated with the specified port.
When a host wants to participate in a multicast group, it sends a “join” message to its local router. After a router receives one or more “joins” for a specific group, it forwards any packets destined for that particular group to the appropriate interface(s). The router regularly verifies that the hosts want to continue to participate in the multicast groups by sending periodic “queries” to the receivers.
When a host is no longer interested in multicast group participation, it sends a “leave” message.
Examples¶
#### HLTAPI for Tcl ####
The following example joins all groups specified by -handle:
sth::emulation_mld_control \
-mode join \
-handle $MLDSessionHandle
The following example removes the groups specified by -handle from the hosts on the specified port:
sth::emulation_mld_control \
-mode leave \
-handle $MLDSessionHandle
The following example starts the groups specified by -handle:
sth::emulation_mld_control \
-handle $MLDSessionHandle
The following example rejoins the groups specified by -handle:
sth::emulation_mld_control \
-mode leave_join \
-handle $MLDSessionHandle
Sample Output:
{status 1} success or {status 0} fail
#### HLTAPI for Python ####
- The following example joins all groups specified by handle::
- ctrl_ret1 = sth.emulation_mld_control (
- handle = device_list, mode = ‘join’);
Sample Output:
{'status': '1'}
#### HLTAPI for Perl ####
The following example joins all groups specified by handle:
my %ctrl_ret1 = sth::emulation_mld_control (
handle => "$device_list",
mode => 'join');
Sample Output:
$VAR1 = 'status';
$VAR2 = '1';
End of Procedure Header
sth::emulation_mld_info¶
Purpose¶
Returns statistics about the MLD group activity on the specified handle. Statistics include the connection status and number and type of messages sent and received from the specified port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_mld_info [-handle <MLD_session_handle> M] [-port_handle <port(device.port)>]
Arguments¶
-
-handle
¶
Specifies the MLD session handle upon which host emulation is configured. This value is returned by the sth::emulation_mld_config function. If -handle is not specified, the statistics of all MLD session handles under project1 will be retrieved.
-
-port_handle
¶
Specifies the port upon which MLD session handle is configured. The port handle is returned by the
sth::connect
function. If -port_handle is not specified, the statistics of all port handles with MLD session handles configured will be retrieved.
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).
- invalid_pkts
Number of invalid MLD packets received. Invalid MLD packets include:
invalid MLD checksum invalid packet length invalid MLD types
- dropped_pkts
- Will always return 0 because Spirent HLTAPI currently does not drop valid MLD packets dropped.
- host_addr
- IP address of host whose group membership stats are being displayed.
- group_addr
- Group membership IP address of host whose group membership stats are being displayed.
- group_membership_stats
- List of group membership statistics.
- state
State of group membership of host whose group membership stats are being displayed. Possible returned values are:
UNDEFINED - The state is not defined. NON_MEMBER - The host does not belong to the group on the interface. Non-member is the initial state for all memberships on all network interfaces. DELAYING_MEMBER - The host belongs to the group on the interface and has a report delay timer running for that membership. IDLE_MEMBER - The host belongs to the group on the interface and does not have a report delay timer running for that membership. RETRYING_MEMBER - This state applies to MLDv1 hosts when ForceRobustJoin is True. The host is retransmitting its initial "join" before transitioning from the NON_MEMBER state to the DELAYING_MEMBER or IDLE_MEMBER state. INCLUDE - Data from the specified sources are filtered and forwarded to the host by the multicast router. EXCLUDE - Data from the specified sources are filtered and not forwarded to the host by the multicast router.
- join_latency
- The time, in milliseconds, between sending the MLD join and receiving the multicast data for the channel specified in the join message. This value is valid only when “sth::emulation_igmp_control -calculate_latency” is set to 1.
- leave_latency
- The time, in milliseconds, between sending the MLD leave for a channel and when multicast data has stopped being received. This value is valid only when “sth::emulation_igmp_control -calculate_latency” is set to 1.
In addition, the following MLD port statistics are returned:
- mldv1_queries_rx
- Routers use Multicast Listener Query messages to query a subnet for multicast listeners.
- mldv1_group_queries_rx
- MLDv1 Group specific Queries received.
- mldv1_queries_tx
- MLDv1 Membership Queries are sent by IP multicast routers to query the multicast reception state of neighboring interfaces.
- mldv1_mem_reports_tx
- MLDv1 reports are sent to multicast routers to indicate that hosts have listeners interested in joining multicast groups whose multicast address is listed in the router’s list.
- mldv1_mem_reports_rx
- MLDv1 reports are sent to multicast routers to indicate that hosts have listeners interested in joining multicast groups whose multicast address is listed in the router’s list.
- mldv1_leave_tx
- MLDv1 Leaves transmitted.
- mldv2_queries_rx
- Routers use Multicast Listener Query messages to query a subnet for multicast listeners.
- mldv2_group_queries_tx
- This statistic is included in the TxV2QueryCount. MLDv2 Membership Queries are sent by IP multicast routers to query the multicast reception state of neighboring interfaces.
- mldv2_group_src_queries_rx
- Routers use Multicast Listener Query messages to query a subnet for multicast listeners
- mldv2_mem_reports_rx
- MLDv2 are used to report interest in receiving multicast traffic for a specific multicast address or to respond to a Multicast Listener Query message.
- mldv2_mem_reports_tx
- MLDv2 reports are sent to multicast routers to indicate that hosts have listeners interested in joining multicast groups whose multicast address is listed in the router’s list.
- mld_frames_rx
- Total number of MLD frames received.
- mld_general_queries_rx
- Total number of multicast general queries received.
- mld_group_src_queries_rx
- Group- and source-specific queries are sent by a multicast router whenever a host leave a specific source of a group. This is to make sure that there are no other hosts of that source and group.
- mld_group_queries_rx
- The Group-Specific Query is used to learn if a particular group has any members on an attached network.
- mld_checksum_errors_rx
- Total number of MLD messages received with checksum errors.
- mld_length_errors_rx
- Total number of MLD messages received with length errors.
- mld_unknown_rx
- Total number of MLD frames of unknown type received.
- mld_timestamp
- Timestamp in seconds of last statistic update.
- mld_frames_tx
- Total number of MLD frames transmitted.
- mld_general_queries_tx
- General Queries are used to learn which multicast addresses have listeners on an attached link.
- mld_group_src_queries_tx
- Group- and source-specific queries are sent by a multicast router whenever a host leave a specific source of a group. This is to make sure that there are no other hosts of that source and group.
- mld_group_queries_tx
- The Group-Specific Query is used to learn if a particular group has any members on an attached network.
- mldv2_allow_new_src_tx
- A Source-List-Change Record (SLCR) indicating the group’s associated sources have changed such that data from a new set of sources are to be received
- mldv2_block_old_src_tx
- A Source-List-Change Record (SLCR) indicating the group’s associated sources have changed such that data from an existing set of sources are not Mandatory .
- mldv2_filter_exclude_tx
- A Filter-Mode-Change Record (FMCR) indicating the filter-mode of the reception state has changed to exclude mode.
- mldv2_filter_include_tx
- A Filter-Mode-Change Record (FMCR) indicating the filter-mode of the reception state has changed to include mode.
- mldv2_exclude_tx
- A Current-State Record (CSR) indicating the current reception state with respect to 1 multicast group at a given interface. The state contains the exclude filter mode.
- mldv2_include_tx
- A Current-State Record (CSR) indicating the current reception state with respect to 1 multicast group at a given interface. The state contains the include filter mode
Description¶
The sth::emulation_mld_info
function retrieves statistics about the
number of invalid and dropped packets on the specified host as well as
several port statistics.
Examples¶
#### HLTAPI for Tcl ####
When you call sth::emulation_mld_info, the contents of the returned keyed list depends on the status of the call. For example:
sth::emulation_mld_info -handle $handle1
Returns a list that contains one of the following:
- If the call is successful, the list contains stats and command execution status (in this case, a 1 indicating success).
- If the call fails, the list contains error log and command execution status (in this case, a 0 indicating failure).
Sample Output:
{group_membership_stats {{group_addr {{ff1e::1 {{host_addr
{{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER} {join_latency 0.000000}
{leave_latency 0.000000}}}}}}} {ff1e::2 {{host_addr {{fe80:1:1:1:1:1:1:2
{{state IDLE_MEMBER} {join_latency 0.000000}
{leave_latency 0.000000}}}}}}}
{ff1e::3 {{host_addr {{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER}
{join_latency 0.000000} {leave_latency 0.000000}}}}}}} {ff1e::4
{{host_addr {{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER} {join_latency
0.000000} {leave_latency 0.000000}}}}}}} {ff1e::5 {{host_addr
{{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER} {join_latency 0.000000}
{leave_latency 0.000000}}}}}}} {ff1e::6 {{host_addr {{fe80:1:1:1:1:1:1:2
{{state IDLE_MEMBER} {join_latency 0.000000}
{leave_latency 0.000000}}}}}}}
{ff1e::7 {{host_addr {{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER}
{join_latency 0.000000} {leave_latency 0.000000}}}}}}} {ff1e::8
{{host_addr {{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER} {join_latency
0.000000} {leave_latency 0.000000}}}}}}} {ff1e::9 {{host_addr
{{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER} {join_latency 0.000000}
{leave_latency 0.000000}}}}}}} {ff1e::a {{host_addr
{{fe80:1:1:1:1:1:1:2 {{state IDLE_MEMBER} {join_latency 0.000000}
{leave_latency 0.000000}}}}}}}}}}} {session {{mldhostconfig1
{{min_join_latency 0.000000} {max_join_latency 0.000000} {avg_join_latency
0.000000} {min_leave_latency 0.000000} {max_leave_latency 0.000000}
{avg_leave_latency 0.000000}}}}} {status 1}
If there is an error, you will see:
{status 0} {log {Error message }}
#### HLTAPI for Python ####
Sample Input:
device = device_ret0['handle'].split()[0]
results_ret1 = sth.emulation_mld_info (
handle = device);
Sample Output:
{'status': '1', 'session': {'mldhostconfig1': {'avg_join_latency': '0',
'max_leave_latency': '0', 'min_join_latency': '0', 'min_leave_latency': '0',
'max_join_latency': '0', 'avg_leave_latency': '0'}},
'group_membership_stats': ''}
#### HLTAPI for Perl ####
Sample Input:
$device = "$device_ret0{handle}[0]";
my %results_ret1 = sth::emulation_mld_info (
handle => "$device");
Sample Output:
$VAR1 = 'session';
$VAR2 = {
'mldhostconfig1' => {
'min_leave_latency' => '0',
'max_join_latency' => '0',
'max_leave_latency' => '0',
'min_join_latency' => '0',
'avg_leave_latency' => '0',
'avg_join_latency' => '0'
}
};
$VAR3 = 'status';
$VAR4 = '1';
$VAR5 = 'group_membership_stats';
$VAR6 = '';
Note
If you configure over 1000 host-group pairs, the lower layer only returns avg/min/max latencies in the returned keyed list. If you configure 1000 or less host-group pairs, the returned keyed list contains individual latencies.
End of Procedure Header