5 # Build locally without jenkins integrations
9 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
12 source ${SCRIPT_DIR}/run_report.cfg
14 # Install system dependencies
15 sudo apt-get -y update
16 sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
19 # Clean-up when finished
20 trap 'rm -rf ${DIR[WORKING]}; exit' EXIT
21 trap 'rm -rf ${DIR[WORKING]}; exit' ERR
23 # Remove the old build
24 rm -rf ${DIR[BUILD]} || true
25 rm -rf ${DIR[WORKING]} || true
27 # Create working directories
30 # Create virtual environment
31 virtualenv ${DIR[WORKING]}/env
32 . ${DIR[WORKING]}/env/bin/activate
34 # Install python dependencies:
35 pip install -r requirements.txt
37 export PYTHONPATH=`pwd`
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]}
48 ### VPP PERFORMANCE SOURCE DATA
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
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 ]] ;
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
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
74 ### DPDK PERFORMANCE SOURCE DATA
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
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 ]] ;
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
92 cp ${DIR[PLOT,DPDK]}/* ${DIR[STATIC,TREND]}
94 ### FUNCTIONAL SOURCE DATA
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
100 if [[ ${DEBUG} -eq 0 ]] ;
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
106 ### HONEYCOMB FUNCTIONAL SOURCE DATA
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
112 if [[ ${DEBUG} -eq 0 ]] ;
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
118 ### HONEYCOMB PERFORMANCE SOURCE DATA
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
124 if [[ ${DEBUG} -eq 0 ]] ;
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
133 ### NSH_SFC SOURCE DATA
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
139 if [[ ${DEBUG} -eq 0 ]] ;
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
145 # Data post processing
147 if [[ ${DEBUG} -eq 0 ]] ;
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
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 ./run_robot_json_data.py \
165 --input ${DIR[WORKING]}/output.xml \
166 --output ${DIR[DTR,PERF,VPP,IMPRV]}/${JOB[PERF,VPP]}-${i}.json \
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
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
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
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
198 # Generate tables for performance improvements
199 if [[ ${DEBUG} -eq 0 ]] ;
201 python run_improvments_tables.py \
202 --input ${DIR[DTR,PERF,VPP,IMPRV]} \
203 --output ${DIR[DTR,PERF,VPP,IMPRV]}
206 # Delete temporary json files
207 find ${DIR[RST]} -name "*.json" -type f -delete
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]}/
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;
223 .wy-table-responsive {
227 overflow: visible !important;
232 # Plot packets per second
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"))]'
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"))]'
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
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
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"))]'
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"))]'
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"))]'
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"))]'
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"))]'
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"))]'
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"))]'
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"))]'
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"))]'
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"))]'
374 # VPP VM VHOST SELECTION
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"))]'
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"))]'
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"))]'
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"))]'
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
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
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
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
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
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
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
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
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
533 # VPP VM VHOST selection
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
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
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
575 echo Creating csit.report.tar.gz ...
576 tar -czvf ./csit.report.tar.gz ${DIR[BUILD]}