aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--resources/libraries/python/LispSetup.py17
-rw-r--r--resources/libraries/python/LispUtil.py71
-rw-r--r--resources/libraries/robot/lisp/lisp_api.robot236
-rw-r--r--resources/libraries/robot/lisp/lisp_static_mapping.robot31
-rw-r--r--resources/templates/vat/lisp/lisp_status.vat (renamed from resources/templates/vat/lisp/lisp.vat)0
-rw-r--r--tests/suites/lisp/lisp_api_untagged.robot42
-rw-r--r--tests/suites/lisp/lisp_dataplane_untagged.robot55
-rw-r--r--tests/suites/lisp/resources/lisp_api_resources.py52
8 files changed, 301 insertions, 203 deletions
diff --git a/resources/libraries/python/LispSetup.py b/resources/libraries/python/LispSetup.py
index 88fcfacda6..14f99293df 100644
--- a/resources/libraries/python/LispSetup.py
+++ b/resources/libraries/python/LispSetup.py
@@ -17,7 +17,7 @@ from resources.libraries.python.topology import NodeType
from resources.libraries.python.VatExecutor import VatExecutor
-class Lisp(object):
+class LispStatus(object):
"""Class for lisp API."""
def __init__(self):
@@ -34,7 +34,7 @@ class Lisp(object):
"""
VatExecutor.cmd_from_template(node,
- 'lisp/lisp.vat',
+ 'lisp/lisp_status.vat',
state=state)
@@ -494,16 +494,3 @@ class LispSetup(object):
lgi = LispGpeIface()
lgi.vpp_lisp_gpe_iface(node, state)
-
- @staticmethod
- def vpp_lisp_state(node, state):
- """Enable/Disable lisp on VPP node in topology.
-
- :param node: VPP node.
- :param state: State of the lisp, enable or disable
- :type node: dict
- :type state: str
- """
-
- lgi = Lisp()
- lgi.vpp_lisp_enable_disable(node, state)
diff --git a/resources/libraries/python/LispUtil.py b/resources/libraries/python/LispUtil.py
index 17a46cd49c..219d2c7680 100644
--- a/resources/libraries/python/LispUtil.py
+++ b/resources/libraries/python/LispUtil.py
@@ -25,6 +25,21 @@ class LispUtil(object):
pass
@staticmethod
+ def vpp_show_lisp_state(node):
+ """Get lisp state from VPP node.
+
+ :param node: VPP node.
+ :type node: dict
+ :return: Lisp gpe state.
+ :rtype: list
+ """
+
+ vat = VatExecutor()
+ vat.execute_script_json_out('lisp/show_lisp_enable_disable.vat',
+ node)
+ return JsonParser().parse_data(vat.get_script_stdout())
+
+ @staticmethod
def vpp_show_lisp_locator_set(node):
"""Get lisp locator_set from VPP node.
@@ -191,62 +206,6 @@ class LispUtil(object):
loc_type = {'reset': locator_set_list}
return loc_type
- @staticmethod
- def generate_lisp_local_eid_data(ipv4_num, ipv6_num):
- """Generate a list of lisp local eid we want set to VPP and
- then check if is set correct.
-
- :param ipv4_num: Generate n ipv4 eid address.
- :param ipv6_num: Generate n ipv6 eid address.
- :type ipv4_num: str
- :type ipv6_num: str
- :return: list of lisp local eid.
- :rtype: list
- """
-
- eid_table = []
- for num in range(0, int(ipv4_num)):
- addrr = '192.168.{}.1'.format(num)
- eid = {'eid address': addrr,
- 'eid prefix len': 24,
- 'locator-set': 'ls1'}
- eid_table.append(eid)
-
- for num in range(0, int(ipv6_num)):
- addrr = '10:{}::1'.format(num + 1)
- eid = {'eid address': addrr,
- 'eid prefix len': 32,
- 'locator-set': 'ls1'}
- eid_table.append(eid)
-
- return eid_table
-
- @staticmethod
- def generate_lisp_map_resolver_data(ipv4_num, ipv6_num):
- """Generate a list of lisp map resolvers we want set to VPP and
- then check if is set correct.
-
- :param ipv4_num: Generate n ipv4 map resolver address.
- :param ipv6_num: Generate n ipv6 map resolver address.
- :type ipv4_num: str
- :type ipv6_num: str
- :return: list of lisp map resolver.
- :rtype: list
- """
-
- map_resolver = []
- for i in range(0, int(ipv4_num)):
- addr = '192.169.{}.1'.format(i)
- resolver = {'map resolver': addr}
- map_resolver.append(resolver)
-
- for i in range(0, int(ipv6_num)):
- addr = '12:{}::1'.format(i + 1)
- resolver = {'map resolver': addr}
- map_resolver.append(resolver)
-
- return map_resolver
-
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 43471a9d86..54ba6b7703 100644
--- a/resources/libraries/robot/lisp/lisp_api.robot
+++ b/resources/libraries/robot/lisp/lisp_api.robot
@@ -14,6 +14,7 @@
*** Settings ***
| Resource | resources/libraries/robot/interfaces.robot
| Library | resources.libraries.python.NodePath
+| Library | resources.libraries.python.LispSetup.LispStatus
| Library | resources.libraries.python.LispSetup.LispSetup
| Library | resources.libraries.python.LispUtil
@@ -24,15 +25,15 @@
| | ... | the lisp locator_set and locator API.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
-| | ... | - ${locator_set_number} - Number how many locator_set data
-| | ... | will be generated. Type: integer
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - locator_set_number - Number how many locator_set data
+| | ... | will be generated. Type: integer
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
| | ... | _NOTE:_ This KW sets following test case variables:
-| | ... | - ${locator_set_values} - New generated locator_set data.
+| | ... | - locator_set_values - New generated locator_set data.
| | ...
| | ... | *Example:*
| | ... | \| Given Lisp locator_set data is prepared \| ${nodes['DUT1']} \
@@ -47,15 +48,15 @@
| | [Documentation] | Set the lisp locator_set and locator on the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - 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 will be set on the VPP node.
+| | ... | - locator_set_values - Generated locator_set data from
+| | ... | KW locator_set data is prepared,
+| | ... | which will be set on the VPP node.
| | ...
| | ... | *Example:*
| | ... | \| When Lisp locator_set data is set \| ${nodes['DUT1']} \|
@@ -63,22 +64,22 @@
| | [Arguments] | ${dut_node}
| | Vpp Set Lisp Locator Set | ${dut_node} | ${locator_set_values}
-| Lisp locator_set is set correct
-| | [Documentation] | Test if the locator_set is set correct on the VPP node.
+| Lisp locator_set is set correctly
+| | [Documentation] | Test if the locator_set is set correctly on the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - 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 - Generated locator_set data from
+| | ... | KW locator_set data is prepared,
+| | ... | which were set to VPP node.
| | ...
| | ... | *Example:*
-| | ... | \| Then Lisp locator_set is set correct \| ${nodes['DUT1']} \|
+| | ... | \| Then Lisp locator_set is set correctly \| ${nodes['DUT1']} \|
| | ...
| | [Arguments] | ${dut_node}
| | ${show_locator_set}= | Vpp Show Lisp Locator Set | ${dut_node}
@@ -89,15 +90,15 @@
| | [Documentation] | Delete all lisp locator_set on the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - 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 was set on the VPP node.
+| | ... | - locator_set_values - Generated locator_set data from
+| | ... | KW locator_set data is prepared,
+| | ... | which was set on the VPP node.
| | ...
| | ... | *Example:*
| | ... | \| When Delete all lisp locator_set from VPP \
@@ -110,7 +111,7 @@
| | [Documentation] | Test if all locator_set are unset from VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - No value returned
@@ -127,15 +128,15 @@
| | ... | This data will be use for test reset locator_set.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
-| | ... | - ${locator_set_number} - Number how many locator_set data
-| | ... | it will generate. Type: int
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - locator_set_number - Number how many locator_set data
+| | ... | it will generate. Type: int
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
| | ... | _NOTE:_ This KW sets following test case variables:
-| | ... | - ${locator_set_values} - New generate locator_set data.
+| | ... | - locator_set_values - New generate locator_set data.
| | ...
| | ... | *Example:*
| | ... | \| Given Lisp locator_set data use for test reset locator_set \
@@ -150,15 +151,15 @@
| | [Documentation] | Generate lisp eid address for testing lisp eid API.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
-| | ... | - ${eid_ipv4_num} - Number of generate ipv4 address. Type: int
-| | ... | - ${eid_ipv6_num} - Number of generate ipv6 address. Type: int
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - eid_ipv4_num - Number of generate ipv4 address. Type: int
+| | ... | - eid_ipv6_num - Number of generate ipv6 address. Type: int
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
| | ... | _NOTE:_ This KW sets following test case variables:
-| | ... | - ${set_eid} - New generate eid data.
+| | ... | - set_eid - New generate eid data.
| | ...
| | ... | *Example:*
| | ... | \| Given Lisp eid address is prepared \| ${nodes['DUT1']} \
@@ -173,37 +174,37 @@
| | [Documentation] | Set the lisp eid address on the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - set_eid - Test eid data. Type: list
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
-| | ... | _NOTE:_ This KW requires following test case variables:
-| | ... | - ${set_eid} - Generated eid data which will be set to VPP.
-| | ...
| | ... | *Example:*
-| | ... | \| When Lisp eid address is set \| ${nodes['DUT1']} \|
+| | ... | \| When Lisp eid address is set \| ${nodes['DUT1']} \| ${eid_table} |\
| | ...
-| | [Arguments] | ${dut_node}
+| | [Arguments] | ${dut_node} | ${set_eid}
| | Vpp Set Lisp Eid Table | ${dut_node} | ${set_eid}
-| Lisp eid address is set correct to eid table
-| | [Documentation] | Test if the locator_set is set correct on the VPP node.
+| Lisp eid address is set correctly to eid table
+| | [Documentation] | Test if the locator_set is set correctly on the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - set_eid - Example eid data, which was set to the VPP node.
+| | ... | Type: list
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
| | ... | _NOTE:_ This KW requires following test case variables:
-| | ... | - ${set_eid} - Generated eid data which will be set to the VPP node.
+| | ... | - set_eid - Generated eid data, which will be set to the VPP node.
| | ...
| | ... | *Example:*
-| | ... | \| Then Lisp eid address is set correct to eid table \
-| | ... | \| ${nodes['DUT1']} \|
+| | ... | \| Then Lisp eid address is set correctly to eid table \
+| | ... | \| ${nodes['DUT1']} \| ${eid_table} \|
| | ...
-| | [Arguments] | ${dut_node}
+| | [Arguments] | ${dut_node} | ${set_eid}
| | ${show_eid}= | Vpp Show Lisp Local Eid Table | ${dut_node}
| | Lisp Should Be Equal | ${set_eid} | ${show_eid}
@@ -211,26 +212,25 @@
| | [Documentation] | Delete all lisp eid address from the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - set_eid - Eid data which will be removed from the VPP node.
+| | ... | Type: list
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
-| | ... | _NOTE:_ This KW requires following test case variables:
-| | ... | - ${set_eid} - Generated eid data which was set to the VPP node.
-| | ...
| | ... | *Example:*
| | ... | \| When Delete all lisp eid address from VPP \
-| | ... | \| ${nodes['DUT1']} \|
+| | ... | \| ${nodes['DUT1']} \| ${eid_table} \|
| | ...
-| | [Arguments] | ${dut_node}
+| | [Arguments] | ${dut_node} | ${set_eid}
| | Vpp Unset Lisp Eid Table | ${dut_node} | ${set_eid}
| Lisp eid table should be empty
| | [Documentation] | Test if the eid table is empty.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - No value returned
@@ -242,71 +242,41 @@
| | ${show_eid}= | Vpp Show Lisp Local Eid Table | ${dut_node}
| | Lisp Is Empty | ${show_eid}
-| Lisp map resolver address is prepared
-| | [Documentation] | Generate map resolver address for testing
-| | ... | lisp map resolver API.
-| | ...
-| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
-| | ... | - ${map_resolver_ipv4_num} - Number of generate ipv4 address.
-| | ... | Type: int
-| | ... | - ${map_resolver_ipv6_num} - Number of generate ipv6 address.
-| | ... | Type: int
-| | ...
-| | ... | *Return:*
-| | ... | - No value returned
-| | ...
-| | ... | _NOTE:_ This KW sets following test case variables:
-| | ... | - ${set_map_resolver} - Generate map resolver data.
-| | ...
-| | ... | *Example:*
-| | ... | \| Given Lisp map resolver address is prepared \
-| | ... | \| ${nodes['DUT1']} \| ${map_resolver_ipv4_num} \
-| | ... | \| ${map_resolver_ipv6_num} \|
-| | ...
-| | [Arguments] | ${dut_node} | ${map_resolver_ipv4_num} | ${map_resolver_ipv6_num}
-| | ${set_map_resolver} = | Generate Lisp Map Resolver Data
-| | ... | ${map_resolver_ipv4_num} | ${map_resolver_ipv6_num}
-| | Set Test Variable | ${set_map_resolver}
-
| Lisp map resolver address is set
| | [Documentation] | Set the lisp map resolver address in the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - set_map_resolver - Map resolver data, which will be set on
+| | ... | the VPP node. Type: list
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
-| | ... | _NOTE:_ This KW requires following test case variables:
-| | ... | - ${set_map_resolver} - Map resolver data which will be set
-| | ... | to the VPP node.
-| | ...
| | ... | *Example:*
-| | ... | \| When Lisp map resolver address is set \| ${nodes['DUT1']} \|
+| | ... | \| When Lisp map resolver address is set \| ${nodes['DUT1']} \
+| | ... | \| ${map_resolver} \|
| | ...
-| | [Arguments] | ${dut_node}
+| | [Arguments] | ${dut_node} | ${set_map_resolver}
| | Vpp Set Lisp Map Resolver | ${dut_node} | ${set_map_resolver}
-| Lisp map resolver address is set correct
-| | [Documentation] | Test if the map resolver address is set correct
+| Lisp map resolver address is set correctly
+| | [Documentation] | Test if the map resolver address is set correctly
| | ... | on the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - set_map_resolver - Map resolver data, which was set on
+| | ... | the VPP node. Type: list
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
-| | ... | _NOTE:_ This KW requires following test case variables:
-| | ... | - ${set_map_resolver} - Map resolver data which was set
-| | ... | to the VPP node.
-| | ...
| | ... | *Example:*
-| | ... | \| Then Lisp map resolver address is set correct \
-| | ... | \| ${nodes['DUT1']} \|
+| | ... | \| Then Lisp map resolver address is set correctly \
+| | ... | \| ${nodes['DUT1']} \| ${map_resolver} \|
| | ...
-| | [Arguments] | ${dut_node}
+| | [Arguments] | ${dut_node} | ${set_map_resolver}
| | ${show_map_resolver}= | Vpp Show Lisp Map Resolver | ${dut_node}
| | Lisp Should Be Equal | ${set_map_resolver} | ${show_map_resolver}
@@ -314,27 +284,25 @@
| | [Documentation] | Delete all lisp map resolver address on the VPP node.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - map_resolver - Map resolver data, which will be remove from
+| | ... | the VPP. Type: list
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
-| | ... | _NOTE:_ This KW requires following test case variables:
-| | ... | - ${set_map_resolver} - Map resolver data which was set
-| | ... | to the VPP node.
-| | ...
| | ... | *Example:*
| | ... | \| When Delete all lisp map resolver address from VPP \
-| | ... | \| ${nodes['DUT1']} \|
+| | ... | \| ${nodes['DUT1']} \| ${map_resolver} \|
| | ...
-| | [Arguments] | ${dut_node}
+| | [Arguments] | ${dut_node} | ${set_map_resolver}
| | Vpp Unset Lisp Map Resolver | ${dut_node} | ${set_map_resolver}
| Lip map resolver address should be empty
| | [Documentation] | Test if the map resolver are empty.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ... | - dut_node - DUT node. Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - No value returned
@@ -346,3 +314,71 @@
| | [Arguments] | ${dut_node}
| | ${show_map_resolver}= | Vpp Show Lisp Map Resolver | ${dut_node}
| | Lisp Is Empty | ${show_map_resolver}
+
+| Enable lisp
+| | [Documentation] | Enable lisp on VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| Enable lisp \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | Vpp Lisp Enable Disable | ${dut_node} | enable
+
+| Check if lisp is enabled
+| | [Documentation] | Check if the lisp is enabled.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - lisp_status_data - Lisp status data, which was set on
+| | ... | the VPP node. Type: list
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| Check if lisp is enabled \| ${nodes['DUT1']} \
+| | ... | \| ${lisp_status_data} \|
+| | ...
+| | [Arguments] | ${dut_node} | ${lisp_status_data}
+| | ${show_lisp_stat}= | Vpp Show Lisp State | ${dut_node}
+| | Lisp Should Be Equal | ${show_lisp_stat} | ${lisp_status_data[1]}
+
+| Disable lisp
+| | [Documentation] | Disable lisp on VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| Disable lisp \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | Vpp Lisp Enable Disable | ${dut_node} | disable
+
+| Check if lisp is disabled
+| | [Documentation] | Check if lisp is disabled.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut_node - DUT node. Type: dictionary
+| | ... | - lisp_status_data - Lisp status data, which was set on
+| | ... | the VPP node. Type: list
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| Check if lisp is disabled \| ${nodes['DUT1']} \
+| | ... | \| ${lisp_status_data} \|
+| | ...
+| | [Arguments] | ${dut_node} | ${lisp_status_data}
+| | ${show_lisp_stat}= | Vpp Show Lisp State | ${dut_node}
+| | Lisp Should Be Equal | ${show_lisp_stat} | ${lisp_status_data[0]}
diff --git a/resources/libraries/robot/lisp/lisp_static_mapping.robot b/resources/libraries/robot/lisp/lisp_static_mapping.robot
index 8d6bf311d0..b6c0e791b4 100644
--- a/resources/libraries/robot/lisp/lisp_static_mapping.robot
+++ b/resources/libraries/robot/lisp/lisp_static_mapping.robot
@@ -13,31 +13,28 @@
*** Settings ***
| Documentation | Lisp State mapping suite keywords
-| Resource | resources/libraries/robot/interfaces.robot
-| Library | resources.libraries.python.NodePath
+| 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.LispRemoteMapping
-| Library | resources.libraries.python.LispSetup.LispSetup
-| Library | resources.libraries.python.LispUtil
*** Keywords ***
| Set up Lisp topology
| | [Documentation] | Set up Lisp static remote mapping topology.
| | ...
| | ... | *Arguments:*
-| | ... | - ${dut1_node} - DUT1 node. Type: dictionary
-| | ... | - ${dut1_int_name} - DUT1 node interface name. Type: string
-| | ... | - ${dut1_int_index} - DUT1 node interface index. Type: integer
-| | ... | - ${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
+| | ... | - dut1_node - DUT1 node. Type: dictionary
+| | ... | - dut1_int_name - DUT1 node interface name. Type: string
+| | ... | - dut1_int_index - DUT1 node interface index. Type: integer
+| | ... | - 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
| | ...
| | ... | *Return:*
| | ... | - No value returned
@@ -60,7 +57,7 @@
| | | ... | Get Interface Sw Index | ${dut2_node}
| | | ... | ${dut2_int_name}
| | | ... | ELSE | Set Variable | ${dut2_int_index}
-| | Vpp lisp state | ${dut1_node} | enable
+| | Enable Lisp | ${dut1_node}
| | Vpp Add Lisp Locator Set | ${dut1_node} | ${locator_set['locator_name']}
| | Vpp Add Lisp Locator | ${dut1_node} | ${locator_set['locator_name']}
| | ... | ${dut1_int_index} | ${locator_set['priority']}
@@ -73,7 +70,7 @@
| | ... | ${dut1_static_mapping['seid']}
| | ... | ${dut1_static_mapping['prefix']}
| | ... | ${dut1_static_mapping['rloc']}
-| | Vpp Lisp State | ${dut2_node} | enable
+| | 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']}
| | ... | ${dut2_int_index} | ${locator_set['priority']}
diff --git a/resources/templates/vat/lisp/lisp.vat b/resources/templates/vat/lisp/lisp_status.vat
index d7e97577d6..d7e97577d6 100644
--- a/resources/templates/vat/lisp/lisp.vat
+++ b/resources/templates/vat/lisp/lisp_status.vat
diff --git a/tests/suites/lisp/lisp_api_untagged.robot b/tests/suites/lisp/lisp_api_untagged.robot
index 1a0c309b91..8769b17e18 100644
--- a/tests/suites/lisp/lisp_api_untagged.robot
+++ b/tests/suites/lisp/lisp_api_untagged.robot
@@ -20,6 +20,8 @@
| Resource | resources/libraries/robot/default.robot
| Resource | resources/libraries/robot/interfaces.robot
| Resource | resources/libraries/robot/lisp/lisp_api.robot
+# import additional Lisp settings from resource file
+| Variables | tests/suites/lisp/resources/lisp_api_resources.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
@@ -29,13 +31,20 @@
*** Variables ***
| ${locator_set_num}= | 3
-| ${eid_ipv4_num}= | 4
-| ${eid_ipv6_num}= | 3
-| ${map_resolver_ipv4_num}= | 3
-| ${map_resolver_ipv6_num}= | 2
*** Test Cases ***
+Vpp can enable and disable Lisp
+| | [Documentation] | Test lisp enable/disable API.
+| | ... | Enable lisp on the VPP node,
+| | ... | check if the lisp on the vpp node is enabled.
+| | ... | Then disable lisp on the vpp node and check if
+| | ... | the lisp is disabled on the vpp node.
+| | When Enable lisp | ${nodes['DUT1']}
+| | Then Check if lisp is enabled | ${nodes['DUT1']} | ${lisp_status}
+| | When Disable lisp | ${nodes['DUT1']}
+| | Then Check if lisp is disabled | ${nodes['DUT1']} | ${lisp_status}
+
| VPP can add and delete locator_set
| | [Documentation] | Test lisp locator_set API
| | ... | Set locator_set and locator on the VPP node,
@@ -45,8 +54,9 @@
| | ...
| | Given Lisp locator_set data is prepared
| | ... | ${nodes['DUT1']} | ${locator_set_num}
+| | And Enable lisp | ${nodes['DUT1']}
| | When Lisp locator_set data is set | ${nodes['DUT1']}
-| | Then Lisp locator_set is set correct | ${nodes['DUT1']}
+| | Then Lisp locator_set is set correctly | ${nodes['DUT1']}
| | When Delete all lisp locator_set from VPP | ${nodes['DUT1']}
| | Then Lisp locator_set should be unset | ${nodes['DUT1']}
@@ -60,8 +70,9 @@
| | ...
| | Given Lisp locator_set data use for test reset locator_set are prepared
| | ... | ${nodes['DUT1']} | ${locator_set_num}
+| | And Enable lisp | ${nodes['DUT1']}
| | When Lisp locator_set data is set | ${nodes['DUT1']}
-| | Then Lisp locator_set is set correct | ${nodes['DUT1']}
+| | Then Lisp locator_set is set correctly | ${nodes['DUT1']}
| | When Delete all lisp locator_set from VPP | ${nodes['DUT1']}
| | Then Lisp locator_set should be unset | ${nodes['DUT1']}
@@ -72,11 +83,11 @@
| | ... | Check if all eid IP address was unset
| | ... | from the VPP node.
| | ...
-| | Given Lisp eid address is prepared
-| | ... | ${nodes['DUT1']} | ${eid_ipv4_num} | ${eid_ipv6_num}
-| | When Lisp eid address is set | ${nodes['DUT1']}
-| | Then Lisp eid address is set correct to eid table | ${nodes['DUT1']}
-| | When Delete all lisp eid address from VPP | ${nodes['DUT1']}
+| | 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}
+| | When Delete all lisp eid address from VPP | ${nodes['DUT1']} | ${eid_table}
| | Then Lisp eid table should be empty | ${nodes['DUT1']}
| Vpp can add and delete lisp map resolver address
@@ -86,9 +97,10 @@
| | ... | Check if all map resolver address was unset
| | ... | from the VPP node.
| | ...
-| | Given Lisp map resolver address is prepared | ${nodes['DUT1']}
-| | ... | ${map_resolver_ipv4_num} | ${map_resolver_ipv6_num}
-| | When Lisp map resolver address is set | ${nodes['DUT1']}
-| | Then Lisp map resolver address is set correct | ${nodes['DUT1']}
+| | 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 Lip map resolver address should be empty | ${nodes['DUT1']}
diff --git a/tests/suites/lisp/lisp_dataplane_untagged.robot b/tests/suites/lisp/lisp_dataplane_untagged.robot
index bdf290955e..7e952250d5 100644
--- a/tests/suites/lisp/lisp_dataplane_untagged.robot
+++ b/tests/suites/lisp/lisp_dataplane_untagged.robot
@@ -175,3 +175,58 @@
| | ... | ${tg_node} | ${tg2_ip6o4} | ${tg1_ip6o4}
| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac}
| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac}
+
+| VPP can disable lisp and then re-enable it and everything should work
+| | [Documentation] | Test disable and enable Lisp.
+| | ... | Set Lisp and check if lisp work. Then disable Lisp
+| | ... | and check if it is disabled. At the end re-enable lisp
+| | ... | and check if Lisp is working.
+| | Given Path for 3-node testing is set
+| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
+| | And Interfaces in 3-node path are up
+| | 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}
+| | ... | ${dut2_node} | ${dut2_to_dut1}
+| | ... | ${dut2_to_dut1_ip4} | ${prefix4}
+| | ... | ${dut2_node} | ${dut2_to_tg}
+| | ... | ${dut2_to_tg_ip4} | ${prefix4}
+| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4}
+| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4}
+| | And Add Arp On Dut | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4}
+| | ... | ${tg_to_dut2_mac}
+| | And Add Arp On Dut | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4}
+| | ... | ${tg_to_dut1_mac}
+| | When Set up Lisp topology
+| | ... | ${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}
+| | Then Send Packet And Check Headers
+| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4}
+| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}
+| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac}
+| | And Send Packet And Check Headers
+| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4}
+| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac}
+| | When Disable Lisp | ${dut1_node}
+| | Then Send packet from Port to Port should failed
+| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4}
+| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}
+| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac}
+| | And Send packet from Port to Port should failed
+| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4}
+| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac}
+| | When Enable Lisp | ${dut1_node}
+| | Then Wait Until Keyword Succeeds | 2x | 5s | Send Packet And Check Headers
+| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4}
+| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac}
+| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac}
+| | And Wait Until Keyword Succeeds | 2x | 5s | Send Packet And Check Headers
+| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4}
+| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac}
+| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac}
diff --git a/tests/suites/lisp/resources/lisp_api_resources.py b/tests/suites/lisp/resources/lisp_api_resources.py
new file mode 100644
index 0000000000..b7278a21e9
--- /dev/null
+++ b/tests/suites/lisp/resources/lisp_api_resources.py
@@ -0,0 +1,52 @@
+# Copyright (c) 2016 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:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Test variables for Lisp API test suite."""
+
+"""Lisp status example test data."""
+lisp_status = [[{"gpe_status":"disabled",
+ "feature_status":"disabled"}],
+ [{"gpe_status":"enabled",
+ "feature_status":"enabled"}]]
+
+"""Example lisp local eid we want set to VPP
+and then check if is set correct."""
+eid_table = [{'eid address': '192.168.0.1',
+ 'eid prefix len': 24,
+ 'locator-set': 'ls1'},
+ {'eid address': '192.168.1.1',
+ 'eid prefix len': 24,
+ 'locator-set': 'ls1'},
+ {'eid address': '192.168.2.1',
+ 'eid prefix len': 24,
+ 'locator-set': 'ls1'},
+ {'eid address': '192.168.3.1',
+ 'eid prefix len': 24,
+ 'locator-set': 'ls1'},
+ {'eid address': '10:1::1',
+ 'eid prefix len': 32,
+ 'locator-set': 'ls1'},
+ {'eid address': '10:2::1',
+ 'eid prefix len': 32,
+ 'locator-set': 'ls1'},
+ {'eid address': '10:3::1',
+ 'eid prefix len': 32,
+ 'locator-set': 'ls1'}]
+
+"""Example lisp map resolvers data we want set to VPP
+and then check if is set correct."""
+map_resolver = [{'map resolver': '192.169.0.1'},
+ {'map resolver': '192.169.1.1'},
+ {'map resolver': '192.169.2.1'},
+ {'map resolver': '12:1::1'},
+ {'map resolver': '12:2::1'}]