MLD Querier Functions¶
emulation mld querier config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- 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 the argument is `Mandatory`.
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 GroupSpecific and Group-andSourceSpecific 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 groupspecific query messages,
including those sent in response to leavegroup 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
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
connect
function.)Spirent HLTAPI supports the use of MLDv1, MLDv2. For details about the MLD protocol, see RFC 2710 and RFC 3810.
Examples:
The following example creates and configures an MLD Querier router:
set returnedString [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 [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 [emulation mld querier config mode= delete handle= $MLDQuerierRouter]Sample Output:
{handle router1} {status 1}
emulation mld querier control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Starts or stops sending Query messages from the selected querier to attached hosts on the specified port.
Synopsis:
Note: M indicates the argument is `Mandatory`.
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
``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
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 emulation mld querier control, you must specify either a port handle or a device handle, on which Spirent HLTAPI applies the specified action.
Examples:
The following example starts the MLD Queriers on port $portHandle:
set returnedString [ emulation_mld_querier_control port_handle= $portHandle action= start]The following example stops the MLD Queriers just started:
set returnedString [ emulation_mld_querier_control port_handle= $portHandle action= stop]Sample Output:
{status 1}
emulation mld querier info¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Retrieves statistics for the MLD Querier Routers configured on the specified test ports.
Synopsis:
Note: M indicates the argument is `Mandatory`.
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
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:
The following example retrieves statistics on port $portHandle:
set returnedString [ 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}}}}}End of Procedure Header