From: Tibor Frank Date: Wed, 21 Sep 2016 08:19:35 +0000 (+0200) Subject: LISP - implement changes done in VPP-376 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=commitdiff_plain;h=c75b9804c9510d0a342563e41407089145b38d50 LISP - implement changes done in VPP-376 Change-Id: Ia9f7913522421b6fd9ecba18eb4d68bc0f3b3271 Signed-off-by: Tibor Frank --- diff --git a/resources/libraries/python/LispUtil.py b/resources/libraries/python/LispUtil.py index c50e626b80..556ae1b289 100644 --- a/resources/libraries/python/LispUtil.py +++ b/resources/libraries/python/LispUtil.py @@ -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. diff --git a/resources/libraries/robot/lisp/lisp_api.robot b/resources/libraries/robot/lisp/lisp_api.robot index 4bd22bc036..a8b59e0fee 100644 --- a/resources/libraries/robot/lisp/lisp_api.robot +++ b/resources/libraries/robot/lisp/lisp_api.robot @@ -35,15 +35,19 @@ | | ... | | ... | _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. @@ -138,15 +141,19 @@ | | ... | | ... | _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. diff --git a/resources/templates/vat/lisp/del_lisp_remote_mapping.vat b/resources/templates/vat/lisp/del_lisp_remote_mapping.vat index f090ef97f5..515611ffd0 100644 --- a/resources/templates/vat/lisp/del_lisp_remote_mapping.vat +++ b/resources/templates/vat/lisp/del_lisp_remote_mapping.vat @@ -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} diff --git a/resources/test_data/lisp/api/lisp_api_resources.py b/resources/test_data/lisp/api/lisp_api_resources.py index 45ae73510f..cc97f1c0e3 100644 --- a/resources/test_data/lisp/api/lisp_api_resources.py +++ b/resources/test_data/lisp/api/lisp_api_resources.py @@ -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'}, diff --git a/tests/func/lisp/lisp_api_untagged.robot b/tests/func/lisp/lisp_api_untagged.robot index 385b4a7d3b..38692a067a 100644 --- a/tests/func/lisp/lisp_api_untagged.robot +++ b/tests/func/lisp/lisp_api_untagged.robot @@ -61,10 +61,9 @@ | | ... | 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']} @@ -79,10 +78,9 @@ | | ... | 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']} @@ -94,11 +92,10 @@ | | ... | 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']} @@ -111,8 +108,8 @@ | | ... | 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']} diff --git a/tests/func/lisp/lisp_dataplane_untagged.robot b/tests/func/lisp/lisp_dataplane_untagged.robot index 0fe9aaff18..f2da80a2db 100644 --- a/tests/func/lisp/lisp_dataplane_untagged.robot +++ b/tests/func/lisp/lisp_dataplane_untagged.robot @@ -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 @@ -122,7 +121,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 @@ -182,7 +180,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 @@ -241,7 +238,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 @@ -302,7 +298,6 @@ | | ... | [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 diff --git a/tests/func/lisp/lisp_ipv4_lispgpe_ipv4.robot b/tests/func/lisp/lisp_ipv4_lispgpe_ipv4.robot index 8a18962e35..0ffcb8909a 100644 --- a/tests/func/lisp/lisp_ipv4_lispgpe_ipv4.robot +++ b/tests/func/lisp/lisp_ipv4_lispgpe_ipv4.robot @@ -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