MLD Querier Functions¶
sth::emulation_mld_querier_config¶
Purpose¶
The emulation_mld_querier_config function configures an MLD router on the specified test port.
Querier is a multicast router that maintains a list of multicast group memberships for each attached network. There is normally only one querier per physical network. The querier sends out Query messages to determine the multicast group memberships for hosts on the attached network.
The purpose of Multicast Listener Discovery (MLD) is to enable each IPv6 router to discover the presence of multicast listeners (that is, nodes wishing to receive multicast packets) on its directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. This information is then provided to whichever multicast routing protocol is being used by the router, in order to ensure that multicast packets are delivered to all links where there are interested receivers.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_mld_querier_config [-mode {create|enable|modify|delete} M] [-port_handle <port_handle>] [-handle <device_handle>|<mld_host_handle>] [-count <1-65535>] [-router_id_ipv6 <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-router_id_ipv6_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-enable_ping_response {1|0}] [-intf_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-intf_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-intf_ipv6_prefix_len <1-128>] [-ipv6_resolve_gateway_mac {true|false}] [-ipv6_gateway_mac <aa:bb:cc:dd:ee:ff>] [-link_local_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-link_local_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-link_local_ipv6_prefix_len <0-128>] [-mac_addr <aa:bb:cc:dd:ee:ff>] [-mac_addr_step <aa:bb:cc:dd:ee:ff>] [-use_default_phy_mac {true|false}] [-gateway_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-gateway_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-enable_gw_learning {true|false}] [-vlan_cfi {0|1}] [-vlan_id <0-4095>] [-vlan_id_step <0-32767>] [-vlan_id_count <1-4095>] [-vlan_user_pri <0-7>] [-vlan_tpid <0-65535>] [-vlan_outer_cfi {0|1}] [-vlan_outer_id <0-4095>] [-vlan_outer_id_step <0-32767>] [-vlan_outer_id_count <1-4095>] [-vlan_outer_user_pri <0-7>] [-vlan_outer_tpid <0-65535>] [-vlan_id_repeat_count <0-4294967295>] [-vlan_id_repeatmode <REPEAT_ACROSS_PORT | NO_REPEAT | REPEAT_ACROSS_LOWER_IF>] [-vlan_outer_id_repeatmode <REPEAT_ACROSS_PORT | NO_REPEAT | REPEAT_ACROSS_LOWER_IF>] [-vlan_outer_id_repeat_count <0-4294967295>] [-vlan_id_stack_count <0-65535>] [-qinq_incr_mode {inner|outer|both}] [-mld_version {MLD_V1 | MLD_V2}] [-ipv6_traffic_class <0-255>] [-last_member_query_count <0-255>] [-last_member_query_interval <0-4294967295>] [-query_interval <0-4294967295>] [-query_response_interval <0-4294967295>] [-robustness_variable <2-255>] [-startup_query_count <1-255>] [-use_ipv6_addr_range_gateway {true|false}]
Arguments¶
-
-mode
¶
Specifies the action to perform. Possible values are create, modify, and delete. This argument is Mandatory . The modes are described below:
create - Creates emulating MLD querier routers on the specified port or handle. enable - Starts emulating MLD querier routers on the device specified by -handle. You must specify the -handle argument. modify - Changes the configuration parameters for the MLD querier router identified by the -handle argument. delete - Clears all MLD querier router information on the port and restarts the connection.
-
-port_handle
¶
The handle of the port on which to create the emulated MLD Querier session. When -mode is set to create, it is Mandatory that you specify -port_handle or -handle, but not both.
-
-handle
¶
The handle of the MLD host configured on the port to use. You must specify -handle when -mode is set to modify or delete. When you use -mode create, it is Mandatory that you specify -port_handle or -handle, but not both. If you define -handle and -mode create, Spirent HLTAPI creates an MLD device on the given device.
-
-count
¶
Defines the number of MLD routers to create on the interface. Applicable only in mode create. Possible values range from 1 to 65535. The default value is 1
-
-router_id_ipv6
¶
Specifies the IPv6 router ID of the emulated device. The value must be in IPv6 format.
-
-router_id_ipv6_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the difference between consecutive IPv6 router IDs when multiple routers are created. The value must be in IPv6 format. The default value is 0000::1.
-
-enable_ping_response
¶
Enables or disables the emulated device to respond to ping. Possible values are 0 (disable) and 1 (enable). The default is 0.
-
-intf_ipv6_addr
¶
Specifies the IPv6 address of the emulated device.
-
-intf_ipv6_addr_step
¶
Specifies the difference between interface IPv6 addresses of consecutive devices when multiple emulated devices are created.
-
-intf_ipv6_prefix_len
¶
Specifies the prefix length for the IPv6 address of the emulated device. Possible values range from 0 to 128. The default is 64.
-
-ipv6_gateway_mac
¶
Specifies the IPv6 gateway’s MAC address for the emulated device. The default value is 00:00:01:00:00:01.
-
-link_local_ipv6_addr
¶
Specifies the starting link local IPv6 address for the emulated devices. The value must be in IPv6 format. The default is FE80::0.
-
-link_local_ipv6_addr_step
¶
Specifies the difference between link local IPv6 addresses of consecutive devices when multiple emulated devices are created. The value must be in IPv6 format. The default is ::1.
-
-link_local_ipv6_prefix_len
¶
Specifies the prefix length for the link local IPv6 address of the emulated device. Possible values range from 0 to 128. The default is 64.
-
-mac_addr
¶
Specifies the MAC address of the emulated device.
-
-mac_addr_step
¶
Specifies the difference between MAC addresses of consecutive devices when multiple emulated devices are created.
-
-use_default_phy_mac
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether to use the source MAC address from the physical interface. Possible values are true and false. The default value is false.
-
-gateway_ipv6_addr
¶
Specifies the IPv6 gateway address for the emulated device.
-
-gateway_ipv6_addr_step
¶
Specifies the difference between IPv6 gateway addresses of consecutive devices when multiple emulated devices are created.
-
-enable_gw_learning
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables IPv6 learning for the gateway IP and MAC addresses. Possible values are true (enable) and false (disable). The default value is false.
-
-vlan_cfi
¶
Specifies the canonical format indicator (CFI) field in VLAN for the emulated device. Possible values are 0 (Ethernet) and 1 (Token Ring). The default is 1.
-
-vlan_id
¶
Specifies the starting VLAN ID for the ethernet_ii_vlan encapsulation or the ethernet_ii_qinq encapsulation. Possible values range from 0 to 4095. The default value is 100.
-
-vlan_id_step
¶
Specifies the step size by which the VLAN ID is incremented. Possible values range from 0 to 4095. The default value is 1.
-
-vlan_id_count
¶
Specifies the number of VLAN IDs to create. Possible values range from 1 to 4095. The default value is 1.
-
-vlan_user_pri
¶
Specifies the VLAN user priority assigned to the emulated device. Possible values range from 0 to 7. The default value is 0.
-
-vlan_tpid
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the Ethernet type of VLAN for the device interface. Possible values range from 0 to 65535. The default value is 33024.
-
-vlan_outer_cfi
¶
Specifies the CFI field in the outer VLAN for the emulated device. Possible values are 0 (Ethernet) and 1 (Token Ring). The default is 1.
-
-vlan_outer_id
¶
Specifies the starting outer VLAN ID for the QinQ encapsulation. Possible values range from 0 to 4095. The default value is 100.
-
-vlan_outer_id_step
¶
Specifies the step size by which the outer VLAN ID is incremented. Possible values range from 0 to 4095. The default value is 1.
-
-vlan_outer_id_count
¶
Spirent Extension (for Spirent HLTAPI only).
The number of outer VLAN IDs to use when generating IGMP routers. Possible values range from 1 to 4096. The default value is 1. Applicable only in create mode.
-
-vlan_outer_user_pri
¶
Specifies the VLAN priority to assign to the outer VLAN header. Possible values range from 0 to 7. The default value is 0.
-
-vlan_outer_tpid
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the Ethernet type of outer VLAN for the device interface. Possible values range from 0 to 65535. The default value is 33024.
-
-vlan_id_repeat_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of times to repeat the same VLAN ID before incrementing it for the inner VLAN. The value must be an integer. The default value is 0.
-
-vlan_id_repeatmode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the repeat mode for the inner VLAN. The default value is REPEAT_ACROSS_PORT.
NO_REPEAT VLAN IDs are not repeated. REPEAT_ACROSS_PORT VLAN IDs are repeated from the starting VLAN ID on all ports. REPEAT_ACROSS_LOWER_IF VLAN IDs are repeated from the starting VLAN ID
when the next lower level interface (or port) changes.
-
-vlan_outer_id_repeatmode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the repeat mode for the outer VLAN. The default value is REPEAT_ACROSS_PORT.
NO_REPEAT VLAN IDs are not repeated. REPEAT_ACROSS_PORT VLAN IDs are repeated from the starting VLAN ID on all ports. REPEAT_ACROSS_LOWER_IF VLAN IDs are repeated from the starting VLAN ID
when the next lower level interface (or port) changes.
-
-vlan_outer_id_repeat_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of times to repeat the same VLAN ID before incrementing it for the outer VLAN. The value must be an integer. The default value is 0.
-
-vlan_stack_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of vlanif objects to be created. Possible values range from 0 to 65535. The default value is 0.
-
-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.
-
-mld_version
¶
Specifies the version of MLD to use for the querier. Possible values are:
MLD_V1 - Initial multicast protocol version for IPv6, similar to IGMPv2. It is specified in RFC 2710. MLD_V2 - Version of MLD, specified in RFC 3810, that adds filter functionality: include and exclude
-
-ipv6_traffic_class
¶
Specifies the value of the Traffic Class field in the IPv6 header. Possible values range from 0 to 255. The default value is 0.
-
-last_member_query_count
¶
Specifies the value for the Max Response Time field (in milliseconds) that is inserted in to Group-Specific and Group-and-Source-Specific Query messages in response to Leave Group messages. Possible values range from 0 to 255. The default value is 2.
-
-last_member_query_interval
¶
Specifies the maximum amount of time between group-specific query messages, including those sent in response to leave-group messages. Possible values range from 0 to 4294967295. The default value is 1000.
-
-query_interval
¶
Specifies the duration (in seconds) between transmissions of General Query messages. General Query messages are used to learn which multicast groups have members on a connected network. Possible values range from 0 to 4294967295. The default value is 125.
-
-query_response_interval
¶
Specifies the value for the Max Response Time field (in milliseconds), which is inserted into the General Query messages. This time is the maximum amount allowed for a host to send a responding report to the General Query message. The interval must be less than the Query Interval. Possible values range from 0 to 4294967295. The default value is 10000.
-
-robustness_variable
¶
Specifies the variable used in the calculation of default values for various timers and counters. Possible values range from 2 to 255. The default value is 2.
-
-startup_query_count
¶
Number of queries sent out on startup, separated by the Startup Query Interval. Possible values range from 1 to 255. The default value is 2.
-
-use_ipv6_addr_range_gateway
¶
Whether to use Ip address range settings for gateway. Possible values are:
true - use Ip address range settings for gateway. false - do not use Ip address range settings for gateway.
The default value is false.
Arguments Unsupported by Save as HLTAPI¶
The following Spirent HLTAPI arguments are currently not supported by the Save as HLTAPI function:
-qinq_incr_mode
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 MLD router handle
status Success (1) or failure (0) of the operation.
log An error message (if the operation failed).
Description
The sth::emulation_mld_querier_config
function creates, enables, modifies, or deletes
MLD routers for the specified Spirent HLTAPI port or handle. 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 Querier router, use the -port_handle argument to specify the
Spirent HLTAPI port that the emulated MLD router will use for MLD
communication. (The port handle value is contained in the keyed list returned by
the sth::connect
function.)
Spirent HLTAPI supports the use of MLDv1, MLDv2. For details about the MLD protocol, see RFC 2710 and RFC 3810.
Examples¶
#### HLTAPI for Tcl ####
The following example creates and configures an MLD Querier router:
set returnedString [sth::emulation_mld_querier_config \
-mode create \
-port_handle $port2 \
-router_id_ipv6 5000::5 \
-router_id_ipv6_step ::3 \
-enable_ping_response 0 \
-intf_ipv6_addr 5000::5 \
-ipv6_resolve_gateway_mac true \
-ipv6_gateway_mac 00.00.94.91.00.02 \
-intf_ipv6_addr_step ::2 \
-count 1 \
-intf_ipv6_prefix_len 67\
-gateway_ipv6_addr 5000::1 \
-gateway_ipv6_addr_step ::2 \
-enable_gw_learning true \
-link_local_ipv6_addr fe80::5 \
-link_local_ipv6_addr_step ::2 \
-link_local_ipv6_prefix_len 67 \
-mac_addr 00.00.94.91.00.12 \
-mac_addr_step 00.00.00.00.00.03 \
-use_default_phy_mac true \
-vlan_id 500 \
-vlan_id_step 5 \
-vlan_id_count 1 \
-vlan_user_pri 4 \
-vlan_cfi 0 \
-vlan_outer_id 555 \
-vlan_outer_id_step 3\
-vlan_outer_id_count 1 \
-vlan_outer_user_pri 5 \
-vlan_outer_cfi 1 \
-mld_version MLD_V2 \
-robustness_variable 3 \
-query_interval 1233333333 \
-query_response_interval 12300 \
-startup_query_count 4 \
-last_member_query_count 8 \
-last_member_query_interval 1444444443 \
-ipv6_traffic_class 200 ]
set MLDQuerierRouter [keylget returnedString handle]
The following example modifies the created MLD Querier router:
set returnedString [sth::emulation_mld_querier_config \
-mode "modify" \
-handle $MLDQuerierRouter\
-vlan_id 222 \
-mld_version MLD_V2 \
-robustness_variable 4 \
-query_interval 1456333333 \
-query_response_interval 16700 \
-startup_query_count 5 \
-last_member_query_count 6 \
-last_member_query_interval 1333444443 \
-ipv6_traffic_class 202 ]
The following example deletes emulated MLD Querier routers:
set returnedString [sth::emulation_mld_querier_config \
-mode delete\
-handle $MLDQuerierRouter]
Sample Output:
{handle router1} {status 1}
#### HLTAPI for Python ####
The following example creates and configures an MLD Querier router:
device_ret0 = sth.emulation_mld_querier_config (
mode = 'create',
port_handle = port_handle[0],
router_id_ipv6 = 5000::5,
router_id_ipv6_step = ::3,
enable_ping_response = 0,
intf_ipv6_addr = 5000::5,
ipv6_resolve_gateway_mac = 'true',
ipv6_gateway_mac = 00.00.94.91.00.02,
intf_ipv6_addr_step = ::2,
count = 1,
intf_ipv6_prefix_len = 67,
gateway_ipv6_addr = 5000::1,
gateway_ipv6_addr_step = ::2,
enable_gw_learning = 'true',
link_local_ipv6_addr = fe80::5,
link_local_ipv6_addr_step = ::2,
link_local_ipv6_prefix_len = 67,
mac_addr = 00.00.94.91.00.12,
mac_addr_step = 00.00.00.00.00.03,
use_default_phy_mac = 'true',
vlan_id = 500,
vlan_id_step = 5,
vlan_id_count = 1,
vlan_user_pri = 4,
vlan_cfi = 0,
vlan_outer_id = 555,
vlan_outer_id_step = 3,
vlan_outer_id_count = 1,
vlan_outer_user_pri = 5,
vlan_outer_cfi = 1,
mld_version = 'MLD_V2',
robustness_variable = 3,
query_interval = 1233333333,
query_response_interval = 12300,
startup_query_count = 4,
last_member_query_count = 8,
last_member_query_interval = 1444444443,
ipv6_traffic_class = 200 );
Sample Output:
{'status': '1', 'handle': 'router1'}
#### HLTAPI for Perl ####
The following example creates and configures an MLD Querier router:
my %device_ret0 = sth::emulation_mld_querier_config (
mode => 'create',
port_handle => "$hport[1]",
router_id_ipv6 => '5000::5',
router_id_ipv6_step => '::3',
enable_ping_response => '0',
intf_ipv6_addr => '5000::5',
ipv6_resolve_gateway_mac => 'true',
ipv6_gateway_mac => '00.00.94.91.00.02',
intf_ipv6_addr_step => '::2',
count => '1',
intf_ipv6_prefix_len => '67',
gateway_ipv6_addr => '5000::1',
gateway_ipv6_addr_step => '::2',
enable_gw_learning => 'true',
link_local_ipv6_addr => 'fe80::5',
link_local_ipv6_addr_step => '::2',
link_local_ipv6_prefix_len => '67',
mac_addr => '00.00.94.91.00.12',
mac_addr_step => '00.00.00.00.00.03',
use_default_phy_mac => 'true',
vlan_id => '500',
vlan_id_step => '5',
vlan_id_count => '1',
vlan_user_pri => '4',
vlan_cfi => '0',
vlan_outer_id => '555',
vlan_outer_id_step => '3',
vlan_outer_id_count => '1',
vlan_outer_user_pri => '5',
vlan_outer_cfi => '1',
mld_version => 'MLD_V2',
robustness_variable => '3',
query_interval => '1233333333',
query_response_interval => '12300',
startup_query_count => '4',
last_member_query_count => '8',
last_member_query_interval => '1444444443',
ipv6_traffic_class => '200' );
Sample Output:
$VAR1 = 'handle';
$VAR2 = 'router1';
$VAR3 = 'status';
$VAR4 = '1';
End of Procedure Header
sth::emulation_mld_querier_control¶
Purpose¶
Starts or stops sending Query messages from the selected querier to attached hosts on the specified port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_mld_querier_control [-mode {start|stop} M] [-port_handle <port_handle_list>] [-handle <handle_list>]
Arguments¶
-
-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 do not provide a handle, this argument performs the specified action on all groups on all sessions. Possible values are:
start - Starts sending Query messages from the selected querier to the attached hosts.. stop - Stops sending Query messages from the selected querier to the attached hosts. The querier also stops responding to Report and Leave messages from the attached hosts.
This argument is Mandatory .
-
-port_handle
¶
Identifies a list of ports on which to perform the action. This is the port on which MLD emulation has been configured. This value is returned by the
sth::emulation_mld_querier_config
function. This argument is Mandatory when -handle is not used.
-
-handle
¶
Specifies a list of devices on which to perform the action. You must specify -port_handle or handle, but not both.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the operation. log An error message (if the operation failed).
Description¶
The sth::emulation_mld_querier_control
function starts or stops sending Query
message from the selected queriers to attached hosts on the specified port.
When you call sth::emulation_mld_querier_control, you must specify either a port handle or a device handle, on which Spirent HLTAPI applies the specified action.
Examples¶
#### HLTAPI for Tcl ####
The following example starts the MLD Queriers on port $portHandle:
set returnedString [ sth:: emulation_mld_querier_control \
-port_handle $portHandle \
-action start]
The following example stops the MLD Queriers just started:
set returnedString [ sth:: emulation_mld_querier_control \
-port_handle $portHandle \
-action stop]
Sample Output:
{status 1}
#### HLTAPI for Python ####
The following example starts the specified MLD Queriers on the specified ports:
ctrl_ret1 = sth.emulation_mld_querier_control (
port_handle = [port_handle[0],port_handle[1]],
mode = 'start');
Sample Output:
{'status': '1'}
#### HLTAPI for Perl ####
The following example starts the specified MLD Queriers on the specified ports:
my %ctrl_ret1 = sth::emulation_mld_querier_control (
port_handle => "$hport[1] $hport[2] ",
mode => 'start');
Sample Output:
$VAR1 = 'status';
$VAR2 = '1';
End of Procedure Header
sth::emulation_mld_querier_info¶
Purpose¶
Retrieves statistics for the MLD Querier Routers configured on the specified test ports.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_mld_querier_info [-port_handle <port_handle>] [-handle <handle>]
Arguments¶
-
-port_handle
¶
Specifies the port on which to retrieve statistics.
-
-handle
¶
Specifies the handle of the device on which to retrieve statistics.
Note
Both handle and port_handle are optional, but at least one should be specified. If both are specified, then handle is prioritized.
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). mcast_compatiblity_mode MLD version the router block is currently operating as [MLDV1, MLDV2] router_state State of the MLD/MLD querier block [NOT_STARTED, UNDEFINED, UP] frame_count_rx Total number of MLD frames received mld_check_sum_error_count_rx Total number of MLD messages received with checksum errors mld_length_error_count_rx Total number of MLD messages received with length errors unknown_type_count_rx Total number of frames of unknown type received frame_count_tx Total number of MLD frames transmitted
Description¶
The sth::emulation_mld_querier_info
function returns statistics of the MLD Querier
router on the specified port. Statistics include the router status and number and
type of messages sent and received from the specified port.
Examples¶
#### HLTAPI for Tcl ####
The following example retrieves statistics on port $portHandle:
set returnedString [ sth:: emulation_mld_querier_info \
-port_handle $portHandle]
Sample Output:
{status 1} {results {{router1 {{mld_check_sum_error_count_rx 0}
{unknown_type_count_rx 0} {mcast_compatiblity_mode V2}
{mld_length_error_count_rx 0} {router_state UP}
{frame_count_rx 0} {frame_count_tx 0}}}}}
#### HLTAPI for Python ####
The following example retrieves statistics on the specified ports:
results_ret1 = sth.emulation_mld_querier_info (
port_handle = [port_handle[0],port_handle[1]]);
Sample Output:
{'status': '1', 'results': {'router1': {'mld_length_error_count_rx': '0',
'frame_count_rx': '0', 'mld_check_sum_error_count_rx': '0',
'unknown_type_count_rx': '0', 'router_state': 'UP',
'mcast_compatiblity_mode': 'V2', 'frame_count_tx': '1'}}}
#### HLTAPI for Perl ####
The following example retrieves statistics on the specified ports:
my %results_ret1 = sth::emulation_mld_querier_info (
port_handle => "$hport[1] $hport[2] ");
Sample Output:
$VAR1 = 'status';
$VAR2 = '1';
$VAR3 = 'results';
$VAR4 = {
'router1' => {
'mld_length_error_count_rx' => '0',
'router_state' => 'UP',
'frame_count_rx' => '1',
'frame_count_tx' => '1',
'mcast_compatiblity_mode' => 'V2',
'mld_check_sum_error_count_rx' => '0',
'unknown_type_count_rx' => '0'
},
'router2' => {
'mld_length_error_count_rx' => '0',
'router_state' => 'UP',
'frame_count_rx' => '3',
'frame_count_tx' => '1',
'mcast_compatiblity_mode' => 'V2',
'mld_check_sum_error_count_rx' => '0',
'unknown_type_count_rx' => '0'
}
};
End of Procedure Header