There were occasional Router Advertisement packets received in a Traffic
Generator in VM testcases. Fix by adding config that disables sending
IPv6 RA messages on interfaces in VM VPP config before enabling them.
Also rename related keywords and change descriptions based on
https://docs.fd.io/vpp/21.01/db/d4c/clicmd_src_vnet_ip6-nd.html#clicmd_ip6_nd
Change-Id: I1c2a33337ac91f6039d287b4c2aac388e3a52383
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
"""IPv6 utilities"""
@staticmethod
"""IPv6 utilities"""
@staticmethod
- def vpp_ra_suppress_link_layer(node, interface):
- """Suppress ICMPv6 router advertisement message for link scope address.
+ def vpp_interface_ra_suppress(node, interface):
+ """Disable sending ICMPv6 router-advertisement messages on
+ an interface on a VPP node.
:param node: VPP node.
:param interface: Interface name.
:param node: VPP node.
:param interface: Interface name.
sw_if_index=InterfaceUtil.get_interface_index(node, interface),
suppress=1
)
sw_if_index=InterfaceUtil.get_interface_index(node, interface),
suppress=1
)
- err_msg = f"Failed to suppress ICMPv6 router advertisement message " \
- f"on interface {interface}"
+ err_msg = f"Failed to disable sending ICMPv6 router-advertisement " \
+ f"messages on interface {interface}"
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
- def vpp_all_ra_suppress_link_layer(nodes):
- """Suppress ICMPv6 router advertisement message for link scope address
- on all VPP nodes in the topology.
+ def vpp_interfaces_ra_suppress_on_all_nodes(nodes):
+ """Disable sending ICMPv6 router-advertisement messages on all
+ IPv6 enabled interfaces on all VPP nodes in the topology.
:param nodes: Nodes of the test topology.
:type nodes: dict
:param nodes: Nodes of the test topology.
:type nodes: dict
node, port_k, u"ipv6"
)
if ip6_addr_list:
node, port_k, u"ipv6"
)
if ip6_addr_list:
- IPv6Util.vpp_ra_suppress_link_layer(node, port_k)
+ IPv6Util.vpp_interface_ra_suppress(node, port_k)
| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_if1_ip6} | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip6} | ${TG_pf2_mac}[0]
| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_if1_ip6} | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip6} | ${TG_pf2_mac}[0]
-| | Vpp All RA Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | Vpp Route Add
| | ... | ${dut1} | ${tg_host_ip6} | ${ip6_plen_rt} | gateway=${tg_if1_ip6}
| | ... | interface=${DUT1_${int}1}[0]
| | Vpp Route Add
| | ... | ${dut1} | ${tg_host_ip6} | ${ip6_plen_rt} | gateway=${tg_if1_ip6}
| | ... | interface=${DUT1_${int}1}[0]
| | VPP Interface Set IP Address
| | ... | ${dut} | ${dut_if2} | 2001:2::1 | 64
| |
| | VPP Interface Set IP Address
| | ... | ${dut} | ${dut_if2} | 2001:2::1 | 64
| |
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| |
| | Run Keyword If | '${dut2_status}' == 'PASS'
| | ... | Vpp Route Add | ${dut1} | 2001:2::0 | 64 | gateway=2001:3::2
| |
| | Run Keyword If | '${dut2_status}' == 'PASS'
| | ... | Vpp Route Add | ${dut1} | 2001:2::0 | 64 | gateway=2001:3::2
| | ... | ELSE | Set Variable | ${DUT1_${int}2}[0]
| | VPP Interface Set IP Address
| | ... | ${dut} | ${dut_if2} | 2001:5::1 | ${prefix}
| | ... | ELSE | Set Variable | ${DUT1_${int}2}[0]
| | VPP Interface Set IP Address
| | ... | ${dut} | ${dut_if2} | 2001:5::1 | ${prefix}
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:3::2 | ${TG_pf1_mac}[0]
| | Run Keyword If | '${dut2_status}' == 'PASS'
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:3::2 | ${TG_pf1_mac}[0]
| | Run Keyword If | '${dut2_status}' == 'PASS'
| |
| | [Arguments] | ${nf_nodes}=${1}
| |
| |
| | [Arguments] | ${nf_nodes}=${1}
| |
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | Set interfaces in path up
| | ${prefix}= | Set Variable | 64
| | ${fib_table_1}= | Set Variable | ${101}
| | Set interfaces in path up
| | ${prefix}= | Set Variable | 64
| | ${fib_table_1}= | Set Variable | ${101}
| | ... | VPP Interface Set IP Address | ${dut2} | ${subif_index_2} | 2002:2::2
| | ... | ${prefix}
| | VPP Interface Set IP Address | ${dut} | ${dut_if2} | 2002:3::2 | ${prefix}
| | ... | VPP Interface Set IP Address | ${dut2} | ${subif_index_2} | 2002:2::2
| | ... | ${prefix}
| | VPP Interface Set IP Address | ${dut} | ${dut_if2} | 2002:3::2 | ${prefix}
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | Vpp Route Add | ${dut1} | ${tg_if1_net} | ${host_prefix}
| | ... | gateway=2002:1::1 | interface=${DUT1_${int}1}[0]
| | Run Keyword If | '${dut2_status}' == 'PASS'
| | Vpp Route Add | ${dut1} | ${tg_if1_net} | ${host_prefix}
| | ... | gateway=2002:1::1 | interface=${DUT1_${int}1}[0]
| | Run Keyword If | '${dut2_status}' == 'PASS'
| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_address} | ${prefix}
| | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_address} | ${prefix}
| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_address} | ${prefix}
| | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_address} | ${prefix}
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::2 | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::2 | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_ip6_address} | ${prefix6}
| | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_ip4_address} | ${prefix4}
| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_ip6_address} | ${prefix6}
| | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_ip4_address} | ${prefix4}
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 10.10.10.2 | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 10.10.10.2 | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_ip4_address} | ${prefix4}
| | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_ip6_address} | ${prefix6}
| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_ip4_address} | ${prefix4}
| | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_ip6_address} | ${prefix6}
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::2 | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::2 | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
| | Run Keyword If | ${dut2_status}
| | ... | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_if2_ip6} | ${prefix}
| | Run Keyword If | ${dut2_status}
| | ... | VPP Interface Set IP Address
| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_if2_ip6} | ${prefix}
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | FOR | ${number} | IN RANGE | 2 | ${dst_addr_nr}+2
| | | ${hexa_nr}= | Convert To Hex | ${number}
| | | VPP Add IP Neighbor
| | FOR | ${number} | IN RANGE | 2 | ${dst_addr_nr}+2
| | | ${hexa_nr}= | Convert To Hex | ${number}
| | | VPP Add IP Neighbor
| | Run Keyword If | ${dut2_status}
| | ... | VPP Interface Set IP Address | ${dut2} | ${dut2-memif-1-if2}
| | ... | ${dut2-memif-1-if2_ip6} | ${mem_prefix}
| | Run Keyword If | ${dut2_status}
| | ... | VPP Interface Set IP Address | ${dut2} | ${dut2-memif-1-if2}
| | ... | ${dut2-memif-1-if2_ip6} | ${mem_prefix}
-| | Vpp All Ra Suppress Link Layer | ${nodes}
+| | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | Run Keyword If | ${dut2_status}
| | ... | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_if1_ip6}
| | Run Keyword If | ${dut2_status}
| | ... | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_if1_ip6}
set interface ip address GigabitEthernet0/6/0 1:1::1/64
set interface ip address GigabitEthernet0/6/0 1:1::1/64
+ip6 nd GigabitEthernet0/6/0 ra-suppress
set interface state GigabitEthernet0/6/0 up
set interface ip address GigabitEthernet0/7/0 1:2::1/64
set interface state GigabitEthernet0/6/0 up
set interface ip address GigabitEthernet0/7/0 1:2::1/64
+ip6 nd GigabitEthernet0/7/0 ra-suppress
set interface state GigabitEthernet0/7/0 up
ip route add 2001:1::/64 via 1:1::2 GigabitEthernet0/6/0
set interface state GigabitEthernet0/7/0 up
ip route add 2001:1::/64 via 1:1::2 GigabitEthernet0/6/0
create interface virtio 0000:00:06.0
create interface virtio 0000:00:07.0
create interface virtio 0000:00:06.0
create interface virtio 0000:00:07.0
+ip6 nd virtio-0/0/6/0 ra-suppress
+ip6 nd virtio-0/0/7/0 ra-suppress
+
set interface state virtio-0/0/6/0 up
set interface state virtio-0/0/7/0 up
set interface state virtio-0/0/6/0 up
set interface state virtio-0/0/7/0 up
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
| | And Configure topology for IPv6 LISPoIP4 testing
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
| | And Configure topology for IPv6 LISPoIP4 testing
-| | And Vpp All RA Suppress Link Layer | ${nodes}
+| | And Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | And Configure LISP in 2-node circular topology
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
| | ... | ${duts_locator_set} | ${dut1_ip6o4_eid}
| | And Configure LISP in 2-node circular topology
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
| | ... | ${duts_locator_set} | ${dut1_ip6o4_eid}
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
| | And Configure topology for IPv4 LISPoIP6 testing
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
| | And Configure topology for IPv4 LISPoIP6 testing
-| | And Vpp All RA Suppress Link Layer | ${nodes}
+| | And Vpp Interfaces RA Suppress On All Nodes | ${nodes}
| | And Configure LISP in 2-node circular topology
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
| | ... | ${duts_locator_set} | ${dut1_ip4o6_eid}
| | And Configure LISP in 2-node circular topology
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
| | ... | ${duts_locator_set} | ${dut1_ip4o6_eid}