2 Documentation LISP southbound performance tests
3 Suite Setup Prepare Environment
4 Suite Teardown Destroy Environment
7 Library OperatingSystem
8 Library RequestsLibrary
10 Resource ../../../libraries/Utils.robot
11 Resource ../../../libraries/LISPFlowMapping.robot
12 Variables ../../../variables/Variables.py
16 ${LISP_SCAPY} https://raw.githubusercontent.com/intouch/py-lispnetworking/master/lisp.py
17 ${TOOLS_DIR} ${CURDIR}/../../../../tools/odl-lispflowmapping-performance-tests/
18 ${PCAP_CREATOR} ${TOOLS_DIR}/create_lisp_control_plane_pcap.py
19 ${MAPPING_BLASTER} ${TOOLS_DIR}/mapping_blaster.py
22 ${REPLAY_FILE_MREQ} encapsulated-map-requests-sequential.pcap
23 ${REPLAY_FILE_MREG} map-registers-sequential.pcap
24 ${RPCS_RESULTS_FILE} rpcs.csv
25 ${PPS_RESULTS_FILE} pps.csv
28 Add Simple IPv4 Mappings
29 ${start_date}= Get Current Date
30 Run Process With Logging And Status Check ${MAPPING_BLASTER} --host ${ODL_SYSTEM_IP} --mappings ${MAPPINGS}
31 ${end_date}= Get Current Date
32 ${add_seconds}= Subtract Date From Date ${end_date} ${start_date}
34 Set Suite Variable ${add_seconds}
36 Generate Map-Request Test Traffic
38 ${result}= Run Process With Logging And Status Check /usr/local/bin/udpreplay --pps ${REPLAY_PPS} --repeat ${REPLAY_CNT}
39 ... --host ${ODL_SYSTEM_IP} --port 4342 ${REPLAY_FILE_MREQ}
40 ${partial}= Fetch From Left ${result.stdout} s =
42 ${get_seconds_mreq}= Fetch From Right ${partial} ${SPACE}
43 ${get_seconds_mreq}= Convert To Number ${get_seconds_mreq}
44 Log ${get_seconds_mreq}
45 Set Suite Variable ${get_seconds_mreq}
47 Generate Map-Register Test Traffic
48 Allow Unauthenticated Map-Registers
49 ${result}= Run Process With Logging And Status Check /usr/local/bin/udpreplay --pps ${REPLAY_PPS} --repeat ${REPLAY_CNT}
50 ... --host ${ODL_SYSTEM_IP} --port 4342 ${REPLAY_FILE_MREG}
51 ${partial}= Fetch From Left ${result.stdout} s =
53 ${get_seconds_mreg}= Fetch From Right ${partial} ${SPACE}
54 ${get_seconds_mreg}= Convert To Number ${get_seconds_mreg}
55 Log ${get_seconds_mreg}
56 Set Suite Variable ${get_seconds_mreg}
58 Compute And Export Results
59 ${rpcs}= Evaluate ${MAPPINGS}/${add_seconds}
61 Create File ${RPCS_RESULTS_FILE} store/s\n
62 Append To File ${RPCS_RESULTS_FILE} ${rpcs}\n
63 ${tx_mrep}= Get Transmitted Map-Requests Stats
64 ${pps_mrep}= Evaluate ${tx_mrep}/${get_seconds_mreq}
66 Create File ${PPS_RESULTS_FILE} replies/s,notifies/s\n
67 ${tx_mnot}= Get Transmitted Map-Notifies Stats
68 ${pps_mnot}= Evaluate ${tx_mnot}/${get_seconds_mreg}
70 Append To File ${PPS_RESULTS_FILE} ${pps_mrep},${pps_mnot}\n
74 ${resp}= RequestsLibrary.Post Request session ${LFM_SB_RPC_API}:reset-stats
76 Should Be Equal As Strings ${resp.status_code} 200
78 Allow Unauthenticated Map-Registers
79 ${add_key}= OperatingSystem.Get File ${JSON_DIR}/rpc_add-key_default.json
80 Post Log Check ${LFM_RPC_API}:add-key ${add_key}
82 Get Transmitted Map-Requests Stats
83 ${resp}= RequestsLibrary.Post Request session ${LFM_SB_RPC_API}:get-stats
85 ${output}= Get From Dictionary ${resp.json()} output
86 ${stats}= Get From Dictionary ${output} control-message-stats
87 ${ctrlmsg}= Get From Dictionary ${stats} control-message
88 ${replies}= Get From List ${ctrlmsg} 2
89 ${tx_mrep}= Get From Dictionary ${replies} tx-count
90 ${tx_mrep}= Convert To Integer ${tx_mrep}
94 Get Transmitted Map-Notifies Stats
95 ${resp}= RequestsLibrary.Post Request session ${LFM_SB_RPC_API}:get-stats
97 ${output}= Get From Dictionary ${resp.json()} output
98 ${stats}= Get From Dictionary ${output} control-message-stats
99 ${ctrlmsg}= Get From Dictionary ${stats} control-message
100 ${notifies}= Get From List ${ctrlmsg} 4
101 ${tx_mnot}= Get From Dictionary ${notifies} tx-count
102 ${tx_mnot}= Convert To Integer ${tx_mnot}
107 Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
108 Run Process With Logging And Status Check wget -P ${TOOLS_DIR} ${LISP_SCAPY}
109 Run Process With Logging And Status Check ${PCAP_CREATOR} --requests ${MAPPINGS}
113 Remove File ${TOOLS_DIR}/lisp.py*
114 Remove File ${REPLAY_FILE_MREQ}
115 Remove File ${REPLAY_FILE_MREG}