aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot/ip/geneve.robot
blob: 9870639c415010c000140cb59c582653dda099e4 (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
# Copyright (c) 2021 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.GeneveUtil
|
| Documentation | Keywords for GENEVE tunnels in VPP.

*** Keywords ***
| Initialize GENEVE L3 mode in circular topology
| | [Documentation] | Initialization of GENEVE L3 mode on DUT1.
| |
| | [Arguments] | ${with_bypass}=${False}
| |
| | Set interfaces in path up
| |
| | VPP Interface Set IP Address
| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut1_if1_ip4} | 24
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_if1_ip4} | ${TG_pf1_mac}[0]
| | VPP Interface Set IP Address
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut1_if2_ip4} | 24
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip4} | ${TG_pf2_mac}[0]
| | ${next_index}= | VPP Add Graph Node Next
| | ... | ${dut1} | geneve4-input | ethernet-input
| |
| | ${src_ip_int} = | IP To Int | ${gen_tunnel.src_ip}
| | ${dst_ip_int} = | IP To Int | ${gen_tunnel.dst_ip}
| | ${if_ip_int} = | IP To Int | ${gen_tunnel.if_ip}
| |
| | FOR | ${nr} | IN RANGE | 0 | ${n_tunnels}
| | | ${src_ip} = | Int To IP | ${${src_ip_int} + ${nr} * 256}
| | | ${dst_ip} = | Int To IP | ${${dst_ip_int} + ${nr} * 256}
| | | ${if_ip} = | Int To IP | ${${if_ip_int} + ${nr} * 256}
| | | Vpp Route Add
| | | ... | ${dut1} | ${src_ip} | ${gen_tunnel.ip_mask}
| | | ... | gateway=${tg_if1_ip4} | interface=${DUT1_${int}1}[0]
| | | ${tunnel_sw_index}= | Add Geneve Tunnel
| | | ... | ${dut1} | ${gen_tunnel.local} | ${gen_tunnel.remote}
| | | ... | ${${gen_tunnel.vni} + ${nr}} | l3_mode=${True}
| | | ... | next_index=${next_index}
| | | ${tunnel_if_key}= | Get Interface By SW Index
| | | ... | ${dut1} | ${tunnel_sw_index}
| | | ${tunnel_if_mac}= | Get Interface MAC
| | | ... | ${dut1} | ${tunnel_if_key}
| | | VPP Interface Set IP Address
| | | ... | ${dut1} | ${tunnel_if_key} | ${if_ip} | 24
| | | VPP Add IP Neighbor
| | | ... | ${dut1} | ${tunnel_if_key} | ${dst_ip} | ${TG_pf2_mac}[0]
| | | Vpp Route Add
| | | ... | ${dut1} | ${dst_ip} | ${gen_tunnel.ip_mask}
| | | ... | interface=${tunnel_if_key}
| | | Vpp Route Add
| | | ... | ${dut1} | ${gen_tunnel.remote} | 32
| | | ... | gateway=${tg_if2_ip4} | interface=${DUT1_${int}2}[0]
| | | VPP Add IP Neighbor
| | | ... | ${dut1} | ${tunnel_if_key} | ${gen_tunnel.local} | ${tunnel_if_mac}
| | | Vpp Route Add
| | | ... | ${dut1} | ${gen_tunnel.local} | 32 | gateway=${if_ip}
| | | Set Interface State
| | | ... | ${dut1} | ${tunnel_if_key} | up
| | END
| | All VPP Interfaces Ready Wait | ${nodes} | retries=${60}