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 Variables ../../../variables/Variables.py
15 ${LISP_SCAPY} https://raw.githubusercontent.com/intouch/py-lispnetworking/master/lisp.py
16 ${TOOLS_DIR} ${CURDIR}/../../../../tools/odl-lispflowmapping-performance-tests/
17 ${PCAP_CREATOR} ${TOOLS_DIR}/create_lisp_control_plane_pcap.py
18 ${MAPPING_BLASTER} ${TOOLS_DIR}/mapping_blaster.py
21 ${REPLAY_FILE_MREQ} encapsulated-map-requests-sequential.pcap
22 ${REPLAY_FILE_MREG} map-registers-sequential.pcap
23 ${RPCS_RESULTS_FILE} rpcs.csv
24 ${PPS_RESULTS_FILE} pps.csv
27 Add Simple IPv4 Mappings
28 ${start_date}= Get Current Date
29 Run Process With Logging And Status Check ${MAPPING_BLASTER} --host ${ODL_SYSTEM_IP} --mappings ${MAPPINGS}
30 ${end_date}= Get Current Date
31 ${add_seconds}= Subtract Date From Date ${end_date} ${start_date}
33 Set Suite Variable ${add_seconds}
35 Generate Map-Request Test Traffic
37 ${result}= Run Process With Logging And Status Check /usr/local/bin/udpreplay --pps ${REPLAY_PPS} --repeat ${REPLAY_CNT}
38 ... --host ${ODL_SYSTEM_IP} --port 4342 ${REPLAY_FILE_MREQ}
39 ${partial}= Fetch From Left ${result.stdout} s =
41 ${get_seconds_mreq}= Fetch From Right ${partial} ${SPACE}
42 ${get_seconds_mreq}= Convert To Number ${get_seconds_mreq}
43 Log ${get_seconds_mreq}
44 Set Suite Variable ${get_seconds_mreq}
46 Generate Map-Register Test Traffic
47 ${result}= Run Process With Logging And Status Check /usr/local/bin/udpreplay --pps ${REPLAY_PPS} --repeat ${REPLAY_CNT}
48 ... --host ${ODL_SYSTEM_IP} --port 4342 ${REPLAY_FILE_MREG}
49 ${partial}= Fetch From Left ${result.stdout} s =
51 ${get_seconds_mreg}= Fetch From Right ${partial} ${SPACE}
52 ${get_seconds_mreg}= Convert To Number ${get_seconds_mreg}
53 Log ${get_seconds_mreg}
54 Set Suite Variable ${get_seconds_mreg}
56 Compute And Export Results
57 ${rpcs}= Evaluate ${MAPPINGS}/${add_seconds}
59 Create File ${RPCS_RESULTS_FILE} store/s\n
60 Append To File ${RPCS_RESULTS_FILE} ${rpcs}\n
61 ${tx_mrep}= Get Transmitted Map-Requests Stats
62 ${pps_mrep}= Evaluate ${tx_mrep}/${get_seconds_mreq}
64 Create File ${PPS_RESULTS_FILE} replies/s,notifies/s\n
65 ${tx_mnot}= Get Transmitted Map-Notifies Stats
66 ${pps_mnot}= Evaluate ${tx_mnot}/${get_seconds_mreg}
68 Append To File ${PPS_RESULTS_FILE} ${pps_mrep},${pps_mnot}\n
72 ${resp}= RequestsLibrary.Post Request session ${LFM_SB_RPC_API}:reset-stats
74 Should Be Equal As Strings ${resp.status_code} 200
76 Get Transmitted Map-Requests Stats
77 ${resp}= RequestsLibrary.Post Request session ${LFM_SB_RPC_API}:get-stats
79 ${output}= Get From Dictionary ${resp.json()} output
80 ${stats}= Get From Dictionary ${output} control-message-stats
81 ${ctrlmsg}= Get From Dictionary ${stats} control-message
82 ${replies}= Get From List ${ctrlmsg} 2
83 ${tx_mrep}= Get From Dictionary ${replies} tx-count
84 ${tx_mrep}= Convert To Integer ${tx_mrep}
88 Get Transmitted Map-Notifies Stats
89 ${resp}= RequestsLibrary.Post Request session ${LFM_SB_RPC_API}:get-stats
91 ${output}= Get From Dictionary ${resp.json()} output
92 ${stats}= Get From Dictionary ${output} control-message-stats
93 ${ctrlmsg}= Get From Dictionary ${stats} control-message
94 ${notifies}= Get From List ${ctrlmsg} 4
95 ${tx_mnot}= Get From Dictionary ${notifies} tx-count
96 ${tx_mnot}= Convert To Integer ${tx_mnot}
101 Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
102 Run Process With Logging And Status Check wget -P ${TOOLS_DIR} ${LISP_SCAPY}
103 Run Process With Logging And Status Check ${PCAP_CREATOR} --requests ${MAPPINGS}
107 Remove File ${TOOLS_DIR}/lisp.py*
108 Remove File ${REPLAY_FILE_MREQ}
109 Remove File ${REPLAY_FILE_MREG}