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 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 ### NSH_SFC SOURCE DATA
120 #if [[ ${DEBUG} -eq 1 ]] ;
121 # cp ./${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip
124 if [[ ${DEBUG} -eq 0 ]] ;
126 curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[FUNC,NSH]}/${JOB[FUNC,NSH,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
127 --output ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip
130 # Data post processing
132 if [[ ${DEBUG} -eq 0 ]] ;
135 unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip -d ${DIR[WORKING]}/
136 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
137 --output ${DIR[DTR,PERF,VPP]}/vpp_performance_results.rst \
138 --formatting rst --start 4 --level 2
139 python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
140 --output ${DIR[DTC,PERF,VPP]}/vpp_performance_configuration.rst \
141 --data "VAT_H" --formatting rst --start 4 --level 2
142 python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
143 --output ${DIR[DTO,PERF,VPP]}/vpp_performance_operational_data.rst \
144 --data "SH_RUN" --formatting rst --start 4 --level 2
146 blds=${JOB[PERF,VPP,BLD]}
147 for i in ${blds[@]}; do
148 unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${i}.zip -d ${DIR[WORKING]}/
149 ./run_robot_json_data.py \
150 --input ${DIR[WORKING]}/output.xml \
151 --output ${DIR[DTR,PERF,VPP,IMPRV]}/${JOB[PERF,VPP]}-${i}.json \
156 unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,DPDK]}-${JOB[PERF,DPDK,FBLD]}.zip -d ${DIR[WORKING]}/
157 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
158 --output ${DIR[DTR,PERF,DPDK]}/dpdk_performance_results.rst \
159 --formatting rst --start 4 --level 2
162 unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip -d ${DIR[WORKING]}/
163 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
164 --output ${DIR[DTR,FUNC,VPP]}/vpp_functional_results.rst \
165 --formatting rst --start 5 --level 2
166 python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
167 --output ${DIR[DTC,FUNC,VPP]}/vpp_functional_configuration.rst \
168 --data "VAT_H" --formatting rst --start 5 --level 2
171 unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip -d ${DIR[WORKING]}/
172 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
173 --output ${DIR[DTR,FUNC,HC]}/honeycomb_functional_results.rst \
174 --formatting rst --start 5 --level 2
177 unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip -d ${DIR[WORKING]}/
178 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
179 --output ${DIR[DTR,FUNC,NSHSFC]}/nshsfc_functional_results.rst \
180 --formatting rst --start 5 --level 2
183 # Generate tables for performance improvements
184 ./run_improvments_tables.py \
185 --input ${DIR[DTR,PERF,VPP,IMPRV]} \
186 --output ${DIR[DTR,PERF,VPP,IMPRV]}
188 # Delete temporary json files
189 find ${DIR[RST]} -name "*.json" -type f -delete
191 # Generate the documentation
192 DATE=$(date -u '+%d-%b-%Y')
193 sphinx-build -v -c . -a -b html -E \
194 -D release=$1 -D version="$1 report - $DATE" \
195 ${DIR[RST]} ${DIR[BUILD]}/
197 # Patch the CSS for tables layout
198 cat - > ${DIR[CSS_PATCH_FILE]} <<"_EOF"
199 /* override table width restrictions */
200 @media screen and (min-width: 767px) {
201 .wy-table-responsive table td, .wy-table-responsive table th {
202 white-space: normal !important;
205 .wy-table-responsive {
209 overflow: visible !important;
214 # Plot packets per second
218 python run_plot.py --input ${DIR[PLOT,VPP]} \
219 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-ndrdisc \
220 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
221 --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or (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"))]'
222 python run_plot.py --input ${DIR[PLOT,VPP]} \
223 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-ndrdisc \
224 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
225 --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or (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"))]'
227 python run_plot.py --input ${DIR[PLOT,VPP]} \
228 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-pdrdisc \
229 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
230 --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or (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"))]'
231 python run_plot.py --input ${DIR[PLOT,VPP]} \
232 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-pdrdisc \
233 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
234 --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or (contains(@tags,"FEATURE") and contains(@tags,"ACL50") and contains(@tags,"10k_FLOWS"))) 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"))]'
238 python run_plot.py --input ${DIR[PLOT,VPP]} \
239 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-ndrdisc \
240 --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
241 --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"))]'
242 python run_plot.py --input ${DIR[PLOT,VPP]} \
243 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-ndrdisc \
244 --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
245 --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"))]'
247 python run_plot.py --input ${DIR[PLOT,VPP]} \
248 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-pdrdisc \
249 --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
250 --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"))]'
251 python run_plot.py --input ${DIR[PLOT,VPP]} \
252 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-pdrdisc \
253 --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
254 --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"))]'
258 python run_plot.py --input ${DIR[PLOT,VPP]} \
259 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-ndrdisc \
260 --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
261 --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"))]'
262 python run_plot.py --input ${DIR[PLOT,VPP]} \
263 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-ndrdisc \
264 --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
265 --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"))]'
267 python run_plot.py --input ${DIR[PLOT,VPP]} \
268 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-pdrdisc \
269 --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
270 --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"))]'
271 python run_plot.py --input ${DIR[PLOT,VPP]} \
272 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-pdrdisc \
273 --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
274 --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"))]'
278 python run_plot.py --input ${DIR[PLOT,VPP]} \
279 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ndrdisc \
280 --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
281 --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"))]'
282 python run_plot.py --input ${DIR[PLOT,VPP]} \
283 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ndrdisc \
284 --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
285 --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"))]'
287 python run_plot.py --input ${DIR[PLOT,VPP]} \
288 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-pdrdisc \
289 --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
290 --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"))]'
291 python run_plot.py --input ${DIR[PLOT,VPP]} \
292 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-pdrdisc \
293 --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
294 --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"))]'
298 python run_plot.py --input ${DIR[PLOT,VPP]} \
299 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ndrdisc \
300 --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
301 --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"))]'
302 python run_plot.py --input ${DIR[PLOT,VPP]} \
303 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ndrdisc \
304 --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
305 --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"))]'
307 python run_plot.py --input ${DIR[PLOT,VPP]} \
308 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-pdrdisc \
309 --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
310 --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"))]'
311 python run_plot.py --input ${DIR[PLOT,VPP]} \
312 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-pdrdisc \
313 --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
314 --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"))]'
318 python run_plot.py --input ${DIR[PLOT,VPP]} \
319 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-ndrdisc \
320 --title "64B-1t1c-.*vhost.*-ndrdisc" \
321 --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"))]'
322 python run_plot.py --input ${DIR[PLOT,VPP]} \
323 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-ndrdisc \
324 --title "64B-2t2c-.*vhost.*-ndrdisc" \
325 --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"))]'
327 python run_plot.py --input ${DIR[PLOT,VPP]} \
328 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-pdrdisc \
329 --title "64B-1t1c-.*vhost.*-pdrdisc" \
330 --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"))]'
331 python run_plot.py --input ${DIR[PLOT,VPP]} \
332 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-pdrdisc \
333 --title "64B-2t2c-.*vhost.*-pdrdisc" \
334 --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"))]'
336 # VPP VM VHOST SELECTION
338 python run_plot.py --input ${DIR[PLOT,VPP]} \
339 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-ndrdisc \
340 --title "64B-1t1c-.*vhost.*-ndrdisc" \
341 --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"))]'
342 python run_plot.py --input ${DIR[PLOT,VPP]} \
343 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-ndrdisc \
344 --title "64B-2t2c-.*vhost.*-ndrdisc" \
345 --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"))]'
347 python run_plot.py --input ${DIR[PLOT,VPP]} \
348 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-pdrdisc \
349 --title "64B-1t1c-.*vhost.*-pdrdisc" \
350 --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"))]'
351 python run_plot.py --input ${DIR[PLOT,VPP]} \
352 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-pdrdisc \
353 --title "64B-2t2c-.*vhost.*-pdrdisc" \
354 --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"))]'
358 python run_plot.py --input ${DIR[PLOT,VPP]} \
359 --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-ndrdisc \
360 --title "64B-1t1c-.*ipsec.*-ndrdisc" \
361 --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"))]'
362 python run_plot.py --input ${DIR[PLOT,VPP]} \
363 --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-ndrdisc \
364 --title "64B-2t2c-.*ipsec.*-ndrdisc" \
365 --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"))]'
367 python run_plot.py --input ${DIR[PLOT,VPP]} \
368 --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-pdrdisc \
369 --title "64B-1t1c-.*ipsec.*-pdrdisc" \
370 --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"))]'
371 python run_plot.py --input ${DIR[PLOT,VPP]} \
372 --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-pdrdisc \
373 --title "64B-2t2c-.*ipsec.*-pdrdisc" \
374 --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"))]'
378 python run_plot.py --input ${DIR[PLOT,DPDK]} \
379 --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-ndrdisc \
380 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
381 --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"))]'
382 python run_plot.py --input ${DIR[PLOT,DPDK]} \
383 --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-ndrdisc \
384 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
385 --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"))]'
386 python run_plot.py --input ${DIR[PLOT,DPDK]} \
387 --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-ndrdisc \
388 --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
389 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
390 --lower 2000000 --upper 12000000
391 python run_plot.py --input ${DIR[PLOT,DPDK]} \
392 --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-ndrdisc \
393 --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
394 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
395 --lower 2000000 --upper 12000000
397 python run_plot.py --input ${DIR[PLOT,DPDK]} \
398 --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-pdrdisc \
399 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
400 --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"))]'
401 python run_plot.py --input ${DIR[PLOT,DPDK]} \
402 --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-pdrdisc \
403 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
404 --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"))]'
405 python run_plot.py --input ${DIR[PLOT,DPDK]} \
406 --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-pdrdisc \
407 --title "64B-1t1c-ethip4-ip4base-l3fwd-pdrdisc" \
408 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
409 --lower 20000000 --upper 30000000
410 python run_plot.py --input ${DIR[PLOT,DPDK]} \
411 --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-pdrdisc \
412 --title "64B-2t2c-ethip4-ip4base-l3fwd-pdrdisc" \
413 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
414 --lower 20000000 --upper 30000000
420 python run_plot.py --input ${DIR[PLOT,VPP]} \
421 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-ndrdisc-lat50 \
422 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
423 --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or (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
424 python run_plot.py --input ${DIR[PLOT,VPP]} \
425 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-ndrdisc-lat50 \
426 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
427 --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or (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
431 python run_plot.py --input ${DIR[PLOT,VPP]} \
432 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
433 --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
434 --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
435 python run_plot.py --input ${DIR[PLOT,VPP]} \
436 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
437 --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
438 --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
442 python run_plot.py --input ${DIR[PLOT,VPP]} \
443 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
444 --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
445 --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
446 python run_plot.py --input ${DIR[PLOT,VPP]} \
447 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
448 --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
449 --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
453 python run_plot.py --input ${DIR[PLOT,VPP]} \
454 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ndrdisc-lat50 \
455 --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
456 --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
457 python run_plot.py --input ${DIR[PLOT,VPP]} \
458 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ndrdisc-lat50 \
459 --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
460 --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
464 python run_plot.py --input ${DIR[PLOT,VPP]} \
465 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ndrdisc-lat50 \
466 --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
467 --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
468 python run_plot.py --input ${DIR[PLOT,VPP]} \
469 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ndrdisc-lat50 \
470 --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
471 --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
475 python run_plot.py --input ${DIR[PLOT,VPP]} \
476 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-ndrdisc-lat50 \
477 --title "64B-1t1c-.*vhost.*-ndrdisc" \
478 --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
479 python run_plot.py --input ${DIR[PLOT,VPP]} \
480 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-ndrdisc-lat50 \
481 --title "64B-2t2c-.*vhost.*-ndrdisc" \
482 --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
484 # VPP VM VHOST selection
486 python run_plot.py --input ${DIR[PLOT,VPP]} \
487 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-ndrdisc-lat50 \
488 --title "64B-1t1c-.*vhost.*-ndrdisc" \
489 --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
490 python run_plot.py --input ${DIR[PLOT,VPP]} \
491 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-ndrdisc-lat50 \
492 --title "64B-2t2c-.*vhost.*-ndrdisc" \
493 --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
497 python run_plot.py --input ${DIR[PLOT,VPP]} \
498 --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-ndrdisc-lat50 \
499 --title "64B-1t1c-.*ipsec.*-ndrdisc" \
500 --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
501 python run_plot.py --input ${DIR[PLOT,VPP]} \
502 --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-ndrdisc-lat50 \
503 --title "64B-2t2c-.*ipsec.*-ndrdisc" \
504 --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
508 python run_plot.py --input ${DIR[PLOT,DPDK]} \
509 --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-ndrdisc-lat50 \
510 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
511 --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
512 python run_plot.py --input ${DIR[PLOT,DPDK]} \
513 --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-ndrdisc-lat50 \
514 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
515 --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
516 python run_plot.py --input ${DIR[PLOT,DPDK]} \
517 --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-ndrdisc-lat50 \
518 --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
519 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' --latency lat_50
520 python run_plot.py --input ${DIR[PLOT,DPDK]} \
521 --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-ndrdisc-lat50 \
522 --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
523 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' --latency lat_50
526 echo Creating csit.report.tar.gz ...
527 tar -czvf ./csit.report.tar.gz ${DIR[BUILD]}