aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries
diff options
context:
space:
mode:
authorselias <samelias@cisco.com>2016-12-09 18:35:11 +0100
committerSamuel Eliáš <samelias@cisco.com>2016-12-16 11:14:41 +0000
commitbd8ed88219178bb3b810d290b4ef9ba885baaf61 (patch)
tree23f323a4f92156a965cbb3917f13ea54c63cb5e2 /resources/libraries
parent1813672eb9f6988046bc65167235ae37b088298c (diff)
CSIT-484: HC Test: Lisp
- add Lisp test suite - add Lisp test data - add keywords and methods used in Lisp tests Change-Id: Ie7819e20cf48e7dac106d60cce316ce69ab75786 Signed-off-by: selias <samelias@cisco.com>
Diffstat (limited to 'resources/libraries')
-rw-r--r--resources/libraries/python/LispUtil.py14
-rw-r--r--resources/libraries/python/honeycomb/Lisp.py269
-rw-r--r--resources/libraries/robot/honeycomb/lisp.robot324
3 files changed, 607 insertions, 0 deletions
diff --git a/resources/libraries/python/LispUtil.py b/resources/libraries/python/LispUtil.py
index 2926d01dfb..82341d123e 100644
--- a/resources/libraries/python/LispUtil.py
+++ b/resources/libraries/python/LispUtil.py
@@ -89,6 +89,20 @@ class LispUtil(object):
return JsonParser().parse_data(vat.get_script_stdout())
@staticmethod
+ def vpp_show_lisp_pitr(node):
+ """Get Lisp PITR feature config from VPP node.
+
+ :param node: VPP node.
+ :type node: dict
+ :returns: Lisp PITR config data.
+ :rtype: dict
+ """
+
+ vat = VatExecutor()
+ vat.execute_script_json_out('lisp/show_lisp_pitr.vat', node)
+ return JsonParser().parse_data(vat.get_script_stdout())
+
+ @staticmethod
def lisp_should_be_equal(lisp_val1, lisp_val2):
"""Fail if the lisp values are not equal.
diff --git a/resources/libraries/python/honeycomb/Lisp.py b/resources/libraries/python/honeycomb/Lisp.py
new file mode 100644
index 0000000000..7ec259347c
--- /dev/null
+++ b/resources/libraries/python/honeycomb/Lisp.py
@@ -0,0 +1,269 @@
+# 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.
+
+"""This module implements keywords to manipulate Lisp data structures using
+Honeycomb REST API."""
+
+from resources.libraries.python.HTTPRequest import HTTPCodes
+from resources.libraries.python.honeycomb.HoneycombSetup import HoneycombError
+from resources.libraries.python.honeycomb.HoneycombUtil \
+ import HoneycombUtil as HcUtil
+from resources.libraries.python.honeycomb.HoneycombUtil \
+ import DataRepresentation
+
+
+class LispKeywords(object):
+ """Implementation of keywords which make it possible to:
+ - enable/disable Lisp feature
+ - configure Lisp mappings
+ - configure locator sets
+ - configure map resolver
+ - configure Lisp PITR feature
+ - read operational data for all of the above
+ """
+
+ def __init__(self):
+ """Initializer."""
+ pass
+
+ @staticmethod
+ def _set_lisp_properties(node, path, data=None):
+ """Set Lisp properties and check the return code.
+
+ :param node: Honeycomb node.
+ :param path: Path which is added to the base path to identify the data.
+ :param data: The new data to be set. If None, the item will be removed.
+ :type node: dict
+ :type path: str
+ :type data: dict
+ :returns: Content of response.
+ :rtype: bytearray
+ :raises HoneycombError: If the status code in response to PUT is not
+ 200 = OK or 201 = ACCEPTED.
+ """
+
+ if data:
+ status_code, resp = HcUtil.\
+ put_honeycomb_data(node, "config_lisp", data, path,
+ data_representation=DataRepresentation.JSON)
+ else:
+ status_code, resp = HcUtil.\
+ delete_honeycomb_data(node, "config_lisp", path)
+
+ if status_code not in (HTTPCodes.OK, HTTPCodes.ACCEPTED):
+ raise HoneycombError(
+ "Lisp configuration unsuccessful. "
+ "Status code: {0}.".format(status_code))
+ else:
+ return resp
+
+ @staticmethod
+ def get_lisp_operational_data(node):
+ """Retrieve Lisp properties from Honeycomb operational data.
+
+ :param node: Honeycomb node.
+ :type node: dict
+ :returns: List operational data.
+ :rtype: bytearray
+ """
+
+ status_code, resp = HcUtil.get_honeycomb_data(node, "oper_lisp")
+
+ if status_code != HTTPCodes.OK:
+ raise HoneycombError("Could not retrieve Lisp operational data."
+ "Status code: {0}.".format(status_code))
+ else:
+ # get rid of empty vni-table entry
+ resp["lisp-state"]["lisp-feature-data"]["eid-table"][
+ "vni-table"].remove(
+ {
+ "virtual-network-identifier": 0,
+ "vrf-subtable": {"table-id": 0}
+ }
+ )
+ return resp
+
+ @staticmethod
+ def set_lisp_state(node, state):
+ """Enable or disable the Lisp feature.
+
+ :param node: Honeycomb node.
+ :param state: Desired Lisp state, enable or disable.
+ :type node: dict
+ :type state: str
+ :returns: Content of response.
+ :rtype: bytearray
+ """
+
+ data = {
+ "lisp": {
+ "enable": True if state.lower() == "enable" else False
+ }
+ }
+
+ return LispKeywords._set_lisp_properties(node, '', data)
+
+ @staticmethod
+ def add_locator(node, interface, locator_set, priority=1, weight=1):
+ """Configure a new Lisp locator set.
+
+ :param node: Honeycomb node.
+ :param interface: An interface on the node.
+ :param locator_set: Name for the new locator set.
+ :param priority: Priority parameter for the locator.
+ :param weight. Weight parameter for the locator.
+ :type node: dict
+ :type interface: str
+ :type locator_set: str
+ :type priority: int
+ :type weight: int
+ :returns: Content of response.
+ :rtype: bytearray
+ """
+
+ path = "/lisp-feature-data/locator-sets/locator-set" \
+ "/{0}".format(locator_set)
+
+ data = {
+ "locator-set": {
+ "name": locator_set,
+ "interface": {
+ "interface-ref": interface,
+ "priority": priority,
+ "weight": weight
+ }
+ }
+ }
+
+ return LispKeywords._set_lisp_properties(node, path, data)
+
+ @staticmethod
+ def configure_lisp_mapping(node, data):
+ """Modify eid-table configuration to the data provided.
+
+ :param node: Honeycomb node.
+ :param data: Settings for the Lisp mappings.
+ :type node: dict
+ :type data: dict
+ :returns: Content of response.
+ :rtype: bytearray
+ """
+
+ path = "/lisp-feature-data/eid-table"
+ return LispKeywords._set_lisp_properties(node, path, data)
+
+ @staticmethod
+ def add_lisp_adjacency(node, vni_id, map_name, adjacency_name, data):
+ """Add an adjacency to an existing Lisp mapping.
+
+ :param node: Honeycomb node.
+ :param vni_id: vni_id of the mapping.
+ :param map_name: Name of the mapping.
+ :param adjacency_name: Name for the new adjacency.
+ :param data: Adjacency settings.
+ :type node: dict
+ :type vni_id: int
+ :type map_name: str
+ :type adjacency_name: str
+ :type data: dict
+ :returns: Content of response.
+ :rtype: bytearray
+ """
+
+ path = (
+ "/lisp-feature-data/eid-table/vni-table/{vni_id}/"
+ "vrf-subtable/remote-mappings/remote-mapping/{map_name}/"
+ "adjacencies/adjacency/{adjacency_name}"
+ )
+ path = path.format(
+ vni_id=vni_id,
+ map_name=map_name,
+ adjacency_name=adjacency_name
+ )
+
+ return LispKeywords._set_lisp_properties(node, path, data)
+
+ @staticmethod
+ def add_map_resolver(node, ip_address):
+ """Configure map resolver with the specified IP address.
+
+ :param node: Honeycomb node.
+ :param ip_address: IP address to configure map resolver with.
+ :type node: dict
+ :type ip_address: str
+ :returns: Content of response.
+ :rtype: bytearray
+ """
+
+ path = "/lisp-feature-data/map-resolvers/map-resolver/{0}".format(
+ ip_address)
+
+ data = {
+ "map-resolver": {
+ "ip-address": ip_address
+ }
+ }
+
+ return LispKeywords._set_lisp_properties(node, path, data)
+
+ @staticmethod
+ def delete_map_resolver(node):
+ """Delete an existing map resolver.
+
+ :param node: Honeycomb node
+ :type node: dict
+ :returns: Content of response
+ :rtype: bytearray
+ """
+
+ path = "/lisp-feature-data/map-resolvers"
+
+ return LispKeywords._set_lisp_properties(node, path)
+
+ @staticmethod
+ def configure_pitr(node, locator_set=None):
+ """Configure PITR feature with the specified locator set. If not locator
+ set is specified, disable PITR instead.
+
+ :param node: Honeycomb node.
+ :param locator_set: Name of a locator set. Optional.
+ :type node: dict
+ :type locator_set: str
+ :returns: Content of response.
+ :rtype: bytearray
+ """
+
+ path = "/lisp-feature-data/pitr-cfg"
+
+ if locator_set:
+ data = {
+ "pitr-cfg": {
+ "locator-set": locator_set
+ }
+ }
+ else:
+ data = None
+
+ return LispKeywords._set_lisp_properties(node, path, data)
+
+ @staticmethod
+ def disable_lisp(node):
+ """Remove all Lisp settings on the node.
+
+ :param node: Honeycomb node.
+ :type node: dict
+ :returns: Content of response.
+ :rtype: bytearray
+ """
+
+ return LispKeywords._set_lisp_properties(node, "")
diff --git a/resources/libraries/robot/honeycomb/lisp.robot b/resources/libraries/robot/honeycomb/lisp.robot
new file mode 100644
index 0000000000..f490769c6f
--- /dev/null
+++ b/resources/libraries/robot/honeycomb/lisp.robot
@@ -0,0 +1,324 @@
+# 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.
+
+*** Settings ***
+| Library | resources.libraries.python.honeycomb.Lisp.LispKeywords
+| Library | resources.libraries.python.LispUtil
+| Documentation | Keywords used to test Honeycomb Lisp features.
+
+*** Keywords ***
+| Honeycomb enables Lisp
+| | [Documentation] | Uses Honeycomb API to enable Lisp.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb enables Lisp \| ${nodes['DUT1']} \|
+| | [Arguments] | ${node}
+| | ...
+| | Set Lisp state | ${node} | enable
+
+| Honeycomb adds locator set
+| | [Documentation] | Uses Honeycomb API to enable Lisp.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - interface - Name of an interface on the node. Type: string
+| | ... | - locator_set - Name for the new locator set. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb enables Lisp \| ${nodes['DUT1']} \| GigabitEthernet0/8/0\
+| | ... | \| loc_01 \|
+| | [Arguments] | ${node} | ${interface} | ${locator_set}
+| | Add locator | ${node} | ${interface} | ${locator_set}
+
+| Honeycomb adds Lisp mapping
+| | [Documentation] | Uses Honeycomb API to configure a Lisp mapping.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - data - Lisp settings to use. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb adds Lisp mapping \| ${nodes['DUT1']} \| ${data} \|
+| | [Arguments] | ${node} | ${data}
+| | Configure lisp mapping | ${node} | ${data}
+
+| Honeycomb removes all Lisp mappings
+| | [Documentation] | Uses Honeycomb API to clear the eid-table.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb removes all Lisp mappings \| ${nodes['DUT1']} \|
+| | [Arguments] | ${node}
+| | Configure lisp mapping | ${node} | ${NONE}
+
+| Lisp should not be configured
+| | [Documentation] | Retrieves Lisp configuration from Honeycomb operational\
+| | ... | data, and expects an empty dictionary.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Lisp should not be configured \| ${nodes['DUT1']} \|
+| | [Arguments] | ${node}
+| | ...
+| | ${data}= | Get Lisp operational data | ${node}
+| | Should be equal as strings | ${data['lisp-state']['enable']} | False
+| | ${data}= | Set Variable | ${data['lisp-state']['lisp-feature-data']}
+| | Should match | ${data['pitr-cfg']['locator-set']} | N/A
+| | Variable should not exist | ${data['eid-table']['vni-table'][0]}
+
+| Lisp state From Honeycomb Should Be
+| | [Documentation] | Retrieves Lisp state from Honeycomb operational\
+| | ... | data, and compares Lisp state with expected value.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - state - Expected Lisp state. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Lisp state From Honeycomb Should Be \| ${nodes['DUT1']} \
+| | ... | \| enabled \|
+| | [Arguments] | ${node} | ${state}
+| | ${data}= | Get Lisp operational data | ${node}
+| | Run keyword if | $state == 'enabled'
+| | ... | Should be equal as strings
+| | ... | ${data['lisp-state']['enable']} | ${True}
+| | Run keyword if | $state == 'disabled'
+| | ... | Should be equal as strings
+| | ... | ${data['lisp-state']['enable']} | ${False}
+
+| Lisp state From VAT Should Be
+| | [Documentation] | Retrieves Lisp state from VAT,\
+| | ... | and compares Lisp state with expected value.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - state - Expected Lisp state. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Lisp state From VAT Should Be \| ${nodes['DUT1']} \| enabled \|
+| | [Arguments] | ${node} | ${state}
+| | ${status}= | VPP show Lisp State | ${node}
+| | Should match | ${status['feature_status']} | ${state}
+
+| Lisp mapping From Honeycomb Should Be
+| | [Documentation] | Retrieves Lisp mapping from Honeycomb operational\
+| | ... | data, and compares with expected data.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - settings - Expected Lisp mapping data. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Lisp mapping From Honeycomb Should Be \| ${nodes['DUT1']} \
+| | ... | \| ${settings} \|
+| | [Arguments] | ${node} | ${settings}
+| | ${data}= | Get Lisp operational data | ${node}
+| | ${data}= | Set Variable | ${data['lisp-state']['lisp-feature-data']}
+| | ${data}= | Set Variable | ${data['eid-table']['vni-table'][0]}
+| | Compare data structures | ${data} | ${settings}
+
+| Lisp mapping From VAT Should Be
+| | [Documentation] | Retrieves Lisp mapping from VAT,\
+| | ... | and compares with expected data.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - settings - Expected Lisp mapping data. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Lisp mapping From VAT Should Be \| ${nodes['DUT1']} \
+| | ... | \| ${settings} \|
+| | [Arguments] | ${node} | ${settings}
+| | ${data}= | VPP show Lisp eid table | ${node}
+| | Compare data structures | ${data[0]} | ${settings}
+
+| Lisp mappings from Honeycomb should not exist
+| | [Documentation] | Retrieves Lisp mappings from operational\
+| | ... | data, and expects to find none.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Lisp mappings from Honeycomb should not exist \
+| | ... | \| ${nodes['DUT1']} \|
+| | [Arguments] | ${node}
+| | ${data}= | Get Lisp operational data | ${node}
+| | ${data}= | Set Variable | ${data['lisp-state']['lisp-feature-data']}
+| | Should be empty | ${data['eid-table']['vni-table']}
+
+| Lisp mappings from VAT should not exist
+| | [Documentation] | Retrieves Lisp mappings from VAT,\
+| | ... | and expects to receive an empty list.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Lisp mappings from VAT should not exist \| ${nodes['DUT1']} \|
+| | [Arguments] | ${node}
+| | ${data}= | VPP show Lisp eid table | ${node}
+| | Should be empty | ${data}
+
+| Locator set from Honeycomb should be
+| | [Documentation] | Retrieves Lisp locator set from Honeycomb operational\
+| | ... | data, and compares with expected data.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - interface - Interface that should be referenced by locator.\
+| | ... | Type: dictionary
+| | ... | - locator_set - Expected locator set name. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Locator set From Honeycomb Should Be \| ${nodes['DUT1']} \
+| | ... | \| GigabitEthernet0/8/0 \| loc01 \|
+| | [Arguments] | ${node} | ${interface} | ${locator_set}
+| | ${data}= | Get Lisp operational data | ${node}
+| | ${loc_data}= | Set Variable
+| | ... | ${data['lisp-state']['lisp-feature-data']['locator-sets']}
+| | Should be equal
+| | ... | ${loc_data['locator-set'][0]['name']}
+| | ... | ${locator_set}
+| | Should be equal
+| | ... | ${loc_data['locator-set'][0]['interface'][0]['interface-ref']}
+| | ... | ${interface}
+
+| Honeycomb adds Lisp adjacency
+| | [Documentation] | Uses Honeycomb API to configure Lisp adjacency.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - vni - Virtual network identifier number. Type: integer
+| | ... | - map - Name of an existing remote mapping. Type: string
+| | ... | - adjacency - Name for the new adjacency. Type: string
+| | ... | - data - Lisp adjacency settings to use. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb adds Lisp adjacency \| ${nodes['DUT1']} \| ${1} \| map1\
+| | ... | \| adj1 \| ${data} \|
+| | [Arguments] | ${node} | ${vni} | ${map} | ${adjacency} | ${data}
+| | Add Lisp adjacency
+| | ... | ${node} | ${vni} | ${map} | ${adjacency} | ${data}
+
+| Honeycomb adds Lisp Map resolver
+| | [Documentation] | Uses Honeycomb API to configure Lisp map resolver.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - ip_address - IP address for the map resolver. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb adds Lisp Map resolver \| ${nodes['DUT1']} \
+| | ... | \| 192.168.0.2 \|
+| | [Arguments] | ${node} | ${ip_address}
+| | Add map resolver | ${node} | ${ip_address}
+
+| Map resolver from Honeycomb should be
+| | [Documentation] | Retrieves Lisp map resolver from Honeycomb operational\
+| | ... | data, and compares with expected data.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - ip_address - IP address that should be referenced in map resolver.\
+| | ... | Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Map resolver From Honeycomb Should Be \| ${nodes['DUT1']} \
+| | ... | \| 192.168.1.2 \|
+| | [Arguments] | ${node} | ${ip_address}
+| | ${data}= | Get Lisp operational data | ${node}
+| | ${data}= | Set Variable | ${data['lisp-state']['lisp-feature-data']}
+| | ${data}= | Set Variable | ${data['map-resolvers']['map-resolver'][0]}
+| | Should be equal | ${data['ip-address']} | ${ip_address}
+
+| Map resolver from VAT should be
+| | [Documentation] | Retrieves Lisp mapping from VAT,\
+| | ... | and compares with expected data.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - ip_address - IP address that should be referenced in map resolver.\
+| | ... | Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Map resolver From VAT Should Be \| ${nodes['DUT1']} \
+| | ... | \| 192.168.1.2 \|
+| | [Arguments] | ${node} | ${ip_address}
+| | ${data}= | Vpp show Lisp map resolver | ${node}
+| | Should be equal | ${data[0]['map resolver']} | ${ip_address}
+
+| Honeycomb enables Lisp PITR feature
+| | [Documentation] | Uses Honeycomb API to configure Lisp PITR feature.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - locator_set - Name of an existing locator set. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb enables Lisp PITR feature \| ${nodes['DUT1']} \| loc1 \|
+| | [Arguments] | ${node} | ${locator_set}
+| | Configure PITR | ${node} | ${locator_set}
+
+| PITR config from Honeycomb should be
+| | [Documentation] | Retrieves PITR config from Honeycomb operational\
+| | ... | data, and compares with expected data.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - locator_set - Name of locator set that should be referenced\
+| | ... | in PITR config. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| PITR config from Honeycomb should be \| ${nodes['DUT1']} \
+| | ... | \| loc01 \|
+| | [Arguments] | ${node} | ${locator_set}
+| | ${data}= | Get Lisp operational data | ${node}
+| | ${data}= | Set Variable | ${data['lisp-state']['lisp-feature-data']}
+| | ${data}= | Set Variable | ${data['pitr-cfg']}
+| | Should be equal | ${data['locator-set']} | ${locator_set}
+
+| PITR config from VAT should be
+| | [Documentation] | Retrieves PITR config from VAT,\
+| | ... | and compares with expected data.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ... | - locator_set - Name of locator set that should be referenced\
+| | ... | in PITR config. Type: string
+| | ...
+| | ... | *Example:*
+| | ... | \| PITR config from VAT should be \| ${nodes['DUT1']} \
+| | ... | \| loc01 \|
+| | [Arguments] | ${node} | ${locator_set}
+| | ${data}= | VPP show Lisp PITR | ${node}
+| | Should be equal | ${data['status']} | enabled
+| | Should be equal | ${data['locator_set']} | ${locator_set}
+
+| Honeycomb disables all Lisp features
+| | [Documentation] | Uses Honeycomb API to remove all Lisp configuration.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - Information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ... | \| Honeycomb disables all Lisp features \| ${nodes['DUT1']} \|
+| | [Arguments] | ${node}
+| | Disable Lisp | ${node} \ No newline at end of file