rls1704 report - updated sections:
[csit.git] / resources / tools / report_gen / run_report.sh
1 #!/bin/bash
2
3 set -x
4
5 WORKING_DIR='_tmp'
6 BUILD_DIR='_build'
7
8 SOURCE_DIR='../../../docs/report'
9 DTR_SOURCE_DIR="${SOURCE_DIR}/detailed_test_results"
10 DTR_PERF_SOURCE_DIR=${DTR_SOURCE_DIR}/vpp_performance_results
11 DTR_TESTPMD_SOURCE_DIR=${DTR_SOURCE_DIR}/testpmd_performance_results
12 DTR_FUNC_SOURCE_DIR=${DTR_SOURCE_DIR}/vpp_functional_results
13 DTR_HONEYCOMB_SOURCE_DIR=${DTR_SOURCE_DIR}/honeycomb_functional_results
14
15 DTC_SOURCE_DIR="${SOURCE_DIR}/detailed_test_configuration"
16 DTC_PERF_SOURCE_DIR=${DTC_SOURCE_DIR}/vpp_performance_configuration
17 DTC_PERF_SOURCE_OPER_DIR=${DTC_SOURCE_DIR}/vpp_performance_operational_data
18 DTC_FUNC_SOURCE_DIR=${DTC_SOURCE_DIR}/vpp_functional_configuration
19
20 STATIC_DIR="${BUILD_DIR}/_static"
21 STATIC_DIR_VPP="${STATIC_DIR}/vpp"
22 STATIC_DIR_TESTPMD="${STATIC_DIR}/testpmd"
23 STATIC_DIR_ARCH="${STATIC_DIR}/archive"
24 CSS_PATCH_FILE="${STATIC_DIR}/theme_overrides.css"
25 JEN_URL='https://jenkins.fd.io/view/csit/job'
26
27 sudo apt-get -y update
28 sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
29     zlib1g-dev unzip
30
31 # Clean-up when finished:
32 trap 'rm -rf ${WORKING_DIR}; exit' EXIT
33 trap 'rm -rf ${WORKING_DIR}; exit' ERR
34
35 # Remove the old build:
36 rm -rf ${BUILD_DIR} || true
37 rm -rf ${WORKING_DIR} || true
38
39 # Create working directories
40 mkdir ${BUILD_DIR}
41
42 # Create virtual environment:
43 virtualenv ${WORKING_DIR}/env
44 . ${WORKING_DIR}/env/bin/activate
45
46 # Install Sphinx:
47 pip install -r requirements.txt
48
49 export PYTHONPATH=`pwd`
50
51 # Download raw outputs for plots
52 echo Downloading raw outputs for plots ...
53 mkdir -p ${STATIC_DIR_VPP}
54 mkdir -p ${STATIC_DIR_TESTPMD}
55 mkdir -p ${STATIC_DIR_ARCH}
56
57 ### VPP PERFORMANCE SOURCE DATA
58
59 JEN_FILE_PERF='output_perf_data.xml'
60 JEN_JOB='csit-vpp-perf-1704-all'
61 JEN_BUILD=(5)
62
63 for i in "${JEN_BUILD[@]}"; do
64     curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/${JEN_FILE_PERF} \
65         -o ${STATIC_DIR_VPP}/${JEN_JOB}-${i}.xml
66     curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/\*zip\*/archive.zip \
67         -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
68 done
69
70 # DELETE ME
71 #cp ./${JEN_JOB}-${JEN_BUILD[-1]}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip
72
73 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip -d ${WORKING_DIR}/
74 # L2 Ethernet Switching
75 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
76     --output ${DTR_PERF_SOURCE_DIR}/vpp_performance_results_l2.rst \
77     --formatting rst --start 3 --level 2 \
78     --regex ".+(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndr" \
79     --title "L2 Ethernet Switching"
80 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
81     --output ${DTC_PERF_SOURCE_DIR}/vpp_performance_configuration_l2.rst \
82     --data "VAT_H" -f "rst" --start 3 --level 2 \
83     --regex ".+(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndr" \
84     --title "L2 Ethernet Switching"
85 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
86     -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_l2.rst \
87     --data "SH_RUN" -f "rst" --start 3 --level 2 \
88     --regex ".+(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndr" \
89     --title "L2 Ethernet Switching"
90 # IPv4 Routed-Forwarding
91 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
92     --output ${DTR_PERF_SOURCE_DIR}/vpp_performance_results_ipv4.rst \
93     --formatting rst --start 3 --level 2 \
94     --regex ".+ethip4-ip4[a-z0-9]+-[a-z-]*ndr" \
95     --title "IPv4 Routed-Forwarding"
96 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
97     --output ${DTC_PERF_SOURCE_DIR}/vpp_performance_configuration_ipv4.rst \
98     --data "VAT_H" -f "rst" --start 3 --level 2 \
99     --regex ".+ethip4-ip4[a-z0-9]+-[a-z-]*ndr" \
100     --title "IPv4 Routed-Forwarding"
101 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
102     -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv4.rst \
103     --data "SH_RUN" -f "rst" --start 3 --level 2 \
104     --regex ".+ethip4-ip4[a-z0-9]+-[a-z-]*ndr" \
105     --title "IPv4 Routed-Forwarding"
106 # IPv6 Routed-Forwarding
107 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
108     --output ${DTR_PERF_SOURCE_DIR}/vpp_performance_results_ipv6.rst \
109     --formatting rst --start 3 --level 2 \
110     --regex ".+ethip6-ip6[a-z0-9]+-[a-z-]*ndr" \
111     --title "IPv6 Routed-Forwarding"
112 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
113     --output ${DTC_PERF_SOURCE_DIR}/vpp_performance_configuration_ipv6.rst \
114     --data "VAT_H" -f "rst" --start 3 --level 2 \
115     --regex ".+ethip6-ip6[a-z0-9]+-[a-z-]*ndr" \
116     --title "IPv6 Routed-Forwarding"
117 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
118     -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv6.rst \
119     --data "SH_RUN" -f "rst" --start 3 --level 2 \
120     --regex ".+ethip6-ip6[a-z0-9]+-[a-z-]*ndr" \
121     --title "IPv6 Routed-Forwarding"
122 # IPv4 Overlay Tunnels
123 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
124     --output ${DTR_PERF_SOURCE_DIR}/vpp_performance_results_ipv4o.rst \
125     --formatting rst --start 3 --level 2 \
126     --regex ".+ethip4[a-z0-9]+-[a-z0-9]*-ndr" \
127     --title "IPv4 Overlay Tunnels"
128 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
129     --output ${DTC_PERF_SOURCE_DIR}/vpp_performance_configuration_ipv4o.rst \
130     --data "VAT_H" -f "rst" --start 3 --level 2 \
131     --regex ".+ethip4[a-z0-9]+-[a-z0-9]*-ndr" \
132     --title "IPv4 Overlay Tunnels"
133 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
134     -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv4o.rst \
135     --data "SH_RUN" -f "rst" --start 3 --level 2 \
136     --regex ".+ethip4[a-z0-9]+-[a-z0-9]*-ndr" \
137     --title "IPv4 Overlay Tunnels"
138 # IPv6 Overlay Tunnels
139 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
140     --output ${DTR_PERF_SOURCE_DIR}/vpp_performance_results_ipv6o.rst \
141     --formatting rst --start 3 --level 2 \
142     --regex ".+ethip6[a-z0-9]+-[a-z0-9]*-ndr" \
143     --title "IPv6 Overlay Tunnels"
144 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
145     --output ${DTC_PERF_SOURCE_DIR}/vpp_performance_configuration_ipv6o.rst \
146     --data "VAT_H" -f "rst" --start 3 --level 2 \
147     --regex ".+ethip6[a-z0-9]+-[a-z0-9]*-ndr" \
148     --title "IPv6 Overlay Tunnels"
149 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
150     -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv6o.rst \
151     --data "SH_RUN" -f "rst" --start 3 --level 2 \
152     --regex ".+ethip6[a-z0-9]+-[a-z0-9]*-ndr" \
153     --title "IPv6 Overlay Tunnels"
154 # VM Vhost Connections
155 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
156     --output ${DTR_PERF_SOURCE_DIR}/vpp_performance_results_vhost.rst \
157     --formatting rst --start 3 --level 2 \
158     --regex ".+vhost.*" \
159     --title "VM Vhost Connections"
160 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
161     --output ${DTC_PERF_SOURCE_DIR}/vpp_performance_configuration_vhost.rst \
162     --data "VAT_H" -f "rst" --start 3 --level 2 \
163     --regex ".+vhost.*" \
164     --title "VM Vhost Connections"
165 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
166     -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_vhost.rst \
167     --data "SH_RUN" -f "rst" --start 3 --level 2 \
168     --regex ".+vhost.*" \
169     --title "VM Vhost Connections"
170 # Crypto in hardware: IP4FWD, IP6FWD
171 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
172     --output ${DTR_PERF_SOURCE_DIR}/vpp_performance_results_ipsec.rst \
173     --formatting rst --start 3 --level 2 \
174     --regex ".+ipsec.*" \
175     --title "Crypto in hardware: IP4FWD, IP6FWD"
176 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
177     --output ${DTC_PERF_SOURCE_DIR}/vpp_performance_configuration_ipsec.rst \
178     --data "VAT_H" -f "rst" --start 3 --level 2 \
179     --regex ".+ipsec.*" \
180     --title "Crypto in hardware: IP4FWD, IP6FWD"
181 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
182     -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipsec.rst \
183     --data "SH_RUN" -f "rst" --start 3 --level 2 \
184     --regex ".+ipsec.*" \
185     --title "Crypto in hardware: IP4FWD, IP6FWD"
186 sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
187     ${DTR_PERF_SOURCE_DIR}/index.rst
188 sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
189     ${DTR_PERF_SOURCE_DIR}/index.rst
190 sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
191     ${DTC_PERF_SOURCE_DIR}/index.rst
192 sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
193     ${DTC_PERF_SOURCE_DIR}/index.rst
194 sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
195     ${DTC_PERF_SOURCE_OPER_DIR}/index.rst
196 sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
197     ${DTC_PERF_SOURCE_OPER_DIR}/index.rst
198 rm -f ${DTR_PERF_SOURCE_DIR}/*.json
199 rm -f ${DTC_PERF_SOURCE_DIR}/*.json
200 rm -f ${DTC_PERF_SOURCE_OPER_DIR}/*.json
201
202 ### DPDK PERFORMANCE SOURCE DATA
203
204 JEN_JOB='csit-dpdk-perf-1704-all'
205 JEN_BUILD=(1 2 3 4 5)
206
207 for i in "${JEN_BUILD[@]}"; do
208     curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/${JEN_FILE_PERF} \
209         -o ${STATIC_DIR_TESTPMD}/${JEN_JOB}-${i}.xml
210     curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/\*zip\*/archive.zip \
211        -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
212 done
213
214 # DELETE ME
215 #cp ./${JEN_JOB}-${JEN_BUILD[-1]}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip
216
217 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip -d ${WORKING_DIR}/
218 # Testpmd Performance Results
219 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
220     --output ${DTR_TESTPMD_SOURCE_DIR}/testpmd_performance_results.rst \
221     --formatting rst --start 3 --level 2
222 sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
223     ${DTR_TESTPMD_SOURCE_DIR}/index.rst
224 sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
225     ${DTR_TESTPMD_SOURCE_DIR}/index.rst
226 rm -f ${DTR_TESTPMD_SOURCE_DIR}/*.json
227
228 ### FUNCTIONAL SOURCE DATA
229
230 JEN_JOB='csit-vpp-functional-1704-ubuntu1604-virl'
231 JEN_BUILD=54
232
233 curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \
234     -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
235
236 # DELETE ME
237 #cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
238
239 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
240 # Cop Address Security
241 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
242     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_cop.rst \
243     --formatting rst --start 4 --level 2 \
244     --regex ".+cop.*" \
245     --title "Cop Address Security"
246 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
247     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_cop.rst \
248     --data "VAT_H" -f "rst" --start 4 --level 2 \
249     --regex ".+cop.*" \
250     --title "Cop Address Security"
251 # DHCP Client and proxy
252 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
253     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_dhcp.rst \
254     --formatting rst --start 4 --level 2 \
255     --regex ".+dhcp.*" \
256     --title "DHCP - Client and Proxy"
257 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
258     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_dhcp.rst \
259     --data "VAT_H" -f "rst" --start 4 --level 2 \
260     --regex ".+dhcp.*" \
261     --title "DHCP - Client and Proxy"
262 # GRE Overlay Tunnels
263 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
264     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_gre.rst \
265     --formatting rst --start 4 --level 2 \
266     --regex ".+ethip4gre.*" \
267     --title "GRE Overlay Tunnels"
268 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
269     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_gre.rst \
270     --data "VAT_H" -f "rst" --start 4 --level 2 \
271     --regex ".+ethip4gre.*" \
272     --title "GRE Overlay Tunnels"
273 # iACL Security
274 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
275     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_iacl.rst \
276     --formatting rst --start 4 --level 2 \
277     --regex ".+iacl.*" \
278     --title "iACL Security"
279 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
280     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_iacl.rst \
281     --data "VAT_H" -f "rst" --start 4 --level 2 \
282     --regex ".+iacl.*" \
283     --title "iACL Security"
284 # IPSec - Tunnels and Transport
285 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
286     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_ipsec.rst \
287     --formatting rst --start 4 --level 2 \
288     --regex ".+ipsec(tnl|tpt)+-.*" \
289     --title "IPSec - Tunnels and Transport"
290 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
291     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_ipsec.rst \
292     --data "VAT_H" -f "rst" --start 4 --level 2 \
293     --regex ".+ipsec(tnl|tpt)+-.*" \
294     --title "IPSec - Tunnels and Transport"
295 # IPv4 Routed-Forwarding
296 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
297     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_ipv4.rst \
298     --formatting rst --start 4 --level 2 \
299     --regex ".+ethip4-ip4base-(func|ip4ecmp\-func|ip4proxyarp\-func|ip4arp\-func)+" \
300     --title "IPv4 Routed-Forwarding"
301 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
302     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_ipv4.rst \
303     --data "VAT_H" -f "rst" --start 4 --level 2 \
304     --regex ".+ethip4-ip4base-(func|ip4ecmp\-func|ip4proxyarp\-func|ip4arp\-func)+" \
305     --title "IPv4 Routed-Forwarding"
306 # IPv6 Routed-Forwarding
307 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
308     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_ipv6.rst \
309     --formatting rst --start 4 --level 2 \
310     --regex ".+ethip6-ip6base-(func|ip6ecmp\-func|ip6ra\-func)+" \
311     --title "IPv6 Routed-Forwarding"
312 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
313     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_ipv6.rst \
314     --data "VAT_H" -f "rst" --start 4 --level 2 \
315     --regex ".+ethip6-ip6base-(func|ip6ecmp\-func|ip6ra\-func)+" \
316     --title "IPv6 Routed-Forwarding"
317 # L2BD Ethernet Switching
318 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
319     --output ${DTR_SOURCE_DIR}/vpp_functional_results/vpp_functional_results_l2bd.rst \
320     --formatting rst --start 4 --level 2 \
321     --regex ".+eth-l2bdbasemac(lrn|stc)+-(func|eth\-2vhost|l2shg\-func).*" \
322     --title "L2BD Ethernet Switching"
323 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
324     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_l2bd.rst \
325     --data "VAT_H" -f "rst" --start 4 --level 2 \
326     --regex ".+eth-l2bdbasemac(lrn|stc)+-(func|eth\-2vhost|l2shg\-func).*" \
327     --title "L2BD Ethernet Switching"
328 # L2XC Ethernet Switching
329 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
330     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_l2xc.rst \
331     --formatting rst --start 4 --level 2 \
332     --regex ".+eth-l2xcbase-(eth|func).*" \
333     --title "L2XC Ethernet Switching"
334 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
335     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_l2xc.rst \
336     --data "VAT_H" -f "rst" --start 4 --level 2 \
337     --regex ".+eth-l2xcbase-(eth|func).*" \
338     --title "L2XC Ethernet Switching"
339 # LISP Overlay Tunnels
340 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
341     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_lisp.rst \
342     --formatting rst --start 4 --level 2 \
343     --regex ".+lisp.*" \
344     --title "LISP Overlay Tunnels"
345 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
346     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_lisp.rst \
347     --data "VAT_H" -f "rst" --start 4 --level 2 \
348     --regex ".+lisp.*" \
349     --title "LISP Overlay Tunnels"
350 # QoS Policer Metering
351 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
352     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_policer.rst \
353     --formatting rst --start 4 --level 2 \
354     --regex ".+ipolicemark.*" \
355     --title "QoS Policer Metering"
356 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
357     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_policer.rst \
358     --data "VAT_H" -f "rst" --start 4 --level 2 \
359     --regex ".+ipolicemark.*" \
360     --title "QoS Policer Metering"
361 # RPF Source Security
362 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
363     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_rpf.rst \
364     --formatting rst --start 4 --level 2 \
365     --regex ".+rpf.*" \
366     --title "RPF Source Security"
367 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
368     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_rpf.rst \
369     --data "VAT_H" -f "rst" --start 4 --level 2 \
370     --regex ".+rpf.*" \
371     --title "RPF Source Security"
372 # Softwire Tunnels
373 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
374     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_softwire.rst \
375     --formatting rst --start 4 --level 2 \
376     --regex ".+swire.*" \
377     --title "Softwire Tunnels"
378 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
379     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_softwire.rst \
380     --data "VAT_H" -f "rst" --start 4 --level 2 \
381     --regex ".+swire.*" \
382     --title "Softwire Tunnels"
383 # Tap Interface
384 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
385     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_tap.rst \
386     --formatting rst --start 4 --level 2 \
387     --regex ".+tap.*" \
388     --title "Tap Interface"
389 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
390     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_tap.rst \
391     --data "VAT_H" -f "rst" --start 4 --level 2 \
392     --regex ".+tap.*" \
393     --title "Tap Interface"
394 # Telemetry - IPFIX and SPAN
395 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
396     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_telemetry.rst \
397     --formatting rst --start 4 --level 2 \
398     --regex ".+(ipfix|spanrx).*" \
399     --title "Telemetry - IPFIX and SPAN"
400 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
401     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_telemetry.rst \
402     --data "VAT_H" -f "rst" --start 4 --level 2 \
403     --regex ".+(ipfix|spanrx).*" \
404     --title "Telemetry - IPFIX and SPAN"
405 # VLAN Tag Translation
406 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
407     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_vlan.rst \
408     --formatting rst --start 4 --level 2 \
409     --regex ".+(dot1q\-|dot1ad\-).*" \
410     --title "VLAN Tag Translation"
411 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
412     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_vlan.rst \
413     --data "VAT_H" -f "rst" --start 4 --level 2 \
414     --regex ".+(dot1q\-|dot1ad\-).*" \
415     --title "VLAN Tag Translation"
416 # VRF Routed-Forwarding
417 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
418     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_vrf.rst \
419     --formatting rst --start 4 --level 2 \
420     --regex ".+ethip(4|6)+-ip(4|6)+basevrf.*" \
421     --title "VRF Routed-Forwarding"
422 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
423     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_vrf.rst \
424     --data "VAT_H" -f "rst" --start 4 --level 2 \
425     --regex ".+ethip(4|6)+-ip(4|6)+basevrf.*" \
426     --title "VRF Routed-Forwarding"
427 # VXLAN Overlay Tunnels
428 python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
429     --output ${DTR_FUNC_SOURCE_DIR}/vpp_functional_results_vxlan.rst \
430     --formatting rst --start 4 --level 2 \
431     --regex ".+(ip4vxlan|ip6vxlan).*" \
432     --title "VXLAN Overlay Tunnels"
433 python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
434     --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_vxlan.rst \
435     --data "VAT_H" -f "rst" --start 4 --level 2 \
436     --regex ".+(ip4vxlan|ip6vxlan).*" \
437     --title "VXLAN Overlay Tunnels"
438 sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
439     ${DTR_FUNC_SOURCE_DIR}/index.rst
440 sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
441     ${DTR_FUNC_SOURCE_DIR}/index.rst
442 sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
443     ${DTC_FUNC_SOURCE_DIR}/index.rst
444 sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
445     ${DTC_FUNC_SOURCE_DIR}/index.rst
446 rm -f ${DTR_FUNC_SOURCE_DIR}/*.json
447 rm -f ${DTC_FUNC_SOURCE_DIR}/*.json
448
449 ### HONEYCOMB SOURCE DATA
450
451 JEN_URL='https://jenkins.fd.io/view/hc2vpp/job'
452 JEN_JOB='hc2vpp-csit-integration-1704-ubuntu1604'
453 <<<<<<< HEAD
454 JEN_BUILD=27
455 =======
456 JEN_BUILD=41
457 >>>>>>> 2ac40cc... CSIT doc gen: Add configurations and operational data.
458
459 curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \
460     -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
461
462 # DELETE ME
463 #cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
464
465 unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
466 python run_robot_data.py -i ${WORKING_DIR}/archive/csit/output.xml \
467     --output ${DTR_HONEYCOMB_SOURCE_DIR}/honeycomb_functional_results.rst \
468     --formatting rst --start 3 --level 2
469 sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
470     ${DTR_HONEYCOMB_SOURCE_DIR}/index.rst
471 sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
472     ${DTR_HONEYCOMB_SOURCE_DIR}/index.rst
473 rm -f ${DTR_HONEYCOMB_SOURCE_DIR}/*.json
474
475 # Generate the documentation:
476
477 DATE=$(date -u '+%d-%b-%Y')
478
479 sphinx-build -v -c . -a -b html -E \
480     -D release=$1 -D version="$1 report - $DATE" \
481     ${SOURCE_DIR} ${BUILD_DIR}/
482
483 # Patch the CSS for tables layout
484 cat - > ${CSS_PATCH_FILE} <<"_EOF"
485 /* override table width restrictions */
486 @media screen and (min-width: 767px) {
487     .wy-table-responsive table td, .wy-table-responsive table th {
488         white-space: normal !important;
489     }
490
491     .wy-table-responsive {
492         font-size: small;
493         margin-bottom: 24px;
494         max-width: 100%;
495         overflow: visible !important;
496     }
497 }
498 _EOF
499
500 # Plot packets per second
501
502 python run_plot.py --input ${STATIC_DIR_VPP} \
503     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc \
504     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
505     --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"))]'
506 python run_plot.py --input ${STATIC_DIR_VPP} \
507     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc \
508     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
509     --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"))]'
510
511 python run_plot.py --input ${STATIC_DIR_VPP} \
512     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc \
513     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
514     --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"))]'
515 python run_plot.py --input ${STATIC_DIR_VPP} \
516     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc \
517     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
518     --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"))]'
519
520 python run_plot.py --input ${STATIC_DIR_VPP} \
521     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc \
522     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
523     --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"))]'
524 python run_plot.py --input ${STATIC_DIR_VPP} \
525     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc \
526     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
527     --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"))]'
528
529 python run_plot.py --input ${STATIC_DIR_VPP} \
530     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc \
531     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
532     --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"))]'
533 python run_plot.py --input ${STATIC_DIR_VPP} \
534     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ndrdisc \
535     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
536     --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"))]'
537
538 python run_plot.py --input ${STATIC_DIR_VPP} \
539     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ndrdisc \
540     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
541     --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"))]'
542 python run_plot.py --input ${STATIC_DIR_VPP} \
543     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc \
544     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
545     --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"))]'
546
547 python run_plot.py --input ${STATIC_DIR_VPP} \
548     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-ndrdisc \
549     --title "64B-1t1c-.*vhost.*-ndrdisc" \
550     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST")]'
551 python run_plot.py --input ${STATIC_DIR_VPP} \
552     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-ndrdisc \
553     --title "64B-2t2c-.*vhost.*-ndrdisc" \
554     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST")]'
555
556 python run_plot.py --input ${STATIC_DIR_VPP} \
557     --output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-ndrdisc \
558     --title "64B-1t1c-.*ipsec.*-ndrdisc" \
559     --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"))]'
560 python run_plot.py --input ${STATIC_DIR_VPP} \
561     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc \
562     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
563     --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"))]'
564
565 python run_plot.py --input ${STATIC_DIR_VPP} \
566     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-pdrdisc \
567     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
568     --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"))]'
569 python run_plot.py --input ${STATIC_DIR_VPP} \
570     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-pdrdisc \
571     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
572     --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"))]'
573
574 python run_plot.py --input ${STATIC_DIR_VPP} \
575     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-pdrdisc \
576     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
577     --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"))]'
578 python run_plot.py --input ${STATIC_DIR_VPP} \
579     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-pdrdisc \
580     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
581     --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"))]'
582
583 python run_plot.py --input ${STATIC_DIR_VPP} \
584     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-pdrdisc \
585     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
586     --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"))]'
587 python run_plot.py --input ${STATIC_DIR_VPP} \
588     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-pdrdisc \
589     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
590     --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"))]'
591
592 python run_plot.py --input ${STATIC_DIR_VPP} \
593     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-pdrdisc \
594     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
595     --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"))]'
596 python run_plot.py --input ${STATIC_DIR_VPP} \
597     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-pdrdisc \
598     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
599     --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"))]'
600
601 python run_plot.py --input ${STATIC_DIR_VPP} \
602     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-pdrdisc \
603     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
604     --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"))]'
605 python run_plot.py --input ${STATIC_DIR_VPP} \
606     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-pdrdisc \
607     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
608     --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"))]'
609
610 python run_plot.py --input ${STATIC_DIR_VPP} \
611     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-pdrdisc \
612     --title "64B-1t1c-.*vhost.*-pdrdisc" \
613     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"1T1C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST")]'
614 python run_plot.py --input ${STATIC_DIR_VPP} \
615     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-pdrdisc \
616     --title "64B-2t2c-.*vhost.*-pdrdisc" \
617     --xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"2T2C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST")]'
618
619 python run_plot.py --input ${STATIC_DIR_VPP} \
620     --output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-pdrdisc \
621     --title "64B-1t1c-.*ipsec.*-pdrdisc" \
622     --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"))]'
623 python run_plot.py --input ${STATIC_DIR_VPP} \
624     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-pdrdisc \
625     --title "64B-2t2c-.*ipsec.*-pdrdisc" \
626     --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"))]'
627
628 python run_plot.py --input ${STATIC_DIR_TESTPMD} \
629     --output ${STATIC_DIR_TESTPMD}/64B-1t1c-l2-ndrdisc \
630     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
631     --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"))]'
632 python run_plot.py --input ${STATIC_DIR_TESTPMD} \
633     --output ${STATIC_DIR_TESTPMD}/64B-2t2c-l2-ndrdisc \
634     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
635     --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"))]'
636
637 python run_plot.py --input ${STATIC_DIR_TESTPMD} \
638     --output ${STATIC_DIR_TESTPMD}/64B-1t1c-l2-pdrdisc \
639     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
640     --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"))]'
641 python run_plot.py --input ${STATIC_DIR_TESTPMD} \
642     --output ${STATIC_DIR_TESTPMD}/64B-2t2c-l2-pdrdisc \
643     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
644     --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"))]'
645
646 # Plot latency
647
648 python run_plot.py --input ${STATIC_DIR_VPP} \
649     --output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc-lat50 \
650     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
651     --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
652 python run_plot.py --input ${STATIC_DIR_VPP} \
653     --output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc-lat50 \
654     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
655     --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
656
657 python run_plot.py --input ${STATIC_DIR_VPP} \
658     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
659     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
660     --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
661 python run_plot.py --input ${STATIC_DIR_VPP} \
662     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
663     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
664     --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
665
666 python run_plot.py --input ${STATIC_DIR_VPP} \
667     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
668     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
669     --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
670 python run_plot.py --input ${STATIC_DIR_VPP} \
671     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
672     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
673     --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
674
675 python run_plot.py --input ${STATIC_DIR_VPP} \
676     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc-lat50 \
677     --title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
678     --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
679 python run_plot.py --input ${STATIC_DIR_VPP} \
680     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ndrdisc-lat50 \
681     --title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
682     --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
683
684 python run_plot.py --input ${STATIC_DIR_VPP} \
685     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ndrdisc-lat50 \
686     --title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
687     --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
688 python run_plot.py --input ${STATIC_DIR_VPP} \
689     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc-lat50 \
690     --title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
691     --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
692
693 python run_plot.py --input ${STATIC_DIR_VPP} \
694     --output ${STATIC_DIR_VPP}/64B-1t1c-vhost-ndrdisc-lat50 \
695     --title "64B-1t1c-.*vhost.*-ndrdisc" \
696     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST")]' --latency lat_50
697 python run_plot.py --input ${STATIC_DIR_VPP} \
698     --output ${STATIC_DIR_VPP}/64B-2t2c-vhost-ndrdisc-lat50 \
699     --title "64B-2t2c-.*vhost.*-ndrdisc" \
700     --xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST")]' --latency lat_50
701
702 python run_plot.py --input ${STATIC_DIR_VPP} \
703     --output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-ndrdisc-lat50 \
704     --title "64B-1t1c-.*ipsec.*-ndrdisc" \
705     --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
706 python run_plot.py --input ${STATIC_DIR_VPP} \
707     --output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc-lat50 \
708     --title "64B-2t2c-.*ipsec.*-ndrdisc" \
709     --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
710
711 python run_plot.py --input ${STATIC_DIR_TESTPMD} \
712     --output ${STATIC_DIR_TESTPMD}/64B-1t1c-l2-ndrdisc-lat50 \
713     --title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
714     --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
715 python run_plot.py --input ${STATIC_DIR_TESTPMD} \
716     --output ${STATIC_DIR_TESTPMD}/64B-2t2c-l2-ndrdisc-lat50 \
717     --title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
718     --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
719
720 # Create archive
721 echo Creating csit.report.tar.gz ...
722 tar -czvf ./csit.report.tar.gz ${BUILD_DIR}