6 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9 DATE=$(date -u '+%d-%b-%Y')
12 source ${SCRIPT_DIR}/run_report.cfg
32 # Install system dependencies
33 sudo apt-get -y update
34 sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
36 if [[ ${CFG[BLD_LATEX]} -eq 1 ]] ;
38 sudo apt-get -y install xvfb texlive-latex-recommended \
39 texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra latexmk wkhtmltopdf
40 sudo sed -i.bak 's/^\(main_memory\s=\s\).*/\110000000/' /usr/share/texlive/texmf-dist/web2c/texmf.cnf
43 # Clean-up when finished
44 trap 'rm -rf ${DIR[WORKING]}; exit' EXIT
45 trap 'rm -rf ${DIR[WORKING]}; exit' ERR
47 # Remove the old build
48 rm -rf ${DIR[BUILD,HTML]} || true
49 rm -rf ${DIR[BUILD,LATEX]} || true
50 rm -rf ${DIR[WORKING]} || true
52 # Create working directories
55 # Create virtual environment
56 virtualenv ${DIR[WORKING]}/env
57 . ${DIR[WORKING]}/env/bin/activate
59 # Install python dependencies:
60 pip install -r requirements.txt
62 export PYTHONPATH=`pwd`
64 # Download raw outputs for plots
65 echo Downloading raw outputs for plots ...
66 mkdir -p ${DIR[STATIC,VPP]}
67 mkdir -p ${DIR[STATIC,DPDK]}
68 mkdir -p ${DIR[STATIC,ARCH]}
69 mkdir -p ${DIR[STATIC,TREND]}
70 mkdir -p ${DIR[PLOT,VPP]}
71 mkdir -p ${DIR[PLOT,DPDK]}
73 ### VPP PERFORMANCE SOURCE DATA
75 #if [[ ${CFG[DEBUG]} -eq 1 ]] ;
76 # cp ./${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip
79 blds=${JOB[PERF,VPP,BLD]}
80 for i in ${blds[@]}; do
81 curl --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,VPP]}/${i}/robot/report/output_perf_data.xml \
82 --output ${DIR[PLOT,VPP]}/${JOB[PERF,VPP]}-${i}.xml
83 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
85 curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,VPP]}/${i}/robot/report/\*zip\*/robot-plugin.zip \
86 --output ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${i}.zip
89 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
91 curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,VPP]}/${JOB[PERF,VPP,FBLD]}/robot/report/\*zip\*/robot-plugin.zip \
92 --output ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip
95 cp ${DIR[PLOT,VPP]}/* ${DIR[STATIC,TREND]}
96 blds=${JOB[1704,VPP,BLD]}
97 for i in ${blds[@]}; do
98 curl --silent ${URL[JENKINS,CSIT]}/${JOB[1704,PERF,VPP]}/${i}/robot/report/output_perf_data.xml \
99 --output ${DIR[STATIC,TREND]}/${JOB[1704,PERF,VPP]}-${i}.xml
102 ### DPDK PERFORMANCE SOURCE DATA
104 #if [[ ${CFG[DEBUG]} -eq 1 ]] ;
105 # cp ./${JOB[PERF,DPDK]}-${JOB[PERF,DPDK,FBLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[PERF,DPDK]}-${JOB[PERF,DPDK,FBLD]}.zip
108 blds=${JOB[PERF,DPDK,BLD]}
109 for i in ${blds[@]}; do
110 curl --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,DPDK]}/${i}/robot/report/output_perf_data.xml \
111 --output ${DIR[PLOT,DPDK]}/${JOB[PERF,DPDK]}-${i}.xml
112 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
114 curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[PERF,DPDK]}/${i}/robot/report/\*zip\*/robot-plugin.zip \
115 --output ${DIR[STATIC,ARCH]}/${JOB[PERF,DPDK]}-${i}.zip
118 cp ${DIR[PLOT,DPDK]}/* ${DIR[STATIC,TREND]}
120 ### FUNCTIONAL SOURCE DATA
122 #if [[ ${CFG[DEBUG]} -eq 1 ]] ;
123 # cp ./${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip
126 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
128 curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[FUNC,VPP]}/${JOB[FUNC,VPP,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
129 --output ${DIR[STATIC,ARCH]}/${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip
132 ### HONEYCOMB FUNCTIONAL SOURCE DATA
134 #if [[ ${CFG[DEBUG]} -eq 1 ]] ;
135 # cp ./${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip
138 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
140 curl --fail --silent ${URL[JENKINS,HC]}/${JOB[FUNC,HC]}/${JOB[FUNC,HC,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
141 --output ${DIR[STATIC,ARCH]}/${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip
144 ### HONEYCOMB PERFORMANCE SOURCE DATA
146 #if [[ ${CFG[DEBUG]} -eq 1 ]] ;
147 # cp ./${JOB[PERF,HC]}-${JOB[PERF,HC,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[PERF,HC]}-${JOB[PERF,HC,BLD]}.zip
150 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
152 blds=${JOB[PERF,HC,BLD]}
153 for i in ${blds[@]}; do
154 curl --silent ${URL[JENKINS,HC]}/${JOB[PERF,HC]}/${i}/robot/report/\*zip\*/robot-plugin.zip \
155 --output ${DIR[STATIC,ARCH]}/${JOB[PERF,HC]}-${i}.zip
159 ### NSH_SFC SOURCE DATA
161 #if [[ ${CFG[DEBUG]} -eq 1 ]] ;
162 # cp ./${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip
165 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
167 curl --fail --silent ${URL[JENKINS,CSIT]}/${JOB[FUNC,NSH]}/${JOB[FUNC,NSH,BLD]}/robot/report/\*zip\*/robot-plugin.zip \
168 --output ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip
171 # Data post processing
173 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
176 unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${JOB[PERF,VPP,FBLD]}.zip -d ${DIR[WORKING]}/
177 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
178 --output ${DIR[DTR,PERF,VPP]}/vpp_performance_results.rst \
179 --formatting rst --start 4 --level 2
180 python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
181 --output ${DIR[DTC,PERF,VPP]}/vpp_performance_configuration.rst \
182 --data "VAT_H" --formatting rst --start 4 --level 2
183 python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
184 --output ${DIR[DTO,PERF,VPP]}/vpp_performance_operational_data.rst \
185 --data "SH_RUN" --formatting rst --start 4 --level 2
187 blds=${JOB[PERF,VPP,BLD]}
188 for i in ${blds[@]}; do
189 unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,VPP]}-${i}.zip -d ${DIR[WORKING]}/
190 python run_robot_json_data.py \
191 --input ${DIR[WORKING]}/robot-plugin/output.xml \
192 --output ${DIR[DTR,PERF,VPP,IMPRV]}/${JOB[PERF,VPP]}-${i}.json \
197 unzip -o ${DIR[STATIC,ARCH]}/${JOB[PERF,DPDK]}-${JOB[PERF,DPDK,FBLD]}.zip -d ${DIR[WORKING]}/
198 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
199 --output ${DIR[DTR,PERF,DPDK]}/dpdk_performance_results.rst \
200 --formatting rst --start 4 --level 2
203 unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,VPP]}-${JOB[FUNC,VPP,BLD]}.zip -d ${DIR[WORKING]}/
204 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
205 --output ${DIR[DTR,FUNC,VPP]}/vpp_functional_results.rst \
206 --formatting rst --start 5 --level 2
207 python run_robot_teardown_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
208 --output ${DIR[DTC,FUNC,VPP]}/vpp_functional_configuration.rst \
209 --data "VAT_H" --formatting rst --start 5 --level 2
212 unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,HC]}-${JOB[FUNC,HC,BLD]}.zip -d ${DIR[WORKING]}/
213 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
214 --output ${DIR[DTR,FUNC,HC]}/honeycomb_functional_results.rst \
215 --formatting rst --start 5 --level 2
218 unzip -o ${DIR[STATIC,ARCH]}/${JOB[FUNC,NSH]}-${JOB[FUNC,NSH,BLD]}.zip -d ${DIR[WORKING]}/
219 python run_robot_data.py -i ${DIR[WORKING]}/robot-plugin/output.xml \
220 --output ${DIR[DTR,FUNC,NSHSFC]}/nshsfc_functional_results.rst \
221 --formatting rst --start 5 --level 2
224 # Generate tables for performance improvements
225 if [[ ${CFG[DEBUG]} -eq 0 ]] ;
227 python run_improvments_tables.py \
228 --input ${DIR[DTR,PERF,VPP,IMPRV]} \
229 --output ${DIR[DTR,PERF,VPP,IMPRV]}
232 # Delete temporary json files
233 find ${DIR[RST]} -name "*.json" -type f -delete
235 # Plot packets per second
239 python run_plot.py --input ${DIR[PLOT,VPP]} \
240 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-ndrdisc \
241 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
242 --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"))]'
244 python run_plot.py --input ${DIR[PLOT,VPP]} \
245 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel1-ndrdisc \
246 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
247 --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"))]'
249 python run_plot.py --input ${DIR[PLOT,VPP]} \
250 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-pdrdisc \
251 --title "64B-1t1c-(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,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]'
253 python run_plot.py --input ${DIR[PLOT,VPP]} \
254 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel1-pdrdisc \
255 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
256 --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"))]'
260 python run_plot.py --input ${DIR[PLOT,VPP]} \
261 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel2-ndrdisc \
262 --title "64B-1t1c-(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,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --lower 0 --upper 8000000
264 python run_plot.py --input ${DIR[PLOT,VPP]} \
265 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel2-ndrdisc \
266 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
267 --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
269 python run_plot.py --input ${DIR[PLOT,VPP]} \
270 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel2-pdrdisc \
271 --title "64B-1t1c-(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,"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
273 python run_plot.py --input ${DIR[PLOT,VPP]} \
274 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel2-pdrdisc \
275 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
276 --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
280 python run_plot.py --input ${DIR[PLOT,VPP]} \
281 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-ndrdisc \
282 --title "64B-1t1c-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,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
284 python run_plot.py --input ${DIR[PLOT,VPP]} \
285 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-ndrdisc \
286 --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
287 --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"))]'
289 python run_plot.py --input ${DIR[PLOT,VPP]} \
290 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-pdrdisc \
291 --title "64B-1t1c-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,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
293 python run_plot.py --input ${DIR[PLOT,VPP]} \
294 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-pdrdisc \
295 --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
296 --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"))]'
300 python run_plot.py --input ${DIR[PLOT,VPP]} \
301 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-ndrdisc \
302 --title "78B-1t1c-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,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
304 python run_plot.py --input ${DIR[PLOT,VPP]} \
305 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-ndrdisc \
306 --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
307 --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"))]'
309 python run_plot.py --input ${DIR[PLOT,VPP]} \
310 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-pdrdisc \
311 --title "78B-1t1c-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,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
313 python run_plot.py --input ${DIR[PLOT,VPP]} \
314 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-pdrdisc \
315 --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
316 --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"))]'
320 python run_plot.py --input ${DIR[PLOT,VPP]} \
321 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ndrdisc \
322 --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
323 --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"))]'
324 python run_plot.py --input ${DIR[PLOT,VPP]} \
325 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ndrdisc \
326 --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
327 --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"))]'
329 python run_plot.py --input ${DIR[PLOT,VPP]} \
330 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-pdrdisc \
331 --title "64B-1t1c-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,"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"))]'
333 python run_plot.py --input ${DIR[PLOT,VPP]} \
334 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-pdrdisc \
335 --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
336 --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"))]'
340 python run_plot.py --input ${DIR[PLOT,VPP]} \
341 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ndrdisc \
342 --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
343 --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"))]'
344 python run_plot.py --input ${DIR[PLOT,VPP]} \
345 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ndrdisc \
346 --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
347 --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"))]'
349 python run_plot.py --input ${DIR[PLOT,VPP]} \
350 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-pdrdisc \
351 --title "78B-1t1c-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,"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"))]'
353 python run_plot.py --input ${DIR[PLOT,VPP]} \
354 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-pdrdisc \
355 --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
356 --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"))]'
360 python run_plot.py --input ${DIR[PLOT,VPP]} \
361 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-ndrdisc \
362 --title "64B-1t1c-.*vhost.*-ndrdisc" \
363 --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"))]'
364 python run_plot.py --input ${DIR[PLOT,VPP]} \
365 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-ndrdisc \
366 --title "64B-2t2c-.*vhost.*-ndrdisc" \
367 --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"))]'
369 python run_plot.py --input ${DIR[PLOT,VPP]} \
370 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-pdrdisc \
371 --title "64B-1t1c-.*vhost.*-pdrdisc" \
372 --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"))]'
373 python run_plot.py --input ${DIR[PLOT,VPP]} \
374 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-pdrdisc \
375 --title "64B-2t2c-.*vhost.*-pdrdisc" \
376 --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"))]'
378 # VPP VM VHOST SELECTION
380 python run_plot.py --input ${DIR[PLOT,VPP]} \
381 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-ndrdisc \
382 --title "64B-1t1c-.*vhost.*-ndrdisc" \
383 --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"))]'
384 python run_plot.py --input ${DIR[PLOT,VPP]} \
385 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-ndrdisc \
386 --title "64B-2t2c-.*vhost.*-ndrdisc" \
387 --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"))]'
389 python run_plot.py --input ${DIR[PLOT,VPP]} \
390 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-pdrdisc \
391 --title "64B-1t1c-.*vhost.*-pdrdisc" \
392 --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"))]'
393 python run_plot.py --input ${DIR[PLOT,VPP]} \
394 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-pdrdisc \
395 --title "64B-2t2c-.*vhost.*-pdrdisc" \
396 --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"))]'
400 python run_plot.py --input ${DIR[PLOT,VPP]} \
401 --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-ndrdisc \
402 --title "64B-1t1c-.*ipsec.*-ndrdisc" \
403 --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"))]'
404 python run_plot.py --input ${DIR[PLOT,VPP]} \
405 --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-ndrdisc \
406 --title "64B-2t2c-.*ipsec.*-ndrdisc" \
407 --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"))]'
409 python run_plot.py --input ${DIR[PLOT,VPP]} \
410 --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-pdrdisc \
411 --title "64B-1t1c-.*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, "1T1C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]'
413 python run_plot.py --input ${DIR[PLOT,VPP]} \
414 --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-pdrdisc \
415 --title "64B-2t2c-.*ipsec.*-pdrdisc" \
416 --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"))]'
420 python run_plot.py --input ${DIR[PLOT,DPDK]} \
421 --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-ndrdisc \
422 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
423 --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"))]'
424 python run_plot.py --input ${DIR[PLOT,DPDK]} \
425 --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-ndrdisc \
426 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
427 --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"))]'
428 python run_plot.py --input ${DIR[PLOT,DPDK]} \
429 --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-ndrdisc \
430 --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
431 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
432 --lower 2000000 --upper 12000000
433 python run_plot.py --input ${DIR[PLOT,DPDK]} \
434 --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-ndrdisc \
435 --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
436 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
437 --lower 2000000 --upper 12000000
439 python run_plot.py --input ${DIR[PLOT,DPDK]} \
440 --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-pdrdisc \
441 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
442 --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"))]'
443 python run_plot.py --input ${DIR[PLOT,DPDK]} \
444 --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-pdrdisc \
445 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
446 --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"))]'
447 python run_plot.py --input ${DIR[PLOT,DPDK]} \
448 --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-pdrdisc \
449 --title "64B-1t1c-ethip4-ip4base-l3fwd-pdrdisc" \
450 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
451 --lower 20000000 --upper 30000000
452 python run_plot.py --input ${DIR[PLOT,DPDK]} \
453 --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-pdrdisc \
454 --title "64B-2t2c-ethip4-ip4base-l3fwd-pdrdisc" \
455 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
456 --lower 20000000 --upper 30000000
462 python run_plot.py --input ${DIR[PLOT,VPP]} \
463 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-ndrdisc-lat50 \
464 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
465 --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
466 python run_plot.py --input ${DIR[PLOT,VPP]} \
467 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel1-ndrdisc-lat50 \
468 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
469 --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
473 python run_plot.py --input ${DIR[PLOT,VPP]} \
474 --output ${DIR[STATIC,VPP]}/64B-1t1c-l2-sel2-ndrdisc-lat50 \
475 --title "64B-1t1c-(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,"1T1C") and (contains(@tags,"L2BDMACSTAT") or contains(@tags,"L2BDMACLRN") or contains(@tags,"L2XCFWD")) and not(contains(@tags,"VHOST"))]' --latency lat_50
477 python run_plot.py --input ${DIR[PLOT,VPP]} \
478 --output ${DIR[STATIC,VPP]}/64B-2t2c-l2-sel2-ndrdisc-lat50 \
479 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
480 --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
484 python run_plot.py --input ${DIR[PLOT,VPP]} \
485 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
486 --title "64B-1t1c-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,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
488 python run_plot.py --input ${DIR[PLOT,VPP]} \
489 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
490 --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
491 --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
495 python run_plot.py --input ${DIR[PLOT,VPP]} \
496 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
497 --title "78B-1t1c-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,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
499 python run_plot.py --input ${DIR[PLOT,VPP]} \
500 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
501 --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
502 --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
506 python run_plot.py --input ${DIR[PLOT,VPP]} \
507 --output ${DIR[STATIC,VPP]}/64B-1t1c-ethip4-ndrdisc-lat50 \
508 --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
509 --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
510 python run_plot.py --input ${DIR[PLOT,VPP]} \
511 --output ${DIR[STATIC,VPP]}/64B-2t2c-ethip4-ndrdisc-lat50 \
512 --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
513 --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
517 python run_plot.py --input ${DIR[PLOT,VPP]} \
518 --output ${DIR[STATIC,VPP]}/78B-1t1c-ethip6-ndrdisc-lat50 \
519 --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
520 --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
521 python run_plot.py --input ${DIR[PLOT,VPP]} \
522 --output ${DIR[STATIC,VPP]}/78B-2t2c-ethip6-ndrdisc-lat50 \
523 --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
524 --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
528 python run_plot.py --input ${DIR[PLOT,VPP]} \
529 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel1-ndrdisc-lat50 \
530 --title "64B-1t1c-.*vhost.*-ndrdisc" \
531 --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
532 python run_plot.py --input ${DIR[PLOT,VPP]} \
533 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel1-ndrdisc-lat50 \
534 --title "64B-2t2c-.*vhost.*-ndrdisc" \
535 --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
537 # VPP VM VHOST selection
539 python run_plot.py --input ${DIR[PLOT,VPP]} \
540 --output ${DIR[STATIC,VPP]}/64B-1t1c-vhost-sel2-ndrdisc-lat50 \
541 --title "64B-1t1c-.*vhost.*-ndrdisc" \
542 --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
543 python run_plot.py --input ${DIR[PLOT,VPP]} \
544 --output ${DIR[STATIC,VPP]}/64B-2t2c-vhost-sel2-ndrdisc-lat50 \
545 --title "64B-2t2c-.*vhost.*-ndrdisc" \
546 --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
550 python run_plot.py --input ${DIR[PLOT,VPP]} \
551 --output ${DIR[STATIC,VPP]}/64B-1t1c-ipsechw-ndrdisc-lat50 \
552 --title "64B-1t1c-.*ipsec.*-ndrdisc" \
553 --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
554 python run_plot.py --input ${DIR[PLOT,VPP]} \
555 --output ${DIR[STATIC,VPP]}/64B-2t2c-ipsechw-ndrdisc-lat50 \
556 --title "64B-2t2c-.*ipsec.*-ndrdisc" \
557 --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
561 python run_plot.py --input ${DIR[PLOT,DPDK]} \
562 --output ${DIR[STATIC,DPDK]}/64B-1t1c-l2-ndrdisc-lat50 \
563 --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
564 --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
565 python run_plot.py --input ${DIR[PLOT,DPDK]} \
566 --output ${DIR[STATIC,DPDK]}/64B-2t2c-l2-ndrdisc-lat50 \
567 --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
568 --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
569 python run_plot.py --input ${DIR[PLOT,DPDK]} \
570 --output ${DIR[STATIC,DPDK]}/64B-1t1c-ipv4-ndrdisc-lat50 \
571 --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
572 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' --latency lat_50
573 python run_plot.py --input ${DIR[PLOT,DPDK]} \
574 --output ${DIR[STATIC,DPDK]}/64B-2t2c-ipv4-ndrdisc-lat50 \
575 --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
576 --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' --latency lat_50
579 if [[ ${CFG[BLD_HTML]} -eq 1 ]] ;
581 sphinx-build -v -c . -a -b html -E \
582 -D release=$1 -D version="$1 report - $DATE" \
583 ${DIR[RST]} ${DIR[BUILD,HTML]}/
585 # Patch the CSS for tables layout
586 cat - > ${DIR[CSS_PATCH_FILE]} <<"_EOF"
587 /* override table width restrictions */
588 @media screen and (min-width: 767px) {
589 .wy-table-responsive table td, .wy-table-responsive table th {
590 white-space: normal !important;
593 .wy-table-responsive {
597 overflow: visible !important;
604 if [[ ${CFG[BLD_LATEX]} -eq 1 ]] ;
606 # Convert PyPLOT graphs in HTML format to PDF.
607 for f in ${DIR[STATIC,VPP]}/*; do
608 xvfb-run -a wkhtmltopdf ${f} ${f%.html}.pdf
610 for f in ${DIR[STATIC,DPDK]}/*; do
611 xvfb-run -a wkhtmltopdf ${f} ${f%.html}.pdf
614 # Generate the LaTeX documentation
615 sphinx-build -v -c . -a -b latex -E \
616 -D release=$1 -D version="$1 report - $DATE" \
617 ${DIR[RST]} ${DIR[BUILD,LATEX]}
618 cd ${DIR[BUILD,LATEX]}
619 pdflatex -shell-escape -interaction nonstopmode csit.tex || true
620 pdflatex -interaction nonstopmode csit.tex || true
621 cp csit.pdf ../${DIR[STATIC,ARCH]}/csit_$1.pdf
626 echo Creating csit.report.tar.gz ...
627 tar -czvf ./csit.report.tar.gz ${DIR[BUILD,HTML]}