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.

Specifies the starting link local IPv6 address for the emulated devices. The value must be in IPv6 format. The default is FE80::0.

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.

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