LISP - implement changes done in VPP-376 35/3035/5
authorTibor Frank <tifrank@cisco.com>
Wed, 21 Sep 2016 08:19:35 +0000 (10:19 +0200)
committerMatej Klotton <mklotton@cisco.com>
Mon, 3 Oct 2016 06:41:13 +0000 (06:41 +0000)
Change-Id: Ia9f7913522421b6fd9ecba18eb4d68bc0f3b3271
Signed-off-by: Tibor Frank <tifrank@cisco.com>
resources/libraries/python/LispUtil.py
resources/libraries/robot/lisp/lisp_api.robot
resources/templates/vat/lisp/del_lisp_remote_mapping.vat
resources/test_data/lisp/api/lisp_api_resources.py
tests/func/lisp/lisp_api_untagged.robot
tests/func/lisp/lisp_dataplane_untagged.robot
tests/func/lisp/lisp_ipv4_lispgpe_ipv4.robot

index c50e626..556ae1b 100644 (file)
@@ -120,23 +120,10 @@ class LispUtil(object):
         :type locator_set2: list
         """
 
-        # Remove duplicate value which is not set in vpp node.
         locator_set_list = []
-        tmp_list = list(locator_set1)
-        while len(tmp_list):
-            locator_set = tmp_list.pop(0)
-            locator_set_name = locator_set.get('locator-set')
-            for tmp_loc_set in tmp_list:
-                tmp_loc_set_name = tmp_loc_set.get('locator-set')
-                if locator_set_name == tmp_loc_set_name:
-                    locator_set = tmp_loc_set
-                    tmp_list.remove(tmp_loc_set)
-            locator_set_list.append(locator_set)
-
-        for locator_set in locator_set2:
-            if 'locator-set-index' in locator_set:
-                del locator_set['locator-set-index']
-
+        for item in locator_set1:
+            if item not in locator_set_list:
+                locator_set_list.append(item)
         self.lisp_should_be_equal(locator_set_list, locator_set2)
 
     @staticmethod
@@ -148,13 +135,15 @@ class LispUtil(object):
         :param locator_set_number: Generate n locator_set.
         :type node: dict
         :type locator_set_number: str
-        :return: list of lisp locator_set.
-        :rtype: list
+        :return: list of lisp locator_set, list of lisp locator_set expected
+        from VAT.
+        :rtype: tuple
         """
 
         topo = Topology()
 
         locator_set_list = []
+        locator_set_list_vat = []
         i = 0
         for num in range(0, int(locator_set_number)):
             locator_list = []
@@ -177,7 +166,11 @@ class LispUtil(object):
                            'locator': locator_list}
             locator_set_list.append(locator_set)
 
-        return locator_set_list
+            locator_set_vat = {"ls_name": l_name,
+                               "ls_index": num}
+            locator_set_list_vat.append(locator_set_vat)
+
+        return locator_set_list, locator_set_list_vat
 
     @staticmethod
     def generate_duplicate_lisp_locator_set_data(node, locator_set_number):
@@ -188,12 +181,14 @@ class LispUtil(object):
         :param locator_set_number: Generate n locator_set.
         :type node: dict
         :type locator_set_number: str
-        :return: list of lisp locator_set.
-        :rtype: list
+        :return: list of lisp locator_set, list of lisp locator_set expected
+        from VAT.
+        :rtype: tuple
         """
 
         topo = Topology()
         locator_set_list = []
+        locator_set_list_vat = []
         i = 0
         for num in range(0, int(locator_set_number)):
             locator_list = []
@@ -215,7 +210,11 @@ class LispUtil(object):
                                    'locator': locator_list}
                     locator_set_list.append(locator_set)
 
-        return locator_set_list
+                    locator_set_vat = {"ls_name": l_name,
+                               "ls_index": num}
+                    locator_set_list_vat.append(locator_set_vat)
+
+        return locator_set_list, locator_set_list_vat
 
     def lisp_is_empty(self, lisp_params):
         """Check if the input param are empty.
index 4bd22bc..a8b59e0 100644 (file)
 | | ...
 | | ... | _NOTE:_ This KW sets following test case variables:
 | | ... | - locator_set_values - New generated locator_set data.
+| | ... | - locator_set_values_vat - New generated locator_set data expected\
+| | ... | from VAT.
 | | ...
 | | ... | *Example:*
 | | ... | \| Given Lisp locator_set data is prepared \| ${nodes['DUT1']} \
 | | ... | \| ${locator_set_number} \|
 | | ...
 | | [Arguments] | ${dut_node} | ${locator_set_number}
