CSIT-199: Use static adjacencies in LISP dp tests 12/1912/9
authorFlorin Coras <fcoras@cisco.com>
Thu, 7 Jul 2016 21:00:04 +0000 (23:00 +0200)
committerFlorin Coras <fcoras@cisco.com>
Mon, 25 Jul 2016 16:18:27 +0000 (18:18 +0200)
Switch to using static adjacencies and remote mappings instead of only the
latter in LISP data plane tests.

Change-Id: Ia2a05165425ac68fa7839f9c8f402033b8274fcf
Signed-off-by: Florin Coras <fcoras@cisco.com>
resources/libraries/python/LispSetup.py
resources/libraries/python/LispUtil.py
resources/libraries/robot/lisp/lisp_static_adjacency.robot [moved from resources/libraries/robot/lisp/lisp_static_mapping.robot with 61% similarity]
resources/templates/vat/lisp/add_lisp_adjacency.vat [new file with mode: 0644]
resources/test_data/lisp/static_adjacency/lisp_static_adjacency.py [moved from resources/test_data/lisp/static_mapping/lisp_static_mapping.py with 59% similarity]
tests/func/lisp/lisp_dataplane_untagged.robot

index 82e1a97..13d0501 100644 (file)
@@ -103,6 +103,65 @@ class LispRemoteMapping(object):
                                       seid=seid,
                                       seid_prefix=seid_prefix,
                                       rloc=rloc)
+class LispAdjacency(object):
+    """Class for lisp adjacency API."""
+
+    def __init__(self):
+        pass
+
+    @staticmethod
+    def vpp_add_lisp_adjacency(node, vni, deid, deid_prefix, seid,
+                               seid_prefix):
+        """Add lisp adjacency on the VPP node in topology.
+
+        :param node: VPP node.
+        :param vni: Vni.
+        :param deid: Destination eid address.
+        :param deid_predix: Destination eid address prefix_len.
+        :param seid: Source eid address.
+        :param seid_prefix: Source eid address prefix_len.
+        :type node: dict
+        :type vni: int
+        :type deid: str
+        :type deid_prefix: int
+        :type seid: str
+        :type seid_prefix: int
+        """
+
+        VatExecutor.cmd_from_template(node,
+                                      'lisp/add_lisp_adjacency.vat',
+                                      vni=vni,
+                                      deid=deid,
+                                      deid_prefix=deid_prefix,
+                                      seid=seid,
+                                      seid_prefix=seid_prefix)
+
+    @staticmethod
+    def vpp_del_lisp_adjacency(node, vni, deid, deid_prefix, seid,
+                               seid_prefix):
+        """Delete lisp adjacency on the VPP node in topology.
+
+        :param node: VPP node.
+        :param vni: Vni.
+        :param deid: Destination eid address.
+        :param deid_predix: Destination eid address prefix_len.
+        :param seid: Source eid address.
+        :param seid_prefix: Source eid address prefix_len.
+        :type node: dict
+        :type vni: int
+        :type deid: str
+        :type deid_prefix: int
+        :type seid: str
+        :type seid_prefix: int
+        """
+
+        VatExecutor.cmd_from_template(node,
+                                      'lisp/del_lisp_adjacency.vat',
+                                      vni=vni,
+                                      deid=deid,
+                                      deid_predix=deid_prefix,
+                                      seid=seid,
+                                      seid_prefix=seid_prefix)
 
 
 class LispGpeIface(object):
index b21e1ae..157702a 100644 (file)
@@ -101,7 +101,7 @@ class LispUtil(object):
 
         for tmp in lisp_val1:
             if tmp not in lisp_val2:
