2 Documentation Functional test for ipv6 connection with bgp.
4 ... Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6 ... This program and the accompanying materials are made available under the
7 ... terms of the Eclipse Public License v1.0 which accompanies this distribution,
8 ... and is available at http://www.eclipse.org/legal/epl-v10.html
10 ... This suite tests simple connection between one ibgp peer (exabgp) and Odl.
11 ... Peer is configured with ipv6, and exabgp connectes to odl via ipv6.
12 ... Exabgp sends one ipv6 unicast route, which presence is verified in
13 ... example-ipv6-topology. Tests this connection multiple times, with
14 ... different ipv6 accepted formats, e.g. (::1, 0:0:0:0:0:0:0:1, full text)
15 ... This suite also tests a combination of afi-safis on odl and exabgp.
16 ... ipv6 route injection is carried out from odl to the ibgp peer without
17 ... ipv6 family enabled on the peer device and checked for exceptions
18 Suite Setup Start_Suite
19 Suite Teardown Stop_Suite
20 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
21 Library RequestsLibrary
23 Resource ../../../libraries/BGPcliKeywords.robot
24 Resource ../../../libraries/ExaBgpLib.robot
25 Resource ../../../libraries/Genius.robot
26 Resource ../../../libraries/SetupUtils.robot
27 Resource ../../../libraries/SSHKeywords.robot
28 Resource ../../../libraries/TemplatedRequests.robot
29 Resource ../../../libraries/Utils.robot
30 Resource ../../../variables/Variables.robot
31 Resource ../../../libraries/KarafKeywords.robot
34 ${BGP_VAR_FOLDER} ${CURDIR}/../../../variables/bgpfunctional/ipv6
35 ${CONFIG_SESSION} config-session
36 ${CONTROLLER_IPV6} ::1
38 ${EXABGP_ID_2} 127.0.0.1
39 ${EXABGP_CFG} exaipv6.cfg
40 ${EXABGP_LOG} exaipv6.log
41 ${EXABGP2_CFG} exaipv4.cfg
42 ${EXABGP2_LOG} exaipv4.log
43 ${EXABGP3_CFG} exabgp_graceful_restart.cfg
44 ${EXABGP3_LOG} exabgp_graceful_restart.log
46 ${CONTROLLER_IPV4} ${ODL_SYSTEM_IP}
47 ${IPV6_IP} 2607:f0d0:1002:0011:0000:0000:0000:0002
48 ${IPV6_IP_2} 2607:f0d0:1002:11:0:0:0:2
49 ${IPV6_IP_3} 2607:f0d0:1002:11::2
50 ${IPV6_IP_GW} 2607:f0d0:1002:0011:0000:0000:0000:0001
52 ${RIB_INSTANCE} example-bgp-rib
55 Reconfigure_ODL_To_Accept_Connections
56 [Documentation] Configure BGP peer modules with initiate-connection set to false with short ipv6 address.
57 &{mapping} Create Dictionary IP=${IPV6_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
58 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
59 TemplatedRequests.Put_As_Xml_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
62 [Documentation] Start exabgp with
64 ${cmd} BuiltIn.Set_Variable ${EXABGP_CFG} > ${EXABGP_LOG}
65 ExaBgpLib.Start_ExaBgp_And_Verify_Connected ${cmd} ${CONFIG_SESSION} ${EXABGP_ID}
67 Verify_Ipv6_Topology_Filled
68 [Documentation] Verifies that example-ipv6-topology is filled after starting exabgp.
70 Verify_Rib_Status_Filled
72 Delete_Bgp_Peer_Configuration
73 [Documentation] Revert the BGP configuration to the original state: without any configured peers.
74 &{mapping} Create Dictionary IP=${IPV6_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
75 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
76 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
78 Verify_Ipv6_Topology_Empty
79 [Documentation] Verifies that example-ipv6-topology is empty after deconfiguring peer for the first time.
81 Verify_Rib_Status_Empty
83 Reconfigure_ODL_To_Accept_Connections_2
84 [Documentation] Configure BGP peer modules with initiate-connection set to false with ipv6 address without "::" shortened version.
85 &{mapping} Create Dictionary IP=${IPV6_IP_2} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
86 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
87 TemplatedRequests.Put_As_Xml_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
89 Verify_Ipv6_Topology_Filled_2
90 [Documentation] Verifies that example-ipv6-topology is filled after configuring the peer for the second time.
92 Verify_Rib_Status_Filled
94 Delete_Bgp_Peer_Configuration_2
95 [Documentation] Revert the BGP configuration to the original state: without any configured peers.
96 &{mapping} Create Dictionary IP=${IPV6_IP_2} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
97 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
98 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
100 Verify_Ipv6_Topology_Empty_2
101 [Documentation] Verifies that example-ipv6-topology is empty after deconfiguring peer for the second time.
103 Verify_Rib_Status_Empty
105 Reconfigure_ODL_To_Accept_Connections_3
106 [Documentation] Configure BGP peer modules with initiate-connection set to false with full text ipv6 address.
107 &{mapping} Create Dictionary IP=${IPV6_IP_3} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
108 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
109 TemplatedRequests.Put_As_Xml_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
111 Verify_Ipv6_Topology_Filled_3
112 [Documentation] Verifies that example-ipv6-topology is filled after configuring the peer for the third time.
114 Verify_Rib_Status_Filled
116 Delete_Bgp_Peer_Configuration_3
117 [Documentation] Revert the BGP configuration to the original state: without any configured peers.
118 &{mapping} Create Dictionary IP=${IPV6_IP_3} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
119 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
120 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
122 Verify_Ipv6_Topology_Empty_3
123 [Documentation] Verifies that example-ipv6-topology is empty after final deconfiguration.
125 Verify_Rib_Status_Empty
128 [Documentation] Save exabgp logs as exaipv6.log, and stop exabgp with ctrl-c bash signal
129 BGPcliKeywords.Store_File_To_Workspace ${EXABGP_LOG} ${EXABGP_LOG}
130 ExaBgpLib.Stop_ExaBgp
133 [Documentation] Configures bgp application peer.
134 [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
135 &{mapping} Create Dictionary IP=127.0.0.12 HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
136 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
137 TemplatedRequests.Put_As_Xml_Templated ${BGP_VAR_FOLDER}/application_peer mapping=${mapping} session=${CONFIG_SESSION}
139 Reconfigure_ODL_To_Accept_Connections_4
140 [Documentation] Configure BGP peer modules with initiate-connection set to false with short ipv6 address.
141 &{mapping} Create Dictionary IP=${IPV4_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
142 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
143 TemplatedRequests.Put_As_Xml_Templated ${BGP_VAR_FOLDER}/bgp_neighbor_rib mapping=${mapping} session=${CONFIG_SESSION}
144 RequestsLibrary.Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS} timeout=5
147 [Documentation] Start exabgp and Verify BGP connection
149 ${cmd} BuiltIn.Set_Variable ${EXABGP2_CFG} > ${EXABGP2_LOG}
150 ExaBgpLib.Start_ExaBgp_And_Verify_Connected ${cmd} ${CONFIG_SESSION} 127.0.0.1
153 [Documentation] Inject the Ipv6 route from controller
154 &{mapping} Create Dictionary IP=127.0.0.12 HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
155 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
156 TemplatedRequests.Post_As_Xml_Templated ${BGP_VAR_FOLDER}/ipv6_route_injection mapping=${mapping} session=${CONFIG_SESSION}
158 Check_Ipv6_Prefix_In_Bgp_Rib_1
159 [Documentation] Check for the presence of Ipv6 Prefix in the BGP RIB
160 &{mapping} Create Dictionary IP=${CONTROLLER_IPV4} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
161 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
162 BuiltIn.Wait_Until_Keyword_Succeeds 5x 2s TemplatedRequests.Get_As_Json_Templated ${BGP_VAR_FOLDER}/bgp_rib session=${CONFIG_SESSION} mapping=${mapping}
164 Delete_Injected_Ipv6_Routes_1
165 [Documentation] Delete the injected IPV6 routes
166 &{mapping} Create Dictionary IP=127.0.0.12 HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
167 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
168 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/ipv6_route_injection mapping=${mapping} session=${CONFIG_SESSION}
169 KarafKeywords.Fail If Exceptions Found During Test ${SUITE_NAME}.${TEST_NAME} fail=${True}
171 Delete_Bgp_Peer_Configuration_4
172 [Documentation] Revert the BGP configuration to the original state: without any configured peers.
173 &{mapping} Create Dictionary IP=${IPV4_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
174 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
175 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/bgp_neighbor_rib mapping=${mapping} session=${CONFIG_SESSION}
177 Verify_Ipv6_Topology_Empty_4
178 [Documentation] Verifies that example-ipv6-topology is empty after deconfiguring peer for the first time.
180 Verify_Rib_Status_Empty
182 Reconfigure_ODL_To_Accept_Connections_5
183 [Documentation] Configure BGP peer modules with initiate-connection set to false with short ipv6 address.
184 &{mapping} Create Dictionary IP=${IPV4_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
185 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
186 TemplatedRequests.Put_As_Xml_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
189 [Documentation] Inject the Ipv6 route from controller
190 &{mapping} Create Dictionary IP=127.0.0.12 HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
191 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
192 TemplatedRequests.Post_As_Xml_Templated ${BGP_VAR_FOLDER}/ipv6_route_injection mapping=${mapping} session=${CONFIG_SESSION}
194 Check_Ipv6_Prefix_In_Bgp_Rib_2
195 [Documentation] Check for the presence of Ipv6 Prefix in the BGP RIB
196 &{mapping} Create Dictionary IP=${CONTROLLER_IPV4} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
197 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
198 BuiltIn.Wait_Until_Keyword_Succeeds 5x 2s TemplatedRequests.Get_As_Json_Templated ${BGP_VAR_FOLDER}/bgp_rib session=${CONFIG_SESSION} mapping=${mapping}
200 Delete_Injected_Ipv6_Routes_2
201 [Documentation] Delete the injected IPV6 routes
202 &{mapping} Create Dictionary IP=127.0.0.12 HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
203 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
204 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/ipv6_route_injection mapping=${mapping} session=${CONFIG_SESSION}
205 KarafKeywords.Fail If Exceptions Found During Test ${SUITE_NAME}.${TEST_NAME} fail=${True}
208 [Documentation] Deletes bgp application peer.
209 [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
210 &{mapping} Create Dictionary IP=127.0.0.12 HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
211 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
212 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/application_peer mapping=${mapping} session=${CONFIG_SESSION}
214 Delete_Bgp_Peer_Configuration_5
215 [Documentation] Revert the BGP configuration to the original state: without any configured peers.
216 &{mapping} Create Dictionary IP=${IPV4_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
217 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
218 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/bgp_peer mapping=${mapping} session=${CONFIG_SESSION}
220 Verify_Ipv6_Topology_Empty_5
221 [Documentation] Verifies that example-ipv6-topology is empty after deconfiguring peer for the first time.
223 Verify_Rib_Status_Empty
226 [Documentation] Save exabgp logs as exaipv6.log, and stop exabgp with ctrl-c bash signal
227 BGPcliKeywords.Store_File_To_Workspace ${EXABGP2_LOG} ${EXABGP2_LOG}
228 ExaBgpLib.Stop_ExaBgp
229 ${Log_Content} OperatingSystem.Get File ${EXABGP2_LOG}
232 Reconfigure_ODL_To_Accept_Connections_6
233 [Documentation] Configure BGP peer modules with initiate-connection set to false with short ipv6 address.
234 &{mapping} Create Dictionary IP=${IPV6_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
235 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
236 TemplatedRequests.Put_As_Xml_Templated ${BGP_VAR_FOLDER}/graceful_restart mapping=${mapping} session=${CONFIG_SESSION}
239 [Documentation] Start exabgp with
241 ${cmd} BuiltIn.Set_Variable ${EXABGP3_CFG} > ${EXABGP3_LOG}
242 ExaBgpLib.Start_ExaBgp_And_Verify_Connected ${cmd} ${CONFIG_SESSION} ${EXABGP_ID}
245 [Documentation] Save exabgp logs as exabgp_graceful_restart.log, and stop exabgp with ctrl-c bash signal
246 BGPcliKeywords.Store_File_To_Workspace ${EXABGP3_LOG} ${EXABGP3_LOG}
247 ExaBgpLib.Stop_ExaBgp
249 KarafKeywords.Fail If Exceptions Found During Test ${SUITE_NAME}.${TEST_NAME} fail=${True}
252 [Documentation] Start exabgp with
254 ${cmd} BuiltIn.Set_Variable ${EXABGP3_CFG} > ${EXABGP3_LOG}
255 ExaBgpLib.Start_ExaBgp_And_Verify_Connected ${cmd} ${CONFIG_SESSION} ${EXABGP_ID}
257 Delete_Bgp_Peer_Configuration_5
258 [Documentation] Revert the BGP configuration to the original state: without any configured peers.
259 &{mapping} Create Dictionary IP=${IPV6_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} INITIATE=false BGP_RIB=${RIB_INSTANCE}
260 ... PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${RIB_INSTANCE} RIB_INSTANCE_NAME=${RIB_INSTANCE}
261 TemplatedRequests.Delete_Templated ${BGP_VAR_FOLDER}/graceful_restart mapping=${mapping} session=${CONFIG_SESSION}
264 [Documentation] Save exabgp logs as exabgp_graceful_restart.log, and stop exabgp with ctrl-c bash signal
265 BGPcliKeywords.Store_File_To_Workspace ${EXABGP3_LOG} ${EXABGP3_LOG}
266 ExaBgpLib.Stop_ExaBgp
270 [Documentation] Suite setup keyword.
271 SetupUtils.Setup_Utils_For_Setup_And_Teardown
272 ${conn_id}= SSHLibrary.Open Connection ${ODL_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=10s
273 Builtin.Set_Suite_Variable ${conn_id}
274 SSHKeywords.Flexible_Controller_Login
275 Configure_Ipv6_Network
276 SSHKeywords.Virtual_Env_Create
277 SSHKeywords.Virtual_Env_Install_Package setuptools==44.0.0
278 SSHKeywords.Virtual_Env_Install_Package exabgp==4.2.4
279 RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH}
281 Upload_Config_Files_exabgp_ipv4
282 Upload_Config_Files_exabgp_graceful_restart
285 [Documentation] Suite teardown keyword
286 SSHKeywords.Virtual_Env_Delete
287 SSHLibrary.Close_All_Connections
288 RequestsLibrary.Delete_All_Sessions
289 BuiltIn.Run Keyword And Ignore Error ExaBgpLib.Stop_ExaBgp
291 Configure_Ipv6_Network
292 [Documentation] Reconfigures basic network settings on controller
293 SSHLibrary.Execute_Command sudo sh -c 'echo "NETWORKING_IPV6=yes" >> /etc/sysconfig/network'
294 SSHLibrary.Execute_Command sudo sh -c 'echo "IPV6INIT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
295 SSHLibrary.Execute_Command sudo sh -c 'echo "IPV6ADDR=${IPV6_IP}" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
296 SSHLibrary.Execute_Command sudo sh -c 'echo "IPV6_DEFAULTGW=${IPV6_IP_GW}" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
297 SSHLibrary.Execute_Command sudo /etc/init.d/network restart
299 Verify_Rib_Status_Empty
300 [Documentation] Verifies that example-ipv6-topology is empty
301 BuiltIn.Wait_Until_Keyword_Succeeds 5x 2s TemplatedRequests.Get_As_Json_Templated ${BGP_VAR_FOLDER}/ipv6_topology_empty session=${CONFIG_SESSION} verify=True
303 Verify_Rib_Status_Filled
304 [Documentation] Verifies that example-ipv6-topology is filled with ipv6 route
305 BuiltIn.Wait_Until_Keyword_Succeeds 5x 2s TemplatedRequests.Get_As_Json_Templated ${BGP_VAR_FOLDER}/ipv6_topology_filled session=${CONFIG_SESSION} verify=True
308 [Documentation] Uploads exabgp config files
309 SSHLibrary.Put_File ${BGP_VAR_FOLDER}/${EXABGP_CFG} .
310 @{cfgfiles}= SSHLibrary.List_Files_In_Directory . *.cfg
311 FOR ${cfgfile} IN @{cfgfiles}
312 SSHLibrary.Execute_Command sed -i -e 's/EXABGPIP/${IPV6_IP}/g' ${cfgfile}
313 SSHLibrary.Execute_Command sed -i -e 's/ODLIP/${CONTROLLER_IPV6}/g' ${cfgfile}
314 SSHLibrary.Execute_Command sed -i -e 's/ROUTERID/${EXABGP_ID}/g' ${cfgfile}
315 SSHLibrary.Execute_Command sed -i -e 's/ROUTEREFRESH/disable/g' ${cfgfile}
316 SSHLibrary.Execute_Command sed -i -e 's/ADDPATH/disable/g' ${cfgfile}
317 ${stdout}= SSHLibrary.Execute_Command cat ${cfgfile}
321 Upload_Config_Files_exabgp_ipv4
322 [Documentation] Uploads exabgp config files
323 SSHLibrary.Put_File ${BGP_VAR_FOLDER}/${EXABGP2_CFG} .
324 @{cfgfiles}= SSHLibrary.List_Files_In_Directory . *ipv4.cfg
325 FOR ${cfgfile} IN @{cfgfiles}
326 SSHLibrary.Execute_Command sed -i -e 's/EXABGPIP/127.0.0.1/g' ${cfgfile}
327 SSHLibrary.Execute_Command sed -i -e 's/ODLIP/${ODL_SYSTEM_IP}/g' ${cfgfile}
328 SSHLibrary.Execute_Command sed -i -e 's/ROUTERID/127.0.0.1/g' ${cfgfile}
329 SSHLibrary.Execute_Command sed -i -e 's/ROUTEREFRESH/disable/g' ${cfgfile}
330 SSHLibrary.Execute_Command sed -i -e 's/ADDPATH/disable/g' ${cfgfile}
331 ${stdout}= SSHLibrary.Execute_Command cat ${cfgfile}
335 Upload_Config_Files_exabgp_graceful_restart
336 [Documentation] Uploads exabgp config files
337 SSHLibrary.Put_File ${BGP_VAR_FOLDER}/${EXABGP3_CFG} .
338 @{cfgfiles}= SSHLibrary.List_Files_In_Directory . *restart.cfg
339 FOR ${cfgfile} IN @{cfgfiles}
340 SSHLibrary.Execute_Command sed -i -e 's/EXABGPIP/${IPV6_IP}/g' ${cfgfile}
341 SSHLibrary.Execute_Command sed -i -e 's/ODLIP/${CONTROLLER_IPV6}/g' ${cfgfile}
342 SSHLibrary.Execute_Command sed -i -e 's/ROUTERID/${EXABGP_ID}/g' ${cfgfile}
343 SSHLibrary.Execute_Command sed -i -e 's/ROUTEREFRESH/disable/g' ${cfgfile}
344 SSHLibrary.Execute_Command sed -i -e 's/ADDPATH/disable/g' ${cfgfile}
345 ${stdout}= SSHLibrary.Execute_Command cat ${cfgfile}