aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot/lisp
diff options
context:
space:
mode:
authorAndrej Kozemcak <akozemca@cisco.com>2016-05-04 15:39:38 +0200
committerAndrej Kozemcak <akozemca@cisco.com>2016-06-01 10:18:36 +0200
commitdeb6fdb6a59f5c02b8cacaa9c0e6043562e53646 (patch)
tree3d926de02f37f00cc100c46b4b277115cc2becb2 /resources/libraries/robot/lisp
parent38b0e2f738a81decc9d32e4d6cac678506fd090b (diff)
CSIT-125: Add test for lisp remote static mapping
Test Lisp functionality and rename lisp file Testing this topology: - IPv4 lisp topology - IPv6 lisp topology - IPv4 over IPv6 - IPv6 over IPv4 Change-Id: Ie3439ca802f1c8ae82a1dfcfdebe579f9dc47089 Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
Diffstat (limited to 'resources/libraries/robot/lisp')
-rw-r--r--resources/libraries/robot/lisp/lisp_api.robot348
-rw-r--r--resources/libraries/robot/lisp/lisp_static_mapping.robot88
2 files changed, 436 insertions, 0 deletions
diff --git a/resources/libraries/robot/lisp/lisp_api.robot b/resources/libraries/robot/lisp/lisp_api.robot
new file mode 100644
index 0000000000..43471a9d86
--- /dev/null
+++ b/resources/libraries/robot/lisp/lisp_api.robot
@@ -0,0 +1,348 @@
+# 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 ***
+| Resource | resources/libraries/robot/interfaces.robot
+| Library | resources.libraries.python.NodePath
+| Library | resources.libraries.python.LispSetup.LispSetup
+| Library | resources.libraries.python.LispUtil
+
+*** Keywords ***
+
+| Lisp locator_set data is prepared
+| | [Documentation] | Generate lisp locator_set data for test
+| | ... | 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
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | _NOTE:_ This KW sets following test case variables:
+| | ... | - ${locator_set_values} - New generated locator_set data.
+| | ...
+| | ... | *Example:*
+| | ... | \| Given Lisp locator_set data is prepared \| ${nodes['DUT1']} \
+| | ... | \| ${locator_set_number} \|
+| | ...
+| | [Arguments] | ${dut_node} | ${locator_set_number}
+| | ${locator_set_values}= | Generate Lisp Locator Set Data |
+| | ... | ${dut_node} | ${locator_set_number}
+| | Set Test Variable | ${locator_set_values}
+
+| Lisp locator_set data is set
+| | [Documentation] | Set the lisp locator_set and locator on the VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${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.
+| | ...
+| | ... | *Example:*
+| | ... | \| When Lisp locator_set data is set \| ${nodes['DUT1']} \|
+| | ...
+| | [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.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${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.
+| | ...
+| | ... | *Example:*
+| | ... | \| Then Lisp locator_set is set correct \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | ${show_locator_set}= | Vpp Show Lisp Locator Set | ${dut_node}
+| | Lisp Locator S Should Be Equal
+| | ... | ${locator_set_values} | ${show_locator_set}
+
+| Delete all lisp locator_set from VPP
+| | [Documentation] | Delete all lisp locator_set on the VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${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.
+| | ...
+| | ... | *Example:*
+| | ... | \| When Delete all lisp locator_set from VPP \
+| | ... | \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | Vpp Unset Lisp Locator Set | ${dut_node} | ${locator_set_values}
+
+| Lisp locator_set should be unset
+| | [Documentation] | Test if all locator_set are unset from VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| Then Lisp locator_set should be unset \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | ${show_locator_set}= | Vpp Show Lisp Locator Set | ${dut_node}
+| | Lisp Is Empty | ${show_locator_set}
+
+| Lisp locator_set data use for test reset locator_set are prepared
+| | [Documentation] | Generate lisp special type of locator_set data.
+| | ... | 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
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | _NOTE:_ This KW sets following test case variables:
+| | ... | - ${locator_set_values} - New generate locator_set data.
+| | ...
+| | ... | *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 Lisp Locator Set Reset Data |
+| | ... | ${dut_node} | ${locator_set_number}
+| | Set Test Variable | ${locator_set_values}
+
+| Lisp eid address is prepared
+| | [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
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | _NOTE:_ This KW sets following test case variables:
+| | ... | - ${set_eid} - New generate eid data.
+| | ...
+| | ... | *Example:*
+| | ... | \| Given Lisp eid address is prepared \| ${nodes['DUT1']} \
+| | ... | \| ${eid_ipv4_num} \| ${eid_ipv6_num} \|
+| | ...
+| | [Arguments] | ${dut_node} | ${eid_ipv4_num} | ${eid_ipv6_num}
+| | ${set_eid} = | Generate Lisp Local Eid Data
+| | ... | ${eid_ipv4_num} | ${eid_ipv6_num}
+| | Set Test Variable | ${set_eid}
+
+| Lisp eid address is set
+| | [Documentation] | Set the lisp eid address on the VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ...
+| | ... | *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']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | 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.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ...
+| | ... | *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.
+| | ...
+| | ... | *Example:*
+| | ... | \| Then Lisp eid address is set correct to eid table \
+| | ... | \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | ${show_eid}= | Vpp Show Lisp Local Eid Table | ${dut_node}
+| | Lisp Should Be Equal | ${set_eid} | ${show_eid}
+
+| Delete all lisp eid address from VPP
+| | [Documentation] | Delete all lisp eid address from the VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ...
+| | ... | *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']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | 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
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| Then Lisp eid table should be empty \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | ${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
+| | ...
+| | ... | *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']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | 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
+| | ... | on the VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ...
+| | ... | *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']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | ${show_map_resolver}= | Vpp Show Lisp Map Resolver | ${dut_node}
+| | Lisp Should Be Equal | ${set_map_resolver} | ${show_map_resolver}
+
+| Delete all lisp map resolver address from VPP
+| | [Documentation] | Delete all lisp map resolver address on the VPP node.
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${dut_node} - DUT node. Type: dictionary
+| | ...
+| | ... | *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']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | 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
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| Then Lip map resolver address should be empty \
+| | ... | \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${dut_node}
+| | ${show_map_resolver}= | Vpp Show Lisp Map Resolver | ${dut_node}
+| | Lisp Is Empty | ${show_map_resolver}
diff --git a/resources/libraries/robot/lisp/lisp_static_mapping.robot b/resources/libraries/robot/lisp/lisp_static_mapping.robot
new file mode 100644
index 0000000000..8d6bf311d0
--- /dev/null
+++ b/resources/libraries/robot/lisp/lisp_static_mapping.robot
@@ -0,0 +1,88 @@
+# 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 ***
+| Documentation | Lisp State mapping suite keywords
+| Resource | resources/libraries/robot/interfaces.robot
+| Library | resources.libraries.python.NodePath
+| 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
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ... | \| 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} \|
+| | ...
+| | [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_int_index}= | Run Keyword If | ${dut1_int_index} is None
+| | | ... | Get Interface Sw Index | ${dut1_node}
+| | | ... | ${dut1_int_name}
+| | | ... | ELSE | Set Variable | ${dut1_int_index}
+| | ${dut2_int_index}= | Run Keyword If | ${dut2_int_index} is None
+| | | ... | Get Interface Sw Index | ${dut2_node}
+| | | ... | ${dut2_int_name}
+| | | ... | ELSE | Set Variable | ${dut2_int_index}
+| | Vpp lisp state | ${dut1_node} | enable
+| | 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']}
+| | ... | ${locator_set['weight']}
+| | Vpp Add Lisp Local Eid | ${dut1_node} | ${dut1_eid['locator_name']} | ${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 Lisp State | ${dut2_node} | enable
+| | 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']}
+| | ... | ${locator_set['weight']}
+| | Vpp Add Lisp Local Eid | ${dut2_node} | ${dut2_eid['locator_name']} | ${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