2 Documentation This library contains keywords related to the BGP functionality.
6 Library BgpRpcClient.py ${TOOLS_SYSTEM_IP}
7 Resource ../variables/Variables.robot
8 Resource CompareStream.robot
10 Resource KillPythonTool.robot
11 Resource TemplatedRequests.robot
15 ${BGP_BMP_DIR} ${CURDIR}/../variables/bgpfunctional/bmp_basic/filled_structure
16 ${BGP_BMP_FEAT_DIR} ${CURDIR}/../variables/bgpfunctional/bmp_basic/empty_structure
17 ${BGP_RIB_URI} bgp-rib:bgp-rib/rib=example-bgp-rib
18 ${BGP_TOPOLOGY_URI} ${TOPOLOGY_URL}=example-ipv4-topology
19 ${VAR_BASE_BGP} ${CURDIR}/../variables/bgpfunctional
20 ${RIB_NAME} example-bgp-rib
21 ${OLD_AS_PATH} \n"as-path": {},
22 ${NEW_AS_PATH} ${EMPTY}
23 &{APP_PEER} IP=${ODL_SYSTEM_IP} BGP_RIB=${RIB_NAME}
24 ${NEW_IPV4_ROUTES_LINE} ${EMPTY}
25 ${OLD_IPV4_ROUTES_LINE} \n"bgp-inet:ipv4-routes": {},
26 ${BGP_CONFIG_SERVER_CMD} bgp-connect -h ${ODL_SYSTEM_IP} -p 7644 add
27 ${VPNV4_ADDR_FAMILY} vpnv4
28 ${DISPLAY_VPN4_ALL} show-bgp --cmd "ip bgp ${VPNV4_ADDR_FAMILY} all"
32 Start Quagga Processes On ODL
33 [Documentation] To start the zrpcd processes on ODL VM
35 ${conn_id} = Open_Connection_To_ODL_System ip_address=${odl_ip}
36 Switch Connection ${conn_id}
37 Write Commands Until Expected Prompt cd /opt/quagga/etc/ ${DEFAULT_LINUX_PROMPT_STRICT}
38 Write Commands Until Expected Prompt sudo cp zebra.conf.sample zebra.conf ${DEFAULT_LINUX_PROMPT_STRICT}
39 Write Commands Until Expected Prompt sudo /opt/quagga/etc/init.d/zrpcd start ${DEFAULT_LINUX_PROMPT_STRICT}
40 Write Commands Until Expected Prompt ps -ef | grep zrpcd ${DEFAULT_LINUX_PROMPT_STRICT}
41 Write Commands Until Expected Prompt netstat -nap | grep 7644 ${DEFAULT_LINUX_PROMPT_STRICT}
44 Restart BGP Processes On ODL
45 [Documentation] To restart the bgpd , qthriftd processes on ODL VM
47 ${conn_id} = Open_Connection_To_ODL_System ip_address=${odl_ip}
48 Switch Connection ${conn_id}
49 Write Commands Until Expected Prompt sudo pkill -f bgpd ${DEFAULT_LINUX_PROMPT_STRICT}
50 Start Quagga Processes On ODL ${odl_ip}
52 Start Quagga Processes On DCGW
53 [Documentation] To start the zrpcd, bgpd,and zebra processes on DCGW
54 [Arguments] ${dcgw_ip}
55 ${dcgw_conn_id} = Open_Connection_To_Tools_System ip_address=${dcgw_ip}
56 Switch Connection ${dcgw_conn_id}
57 Write Commands Until Expected Prompt cd /opt/quagga/etc/ ${DEFAULT_LINUX_PROMPT_STRICT}
58 Write Commands Until Expected Prompt sudo cp zebra.conf.sample zebra.conf ${DEFAULT_LINUX_PROMPT_STRICT}
59 Write Commands Until Expected Prompt sudo /opt/quagga/etc/init.d/zrpcd start ${DEFAULT_LINUX_PROMPT_STRICT}
60 Write Commands Until Expected Prompt ps -ef | grep zrpcd ${DEFAULT_LINUX_PROMPT_STRICT}
61 Write Commands Until Expected Prompt cd /opt/quagga/sbin/ ${DEFAULT_LINUX_PROMPT_STRICT}
62 ${output} = Write sudo ./bgpd &
63 ${output} = Read Until pid
65 ${output} = Write sudo ./zebra &
68 Write Commands Until Expected Prompt ps -ef | grep bgpd ${DEFAULT_LINUX_PROMPT_STRICT}
69 Write Commands Until Expected Prompt ps -ef | grep zebra ${DEFAULT_LINUX_PROMPT_STRICT}
70 Write Commands Until Expected Prompt netstat -nap | grep 7644 ${DEFAULT_LINUX_PROMPT_STRICT}
72 Restart BGP Processes On DCGW
73 [Documentation] To Restart the zrpcd, bgpd and zebra processes on DCGW
74 [Arguments] ${dcgw_ip}
75 ${dcgw_conn_id} = Open_Connection_To_Tools_System ip_address=${dcgw_ip}
76 Switch Connection ${dcgw_conn_id}
77 Write Commands Until Expected Prompt sudo pkill -f bgpd ${DEFAULT_LINUX_PROMPT_STRICT}
78 Start Quagga Processes On DCGW ${dcgw_ip}
80 Stop BGP Processes On Node
81 [Documentation] To stop the bgpd , qthriftd processes on specific node given by user.
82 [Arguments] ${node_ip}
83 Utils.Run Command On Remote System ${node_ip} sudo pkill -f bgpd
84 Utils.Run Command On Remote System ${node_ip} sudo pkill -f zrpcd
86 Show Quagga Configuration On ODL
87 [Documentation] Show quagga config from ODL
88 [Arguments] ${odl_ip} ${rd}
89 Create Quagga Telnet Session ${odl_ip} bgpd sdncbgpc
90 Execute Command On Quagga Telnet Session show running-config
91 Execute Command On Quagga Telnet Session show bgp neighbors
92 Execute Command On Quagga Telnet Session show ip bgp vrf ${rd}
93 Execute Command On Quagga Telnet Session exit
96 Create Quagga Telnet Session
97 [Documentation] Create telnet session for Quagga
98 [Arguments] ${ip} ${user} ${password}
99 ${conn_id} = Open_Connection_To_Tools_System ip_address=${ip}
100 Switch Connection ${conn_id}
101 ${output} = Write telnet localhost ${user}
102 ${output} = Read Until Password:
103 ${output} = Write ${password}
105 ${output} = Write terminal length 512
108 Execute Command On Quagga Telnet Session
109 [Documentation] Execute command on Quagga telnet session(session should exist) and returns the output.
110 [Arguments] ${command}
111 SSHLibrary.Write ${command}
112 ${output} = SSHLibrary.Read
116 Configure BGP And Add Neighbor On DCGW
117 [Documentation] Configure BGP and add neighbor on the dcgw
118 [Arguments] ${dcgw_ip} ${as_id} ${router_id} ${neighbor_ip} ${vrf_name} ${rd}
120 Create Quagga Telnet Session ${dcgw_ip} bgpd sdncbgpc
121 Execute Command On Quagga Telnet Session configure terminal
122 Execute Command On Quagga Telnet Session router bgp ${as_id}
123 Execute Command On Quagga Telnet Session bgp router-id ${router_id}
124 Execute Command On Quagga Telnet Session redistribute static
125 Execute Command On Quagga Telnet Session redistribute connected
126 Execute Command On Quagga Telnet Session neighbor ${neighbor_ip} send-remote-as ${as_id}
127 Execute Command On Quagga Telnet Session vrf ${vrf_name}
128 Execute Command On Quagga Telnet Session rd ${rd}
129 Execute Command On Quagga Telnet Session rt import ${rd}
130 Execute Command On Quagga Telnet Session rt export ${rd}
131 Execute Command On Quagga Telnet Session exit
132 Execute Command On Quagga Telnet Session address-family vpnv4 unicast
133 Execute Command On Quagga Telnet Session network ${loopback_ip}/32 rd ${rd} tag ${as_id}
134 Execute Command On Quagga Telnet Session neighbor ${neighbor_ip} activate
135 Execute Command On Quagga Telnet Session end
136 Execute Command On Quagga Telnet Session show running-config
137 Execute Command On Quagga Telnet Session exit
139 Add Loopback Interface On DCGW
140 [Documentation] Add loopback interface on DCGW
141 [Arguments] ${dcgw_ip} ${loopback_name} ${loopback_ip} ${user}=zebra ${password}=zebra
142 Create Quagga Telnet Session ${dcgw_ip} ${user} ${password}
143 Execute Command On Quagga Telnet Session enable
144 Execute Command On Quagga Telnet Session ${password}
145 Execute Command On Quagga Telnet Session configure terminal
146 Execute Command On Quagga Telnet Session interface ${loopback_name}
147 Execute Command On Quagga Telnet Session ip address ${loopback_ip}/32
148 Execute Command On Quagga Telnet Session exit
149 Execute Command On Quagga Telnet Session end
150 Execute Command On Quagga Telnet Session show running-config
151 Execute Command On Quagga Telnet Session exit
153 Execute Show Command On Quagga
154 [Documentation] Execute command on quagga and returns the ouput.
155 [Arguments] ${dcgw_ip} ${cmd} ${user}=bgpd ${password}=sdncbgpc
156 Create Quagga Telnet Session ${dcgw_ip} ${user} ${password}
157 ${output} = Execute Command On Quagga Telnet Session ${cmd}
159 Execute Command On quagga Telnet Session exit
162 Verify BGP Neighbor Status On Quagga
163 [Documentation] Verify bgp neighbor status on quagga
164 [Arguments] ${dcgw_ip} ${neighbor_ip}
165 ${output} = Execute Show Command On quagga ${dcgw_ip} show bgp neighbors ${neighbor_ip}
167 Should Contain ${output} BGP state = Established
169 Setup BGP Peering On ODL
170 [Documentation] Setup BGP peering between ODL and given neighbor IP.
171 ... Configuring and starting BGP on ODL node with given AS number
172 ... Adding and verifying BGP neighbor
173 [Arguments] ${odl_ip} ${as_id} ${nbr_ip}
174 KarafKeywords.Issue Command On Karaf Console ${BGP_CONFIG_SERVER_CMD}
175 BgpOperations.Create BGP Configuration On ODL localas=${as_id} routerid=${odl_ip}
176 BgpOperations.AddNeighbor To BGP Configuration On ODL remoteas=${as_id} neighborAddr=${nbr_ip}
177 ${output} = BgpOperations.Get BGP Configuration On ODL session
178 BuiltIn.Should Contain ${output} ${nbr_ip}
180 Setup BGP Peering On DCGW
181 [Documentation] Setup BGP peering between DCGW and given neighbor IP.
182 ... Configuring,adding neighbor on DCGW node and verifying BGP neighbor.
183 [Arguments] ${dcgw_ip} ${as_id} ${nbr_ip} ${vrf_name} ${rd} ${loopback_ip}
184 BgpOperations.Configure BGP And Add Neighbor On DCGW
192 ${output} = BgpOperations.Execute Show Command On Quagga ${dcgw_ip} ${RUN_CONFIG}
193 BuiltIn.Should Contain ${output} ${nbr_ip}
195 Verify Routes On Quagga
196 [Documentation] Verify routes on quagga
197 [Arguments] ${dcgw_ip} ${rd} ${ip_list}
198 ${output} = Execute Show Command On quagga ${dcgw_ip} show ip bgp vrf ${rd}
200 FOR ${ip} IN @{ip_list}
201 Should Contain ${output} ${ip}
204 Delete BGP Config On Quagga
205 [Documentation] Delete BGP Config on Quagga
206 [Arguments] ${dcgw_ip} ${bgp_id} ${user}=bgpd ${password}=sdncbgpc
207 Create Quagga Telnet Session ${dcgw_ip} ${user} ${password}
208 Execute Command On Quagga Telnet Session configure terminal
209 Execute Command On Quagga Telnet Session no router bgp ${bgp_id}
210 Execute Command On Quagga Telnet Session end
211 ${output} = Execute Command On Quagga Telnet Session show running-config
212 Execute Command On Quagga Telnet Session exit
216 [Documentation] Creating L3VPN on DCGW
217 [Arguments] ${dcgw_ip} ${as_id} ${vpn_name} ${rd}
218 BgpOperations.Create Quagga Telnet Session ${dcgw_ip} bgpd sdncbgpc
219 BgpOperations.Execute Command On Quagga Telnet Session configure terminal
220 BgpOperations.Execute Command On Quagga Telnet Session router bgp ${as_id}
221 BgpOperations.Execute Command On Quagga Telnet Session vrf ${vpn_name}
222 BgpOperations.Execute Command On Quagga Telnet Session rd ${rd}
223 BgpOperations.Execute Command On Quagga Telnet Session rt export ${rd}
224 BgpOperations.Execute Command On Quagga Telnet Session rt import ${rd}
225 BgpOperations.Execute Command On Quagga Telnet Session end
228 [Documentation] Deleting L3VPN on DCGW
229 [Arguments] ${dcgw_ip} ${as_id} @{vpns}
230 BgpOperations.Create Quagga Telnet Session ${dcgw_ip} bgpd sdncbgpc
231 BgpOperations.Execute Command On Quagga Telnet Session configure terminal
232 BgpOperations.Execute Command On Quagga Telnet Session router bgp ${as_id}
233 FOR ${vpn} IN @{vpns}
234 BgpOperations.Execute Command On Quagga Telnet Session no vrf ${vpn}
236 BgpOperations.Execute Command On Quagga Telnet Session end
239 [Documentation] Verify L3VPN vrf name and rd value on DCGW
240 [Arguments] ${dcgw_ip} ${vpn_name} ${rd}
241 ${output} = BgpOperations.Execute Show Command On Quagga ${dcgw_ip} show running-config
242 BuiltIn.Should Contain ${output} vrf ${vpn_name}
243 BuiltIn.Should Contain ${output} rd ${rd}
246 [Documentation] Add routes on DCGW
247 [Arguments] ${dcgw_ip} ${rd} ${network_ip} ${label}
248 BgpOperations.Create Quagga Telnet Session ${dcgw_ip} bgpd sdncbgpc
249 BgpOperations.Execute Command On Quagga Telnet Session configure terminal
250 BgpOperations.Execute Command On Quagga Telnet Session router bgp ${AS_ID}
251 BgpOperations.Execute Command On Quagga Telnet Session address-family vpnv4 unicast
252 BgpOperations.Execute Command On Quagga Telnet Session network ${network_ip}/32 rd ${rd} tag ${label}
253 BgpOperations.Execute Command On Quagga Telnet Session end
255 Create BGP Configuration On ODL
256 [Documentation] Associate the created L3VPN to a network-id received as dictionary argument
257 [Arguments] &{Kwargs}
258 TemplatedRequests.Post_As_Json_Templated
259 ... folder=${VAR_BASE_BGP}/create_bgp
260 ... mapping=${Kwargs}
263 AddNeighbor To BGP Configuration On ODL
264 [Documentation] Associate the created L3VPN to a network-id received as dictionary argument
265 [Arguments] &{Kwargs}
266 CompareStream.Run_Keyword_If_Less_Than_Magnesium
267 ... TemplatedRequests.Post_As_Json_Templated
268 ... folder=${VAR_BASE_BGP}/addNeighbor_bgp
269 ... mapping=${Kwargs}
271 CompareStream.Run_Keyword_If_At_Least_Magnesium
272 ... TemplatedRequests.Post_As_Json_Templated
273 ... folder=${VAR_BASE_BGP}/addNeighborsContainer_bgp
274 ... mapping=${Kwargs}
277 Get BGP Configuration On ODL
278 [Documentation] Get bgp configuration
279 [Arguments] ${odl_session}
280 ${resp} = RequestsLibrary.Get Request ${odl_session} ${CONFIG_API}/ebgp:bgp/
284 Delete BGP Configuration On ODL
285 [Documentation] Delete BGP
286 [Arguments] ${odl_session}
287 ${resp} = RequestsLibrary.Delete Request ${odl_session} ${CONFIG_API}/ebgp:bgp/
289 Should Be Equal As Strings ${resp.status_code} 200
292 Create External Tunnel Endpoint Configuration
293 [Documentation] Create Tunnel End point
294 [Arguments] &{Kwargs}
295 TemplatedRequests.Post_As_Json_Templated
296 ... folder=${VAR_BASE_BGP}/create_etep
297 ... mapping=${Kwargs}
300 Delete External Tunnel Endpoint Configuration
301 [Documentation] Delete Tunnel End point
302 [Arguments] &{Kwargs}
303 TemplatedRequests.Post_As_Json_Templated
304 ... folder=${VAR_BASE_BGP}/delete_etep
305 ... mapping=${Kwargs}
308 Get External Tunnel Endpoint Configuration
309 [Documentation] Get bgp configuration
311 ${resp} = RequestsLibrary.Get Request session ${CONFIG_API}/itm:dc-gateway-ip-list/dc-gateway-ip/${ip}/
316 [Documentation] Create and Log the diff between expected and actual responses, make sure Python tool was killed.
317 ... Tear down imported Resources.
318 KillPythonTool.Search_And_Kill_Remote_Python 'play\.py'
319 RequestsLibrary.Delete_All_Sessions
320 SSHLibrary.Close_All_Connections
322 Check_Example_Bgp_Rib_Content
323 [Documentation] Check the example-bgp-rib content for string
324 [Arguments] ${session} ${substr} ${error_message}=${JSONKEYSTR} not found, but expected.
325 ${response} = RequestsLibrary.Get Request ${session} ${REST_API}/${BGP_RIB_URI}?content=nonconfig
326 BuiltIn.Log ${response.status_code}
327 BuiltIn.Log ${response.text}
328 BuiltIn.Should_Contain ${response.text} ${substr} ${error_message} values=False
330 Check_Example_Bgp_Rib_Does_Not_Contain
331 [Documentation] Check the example-bgp-rib does not contain the string
332 [Arguments] ${session} ${substr} ${error_message}=${JSONKEYSTR} found, but not expected.
333 ${response} = RequestsLibrary.Get Request ${session} ${REST_API}/${BGP_RIB_URI}?content=nonconfig
334 BuiltIn.Log ${response.status_code}
335 BuiltIn.Log ${response.text}
336 BuiltIn.Should_Not_Contain ${response.text} ${substr} ${error_message} values=False
338 Check_Example_IPv4_Topology_Content
339 [Documentation] Check the example-ipv4-topology content for string
340 [Arguments] ${session} ${string_to_check}=${EMPTY}
341 ${response} = RequestsLibrary.Get Request ${session} ${REST_API}/${BGP_TOPOLOGY_URI}?content=nonconfig
342 BuiltIn.Log ${response.status_code}
343 BuiltIn.Log ${response.text}
344 BuiltIn.Should_Contain ${response.text} ${string_to_check}
346 Check_Example_IPv4_Topology_Does_Not_Contain
347 [Documentation] Check the example-ipv4-topology does not contain the string
348 [Arguments] ${session} ${string_to_check}
349 ${response} = RequestsLibrary.Get Request ${session} ${REST_API}/${BGP_TOPOLOGY_URI}?content=nonconfig
350 BuiltIn.Log ${response.status_code}
351 BuiltIn.Log ${response.text}
352 BuiltIn.Should_Not_Contain ${response.text} ${string_to_check}
354 Bmp_Monitor_Precondition
355 [Documentation] Verify example-bmp-monitor presence in bmp-monitors
356 [Arguments] ${session}
357 &{mapping} = BuiltIn.Create_Dictionary TOOL_IP=${TOOLS_SYSTEM_IP}
358 BuiltIn.Wait_Until_Keyword_Succeeds
361 ... TemplatedRequests.Get_As_Json_Templated
362 ... folder=${BGP_BMP_FEAT_DIR}
363 ... mapping=${mapping}
365 ... session=${session}
367 Bmp_Monitor_Postcondition
368 [Documentation] Verifies if example-bmp-monitor data contains one peer.
369 [Arguments] ${session}
370 ${routes_line} = CompareStream.Set_Variable_If_At_Least_Neon
371 ... ${NEW_IPV4_ROUTES_LINE}
372 ... ${OLD_IPV4_ROUTES_LINE}
373 &{mapping} = BuiltIn.Create_Dictionary TOOL_IP=${TOOLS_SYSTEM_IP} ROUTES_LINE=${routes_line}
374 ${output} = BuiltIn.Wait_Until_Keyword_Succeeds
377 ... TemplatedRequests.Get_As_Json_Templated
378 ... folder=${BGP_BMP_DIR}
379 ... mapping=${mapping}
380 ... session=${session}
382 BuiltIn.Log ${output}
385 [Arguments] ${totest} ${dir} ${remove}=True
386 ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex
387 ${announce_hex} = String.Remove_String ${announce_hex} \n
388 ${withdraw_hex} = OperatingSystem.Get_File ${dir}/${totest}/withdraw_${totest}.hex
389 ${withdraw_hex} = String.Remove_String ${withdraw_hex} \n
390 IF '${remove}' == 'True' BgpRpcClient.play_clean
391 TemplatedRequests.Post_As_Xml_Templated ${dir}/${totest}/app mapping=${APP_PEER} session=${CONFIG_SESSION}
392 ${update} = BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s Get_Update_Message
393 Verify_Two_Hex_Messages_Are_Equal ${update} ${announce_hex}
394 BgpRpcClient.play_clean
395 Remove_Configured_Routes ${totest} ${dir}
396 ${update} = BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s Get_Update_Message
397 Verify_Two_Hex_Messages_Are_Equal ${update} ${withdraw_hex}
398 [Teardown] Remove_Configured_Routes ${totest} ${dir}
401 [Arguments] ${totest} ${dir} ${ipv}=ipv4
402 ${as_path} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_AS_PATH} ${OLD_AS_PATH}
403 &{adj_rib_in} = BuiltIn.Create_Dictionary
404 ... PATH=peer\=bgp:%2F%2F${TOOLS_SYSTEM_IP}/adj-rib-in
405 ... BGP_RIB=${RIB_NAME}
406 ... AS_PATH=${as_path}
407 &{effective_rib_in} = BuiltIn.Create_Dictionary
408 ... PATH=peer\=bgp:%2F%2F${TOOLS_SYSTEM_IP}/effective-rib-in
409 ... BGP_RIB=${RIB_NAME}
410 ... AS_PATH=${as_path}
411 &{loc_rib} = BuiltIn.Create_Dictionary PATH=loc-rib BGP_RIB=${RIB_NAME} AS_PATH=${as_path}
412 ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex
413 ${withdraw_hex} = OperatingSystem.Get_File ${dir}/${totest}/withdraw_${totest}.hex
414 BgpRpcClient.play_clean
415 BgpRpcClient.play_send ${announce_hex}
416 BuiltIn.Wait_Until_Keyword_Succeeds
419 ... TemplatedRequests.Get_As_Json_Templated
420 ... ${dir}/${totest}/rib
421 ... mapping=${adj_rib_in}
422 ... session=${CONFIG_SESSION}
424 BuiltIn.Wait_Until_Keyword_Succeeds
427 ... TemplatedRequests.Get_As_Json_Templated
428 ... ${dir}/${totest}/rib
429 ... mapping=${effective_rib_in}
430 ... session=${CONFIG_SESSION}
432 BuiltIn.Wait_Until_Keyword_Succeeds
435 ... TemplatedRequests.Get_As_Json_Templated
436 ... ${dir}/${totest}/rib
437 ... mapping=${loc_rib}
438 ... session=${CONFIG_SESSION}
440 BgpRpcClient.play_send ${withdraw_hex}
441 BuiltIn.Wait_Until_Keyword_Succeeds
444 ... TemplatedRequests.Get_As_Json_Templated
445 ... ${dir}/empty_routes/${ipv}
446 ... mapping=${loc_rib}
447 ... session=${CONFIG_SESSION}
449 [Teardown] BgpRpcClient.play_send ${withdraw_hex}
451 Play_To_Odl_Non_Removal_Template
452 [Arguments] ${totest} ${dir} ${ipv}=ipv4
453 ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex
454 BgpRpcClient.play_clean
455 BgpRpcClient.play_send ${announce_hex}
456 ${as_path} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_AS_PATH} ${OLD_AS_PATH}
457 &{loc_rib} = BuiltIn.Create_Dictionary PATH=loc-rib BGP_RIB=${RIB_NAME} AS_PATH=${as_path}
458 BuiltIn.Wait_Until_Keyword_Succeeds
461 ... TemplatedRequests.Get_As_Json_Templated
462 ... ${dir}/${totest}/rib
463 ... mapping=${loc_rib}
464 ... session=${CONFIG_SESSION}
468 [Documentation] Returns hex update message.
469 ${update} = BgpRpcClient.play_get
470 BuiltIn.Should_Not_Be_Equal ${update} ${Empty}
473 Remove_Configured_Routes
474 [Documentation] Removes the route if present.
475 [Arguments] ${totest} ${dir}
476 BuiltIn.Run_Keyword_And_Ignore_Error
477 ... TemplatedRequests.Delete_Templated
478 ... ${dir}/${totest}/app
479 ... mapping=${APP_PEER}
480 ... session=${CONFIG_SESSION}
482 Verify_Two_Hex_Messages_Are_Equal
483 [Documentation] Verifies two hex messages are equal even in case, their arguments are misplaced.
484 ... Compares length of the hex messages and sums hex messages arguments as integers and compares results.
485 [Arguments] ${hex_1} ${hex_2}
486 ${len_1} = BuiltIn.Get_Length ${hex_1}
487 ${len_2} = BuiltIn.Get_Length ${hex_2}
488 BuiltIn.Should_Be_Equal ${len_1} ${len_2}
489 ${sum_1} = BgpRpcClient.Sum_Hex_Message ${hex_1}
490 ${sum_2} = BgpRpcClient.Sum_Hex_Message ${hex_2}
491 BuiltIn.Should_Be_Equal ${sum_1} ${sum_2}
493 Check BGP VPNv4 Nbr On ODL
494 [Documentation] Check all BGP VPNv4 neighbor on ODL
495 [Arguments] ${dcgw_count} ${flag}=True ${start}=${START_VALUE}
496 ${output} = KarafKeywords.Issue Command On Karaf Console ${DISPLAY_VPN4_ALL}
497 FOR ${index} IN RANGE ${start} ${dcgw_count}
499 BuiltIn.Should Contain ${output} ${DCGW_IP_LIST[${index}]}
501 BuiltIn.Should Not Contain ${output} ${DCGW_IP_LIST[${index}]}