4 Variables ../variables/Variables.py
7 Start Mininet Single Controller
8 [Arguments] ${mininet}=${TOOLS_SYSTEM_IP} ${controller}=${ODL_SYSTEM_IP} ${options}=--topo tree,1 --switch ovsk,protocols=OpenFlow13 ${custom}=${EMPTY} ${ofport}=6633
9 [Documentation] Start Mininet with custom topology and connect to controller.
10 Log Clear any existing mininet
11 Clean Mininet System ${mininet}
12 ${mininet_conn_id}= Open Connection ${mininet} prompt=${TOOLS_SYSTEM_PROMPT} timeout=${DEFAULT_TIMEOUT}
13 Set Suite Variable ${mininet_conn_id}
14 Flexible Mininet Login
15 Run Keyword If '${custom}' != '${EMPTY}' Put File ${custom}
16 Log Start mininet ${options} to ${controller}
17 Write sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options}
19 ${output}= Run Command On Mininet ${mininet} sudo ovs-vsctl show
21 [Return] ${mininet_conn_id}
23 Start Mininet Multiple Controllers
24 [Arguments] ${mininet} ${controller_index_list} ${options}=--topo tree,1 --switch ovsk,protocols=OpenFlow13 ${custom}=${EMPTY} ${ofport}=6633
25 [Documentation] Start Mininet with custom topology and connect to all controllers in the ${controller_index_list}.
26 Log Clear any existing mininet
27 Clean Mininet System ${mininet}
28 ${mininet_conn_id}= Open Connection ${mininet} prompt=${TOOLS_SYSTEM_PROMPT} timeout=${DEFAULT_TIMEOUT}
29 Set Suite Variable ${mininet_conn_id}
30 Flexible Mininet Login
31 Run Keyword If '${custom}' != '${EMPTY}' Put File ${custom}
32 Log Start mininet ${options}
33 Write sudo mn ${options}
35 Log Create controller configuration
36 ${ovs_opt}= Set Variable
37 : FOR ${index} IN @{controller_index_list}
38 \ ${ovs_opt}= Catenate ${ovs_opt} ${SPACE}tcp:${ODL_SYSTEM_${index}_IP}:${ofport}
40 Log Find Number of OVS bridges
41 ${num_bridges} Run Command On Mininet ${mininet} sudo ovs-vsctl show | grep Bridge | wc -l
42 ${num_bridges}= Convert To Integer ${num_bridges}
43 Log Configure OVS controllers ${ovs_opt} in all bridges
44 : FOR ${i} IN RANGE 1 ${num_bridges+1}
45 \ ${bridge}= Run Command On Mininet ${mininet} sudo ovs-vsctl show | grep Bridge | cut -c 12- | sort | head -${i} | tail -1
46 \ Run Command On Mininet ${mininet} sudo ovs-vsctl set-controller ${bridge} ${ovs_opt}
47 Log Check OVS configuratiom
48 ${output}= Run Command On Mininet ${mininet} sudo ovs-vsctl show
50 [Return] ${mininet_conn_id}
53 [Arguments] ${mininet_conn_id} ${cmd}=help
54 [Documentation] Sends Command ${cmd} to Mininet session ${mininet_conn_id} and returns read buffer response.
55 Switch Connection ${mininet_conn_id}
56 SSHLibrary.Write ${cmd}
57 ${output}= Read Until mininet>
60 Send Mininet Command Multiple Sessions
61 [Arguments] ${mininet_conn_list} ${cmd}=help
62 [Documentation] Sends Command ${cmd} to Mininet sessions in ${mininet_conn_list} and returns list of read buffer responses.
63 ${output_list}= Create List
64 : FOR ${mininet_conn_id} IN @{mininet_conn_list}
65 \ ${output}= Send Mininet Command ${mininet_conn_id} ${cmd}
66 \ Append To List ${output_list} ${output}
67 [Return] ${output_list}
70 [Arguments] ${mininet_conn_id}
71 [Documentation] Stops Mininet and exits session ${mininet_conn_id}
72 Switch Connection ${mininet_conn_id}
74 Read Until ${TOOLS_SYSTEM_PROMPT}
77 Stop Mininet And Exit Multiple Sessions
78 [Arguments] ${mininet_conn_list}
79 [Documentation] Stops Mininet and exits sessions in ${mininet_conn_list}.
80 : FOR ${mininet_conn_id} IN @{mininet_conn_list}
81 \ Stop Mininet And Exit ${mininet_conn_id}