X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Freport_gen%2Frun_report.sh;h=5c095c056e8d0441d02909b7c17853840b021fd1;hp=6bae02299db440698cfee66cbcc24874ba2b97b6;hb=c778fedabb02e6d56f5265ac861c86a4daed6e94;hpb=113c641cce78e2bcd1682f7f39862aa68fb8b39c diff --git a/resources/tools/report_gen/run_report.sh b/resources/tools/report_gen/run_report.sh index 6bae02299d..5c095c056e 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,23 +61,27 @@ 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 JEN_FILE_PERF='output_perf_data.xml' JEN_JOB='csit-vpp-perf-1704-all' -JEN_BUILD=(6) +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,28 +204,27 @@ 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 JEN_JOB='csit-dpdk-perf-1704-all' -JEN_BUILD=(1 2 3 4 5) +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=45 - -curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \ - -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip +JEN_BUILD=63 -# 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 @@ -354,7 +366,7 @@ python run_robot_data.py -i ${WORKING_DIR}/archive/output.xml \ --regex ".+ipolicemark.*" \ --title "QoS Policer Metering" python run_robot_teardown_data.py -i ${WORKING_DIR}/archive/output.xml \ - --output ${DTC_FUNC_SOURCE_DIR}/vpp_performancefunctional_configuration_policer.rst \ + --output ${DTC_FUNC_SOURCE_DIR}/vpp_functional_configuration_policer.rst \ --data "VAT_H" -f "rst" --start 4 --level 2 \ --regex ".+ipolicemark.*" \ --title "QoS Policer Metering" @@ -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: @@ -488,227 +502,227 @@ cat - > ${CSS_PATCH_FILE} <<"_EOF" font-size: small; margin-bottom: 24px; max-width: 100%; - overflow: visible !important; + /* overflow: visible !important; ###temporary fix### */ } } _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