-| | ${locator_set_values}= | Generate Unique Lisp Locator Set Data |
-| | ...                    | ${dut_node} | ${locator_set_number}
+| | ${locator_set_values} | ${locator_set_values_vat}=
+| | ... | Generate Unique Lisp Locator Set Data
+| | ... | ${dut_node} | ${locator_set_number}
 | | Set Test Variable | ${locator_set_values}
+| | Set Test Variable | ${locator_set_values_vat}
 
 | Lisp locator_set data is set
 | | [Documentation] | Set the lisp locator_set and locator on the VPP node.
@@ -75,9 +79,8 @@
 | | ... | - No value returned
 | | ...
 | | ... | _NOTE:_ This KW requires following test case variables:
-| | ... | - locator_set_values - Generated locator_set data from
-| | ... |                        KW locator_set data is prepared,
-| | ... |                        which were set to VPP node.
+| | ... | - locator_set_values_vat - Generated locator_set data from
+| | ... | KW locator_set data is prepared, which are expected from VPP via VAT.
 | | ...
 | | ... | *Example:*
 | | ... | \| Then Lisp locator_set is set correctly \| ${nodes['DUT1']} \|
@@ -85,7 +88,7 @@
 | | [Arguments] | ${dut_node}
 | | ${show_locator_set}= | Vpp Show Lisp Locator Set | ${dut_node} | local
 | | Lisp Locator S Should Be Equal
-| | ... | ${locator_set_values} | ${show_locator_set}
+| | ... | ${locator_set_values_vat} | ${show_locator_set}
 
 | Delete all lisp locator_set from VPP
 | | [Documentation] | Delete all lisp locator_set on the VPP node.
 | | ...
 | | ... | _NOTE:_ This KW sets following test case variables:
 | | ... | - locator_set_values - New generate locator_set data.
+| | ... | - locator_set_values_vat - New generated locator_set data expected\
+| | ... | from VAT.
 | | ...
 | | ... | *Example:*
 | | ... | \| Given Lisp locator_set data use for test reset locator_set \
 | | ... |    are prepared \| ${nodes['DUT1']} \| ${locator_set_number} \|
 | | ...
 | | [Arguments] | ${dut_node} | ${locator_set_number}
-| | ${locator_set_values}= | Generate Duplicate Lisp Locator Set Data |
-| | ...                    | ${dut_node} | ${locator_set_number}
+| | ${locator_set_values} | ${locator_set_values_vat}=
+| | ... | Generate Duplicate Lisp Locator Set Data
+| | ... | ${dut_node} | ${locator_set_number}
 | | Set Test Variable | ${locator_set_values}
+| | Set Test Variable | ${locator_set_values_vat}
 
 | Lisp eid address is set
 | | [Documentation] | Set the lisp eid address on the VPP node.
index f090ef9..515611f 100644 (file)
@@ -1 +1 @@
-lisp_add_del_remote_mapping del vni {vni} deid {deid}/{deid_prefix} seid {seid}/{seid_prefix} rloc {rloc}
+lisp_add_del_remote_mapping del vni {vni} eid {deid}/{deid_prefix} seid {seid}/{seid_prefix} rloc {rloc}
index 45ae735..cc97f1c 100644 (file)
@@ -71,6 +71,66 @@ eid_table = [{'eid': '192.168.0.0',
               'ttl': 0,
               'authoritative': 0}]
 
