FIX: CSIT rls1707 Report - Update III
[csit.git] / resources / tools / report_gen / run_report.sh
1 #!/bin/bash
2
3 set -x
4
5 # Build locally without jenkins integrations
6 DEBUG=0
7
8 # Build directories
9 WORKING_DIR='_tmp'
10 BUILD_DIR='_build'
11
12 STATIC_DIR="${BUILD_DIR}/_static"
13 STATIC_DIR_VPP="${STATIC_DIR}/vpp"
14 STATIC_DIR_DPDK="${STATIC_DIR}/dpdk"
15 STATIC_DIR_ARCH="${STATIC_DIR}/archive"
16 CSS_PATCH_FILE="${STATIC_DIR}/theme_overrides.css"
17
18 SOURCE_DIR='../../../docs/report'
19
20 PLOT_VPP_SOURCE_DIR=${WORKING_DIR}/vpp_plot
21 PLOT_DPDK_SOURCE_DIR=${WORKING_DIR}/dpdk_plot
22
23 DTR_SOURCE_DIR=${SOURCE_DIR}/detailed_test_results
24 DTR_DPDK_SOURCE_DIR=${DTR_SOURCE_DIR}/dpdk_performance_results
25 DTR_VPP_PERF_SOURCE_DIR=${DTR_SOURCE_DIR}/vpp_performance_results
26 DTR_VPP_FUNC_SOURCE_DIR=${DTR_SOURCE_DIR}/vpp_functional_results
27 DTR_HC_PERF_SOURCE_DIR=${DTR_SOURCE_DIR}/honeycomb_performance_results
28 DTR_HC_FUNC_SOURCE_DIR=${DTR_SOURCE_DIR}/honeycomb_functional_results
29 DTR_NSHSFC_FUNC_SOURCE_DIR=${DTR_SOURCE_DIR}/nshsfc_functional_results
30
31 DTC_SOURCE_DIR=${SOURCE_DIR}/test_configuration
32 DTC_VPP_PERF_SOURCE_DIR=${DTC_SOURCE_DIR}/vpp_performance_configuration
33 DTC_VPP_FUNC_SOURCE_DIR=${DTC_SOURCE_DIR}/vpp_functional_configuration
34
35 DTO_SOURCE_DIR=${SOURCE_DIR}/test_operational_data
36 DTO_VPP_PERF_SOURCE_OPER_DIR=${DTO_SOURCE_DIR}/vpp_performance_operational_data
37
38 # Jenkins links
39 CSIT_JEN_URL='https://jenkins.fd.io/view/csit/job'
40 HC_JEN_URL='https://jenkins.fd.io/view/hc2vpp/job'
41
42 sudo apt-get -y update
43 sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
44     zlib1g-dev unzip
45
46 # Clean-up when finished
47 trap 'rm -rf ${WORKING_DIR}; exit' EXIT
48 trap 'rm -rf ${WORKING_DIR}; exit' ERR
49
50 # Remove the old build
51 rm -rf ${BUILD_DIR} || true
52 rm -rf ${WORKING_DIR} || true
53
54 # Create working directories
55 mkdir ${BUILD_DIR}
56
57 # Create virtual environment
58 virtualenv ${WORKING_DIR}/env
59 . ${WORKING_DIR}/env/bin/activate
60
61 # Install Sphinx:
62 pip install -r requirements.txt
63
64 export PYTHONPATH=`pwd`
65
66 # Download raw outputs for plots
67 echo Downloading raw outputs for plots ...
68 mkdir -p ${STATIC_DIR_VPP}
69 mkdir -p ${STATIC_DIR_DPDK}
70 mkdir -p ${STATIC_DIR_ARCH}
71 mkdir -p ${PLOT_VPP_SOURCE_DIR}
72 mkdir -p ${PLOT_DPDK_SOURCE_DIR}
73
74 ### VPP PERFORMANCE SOURCE DATA
75
76 JEN_FILE_PERF='output_perf_data.xml'
77 JEN_JOB='csit-vpp-perf-1707-all'
78 JEN_BUILD=(1)
79 JEN_FBUILD=1
80
81 for i in "${JEN_BUILD[@]}"; do
82     curl --fail -fs ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/output_perf_data.xml \
83         -o ${PLOT_VPP_SOURCE_DIR}/${JEN_JOB}-${i}.xml
84     if [[ ${DEBUG} -eq 1 ]] ;
85     then
86         cp ./${JEN_JOB}-${JEN_FBUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_FBUILD}.zip
87     else
88         curl --fail -fs ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/\*zip\*/robot-plugin.zip \
89             -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
90     fi
91 done
92
93 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_FBUILD}.zip -d ${WORKING_DIR}/
94 python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
95     --output ${DTR_VPP_PERF_SOURCE_DIR}/vpp_performance_results.rst \
96     --formatting rst --start 4 --level 2
97 python run_robot_teardown_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
98     --output ${DTC_VPP_PERF_SOURCE_DIR}/vpp_performance_configuration.rst \
99     --data "VAT_H" -f "rst" --start 4 --level 2
100 python run_robot_teardown_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
101     -o ${DTO_VPP_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data.rst \
102     --data "SH_RUN" -f "rst" --start 4 --level 2
103 if [[ ${DEBUG} -eq 0 ]] ;
104 then
105     sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_FBUILD}@g" \
106         ${DTR_VPP_PERF_SOURCE_DIR}/index.rst
107     sed -i -e "s@###LINK###@${CSIT_JEN_URL}\/${JEN_JOB}\/${JEN_FBUILD}@g" \
108         ${DTR_VPP_PERF_SOURCE_DIR}/index.rst
109     sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_FBUILD}@g" \
110         ${DTC_VPP_PERF_SOURCE_DIR}/index.rst
111     sed -i -e "s@###LINK###@${CSIT_JEN_URL}\/${JEN_JOB}\/${JEN_FBUILD}@g" \
112         ${DTC_VPP_PERF_SOURCE_DIR}/index.rst
113     sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_FBUILD}@g" \
114         ${DTO_VPP_PERF_SOURCE_OPER_DIR}/index.rst
115     sed -i -e "s@###LINK###@${CSIT_JEN_URL}\/${JEN_JOB}\/${JEN_FBUILD}@g" \
116         ${DTO_VPP_PERF_SOURCE_OPER_DIR}/index.rst
117 fi
118
119 ### DPDK PERFORMANCE SOURCE DATA
120
121 JEN_JOB='csit-dpdk-perf-1707-all'
122 JEN_BUILD=(1 2 3 4 5 6 7 8 9 10)
123
124 for i in "${JEN_BUILD[@]}"; do
125     curl --fail -fs ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/output_perf_data.xml \
126         -o ${PLOT_DPDK_SOURCE_DIR}/${JEN_JOB}-${i}.xml
127     if [[ ${DEBUG} -eq 1 ]] ;
128     then
129         cp ./${JEN_JOB}-${JEN_BUILD[-1]}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip
130     else
131         curl --fail -fs ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/\*zip\*/robot-plugin.zip \
132             -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
133
134         sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
135             ${DTR_DPDK_SOURCE_DIR}/index.rst
136         sed -i -e "s@###LINK###@${CSIT_JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
137             ${DTR_DPDK_SOURCE_DIR}/index.rst
138     fi
139 done
140
141 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip -d ${WORKING_DIR}/
142 python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
143     --output ${DTR_DPDK_SOURCE_DIR}/dpdk_performance_results.rst \
144     --formatting rst --start 4 --level 2
145
146 ### FUNCTIONAL SOURCE DATA
147
148 JEN_JOB='csit-vpp-functional-1707-ubuntu1604-virl'
149 JEN_BUILD='lastSuccessfulBuild'
150
151 if [[ ${DEBUG} -eq 1 ]] ;
152 then
153     cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
154 else
155     curl -fs ${CSIT_JEN_URL}/${JEN_JOB}/${JEN_BUILD}/robot/report/\*zip\*/robot-plugin.zip \
156         -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
157
158     sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
159         ${DTR_VPP_FUNC_SOURCE_DIR}/index.rst
160     sed -i -e "s@###LINK###@${CSIT_JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
161         ${DTR_VPP_FUNC_SOURCE_DIR}/index.rst
162     sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
163         ${DTC_VPP_FUNC_SOURCE_DIR}/index.rst
164     sed -i -e "s@###LINK###@${CSIT_JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
165         ${DTC_VPP_FUNC_SOURCE_DIR}/index.rst
166 fi
167
168 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
169 python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
170     --output ${DTR_VPP_FUNC_SOURCE_DIR}/vpp_functional_results.rst \
171     --formatting rst --start 5 --level 2
172 python run_robot_teardown_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
173     --output ${DTC_VPP_FUNC_SOURCE_DIR}/vpp_functional_configuration.rst \
174     --data "VAT_H" -f "rst" --start 5 --level 2
175
176 ### HONEYCOMB SOURCE DATA
177
178 JEN_JOB='hc2vpp-csit-integration-1707-ubuntu1604'
179 JEN_BUILD='lastSuccessfulBuild'
180
181 if [[ ${DEBUG} -eq 1 ]] ;
182 then
183     cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
184 else
185     curl -fs ${HC_JEN_URL}/${JEN_JOB}/${JEN_BUILD}/robot/report/\*zip\*/robot-plugin.zip \
186         -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
187
188     sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
189         ${DTR_HC_FUNC_SOURCE_DIR}/index.rst
190     sed -i -e "s@###LINK###@${HC_JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
191         ${DTR_HC_FUNC_SOURCE_DIR}/index.rst
192 fi
193
194 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
195 python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
196     --output ${DTR_HC_FUNC_SOURCE_DIR}/honeycomb_functional_results.rst \
197     --formatting rst --start 5 --level 2
198
199 ### NSH_SFC SOURCE DATA
200
201 JEN_JOB='csit-nsh_sfc-verify-func-1707-ubuntu1604-virl'
202 JEN_BUILD='lastSuccessfulBuild'
203
204 if [[ ${DEBUG} -eq 1 ]] ;
205 then
206     cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
207 else
208     curl -fs ${CSIT_JEN_URL}/${JEN_JOB}/${JEN_BUILD}/robot/report/\*zip\*/robot-plugin.zip \
209         -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
210
211     sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
212         ${DTR_NSHSFC_FUNC_SOURCE_DIR}/index.rst
213     sed -i -e "s@###LINK###@${HC_JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
214         ${DTR_NSHSFC_FUNC_SOURCE_DIR}/index.rst
215 fi
216
217 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
218 python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
219     --output ${DTR_NSHSFC_FUNC_SOURCE_DIR}/nshsfc_functional_results.rst \
220     --formatting rst --start 5 --level 2
221
222
223
224 # Delete temporary json files
225 find ${SOURCE_DIR} -name "*.json" -type f -delete
226
227 # Generate the documentation
228
229 DATE=$(date -u '+%d-%b-%Y')
230
231 sphinx-build -v -c . -a -b html -E \
232     -D release=$1 -D version="$1 report - $DATE" \
233     ${SOURCE_DIR} ${BUILD_DIR}/
234
235 # Patch the CSS for tables layout
236 cat - > ${CSS_PATCH_FILE} <<"_EOF"
237 /* override table width restrictions */
238 @media screen and (min-width: 767px) {
239     .wy-table-responsive table td, .wy-table-responsive table th {
240         white-space: normal !important;
241     }
242
243     .wy-table-responsive {
244         font-size: small;
245         margin-bottom: 24px;
246         max-width: 100%;
247         overflow: visible !important;
248     }
249 }
250 _EOF
251
252 # Plot packets per second
253
254 # VPP L2
255
256 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
257     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc \
258     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
259     --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"))]'
260 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
261     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc \
262     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
263     --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"))]'
264
265 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
266     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-pdrdisc \
267     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
268     --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"))]'
269 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
270     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-pdrdisc \
271     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
272     --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"))]'
273
274 # VPP IP4
275
276 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
277     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
281     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc \
282     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
283     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
284
285 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
286     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
290     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-pdrdisc \
291     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
292     --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
293
294 # VPP IP6
295
296 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
297     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
301     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc \
302     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
303     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
304
305 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
306     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
310     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-pdrdisc \
311     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
312     --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
313
314 # VPP IP4_overlay
315
316 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
317     --output ${STATIC_DIR_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"))]'
320 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
321     --output ${STATIC_DIR_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"))]'
324
325 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
326     --output ${STATIC_DIR_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"))]'
329 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
330     --output ${STATIC_DIR_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"))]'
333
334 # VPP IP6_overlay
335
336 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
337     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
341     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc \
342     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
343     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]'
344
345 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
346     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
350     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-pdrdisc \
351     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
352     --xpath '//*[@framesize="78B" and contains(@tags,"ENCAP") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and (contains(@tags,"VXLAN") or contains(@tags,"VXLANGPE") or contains(@tags,"LISP") or contains(@tags,"LISPGPE") or contains(@tags,"GRE")) and not(contains(@tags,"VHOST"))]'
353
354 # VPP VM VHOST
355
356 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
357     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-ndrdisc \
358     --title "64B-1t1c-.*vhost.*-ndrdisc" \
359     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST")]'
360 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
361     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-ndrdisc \
362     --title "64B-2t2c-.*vhost.*-ndrdisc" \
363     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST")]'
364
365 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
366     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-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")]'
369 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
370     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-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")]'
373
374 # VPP VM VHOST SELECTION
375
376 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
377     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel1-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 ${PLOT_VPP_SOURCE_DIR} \
381     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel1-ndrdisc \
382     --title "64B-2t2c-.*vhost.*-ndrdisc" \
383     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]'
384
385 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
386     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel1-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 ${PLOT_VPP_SOURCE_DIR} \
390     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel1-pdrdisc \
391     --title "64B-2t2c-.*vhost.*-pdrdisc" \
392     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"2T2C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST") and not(contains(@tags,"VXLAN")) and not(contains(@tags,"IP4FWD")) and not(contains(@tags,"DOT1Q")) and not(contains(name(), "2Vm"))]'
393
394 # VPP CRYPTO
395
396 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
397     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
401     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc \
402     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
403     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "NDRDISC") and contains(@tags, "2T2C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]'
404
405 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
406     --output ${STATIC_DIR_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 ${PLOT_VPP_SOURCE_DIR} \
410     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-pdrdisc \
411     --title "64B-2t2c-.*ipsec.*-pdrdisc" \
412     --xpath '//*[@framesize="64B" and not(contains(@tags, "VHOST")) and contains(@tags, "IP4FWD") and contains(@tags, "PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags, "2T2C") and contains(@tags, "IPSECHW") and (contains(@tags, "IPSECTRAN") or contains(@tags, "IPSECTUN"))]'
413
414 # DPDK
415
416 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
417     --output ${STATIC_DIR_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 ${PLOT_DPDK_SOURCE_DIR} \
421     --output ${STATIC_DIR_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 ${PLOT_DPDK_SOURCE_DIR} \
425     --output ${STATIC_DIR_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 ${PLOT_DPDK_SOURCE_DIR} \
430     --output ${STATIC_DIR_DPDK}/64B-2t2c-ipv4-ndrdisc \
431     --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
432     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
433     --lower 2000000 --upper 12000000
434
435 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
436     --output ${STATIC_DIR_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 ${PLOT_DPDK_SOURCE_DIR} \
440     --output ${STATIC_DIR_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 ${PLOT_DPDK_SOURCE_DIR} \
444     --output ${STATIC_DIR_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 ${PLOT_DPDK_SOURCE_DIR} \
449     --output ${STATIC_DIR_DPDK}/64B-2t2c-ipv4-pdrdisc \
450     --title "64B-2t2c-ethip4-ip4base-l3fwd-pdrdisc" \
451     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
452     --lower 20000000 --upper 30000000
453
454 # Plot latency
455
456 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
457     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc-lat50 \
458     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
459     --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
460 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
461     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc-lat50 \
462     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
463     --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
464
465 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
466     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
467     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
468     --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
469 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
470     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
471     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
472     --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
473
474 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
475     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
476     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
477     --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
478 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
479     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
480     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
481     --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
482
483 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
484     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc-lat50 \
485     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
486     --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"))]' --latency lat_50
487 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
488     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ndrdisc-lat50 \
489     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
490     --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"))]' --latency lat_50
491
492 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
493     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ndrdisc-lat50 \
494     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
495     --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
496 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
497     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc-lat50 \
498     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
499     --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
500
501 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
502     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-ndrdisc-lat50 \
503     --title "64B-1t1c-.*vhost.*-ndrdisc" \
504     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST")]' --latency lat_50
505 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
506     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-ndrdisc-lat50 \
507     --title "64B-2t2c-.*vhost.*-ndrdisc" \
508     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST")]' --latency lat_50
509
510 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
511     --output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-ndrdisc-lat50 \
512     --title "64B-1t1c-.*ipsec.*-ndrdisc" \
513     --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
514 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
515     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc-lat50 \
516     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
517     --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
518
519 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
520     --output ${STATIC_DIR_DPDK}/64B-1t1c-l2-ndrdisc-lat50 \
521     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
522     --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
523 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
524     --output ${STATIC_DIR_DPDK}/64B-2t2c-l2-ndrdisc-lat50 \
525     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
526     --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
527 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
528     --output ${STATIC_DIR_DPDK}/64B-1t1c-ipv4-ndrdisc-lat50 \
529     --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
530     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' --latency lat_50
531 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
532     --output ${STATIC_DIR_DPDK}/64B-2t2c-ipv4-ndrdisc-lat50 \
533     --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
534     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' --latency lat_50
535
536 # Create archive
537 echo Creating csit.report.tar.gz ...
538 tar -czvf ./csit.report.tar.gz ${BUILD_DIR}
539