FIX: Typo in report_gen
[csit.git] / resources / tools / report_gen / run_report.sh
1 #!/bin/bash
2
3 set -x
4
5 # Build locally without jenkins integrations
6 DEBUG=0
7
8 # Script directory
9 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
10
11 # Load configuration
12 source ${SCRIPT_DIR}/run_report.cfg
13
14 # Install system dependencies
15 sudo apt-get -y update
16 sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
17     zlib1g-dev unzip
18
19 # Clean-up when finished
20 trap 'rm -rf ${DIR[WORKING]}; exit' EXIT
21 trap 'rm -rf ${DIR[WORKING]}; exit' ERR
22
23 # Remove the old build
24 rm -rf ${DIR[BUILD]} || true
25 rm -rf ${DIR[WORKING]} || true
26
27 # Create working directories
28 mkdir ${DIR[WORKING]}
29
30 # Create virtual environment
31 virtualenv ${DIR[WORKING]}/env
32 . ${DIR[WORKING]}/env/bin/activate
33
34 # Install python dependencies:
35 pip install -r requirements.txt
36
37 export PYTHONPATH=`pwd`
38
39 # Download raw outputs for plots
40 echo Downloading raw outputs for plots ...
41 mkdir -p ${DIR[STATIC,VPP]}
42 mkdir -p ${DIR[STATIC,DPDK]}
43 mkdir -p ${DIR[STATIC,ARCH]}
44 mkdir -p ${DIR[STATIC,TREND]}
45 mkdir -p ${DIR[PLOT,VPP]}
46 mkdir -p ${DIR[PLOT,DPDK]}
47
48 ### VPP PERFORMANCE SOURCE DATA
49
50 #if [[ ${DEBUG} -eq 1 ]] ;
51 #    cp ./${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip
52 #fi
53
54 blds=${JOB[PERF,VPP,BLD]}
55 for i in ${blds[@]}; do
56     curl --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,VPP]}/${i}/robot/report/output_perf_data.xml \
57         --output ${DIR[PLOT,VPP]}/${JOB[PERF,VPP]}-${i}.xml
58     #curl --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,VPP]}/${i}/robot/report/output_perf_data.json \
59     #    --output ${DIR[PLOT,VPP]}/${JOB[PERF,VPP]}-${i}.json
60     if [[ ${DEBUG} -eq 0 ]] ;
61     then
62         curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,VPP]}/${i}/robot/report/\*zip\*/robot-plugin.zip \
63             --output ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${i}.zip
64     fi
65 done
66 # Archive trending
67 cp ${DIR[PLOT,VPP]}/* ${DIR[STATIC,TREND]}
68 blds=${JOB[1704,VPP,BLD]}
69 for i in ${blds[@]}; do
70     curl --silent ${URL[JENKINS,CSIT]}/${JOB[1704,PERF,VPP]}/${i}/robot/report/output_perf_data.xml \
71         --output ${DIR[STATIC,TREND]}/${JOB[1704,PERF,VPP]}-${i}.xml
72 done
73
74 ### DPDK PERFORMANCE SOURCE DATA
75
76 #if [[ ${DEBUG} -eq 1 ]] ;
77 #    cp ./${JOB[PERF,DPDK]}-${JOB[PERF,DPDK,FBLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[PERF,DPDK]}-${JOB[PERF,DPDK,FBLD]}.zip
78 #fi
79
80 blds=${JOB[PERF,DPDK,BLD]}
81 for i in ${blds[@]}; do
82     curl --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,DPDK]}/${i}/robot/report/output_perf_data.xml \
83         --output ${DIR[PLOT,DPDK]}/${JOB[PERF,DPDK]}-${i}.xml
84     #curl --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,DPDK]}/${i}/robot/report/output_perf_data.json \
85     #    --output ${DIR[PLOT,DPDK]}/${JOB[PERF,DPDK]}-${i}.json
86     if [[ ${DEBUG} -eq 0 ]] ;
87     then
88         curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,DPDK]}/${i}/robot/report/\*zip\*/robot-plugin.zip \
89             --output ${DIR[STATIC,ARCH]}/${JOB[PERF,DPDK]}-${i}.zip
90     fi
91 done
92 cp ${DIR[PLOT,DPDK]}/* ${DIR[STATIC,TREND]}
93
94 ### FUNCTIONAL SOURCE DATA
95
96 #if [[ ${DEBUG} -eq 1 ]] ;
97 #    cp ./${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip
98 #fi
99
100 if [[ ${DEBUG} -eq 0 ]] ;
101 then
102     curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[FUNC,VPP]}/${JOB[FUNC,VPP,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
103         --output ${DIR[STATIC,ARCH]}/${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip
104 fi
105
106 ### HONEYCOMB FUNCTIONAL SOURCE DATA
107
108 #if [[ ${DEBUG} -eq 1 ]] ;
109 #    cp ./${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip
110 #fi
111
112 if [[ ${DEBUG} -eq 0 ]] ;
113 then
114     curl --fail --silent ${URL[JENKINS,HC]}/${JOB[FUNC,HC]}/${JOB[FUNC,HC,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
115         --output ${DIR[STATIC,ARCH]}/${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip
116 fi
117
118 ### HONEYCOMB PERFORMANCE SOURCE DATA
119
120 #if [[ ${DEBUG} -eq 1 ]] ;
121 #    cp ./${JOB[PERF,HC]}-${JOB[PERF,HC,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[PERF,HC]}-${JOB[PERF,HC,BLD]}.zip
122 #fi
123
124 if [[ ${DEBUG} -eq 0 ]] ;
125 then
126     blds=${JOB[PERF,HC,BLD]}
127     for i in ${blds[@]}; do
128         curl --silent ${URL[JENKINS,HC]}/${JOB[PERF,HC]}/${JOB[PERF,HC,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
129             --output ${DIR[STATIC,ARCH]}/${JOB[PERF,HC]}-${JOB[PERF,HC,BLD]}.zip
130 done
131 fi
132
133 ### NSH_SFC SOURCE DATA
134
135 #if [[ ${DEBUG} -eq 1 ]] ;
136 #    cp ./${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip
137 #fi
138
139 if [[ ${DEBUG} -eq 0 ]] ;
140 then
141     curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[FUNC,NSH]}/${JOB[FUNC,NSH,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
142         --output ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip
143 fi
144
145 # Data post processing
146
147 if [[ ${DEBUG} -eq 0 ]] ;
148 then
149     # VPP PERF
150     unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip -d ${DIR[WORKING]}/
151     python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
152         --output ${DIR[DTR,PERF,VPP]}/vpp_performance_results.rst \
153         --formatting rst --start 4 --level 2
154     python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
155         --output ${DIR[DTC,PERF,VPP]}/vpp_performance_configuration.rst \
156         --data "VAT_H" --formatting rst --start 4 --level 2
157     python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
158         --output ${DIR[DTO,PERF,VPP]}/vpp_performance_operational_data.rst \
159         --data "SH_RUN" --formatting rst --start 4 --level 2
160
161     blds=${JOB[PERF,VPP,BLD]}
162     for i in ${blds[@]}; do
163         unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${i}.zip -d ${DIR[WORKING]}/
164         python run_robot_json_data.py \
165             --input ${DIR[WORKING]}/output.xml \
166             --output ${DIR[DTR,PERF,VPP,IMPRV]}/${JOB[PERF,VPP]}-${i}.json \
167             --vdevice ${i}
168     done
169
170     # DPDK PERF
171     unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,DPDK]}-${JOB[PERF,DPDK,FBLD]}.zip -d ${DIR[WORKING]}/
172     python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
173         --output ${DIR[DTR,PERF,DPDK]}/dpdk_performance_results.rst \
174         --formatting rst --start 4 --level 2
175
176     # VPP FUNC
177     unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip -d ${DIR[WORKING]}/
178     python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
179         --output ${DIR[DTR,FUNC,VPP]}/vpp_functional_results.rst \
180         --formatting rst --start 5 --level 2
181     python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
182         --output ${DIR[DTC,FUNC,VPP]}/vpp_functional_configuration.rst \
183         --data "VAT_H" --formatting rst --start 5 --level 2
184
185     # HC FUNC
186     unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip -d ${DIR[WORKING]}/
187     python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
188         --output ${DIR[DTR,FUNC,HC]}/honeycomb_functional_results.rst \
189         --formatting rst --start 5 --level 2
190
191     # NSHSFC FUNC
192     unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip -d ${DIR[WORKING]}/
193     python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
194         --output ${DIR[DTR,FUNC,NSHSFC]}/nshsfc_functional_results.rst \
195         --formatting rst --start 5 --level 2
196 fi
197
198 # Generate tables for performance improvements
199 if [[ ${DEBUG} -eq 0 ]] ;
200 then
201     python run_improvments_tables.py \
202         --input ${DIR[DTR,PERF,VPP,IMPRV]} \
203         --output ${DIR[DTR,PERF,VPP,IMPRV]}
204 fi
205
206 # Delete temporary json files
207 find ${DIR[RST]} -name "*.json" -type f -delete
208
209 # Generate the documentation
210 DATE=$(date -u '+%d-%b-%Y')
211 sphinx-build -v -c . -a -b html -E \
212     -D release=$1 -D version="$1 report - $DATE" \
213     ${DIR[RST]} ${DIR[BUILD]}/
214
215 # Patch the CSS for tables layout
216 cat - > ${DIR[CSS_PATCH_FILE]} <<"_EOF"
217 /* override table width restrictions */
218 @media screen and (min-width: 767px) {
219     .wy-table-responsive table td, .wy-table-responsive table th {
220         white-space: normal !important;
221     }
222
223     .wy-table-responsive {
224         font-size: small;
225         margin-bottom: 24px;
226         max-width: 100%;
227         overflow: visible !important;
228     }
229 }
230 _EOF
231
232 # Plot packets per second
233
234 # VPP L2 sel1
235
236 python run_plot.py --input ${DIR[PLOT,VPP]} \
237     --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-ndrdisc \
238     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
239     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
240 python run_plot.py --input ${DIR[PLOT,VPP]} \
241     --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel1-ndrdisc \
242     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
243     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
244
245 python run_plot.py --input ${DIR[PLOT,VPP]} \
246     --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-pdrdisc \
247     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
248     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
249 python run_plot.py --input ${DIR[PLOT,VPP]} \
250     --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel1-pdrdisc \
251     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
252     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
253
254 # VPP L2 sel2
255
256 python run_plot.py --input ${DIR[PLOT,VPP]} \
257     --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel2-ndrdisc \
258     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
259     --xpath '//*[@framesize="64B" and ((contains(@tags,"FEATURE") and contains(@tags,"ACL50") and contains(@tags,"10k_FLOWS"))) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --lower 0 --upper 8000000
260 python run_plot.py --input ${DIR[PLOT,VPP]} \
261     --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel2-ndrdisc \
262     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
263     --xpath '//*[@framesize="64B" and ((contains(@tags,"FEATURE") and contains(@tags,"ACL50") and contains(@tags,"10k_FLOWS"))) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --lower 5000000 --upper 12000000
264
265 python run_plot.py --input ${DIR[PLOT,VPP]} \
266     --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel2-pdrdisc \
267     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
268     --xpath '//*[@framesize="64B" and ((contains(@tags,"FEATURE") and contains(@tags,"ACL50") and contains(@tags,"10k_FLOWS"))) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --lower 0 --upper 8000000
269 python run_plot.py --input ${DIR[PLOT,VPP]} \
270     --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel2-pdrdisc \
271     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
272     --xpath '//*[@framesize="64B" and ((contains(@tags,"FEATURE") and contains(@tags,"ACL50") and contains(@tags,"10k_FLOWS"))) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --lower 5000000 --upper 12000000
273
274 # VPP IP4
275
276 python run_plot.py --input ${DIR[PLOT,VPP]} \
277     --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-ndrdisc \
278     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
279     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
280 python run_plot.py --input ${DIR[PLOT,VPP]} \
281     --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-ndrdisc \
282     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
283     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
284
285 python run_plot.py --input ${DIR[PLOT,VPP]} \
286     --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-pdrdisc \
287     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
288     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
289 python run_plot.py --input ${DIR[PLOT,VPP]} \
290     --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-pdrdisc \
291     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
292     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
293
294 # VPP IP6
295
296 python run_plot.py --input ${DIR[PLOT,VPP]} \
297     --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-ndrdisc \
298     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
299     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
300 python run_plot.py --input ${DIR[PLOT,VPP]} \
301     --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-ndrdisc \
302     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
303     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
304
305 python run_plot.py --input ${DIR[PLOT,VPP]} \
306     --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-pdrdisc \
307     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
308     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
309 python run_plot.py --input ${DIR[PLOT,VPP]} \
310     --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-pdrdisc \
311     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
312     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
313
314 # VPP IP4_overlay
315
316 python run_plot.py --input ${DIR[PLOT,VPP]} \
317     --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ndrdisc \
318     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
319     --xpath '//*[@framesize="64B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST")) and not(contains(@tags, "IPSECHW"))]'
320 python run_plot.py --input ${DIR[PLOT,VPP]} \
321     --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ndrdisc \
322     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
323     --xpath '//*[@framesize="64B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST")) and not(contains(@tags, "IPSECHW"))]'
324
325 python run_plot.py --input ${DIR[PLOT,VPP]} \
326     --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-pdrdisc \
327     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
328     --xpath '//*[@framesize="64B" and contains(@tags,"ENCAP") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST")) and not(contains(@tags, "IPSECHW"))]'
329 python run_plot.py --input ${DIR[PLOT,VPP]} \
330     --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-pdrdisc \
331     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
332     --xpath '//*[@framesize="64B" and contains(@tags,"ENCAP") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST")) and not(contains(@tags, "IPSECHW"))]'
333
334 # VPP IP6_overlay
335
336 python run_plot.py --input ${DIR[PLOT,VPP]} \
337     --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ndrdisc \
338     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
339     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]'
340 python run_plot.py --input ${DIR[PLOT,VPP]} \
341     --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ndrdisc \
342     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
343     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]'
344
345 python run_plot.py --input ${DIR[PLOT,VPP]} \
346     --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-pdrdisc \
347     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
348     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]'
349 python run_plot.py --input ${DIR[PLOT,VPP]} \
350     --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-pdrdisc \
351     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
352     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]'
353
354 # VPP VM VHOST
355
356 python run_plot.py --input ${DIR[PLOT,VPP]} \
357     --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-ndrdisc \
358     --title "64B-1t1c-.*vhost.*-ndrdisc" \
359     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST") and not(contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD"))]'
360 python run_plot.py --input ${DIR[PLOT,VPP]} \
361     --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-ndrdisc \
362     --title "64B-2t2c-.*vhost.*-ndrdisc" \
363     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST") and not(contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD"))]'
364
365 python run_plot.py --input ${DIR[PLOT,VPP]} \
366     --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-pdrdisc \
367     --title "64B-1t1c-.*vhost.*-pdrdisc" \
368     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"1T1C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST") and not(contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD"))]'
369 python run_plot.py --input ${DIR[PLOT,VPP]} \
370     --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-pdrdisc \
371     --title "64B-2t2c-.*vhost.*-pdrdisc" \
372     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"2T2C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST") and not(contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD"))]'
373
374 # VPP VM VHOST SELECTION
375
376 python run_plot.py --input ${DIR[PLOT,VPP]} \
377     --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-ndrdisc \
378     --title "64B-1t1c-.*vhost.*-ndrdisc" \
379     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]'
380 python run_plot.py --input ${DIR[PLOT,VPP]} \
381     --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-ndrdisc \
382     --title "64B-2t2c-.*vhost.*-ndrdisc" \
383     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]'
384
385 python run_plot.py --input ${DIR[PLOT,VPP]} \
386     --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-pdrdisc \
387     --title "64B-1t1c-.*vhost.*-pdrdisc" \
388     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"1T1C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]'
389 python run_plot.py --input ${DIR[PLOT,VPP]} \
390     --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-pdrdisc \
391     --title "64B-2t2c-.*vhost.*-pdrdisc" \
392     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"2T2C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]'
393
394 # VPP CRYPTO
395
396 python run_plot.py --input ${DIR[PLOT,VPP]} \
397     --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-ndrdisc \
398     --title "64B-1t1c-.*ipsec.*-ndrdisc" \
399     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "NDRDISC") and contains(@tags, "1T1C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]'
400 python run_plot.py --input ${DIR[PLOT,VPP]} \
401     --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-ndrdisc \
402     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
403     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "NDRDISC") and contains(@tags, "2T2C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]'
404
405 python run_plot.py --input ${DIR[PLOT,VPP]} \
406     --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-pdrdisc \
407     --title "64B-1t1c-.*ipsec.*-pdrdisc" \
408     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags, "1T1C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]'
409 python run_plot.py --input ${DIR[PLOT,VPP]} \
410     --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-pdrdisc \
411     --title "64B-2t2c-.*ipsec.*-pdrdisc" \
412     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags, "2T2C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]'
413
414 # DPDK
415
416 python run_plot.py --input ${DIR[PLOT,DPDK]} \
417     --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-ndrdisc \
418     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
419     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
420 python run_plot.py --input ${DIR[PLOT,DPDK]} \
421     --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-ndrdisc \
422     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
423     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
424 python run_plot.py --input ${DIR[PLOT,DPDK]} \
425     --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-ndrdisc \
426     --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
427     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
428     --lower 2000000 --upper 12000000
429 python run_plot.py --input ${DIR[PLOT,DPDK]} \
430     --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-ndrdisc \
431     --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
432     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
433     --lower 2000000 --upper 12000000
434
435 python run_plot.py --input ${DIR[PLOT,DPDK]} \
436     --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-pdrdisc \
437     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
438     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
439 python run_plot.py --input ${DIR[PLOT,DPDK]} \
440     --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-pdrdisc \
441     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
442     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
443 python run_plot.py --input ${DIR[PLOT,DPDK]} \
444     --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-pdrdisc \
445     --title "64B-1t1c-ethip4-ip4base-l3fwd-pdrdisc" \
446     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
447     --lower 20000000 --upper 30000000
448 python run_plot.py --input ${DIR[PLOT,DPDK]} \
449     --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-pdrdisc \
450     --title "64B-2t2c-ethip4-ip4base-l3fwd-pdrdisc" \
451     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
452     --lower 20000000 --upper 30000000
453
454 # Plot latency
455
456 # VPP L2 sel1
457
458 python run_plot.py --input ${DIR[PLOT,VPP]} \
459     --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-ndrdisc-lat50 \
460     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
461     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --latency lat_50
462 python run_plot.py --input ${DIR[PLOT,VPP]} \
463     --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel1-ndrdisc-lat50 \
464     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
465     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --latency lat_50
466
467 # VPP L2 sel2
468
469 python run_plot.py --input ${DIR[PLOT,VPP]} \
470     --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel2-ndrdisc-lat50 \
471     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
472     --xpath '//*[@framesize="64B" and ((contains(@tags,"FEATURE") and contains(@tags,"ACL50") and contains(@tags,"10k_FLOWS"))) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --latency lat_50
473 python run_plot.py --input ${DIR[PLOT,VPP]} \
474     --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel2-ndrdisc-lat50 \
475     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
476     --xpath '//*[@framesize="64B" and ((contains(@tags,"FEATURE") and contains(@tags,"ACL50") and contains(@tags,"10k_FLOWS"))) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --latency lat_50
477
478 # VPP IP4
479
480 python run_plot.py --input ${DIR[PLOT,VPP]} \
481     --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
482     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
483     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
484 python run_plot.py --input ${DIR[PLOT,VPP]} \
485     --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
486     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
487     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
488
489 # VPP IP6
490
491 python run_plot.py --input ${DIR[PLOT,VPP]} \
492     --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
493     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
494     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
495 python run_plot.py --input ${DIR[PLOT,VPP]} \
496     --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
497     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
498     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
499
500 # VPP IP4_overlay
501
502 python run_plot.py --input ${DIR[PLOT,VPP]} \
503     --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ndrdisc-lat50 \
504     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
505     --xpath '//*[@framesize="64B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST")) and not(contains(@tags, "IPSECHW"))]' --latency lat_50
506 python run_plot.py --input ${DIR[PLOT,VPP]} \
507     --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ndrdisc-lat50 \
508     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
509     --xpath '//*[@framesize="64B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST")) and not(contains(@tags, "IPSECHW"))]' --latency lat_50
510
511 # VPP IP6_overlay
512
513 python run_plot.py --input ${DIR[PLOT,VPP]} \
514     --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ndrdisc-lat50 \
515     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
516     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]' --latency lat_50
517 python run_plot.py --input ${DIR[PLOT,VPP]} \
518     --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ndrdisc-lat50 \
519     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
520     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]' --latency lat_50
521
522 # VPP VM VHOST
523
524 python run_plot.py --input ${DIR[PLOT,VPP]} \
525     --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-ndrdisc-lat50 \
526     --title "64B-1t1c-.*vhost.*-ndrdisc" \
527     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST") and not(contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD"))]' --latency lat_50
528 python run_plot.py --input ${DIR[PLOT,VPP]} \
529     --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-ndrdisc-lat50 \
530     --title "64B-2t2c-.*vhost.*-ndrdisc" \
531     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST") and not(contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD"))]' --latency lat_50
532
533 # VPP VM VHOST selection
534
535 python run_plot.py --input ${DIR[PLOT,VPP]} \
536     --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-ndrdisc-lat50 \
537     --title "64B-1t1c-.*vhost.*-ndrdisc" \
538     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]' --latency lat_50
539 python run_plot.py --input ${DIR[PLOT,VPP]} \
540     --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-ndrdisc-lat50 \
541     --title "64B-2t2c-.*vhost.*-ndrdisc" \
542     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]' --latency lat_50
543
544 # VPP CRYPTO
545
546 python run_plot.py --input ${DIR[PLOT,VPP]} \
547     --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-ndrdisc-lat50 \
548     --title "64B-1t1c-.*ipsec.*-ndrdisc" \
549     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "NDRDISC") and contains(@tags, "1T1C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]' --latency lat_50
550 python run_plot.py --input ${DIR[PLOT,VPP]} \
551     --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-ndrdisc-lat50 \
552     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
553     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "NDRDISC") and contains(@tags, "2T2C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]' --latency lat_50
554
555 # DPDK
556
557 python run_plot.py --input ${DIR[PLOT,DPDK]} \
558     --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-ndrdisc-lat50 \
559     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
560     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --latency lat_50
561 python run_plot.py --input ${DIR[PLOT,DPDK]} \
562     --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-ndrdisc-lat50 \
563     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
564     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --latency lat_50
565 python run_plot.py --input ${DIR[PLOT,DPDK]} \
566     --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-ndrdisc-lat50 \
567     --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
568     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' --latency lat_50
569 python run_plot.py --input ${DIR[PLOT,DPDK]} \
570     --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-ndrdisc-lat50 \
571     --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
572     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' --latency lat_50
573
574 # Create archive
575 echo Creating csit.report.tar.gz ...
576 tar -czvf ./csit.report.tar.gz ${DIR[BUILD]}