-                raise RuntimeError('Value {} is not find in vpp:\n'
+                raise RuntimeError('Value {} not found in vpp:\n'
                                    '{}'.format(tmp, lisp_val2))
 
     def lisp_locator_s_should_be_equal(self, locator_set1, locator_set2):
 # limitations under the License.
 
 *** Settings ***
-| Documentation | Lisp State mapping suite keywords
+| Documentation | Lisp static adjacency suite keywords
 | Resource | resources/libraries/robot/lisp/lisp_api.robot
 | Library  | resources.libraries.python.LispSetup.LispLocatorSet
 | Library  | resources.libraries.python.LispSetup.LispLocator
 | Library  | resources.libraries.python.LispSetup.LispLocalEid
+| Library  | resources.libraries.python.LispSetup.LispAdjacency
 | Library  | resources.libraries.python.LispSetup.LispRemoteMapping
 
 *** Keywords ***
 | Set up Lisp topology
-| | [Documentation] | Set up Lisp static remote mapping topology.
+| | [Documentation] | Set up Lisp static adjacency topology.
 | | ...
 | | ... | *Arguments:*
 | | ... | - dut1_node - DUT1 node. Type: dictionary
 | | ... | - dut2_node - DUT2 node. Type: dictionary
 | | ... | - dut2_int_name - DUT2 node interface name. Type: string
 | | ... | - dut2_int_index - DUT2 node interface index. Type: integer
-| | ... | - locator_set - Locator set values. Type: dict
-| | ... | - dut1_eid - Dut1 node eid address. Type: dict
-| | ... | - dut2_eid - Dut2 node eid address. Type: dict
-| | ... | - dut1_static_mapping - Dut1 static mapping address. Type: dict
-| | ... | - dut2_static_mapping - Dut2 static mapping address. Type: dict
+| | ... | - locator_set - Locator set values. Type: dictionary
+| | ... | - dut1_eid - Dut1 node eid address. Type: dictionary
+| | ... | - dut2_eid - Dut2 node eid address. Type: dictionary
+| | ... | - dut1_static_adjacency - Dut1 static adjacency. Type: dictionary
+| | ... | - dut2_static_adjacency - Dut2 static address. Type: dictionary
 | | ...
 | | ... | *Return:*
 | | ... | - No value returned
 | | ... | \| Set up Lisp topology \| ${dut1_node} \| ${interface_name} \
 | | ... | \| None \| ${dut2_node} \| ${interface_name} \| None \
 | | ... | \| ${locator_set} \| ${dut1_eid} \| ${dut2_eid} \
-| | ... | \| ${dut1_static_mapping} \| ${dut2_static_mapping} \|
+| | ... | \| ${dut1_static_adjacency} \| ${dut2_static_adjacency} \|
 | | ...
 | | [Arguments] | ${dut1_node} | ${dut1_int_name} | ${dut1_int_index}
 | | ...         | ${dut2_node} | ${dut2_int_name} | ${dut2_int_index}
 | | ...         | ${locator_set} | ${dut1_eid} | ${dut2_eid}
-| | ...         | ${dut1_static_mapping} | ${dut2_static_mapping}
+| | ...         | ${dut1_static_adjacency} | ${dut2_static_adjacency}
 | | ${dut1_int_index}= | Run Keyword If | ${dut1_int_index} is None
 | |                    | ... | Get Interface Sw Index | ${dut1_node}
 | |                    | ...                          | ${dut1_int_name}
 | | Vpp Add Lisp Local Eid | ${dut1_node} | ${dut1_eid['locator_name']}
 | | ...                    | ${dut1_eid['vni']} | ${dut1_eid['eid']}
 | | ...                    | ${dut1_eid['prefix']}
-| | Vpp Add Lisp Remote Mapping | ${dut1_node} | ${dut1_static_mapping['vni']}
-| | ...                         | ${dut1_static_mapping['deid']}
-| | ...                         | ${dut1_static_mapping['prefix']}
-| | ...                         | ${dut1_static_mapping['seid']}
-| | ...                         | ${dut1_static_mapping['prefix']}
-| | ...                         | ${dut1_static_mapping['rloc']}
+| | Vpp Add Lisp Remote Mapping | ${dut1_node} | ${dut1_static_adjacency['vni']}
+| | ...                         | ${dut1_static_adjacency['deid']}
+| | ...                         | ${dut1_static_adjacency['prefix']}
+| | ...                         | ${dut1_static_adjacency['seid']}
+| | ...                         | ${dut1_static_adjacency['prefix']}
+| | ...                         | ${dut1_static_adjacency['rloc']}
+| | Vpp Add Lisp Adjacency | ${dut1_node} | ${dut1_static_adjacency['vni']}
+| | ...                    | ${dut1_static_adjacency['deid']}
+| | ...                    | ${dut1_static_adjacency['prefix']}
+| | ...                    | ${dut1_static_adjacency['seid']}
+| | ...                    | ${dut1_static_adjacency['prefix']}
 | | Enable Lisp | ${dut2_node}
 | | Vpp Add Lisp Locator Set | ${dut2_node} | ${locator_set['locator_name']}
 | | Vpp Add Lisp Locator | ${dut2_node} | ${locator_set['locator_name']}
 | | Vpp Add Lisp Local Eid | ${dut2_node} | ${dut2_eid['locator_name']}
 | | ...                    | ${dut2_eid['vni']} | ${dut2_eid['eid']}
 | | ...                    | ${dut2_eid['prefix']}
-| | Vpp Add Lisp Remote Mapping | ${dut2_node} | ${dut2_static_mapping['vni']}
-| | ...                         | ${dut2_static_mapping['deid']}
-| | ...                         | ${dut2_static_mapping['prefix']}
-| | ...                         | ${dut2_static_mapping['seid']}
-| | ...                         | ${dut2_static_mapping['prefix']}
-| | ...                         | ${dut2_static_mapping['rloc']}
\ No newline at end of file
+| | Vpp Add Lisp Remote Mapping | ${dut2_node} | ${dut2_static_adjacency['vni']}
+| | ...                         | ${dut2_static_adjacency['deid']}
+| | ...                         | ${dut2_static_adjacency['prefix']}
+| | ...                         | ${dut2_static_adjacency['seid']}
+| | ...                         | ${dut2_static_adjacency['prefix']}
+| | ...                         | ${dut2_static_adjacency['rloc']}
+| | Vpp Add Lisp Adjacency | ${dut2_node} | ${dut2_static_adjacency['vni']}
+| | ...                    | ${dut2_static_adjacency['deid']}
+| | ...                    | ${dut2_static_adjacency['prefix']}
+| | ...                    | ${dut2_static_adjacency['seid']}
+| | ...                    | ${dut2_static_adjacency['prefix']}
\ No newline at end of file
diff --git a/resources/templates/vat/lisp/add_lisp_adjacency.vat b/resources/templates/vat/lisp/add_lisp_adjacency.vat
new file mode 100644 (file)
index 0000000..cdc9936
--- /dev/null
@@ -0,0 +1 @@
+lisp_add_del_adjacency add vni {vni} deid {deid}/{deid_prefix} seid {seid}/{seid_prefix}
@@ -29,16 +29,16 @@ dut2_to_tg_ip4 = '6.0.2.1'
 tg1_ip4 = '6.0.1.2'
 tg2_ip4 = '6.0.2.2'
 prefix4 = 24
-dut1_ip4_static_mapping = {'vni': 0,
-                           'deid': '6.0.2.0',
-                           'seid': '6.0.1.0',
-                           'rloc': '6.0.3.2',
-                           'prefix': 24}
-dut2_ip4_static_mapping = {'vni': 0,
-                           'deid': '6.0.1.0',
-                           'seid': '6.0.2.0',
-                           'rloc': '6.0.3.1',
-                           'prefix': 24}
+dut1_to_dut2_ip4_static_adjacency = {'vni': 0,
+                                     'deid': '6.0.2.0',
+                                     'seid': '6.0.1.0',
+                                     'rloc': '6.0.3.2',
+                                     'prefix': 24}
+dut2_to_dut1_ip4_static_adjacency = {'vni': 0,
+                                     'deid': '6.0.1.0',
+                                     'seid': '6.0.2.0',
+                                     'rloc': '6.0.3.1',
+                                     'prefix': 24}
 dut1_ip4_eid = {'locator_name': locator_name,
                 'vni': 0,
                 'eid': '6.0.1.0',
@@ -56,16 +56,16 @@ dut2_to_tg_ip6 = '6:0:2::1'
 tg1_ip6 = '6:0:1::2'
 tg2_ip6 = '6:0:2::2'
 prefix6 = 64
-dut1_ip6_static_mapping = {'vni': 0,
-                           'deid': '6:0:2::0',
-                           'seid': '6:0:1::0',
-                           'rloc': '6:0:3::2',
-                           'prefix': 64}
-dut2_ip6_static_mapping = {'vni': 0,
-                           'deid': '6:0:1::0',
-                           'seid': '6:0:2::0',
-                           'rloc': '6:0:3::1',
-                           'prefix': 64}
+dut1_to_dut2_ip6_static_adjacency = {'vni': 0,
+                                     'deid': '6:0:2::0',
+                                     'seid': '6:0:1::0',
+                                     'rloc': '6:0:3::2',
+                                     'prefix': 64}
+dut2_to_dut1_ip6_static_adjacency = {'vni': 0,
+                                     'deid': '6:0:1::0',
+                                     'seid': '6:0:2::0',
+                                     'rloc': '6:0:3::1',
+                                     'prefix': 64}
 dut1_ip6_eid = {'locator_name': locator_name,
                 'vni': 0,
                 'eid': '6:0:1::0',
@@ -84,16 +84,16 @@ tg1_ip4o6 = '6.0.1.2'
 tg2_ip4o6 = '6.0.2.2'
 tg_prefix4o6 = 24
 dut_prefix4o6 = 64
-dut1_ip4o6_static_mapping = {'vni': 0,
-                             'deid': '6.0.2.0',
-                             'seid': '6.0.1.0',
-                             'rloc': '6:0:3::2',
-                             'prefix': 24}
-dut2_ip4o6_static_mapping = {'vni': 0,
-                             'deid': '6.0.1.0',
-                             'seid': '6.0.2.0',
-                             'rloc': '6:0:3::1',
-                             'prefix': 24}
+dut1_ip4o6_static_adjacency = {'vni': 0,
+                               'deid': '6.0.2.0',
+                               'seid': '6.0.1.0',
+                               'rloc': '6:0:3::2',
+                               'prefix': 24}
+dut2_ip4o6_static_adjacency = {'vni': 0,
+                               'deid': '6.0.1.0',
+                               'seid': '6.0.2.0',
+                               'rloc': '6:0:3::1',
+                               'prefix': 24}
 dut1_ip4o6_eid = {'locator_name': locator_name,
                   'vni': 0,
                   'eid': '6.0.1.0',
@@ -112,16 +112,16 @@ tg1_ip6o4 = '6:0:1::2'
 tg2_ip6o4 = '6:0:2::2'
 tg_prefix6o4 = 64
 dut_prefix6o4 = 24
-dut1_ip6o4_static_mapping = {'vni': 0,
-                             'deid': '6:0:2::0',
-                             'seid': '6:0:1::0',
-                             'rloc': '6.0.3.2',
-                             'prefix': 64}
-dut2_ip6o4_static_mapping = {'vni': 0,
-                             'deid': '6:0:1::0',
-                             'seid': '6:0:2::0',
-                             'rloc': '6.0.3.1',
-                             'prefix': 64}
+dut1_ip6o4_static_adjacency = {'vni': 0,
+                               'deid': '6:0:2::0',
+                               'seid': '6:0:1::0',
+                               'rloc': '6.0.3.2',
+                               'prefix': 64}
+dut2_ip6o4_static_adjacency = {'vni': 0,
+                               'deid': '6:0:1::0',
+                               'seid': '6:0:2::0',
+                               'rloc': '6.0.3.1',
+                               'prefix': 64}
 dut1_ip6o4_eid = {'locator_name': locator_name,
                   'vni': 0,
                   'eid': '6:0:1::0',
index 0808d36..1b33b43 100644 (file)
 | Resource | resources/libraries/robot/testing_path.robot
 | Resource | resources/libraries/robot/ipv4.robot
 | Resource | resources/libraries/robot/traffic.robot
-| Resource | resources/libraries/robot/lisp/lisp_static_mapping.robot
+| Resource | resources/libraries/robot/lisp/lisp_static_adjacency.robot
 | Resource | resources/libraries/robot/l2_traffic.robot
 | Library  | resources.libraries.python.IPUtil
 | Library  | resources.libraries.python.Trace
 | Library  | resources.libraries.python.IPv4Util.IPv4Util
 # import additional Lisp settings from resource file
-| Variables | resources/test_data/lisp/static_mapping/lisp_static_mapping.py
+| Variables | resources/test_data/lisp/static_adjacency/lisp_static_adjacency.py
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO
 | ... | VM_ENV | HW_ENV
 | Test Setup | Run Keywords | Setup all DUTs before test
@@ -30,7 +30,7 @@
 | ...        | AND          | Update All Interface Data On All Nodes | ${nodes}
 | Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes}
 | ...           | AND          | Show vpp trace dump on all DUTs
-| Documentation | *LISP static remote mapping test cases*
+| Documentation | *LISP static adjacency test cases*
 | ...
 | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
 | ... | with single links between nodes.
@@ -55,7 +55,7 @@
 | | [Documentation]
 | | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv4-LISP-IPv4-ICMPv4 on \
 | | ... | DUT1-DUT2, Eth-IPv4-ICMPv4 on TG-DUTn. [Cfg] On DUT1 and DUT2
-| | ... | configure IPv4 LISP remote static mappings. [Ver] Make TG send
+| | ... | configure IPv4 LISP static adjacencies. [Ver] Make TG send
 | | ... | ICMPv4 Echo Req between its interfaces across both DUTs and LISP
 | | ... | tunnel between them; verify IPv4 headers on received packets are
 | | ... | correct. [Ref] RFC6830.
@@ -82,7 +82,8 @@
 | |      ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE}
 | |      ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE}
 | |      ... | ${duts_locator_set} | ${dut1_ip4_eid} | ${dut2_ip4_eid}
-| |      ... | ${dut1_ip4_static_mapping} | ${dut2_ip4_static_mapping}
+| |      ... | ${dut1_to_dut2_ip4_static_adjacency}
+| |      ... | ${dut2_to_dut1_ip4_static_adjacency}
 | | Then Send Packet And Check Headers
 | |      ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4}
 | |      ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}
