blob: 55dab37d1070e6ca391f4bbef20431b1e3f4a052 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
# Copyright (c) 2019 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.IPUtil
| Library | resources.libraries.python.LispSetup.LispAdjacency
| Library | resources.libraries.python.LispSetup.LispLocator
| Library | resources.libraries.python.LispSetup.LispLocalEid
| Library | resources.libraries.python.LispSetup.LispLocatorSet
| Library | resources.libraries.python.LispSetup.LispRemoteMapping
| ...
| Resource | resources/libraries/robot/overlay/lisp_api.robot
| ...
| Documentation | Lisp static adjacency suite keywords
*** Keywords ***
| Configure LISP topology in 3-node circular topology
| | [Documentation] | Set up Lisp static adjacency 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: dictionary
| | ... | - dut1_eid - Dut1 node eid address. Type: dictionary
| | ... | - dut2_eid - Dut2 node eid address. Type: dictionary
| | ... | - dut1_static_adjacency - Dut1 static adjacency. Type: dictionary
| | ... | - dut2_static_adjacency - Dut2 static address. Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
| | ... | *Example:*
| | ... | \| Configure LISP topology in 3-node circular topology \
| | ... | \| ${dut1_node} \| ${interface_name} \| None \
| | ... | \| ${dut2_node} \| ${interface_name} \| None \
| | ... | \| ${locator_set} \| ${dut1_eid} \| ${dut2_eid} \
| | ... | \| ${dut1_static_adjacency} \| ${dut2_static_adjacency} \|
| | ...
| | [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_adjacency} | ${dut2_static_adjacency}
| | ${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}
| | 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']}
| | ... | ${locator_set['weight']}
| | Vpp Add Lisp Local Eid | ${dut1_node} | ${dut1_eid['locator_name']}
| | ... | ${dut1_eid['vni']} | ${dut1_eid['eid']} | ${dut1_eid['prefix']}
| | Vpp Add Lisp Remote Mapping | ${dut1_node} | ${dut1_static_adjacency['vni']}
| | ... | ${dut1_static_adjacency['deid']}
| | ... | ${dut1_static_adjacency['prefix']}
| | ... | ${dut1_static_adjacency['seid']}
| | ... | ${dut1_static_adjacency['prefix']}
| | ... | ${dut1_static_adjacency['rloc']}
| | Vpp Add Lisp Adjacency | ${dut1_node} | ${dut1_static_adjacency['vni']}
| | ... | ${dut1_static_adjacency['deid']}
| | ... | ${dut1_static_adjacency['prefix']}
| | ... | ${dut1_static_adjacency['seid']}
| | ... | ${dut1_static_adjacency['prefix']}
| | 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']}
| | ... | ${locator_set['weight']}
| | Vpp Add Lisp Local Eid | ${dut2_node} | ${dut2_eid['locator_name']}
| | ... | ${dut2_eid['vni']} | ${dut2_eid['eid']} | ${dut2_eid['prefix']}
| | Vpp Add Lisp Remote Mapping | ${dut2_node} | ${dut2_static_adjacency['vni']}
| | ... | ${dut2_static_adjacency['deid']}
| | ... | ${dut2_static_adjacency['prefix']}
| | ... | ${dut2_static_adjacency['seid']}
| | ... | ${dut2_static_adjacency['prefix']}
| | ... | ${dut2_static_adjacency['rloc']}
| | Vpp Add Lisp Adjacency | ${dut2_node} | ${dut2_static_adjacency['vni']}
| | ... | ${dut2_static_adjacency['deid']}
| | ... | ${dut2_static_adjacency['prefix']}
| | ... | ${dut2_static_adjacency['seid']}
| | ... | ${dut2_static_adjacency['prefix']}
| Change LISP Configuration
| | [Documentation] | Change configuration of the Lisp protocol.
| | ...
| | ... | *Arguments:*
| | ... | - dut1_node - DUT1 node. Type: dictionary
| | ... | - dut2_node - DUT2 node. Type: dictionary
| | ... | - dut1_to_dut2 - DUT1 towards DUT2 interface name. Type: string
| | ... | - dut2_to_dut1 - DUT2 towards DUT1 interface name. Type: string
| | ... | - dut1_to_dut2_mac - DUT1 towards DUT2 interface mac address.
| | ... | Type: string
| | ... | - dut2_to_dut1_mac - DUT2 towards DUT1 interface mac address.
| | ... | Type: string
| | ... | - new_dut1_ip - New DUT1 towards DUT2 interface IP address.
| | ... | Type: string
| | ... | - new_dut2_ip - New DUT2 towards DUT1 interface IP address.
| | ... | Type: string
| | ... | - prefix - Prefix of the DUT nodes. Type: integer
| | ... | - old_dut1_static_adjacency - Old DUT1 static adjacency.
| | ... | Type: dictionary
| | ... | - new_dut1_static_adjacency - New DUT1 static adjacency.
| | ... | Type: dictionary
| | ...
| | ... | *Return:*
| | ... | - No value returned
| | ...
| | ... | *Example:*
| | ... | \| Change LISP Configuration \| ${dut1_node} \| ${dut2_node} \
| | ... | \| ${dut1_to_dut2} \| ${dut2_to_dut1} | "08:00:27:20:e0:0d" \
| | ... | \| "08:00:27:b1:94:b1" \| "6.3.0.1" \| "6.3.0.20" \| "24" \
| | ... | \| ${old_dut1_static_adjacency} \| ${new_dut1_static_adjacency} \|
| | ...
| | [Arguments] | ${dut1_node} | ${dut2_node} | ${dut1_to_dut2}
| | ... | ${dut2_to_dut1} | ${dut1_to_dut2_mac} | ${dut2_to_dut1_mac}
| | ... | ${new_dut1_ip} | ${new_dut2_ip} | ${prefix}
| | ... | ${old_dut1_static_adjacency} | ${new_dut1_static_adjacency}
| | Flush IP Addresses | ${dut2_node} | ${dut2_to_dut1}
| | Vpp Del Lisp Remote Mapping | ${dut1_node}
| | ... | ${old_dut1_static_adjacency['vni']}
| | ... | ${old_dut1_static_adjacency['deid']}
| | ... | ${old_dut1_static_adjacency['prefix']}
| | ... | ${old_dut1_static_adjacency['seid']}
| | ... | ${old_dut1_static_adjacency['prefix']}
| | ... | ${old_dut1_static_adjacency['rloc']}
| | Vpp Del Lisp Adjacency | ${dut1_node}
| | ... | ${old_dut1_static_adjacency['vni']}
| | ... | ${old_dut1_static_adjacency['deid']}
| | ... | ${old_dut1_static_adjacency['prefix']}
| | ... | ${old_dut1_static_adjacency['seid']}
| | ... | ${old_dut1_static_adjacency['prefix']}
| | VPP Interface Set IP Address | ${dut2_node} | ${dut2_to_dut1}
| | ... | ${new_dut2_ip} | ${prefix}
| | VPP Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${new_dut2_ip}
| | ... | ${dut2_to_dut1_mac}
| | VPP Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${new_dut1_ip}
| | ... | ${dut1_to_dut2_mac}
| | Vpp Add Lisp Remote Mapping | ${dut1_node}
| | ... | ${new_dut1_static_adjacency['vni']}
| | ... | ${new_dut1_static_adjacency['deid']}
| | ... | ${new_dut1_static_adjacency['prefix']}
| | ... | ${new_dut1_static_adjacency['seid']}
| | ... | ${new_dut1_static_adjacency['prefix']}
| | ... | ${new_dut1_static_adjacency['rloc']}
| | Vpp Add Lisp Adjacency | ${dut1_node}
| | ... | ${new_dut1_static_adjacency['vni']}
| | ... | ${new_dut1_static_adjacency['deid']}
| | ... | ${new_dut1_static_adjacency['prefix']}
| | ... | ${new_dut1_static_adjacency['seid']}
| | ... | ${new_dut1_static_adjacency['prefix']}
|