+# Expected data from VPP via VAT
+eid_table_vat = [
+    {
+        "action": 0,
+        "is_local": 1,
+        "eid": "192.168.0.0/24",
+        "vni": 0,
+        "ttl": 0,
+        "authoritative": 0
+    },
+    {
+        "action": 0,
+        "is_local": 1,
+        "eid": "192.168.1.0/24",
+        "vni": 0,
+        "ttl": 0,
+        "authoritative": 0
+    },
+    {
+        "action": 0,
+        "is_local": 1,
+        "eid": "192.168.2.0/24",
+        "vni": 0,
+        "ttl": 0,
+        "authoritative": 0
+    },
+    {
+        "action": 0,
+        "is_local": 1,
+        "eid": "192.168.3.0/24",
+        "vni": 0,
+        "ttl": 0,
+        "authoritative": 0
+    },
+    {
+        "action": 0,
+        "is_local": 1,
+        "eid": "10:1::/64",
+        "vni": 0,
+        "ttl": 0,
+        "authoritative": 0
+    },
+    {
+        "action": 0,
+        "is_local": 1,
+        "eid": "10:2::/64",
+        "vni": 0,
+        "ttl": 0,
+        "authoritative": 0
+    },
+    {
+        "action": 0,
+        "is_local": 1,
+        "eid": "10:3::/64",
+        "vni": 0,
+        "ttl": 0,
+        "authoritative": 0
+    }
+]
+
 # Example lisp map resolvers data we want set to VPP
 # and then check if it is set correctly.
 map_resolver = [{'map resolver': '192.169.0.1'},
index 385b4a7..38692a0 100644 (file)
 | | ... | configured locator_set and locator are correct. [Cfg2] Then
 | | ... | remove locator_set and locator. [Ver2] check DUT1 locator_set
 | | ... | and locator are removed. [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Lisp locator_set data is prepared
 | | ... | ${nodes['DUT1']} | ${locator_set_num}
-| | And   Enable lisp | ${nodes['DUT1']}
+| | And Enable lisp | ${nodes['DUT1']}
 | | When Lisp locator_set data is set | ${nodes['DUT1']}
 | | Then Lisp locator_set is set correctly | ${nodes['DUT1']}
 | | When Delete all lisp locator_set from VPP | ${nodes['DUT1']}
 | | ... | locator are correct. [Cfg3] Then remove locator_set and locator.
 | | ... | [Ver3] Check DUT1 all locator_set and locators are removed.
 | | ... | [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Lisp locator_set data use for test reset locator_set are prepared
 | | ... | ${nodes['DUT1']} | ${locator_set_num}
-| | And   Enable lisp | ${nodes['DUT1']}
+| | And Enable lisp | ${nodes['DUT1']}
 | | When Lisp locator_set data is set | ${nodes['DUT1']}
 | | Then Lisp locator_set is set correctly | ${nodes['DUT1']}
 | | When Delete all lisp locator_set from VPP | ${nodes['DUT1']}
 | | ... | configure LISP eid IP address. [Ver1] Check DUT1 configured data
 | | ... | is correct. [Cfg2] Remove configured data. [Ver2] Check DUT1 all
 | | ... | eid IP addresses are removed. [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Enable lisp | ${nodes['DUT1']}
 | | When Lisp eid address is set | ${nodes['DUT1']} | ${eid_table}
-| | Then Lisp eid address is set correctly to eid table | ${nodes['DUT1']}
-| | ...                                                 | ${eid_table}
+| | Then Lisp eid address is set correctly to eid table
+| | ... | ${nodes['DUT1']} | ${eid_table_vat}
 | | When Delete all lisp eid address from VPP | ${nodes['DUT1']} | ${eid_table}
 | | Then Lisp eid table should be empty | ${nodes['DUT1']}
 
 | | ... | RFC6830.
 | | Given Enable lisp | ${nodes['DUT1']}
 | | When Lisp map resolver address is set | ${nodes['DUT1']} | ${map_resolver}
-| | Then Lisp map resolver address is set correctly | ${nodes['DUT1']}
-| | ...                                             | ${map_resolver}
-| | When Delete all lisp map resolver address from VPP | ${nodes['DUT1']}
-| | ...                                                | ${map_resolver}
+| | Then Lisp map resolver address is set correctly
+| | ... | ${nodes['DUT1']} | ${map_resolver}
+| | When Delete all lisp map resolver address from VPP
+| | ... | ${nodes['DUT1']} | ${map_resolver}
 | | Then Lip map resolver address should be empty | ${nodes['DUT1']}
index 0fe9aaf..f2da80a 100644 (file)
@@ -62,7 +62,6 @@
 | | ... | [Cfg2] Reconf LISP.
 | | ... | [Ver2] Verify packets are received again via LISP tunnel.
 | | ... | [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Path for 3-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | And   Interfaces in 3-node path are up
 | | ... | [Cfg2] Reconf LISP.
 | | ... | [Ver2] Verify packets are received again via LISP tunnel.
 | | ... | [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Path for 3-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | And   Interfaces in 3-node path are up
 | | ... | [Cfg2] Reconf LISP.
 | | ... | [Ver2] Verify packets are received again via LISP tunnel.
 | | ... | [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Path for 3-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | And   Interfaces in 3-node path are up
 | | ... | [Cfg2] Reconf LISP.
 | | ... | [Ver2] Verify packets are received again via LISP tunnel.
 | | ... | [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Path for 3-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | And   Interfaces in 3-node path are up
 | | ... | [Cfg3] Re-enable LISP.
 | | ... | [Ver3] Verify packets are received again via LISP tunnel.
 | | ... | [Ref] RFC6830.
-| | [Tags] | EXPECTED_FAILING
 | | Given Path for 3-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | And   Interfaces in 3-node path are up
index 8a18962..0ffcb89 100644 (file)
@@ -26,7 +26,7 @@
 # Import configuration and test data:
 | Variables | resources/test_data/lisp/ipv4_lispgpe_ipv4/ipv4_lispgpe_ipv4.py
 | ...
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | EXPECTED_FAILING
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV
 | ...
 | Test Setup | Run Keywords | Setup all DUTs before test
 | ...        | AND          | Setup all TGs before traffic script