@@ -96,7 +97,7 @@
 | | [Documentation]
 | | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv6-LISP-IPv6-ICMPv6 on \
 | | ... | DUT1-DUT2, Eth-IPv6-ICMPv6 on TG-DUTn. [Cfg] On DUT1 and DUT2
-| | ... | configure IPv6 LISP remote static mappings. [Ver] Make TG send
+| | ... | configure IPv6 LISP static adjacencies. [Ver] Make TG send
 | | ... | ICMPv6 Echo Req between its interfaces across both DUTs and LISP
 | | ... | tunnel between them; verify IPv4 headers on received packets are
 | | ... | correct. [Ref] RFC6830.
 | |      ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE}
 | |      ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE}
 | |      ... | ${duts_locator_set} | ${dut1_ip6_eid} | ${dut2_ip6_eid}
-| |      ... | ${dut1_ip6_static_mapping} | ${dut2_ip6_static_mapping}
+| |      ... | ${dut1_to_dut2_ip6_static_adjacency}
+| |      ... | ${dut2_to_dut1_ip6_static_adjacency}
 | | Then Send Packet And Check Headers
 | |      ... | ${tg_node} | ${tg1_ip6} | ${tg2_ip6}
 | |      ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}
 | | [Documentation]
 | | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv6-LISP-IPv4-ICMPv4 on \
 | | ... | DUT1-DUT2, Eth-IPv4-ICMPv4 on TG-DUTn. [Cfg] On DUT1 and DUT2
