aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/report_gen
diff options
context:
space:
mode:
Diffstat (limited to 'resources/tools/report_gen')
-rwxr-xr-xresources/tools/report_gen/run_report.sh192
1 files changed, 103 insertions, 89 deletions
diff --git a/resources/tools/report_gen/run_report.sh b/resources/tools/report_gen/run_report.sh
index c165f3a4df..00fbdfd63d 100755
--- a/resources/tools/report_gen/run_report.sh
+++ b/resources/tools/report_gen/run_report.sh
@@ -2,21 +2,29 @@
set -x
+DEBUG=0
+
WORKING_DIR='_tmp'
BUILD_DIR='_build'
SOURCE_DIR='../../../docs/report'
-DTR_SOURCE_DIR="${SOURCE_DIR}/detailed_test_results"
+
+PLOT_VPP_SOURCE_DIR=${WORKING_DIR}/vpp_plot
+PLOT_TESTPMD_SOURCE_DIR=${WORKING_DIR}/testpmd_plot
+
+DTR_SOURCE_DIR=${SOURCE_DIR}/detailed_test_results
DTR_PERF_SOURCE_DIR=${DTR_SOURCE_DIR}/vpp_performance_results
DTR_TESTPMD_SOURCE_DIR=${DTR_SOURCE_DIR}/testpmd_performance_results
DTR_FUNC_SOURCE_DIR=${DTR_SOURCE_DIR}/vpp_functional_results
DTR_HONEYCOMB_SOURCE_DIR=${DTR_SOURCE_DIR}/honeycomb_functional_results
-DTC_SOURCE_DIR="${SOURCE_DIR}/detailed_test_configuration"
+DTC_SOURCE_DIR=${SOURCE_DIR}/test_configuration
DTC_PERF_SOURCE_DIR=${DTC_SOURCE_DIR}/vpp_performance_configuration
-DTC_PERF_SOURCE_OPER_DIR=${DTC_SOURCE_DIR}/vpp_performance_operational_data
DTC_FUNC_SOURCE_DIR=${DTC_SOURCE_DIR}/vpp_functional_configuration
+DTO_SOURCE_DIR=${SOURCE_DIR}/test_operational_data
+DTO_PERF_SOURCE_OPER_DIR=${DTO_SOURCE_DIR}/vpp_performance_operational_data
+
STATIC_DIR="${BUILD_DIR}/_static"
STATIC_DIR_VPP="${STATIC_DIR}/vpp"
STATIC_DIR_TESTPMD="${STATIC_DIR}/testpmd"
@@ -53,6 +61,8 @@ echo Downloading raw outputs for plots ...
mkdir -p ${STATIC_DIR_VPP}
mkdir -p ${STATIC_DIR_TESTPMD}
mkdir -p ${STATIC_DIR_ARCH}
+mkdir -p ${PLOT_VPP_SOURCE_DIR}
+mkdir -p ${PLOT_TESTPMD_SOURCE_DIR}
### VPP PERFORMANCE SOURCE DATA
@@ -62,14 +72,16 @@ JEN_BUILD=(6 7 8)
for i in "${JEN_BUILD[@]}"; do
curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/${JEN_FILE_PERF} \
- -o ${STATIC_DIR_VPP}/${JEN_JOB}-${i}.xml
- curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/\*zip\*/archive.zip \
- -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
+ -o ${PLOT_VPP_SOURCE_DIR}/${JEN_JOB}-${i}.xml
+ if [[ ${DEBUG} -eq 1 ]] ;
+ then
+ cp ./${JEN_JOB}-${JEN_BUILD[-1]}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip
+ else
+ curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/\*zip\*/archive.zip \
+ -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
+ fi
done
-# DELETE ME
-#cp ./${JEN_JOB}-${JEN_BUILD[-1]}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip
-
unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip -d ${WORKING_DIR}/
# L2 Ethernet Switching
python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
@@ -83,7 +95,7 @@ python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
--regex ".+(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndr" \
--title "L2 Ethernet Switching"
python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
- -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_l2.rst \
+ -o ${DTO_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_l2.rst \
--data "SH_RUN" -f "rst" --start 3 --level 2 \
--regex ".+(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndr" \
--title "L2 Ethernet Switching"
@@ -99,7 +111,7 @@ python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
--regex ".+ethip4-ip4[a-z0-9]+-[a-z-]*ndr" \
--title "IPv4 Routed-Forwarding"
python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
- -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv4.rst \
+ -o ${DTO_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv4.rst \
--data "SH_RUN" -f "rst" --start 3 --level 2 \
--regex ".+ethip4-ip4[a-z0-9]+-[a-z-]*ndr" \
--title "IPv4 Routed-Forwarding"
@@ -115,7 +127,7 @@ python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
--regex ".+ethip6-ip6[a-z0-9]+-[a-z-]*ndr" \
--title "IPv6 Routed-Forwarding"
python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
- -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv6.rst \
+ -o ${DTO_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv6.rst \
--data "SH_RUN" -f "rst" --start 3 --level 2 \
--regex ".+ethip6-ip6[a-z0-9]+-[a-z-]*ndr" \
--title "IPv6 Routed-Forwarding"
@@ -131,7 +143,7 @@ python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
--regex ".+ethip4[a-z0-9]+-[a-z0-9]*-ndr" \
--title "IPv4 Overlay Tunnels"
python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
- -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv4o.rst \
+ -o ${DTO_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv4o.rst \
--data "SH_RUN" -f "rst" --start 3 --level 2 \
--regex ".+ethip4[a-z0-9]+-[a-z0-9]*-ndr" \
--title "IPv4 Overlay Tunnels"
@@ -147,7 +159,7 @@ python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
--regex ".+ethip6[a-z0-9]+-[a-z0-9]*-ndr" \
--title "IPv6 Overlay Tunnels"
python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
- -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv6o.rst \
+ -o ${DTO_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipv6o.rst \
--data "SH_RUN" -f "rst" --start 3 --level 2 \
--regex ".+ethip6[a-z0-9]+-[a-z0-9]*-ndr" \
--title "IPv6 Overlay Tunnels"
@@ -163,7 +175,7 @@ python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
--regex ".+vhost.*" \
--title "VM Vhost Connections"
python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
- -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_vhost.rst \
+ -o ${DTO_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_vhost.rst \
--data "SH_RUN" -f "rst" --start 3 --level 2 \
--regex ".+vhost.*" \
--title "VM Vhost Connections"
@@ -179,7 +191,7 @@ python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
--regex ".+ipsec.*" \
--title "Crypto in hardware: IP4FWD, IP6FWD"
python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \
- -o ${DTC_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipsec.rst \
+ -o ${DTO_PERF_SOURCE_OPER_DIR}/vpp_performance_operational_data_ipsec.rst \
--data "SH_RUN" -f "rst" --start 3 --level 2 \
--regex ".+ipsec.*" \
--title "Crypto in hardware: IP4FWD, IP6FWD"
@@ -192,12 +204,9 @@ sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
${DTC_PERF_SOURCE_DIR}/index.rst
sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
- ${DTC_PERF_SOURCE_OPER_DIR}/index.rst
+ ${DTO_PERF_SOURCE_OPER_DIR}/index.rst
sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
- ${DTC_PERF_SOURCE_OPER_DIR}/index.rst
-rm -f ${DTR_PERF_SOURCE_DIR}/*.json
-rm -f ${DTC_PERF_SOURCE_DIR}/*.json
-rm -f ${DTC_PERF_SOURCE_OPER_DIR}/*.json
+ ${DTO_PERF_SOURCE_OPER_DIR}/index.rst
### DPDK PERFORMANCE SOURCE DATA
@@ -206,14 +215,16 @@ JEN_BUILD=(1 2 3 4)
for i in "${JEN_BUILD[@]}"; do
curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/${JEN_FILE_PERF} \
- -o ${STATIC_DIR_TESTPMD}/${JEN_JOB}-${i}.xml
- curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/\*zip\*/archive.zip \
- -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
+ -o ${PLOT_TESTPMD_SOURCE_DIR}/${JEN_JOB}-${i}.xml
+ if [[ ${DEBUG} -eq 1 ]] ;
+ then
+ cp ./${JEN_JOB}-${JEN_BUILD[-1]}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip
+ else
+ curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/\*zip\*/archive.zip \
+ -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${i}.zip
+ fi
done
-# DELETE ME
-#cp ./${JEN_JOB}-${JEN_BUILD[-1]}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip
-
unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD[-1]}.zip -d ${WORKING_DIR}/
# Testpmd Performance Results
python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \
@@ -223,18 +234,19 @@ sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
${DTR_TESTPMD_SOURCE_DIR}/index.rst
sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD[-1]}@g" \
${DTR_TESTPMD_SOURCE_DIR}/index.rst
-rm -f ${DTR_TESTPMD_SOURCE_DIR}/*.json
### FUNCTIONAL SOURCE DATA
JEN_JOB='csit-vpp-functional-1704-ubuntu1604-virl'
JEN_BUILD=57
-curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \
- -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
-
-# DELETE ME
-#cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
+if [[ ${DEBUG} -eq 1 ]] ;
+then
+ cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
+else
+ curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \
+ -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
+fi
unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
# Cop Address Security
@@ -443,8 +455,6 @@ sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
${DTC_FUNC_SOURCE_DIR}/index.rst
sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
${DTC_FUNC_SOURCE_DIR}/index.rst
-rm -f ${DTR_FUNC_SOURCE_DIR}/*.json
-rm -f ${DTC_FUNC_SOURCE_DIR}/*.json
### HONEYCOMB SOURCE DATA
@@ -452,11 +462,13 @@ JEN_URL='https://jenkins.fd.io/view/hc2vpp/job'
JEN_JOB='hc2vpp-csit-integration-1704-ubuntu1604'
JEN_BUILD=41
-curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \
- -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
-
-# DELETE ME
-#cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
+if [[ ${DEBUG} -eq 1 ]] ;
+then
+ cp ./${JEN_JOB}-${JEN_BUILD}.zip ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
+else
+ curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \
+ -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
+fi
unzip -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip -d ${WORKING_DIR}/
python run_robot_data.py -i ${WORKING_DIR}/archive/csit/output.xml \
@@ -466,7 +478,9 @@ sed -i -e "s@###JOB###@${JEN_JOB}\/${JEN_BUILD}@g" \
${DTR_HONEYCOMB_SOURCE_DIR}/index.rst
sed -i -e "s@###LINK###@${JEN_URL}\/${JEN_JOB}\/${JEN_BUILD}@g" \
${DTR_HONEYCOMB_SOURCE_DIR}/index.rst
-rm -f ${DTR_HONEYCOMB_SOURCE_DIR}/*.json
+
+# Delete temporary json files
+find ${SOURCE_DIR} -name "*.json" -type f -delete
# Generate the documentation:
@@ -495,220 +509,220 @@ _EOF
# Plot packets per second
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc \
--title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc \
--title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc \
--title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc \
--title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc \
--title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc \
--title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc \
--title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ndrdisc \
--title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ndrdisc \
--title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc \
--title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-vhost-ndrdisc \
--title "64B-1t1c-.*vhost.*-ndrdisc" \
--xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST")]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-vhost-ndrdisc \
--title "64B-2t2c-.*vhost.*-ndrdisc" \
--xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST")]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-ndrdisc \
--title "64B-1t1c-.*ipsec.*-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc \
--title "64B-2t2c-.*ipsec.*-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-l2-pdrdisc \
--title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-l2-pdrdisc \
--title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-pdrdisc \
--title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-pdrdisc \
--title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-pdrdisc \
--title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-pdrdisc \
--title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-pdrdisc \
--title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-pdrdisc \
--title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-pdrdisc \
--title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-pdrdisc \
--title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-vhost-pdrdisc \
--title "64B-1t1c-.*vhost.*-pdrdisc" \
--xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"1T1C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST")]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-vhost-pdrdisc \
--title "64B-2t2c-.*vhost.*-pdrdisc" \
--xpath '//*[@framesize="64B" and contains(@tags,"PDRDISC") and contains(@tags,"2T2C") and not(contains(@tags,"NDRDISC")) and contains(@tags,"VHOST")]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-pdrdisc \
--title "64B-1t1c-.*ipsec.*-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-pdrdisc \
--title "64B-2t2c-.*ipsec.*-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_TESTPMD} \
+python run_plot.py --input ${PLOT_TESTPMD_SOURCE_DIR} \
--output ${STATIC_DIR_TESTPMD}/64B-1t1c-l2-ndrdisc \
--title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_TESTPMD} \
+python run_plot.py --input ${PLOT_TESTPMD_SOURCE_DIR} \
--output ${STATIC_DIR_TESTPMD}/64B-2t2c-l2-ndrdisc \
--title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_TESTPMD} \
+python run_plot.py --input ${PLOT_TESTPMD_SOURCE_DIR} \
--output ${STATIC_DIR_TESTPMD}/64B-1t1c-l2-pdrdisc \
--title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
--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"))]'
-python run_plot.py --input ${STATIC_DIR_TESTPMD} \
+python run_plot.py --input ${PLOT_TESTPMD_SOURCE_DIR} \
--output ${STATIC_DIR_TESTPMD}/64B-2t2c-l2-pdrdisc \
--title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-pdrdisc" \
--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"))]'
# Plot latency
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-l2-ndrdisc-lat50 \
--title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-l2-ndrdisc-lat50 \
--title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
--title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
--title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
--title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
--title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc-lat50 \
--title "64B-1t1c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ndrdisc-lat50 \
--title "64B-2t2c-ethip4[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ndrdisc-lat50 \
--title "78B-1t1c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ndrdisc-lat50 \
--title "78B-2t2c-ethip6[a-z0-9]+-[a-z0-9]*-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-vhost-ndrdisc-lat50 \
--title "64B-1t1c-.*vhost.*-ndrdisc" \
--xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"VHOST")]' --latency lat_50
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-vhost-ndrdisc-lat50 \
--title "64B-2t2c-.*vhost.*-ndrdisc" \
--xpath '//*[@framesize="64B" and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"VHOST")]' --latency lat_50
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-1t1c-ipsechw-ndrdisc-lat50 \
--title "64B-1t1c-.*ipsec.*-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_VPP} \
+python run_plot.py --input ${PLOT_VPP_SOURCE_DIR} \
--output ${STATIC_DIR_VPP}/64B-2t2c-ipsechw-ndrdisc-lat50 \
--title "64B-2t2c-.*ipsec.*-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_TESTPMD} \
+python run_plot.py --input ${PLOT_TESTPMD_SOURCE_DIR} \
--output ${STATIC_DIR_TESTPMD}/64B-1t1c-l2-ndrdisc-lat50 \
--title "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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
-python run_plot.py --input ${STATIC_DIR_TESTPMD} \
+python run_plot.py --input ${PLOT_TESTPMD_SOURCE_DIR} \
--output ${STATIC_DIR_TESTPMD}/64B-2t2c-l2-ndrdisc-lat50 \
--title "64B-2t2c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc" \
--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