From 933f6fd1af59ffede0f1e51ca67b6913fb9a27e8 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Sat, 25 Feb 2017 14:23:37 +0000 Subject: [PATCH] Remove unused VRF paramter from IP neighbour Add/del Change-Id: I4a348c696e4cacbf5aa0723f2b8070bbcce7666c Signed-off-by: Neale Ranns --- ID | Bin 165760 -> 0 bytes resources/libraries/python/IPv4Setup.py | 14 ++++---------- resources/libraries/python/IPv6Util.py | 9 ++------- resources/libraries/robot/vrf.robot | 4 ++-- resources/templates/vat/add_ip_neighbor.vat | 2 +- .../ipv4/eth2p-ethip4-ip4base-eth-2vhost-1vm.robot | 2 +- ...p4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot | 8 +++----- .../eth2p-ethip4ipsectptlispgpe-ip4base-func.robot | 12 +++++------- ...p4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot | 4 ++-- .../eth2p-ethip4ipsectptlispgpe-ip6base-func.robot | 4 ++-- .../eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot | 4 ++-- tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot | 8 +++----- ...-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot | 10 ++++------ .../lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot | 10 ++++------ tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot | 8 +++----- .../lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot | 10 ++++------ ...h2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot | 8 +++----- tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot | 8 +++----- ...-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot | 10 ++++------ .../lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot | 10 ++++------ tests/func/vrf/eth2p-ethip4-ip4basevrf-func.robot | 16 ++++++++-------- tests/func/vrf/eth2p-ethip6-ip6basevrf-func.robot | 16 ++++++++-------- 22 files changed, 72 insertions(+), 105 deletions(-) delete mode 100644 ID diff --git a/ID b/ID deleted file mode 100644 index 076076fc8d3e2e889780cd9512267fa76826e43b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165760 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 M2IKrL^49G9KhqQXbpQYW diff --git a/resources/libraries/python/IPv4Setup.py b/resources/libraries/python/IPv4Setup.py index 0220139c04..7129e67231 100644 --- a/resources/libraries/python/IPv4Setup.py +++ b/resources/libraries/python/IPv4Setup.py @@ -202,23 +202,19 @@ class Dut(IPv4Node): # TODO: check return value VatExecutor.cmd_from_template(self.node_info, script, **args) - def set_arp(self, iface_key, ip_address, mac_address, vrf=None): + def set_arp(self, iface_key, ip_address, mac_address): """Set entry in ARP cache. :param iface_key: Interface key. :param ip_address: IP address. :param mac_address: MAC address. - :param vrf: VRF table ID (Optional). :type iface_key: str :type ip_address: str :type mac_address: str - :type vrf: int """ - vrf = "vrf {}".format(vrf) if vrf else '' self.exec_vat('add_ip_neighbor.vat', sw_if_index=self.get_sw_if_index(iface_key), - ip_address=ip_address, mac_address=mac_address, - vrf=vrf) + ip_address=ip_address, mac_address=mac_address) def set_ip(self, interface, address, prefix_length): self.exec_vat('add_ip_address.vat', @@ -350,18 +346,16 @@ class IPv4Setup(object): get_node(node).set_arp(iface_key, ip_address, mac_address) @staticmethod - def add_arp_on_dut(node, iface_key, ip_address, mac_address, vrf=None): + def add_arp_on_dut(node, iface_key, ip_address, mac_address): """Set ARP cache entree on DUT node. :param node: VPP Node in the topology. :param iface_key: Interface key. :param ip_address: IP address of the interface. :param mac_address: MAC address of the interface. - :param vrf: VRF table ID (Optional). :type node: dict :type iface_key: str :type ip_address: str :type mac_address: str - :type vrf: int """ - get_node(node).set_arp(iface_key, ip_address, mac_address, vrf) + get_node(node).set_arp(iface_key, ip_address, mac_address) diff --git a/resources/libraries/python/IPv6Util.py b/resources/libraries/python/IPv6Util.py index 2a4704dff2..1aab1816f2 100644 --- a/resources/libraries/python/IPv6Util.py +++ b/resources/libraries/python/IPv6Util.py @@ -111,22 +111,18 @@ class IPv6Util(object): n=node['host'], p=interface)) @staticmethod - def add_ip_neighbor(node, interface, ip_address, mac_address, vrf=None): + def add_ip_neighbor(node, interface, ip_address, mac_address): """Add IP neighbor. :param node: VPP node to add ip neighbor. :param interface: Interface name or sw_if_index. :param ip_address: IP address. :param mac_address: MAC address. - :param vrf: VRF table ID (Optional). :type node: dict :type interface: str or int :type ip_address: str :type mac_address: str - :type vrf: int """ - vrf = "vrf {}".format(vrf) if vrf else '' - if isinstance(interface, basestring): sw_if_index = Topology.get_interface_sw_index(node, interface) else: @@ -136,5 +132,4 @@ class IPv6Util(object): vat.vat_terminal_exec_cmd_from_template("add_ip_neighbor.vat", sw_if_index=sw_if_index, ip_address=ip_address, - mac_address=mac_address, - vrf=vrf) + mac_address=mac_address) diff --git a/resources/libraries/robot/vrf.robot b/resources/libraries/robot/vrf.robot index b741e4a533..ef6091ec89 100644 --- a/resources/libraries/robot/vrf.robot +++ b/resources/libraries/robot/vrf.robot @@ -67,9 +67,9 @@ | | ... | ${node} | ${vrf_src_if} | ${table} | | ... | | Add IP Neighbor | ${node} | ${vrf_src_if} -| | ... | ${src_if_ip} | ${src_if_mac} | vrf=${table} +| | ... | ${src_if_ip} | ${src_if_mac} | | Add IP Neighbor | ${node} | ${route_interface} -| | ... | ${route_gateway_ip} | ${route_gateway_mac} | vrf=${table} +| | ... | ${route_gateway_ip} | ${route_gateway_mac} | | ... | | Vpp Route Add | ${node} | ${route_dst_ip} | ${prefix_len} | | ... | ${route_gateway_ip} | ${route_interface} | vrf=${table} diff --git a/resources/templates/vat/add_ip_neighbor.vat b/resources/templates/vat/add_ip_neighbor.vat index de868e1de7..730e7112ad 100644 --- a/resources/templates/vat/add_ip_neighbor.vat +++ b/resources/templates/vat/add_ip_neighbor.vat @@ -1 +1 @@ -ip_neighbor_add_del sw_if_index {sw_if_index} dst {ip_address} mac {mac_address} {vrf} +ip_neighbor_add_del sw_if_index {sw_if_index} dst {ip_address} mac {mac_address} diff --git a/tests/func/ipv4/eth2p-ethip4-ip4base-eth-2vhost-1vm.robot b/tests/func/ipv4/eth2p-ethip4-ip4base-eth-2vhost-1vm.robot index b456c4f0a6..b7d25746d7 100644 --- a/tests/func/ipv4/eth2p-ethip4-ip4base-eth-2vhost-1vm.robot +++ b/tests/func/ipv4/eth2p-ethip4-ip4base-eth-2vhost-1vm.robot @@ -89,7 +89,7 @@ | | ... | vrf=${fib_table_2} | | Add IP Neighbor | ${dut_node} | ${vhost1} | ${net2_ip2} | ${vhost2_mac} | | Add IP Neighbor | ${dut_node} | ${dut_to_tg_if2} | ${net3_ip2} -| | ... | ${tg_to_dut_if2_mac} | vrf=${fib_table_2} +| | ... | ${tg_to_dut_if2_mac} | | When VM for Vhost L2BD forwarding is setup | | ... | ${dut_node} | ${sock1} | ${sock2} | | Then Send Packet And Check Headers diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot index d3a3cda788..e3f94250a2 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot @@ -183,14 +183,12 @@ | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot index 04067a6f0f..c6cd734fe6 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot @@ -163,7 +163,7 @@ | | ${encr_alg}= | Crypto Alg AES CBC 128 | | ${auth_alg}= | Integ Alg SHA1 96 | | Given Setup 3-node Topology | ${fib_table_1} -| | And Add IP Neighbors | ${fib_table_1} +| | And Add IP Neighbors | | When IPsec Generate Keys | ${encr_alg} | ${auth_alg} | | And Set up LISP GPE topology | | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} @@ -205,7 +205,7 @@ | | ${encr_alg}= | Crypto Alg AES CBC 128 | | ${auth_alg}= | Integ Alg SHA1 96 | | Given Setup 3-node Topology | ${fib_table_1} -| | And Add IP Neighbors | ${fib_table_1} +| | And Add IP Neighbors | | And Set up LISP GPE topology | | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} | | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} @@ -260,14 +260,12 @@ | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot index 3d3b3ceb8e..d59d85897a 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot @@ -153,13 +153,13 @@ | | Vpp Set If IPv6 Addr | ${dut2_node} | ${dut2_to_tg} | ${dut2_to_tg_ip6} | | ... | ${prefix6} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6} -| | ... | ${tg_to_dut2_mac} | ${fib_table} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} | | ... | ${dut1_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6} -| | ... | ${tg_to_dut1_mac} | ${fib_table} +| | ... | ${tg_to_dut1_mac} | | Set up LISP GPE topology | | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} | | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot index df942c7888..484a5cdb9e 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot @@ -145,13 +145,13 @@ | | Vpp Set If IPv6 Addr | ${dut2_node} | ${dut2_to_tg} | ${dut2_to_tg_ip6} | | ... | ${prefix6} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6} -| | ... | ${tg_to_dut2_mac} | ${fib_table} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} | | ... | ${dut1_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6} -| | ... | ${tg_to_dut1_mac} | ${fib_table} +| | ... | ${tg_to_dut1_mac} | | Set up LISP GPE topology | | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} | | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot index 4974224edd..a4089e03a9 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot @@ -118,13 +118,13 @@ | | Vpp Set If IPv6 Addr | ${dut2_node} | ${dut2_to_tg} | ${dut2_to_tg_ip6} | | ... | ${prefix6} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6} -| | ... | ${tg_to_dut2_mac} | ${fib_table} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} | | ... | ${dut1_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6} -| | ... | ${tg_to_dut1_mac} | ${fib_table} +| | ... | ${tg_to_dut1_mac} | | Set up LISP GPE topology | | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} | | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot index cac15ce4a4..d095b79f97 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot @@ -95,14 +95,12 @@ *** Keywords *** | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot index d83dec66c3..7199cda821 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot @@ -76,7 +76,7 @@ | | ... | ${dut1_to_tg} | ${fib_table_1} | | And Assign Interface To Fib Table | ${dut2_node} | | ... | ${dut2_to_tg} | ${fib_table_1} -| | And Add IP Neighbors | ${fib_table_1} +| | And Add IP Neighbors | | And IP addresses are set on interfaces | | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip4} | ${prefix4} | | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_tg_ip4} | ${prefix4} @@ -125,14 +125,12 @@ | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot index 83c15ec882..65c6e932ba 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot @@ -75,7 +75,7 @@ | | ... | ${dut1_to_tg} | ${fib_table_1} | | And Assign Interface To Fib Table | ${dut2_node} | | ... | ${dut2_to_tg} | ${fib_table_1} -| | And Add IP Neighbors | ${fib_table_1} +| | And Add IP Neighbors | | And IP addresses are set on interfaces | | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip4} | ${prefix4} | | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_tg_ip4} | ${prefix4} @@ -100,14 +100,12 @@ *** Keywords *** | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot index b959ff20d0..896dc43a60 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot @@ -103,14 +103,12 @@ *** Keywords *** | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6o4} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6o4} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6o4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6o4} diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot index 7d88aa0016..7cc24ba11d 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot @@ -68,7 +68,7 @@ | | ... | ${dut1_to_tg} | ${fib_table_1} | ip6=${TRUE} | | And Assign Interface To Fib Table | ${dut2_node} | | ... | ${dut2_to_tg} | ${fib_table_1} | ip6=${TRUE} -| | And Add IP Neighbors | ${fib_table_1} +| | And Add IP Neighbors | | And IP addresses are set on interfaces | | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip6o4} | | ... | ${dut_prefix6o4} @@ -95,14 +95,12 @@ *** Keywords *** | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6o4} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6o4} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6o4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6o4} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot index 9d47158e18..4c8bf01bcc 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot @@ -122,14 +122,12 @@ | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot index 28316511cc..c82465c106 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot @@ -97,14 +97,12 @@ *** Keywords *** | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot index 52c37b3306..6b45cd09d9 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot @@ -84,7 +84,7 @@ | | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_dut1_ip6} | ${prefix6} | | And Vpp Set If IPv6 Addr | | ... | ${dut2_node} | ${dut2_to_tg} | ${dut2_to_tg_ip6} | ${prefix6} -| | And Add IP Neighbors | ${fib_table_1} +| | And Add IP Neighbors | | When Set up LISP GPE topology | | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} | | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} @@ -129,14 +129,12 @@ | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot index 500f138da6..662aba0c2e 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot @@ -82,7 +82,7 @@ | | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_dut1_ip6} | ${prefix6} | | And Vpp Set If IPv6 Addr | | ... | ${dut2_node} | ${dut2_to_tg} | ${dut2_to_tg_ip6} | ${prefix6} -| | And Add IP Neighbors | ${fib_table_1} +| | And Add IP Neighbors | | When Set up LISP GPE topology | | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} | | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} @@ -102,14 +102,12 @@ *** Keywords *** | Add IP Neighbors | | [Documentation] -| | ... | Add IP neighbors to physical interfaces on DUTs.\ -| | ... | You can specify fib table ID for DUT-TG interfaces. Default is 0. +| | ... | Add IP neighbors to physical interfaces on DUTs. | | ... -| | [Arguments] | ${fib_id}=0 | | Add IP Neighbor | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip6} -| | ... | ${tg_to_dut1_mac} | ${fib_id} +| | ... | ${tg_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip6} -| | ... | ${tg_to_dut2_mac} | ${fib_id} +| | ... | ${tg_to_dut2_mac} | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} diff --git a/tests/func/vrf/eth2p-ethip4-ip4basevrf-func.robot b/tests/func/vrf/eth2p-ethip4-ip4basevrf-func.robot index 7a76a1805c..f2413ff612 100644 --- a/tests/func/vrf/eth2p-ethip4-ip4basevrf-func.robot +++ b/tests/func/vrf/eth2p-ethip4-ip4basevrf-func.robot @@ -363,22 +363,22 @@ | | ... | ${dut2_to_dut1_ip2} | ${ip_prefix} | | And Add Arp On Dut | ${dut1_node} | ${dut1_to_tg_if1} -| | ... | ${tg_dut1_ip1} | ${tg_to_dut1_if1_mac} | vrf=${fib_table_1} +| | ... | ${tg_dut1_ip1} | ${tg_to_dut1_if1_mac} | | And Add Arp On Dut | ${dut1_node} | ${dut1_to_dut2_if1} -| | ... | ${dut2_to_dut1_ip1} | ${dut2_to_dut1_if1_mac} | vrf=${fib_table_1} +| | ... | ${dut2_to_dut1_ip1} | ${dut2_to_dut1_if1_mac} | | And Add Arp On Dut | ${dut2_node} | ${dut2_to_tg_if1} -| | ... | ${tg_dut2_ip1} | ${tg_to_dut2_if1_mac} | vrf=${fib_table_1} +| | ... | ${tg_dut2_ip1} | ${tg_to_dut2_if1_mac} | | And Add Arp On Dut | ${dut2_node} | ${dut2_to_dut1_if1} -| | ... | ${dut1_to_dut2_ip1} | ${dut1_to_dut2_if1_mac} | vrf=${fib_table_1} +| | ... | ${dut1_to_dut2_ip1} | ${dut1_to_dut2_if1_mac} | | And Add Arp On Dut | ${dut1_node} | ${dut1_to_tg_if2} -| | ... | ${tg_dut1_ip2} | ${tg_to_dut1_if2_mac} | vrf=${fib_table_2} +| | ... | ${tg_dut1_ip2} | ${tg_to_dut1_if2_mac} | | And Add Arp On Dut | ${dut1_node} | ${dut1_to_dut2_if2} -| | ... | ${dut2_to_dut1_ip2} | ${dut2_to_dut1_if2_mac} | vrf=${fib_table_2} +| | ... | ${dut2_to_dut1_ip2} | ${dut2_to_dut1_if2_mac} | | And Add Arp On Dut | ${dut2_node} | ${dut2_to_tg_if2} -| | ... | ${tg_dut2_ip2} | ${tg_to_dut2_if2_mac} | vrf=${fib_table_2} +| | ... | ${tg_dut2_ip2} | ${tg_to_dut2_if2_mac} | | And Add Arp On Dut | ${dut2_node} | ${dut2_to_dut1_if2} -| | ... | ${dut1_to_dut2_ip2} | ${dut1_to_dut2_if2_mac} | vrf=${fib_table_2} +| | ... | ${dut1_to_dut2_ip2} | ${dut1_to_dut2_if2_mac} | | And Vpp Route Add | ${dut1_node} | ${tg_dut2_ip1} | ${ip_prefix} | | ... | ${dut2_to_dut1_ip1} | ${dut1_to_dut2_if1} | vrf=${fib_table_1} diff --git a/tests/func/vrf/eth2p-ethip6-ip6basevrf-func.robot b/tests/func/vrf/eth2p-ethip6-ip6basevrf-func.robot index b88b6fd577..acbf7ea543 100644 --- a/tests/func/vrf/eth2p-ethip6-ip6basevrf-func.robot +++ b/tests/func/vrf/eth2p-ethip6-ip6basevrf-func.robot @@ -379,22 +379,22 @@ | | ... | ${dut2_to_dut1_ip2} | ${ip_prefix} | | And Add IP Neighbor | ${dut1_node} | ${dut1_to_tg_if1} -| | ... | ${tg_dut1_ip1} | ${tg_to_dut1_if1_mac} | vrf=${fib_table_1} +| | ... | ${tg_dut1_ip1} | ${tg_to_dut1_if1_mac} | | And Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2_if1} -| | ... | ${dut2_to_dut1_ip1} | ${dut2_to_dut1_if1_mac} | vrf=${fib_table_1} +| | ... | ${dut2_to_dut1_ip1} | ${dut2_to_dut1_if1_mac} | | And Add IP Neighbor | ${dut2_node} | ${dut2_to_tg_if1} -| | ... | ${tg_dut2_ip1} | ${tg_to_dut2_if1_mac} | vrf=${fib_table_1} +| | ... | ${tg_dut2_ip1} | ${tg_to_dut2_if1_mac} | | And Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1_if1} -| | ... | ${dut1_to_dut2_ip1} | ${dut1_to_dut2_if1_mac} | vrf=${fib_table_1} +| | ... | ${dut1_to_dut2_ip1} | ${dut1_to_dut2_if1_mac} | | And Add IP Neighbor | ${dut1_node} | ${dut1_to_tg_if2} -| | ... | ${tg_dut1_ip2} | ${tg_to_dut1_if2_mac} | vrf=${fib_table_2} +| | ... | ${tg_dut1_ip2} | ${tg_to_dut1_if2_mac} | | And Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2_if2} -| | ... | ${dut2_to_dut1_ip2} | ${dut2_to_dut1_if2_mac} | vrf=${fib_table_2} +| | ... | ${dut2_to_dut1_ip2} | ${dut2_to_dut1_if2_mac} | | And Add IP Neighbor | ${dut2_node} | ${dut2_to_tg_if2} -| | ... | ${tg_dut2_ip2} | ${tg_to_dut2_if2_mac} | vrf=${fib_table_2} +| | ... | ${tg_dut2_ip2} | ${tg_to_dut2_if2_mac} | | And Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1_if2} -| | ... | ${dut1_to_dut2_ip2} | ${dut1_to_dut2_if2_mac} | vrf=${fib_table_2} +| | ... | ${dut1_to_dut2_ip2} | ${dut1_to_dut2_if2_mac} | | And Vpp Route Add | ${dut1_node} | ${tg_dut2_ip1} | ${ip_prefix} | | ... | ${dut2_to_dut1_ip1} | ${dut1_to_dut2_if1} | vrf=${fib_table_1} -- 2.16.6