-| | ... | configure IPv6 LISP remote static mappings. [Ver] Make TG send
+| | ... | configure IPv6 LISP static adjacencies. [Ver] Make TG send
 | | ... | ICMPv4 Echo Req between its interfaces across both DUTs and LISP
 | | ... | tunnel between them; verify IPv4 headers on received packets are
 | | ... | correct. [Ref] RFC6830.
 | |      ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE}
 | |      ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE}
 | |      ... | ${duts_locator_set} | ${dut1_ip4o6_eid} | ${dut2_ip4o6_eid}
-| |      ... | ${dut1_ip4o6_static_mapping} | ${dut2_ip4o6_static_mapping}
+| |      ... | ${dut1_ip4o6_static_adjacency} | ${dut2_ip4o6_static_adjacency}
 | | Then Send Packet And Check Headers
 | |      ... | ${tg_node} | ${tg1_ip4o6} | ${tg2_ip4o6}
 | |      ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}
 | | [Documentation]
 | | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv4-LISP-IPv6-ICMPv6 on \
 | | ... | DUT1-DUT2, Eth-IPv6-ICMPv6 on TG-DUTn. [Cfg] On DUT1 and DUT2
-| | ... | configure IPv4 LISP remote static mappings. [Ver] Make TG send
+| | ... | configure IPv4 LISP static adjacencies. [Ver] Make TG send
 | | ... | ICMPv6 Echo Req between its interfaces across both DUTs and LISP
 | | ... | tunnel between them; verify IPv4 headers on received packets are
 | | ... | correct. [Ref] RFC6830.
 | |      ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE}
 | |      ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE}
 | |      ... | ${duts_locator_set} | ${dut1_ip6o4_eid} | ${dut2_ip6o4_eid}
