CSIT-618 CSIT rls1707 Report - Update IV
[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_JOB='csit-vpp-perf-1707-all'
77 JEN_BUILD=(1)
78 JEN_FBUILD=1
79
80 for i in "${JEN_BUILD[@]}"; do
81     curl --silent ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/output_perf_data.xml \
82         --output ${PLOT_VPP_SOURCE_DIR}/${JEN_JOB}-${i}.xml
83     curl --silent ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/output_perf_data.json \
84         --output ${PLOT_VPP_SOURCE_DIR}/${JEN_JOB}-${i}.json
85     if [[ ${DEBUG} -eq 0 ]] ;
86     then
87         curl --fail --silent ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/\*zip\*/robot-plugin.zip \
88             -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
89     fi
90 done
91
92 if [[ ${DEBUG} -eq 0 ]] ;
93 then
94     unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_FBUILD}.zip -d ${WORKING_DIR}/
95     python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
96         --output ${DTR_VPP_PERF_SOURCE_DIR}/vpp_performance_results.rst \
97         --formatting rst --start 4 --level 2
98     python run_robot_teardown_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
99         --output ${DTC_VPP_PERF_SOURCE_DIR}/vpp_performance_configuration.rst \
100         --data "VAT_H" -f "rst" --start 4 --level 2
101     python run_robot_teardown_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
102         --output ${DTO_VPP_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data.rst \
103         --data "SH_RUN" -f "rst" --start 4 --level 2
104 #else
105 #    cp ./${JEN_JOB}-${JEN_FBUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_FBUILD}.zip
106 fi
107
108 ### DPDK PERFORMANCE SOURCE DATA
109
110 JEN_JOB='csit-dpdk-perf-1707-all'
111 JEN_BUILD=(1 2 3 4 5 6 7 8 9 10)
112
113 for i in "${JEN_BUILD[@]}"; do
114     curl --silent ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/output_perf_data.xml \
115         --output ${PLOT_DPDK_SOURCE_DIR}/${JEN_JOB}-${i}.xml
116     curl --silent ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/output_perf_data.json \
117         --output ${PLOT_DPDK_SOURCE_DIR}/${JEN_JOB}-${i}.json
118     if [[ ${DEBUG} -eq 0 ]] ;
119     then
120         curl --fail --silent ${CSIT_JEN_URL}/${JEN_JOB}/${i}/robot/report/\*zip\*/robot-plugin.zip \
121             --output ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
122     fi
123 done
124
125 if [[ ${DEBUG} -eq 0 ]] ;
126 then
127     unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip -d ${WORKING_DIR}/
128     python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
129         --output ${DTR_DPDK_SOURCE_DIR}/dpdk_performance_results.rst \
130         --formatting rst --start 4 --level 2
131 #else
132 #    cp ./${JEN_JOB}-${JEN_FBUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_FBUILD}.zip
133 fi
134
135 ### FUNCTIONAL SOURCE DATA
136
137 JEN_JOB='csit-vpp-functional-1707-ubuntu1604-virl'
138 JEN_BUILD='lastSuccessfulBuild'
139
140 if [[ ${DEBUG} -eq 0 ]] ;
141 then
142     curl --fail --silent ${CSIT_JEN_URL}/${JEN_JOB}/${JEN_BUILD}/robot/report/\*zip\*/robot-plugin.zip \
143         --output ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
144     unzip -o ${static_dir_arch}/${jen_job}-${jen_build}.zip -d ${working_dir}/
145     python run_robot_data.py -i ${working_dir}/robot-plugin/output.xml \
146         --output ${dtr_vpp_func_source_dir}/vpp_functional_results.rst \
147         --formatting rst --start 5 --level 2
148     python run_robot_teardown_data.py -i ${working_dir}/robot-plugin/output.xml \
149         --output ${dtc_vpp_func_source_dir}/vpp_functional_configuration.rst \
150         --data "vat_h" -f "rst" --start 5 --level 2
151 #else
152 #    cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
153 fi
154
155 ### HONEYCOMB SOURCE DATA
156
157 JEN_JOB='hc2vpp-csit-integration-1707-ubuntu1604'
158 JEN_BUILD='lastSuccessfulBuild'
159
160 if [[ ${DEBUG} -eq 0 ]] ;
161 then
162     curl --fail --silent ${HC_JEN_URL}/${JEN_JOB}/${JEN_BUILD}/robot/report/\*zip\*/robot-plugin.zip \
163         --output ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
164     unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
165     python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
166         --output ${DTR_HC_FUNC_SOURCE_DIR}/honeycomb_functional_results.rst \
167         --formatting rst --start 5 --level 2
168 #else
169 #    cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
170 fi
171
172 ### NSH_SFC SOURCE DATA
173
174 JEN_JOB='csit-nsh_sfc-verify-func-1707-ubuntu1604-virl'
175 JEN_BUILD='lastSuccessfulBuild'
176
177 if [[ ${DEBUG} -eq 0 ]] ;
178 then
179     curl --fail --silent ${CSIT_JEN_URL}/${JEN_JOB}/${JEN_BUILD}/robot/report/\*zip\*/robot-plugin.zip \
180         --output ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
181     unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
182     python run_robot_data.py -i ${WORKING_DIR}/robot-plugin/output.xml \
183         --output ${DTR_NSHSFC_FUNC_SOURCE_DIR}/nshsfc_functional_results.rst \
184         --formatting rst --start 5 --level 2
185 #else
186 #    cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
187 fi
188
189 # Delete temporary json files
190 find ${SOURCE_DIR} -name "*.json" -type f -delete
191
192 # Generate the documentation
193
194 DATE=$(date -u '+%d-%b-%Y')
195
196 sphinx-build -v -c . -a -b html -E \
197     -D release=$1 -D version="$1 report - $DATE" \
198     ${SOURCE_DIR} ${BUILD_DIR}/
199
200 # Patch the CSS for tables layout
201 cat - > ${CSS_PATCH_FILE} <<"_EOF"
202 /* override table width restrictions */
203 @media screen and (min-width: 767px) {
204     .wy-table-responsive table td, .wy-table-responsive table th {
205         white-space: normal !important;
206     }
207
208     .wy-table-responsive {
209         font-size: small;
210         margin-bottom: 24px;
211         max-width: 100%;
212         overflow: visible !important;
213     }
214 }
215 _EOF
216
217 # Plot packets per second
218
219 # VPP L2
220
221 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
222     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc \
223     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
224     --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"))]'
225 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
226     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc \
227     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
228     --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"))]'
229
230 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
231     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-pdrdisc \
232     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
233     --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"))]'
234 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
235     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-pdrdisc \
236     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
237     --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"))]'
238
239 # VPP IP4
240
241 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
242     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc \
243     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
244     --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"))]'
245 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
246     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc \
247     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
248     --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"))]'
249
250 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
251     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-pdrdisc \
252     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
253     --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"))]'
254 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
255     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-pdrdisc \
256     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
257     --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
259 # VPP IP6
260
261 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
262     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc \
263     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
264     --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"))]'
265 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
266     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc \
267     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
268     --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"))]'
269
270 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
271     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-pdrdisc \
272     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
273     --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"))]'
274 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
275     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-pdrdisc \
276     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
277     --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
279 # VPP IP4_overlay
280
281 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
282     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc \
283     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
284     --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"))]'
285 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
286     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ndrdisc \
287     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
288     --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"))]'
289
290 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
291     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-pdrdisc \
292     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
293     --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"))]'
294 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
295     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-pdrdisc \
296     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
297     --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"))]'
298
299 # VPP IP6_overlay
300
301 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
302     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ndrdisc \
303     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
304     --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"))]'
305 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
306     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc \
307     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
308     --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"))]'
309
310 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
311     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-pdrdisc \
312     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
313     --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"))]'
314 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
315     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-pdrdisc \
316     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
317     --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
319 # VPP VM VHOST
320
321 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
322     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel1-ndrdisc \
323     --title "64B-1t1c-.*vhost.*-ndrdisc" \
324     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST") and (contains(@tags,"VXLAN") or contains(@tags,"IP4FWD") or contains(@tags,"DOT1Q"))]'
325 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
326     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel1-ndrdisc \
327     --title "64B-2t2c-.*vhost.*-ndrdisc" \
328     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST") and (contains(@tags,"VXLAN") or contains(@tags,"IP4FWD") or contains(@tags,"DOT1Q"))]'
329
330 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
331     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel1-pdrdisc \
332     --title "64B-1t1c-.*vhost.*-pdrdisc" \
333     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"1T1C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST") and (contains(@tags,"VXLAN") or contains(@tags,"IP4FWD") or contains(@tags,"DOT1Q"))]'
334 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
335     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel1-pdrdisc \
336     --title "64B-2t2c-.*vhost.*-pdrdisc" \
337     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"2T2C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST") and (contains(@tags,"VXLAN") or contains(@tags,"IP4FWD") or contains(@tags,"DOT1Q"))]'
338
339 # VPP VM VHOST SELECTION
340
341 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
342     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel2-ndrdisc \
343     --title "64B-1t1c-.*vhost.*-ndrdisc" \
344     --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"))]'
345 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
346     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel2-ndrdisc \
347     --title "64B-2t2c-.*vhost.*-ndrdisc" \
348     --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"))]'
349
350 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
351     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel2-pdrdisc \
352     --title "64B-1t1c-.*vhost.*-pdrdisc" \
353     --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"))]'
354 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
355     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel2-pdrdisc \
356     --title "64B-2t2c-.*vhost.*-pdrdisc" \
357     --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
359 # VPP CRYPTO
360
361 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
362     --output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-ndrdisc \
363     --title "64B-1t1c-.*ipsec.*-ndrdisc" \
364     --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"))]'
365 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
366     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc \
367     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
368     --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"))]'
369
370 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
371     --output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-pdrdisc \
372     --title "64B-1t1c-.*ipsec.*-pdrdisc" \
373     --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"))]'
374 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
375     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-pdrdisc \
376     --title "64B-2t2c-.*ipsec.*-pdrdisc" \
377     --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
379 # DPDK
380
381 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
382     --output ${STATIC_DIR_DPDK}/64B-1t1c-l2-ndrdisc \
383     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
384     --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"))]'
385 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
386     --output ${STATIC_DIR_DPDK}/64B-2t2c-l2-ndrdisc \
387     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
388     --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"))]'
389 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
390     --output ${STATIC_DIR_DPDK}/64B-1t1c-ipv4-ndrdisc \
391     --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
392     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
393     --lower 2000000 --upper 12000000
394 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
395     --output ${STATIC_DIR_DPDK}/64B-2t2c-ipv4-ndrdisc \
396     --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
397     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
398     --lower 2000000 --upper 12000000
399
400 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
401     --output ${STATIC_DIR_DPDK}/64B-1t1c-l2-pdrdisc \
402     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
403     --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"))]'
404 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
405     --output ${STATIC_DIR_DPDK}/64B-2t2c-l2-pdrdisc \
406     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
407     --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"))]'
408 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
409     --output ${STATIC_DIR_DPDK}/64B-1t1c-ipv4-pdrdisc \
410     --title "64B-1t1c-ethip4-ip4base-l3fwd-pdrdisc" \
411     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' \
412     --lower 20000000 --upper 30000000
413 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
414     --output ${STATIC_DIR_DPDK}/64B-2t2c-ipv4-pdrdisc \
415     --title "64B-2t2c-ethip4-ip4base-l3fwd-pdrdisc" \
416     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' \
417     --lower 20000000 --upper 30000000
418
419 # Plot latency
420
421 # VPP L2
422
423 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
424     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc-lat50 \
425     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
426     --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
427 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
428     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc-lat50 \
429     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
430     --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
431
432 # VPP IP4
433
434 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
435     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
436     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
437     --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
438 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
439     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
440     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
441     --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
443 # VPP IP6
444
445 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
446     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
447     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
448     --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
449 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
450     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
451     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
452     --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
454 # VPP IP4_overlay
455
456 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
457     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc-lat50 \
458     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
459     --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
460 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
461     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ndrdisc-lat50 \
462     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
463     --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
464
465 # VPP IP6_overlay
466
467 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
468     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ndrdisc-lat50 \
469     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
470     --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
471 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
472     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc-lat50 \
473     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
474     --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
476 # VPP VM VHOST latency
477
478 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
479     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel1-ndrdisc-lat50 \
480     --title "64B-1t1c-.*vhost.*-ndrdisc" \
481     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST") and (contains(@tags,"VXLAN") or contains(@tags,"IP4FWD") or contains(@tags,"DOT1Q"))]' --latency lat_50
482 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
483     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel1-ndrdisc-lat50 \
484     --title "64B-2t2c-.*vhost.*-ndrdisc" \
485     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST") and (contains(@tags,"VXLAN") or contains(@tags,"IP4FWD") or contains(@tags,"DOT1Q"))]' --latency lat_50
486
487 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
488     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-sel2-ndrdisc-lat50 \
489     --title "64B-1t1c-.*vhost.*-ndrdisc" \
490     --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
491 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
492     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-sel2-ndrdisc-lat50 \
493     --title "64B-2t2c-.*vhost.*-ndrdisc" \
494     --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
495
496 # VPP CRYPTO
497
498 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
499     --output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-ndrdisc-lat50 \
500     --title "64B-1t1c-.*ipsec.*-ndrdisc" \
501     --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
502 python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
503     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc-lat50 \
504     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
505     --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
506
507 # DPDK
508
509 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
510     --output ${STATIC_DIR_DPDK}/64B-1t1c-l2-ndrdisc-lat50 \
511     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
512     --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
513 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
514     --output ${STATIC_DIR_DPDK}/64B-2t2c-l2-ndrdisc-lat50 \
515     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
516     --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
517 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
518     --output ${STATIC_DIR_DPDK}/64B-1t1c-ipv4-ndrdisc-lat50 \
519     --title "64B-1t1c-ethip4-ip4base-l3fwd-ndrdisc" \
520     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD")]' --latency lat_50
521 python run_plot.py --input ${PLOT_DPDK_SOURCE_DIR} \
522     --output ${STATIC_DIR_DPDK}/64B-2t2c-ipv4-ndrdisc-lat50 \
523     --title "64B-2t2c-ethip4-ip4base-l3fwd-ndrdisc" \
524     --xpath '//*[@framesize="64B" and contains(@tags,"BASE") and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD")]' --latency lat_50
525
526 # Create archive
527 echo Creating csit.report.tar.gz ...
528 tar -czvf ./csit.report.tar.gz ${BUILD_DIR}