-| |      ... | ${dut1_ip6o4_static_mapping} | ${dut2_ip6o4_static_mapping}
+| |      ... | ${dut1_ip6o4_static_adjacency} | ${dut2_ip6o4_static_adjacency}
 | | Then Send Packet And Check Headers
 | |      ... | ${tg_node} | ${tg1_ip6o4} | ${tg2_ip6o4}
 | |      ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}
 | | [Documentation]
 | | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv4-LISP-IPv4-ICMPv4 on \
 | | ... | DUT1-DUT2, Eth-IPv4-ICMPv4 on TG-DUTn. [Cfg1] On DUT1 and DUT2
-| | ... | configure IPv4 LISP remote static mappings. [Ver1] Make TG send
+| | ... | configure IPv4 LISP static adjacencies. [Ver1] Make TG send
 | | ... | ICMPv4 Echo Req between its interfaces across both DUTs and LISP
 | | ... | tunnel between them; verify IPv4 headers on received packets are
 | | ... | correct. [Cfg2] Disable LISP. [Ver2] verify packets are not
 | |      ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE}
 | |      ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE}
 | |      ... | ${duts_locator_set} | ${dut1_ip4_eid} | ${dut2_ip4_eid}
-| |      ... | ${dut1_ip4_static_mapping} | ${dut2_ip4_static_mapping}
+| |      ... | ${dut1_to_dut2_ip4_static_adjacency}
+| |      ... | ${dut2_to_dut1_ip4_static_adjacency}
 | | Then Send Packet And Check Headers
 | |      ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4}
 | |      ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}