aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DPDK_VPP_VER2
-rw-r--r--VPP_STABLE_VER_UBUNTU_JAMMY2
-rw-r--r--VPP_STABLE_VER_UBUNTU_NOBLE2
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/coverage_rls2502_ndrpdrbin0 -> 11868 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_hoststackbin0 -> 8303 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_mrrbin0 -> 9704 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_ndrpdrbin0 -> 15951 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_soakbin0 -> 9328 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/data.py4
-rw-r--r--csit.infra.dash/app/cdash/data/data.yaml280
-rw-r--r--csit.infra.dash/app/cdash/utils/constants.py3
-rw-r--r--csit.infra.etl/coverage_device.json89
-rw-r--r--csit.infra.etl/coverage_device_rls2410.py175
-rw-r--r--csit.infra.etl/coverage_hoststack.py (renamed from csit.infra.etl/coverage_hoststack_rls2410.py)8
-rw-r--r--csit.infra.etl/coverage_mrr.py (renamed from csit.infra.etl/coverage_mrr_rls2410.py)8
-rw-r--r--csit.infra.etl/coverage_ndrpdr.py (renamed from csit.infra.etl/coverage_ndrpdr_rls2410.py)8
-rw-r--r--csit.infra.etl/coverage_reconf.py (renamed from csit.infra.etl/coverage_reconf_rls2410.py)8
-rw-r--r--csit.infra.etl/coverage_soak.py (renamed from csit.infra.etl/coverage_soak_rls2410.py)8
-rw-r--r--csit.infra.etl/iterative_hoststack.py (renamed from csit.infra.etl/iterative_hoststack_rls2410.py)8
-rw-r--r--csit.infra.etl/iterative_mrr.py (renamed from csit.infra.etl/iterative_mrr_rls2410.py)8
-rw-r--r--csit.infra.etl/iterative_ndrpdr.py (renamed from csit.infra.etl/iterative_ndrpdr_rls2410.py)8
-rw-r--r--csit.infra.etl/iterative_reconf.py (renamed from csit.infra.etl/iterative_reconf_rls2410.py)8
-rw-r--r--csit.infra.etl/iterative_soak.py (renamed from csit.infra.etl/iterative_soak_rls2410.py)8
-rw-r--r--csit.infra.etl/local.py2
-rw-r--r--csit.infra.etl/stats.py4
-rw-r--r--csit.infra.etl/trending_hoststack.py4
-rw-r--r--csit.infra.etl/trending_mrr.py4
-rw-r--r--csit.infra.etl/trending_ndrpdr.py4
-rw-r--r--csit.infra.etl/trending_reconf.py4
-rw-r--r--csit.infra.etl/trending_soak.py4
-rw-r--r--docs/content/infrastructure/fdio_dc_testbed_specifications.md2
-rw-r--r--docs/content/overview/csit/design.md57
-rw-r--r--docs/content/release_notes/current/_index.md101
-rw-r--r--docs/content/release_notes/current/dpdk_performance.md31
-rw-r--r--docs/content/release_notes/current/trex_performance.md22
-rw-r--r--docs/content/release_notes/current/vpp_performance.md77
-rw-r--r--docs/content/release_notes/previous/_index.md1
-rw-r--r--docs/content/release_notes/previous/csit_rls2302/_index.md2
-rw-r--r--docs/content/release_notes/previous/csit_rls2306/_index.md2
-rw-r--r--docs/content/release_notes/previous/csit_rls2310/_index.md2
-rw-r--r--docs/content/release_notes/previous/csit_rls2402/_index.md2
-rw-r--r--docs/content/release_notes/previous/csit_rls2406/_index.md2
-rw-r--r--docs/content/release_notes/previous/csit_rls2410/_index.md119
-rw-r--r--docs/content/release_notes/previous/csit_rls2410/dpdk_performance.md48
-rw-r--r--docs/content/release_notes/previous/csit_rls2410/trex_performance.md42
-rw-r--r--docs/content/release_notes/previous/csit_rls2410/vpp_performance.md115
-rw-r--r--docs/data/variables.yaml4
-rw-r--r--docs/static/csit_design_picture.svg709
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml10
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.41.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.42.yaml10
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.43.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml10
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml8
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.61.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml6
-rw-r--r--fdio.infra.ansible/roles/aws/tasks/main.yaml22
-rw-r--r--fdio.infra.ansible/roles/cleanup/files/reset_vppdevice.sh113
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml19
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml14
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml8
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/main.yaml16
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml6
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml4
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/sut.yaml38
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/tg.yaml6
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml32
-rw-r--r--fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j218
-rw-r--r--fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j222
-rw-r--r--fdio.infra.ansible/roles/dpdk/defaults/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml5
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf2
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/main.tf39
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf2
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf6
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf29
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf2
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf8
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2410.hcl.tftpl59
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak.hcl.tftpl (renamed from fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak-rls2410.hcl.tftpl)4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf10
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf26
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf4
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf23
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf28
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf5
-rw-r--r--fdio.infra.terraform/terraform-vault-fdio-creds/main.tf86
-rw-r--r--fdio.infra.terraform/terraform-vault-fdio-creds/providers.tf (renamed from fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf)0
-rw-r--r--fdio.infra.terraform/terraform-vault-fdio-creds/variables.tf (renamed from fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf)0
-rw-r--r--fdio.infra.terraform/terraform-vault-fdio-creds/versions.tf (renamed from fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf)0
-rw-r--r--fdio.infra/packer-aws-sut/ubuntu_noble_arm.pkr.hcl10
-rw-r--r--fdio.infra/packer-aws-sut/ubuntu_noble_x86.pkr.hcl23
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b42
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:322
-rw-r--r--resources/api/vpp/supported_crcs.yaml12
-rw-r--r--resources/job_specs/report_coverage/2n-grc/dpdk-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-00.md74
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-01.md34
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-02.md24
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-03.md24
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-04.md24
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-05.md20
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-06.md26
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4-07.md36
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip4tun-00.md64
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip6-00.md34
-rw-r--r--resources/job_specs/report_coverage/2n-grc/ip6-01.md64
-rw-r--r--resources/job_specs/report_coverage/2n-grc/l2-00.md44
-rw-r--r--resources/job_specs/report_coverage/2n-grc/l2-01.md34
-rw-r--r--resources/job_specs/report_coverage/2n-grc/lb-00.md34
-rw-r--r--resources/job_specs/report_coverage/2n-grc/memif-00.md48
-rw-r--r--resources/job_specs/report_coverage/2n-grc/vhost-00.md64
-rw-r--r--resources/job_specs/report_coverage/3n-emr/dpdk-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-emr/vpp-gso-mrr-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-emr/vpp-mrr-00.md4
-rw-r--r--resources/job_specs/report_iterative/2n-grc/vpp-mrr-00.md13
-rw-r--r--resources/job_specs/report_iterative/2n-grc/vpp-ndrpdr-00.md13
-rw-r--r--resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md20
-rw-r--r--resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md20
-rw-r--r--resources/job_specs/report_iterative/2n-spr/vpp-gso-mrr-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md6
-rw-r--r--resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md6
-rw-r--r--resources/job_specs/report_iterative/3n-emr/vpp-mrr-00.md8
-rw-r--r--resources/job_specs/report_iterative/3n-emr/vpp-ndrpdr-00.md19
-rw-r--r--resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md77
-rw-r--r--resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md77
-rw-r--r--resources/libraries/bash/function/gather_dpdk.sh4
-rwxr-xr-xresources/libraries/bash/function/nginx.sh4
-rw-r--r--resources/libraries/python/Constants.py6
-rw-r--r--resources/libraries/python/ContainerUtils.py4
-rw-r--r--resources/libraries/python/DPDK/DPDKTools.py3
-rw-r--r--resources/libraries/python/DPDK/L3fwdTest.py30
-rw-r--r--resources/libraries/python/DPDK/TestpmdTest.py22
-rw-r--r--resources/libraries/python/DpdkUtil.py80
-rw-r--r--resources/libraries/python/IPUtil.py6
-rw-r--r--resources/libraries/python/InterfaceUtil.py54
-rw-r--r--resources/libraries/python/QemuUtils.py10
-rw-r--r--resources/libraries/python/VPPUtil.py3
-rw-r--r--resources/libraries/python/VppConfigGenerator.py4
-rw-r--r--resources/libraries/robot/hoststack/hoststack.robot9
-rw-r--r--resources/libraries/robot/performance/performance_actions.robot5
-rw-r--r--resources/libraries/robot/shared/default.robot3
-rw-r--r--resources/libraries/robot/shared/interfaces.robot12
-rw-r--r--resources/templates/telemetry/perf_stat_runtime.yaml8
-rw-r--r--resources/templates/telemetry/perf_stat_runtime_arm.yaml104
-rw-r--r--resources/templates/vcl/vcl_iperf3.conf2
-rw-r--r--resources/tools/telemetry/bundle_perf_stat.py35
-rw-r--r--topologies/available/lf_3n_emr_testbed28.yaml12
-rw-r--r--topologies/available/lf_3n_emr_testbed29.yaml20
175 files changed, 2049 insertions, 2294 deletions
diff --git a/DPDK_VPP_VER b/DPDK_VPP_VER
index d17b147b91..c186740ecc 100644
--- a/DPDK_VPP_VER
+++ b/DPDK_VPP_VER
@@ -1 +1 @@
-dpdk-24.07
+dpdk-24.11.1
diff --git a/VPP_STABLE_VER_UBUNTU_JAMMY b/VPP_STABLE_VER_UBUNTU_JAMMY
index 74e0e88100..3ef9f00207 100644
--- a/VPP_STABLE_VER_UBUNTU_JAMMY
+++ b/VPP_STABLE_VER_UBUNTU_JAMMY
@@ -1 +1 @@
-25.02-rc0~161-g72bd2e585 \ No newline at end of file
+25.06-rc0~16-gf79c4be55 \ No newline at end of file
diff --git a/VPP_STABLE_VER_UBUNTU_NOBLE b/VPP_STABLE_VER_UBUNTU_NOBLE
index 74e0e88100..3ef9f00207 100644
--- a/VPP_STABLE_VER_UBUNTU_NOBLE
+++ b/VPP_STABLE_VER_UBUNTU_NOBLE
@@ -1 +1 @@
-25.02-rc0~161-g72bd2e585 \ No newline at end of file
+25.06-rc0~16-gf79c4be55 \ No newline at end of file
diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2502_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2502_ndrpdr
new file mode 100644
index 0000000000..06bc618bea
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2502_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_hoststack b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_hoststack
new file mode 100644
index 0000000000..1e9c708253
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_hoststack
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_mrr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_mrr
new file mode 100644
index 0000000000..ced78967c5
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_mrr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_ndrpdr
new file mode 100644
index 0000000000..cf2b8a116b
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_soak b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_soak
new file mode 100644
index 0000000000..4502ca4f59
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2502_soak
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/data.py b/csit.infra.dash/app/cdash/data/data.py
index 41033a7758..749769c269 100644
--- a/csit.infra.dash/app/cdash/data/data.py
+++ b/csit.infra.dash/app/cdash/data/data.py
@@ -14,6 +14,7 @@
"""Prepare data for Plotly Dash applications.
"""
+import botocore
import logging
import resource
import awswrangler as wr
@@ -286,6 +287,9 @@ class Data:
if days:
last_modified_begin = datetime.now(tz=UTC) - timedelta(days=days)
try:
+ wr.config.botocore_config = botocore.config.Config(
+ max_pool_connections=C.MAX_POOL_SIZE
+ )
df = wr.s3.read_parquet(
path=path,
path_suffix="parquet",
diff --git a/csit.infra.dash/app/cdash/data/data.yaml b/csit.infra.dash/app/cdash/data/data.yaml
index 36fb450587..d807f6a199 100644
--- a/csit.infra.dash/app/cdash/data/data.yaml
+++ b/csit.infra.dash/app/cdash/data/data.yaml
@@ -1,7 +1,7 @@
- data_type: statistics
partition: stats_type
partition_name: sra
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/stats
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/stats
schema: statistics
columns:
- job
@@ -11,7 +11,7 @@
- data_type: trending
partition: test_type
partition_name: mrr
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/trending
schema: trending_mrr
columns:
- job
@@ -36,7 +36,7 @@
- data_type: trending
partition: test_type
partition_name: ndrpdr
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/trending
schema: trending_ndrpdr
columns:
- job
@@ -71,7 +71,7 @@
- data_type: trending
partition: test_type
partition_name: hoststack
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/trending
schema: trending_hoststack
columns:
- job
@@ -94,7 +94,7 @@
- data_type: trending
partition: test_type
partition_name: soak
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/trending
schema: trending_soak
columns:
- job
@@ -115,14 +115,16 @@
- data_type: iterative
partition: test_type
partition_name: mrr
- release: rls2310
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2310
- schema: iterative_rls2310_mrr
+ release: rls2406
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
+ schema: iterative_rls2406_mrr
columns:
- job
- build
- dut_type
- dut_version
+ - tg_type
+ - hosts
- start_time
- passed
- test_id
@@ -130,18 +132,22 @@
- result_receive_rate_rate_avg
- result_receive_rate_rate_stdev
- result_receive_rate_rate_unit
- - result_receive_rate_rate_values
+ - result_receive_rate_bandwidth_avg
+ - result_receive_rate_bandwidth_stdev
+ - result_receive_rate_bandwidth_unit
- data_type: iterative
partition: test_type
partition_name: ndrpdr
- release: rls2310
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2310
- schema: iterative_rls2310_ndrpdr
+ release: rls2406
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
+ schema: iterative_rls2406_ndrpdr
columns:
- job
- build
- dut_type
- dut_version
+ - tg_type
+ - hosts
- start_time
- passed
- test_id
@@ -167,14 +173,15 @@
- data_type: iterative
partition: test_type
partition_name: hoststack
- release: rls2310
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2310
- schema: iterative_rls2310_hoststack
+ release: rls2406
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
+ schema: iterative_rls2406_hoststack
columns:
- job
- build
- dut_type
- dut_version
+ - hosts
- tg_type
- result_bandwidth_unit
- result_bandwidth_value
@@ -184,125 +191,12 @@
- passed
- test_id
- version
-- data_type: coverage
- partition: test_type
- partition_name: ndrpdr
- release: rls2310
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2310
- schema: coverage_rls2310_ndrpdr
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - tg_type
- - start_time
- - passed
- - test_id
- - version
- - result_pdr_lower_rate_unit
- - result_pdr_lower_rate_value
- - result_ndr_lower_rate_value
- - result_pdr_lower_bandwidth_value
- - result_ndr_lower_bandwidth_value
- - result_latency_reverse_pdr_90_hdrh
- - result_latency_reverse_pdr_50_hdrh
- - result_latency_reverse_pdr_10_hdrh
- - result_latency_forward_pdr_90_hdrh
- - result_latency_forward_pdr_50_hdrh
- - result_latency_forward_pdr_10_hdrh
-- data_type: coverage
- partition: test_type
- partition_name: mrr
- release: rls2310
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2310
- schema: iterative_rls2310_mrr
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - start_time
- - passed
- - test_id
- - version
- - result_receive_rate_rate_avg
- - result_receive_rate_rate_stdev
- - result_receive_rate_rate_unit
-- data_type: coverage
- partition: test_type
- partition_name: device
- release: rls2310
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2310
- schema: coverage_rls2310_device
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - passed
- - test_id
- - version
-- data_type: iterative
- partition: test_type
- partition_name: mrr
- release: rls2402
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2402
- schema: iterative_rls2402_mrr
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - start_time
- - passed
- - test_id
- - version
- - result_receive_rate_rate_avg
- - result_receive_rate_rate_stdev
- - result_receive_rate_rate_unit
- - result_receive_rate_bandwidth_avg
- - result_receive_rate_bandwidth_stdev
- - result_receive_rate_bandwidth_unit
-- data_type: iterative
- partition: test_type
- partition_name: ndrpdr
- release: rls2402
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2402
- schema: iterative_rls2402_ndrpdr
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - start_time
- - passed
- - test_id
- - version
- - result_pdr_lower_rate_unit
- - result_pdr_lower_rate_value
- - result_ndr_lower_rate_unit
- - result_ndr_lower_rate_value
- - result_pdr_lower_bandwidth_unit
- - result_pdr_lower_bandwidth_value
- - result_ndr_lower_bandwidth_unit
- - result_ndr_lower_bandwidth_value
- - result_latency_reverse_pdr_90_hdrh
- - result_latency_reverse_pdr_50_hdrh
- - result_latency_reverse_pdr_10_hdrh
- - result_latency_reverse_pdr_0_hdrh
- - result_latency_forward_pdr_90_hdrh
- - result_latency_forward_pdr_50_avg
- - result_latency_forward_pdr_50_hdrh
- - result_latency_forward_pdr_50_unit
- - result_latency_forward_pdr_10_hdrh
- - result_latency_forward_pdr_0_hdrh
- data_type: iterative
partition: test_type
- partition_name: hoststack
- release: rls2402
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2402
- schema: iterative_rls2402_hoststack
+ partition_name: soak
+ release: rls2406
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
+ schema: iterative_rls2406_soak
columns:
- job
- build
@@ -310,20 +204,21 @@
- dut_version
- hosts
- tg_type
- - result_bandwidth_unit
- - result_bandwidth_value
- - result_rate_unit
- - result_rate_value
+ - result_critical_rate_lower_bandwidth_unit
+ - result_critical_rate_lower_bandwidth_value
+ - result_critical_rate_lower_rate_unit
+ - result_critical_rate_lower_rate_value
- start_time
- passed
+ - telemetry
- test_id
- version
- data_type: coverage
partition: test_type
partition_name: ndrpdr
- release: rls2402
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2402
- schema: coverage_rls2402_ndrpdr
+ release: rls2406
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2406
+ schema: coverage_rls2406_ndrpdr
columns:
- job
- build
@@ -348,14 +243,15 @@
- data_type: coverage
partition: test_type
partition_name: mrr
- release: rls2402
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2402
- schema: iterative_rls2402_mrr
+ release: rls2406
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2406
+ schema: iterative_rls2406_mrr
columns:
- job
- build
- dut_type
- dut_version
+ - tg_type
- start_time
- passed
- test_id
@@ -366,23 +262,24 @@
- data_type: coverage
partition: test_type
partition_name: device
- release: rls2402
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2402
- schema: coverage_rls2402_device
+ release: rls2406
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2406
+ schema: coverage_rls2406_device
columns:
- job
- build
- dut_type
- dut_version
+ - tg_type
- passed
- test_id
- version
- data_type: iterative
partition: test_type
partition_name: mrr
- release: rls2406
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
- schema: iterative_rls2406_mrr
+ release: rls2410
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
+ schema: iterative_rls2410_mrr
columns:
- job
- build
@@ -403,9 +300,9 @@
- data_type: iterative
partition: test_type
partition_name: ndrpdr
- release: rls2406
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
- schema: iterative_rls2406_ndrpdr
+ release: rls2410
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
+ schema: iterative_rls2410_ndrpdr
columns:
- job
- build
@@ -438,9 +335,9 @@
- data_type: iterative
partition: test_type
partition_name: hoststack
- release: rls2406
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
- schema: iterative_rls2406_hoststack
+ release: rls2410
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
+ schema: iterative_rls2410_hoststack
columns:
- job
- build
@@ -459,9 +356,9 @@
- data_type: iterative
partition: test_type
partition_name: soak
- release: rls2406
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2406
- schema: iterative_rls2406_soak
+ release: rls2410
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
+ schema: iterative_rls2410_soak
columns:
- job
- build
@@ -481,9 +378,9 @@
- data_type: coverage
partition: test_type
partition_name: ndrpdr
- release: rls2406
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2406
- schema: coverage_rls2406_ndrpdr
+ release: rls2410
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2410
+ schema: coverage_rls2410_ndrpdr
columns:
- job
- build
@@ -508,9 +405,9 @@
- data_type: coverage
partition: test_type
partition_name: mrr
- release: rls2406
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2406
- schema: iterative_rls2406_mrr
+ release: rls2410
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2410
+ schema: iterative_rls2410_mrr
columns:
- job
- build
@@ -527,9 +424,9 @@
- data_type: coverage
partition: test_type
partition_name: device
- release: rls2406
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2406
- schema: coverage_rls2406_device
+ release: rls2410
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2410
+ schema: coverage_rls2410_device
columns:
- job
- build
@@ -542,9 +439,9 @@
- data_type: iterative
partition: test_type
partition_name: mrr
- release: rls2410
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
- schema: iterative_rls2410_mrr
+ release: rls2502
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2502
+ schema: iterative_rls2502_mrr
columns:
- job
- build
@@ -565,9 +462,9 @@
- data_type: iterative
partition: test_type
partition_name: ndrpdr
- release: rls2410
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
- schema: iterative_rls2410_ndrpdr
+ release: rls2502
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2502
+ schema: iterative_rls2502_ndrpdr
columns:
- job
- build
@@ -600,9 +497,9 @@
- data_type: iterative
partition: test_type
partition_name: hoststack
- release: rls2410
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
- schema: iterative_rls2410_hoststack
+ release: rls2502
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2502
+ schema: iterative_rls2502_hoststack
columns:
- job
- build
@@ -621,9 +518,9 @@
- data_type: iterative
partition: test_type
partition_name: soak
- release: rls2410
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2410
- schema: iterative_rls2410_soak
+ release: rls2502
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/iterative_rls2502
+ schema: iterative_rls2502_soak
columns:
- job
- build
@@ -643,9 +540,9 @@
- data_type: coverage
partition: test_type
partition_name: ndrpdr
- release: rls2410
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2410
- schema: coverage_rls2410_ndrpdr
+ release: rls2502
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2502
+ schema: coverage_rls2502_ndrpdr
columns:
- job
- build
@@ -670,9 +567,9 @@
- data_type: coverage
partition: test_type
partition_name: mrr
- release: rls2410
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2410
- schema: iterative_rls2410_mrr
+ release: rls2502
+ path: s3://csit-docs-s3-cloudfront-index/csit/parquet/coverage_rls2502
+ schema: iterative_rls2502_mrr
columns:
- job
- build
@@ -686,18 +583,3 @@
- result_receive_rate_rate_avg
- result_receive_rate_rate_stdev
- result_receive_rate_rate_unit
-- data_type: coverage
- partition: test_type
- partition_name: device
- release: rls2410
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2410
- schema: coverage_rls2410_device
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - tg_type
- - passed
- - test_id
- - version
diff --git a/csit.infra.dash/app/cdash/utils/constants.py b/csit.infra.dash/app/cdash/utils/constants.py
index d17f06020a..823ecc62c7 100644
--- a/csit.infra.dash/app/cdash/utils/constants.py
+++ b/csit.infra.dash/app/cdash/utils/constants.py
@@ -154,6 +154,9 @@ class Constants:
# The file with tooltips.
TOOLTIP_FILE = "cdash/utils/tooltips.yaml"
+ # Max pool size for boto3
+ MAX_POOL_SIZE = get_int_from_env("MAX_POOL_SIZE", 30)
+
# Maximal value of TIME_PERIOD for data read from the parquets in days.
# Do not change without a good reason.
MAX_TIME_PERIOD = 250
diff --git a/csit.infra.etl/coverage_device.json b/csit.infra.etl/coverage_device.json
deleted file mode 100644
index 2a4327c05f..0000000000
--- a/csit.infra.etl/coverage_device.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "fields": [
- {
- "metadata": {},
- "name": "job",
- "nullable": false,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "build",
- "nullable": false,
- "type": "integer"
- },
- {
- "metadata": {},
- "name": "duration",
- "nullable": true,
- "type": "double"
- },
- {
- "metadata": {},
- "name": "dut_type",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "dut_version",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "tg_type",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "tg_version",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "start_time",
- "nullable": true,
- "type": "timestamp"
- },
- {
- "metadata": {},
- "name": "passed",
- "nullable": true,
- "type": "boolean"
- },
- {
- "metadata": {},
- "name": "test_id",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "test_name_long",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "test_name_short",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "test_type",
- "nullable": true,
- "type": "string"
- },
- {
- "metadata": {},
- "name": "version",
- "nullable": true,
- "type": "string"
- }
- ],
- "type": "struct"
-} \ No newline at end of file
diff --git a/csit.infra.etl/coverage_device_rls2410.py b/csit.infra.etl/coverage_device_rls2410.py
deleted file mode 100644
index 48746daabb..0000000000
--- a/csit.infra.etl/coverage_device_rls2410.py
+++ /dev/null
@@ -1,175 +0,0 @@
-#!/usr/bin/env python3
-
-# Copyright (c) 2024 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""ETL script running on top of the s3://"""
-
-from datetime import datetime, timedelta
-from json import load
-from os import environ
-from pytz import utc
-
-import awswrangler as wr
-from awswrangler.exceptions import EmptyDataFrame
-from awsglue.context import GlueContext
-from boto3 import session
-from pyspark.context import SparkContext
-from pyspark.sql.functions import col, lit, regexp_replace
-from pyspark.sql.types import StructType
-
-
-S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
-PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-vpp-device-*"
-SUFFIX="info.json.gz"
-IGNORE_SUFFIX=[
- "suite.info.json.gz",
- "setup.info.json.gz",
- "teardown.info.json.gz",
- "suite.output.info.json.gz",
- "setup.output.info.json.gz",
- "teardown.output.info.json.gz"
-]
-LAST_MODIFIED_END=utc.localize(
- datetime.strptime(
- f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
- "%Y-%m-%d"
- )
-)
-LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
-
-
-def flatten_frame(nested_sdf):
- """Unnest Spark DataFrame in case there nested structered columns.
-
- :param nested_sdf: Spark DataFrame.
- :type nested_sdf: DataFrame
- :returns: Unnest DataFrame.
- :rtype: DataFrame
- """
- stack = [((), nested_sdf)]
- columns = []
- while len(stack) > 0:
- parents, sdf = stack.pop()
- for column_name, column_type in sdf.dtypes:
- if column_type[:6] == "struct":
- projected_sdf = sdf.select(column_name + ".*")
- stack.append((parents + (column_name,), projected_sdf))
- else:
- columns.append(
- col(".".join(parents + (column_name,))) \
- .alias("_".join(parents + (column_name,)))
- )
- return nested_sdf.select(columns)
-
-
-def process_json_to_dataframe(schema_name, paths):
- """Processes JSON to Spark DataFrame.
-
- :param schema_name: Schema name.
- :type schema_name: string
- :param paths: S3 paths to process.
- :type paths: list
- :returns: Spark DataFrame.
- :rtype: DataFrame
- """
- drop_subset = [
- "dut_type", "dut_version",
- "passed",
- "test_name_long", "test_name_short",
- "test_type",
- "version"
- ]
-
- # load schemas
- with open(f"coverage_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
- schema = StructType.fromJson(load(f_schema))
-
- # create empty DF out of schemas
- sdf = spark.createDataFrame([], schema)
-
- # filter list
- filtered = [path for path in paths if schema_name in path]
-
- # select
- for path in filtered:
- print(path)
-
- sdf_loaded = spark \
- .read \
- .option("multiline", "true") \
- .schema(schema) \
- .json(path) \
- .withColumn("job", lit(path.split("/")[4])) \
- .withColumn("build", lit(path.split("/")[5]))
- sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
-
- # drop rows with all nulls and drop rows with null in critical frames
- sdf = sdf.na.drop(how="all")
- sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
-
- # flatten frame
- sdf = flatten_frame(sdf)
-
- return sdf
-
-
-# create SparkContext and GlueContext
-spark_context = SparkContext.getOrCreate()
-spark_context.setLogLevel("WARN")
-glue_context = GlueContext(spark_context)
-spark = glue_context.spark_session
-
-# files of interest
-paths = wr.s3.list_objects(
- path=PATH,
- suffix=SUFFIX,
- last_modified_begin=LAST_MODIFIED_BEGIN,
- last_modified_end=LAST_MODIFIED_END,
- ignore_suffix=IGNORE_SUFFIX,
- ignore_empty=True
-)
-
-filtered_paths = [path for path in paths if "report-coverage-2410" in path]
-
-out_sdf = process_json_to_dataframe("device", filtered_paths)
-out_sdf.printSchema()
-out_sdf = out_sdf \
- .withColumn("year", lit(datetime.now().year)) \
- .withColumn("month", lit(datetime.now().month)) \
- .withColumn("day", lit(datetime.now().day)) \
- .repartition(1)
-
-try:
- boto3_session = session.Session(
- aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
- aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
- region_name=environ["OUT_AWS_DEFAULT_REGION"]
- )
-except KeyError:
- boto3_session = session.Session()
-
-try:
- wr.s3.to_parquet(
- df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2410",
- dataset=True,
- partition_cols=["test_type", "year", "month", "day"],
- compression="snappy",
- use_threads=True,
- mode="overwrite_partitions",
- boto3_session=boto3_session
- )
-except EmptyDataFrame:
- pass
diff --git a/csit.infra.etl/coverage_hoststack_rls2410.py b/csit.infra.etl/coverage_hoststack.py
index 080e998b90..559dd716e9 100644
--- a/csit.infra.etl/coverage_hoststack_rls2410.py
+++ b/csit.infra.etl/coverage_hoststack.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-coverage-2410" in path]
+filtered_paths = [path for path in paths if "report-coverage-2502" in path]
out_sdf = process_json_to_dataframe("hoststack", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/coverage_mrr_rls2410.py b/csit.infra.etl/coverage_mrr.py
index 9400d8d7fb..5cbb982f87 100644
--- a/csit.infra.etl/coverage_mrr_rls2410.py
+++ b/csit.infra.etl/coverage_mrr.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-coverage-2410" in path]
+filtered_paths = [path for path in paths if "report-coverage-2502" in path]
out_sdf = process_json_to_dataframe("mrr", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/coverage_ndrpdr_rls2410.py b/csit.infra.etl/coverage_ndrpdr.py
index 18b7627aa9..f3c9b63f57 100644
--- a/csit.infra.etl/coverage_ndrpdr_rls2410.py
+++ b/csit.infra.etl/coverage_ndrpdr.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-coverage-2410" in path]
+filtered_paths = [path for path in paths if "report-coverage-2502" in path]
out_sdf = process_json_to_dataframe("ndrpdr", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/coverage_reconf_rls2410.py b/csit.infra.etl/coverage_reconf.py
index e60a3d66ad..307c50f0a6 100644
--- a/csit.infra.etl/coverage_reconf_rls2410.py
+++ b/csit.infra.etl/coverage_reconf.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-coverage-2410" in path]
+filtered_paths = [path for path in paths if "report-coverage-2502" in path]
out_sdf = process_json_to_dataframe("reconf", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/coverage_soak_rls2410.py b/csit.infra.etl/coverage_soak.py
index 5dc9fb7ed0..bb6e9fba6e 100644
--- a/csit.infra.etl/coverage_soak_rls2410.py
+++ b/csit.infra.etl/coverage_soak.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-coverage-2410" in path]
+filtered_paths = [path for path in paths if "report-coverage-2502" in path]
out_sdf = process_json_to_dataframe("soak", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/iterative_hoststack_rls2410.py b/csit.infra.etl/iterative_hoststack.py
index 6d9e3d633f..e0d9284d63 100644
--- a/csit.infra.etl/iterative_hoststack_rls2410.py
+++ b/csit.infra.etl/iterative_hoststack.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-iterative-2410" in path]
+filtered_paths = [path for path in paths if "report-iterative-2502" in path]
out_sdf = process_json_to_dataframe("hoststack", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/iterative_mrr_rls2410.py b/csit.infra.etl/iterative_mrr.py
index d74e6a90f3..b1a1e00e7a 100644
--- a/csit.infra.etl/iterative_mrr_rls2410.py
+++ b/csit.infra.etl/iterative_mrr.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-iterative-2410" in path]
+filtered_paths = [path for path in paths if "report-iterative-2502" in path]
out_sdf = process_json_to_dataframe("mrr", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/iterative_ndrpdr_rls2410.py b/csit.infra.etl/iterative_ndrpdr.py
index 0530dc8ef5..f86a32c8d4 100644
--- a/csit.infra.etl/iterative_ndrpdr_rls2410.py
+++ b/csit.infra.etl/iterative_ndrpdr.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-iterative-2410" in path]
+filtered_paths = [path for path in paths if "report-iterative-2502" in path]
out_sdf = process_json_to_dataframe("ndrpdr", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/iterative_reconf_rls2410.py b/csit.infra.etl/iterative_reconf.py
index 41d2aedcc1..68ee8f01ec 100644
--- a/csit.infra.etl/iterative_reconf_rls2410.py
+++ b/csit.infra.etl/iterative_reconf.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-iterative-2410" in path]
+filtered_paths = [path for path in paths if "report-iterative-2502" in path]
out_sdf = process_json_to_dataframe("reconf", filtered_paths)
out_sdf.show(truncate=False)
@@ -164,7 +164,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/iterative_soak_rls2410.py b/csit.infra.etl/iterative_soak.py
index f581c7c1e9..e213c31823 100644
--- a/csit.infra.etl/iterative_soak_rls2410.py
+++ b/csit.infra.etl/iterative_soak.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
@@ -141,7 +141,7 @@ paths = wr.s3.list_objects(
ignore_empty=True
)
-filtered_paths = [path for path in paths if "report-iterative-2410" in path]
+filtered_paths = [path for path in paths if "report-iterative-2502" in path]
out_sdf = process_json_to_dataframe("soak", filtered_paths)
out_sdf.printSchema()
@@ -163,7 +163,7 @@ except KeyError:
try:
wr.s3.to_parquet(
df=out_sdf.toPandas(),
- path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2410",
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2502",
dataset=True,
partition_cols=["test_type", "year", "month", "day"],
compression="snappy",
diff --git a/csit.infra.etl/local.py b/csit.infra.etl/local.py
index e942cebbba..41a7c0a8d4 100644
--- a/csit.infra.etl/local.py
+++ b/csit.infra.etl/local.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
diff --git a/csit.infra.etl/stats.py b/csit.infra.etl/stats.py
index d7b4c23edd..46fcaba2e2 100644
--- a/csit.infra.etl/stats.py
+++ b/csit.infra.etl/stats.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="suite.info.json.gz"
IGNORE_SUFFIX=[]
diff --git a/csit.infra.etl/trending_hoststack.py b/csit.infra.etl/trending_hoststack.py
index 2bbd655d2d..26bdb8043c 100644
--- a/csit.infra.etl/trending_hoststack.py
+++ b/csit.infra.etl/trending_hoststack.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
diff --git a/csit.infra.etl/trending_mrr.py b/csit.infra.etl/trending_mrr.py
index 84b86c7613..b88d8ad132 100644
--- a/csit.infra.etl/trending_mrr.py
+++ b/csit.infra.etl/trending_mrr.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
diff --git a/csit.infra.etl/trending_ndrpdr.py b/csit.infra.etl/trending_ndrpdr.py
index f139f099f7..21b5a8361c 100644
--- a/csit.infra.etl/trending_ndrpdr.py
+++ b/csit.infra.etl/trending_ndrpdr.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
diff --git a/csit.infra.etl/trending_reconf.py b/csit.infra.etl/trending_reconf.py
index 43a18b4ee7..abb55b980a 100644
--- a/csit.infra.etl/trending_reconf.py
+++ b/csit.infra.etl/trending_reconf.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
diff --git a/csit.infra.etl/trending_soak.py b/csit.infra.etl/trending_soak.py
index 086a1943ee..7baf5e24b0 100644
--- a/csit.infra.etl/trending_soak.py
+++ b/csit.infra.etl/trending_soak.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -30,7 +30,7 @@ from pyspark.sql.types import StructType
S3_LOGS_BUCKET=environ.get("S3_LOGS_BUCKET", "fdio-logs-s3-cloudfront-index")
-S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "fdio-docs-s3-cloudfront-index")
+S3_DOCS_BUCKET=environ.get("S3_DOCS_BUCKET", "csit-docs-s3-cloudfront-index")
PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
SUFFIX="info.json.gz"
IGNORE_SUFFIX=[
diff --git a/docs/content/infrastructure/fdio_dc_testbed_specifications.md b/docs/content/infrastructure/fdio_dc_testbed_specifications.md
index 4c4d39a594..1508f3a1ca 100644
--- a/docs/content/infrastructure/fdio_dc_testbed_specifications.md
+++ b/docs/content/infrastructure/fdio_dc_testbed_specifications.md
@@ -1559,7 +1559,7 @@ FD.io CSIT lab contains following server types:
- testbed29:
- ring1 100GE-ports e810-CQDA2-2p100GE:
- s43-t29-tg1-c4/p1 to s42-t29-sut1-c9/p2
- - s43-t29-tg1-c4/p1 to s42-t29-sut1-c4/p2
+ - s43-t29-tg1-c4/p2 to s42-t29-sut1-c4/p2
- s42-t29-sut1-c9/p1 to s43-t29-tg1-c4/p1
- ring2 100GE-ports e810-CQDA2-2p100GE:
- s42-t29-sut1-c2/p1 to s43-t29-tg1-c2/p1.
diff --git a/docs/content/overview/csit/design.md b/docs/content/overview/csit/design.md
index f43d91a28e..cf6a6f1b09 100644
--- a/docs/content/overview/csit/design.md
+++ b/docs/content/overview/csit/design.md
@@ -24,11 +24,10 @@ depicted in the figure below.
A brief bottom-up description is provided here:
-1. SUTs, DUTs, TGs
- - SUTs - Systems Under Test;
- - DUTs - Devices Under Test;
- - TGs - Traffic Generators;
-2. Level-1 libraries - Robot and Python
+1. Environment
+ - Bare metal - testbeds, FD.io backend
+ - Public clouds and virtualised environments - testbeds, services, data
+2. Libraries
- Lowest level CSIT libraries abstracting underlying test environment, SUT,
DUT and TG specifics;
- Used commonly across multiple L2 KWs;
@@ -52,28 +51,44 @@ A brief bottom-up description is provided here:
tests requirements;
- Same stream profile can be used for different tests with the same
traffic needs;
- - Functional data plane traffic scripts:
- - Scapy specific traffic scripts;
-3. Level-2 libraries - Robot resource files:
- - Higher level CSIT libraries abstracting required functions for executing
- tests;
- - L2 KWs are classified into the following functional categories:
- - Configuration, test, verification, state report;
- - Suite setup, suite teardown;
- - Test setup, test teardown;
-4. Tests - Robot:
+ - Tools: Ansible, Terraform, PXE, Packer, Vagrant
+ - ETL - extract, transform, and load data
+3. Methodology used by tests:
+ - Maximum Receive Rate;
+ - MLR Search;
+ - PLR Search;
+ - Packet latency,
+ - Telemetry
+4. Tests
- Test suites with test cases;
- Performance tests using physical testbed environment:
- VPP;
- DPDK-Testpmd;
- DPDK-L3Fwd;
- TRex
- - Tools:
- - CSIT-Dash
- - Testbed environment setup ansible playbooks;
- - Operational debugging scripts;
-
-5. Test Lifecycle Abstraction
+5. Presentation and analytics dashboard - CSIT-Dash
+ - Trending
+ - Performance, incl. telemetry
+ - Failures and annomalies
+ - Job statistics
+ - Release testing results
+ - Performance
+ - Comparisons
+ - Coverage data
+ - Results data search
+ - Documentation
+6. CI/CD
+ - Job specifications
+ - CI/CD tools
+7. Documentation
+ - Design
+ - Methodology
+ - Release notes
+ - Infrastructure
+ - IETF BMWG
+ - TOIs
+
+## Test Lifecycle Abstraction
A well coded test must follow a disciplined abstraction of the test
lifecycles that includes setup, configuration, test and verification. In
diff --git a/docs/content/release_notes/current/_index.md b/docs/content/release_notes/current/_index.md
index 04cba1484a..a6d3be9720 100644
--- a/docs/content/release_notes/current/_index.md
+++ b/docs/content/release_notes/current/_index.md
@@ -1,35 +1,33 @@
---
bookCollapseSection: true
bookFlatSection: false
-title: "CSIT rls2410"
+title: "CSIT rls2502"
weight: 1
---
-# CSIT-2410 Release Report
+# CSIT-2502 Release Report
-This section includes release notes for FD.io CSIT-2410. The CSIT report
-will be published on **Nov-13 2024**. The release plan is published on
-[CSIT wiki](https://wiki.fd.io/view/CSIT/csit2410_plan) pages.
+This section includes release notes for FD.io CSIT-2502. The CSIT report
+will be published on **Mar-12 2025**. The release plan is published on
+[CSIT wiki](https://wiki.fd.io/view/CSIT/csit2502_plan) pages.
The release notes of the previous CSIT release can be found
-[here]({{< relref "../previous/csit_rls2406" >}}).
+[here]({{< relref "../previous/csit_rls2410" >}}).
-## CSIT-2410 Release Notes
+## CSIT-2502 Release Notes
- [VPP Performance]({{< relref "vpp_performance" >}})
- [DPDK Performance]({{< relref "dpdk_performance" >}})
- [TRex Performance]({{< relref "trex_performance" >}})
-For infra reasons, we ultimately stopped device testing.
+## CSIT-2502 Release Data
-## CSIT-2410 Release Data
-
-To access CSIT-2410 Release data please use following web resources:
+To access CSIT-2502 Release data please use following web resources:
- [CSIT Per Release Performance](https://csit.fd.io/report/)
- - `CSIT Release` > `rls2410`
+ - `CSIT Release` > `rls2502`
- `DUT` > `vpp`
- - `DUT Version` > `24.10-release`
+ - `DUT Version` > `25.02-release`
- `Infra` > `testbed-nic-driver of choice`
- `Area` > `IPv4 Routing` `IPv4 Tunnels` `IPv6 Routing` `Hoststack` ...
- `Test` > `test of choice`
@@ -37,83 +35,40 @@ To access CSIT-2410 Release data please use following web resources:
- `Number of Cores` > `1C` `2C` `4C`
- `Test Type` > `MRR` `NDR` `PDR`
- [CSIT Per Release Comparisons](https://csit.fd.io/comparisons/) for VPP
- v24.10 vs v24.06
+ v25.10 vs v24.10
- `REFERENCE VALUE`
- `DUT` > `vpp`
- - `CSIT and DUT version` > `rls2406-24.06-release`
+ - `CSIT and DUT version` > `rls2410-24.10-release`
- `Infra` > `testbed-nic-driver of choice`
- `Frame Size` > `64B` `78B`
- `Number of Cores` > `1C` `2C` `4C`
- `Measurement` > `Latency` `MRR` `NDR` `PDR`
- `COMPARED VALUE`
- `Parameter` > `Release and Version`
- - `Value` > `rls2410-24.10-release`
+ - `Value` > `rls2502-25.02-release`
- [CSIT Per Release Coverage Data](https://csit.fd.io/coverage/)
- - `CSIT Release` > `rls2410`
+ - `CSIT Release` > `rls2502`
- [CSIT Search Tests](https://csit.fd.io/search/)
- `Data Type` > `iterative`
- `DUT` > `vpp`
- - `Release` > `rls2410`
+ - `Release` > `rls2502`
- `Type a Regular Expression` > `2n-zn2 -1c ethip4-ip4base-[mrr|ndrpdr]`
".*" can be replaced by " " (white space).
- `Choose a cell in the table` > A corresponding graph(s) is displayed.
- `Click a datapoint in the graph` > Detailed information is displayed.
-## CSIT-2410 Selected Performance Tests
-
-CSIT-2410 VPP v24.10 Performance Tests:
-
-- ip4
- - [2n-icx 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsrUO4cGjJfyDjbGlEmpq1G1G-HreqtIkAqUgtvfjgl2asHe9oJIe4YXoO1D0W5aKoFgVWbZOmYja_TQt3AY1WMHgPaO7SjqkjGwiwh9Z9gFbqldBretDKvYMdltB6A_fmBbQDiqv9KY3gbEeo3oD7BvqG9yXw6VjiWz1Bm20UNKmYIAOxgBN5QvOr3Yjzm2jhWyYrF5JygSKFkZif3ybsJds1hfaT5ErqiuAuNV4g7aZ14s6P0GPDqvrA-CeXfHbpby75y7mEOUunu4TXyhLmLJ3LpQtmyeQsne6SuVaWTM7SuVySLJX1Tb_h9eGvV9ZfVxOuLg)
- - [2n-spr 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_BrnUrZIWznupYem_o-iypvG1HHUlWpIv75KCKxNUkghaS466MWM2NEOAwpxw_QaqHsqykVRLQqs2iZNxcPzXVq4C2i0gsF7QHOfdkwd2UCAPQTPoJV6J_SaHrVyn2CHJbTewNy8gXZAcbU7pRGc7QjVB3DfQN_wrgS-HEoc1RO0-YqCJhUTZCAWcCJPaH61HXF-Ey18y2TlQlIuUKQwEnP6bcJesl1TaL9JrqSuCO5S4wXSblonbv0IPTSsqveMf3LJZ5f-5pK_nkuYs3S-S3irLGHO0qVcumKWTM7S-S6ZW2XJ5CxdyiXJUlnP-g2v93-9sv4Bi3Gu-g)
- - [2n-spr 100ge e810cq dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEW2cQgXDi35BzL2QqOm6bI2lcrrcatKmwg4RGrpxYc4tmZXM97RSI5py_gSsX-q6mXVLCvTdCEv1f3iNv-4j8ZqBTsiMPYu7xh7dBHBDBCJQSv1joY0PmrlPyBQWENHFh7sK2gPmFaHU_6idz0atQYeAgyBDxzm-cTxg1DQ8JkEzTImyA5ZwIk-KaPVflTzp2ppcIxOOrJ0gRLGkZrfLyfVb-w2GLsvlJY8FsF9Hr1A2k950p5G6GliTXus-C-fqPg00ye6oE-m5GmGT-ZqeTIlT2fz6ZJ5siVPM3yyV8uTLXk6m0-Sp7q9Gba8Ob776vYbCISzwg)
- - [2n-spr 200ge cx7 mlx5 ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UjbYG7k-9dDU_xEUeZuYyo5YqSbp11cJgbVpezDkcdHBssTsMqMdBuTDnmntyb5m5SqrVhlWbROXbPn2HH9sPaoih8E5QLWIOyZL2hNgD94xYJ5vCV1hDtVAOkBnDyW0TsGL2kBhgMLudIqfN9oS5p_AfQN9wycSfL-Q_GIUtPkKgkYdE2QgFnAiUMrc7jiq-V-2dGgmLS1Ru0CB_EjO37eT6g_WHfn2m6QlzkVwE4cvUGGmPOHoRuhlZFV9rribUy45Ndcpd0unMGVqjlP4uExhytT1nLppplTK1Byn1OMypVKmrueUZKqsn_o9d-c3YFn_AP69vbI)
- - [2n-c6in 200ge c6in.4xl ena dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtl91qwzAMhZ8muxkasZo0u9nFurzH8GxtDU1dYaeF7unnhIISuo0V2rUXvsgf5wQp-jiIhG7j6TVQ-5SVi6xaZFg1Np6y2fN9vPg2YKFy2DEDFg_xzlNLOhCgAzNvHGCef5BiRU6DZbuChgtQpXp8A2WAumX_HI9gdEuYr8A7C876vga-HGocFRTVbjtRYxsTZUdexEl_YuPlfuT5oWuxa09a_LFxkToKo16-_zRxv3u9ptB8krwyjEUcJo5-JJpppW7PI_UwsaoeHP_FiROnEznxBTlhytMJnPBqecKUp7Nxukye5kXaTkeU4lBuaTf9zogToxvYSz2jtJX-zgivlKO0kc7FSHJU1ndu49fDf1NZfwEQ_pKp)
- - [2n-c7gn 100ge c7gn ena dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtl91qwzAMhZ8muxkasZosu9nFurzH8GytDU1dYaeF7unnhIISuo0V2rUXvsgf5wQp-jiIhG7j6S1Q-5yV86yaZ1g1Np6y2ct9vPg2YKFy2DEDFg_xzlNLOhCgA1MtHKg8X5BiRU6DZbuChgtQpXp6B2WAumX_HI9gdEuYr8A7C876vga-HmocFRTVbjtRYxsTZUdexEl_YuPlfuT5oWuxa09a_LFxkToKo16-_zRxf3i9ptB8krwyjEUcJo5-JJpppW7PI_UwsaoeHP_FiROnEznxBTlhytMJnPBqecKUp7NxukyeHou0nY4oxaHc0m76nREnRjewl3pGaSv9nRFeKUdpI52LkeSorO_cxq-H_6ay_gI0X5KJ)
-- ip6
- - [2n-icx 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsrUN64UCb_0DG2dKINDVrE1G-HreqtIkAqUgtvfjgl2asHe9oJIe4ZXoK1D0U5aKoFgVWbZOmYvZ4mxbuAhqtYPAe0NylHVNHNhBgD637AK3UC6HXNNfKvYEdVtD6e6jmz6AdUFzvT2kEZztC9QrcN9A3vC-By2OJb_UEbd6joEnFBBmIBZzIE5pf70ac30QL3zJZuZCUCxQpjMT8_DZhr9huKLSfJFdSVwR3qfECaTetE3d-hB4bVtUHxj-55LNLf3PJX84lzFk63SW8VpYwZ-lcLl0wSyZn6XSXzLWyZHKWzuWSZKmsb_otbw5_vbL-Au7lrrI)
- - [2n-spr 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UrZIG7nOpYek_o-iypvG1HHUlWJIv75KCKxNW0ghaS466MWM2NEOAwpxy_QSqHsqymVRLQus2iZNxWxxnxbuAhqtYPAe0DykHVNHNhBgD8EzaKXeCL2muVbuA-ywgtY_QjV_Be2A4vpwSiM42xGqd-C-gb7hQwl8PpX4Vk_QZhcFTSomyEAs4ESe0Px6P-L8Jlr4lsnKhaRcoEhhJObntwl7xXZDof0kuZK6IrhLjRdIu2mduPcj9NSwqj4y_skln136m0v-ei5hztL5LuGtsoQ5S5dy6YpZMjlL57tkbpUlk7N0KZckS2V91295c_zrlfUXI1Kvfg)
- - [2n-spr 100ge e810cq dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEW2cUgvHCj5BzL2QqOm6bI2lcrrcatKmwg4RGrpxYc4tmZXM97RSI5py_gSsX-s6mXVLCvTdCEv1f3Tbf5xH43VCnZEYOxd3jH26CKCGSASg1bqHQ1pXGjlPyBQWENHD9AsXkF7wLQ6nPIXvevRqDXwEGAIfOAwzyeOH4SChs8kaJYxQXbIAk70SRmt9qOaP1VLg2N00pGlC5QwjtT8fjmpfmO3wdh9obTksQju8-gF0n7Kk_Y0Qk8Ta9pjxX_5RMWnmT7RBX0yJU8zfDJXy5MpeTqbT5fMky15muGTvVqebMnT2XySPNXtzbDlzfHdV7ffoyy0Rg)
- - [2n-spr 200ge cx7 mlx5 ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEXJ4mAuHFryD2SchUY4qbU2UcvrcatKmwg4RGrpxYc4tmZXM97RSA5xy_QSyD0V9brQ6wJ116aluF_dph-7gKoqYfQeUN2lHZMjEwhwgOAZsCzfCX1ld3okE6F3uxo6_wD68RUqCxQ3h1P6gjWOsPwAHloYWj6Q4POJ5AejoO1nFDTpmCEjsYAzgVLmN_tJzd-ypcMwGWlJ2gWKFCZyfr-dVL-x6Sl0XyQtaS6C2zR8gSo754l7P0FPI9PNseLfnPLZqaVO-Us6hTlTS5zC62UKc6bO59RFM6VyppY4pa6XKZUzdT6nJFN1czNsuT--AevmG5xKvjY)
- - [2n-c6in 200ge c6in.4xl ena dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtV8tqwzAQ_Br3UrZY2zjqpYem_o-iSNvGxFGEpAbSr49iAmuTBBqwmx508IsZs-MdhsEhbj19BGpfi2pRyEWBsjHpVDy_PaaLbwPORAk75wBnT-nOU0sqEKAFPW8sYFl-kXCCrALjzBoaNwdRiZclCA0UV8fndAStWsJyDd4asMYfZ-D7acbZQEbNd2Q0yRggO_IMDvQxza32Pc4V1UxXnhTzk3CGIoWelsufxuxPrzYUmh_iV7q1MEOn1fdAPZwU966HnjYm647xVz657NONPrkJfcKcpxt8wrvlCXOeRvNpmjzJ3E7nLsn_1U0yN9OIHk2Xo9xKv_cI75Sj3EhjecQ5quoHu_Wb7r-pqg8Zh5Mx)
- - [2n-c7gn 200ge c7gn ena dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtV8tqwzAQ_BrnUjZY27jqpYem_o-gStvExFGEpAaSr69iAmuTFhqwmx508IsZs-MdhsEh7j2tArUvRbUs5LJA2Zh0Kh5fH9LFtwEXooSDc4CLebrz1JIKBGhBy7UFUZZrEk6QVWCc2ULjnkBU4vkdhAaKm_NzOoJWLWG5BW8NWOPPM_DtMuNqIKPmMzKaZAyQA3kGB_qY5jbHHucH1UxXnhTzk3CGIoWelu8_jdkfXu0oNCfiV7q1MEOn1fdAPZwUj66HXjYm647xVz657NONPrkJfcKcpxt8wrvlCXOeRvNpmjzJ3E7XLsn_1U0yN9OIHk2Xo9xKv_cI75Sj3EhjecQ5quqZ3ftd999U1V886JMR)
-- ipsec
- - [3n-icx 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYwlK7Fw-ufQ_D0tldkv4gYN369NK6CW2MiZql9cClP5kBBr58yQRjW43PBquHJNsl-S6huSzdI9k83rqXrgxlJIVOKaDszn1prJAbhE0DUpyBpOkRqSK4Jal4Ad4dQOhe2RZIRrZ7IALQnqRiUhkULLVNZd7A_e-HSWRjgaOh2f1R1NCUeliZPl1W_lKGj5av1kddcbNIh9oHZ1X7NHXqfc63e_H5XCP3Az636KMWzaSen27Yjz9oXqOR7-gnGY_PZwiHaRIU87VtrybRyznmxZixLlMVmV6FqQrMlEZPAzClq3pKo6eLMw3tKYueBmDKVvWURU8XZxrOU1nLc2x7_4p0OL3_1vX-mmiU9CpEAzsaW94AROmajsaGd3GigR2N7W4AomxNR2OzuzhR72hW3DStrse73qz4AI6LK34)
- - [3n-icx 100ge cx6 dpdk 40tnlsw](https://csit.fd.io/report/#eNrtmEtOwzAQQE8TNmhQ7DqkGxaU3AOlztBa5GNsUxpOjxMqTSqEBKhOWHiTj2Zsj_30pJGt6ww-WqzvkmyT5JuE56ryj2R1f-1fprZcsBQOWgMXN_7LYI2lRVi1oOQRWJrukGuGa5bKF6h09QzS9Np1wDK23gKTgG6vtFDaohSpa2v7Bv5_O8yiWgclWp7d7mQDbWWGpfnDaekvdVC0enUU9dWdRQ5oKHhWNqXpfU8532-GBpQGSxrxuUeKOrSTgn66Yxr_ZMoGrXpHmmQ8P8qQHtQkKM_Xdr2eRE8HmRdjxsJUdaR6Gao6NFUeXQ1BlS_rKo-uzk81uKsiuhqCqljWVRFdnZ9qQFdVo46xBf4z1OH4_l0H_GumUdTLMA3taWx_QzDli3oam9_5mYb2NLa-IZiKRT2Nje_8TMnTrLhqO9OMd8BZ8QG4PzUO)
- - [3n-spr 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYwlK7Fw-79j0MpbO7JP1BwGp9emndhG2MiZql9cClP5kBBr58yQRjO41PBuuHJNsn-T6huazcI9nsbt1L14YykkKvFFB257401sgNwqYtwSgNJE2PSBXBLUnFM_D-AEIPynZAMrItgQhAe5KKSWVQsNS2tXkF91-Os8jWAkdDs_ujaKCt9Lg0fTwv_aUOH61erI-66maRHrUPzsr2aeo0-JzvN-MHcI3cj_jco49aNBcF_XTHfvxB8waNfEc_yXR-PkM4UBdBMV_bDuoiej7IvJgyVqaqItXrUFWhqdLoagiqdF1XaXR1earBXWXR1RBU2bqusujq8lQDuiob-RZb4D9DHY_v33XAv2YaRb0O09CexvY3BFO6qqex-V2eaWhPY-sbgilb1dPY-C7P1HuaFTdtp5vpDjgrPgDBrzZG)
- - [3n-spr 200ge cx7 mlx5 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYlgXrxYNr38OwdNwl6Q8BrK1PL62b0MbEaFzEA5f-ZAYY-PIlE4ztNT4ZbO4zts_KfUZKWbtHtnu4di_dGEKLHAalgNAb96WxQW4Qdh0HozSQPD8iUYUYywG5hbYZGQg9KdtDwYq7AxQC0J6kolIZFDS3XWNewf0f5nlkZ4GjIez2KFroaj0vTh7Pi3-qxEfrF-ujrr5NZEDtg5vCfZo6TT7nq-34IVwj92M-dumjFs2qpO_u2Y9_1rxFI9_QT7KcoM8QDtYqKLZr20mtouejLKslIzpZlcheiqwKT5YkZ8OQJbGdJcnZGGT_wFmanA1DlsZ2liZnY5AN6qxs5Zha41-AnQ_wH3bGP-aahL0U1_C-prY4DFcS2dfUFMfgGt7X1BKH4Uoj-5oa4hhcva-suup63S53xqx6B3wFU54)
-- hoststack quic
- - [3n-icx 100ge e810cq dpdk ip4udpquic](https://csit.fd.io/report/#eNrlVctuwyAQ_Br3Um0FxJZz6aGJ_6PCsK1RSExYHDX9-hIr6tpqc80hvgDSzOxrtIJSH_Gd0L8W1aaoN4Wqnc1HsXp7zlf0pEop4BQCqPIlvyJ61ISwOoAzXyCF-EQVJK6lMEewwe6g6ylR0mYHUq1FC9IApg5cKAcbjoMz7SVADomm66ENdMmnttd8f5IzaofEaNbPkBNGBme1Mi10Z-bc7oAFOqJmxW9jTEhIk5put8mKj6j3SO4bWTaOiRkmWzIBzTxbOocJep1e3YyMO_lHRnvMfC8FLcDH_9p9UD-XZecju7ms5bzzblbN06GP-_HPrJofsq8JmA)
- - [3n-icx 100ge cx6 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCYte99NDU_6gw3taoOKYsjpy8PsSKurbaXHNwLoA0M8zujhAU-4AfhO41K7ZZuc1UaZu0ZJu3x7QFRyqXAvbeg8qf0imgQ00Imx1YM4IU4guVl2Z8bkbo3FhA21OkqM03SPUiapAGMLZgfT40_mewpj7r041o2h5qT2c79X6x--PNaDNERpN-gewxMLgolWm-PTDnagPM1wE1C377YkJEmpV0vUtWfAbdIdkjsmyaEjNMCmQGmqVbPPgZehleWU2M26RHRjuUwjgpaP0p_tftOtO8qzBXnOVdPcwbv8uietj1oZv-yqI6AfRwCYg)
- - [3n-spr 200ge cx7 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVctugzAQ_Bp6qbayHRC99NCE_4iM2RRUExyvQUm-Pg6KsqA-jjmEi21pZvY1WplC53FLaD-SbJ3k60TlTRWPZPX5Gi9vSaVSwOAcqPQtvjxa1ISw2msg50EJ8YXKSXPMB9QBWnvMoO4oUNDmG6R6FyVIAxhqaFzaV-7QN6a8hohB0dQdlI6uGdXmlvFHekarPjAa9TNkQM_grFqmufrEnP96YIn2qFlzb40JAWlS1d-NsmLndYvUnJFl46CYYaItE9DMs4WTm6C3-eXFyHiYh2S0RSmMlYIW4eVvDT-tp0uz9LkdXdqSPnhHs-Jl3_l2_EOz4gIXGRPI)
-- hoststack tcp udp
- - [3n-icx 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCbNe99JDU_4gwbGorJKYsiZK-vsSKuraqNKf2EF8AMTPsDiMExT7gitC9ZuUyq5aZqjqbhixfPKYpOFKFFHDwHlTxlFYBHWpCyHfQmSNIId5ReYkvUpgPsN5uoO0pUtRmA7J4Fg1IAxhb6HwRjW_OYmd9OqfXNm1iWOfQeDoXVW-Xoj86YNTuI6OprwlywMDgpGGm-fbEnOs2WKADalZ8u2NCRBr1dMMry9ZBb5G6T2TtcGHMMCmcEWimJePJj9DLFVb1wPiHJMloh9I4KWgugf5m-T5y3dv5vNBrXu8mybm90BuW_z7Xsn7Y9WE7_KVl_QXVthDe)
- - [3n-icx 100ge cx6 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVcFuwyAM_ZrsMnkCkjSnHdblPyYC7hKNNAjTKt3Xj0bVnGjqeuqluQDiPWM_P1lQHAJ-ELrXrNxm1TZTVWfTkuVvz2kLjlQhBRy9B1W8pFNAh5oQ8j10ZgQpxCcqL824sSP0biyhHShS1OYLZLERDUgDGFvofBGNb86xzvr0zKBtusSwy6HxdM6p3i85_xTAqD1ERlNZC-SIgcFFvUzz7Yk5V1UwXwfUHPArjgkRaVbSDakctgu6R-q-kWOnfjHDJGtmoFmmjCc_Qy8drOqJcX8fyWiH0jgpaCV2_qf4IVw92NVM5zWpj-LjyqbzhuL7u1rWT_sh9NMfWtY_-TAQzg)
- - [3n-spr 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVctOwzAQ_JpwQYvsPAgXDpT8B3LsLYnqNovXrVS-Hjeq2ESI9gSH5mJbnhnvjkeWOQ4B3xj9c1atsnqV5XXv0pAVL_dpCp7zUis4EEFePqRVQI-GEYpdC0wBtFLvmJPGJ63sBzhyG-gGjhyN3YAuH1UL2gLGDnoqo6X2pPaO0kGDcWkTw7qAlvhUNX89V_3RgqBuHwVNjc2QAwYBZx0LjbqjcC74EIUJaETybU8IEXnS1BWzIlsHs0XuP1G0440Jw6Z4JqCdl4xHmqDnO6ybkfEfWbI1HrX1WvFiIr3k-UaS3bsFvdLfzN5Olot7pVc8_32yVXO3G8J2_FOr5gvbwBR2)
- - [3n-spr 200ge cx7 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCbNenHpr4HxWGTW0Vx4glVtLXl1hR11bV5NQe4gsgZobdYYSgOAR8I3QvWbnJqk2mqs6mIctfH9MUHKlCChi9B1U8pVVAh5oQ8r0G8gGUEO-ovDTHakQdoXfHEtqBIkVtPkAWz6IBaQBjC50vovHNWe6sTycN2qZNDLscGk_nsmp7KfujB0btITKaOlsgIwYGFy0zzbcn5lwzwhIdULPm2x8TItKsqxtuWbYLukfqPpG105Uxw6SAZqBZlownP0Mvl1jVE-Nf0iSjHUrjpKD1hHrN9L1ke7Breqm_ub2jNNf3Um-Y_vtsy_phP4R--lvL-gvvbhsO)
-- nat44
- - [2n-icx 100ge e810cq avf ethip4tcp tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZIsiT70kNS_0dQ5E1tcJytpJikX185DcimGAotLYRc9JpZ7Y6GRT4cHG48ds-ZWmfFOhNFW8chy1ePcXKdF5IzGIhAyKe4ctih8Qiih9aegDP2ioI4lpzZNzDDDlqS4_EWuAUMTdwGS-PpdoxrOBMSSOfgtVRcQKBjgL52Y1Lxck36pYKE1seQ0FjXDBnQJXBWcKJRc55wlmQkvnFoUkDUkaCAflLMN8Wm8J0ze_TtO6Y7xodLBBvNmWB2njmcaYJen7CoLox_c5LuTv7USfpzJ7VSuf5UJ7koC13edlsu6L2Zzlzyk-5-_mp_quqhP7j95e9U1Qdh8vTb)
- - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZYsiT70kNS_0dR5U1tcJytpBjSr6-cBtamGAotLYRc9JqRdmeHRSEePD4H7B8zvc3KbSbLrklDVmzu0-T7IJXIYSQCqR7SymOPNiDIAQJ5EHn-ipIEViJ3b2DHHXSkpuMXEA4wtmkbHcFgo1LYQCtyqYBMAcEoLSREOkYYGj8FlU-XoF8yYLQ5RkZTXgtkRM_gImGmUXuacdZkMN96tHwhyWEoYpgl802xfH3n7R5D9478xlQ4Jrhkzgxzy8jxRDP0UsKyPjP-zUm6OflTJ-nPnTRaF-ZTnRKyKk113W25ovdqOnPNT7r5-av9qeu74eD3579T1x93qPPD)
- - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed cps](https://csit.fd.io/report/#eNrtVdtqwzAM_ZrsZWjYju3kZQ_r8h_Fc9QlkKaa7QXar5_XFZSwFQYbG5S--MKRfHR0EI5pF3AdcbgvzKqoVoWq-jYvRflwm7cwRKWlgIkIlL7Lp4ADuoigRogUQArxjIok1lL4F3DTBnrSYPUTSA-YunxLnmB0SWtsoZNCaSBbQrTaSAWeIoxteKdUjyfKT_yMtq-J0VzVApkwMLgol8Oo289izongeBfQcUJWw1DCOCvme1o5exPcFmN_QH4id41xn41hSPolb9rTDD01sGqOEf_kIl1d_JmL9NcuWmNK-yFNS1VXtr7ocfxa7oVM5Bkv6erlL86laW7GXdge_0rTvAEWLe5T)
- - [2n-spr 200ge cx7 mlx5 ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZIsh659JDU_1FUeVsbbGeRFJPk66OkAdkUQ6GFQMhFD2ZXO7PDohC3Ht8Ddq-F2hRmUwjT1mkpyvVz2nwXhOQMRiIQ8iWdPHZoA4IYIJAHwdgXCuJub0a0Efpur6AlCZyxD-AOMDbpGh3BYKOUWEPDmZBAuoSgpeICIu0iDLU_lxVv17I_OGS03sWMJmYzZESfwRnlHEbNYRKzLCRnWI82pyRBGYoYJnR-KTenf3rbY2iPmN84ty4HuGTQBHPzyvFAE_TaRFNdIm7oJj3c_LubdAM3tVKl_tYnuVgZvbr38VxQfEcTuuQpPTz95zlV1dOw9f3lL1XVCd5X_ZM)
-- tunnels (gnv, vxlan, gtpu)
- - [2n-icx 100ge e810cq avf ethip4udpgeneve](https://csit.fd.io/report/#eNrtVsGKwjAQ_ZruZZmlia3dyx7U_ofEdNRCjWOSFvXrN5XCtCvCHgSh9ZKEvDeZmTweifNHi2uH1U-ULqNsGcmsLMIQzRafYbKVk4mIoSECmXyFlcUKlUOQBkp9BhHHO5Qk8FvE-gSq2UJJydrXxmDlYJ5sQGhAvw-70M11QTs02CCIeSC2AZv2SFPYNrNcdZnvymC0qD2jobgB0qBlcFA102h_6XEe9cJ8ZVFxQK9Fpnh0vaL-1TIHb606oCuvyCeEu2NcB5kYEnqY1l-oh3b3mOU3xms1pbemT9GUXqvp9Gw6dpdOz6Qj96hMp_eYDnseo0__qEpvVZ_t1TT_MEd7uP1_0_wXSh8bEQ)
- - [3n-icx 100ge cx6 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlkFuwyAQRU_jbqqpDMHxqosmvkfk4GliCZMR4NTp6YujSGOr7SJVmmzYGIv_YQaevoQPB4cbj-Y1K1ZZucpk2Tbxky3enuPgjJdK5HAkAqle4p9Dg7VHWFho9QAiz3coSehh2QzQmaGAltQm9Nai8bBUWxAaMOzj7C5Q7z9GfTvuYBs3FpLrS6FvVVlt-sBq7GWmHNGxOGuSbbQ_sefX1tlfO6x5weREbAnoJ039dEL2vru6Q99-Ii-IN8O6jhBYEnpeJZxool6urazOjrsSo0TsL8To_4nJlLHriMlHZ0ymjN2S2B0yplLGriOmHp0xlTJ2S2KcsaJ6sgfXnd-MRfUFdTvbvg)
- - [3n-spr 200ge cx7 mlx5 vxlan](https://csit.fd.io/report/#eNrtVcFuwjAM_ZpymTy1oV1PHAb9D5SmHlRKg-WEquzrF1glt0Jw4YCEuCRRnl_s5ycrPhwYtx7tKinWSblOVNk2cUmW3x9xY-tVnqXQE4HKP-OJ0aL2CEunwRODStMdKsrMUPaoA3R2KKClfBuOzqH18JXXkBnAsI-3_WC1A6vqpo6PdNpYduAaPmdUmzHjVXpBm2MQNBY1Q3pkAWfVShjtTxJzT4NQNKMWzkSahAT0k7puSxXGD-sOffuLQouNEtxEWwTKzDxXONEEHftXVpeI53hIbw8f8pCe4-FgzsJefAL_Rb7U7I2-0du3h-etqBbuwN3l_yuqPw8r_Zs)
- - [3n-spr 200ge cx7 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlt2KgzAQhZ_G3iyzaBrXq73Y1vcoqc62QkyHJNqfp99YCqN0WehSpBe5MeI540zycSDOHyxuHOrPJF8lxSoRRVOHR7L8eguL1U7ILIWeCIR8D28WNSqHsDQKHFkQabpDQVl1KnpUHlp9yqEhufGdMagdfMgtZBWg34evO0-dOw76dviJqe3QS6xvve4as1p3ntUwzkTp0bI4mZNttD-z56_puURZVFwz2hRbPLrRXL9tkr3fVrXomgtyQTgc1quAgqWsmnbxZxqpt5Mryqtjbm4Uuf2TG83CTcS8PcxNvEDeRMzbk7nNkzcZ8_YwN_kCeZMxb0_mxnnLy4U52PZ6r8zLH3f46x4)
- - [3n-spr 200ge cx7 mlx5 wireguard](https://csit.fd.io/report/#eNrtVl1rwyAU_TXZy3BEG4kvfVib_1FsvGsDxsrVpO1-_Uwo3ITB9jJWaPqi4jnX-3E4YIgnhF0Au87kJis3mSgbk5Zs9f6aNrRBFDxnvfdMFG_phGBBB2Arp1nwyESeH0B4Xl_KHnRkrb1I1vhiFzvnwAbGJVd7xmsG8ZjuO-PPDcKh02h4nkdnw3ng74dHncEht9jecn8rhFDTRUJTeTOkByRwVjfR_PFKnJ-6oRCNoClm0iRRIoRJXb-3TJEfqFsIzSdQ-Dg6YtRJqglYz7PGq5-gt0mW1ci4t67-qesf6ervquvi3LoAry7OqY_vU7U0n6rH96lamk_VP_tUVi_uhO34D5bVF21oK00)
-- reassembly
- - [3n-icx 100ge e810cq dpdk reassembly](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEWx65BeOFDyD5Q4S2uROIttCuH1uKHSJkJckNLmkIttecar2R2NZB86h88em4ck2yX5LpG5qeOSbB5v4-YaL5VI4UgEUt3Fk8MGS4-wsWD0J4g03aMkgVuR6jeoqX4F7XoKHYhMbCsQGjAcDClDHnWkp8E2_gPiTXWqY2yAEr3M7ve6jdVL77Gtmh5s7U465NNZxy9RjNbvgdEodYIc0TE46YFpdOiZ83dn_KCMQvnFT8OMBvQjQf9qn4u9uLJFb76QKw6TZYaOFo5APRUSehqh56nmxcBYkt-0-j2D3zS333LN92X9ltfNt1zzvSS_Z8-3WvN9Wb_VdfOt1nwvyW_Od1bc2M61wz89K74BQnZUXQ)
-
-## CSIT-2410 Selected Performance Comparisons
-
-Comparisons 24.10 vs 24.06
-- [2n-icx 100ge e810cq avf 1c 64B PDR](https://csit.fd.io/comparisons/#eNqNkNEOgiAUhp9Gb5oNSLObLjIfoLVegOGxsSnSAV319IFaZFdt7MDP-Q7n8BtoQFio9lFeRCxHqAFBCXDnaHNYTbcG7Kwv2LvUcTVe-krZqQVa9W_UbYPWXky8ywyAIYmNYSnZJixdu4juNW4g4FLVyAPNVCLFPaGEXIFpCjtKxC3hQx0qRIefsTM_Cz16mZVzvsbWyOcS2abFgrH2oZfEqTzPRD6ud69Wc_zDJUfxFuz3x4MREzLwpocfXyjxvrj45cvYP1Ydtns_WlbGXW8bCWhm_QJp6Hnp)
-
-## CSIT-2410 Selected Performance Coverage Data
-
-CSIT-2410 VPP v24.10 coverage data
-- [2n-icx 200ge cx7 mlx5 ip4](https://csit.fd.io/coverage/#eNpVjsEOwiAQRL8GLwYDWwinHtT-hyG4sSRICSDSv2-JB-plk5k3s5mEDk22ix-JuhFQ0aX9kuF6_gkQnDUD7s14fnKnJYQ_UjB2COLCGY37d52wx8K8HjKeWlMpMPZCCNxUVVBn-nZV9oaOqHvFBtGEmk5pXr4PpzN6s45Etu1Hq6XktAEmgz2f)
+## CSIT-2502 Selected Performance Tests
+
+CSIT-2502 VPP v25.02 Performance Tests:
+
+## CSIT-2502 Selected Performance Comparisons
+
+Comparisons v25.02 vs v24.10
+
+## CSIT-2502 Selected Performance Coverage Data
+
+CSIT-2502 VPP v25.02 coverage data
+
## Further Information
diff --git a/docs/content/release_notes/current/dpdk_performance.md b/docs/content/release_notes/current/dpdk_performance.md
index 0db0f3db23..0c2ca825ac 100644
--- a/docs/content/release_notes/current/dpdk_performance.md
+++ b/docs/content/release_notes/current/dpdk_performance.md
@@ -3,46 +3,41 @@ title: "DPDK Performance"
weight: 2
---
-# CSIT 24.10 - DPDK Performance
+# CSIT 25.02 - DPDK Performance
1. TEST FRAMEWORK
- - **CSIT test environment** version 15 is used, see
+ - **CSIT test environment** version has been updated to ver. 17, see
[Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
2. DPDK PERFORMANCE TESTS
- No updates
3. DPDK RELEASE VERSION CHANGE
- - Version 24.07 is now tested.
+ - Version 24.11 is now tested.
# Known Issues
-List of known issues in CSIT 24.10 for DPDK performance tests.
-Tables are up-to-date with CSIT 24.10 release testing results.
+List of known issues in CSIT 25.02 for DPDK performance tests.
+Tables are up-to-date with CSIT 25.02 release testing results.
## New
-List of new issues in CSIT 24.10 for DPDK performance tests:
+List of new issues in CSIT 25.02 for DPDK performance tests:
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------
- 1 | [CSIT-1972](https://jira.fd.io/browse/CSIT-1972) | 2n-zn2, 3nb-spr: Testpmd occasionally does not forward in one direction in 9000B test.
- 2 | [CSIT-1973](https://jira.fd.io/browse/CSIT-1973) | 3n-snr: One lossy testpmd test+run.
- 3 | [CSIT-1974](https://jira.fd.io/browse/CSIT-1974) | cx7: Persistent losses in testpmd 4c imix test. (Already present in previous release, just not reported back then.)
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
## Previous
-List of known issues in CSIT 24.10 for DPDK performance tests:
+List of known issues in CSIT 25.02 for DPDK performance tests:
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|--------------------------------------------------------------------------
- 1 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | 3n-alt: DPDK testpmd startup check fails on DUT2.
- 2 | [CSIT-1924](https://jira.fd.io/browse/CSIT-1924) | L3fwd error in 200Ge2P1Cx7Veat-Mlx5 test with 9000B.
- 3 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in E8xx (dpdk) tests.
- 4 | [CSIT-1963](https://jira.fd.io/browse/CSIT-1963) | 3n-icxd: Various symptoms pointing to hardware (cable/nic/driver) issues.
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
## Fixed
-List of fixed issues in CSIT 24.10 for DPDK performance tests:
+List of fixed issues in CSIT 25.02 for DPDK performance tests:
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|----------------------
+------|--------------------------------------------------|--------------------------------------------------------------
1 | |
diff --git a/docs/content/release_notes/current/trex_performance.md b/docs/content/release_notes/current/trex_performance.md
index ff607dfd5b..9d6d151350 100644
--- a/docs/content/release_notes/current/trex_performance.md
+++ b/docs/content/release_notes/current/trex_performance.md
@@ -3,10 +3,10 @@ title: "TRex Performance"
weight: 3
---
-# CSIT 24.10 - TRex Performance
+# CSIT 25.02 - TRex Performance
1. TEST FRAMEWORK
- - **CSIT test environment** version 15 is used, see
+ - **CSIT test environment** version has been updated to ver. 17, see
[Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
2. TREX TESTS
- No updates
@@ -17,26 +17,24 @@ weight: 3
## New
-List of new issues in CSIT 24.10 for TRex performance tests:
+List of new issues in CSIT 25.02 for TRex performance tests:
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|------------------------------------------------
- 1 | [CSIT-1976](https://jira.fd.io/browse/CSIT-1976) | 2n-spr: E810 TG-TG link is always down on TB24.
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
## Previous
-List of known issues in CSIT 24.10 for TRex performance tests:
+List of known issues in CSIT 25.02 for TRex performance tests:
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|------------------------------------------------------------------------------------------
- 1 | [CSIT-1905](https://jira.fd.io/browse/CSIT-1905) | 2n-spr 200Ge2P1Cx7Veat: TG-TG tests see port line rate as 100 Gbps.
- 2 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in E8xx (dpdk) tests.
- 3 | [CSIT-1956](https://jira.fd.io/browse/CSIT-1956) | 2n-icx: TRex tests fail to initialize on TB212. (Reopened after wrongly marked as fixed.)
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
## Fixed
-List of fixed issues in CSIT 24.10 for TRex performance tests:
+List of fixed issues in CSIT 25.02 for TRex performance tests:
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|----------------------
+------|--------------------------------------------------|--------------------------------------------------------------
1 | |
diff --git a/docs/content/release_notes/current/vpp_performance.md b/docs/content/release_notes/current/vpp_performance.md
index 152818c749..d125966180 100644
--- a/docs/content/release_notes/current/vpp_performance.md
+++ b/docs/content/release_notes/current/vpp_performance.md
@@ -3,20 +3,14 @@ title: "VPP Performance"
weight: 1
---
-# CSIT 24.10 - VPP Performance
+# CSIT 25.02 - VPP Performance
1. TEST FRAMEWORK
- - **Decommissioned** multiple testbeds: 2n-clx, 2n-tx2 and 3n-tsh.
- - **CSIT test environment** version 15 is used, see
+ - **CSIT test environment** version has been updated to ver. 17, see
[Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
- **General Code Housekeeping**: Ongoing code optimizations and bug fixes.
2. VPP PERFORMANCE TESTS
- - Re-added a small selection of 1-link bonding tests.
- - Deleted memif-lxc tests.
- - Stopped running density and reconf tests on 2n-icx and 2n-zn2.
- - Deleted vhostvr1024-1vm tests from 3na-spr and 3nb-spr during release testing.
-3. PRESENTATION AND ANALYTICS LAYER
- - Max value on time axis has been set to utc.now
+ -
# Known Issues
@@ -30,76 +24,30 @@ but was not detected/recognized/reported enough back then.
Also, issues previously thought fixed but now reopened are listed here.
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|-------------------------------------------------------------------------
- 1 | [CSIT-1968](https://jira.fd.io/browse/CSIT-1968) | 3n-icx: two testbeds behave differently in some ipsec tests with AVF.
- 2 | [CSIT-1969](https://jira.fd.io/browse/CSIT-1969) | nsim scale: Transport endpoint is not connected.
- 3 | [CSIT-1970](https://jira.fd.io/browse/CSIT-1970) | JSON export validation does not prevent EPL from consuming invalid data.
- 4 | [CSIT-1971](https://jira.fd.io/browse/CSIT-1971) | Investigate two-band structure in nginx 2c cps tests.
- 5 | [CSIT-1977](https://jira.fd.io/browse/CSIT-1977) | E810: Unsent packets at moderate load can fail soak.
- 6 | [CSIT-1978](https://jira.fd.io/browse/CSIT-1978) | 3na-spr, 3nb-spr: Vhost tests cannot access testpmd.
- 7 | [CSIT-1979](https://jira.fd.io/browse/CSIT-1979) | 3na-spr: Flow related ipsec tests fail on CX7.
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
## Previous
Issues reported in previous releases which still affect the current results.
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 1 | [CSIT-1785](https://jira.fd.io/browse/CSIT-1785) | NAT44ED tests failing to establish all TCP sessions. At least for max scale, in allotted time (limited by session 500s timeout) due to worse slow path performance than previously measured and calibrated for. CSIT removed the max scale NAT tests to avoid this issue.
- 2 | [CSIT-1795](https://jira.fd.io/browse/CSIT-1795) | Ocassionally not all DET44 sessions have been established: 4128767 != 4128768.
- 3 | [CSIT-1802](https://jira.fd.io/browse/CSIT-1802) | All testbeds: AF-XDP - NDR tests failing from time to time on small loss.
- 4 | [CSIT-1845](https://jira.fd.io/browse/CSIT-1845) | AVF 9000B any ndrpdr test may start failing due to packets not arriving in one or both directions.
- 5 | [CSIT-1884](https://jira.fd.io/browse/CSIT-1884) | 2n-icx, 2n-spr: All NAT44DET IMIX large scale BIDIR tests fail to create enough sessions.
- 6 | [CSIT-1886](https://jira.fd.io/browse/CSIT-1886) | 3n: Wireguard tests with 100 and more tunnels are failing PDR criteria.
- 7 | [CSIT-1892](https://jira.fd.io/browse/CSIT-1892) | 3n-alt: Unexpected two-band structure of ipsec and vxlan.
- 8 | [CSIT-1896](https://jira.fd.io/browse/CSIT-1896) | Depending on topology, l3fwd avoids dut-dut link.
- 9 | [CSIT-1901](https://jira.fd.io/browse/CSIT-1901) | 2n-icx 3n-icx: Trex may report negative ipackets on high-performance AVF trial.
- 10 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | 3n-alt: DPDK testpmd startup check fails on DUT2.
- 11 | [CSIT-1906](https://jira.fd.io/browse/CSIT-1906) | Zero traffic with cx7 rdma. Testing migrated to mlx5-core on all Mellanox NICs.
- 12 | [VPP-2077](https://jira.fd.io/browse/VPP-2077) | IP fragmentation: running_fragment_id is not thread safe. Causes reduced performance and failures in gtpu reassembly tests.
- 13 | [CSIT-1914](https://jira.fd.io/browse/CSIT-1914) | TRex does not produce latency data on ICE NICs.
- 14 | [CSIT-1915](https://jira.fd.io/browse/CSIT-1915) | The 2n-icx testbeds do not have the same performance.
- 15 | [CSIT-1916](https://jira.fd.io/browse/CSIT-1916) | Poor CPU scaling on 2n-zn2 RDMA.
- 16 | [CSIT-1917](https://jira.fd.io/browse/CSIT-1917) | TRex STL performance is unstable at high pps due to unsent packets.
- 17 | [CSIT-1922](https://jira.fd.io/browse/CSIT-1922) | AF_XDP MRR regressions and PDR failures. Affects subsequent tests, that is why we are not testing AF-XDP now.
- 18 | [CSIT-1929](https://jira.fd.io/browse/CSIT-1929) | Lossy trials in nat udp mlx5 tests.
- 19 | [CSIT-1935](https://jira.fd.io/browse/CSIT-1935) | Zero traffic reported in udpquic tests due to session close errors.
- 20 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in E8xx (dpdk) tests.
- 21 | [CSIT-1938](https://jira.fd.io/browse/CSIT-1938) | 3n-alt: High scale ipsec policy tests may crash VPP.
- 22 | [CSIT-1941](https://jira.fd.io/browse/CSIT-1941) | TRex may wrongly detect link bandwidth.
- 23 | [CSIT-1942](https://jira.fd.io/browse/CSIT-1942) | 3nb-spr hoststack: Interface not up after first test.
- 24 | [VPP-2090](https://jira.fd.io/browse/VPP-2090) | MRR < PDR: DPDK plugin with MLX5 driver does not read full queue.
- 25 | [VPP-2091](https://jira.fd.io/browse/VPP-2091) | Memif crashes VPP in container with jumbo frames.
- 26 | [CSIT-1946](https://jira.fd.io/browse/CSIT-1946) | Ipsec hwasync fails with large scale and multiple queues.
- 27 | [CSIT-1947](https://jira.fd.io/browse/CSIT-1947) | Rare VPP crash in nat avf tests.
- 28 | [CSIT-1948](https://jira.fd.io/browse/CSIT-1948) | NICs do not consistently distribute tunnels over RXQs depending on model or plugin.
- 29 | [CSIT-1950](https://jira.fd.io/browse/CSIT-1950) | 9000B tests with encap overhead and non-dpdk plugins see fragmented packets.
- 30 | [CSIT-1951](https://jira.fd.io/browse/CSIT-1951) | Combination of AVF and vhost drops all 9000B packets.
- 31 | [CSIT-1953](https://jira.fd.io/browse/CSIT-1953) | 3n-icx 3nb-spr: Failed to enable GTPU offload RX.
- 32 | [VPP-2118](https://jira.fd.io/browse/VPP-2118) | 3n spr: Unusable performance of ipsec tests with SHA_256_128.
- 33 | [CSIT-1960](https://jira.fd.io/browse/CSIT-1960) | 2n-zn2: AVF xxv710 sometimes loses one direction of traffic, mostly with geneve.
- 34 | [CSIT-1961](https://jira.fd.io/browse/CSIT-1961) | Some tests have too long ramp-up trials. Only for highest scale tests that shuld have been removed already.
- 35 | [CSIT-1962](https://jira.fd.io/browse/CSIT-1962) | 3n-icx hoststack: Udpquicscale tests sometimes fail with various symptoms.
- 36 | [CSIT-1963](https://jira.fd.io/browse/CSIT-1963) | 3n-icxd: Various symptoms pointing to hardware (cable/nic/driver) issues. Probably fixed on CSIT master already.
- 37 | [CSIT-1964](https://jira.fd.io/browse/CSIT-1964) | 3nb-spr: Wireguardhw tests are likely to crash.
- 38 | [VPP-2121](https://jira.fd.io/browse/VPP-2121) | sw_interface_add_del_address: avf process node failed to reply in 5 seconds. Fixed only for iavf plugin.
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
## Fixed
Issues reported in previous releases which were fixed in this release:
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|-----------------------------------------------------------------------------------------------
- 1 | [CSIT-1943](https://jira.fd.io/browse/CSIT-1943) | IMIX 4c tests may fail PDR due to ~10% loss. Fixed by DPDK upgrade.
- 2 | [CSIT-1944](https://jira.fd.io/browse/CSIT-1944) | Memif LXC: unrecognized option '--no-validate'. Fixed in CSIT but also discontinued this test.
- 3 | [CSIT-1966](https://jira.fd.io/browse/CSIT-1966) | 3n-snr: Increased heap size in ipsec policy tests prevents VPP from starting.
- 4 | [CSIT-1967](https://jira.fd.io/browse/CSIT-1967) | 3na-spr: Unable to configure large MTU for 9000B tests.
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
Not listing issues that became unreproducible, e.g. by CSIT decomissioning older testbeds.
# Root Cause Analysis for Regressions
-List of RCAs in CSIT 24.10 for VPP performance regressions.
+List of RCAs in CSIT 25.02 for VPP performance regressions.
Not listing differences caused by known issues (uneven worker load
due to randomized RSS or other per-worker issues).
Also not listing tests which historically show large performance variance.
@@ -110,6 +58,5 @@ of CSIT testing. So even if they are not fixed
they will not be re-listed in the next release report.
**#** | **JiraID** | **Issue Description**
-------|--------------------------------------------------|--------------------------------------------------
- 1 | [CSIT-1980](https://jira.fd.io/browse/CSIT-1980) | 2n-zn2: Regression in l2xcbase around 2024-10-10.
- 2 | [CSIT-1981](https://jira.fd.io/browse/CSIT-1981) | Ip6scale regression around early july 2024.
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/_index.md b/docs/content/release_notes/previous/_index.md
index 32876694d3..c4391b84cd 100644
--- a/docs/content/release_notes/previous/_index.md
+++ b/docs/content/release_notes/previous/_index.md
@@ -7,6 +7,7 @@ weight: 2
# Previous Releases
+- [CSIT rls2410]({{< relref "csit_rls2410" >}})
- [CSIT rls2406]({{< relref "csit_rls2406" >}})
- [CSIT rls2402]({{< relref "csit_rls2402" >}})
- [CSIT rls2310]({{< relref "csit_rls2310" >}})
diff --git a/docs/content/release_notes/previous/csit_rls2302/_index.md b/docs/content/release_notes/previous/csit_rls2302/_index.md
index 0dd4884933..5fcab7d939 100644
--- a/docs/content/release_notes/previous/csit_rls2302/_index.md
+++ b/docs/content/release_notes/previous/csit_rls2302/_index.md
@@ -2,7 +2,7 @@
bookCollapseSection: true
bookFlatSection: false
title: "CSIT rls2302"
-weight: 5
+weight: 6
---
# CSIT rls2302
diff --git a/docs/content/release_notes/previous/csit_rls2306/_index.md b/docs/content/release_notes/previous/csit_rls2306/_index.md
index 980e3c0950..948b145d4f 100644
--- a/docs/content/release_notes/previous/csit_rls2306/_index.md
+++ b/docs/content/release_notes/previous/csit_rls2306/_index.md
@@ -2,7 +2,7 @@
bookCollapseSection: true
bookFlatSection: false
title: "CSIT rls2306"
-weight: 4
+weight: 5
---
# CSIT-2306 Release Report
diff --git a/docs/content/release_notes/previous/csit_rls2310/_index.md b/docs/content/release_notes/previous/csit_rls2310/_index.md
index 81e10e3014..63b10baf39 100644
--- a/docs/content/release_notes/previous/csit_rls2310/_index.md
+++ b/docs/content/release_notes/previous/csit_rls2310/_index.md
@@ -2,7 +2,7 @@
bookCollapseSection: true
bookFlatSection: false
title: "CSIT rls2310"
-weight: 3
+weight: 4
---
# CSIT-2310 Release Report
diff --git a/docs/content/release_notes/previous/csit_rls2402/_index.md b/docs/content/release_notes/previous/csit_rls2402/_index.md
index ab8bef4d46..b76a3101c0 100644
--- a/docs/content/release_notes/previous/csit_rls2402/_index.md
+++ b/docs/content/release_notes/previous/csit_rls2402/_index.md
@@ -2,7 +2,7 @@
bookCollapseSection: true
bookFlatSection: false
title: "CSIT rls2402"
-weight: 2
+weight: 3
---
# CSIT-2402 Release Report
diff --git a/docs/content/release_notes/previous/csit_rls2406/_index.md b/docs/content/release_notes/previous/csit_rls2406/_index.md
index f39efb70d5..d61b0f6950 100644
--- a/docs/content/release_notes/previous/csit_rls2406/_index.md
+++ b/docs/content/release_notes/previous/csit_rls2406/_index.md
@@ -2,7 +2,7 @@
bookCollapseSection: true
bookFlatSection: false
title: "CSIT rls2406"
-weight: 1
+weight: 2
---
# CSIT-2406 Release Report
diff --git a/docs/content/release_notes/previous/csit_rls2410/_index.md b/docs/content/release_notes/previous/csit_rls2410/_index.md
new file mode 100644
index 0000000000..aa6940aa64
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2410/_index.md
@@ -0,0 +1,119 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "CSIT rls2410"
+weight: 1
+---
+
+# CSIT-2410 Release Report
+
+This section includes release notes for FD.io CSIT-2410. The CSIT report
+was published on **Nov-13 2024**. The release plan is published on
+[CSIT wiki](https://wiki.fd.io/view/CSIT/csit2410_plan) pages.
+
+## CSIT-2410 Release Notes
+
+- [VPP Performance]({{< relref "vpp_performance" >}})
+- [DPDK Performance]({{< relref "dpdk_performance" >}})
+- [TRex Performance]({{< relref "trex_performance" >}})
+
+For infra reasons, we ultimately stopped device testing.
+
+## CSIT-2410 Release Data
+
+To access CSIT-2410 Release data please use following web resources:
+
+- [CSIT Per Release Performance](https://csit.fd.io/report/)
+ - `CSIT Release` > `rls2410`
+ - `DUT` > `vpp`
+ - `DUT Version` > `24.10-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Area` > `IPv4 Routing` `IPv4 Tunnels` `IPv6 Routing` `Hoststack` ...
+ - `Test` > `test of choice`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Test Type` > `MRR` `NDR` `PDR`
+- [CSIT Per Release Comparisons](https://csit.fd.io/comparisons/) for VPP
+ v24.10 vs v24.06
+ - `REFERENCE VALUE`
+ - `DUT` > `vpp`
+ - `CSIT and DUT version` > `rls2406-24.06-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Measurement` > `Latency` `MRR` `NDR` `PDR`
+ - `COMPARED VALUE`
+ - `Parameter` > `Release and Version`
+ - `Value` > `rls2410-24.10-release`
+- [CSIT Per Release Coverage Data](https://csit.fd.io/coverage/)
+ - `CSIT Release` > `rls2410`
+- [CSIT Search Tests](https://csit.fd.io/search/)
+ - `Data Type` > `iterative`
+ - `DUT` > `vpp`
+ - `Release` > `rls2410`
+ - `Type a Regular Expression` > `2n-zn2 -1c ethip4-ip4base-[mrr|ndrpdr]`
+ ".*" can be replaced by " " (white space).
+ - `Choose a cell in the table` > A corresponding graph(s) is displayed.
+ - `Click a datapoint in the graph` > Detailed information is displayed.
+
+## CSIT-2410 Selected Performance Tests
+
+CSIT-2410 VPP v24.10 Performance Tests:
+
+- ip4
+ - [2n-icx 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsrUO4cGjJfyDjbGlEmpq1G1G-HreqtIkAqUgtvfjgl2asHe9oJIe4YXoO1D0W5aKoFgVWbZOmYja_TQt3AY1WMHgPaO7SjqkjGwiwh9Z9gFbqldBretDKvYMdltB6A_fmBbQDiqv9KY3gbEeo3oD7BvqG9yXw6VjiWz1Bm20UNKmYIAOxgBN5QvOr3Yjzm2jhWyYrF5JygSKFkZif3ybsJds1hfaT5ErqiuAuNV4g7aZ14s6P0GPDqvrA-CeXfHbpby75y7mEOUunu4TXyhLmLJ3LpQtmyeQsne6SuVaWTM7SuVySLJX1Tb_h9eGvV9ZfVxOuLg)
+ - [2n-spr 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_BrnUrZIWznupYem_o-iypvG1HHUlWpIv75KCKxNUkghaS466MWM2NEOAwpxw_QaqHsqykVRLQqs2iZNxcPzXVq4C2i0gsF7QHOfdkwd2UCAPQTPoJV6J_SaHrVyn2CHJbTewNy8gXZAcbU7pRGc7QjVB3DfQN_wrgS-HEoc1RO0-YqCJhUTZCAWcCJPaH61HXF-Ey18y2TlQlIuUKQwEnP6bcJesl1TaL9JrqSuCO5S4wXSblonbv0IPTSsqveMf3LJZ5f-5pK_nkuYs3S-S3irLGHO0qVcumKWTM7S-S6ZW2XJ5CxdyiXJUlnP-g2v93-9sv4Bi3Gu-g)
+ - [2n-spr 100ge e810cq dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEW2cQgXDi35BzL2QqOm6bI2lcrrcatKmwg4RGrpxYc4tmZXM97RSI5py_gSsX-q6mXVLCvTdCEv1f3iNv-4j8ZqBTsiMPYu7xh7dBHBDBCJQSv1joY0PmrlPyBQWENHFh7sK2gPmFaHU_6idz0atQYeAgyBDxzm-cTxg1DQ8JkEzTImyA5ZwIk-KaPVflTzp2ppcIxOOrJ0gRLGkZrfLyfVb-w2GLsvlJY8FsF9Hr1A2k950p5G6GliTXus-C-fqPg00ye6oE-m5GmGT-ZqeTIlT2fz6ZJ5siVPM3yyV8uTLXk6m0-Sp7q9Gba8Ob776vYbCISzwg)
+ - [2n-spr 200ge cx7 mlx5 ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UjbYG7k-9dDU_xEUeZuYyo5YqSbp11cJgbVpezDkcdHBssTsMqMdBuTDnmntyb5m5SqrVhlWbROXbPn2HH9sPaoih8E5QLWIOyZL2hNgD94xYJ5vCV1hDtVAOkBnDyW0TsGL2kBhgMLudIqfN9oS5p_AfQN9wycSfL-Q_GIUtPkKgkYdE2QgFnAiUMrc7jiq-V-2dGgmLS1Ru0CB_EjO37eT6g_WHfn2m6QlzkVwE4cvUGGmPOHoRuhlZFV9rribUy45Ndcpd0unMGVqjlP4uExhytT1nLppplTK1Byn1OMypVKmrueUZKqsn_o9d-c3YFn_AP69vbI)
+ - [2n-c6in 200ge c6in.4xl ena dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtl91qwzAMhZ8muxkasZo0u9nFurzH8GxtDU1dYaeF7unnhIISuo0V2rUXvsgf5wQp-jiIhG7j6TVQ-5SVi6xaZFg1Np6y2fN9vPg2YKFy2DEDFg_xzlNLOhCgAzNvHGCef5BiRU6DZbuChgtQpXp8A2WAumX_HI9gdEuYr8A7C876vga-HGocFRTVbjtRYxsTZUdexEl_YuPlfuT5oWuxa09a_LFxkToKo16-_zRxv3u9ptB8krwyjEUcJo5-JJpppW7PI_UwsaoeHP_FiROnEznxBTlhytMJnPBqecKUp7Nxukye5kXaTkeU4lBuaTf9zogToxvYSz2jtJX-zgivlKO0kc7FSHJU1ndu49fDf1NZfwEQ_pKp)
+ - [2n-c7gn 100ge c7gn ena dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtl91qwzAMhZ8muxkasZosu9nFurzH8GytDU1dYaeF7unnhIISuo0V2rUXvsgf5wQp-jiIhG7j6S1Q-5yV86yaZ1g1Np6y2ct9vPg2YKFy2DEDFg_xzlNLOhCgA1MtHKg8X5BiRU6DZbuChgtQpXp6B2WAumX_HI9gdEuYr8A7C876vga-HmocFRTVbjtRYxsTZUdexEl_YuPlfuT5oWuxa09a_LFxkToKo16-_zRxf3i9ptB8krwyjEUcJo5-JJpppW7PI_UwsaoeHP_FiROnEznxBTlhytMJnPBqecKUp7NxukyeHou0nY4oxaHc0m76nREnRjewl3pGaSv9nRFeKUdpI52LkeSorO_cxq-H_6ay_gI0X5KJ)
+- ip6
+ - [2n-icx 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsrUN64UCb_0DG2dKINDVrE1G-HreqtIkAqUgtvfjgl2asHe9oJIe4ZXoK1D0U5aKoFgVWbZOmYvZ4mxbuAhqtYPAe0NylHVNHNhBgD637AK3UC6HXNNfKvYEdVtD6e6jmz6AdUFzvT2kEZztC9QrcN9A3vC-By2OJb_UEbd6joEnFBBmIBZzIE5pf70ac30QL3zJZuZCUCxQpjMT8_DZhr9huKLSfJFdSVwR3qfECaTetE3d-hB4bVtUHxj-55LNLf3PJX84lzFk63SW8VpYwZ-lcLl0wSyZn6XSXzLWyZHKWzuWSZKmsb_otbw5_vbL-Au7lrrI)
+ - [2n-spr 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UrZIG7nOpYek_o-iypvG1HHUlWJIv75KCKxNW0ghaS466MWM2NEOAwpxy_QSqHsqymVRLQus2iZNxWxxnxbuAhqtYPAe0DykHVNHNhBgD8EzaKXeCL2muVbuA-ywgtY_QjV_Be2A4vpwSiM42xGqd-C-gb7hQwl8PpX4Vk_QZhcFTSomyEAs4ESe0Px6P-L8Jlr4lsnKhaRcoEhhJObntwl7xXZDof0kuZK6IrhLjRdIu2mduPcj9NSwqj4y_skln136m0v-ei5hztL5LuGtsoQ5S5dy6YpZMjlL57tkbpUlk7N0KZckS2V91295c_zrlfUXI1Kvfg)
+ - [2n-spr 100ge e810cq dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEW2cUgvHCj5BzL2QqOm6bI2lcrrcatKmwg4RGrpxYc4tmZXM97RSI5py_gSsX-s6mXVLCvTdCEv1f3Tbf5xH43VCnZEYOxd3jH26CKCGSASg1bqHQ1pXGjlPyBQWENHD9AsXkF7wLQ6nPIXvevRqDXwEGAIfOAwzyeOH4SChs8kaJYxQXbIAk70SRmt9qOaP1VLg2N00pGlC5QwjtT8fjmpfmO3wdh9obTksQju8-gF0n7Kk_Y0Qk8Ta9pjxX_5RMWnmT7RBX0yJU8zfDJXy5MpeTqbT5fMky15muGTvVqebMnT2XySPNXtzbDlzfHdV7ffoyy0Rg)
+ - [2n-spr 200ge cx7 mlx5 ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEXJ4mAuHFryD2SchUY4qbU2UcvrcatKmwg4RGrpxYc4tmZXM97RSA5xy_QSyD0V9brQ6wJ116aluF_dph-7gKoqYfQeUN2lHZMjEwhwgOAZsCzfCX1ld3okE6F3uxo6_wD68RUqCxQ3h1P6gjWOsPwAHloYWj6Q4POJ5AejoO1nFDTpmCEjsYAzgVLmN_tJzd-ypcMwGWlJ2gWKFCZyfr-dVL-x6Sl0XyQtaS6C2zR8gSo754l7P0FPI9PNseLfnPLZqaVO-Us6hTlTS5zC62UKc6bO59RFM6VyppY4pa6XKZUzdT6nJFN1czNsuT--AevmG5xKvjY)
+ - [2n-c6in 200ge c6in.4xl ena dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtV8tqwzAQ_Br3UrZY2zjqpYem_o-iSNvGxFGEpAbSr49iAmuTBBqwmx508IsZs-MdhsEhbj19BGpfi2pRyEWBsjHpVDy_PaaLbwPORAk75wBnT-nOU0sqEKAFPW8sYFl-kXCCrALjzBoaNwdRiZclCA0UV8fndAStWsJyDd4asMYfZ-D7acbZQEbNd2Q0yRggO_IMDvQxza32Pc4V1UxXnhTzk3CGIoWelsufxuxPrzYUmh_iV7q1MEOn1fdAPZwU966HnjYm647xVz657NONPrkJfcKcpxt8wrvlCXOeRvNpmjzJ3E7nLsn_1U0yN9OIHk2Xo9xKv_cI75Sj3EhjecQ5quoHu_Wb7r-pqg8Zh5Mx)
+ - [2n-c7gn 200ge c7gn ena dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtV8tqwzAQ_BrnUjZY27jqpYem_o-gStvExFGEpAaSr69iAmuTFhqwmx508IsZs-MdhsEh7j2tArUvRbUs5LJA2Zh0Kh5fH9LFtwEXooSDc4CLebrz1JIKBGhBy7UFUZZrEk6QVWCc2ULjnkBU4vkdhAaKm_NzOoJWLWG5BW8NWOPPM_DtMuNqIKPmMzKaZAyQA3kGB_qY5jbHHucH1UxXnhTzk3CGIoWelu8_jdkfXu0oNCfiV7q1MEOn1fdAPZwUj66HXjYm647xVz657NONPrkJfcKcpxt8wrvlCXOeRvNpmjzJ3E7XLsn_1U0yN9OIHk2Xo9xKv_cI75Sj3EhjecQ5quqZ3ftd999U1V886JMR)
+- ipsec
+ - [3n-icx 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYwlK7Fw-ufQ_D0tldkv4gYN369NK6CW2MiZql9cClP5kBBr58yQRjW43PBquHJNsl-S6huSzdI9k83rqXrgxlJIVOKaDszn1prJAbhE0DUpyBpOkRqSK4Jal4Ad4dQOhe2RZIRrZ7IALQnqRiUhkULLVNZd7A_e-HSWRjgaOh2f1R1NCUeliZPl1W_lKGj5av1kddcbNIh9oHZ1X7NHXqfc63e_H5XCP3Az636KMWzaSen27Yjz9oXqOR7-gnGY_PZwiHaRIU87VtrybRyznmxZixLlMVmV6FqQrMlEZPAzClq3pKo6eLMw3tKYueBmDKVvWURU8XZxrOU1nLc2x7_4p0OL3_1vX-mmiU9CpEAzsaW94AROmajsaGd3GigR2N7W4AomxNR2OzuzhR72hW3DStrse73qz4AI6LK34)
+ - [3n-icx 100ge cx6 dpdk 40tnlsw](https://csit.fd.io/report/#eNrtmEtOwzAQQE8TNmhQ7DqkGxaU3AOlztBa5GNsUxpOjxMqTSqEBKhOWHiTj2Zsj_30pJGt6ww-WqzvkmyT5JuE56ryj2R1f-1fprZcsBQOWgMXN_7LYI2lRVi1oOQRWJrukGuGa5bKF6h09QzS9Np1wDK23gKTgG6vtFDaohSpa2v7Bv5_O8yiWgclWp7d7mQDbWWGpfnDaekvdVC0enUU9dWdRQ5oKHhWNqXpfU8532-GBpQGSxrxuUeKOrSTgn66Yxr_ZMoGrXpHmmQ8P8qQHtQkKM_Xdr2eRE8HmRdjxsJUdaR6Gao6NFUeXQ1BlS_rKo-uzk81uKsiuhqCqljWVRFdnZ9qQFdVo46xBf4z1OH4_l0H_GumUdTLMA3taWx_QzDli3oam9_5mYb2NLa-IZiKRT2Nje_8TMnTrLhqO9OMd8BZ8QG4PzUO)
+ - [3n-spr 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYwlK7Fw-79j0MpbO7JP1BwGp9emndhG2MiZql9cClP5kBBr58yQRjO41PBuuHJNsn-T6huazcI9nsbt1L14YykkKvFFB257401sgNwqYtwSgNJE2PSBXBLUnFM_D-AEIPynZAMrItgQhAe5KKSWVQsNS2tXkF91-Os8jWAkdDs_ujaKCt9Lg0fTwv_aUOH61erI-66maRHrUPzsr2aeo0-JzvN-MHcI3cj_jco49aNBcF_XTHfvxB8waNfEc_yXR-PkM4UBdBMV_bDuoiej7IvJgyVqaqItXrUFWhqdLoagiqdF1XaXR1earBXWXR1RBU2bqusujq8lQDuiob-RZb4D9DHY_v33XAv2YaRb0O09CexvY3BFO6qqex-V2eaWhPY-sbgilb1dPY-C7P1HuaFTdtp5vpDjgrPgDBrzZG)
+ - [3n-spr 200ge cx7 mlx5 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYlgXrxYNr38OwdNwl6Q8BrK1PL62b0MbEaFzEA5f-ZAYY-PIlE4ztNT4ZbO4zts_KfUZKWbtHtnu4di_dGEKLHAalgNAb96WxQW4Qdh0HozSQPD8iUYUYywG5hbYZGQg9KdtDwYq7AxQC0J6kolIZFDS3XWNewf0f5nlkZ4GjIez2KFroaj0vTh7Pi3-qxEfrF-ujrr5NZEDtg5vCfZo6TT7nq-34IVwj92M-dumjFs2qpO_u2Y9_1rxFI9_QT7KcoM8QDtYqKLZr20mtouejLKslIzpZlcheiqwKT5YkZ8OQJbGdJcnZGGT_wFmanA1DlsZ2liZnY5AN6qxs5Zha41-AnQ_wH3bGP-aahL0U1_C-prY4DFcS2dfUFMfgGt7X1BKH4Uoj-5oa4hhcva-suup63S53xqx6B3wFU54)
+- hoststack quic
+ - [3n-icx 100ge e810cq dpdk ip4udpquic](https://csit.fd.io/report/#eNrlVctuwyAQ_Br3Um0FxJZz6aGJ_6PCsK1RSExYHDX9-hIr6tpqc80hvgDSzOxrtIJSH_Gd0L8W1aaoN4Wqnc1HsXp7zlf0pEop4BQCqPIlvyJ61ISwOoAzXyCF-EQVJK6lMEewwe6g6ylR0mYHUq1FC9IApg5cKAcbjoMz7SVADomm66ENdMmnttd8f5IzaofEaNbPkBNGBme1Mi10Z-bc7oAFOqJmxW9jTEhIk5put8mKj6j3SO4bWTaOiRkmWzIBzTxbOocJep1e3YyMO_lHRnvMfC8FLcDH_9p9UD-XZecju7ms5bzzblbN06GP-_HPrJofsq8JmA)
+ - [3n-icx 100ge cx6 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCYte99NDU_6gw3taoOKYsjpy8PsSKurbaXHNwLoA0M8zujhAU-4AfhO41K7ZZuc1UaZu0ZJu3x7QFRyqXAvbeg8qf0imgQ00Imx1YM4IU4guVl2Z8bkbo3FhA21OkqM03SPUiapAGMLZgfT40_mewpj7r041o2h5qT2c79X6x--PNaDNERpN-gewxMLgolWm-PTDnagPM1wE1C377YkJEmpV0vUtWfAbdIdkjsmyaEjNMCmQGmqVbPPgZehleWU2M26RHRjuUwjgpaP0p_tftOtO8qzBXnOVdPcwbv8uietj1oZv-yqI6AfRwCYg)
+ - [3n-spr 200ge cx7 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVctugzAQ_Bp6qbayHRC99NCE_4iM2RRUExyvQUm-Pg6KsqA-jjmEi21pZvY1WplC53FLaD-SbJ3k60TlTRWPZPX5Gi9vSaVSwOAcqPQtvjxa1ISw2msg50EJ8YXKSXPMB9QBWnvMoO4oUNDmG6R6FyVIAxhqaFzaV-7QN6a8hohB0dQdlI6uGdXmlvFHekarPjAa9TNkQM_grFqmufrEnP96YIn2qFlzb40JAWlS1d-NsmLndYvUnJFl46CYYaItE9DMs4WTm6C3-eXFyHiYh2S0RSmMlYIW4eVvDT-tp0uz9LkdXdqSPnhHs-Jl3_l2_EOz4gIXGRPI)
+- hoststack tcp udp
+ - [3n-icx 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCbNe99JDU_4gwbGorJKYsiZK-vsSKuraqNKf2EF8AMTPsDiMExT7gitC9ZuUyq5aZqjqbhixfPKYpOFKFFHDwHlTxlFYBHWpCyHfQmSNIId5ReYkvUpgPsN5uoO0pUtRmA7J4Fg1IAxhb6HwRjW_OYmd9OqfXNm1iWOfQeDoXVW-Xoj86YNTuI6OprwlywMDgpGGm-fbEnOs2WKADalZ8u2NCRBr1dMMry9ZBb5G6T2TtcGHMMCmcEWimJePJj9DLFVb1wPiHJMloh9I4KWgugf5m-T5y3dv5vNBrXu8mybm90BuW_z7Xsn7Y9WE7_KVl_QXVthDe)
+ - [3n-icx 100ge cx6 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVcFuwyAM_ZrsMnkCkjSnHdblPyYC7hKNNAjTKt3Xj0bVnGjqeuqluQDiPWM_P1lQHAJ-ELrXrNxm1TZTVWfTkuVvz2kLjlQhBRy9B1W8pFNAh5oQ8j10ZgQpxCcqL824sSP0biyhHShS1OYLZLERDUgDGFvofBGNb86xzvr0zKBtusSwy6HxdM6p3i85_xTAqD1ERlNZC-SIgcFFvUzz7Yk5V1UwXwfUHPArjgkRaVbSDakctgu6R-q-kWOnfjHDJGtmoFmmjCc_Qy8drOqJcX8fyWiH0jgpaCV2_qf4IVw92NVM5zWpj-LjyqbzhuL7u1rWT_sh9NMfWtY_-TAQzg)
+ - [3n-spr 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVctOwzAQ_JpwQYvsPAgXDpT8B3LsLYnqNovXrVS-Hjeq2ESI9gSH5mJbnhnvjkeWOQ4B3xj9c1atsnqV5XXv0pAVL_dpCp7zUis4EEFePqRVQI-GEYpdC0wBtFLvmJPGJ63sBzhyG-gGjhyN3YAuH1UL2gLGDnoqo6X2pPaO0kGDcWkTw7qAlvhUNX89V_3RgqBuHwVNjc2QAwYBZx0LjbqjcC74EIUJaETybU8IEXnS1BWzIlsHs0XuP1G0440Jw6Z4JqCdl4xHmqDnO6ybkfEfWbI1HrX1WvFiIr3k-UaS3bsFvdLfzN5Olot7pVc8_32yVXO3G8J2_FOr5gvbwBR2)
+ - [3n-spr 200ge cx7 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCbNenHpr4HxWGTW0Vx4glVtLXl1hR11bV5NQe4gsgZobdYYSgOAR8I3QvWbnJqk2mqs6mIctfH9MUHKlCChi9B1U8pVVAh5oQ8r0G8gGUEO-ovDTHakQdoXfHEtqBIkVtPkAWz6IBaQBjC50vovHNWe6sTycN2qZNDLscGk_nsmp7KfujB0btITKaOlsgIwYGFy0zzbcn5lwzwhIdULPm2x8TItKsqxtuWbYLukfqPpG105Uxw6SAZqBZlownP0Mvl1jVE-Nf0iSjHUrjpKD1hHrN9L1ke7Breqm_ub2jNNf3Um-Y_vtsy_phP4R--lvL-gvvbhsO)
+- nat44
+ - [2n-icx 100ge e810cq avf ethip4tcp tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZIsiT70kNS_0dQ5E1tcJytpJikX185DcimGAotLYRc9JpZ7Y6GRT4cHG48ds-ZWmfFOhNFW8chy1ePcXKdF5IzGIhAyKe4ctih8Qiih9aegDP2ioI4lpzZNzDDDlqS4_EWuAUMTdwGS-PpdoxrOBMSSOfgtVRcQKBjgL52Y1Lxck36pYKE1seQ0FjXDBnQJXBWcKJRc55wlmQkvnFoUkDUkaCAflLMN8Wm8J0ze_TtO6Y7xodLBBvNmWB2njmcaYJen7CoLox_c5LuTv7USfpzJ7VSuf5UJ7koC13edlsu6L2Zzlzyk-5-_mp_quqhP7j95e9U1Qdh8vTb)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZYsiT70kNS_0dR5U1tcJytpBjSr6-cBtamGAotLYRc9JqRdmeHRSEePD4H7B8zvc3KbSbLrklDVmzu0-T7IJXIYSQCqR7SymOPNiDIAQJ5EHn-ipIEViJ3b2DHHXSkpuMXEA4wtmkbHcFgo1LYQCtyqYBMAcEoLSREOkYYGj8FlU-XoF8yYLQ5RkZTXgtkRM_gImGmUXuacdZkMN96tHwhyWEoYpgl802xfH3n7R5D9478xlQ4Jrhkzgxzy8jxRDP0UsKyPjP-zUm6OflTJ-nPnTRaF-ZTnRKyKk113W25ovdqOnPNT7r5-av9qeu74eD3579T1x93qPPD)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed cps](https://csit.fd.io/report/#eNrtVdtqwzAM_ZrsZWjYju3kZQ_r8h_Fc9QlkKaa7QXar5_XFZSwFQYbG5S--MKRfHR0EI5pF3AdcbgvzKqoVoWq-jYvRflwm7cwRKWlgIkIlL7Lp4ADuoigRogUQArxjIok1lL4F3DTBnrSYPUTSA-YunxLnmB0SWtsoZNCaSBbQrTaSAWeIoxteKdUjyfKT_yMtq-J0VzVApkwMLgol8Oo289izongeBfQcUJWw1DCOCvme1o5exPcFmN_QH4id41xn41hSPolb9rTDD01sGqOEf_kIl1d_JmL9NcuWmNK-yFNS1VXtr7ocfxa7oVM5Bkv6erlL86laW7GXdge_0rTvAEWLe5T)
+ - [2n-spr 200ge cx7 mlx5 ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZIsh659JDU_1FUeVsbbGeRFJPk66OkAdkUQ6GFQMhFD2ZXO7PDohC3Ht8Ddq-F2hRmUwjT1mkpyvVz2nwXhOQMRiIQ8iWdPHZoA4IYIJAHwdgXCuJub0a0Efpur6AlCZyxD-AOMDbpGh3BYKOUWEPDmZBAuoSgpeICIu0iDLU_lxVv17I_OGS03sWMJmYzZESfwRnlHEbNYRKzLCRnWI82pyRBGYoYJnR-KTenf3rbY2iPmN84ty4HuGTQBHPzyvFAE_TaRFNdIm7oJj3c_LubdAM3tVKl_tYnuVgZvbr38VxQfEcTuuQpPTz95zlV1dOw9f3lL1XVCd5X_ZM)
+- tunnels (gnv, vxlan, gtpu)
+ - [2n-icx 100ge e810cq avf ethip4udpgeneve](https://csit.fd.io/report/#eNrtVsGKwjAQ_ZruZZmlia3dyx7U_ofEdNRCjWOSFvXrN5XCtCvCHgSh9ZKEvDeZmTweifNHi2uH1U-ULqNsGcmsLMIQzRafYbKVk4mIoSECmXyFlcUKlUOQBkp9BhHHO5Qk8FvE-gSq2UJJydrXxmDlYJ5sQGhAvw-70M11QTs02CCIeSC2AZv2SFPYNrNcdZnvymC0qD2jobgB0qBlcFA102h_6XEe9cJ8ZVFxQK9Fpnh0vaL-1TIHb606oCuvyCeEu2NcB5kYEnqY1l-oh3b3mOU3xms1pbemT9GUXqvp9Gw6dpdOz6Qj96hMp_eYDnseo0__qEpvVZ_t1TT_MEd7uP1_0_wXSh8bEQ)
+ - [3n-icx 100ge cx6 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlkFuwyAQRU_jbqqpDMHxqosmvkfk4GliCZMR4NTp6YujSGOr7SJVmmzYGIv_YQaevoQPB4cbj-Y1K1ZZucpk2Tbxky3enuPgjJdK5HAkAqle4p9Dg7VHWFho9QAiz3coSehh2QzQmaGAltQm9Nai8bBUWxAaMOzj7C5Q7z9GfTvuYBs3FpLrS6FvVVlt-sBq7GWmHNGxOGuSbbQ_sefX1tlfO6x5weREbAnoJ039dEL2vru6Q99-Ii-IN8O6jhBYEnpeJZxool6urazOjrsSo0TsL8To_4nJlLHriMlHZ0ymjN2S2B0yplLGriOmHp0xlTJ2S2KcsaJ6sgfXnd-MRfUFdTvbvg)
+ - [3n-spr 200ge cx7 mlx5 vxlan](https://csit.fd.io/report/#eNrtVcFuwjAM_ZpymTy1oV1PHAb9D5SmHlRKg-WEquzrF1glt0Jw4YCEuCRRnl_s5ycrPhwYtx7tKinWSblOVNk2cUmW3x9xY-tVnqXQE4HKP-OJ0aL2CEunwRODStMdKsrMUPaoA3R2KKClfBuOzqH18JXXkBnAsI-3_WC1A6vqpo6PdNpYduAaPmdUmzHjVXpBm2MQNBY1Q3pkAWfVShjtTxJzT4NQNKMWzkSahAT0k7puSxXGD-sOffuLQouNEtxEWwTKzDxXONEEHftXVpeI53hIbw8f8pCe4-FgzsJefAL_Rb7U7I2-0du3h-etqBbuwN3l_yuqPw8r_Zs)
+ - [3n-spr 200ge cx7 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlt2KgzAQhZ_G3iyzaBrXq73Y1vcoqc62QkyHJNqfp99YCqN0WehSpBe5MeI540zycSDOHyxuHOrPJF8lxSoRRVOHR7L8eguL1U7ILIWeCIR8D28WNSqHsDQKHFkQabpDQVl1KnpUHlp9yqEhufGdMagdfMgtZBWg34evO0-dOw76dviJqe3QS6xvve4as1p3ntUwzkTp0bI4mZNttD-z56_puURZVFwz2hRbPLrRXL9tkr3fVrXomgtyQTgc1quAgqWsmnbxZxqpt5Mryqtjbm4Uuf2TG83CTcS8PcxNvEDeRMzbk7nNkzcZ8_YwN_kCeZMxb0_mxnnLy4U52PZ6r8zLH3f46x4)
+ - [3n-spr 200ge cx7 mlx5 wireguard](https://csit.fd.io/report/#eNrtVl1rwyAU_TXZy3BEG4kvfVib_1FsvGsDxsrVpO1-_Uwo3ITB9jJWaPqi4jnX-3E4YIgnhF0Au87kJis3mSgbk5Zs9f6aNrRBFDxnvfdMFG_phGBBB2Arp1nwyESeH0B4Xl_KHnRkrb1I1vhiFzvnwAbGJVd7xmsG8ZjuO-PPDcKh02h4nkdnw3ng74dHncEht9jecn8rhFDTRUJTeTOkByRwVjfR_PFKnJ-6oRCNoClm0iRRIoRJXb-3TJEfqFsIzSdQ-Dg6YtRJqglYz7PGq5-gt0mW1ci4t67-qesf6ervquvi3LoAry7OqY_vU7U0n6rH96lamk_VP_tUVi_uhO34D5bVF21oK00)
+- reassembly
+ - [3n-icx 100ge e810cq dpdk reassembly](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEWx65BeOFDyD5Q4S2uROIttCuH1uKHSJkJckNLmkIttecar2R2NZB86h88em4ck2yX5LpG5qeOSbB5v4-YaL5VI4UgEUt3Fk8MGS4-wsWD0J4g03aMkgVuR6jeoqX4F7XoKHYhMbCsQGjAcDClDHnWkp8E2_gPiTXWqY2yAEr3M7ve6jdVL77Gtmh5s7U465NNZxy9RjNbvgdEodYIc0TE46YFpdOiZ83dn_KCMQvnFT8OMBvQjQf9qn4u9uLJFb76QKw6TZYaOFo5APRUSehqh56nmxcBYkt-0-j2D3zS333LN92X9ltfNt1zzvSS_Z8-3WvN9Wb_VdfOt1nwvyW_Od1bc2M61wz89K74BQnZUXQ)
+
+## CSIT-2410 Selected Performance Comparisons
+
+Comparisons 24.10 vs 24.06
+- [2n-icx 100ge e810cq avf 1c 64B PDR](https://csit.fd.io/comparisons/#eNqNkNEOgiAUhp9Gb5oNSLObLjIfoLVegOGxsSnSAV319IFaZFdt7MDP-Q7n8BtoQFio9lFeRCxHqAFBCXDnaHNYTbcG7Kwv2LvUcTVe-krZqQVa9W_UbYPWXky8ywyAIYmNYSnZJixdu4juNW4g4FLVyAPNVCLFPaGEXIFpCjtKxC3hQx0qRIefsTM_Cz16mZVzvsbWyOcS2abFgrH2oZfEqTzPRD6ud69Wc_zDJUfxFuz3x4MREzLwpocfXyjxvrj45cvYP1Ydtns_WlbGXW8bCWhm_QJp6Hnp)
+
+## CSIT-2410 Selected Performance Coverage Data
+
+CSIT-2410 VPP v24.10 coverage data
+- [2n-icx 200ge cx7 mlx5 ip4](https://csit.fd.io/coverage/#eNpVjsEOwiAQRL8GLwYDWwinHtT-hyG4sSRICSDSv2-JB-plk5k3s5mEDk22ix-JuhFQ0aX9kuF6_gkQnDUD7s14fnKnJYQ_UjB2COLCGY37d52wx8K8HjKeWlMpMPZCCNxUVVBn-nZV9oaOqHvFBtGEmk5pXr4PpzN6s45Etu1Hq6XktAEmgz2f)
+
+## Further Information
+
+For further information including instructions how to access the needed
+information with user selectable options, please refer to
+[csit.fd.io documentation]({{< relref "/" >}}).
diff --git a/docs/content/release_notes/previous/csit_rls2410/dpdk_performance.md b/docs/content/release_notes/previous/csit_rls2410/dpdk_performance.md
new file mode 100644
index 0000000000..0db0f3db23
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2410/dpdk_performance.md
@@ -0,0 +1,48 @@
+---
+title: "DPDK Performance"
+weight: 2
+---
+
+# CSIT 24.10 - DPDK Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version 15 is used, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. DPDK PERFORMANCE TESTS
+ - No updates
+3. DPDK RELEASE VERSION CHANGE
+ - Version 24.07 is now tested.
+
+# Known Issues
+
+List of known issues in CSIT 24.10 for DPDK performance tests.
+Tables are up-to-date with CSIT 24.10 release testing results.
+
+## New
+
+List of new issues in CSIT 24.10 for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------
+ 1 | [CSIT-1972](https://jira.fd.io/browse/CSIT-1972) | 2n-zn2, 3nb-spr: Testpmd occasionally does not forward in one direction in 9000B test.
+ 2 | [CSIT-1973](https://jira.fd.io/browse/CSIT-1973) | 3n-snr: One lossy testpmd test+run.
+ 3 | [CSIT-1974](https://jira.fd.io/browse/CSIT-1974) | cx7: Persistent losses in testpmd 4c imix test. (Already present in previous release, just not reported back then.)
+
+## Previous
+
+List of known issues in CSIT 24.10 for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------------------
+ 1 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | 3n-alt: DPDK testpmd startup check fails on DUT2.
+ 2 | [CSIT-1924](https://jira.fd.io/browse/CSIT-1924) | L3fwd error in 200Ge2P1Cx7Veat-Mlx5 test with 9000B.
+ 3 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in E8xx (dpdk) tests.
+ 4 | [CSIT-1963](https://jira.fd.io/browse/CSIT-1963) | 3n-icxd: Various symptoms pointing to hardware (cable/nic/driver) issues.
+
+## Fixed
+
+List of fixed issues in CSIT 24.10 for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|----------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2410/trex_performance.md b/docs/content/release_notes/previous/csit_rls2410/trex_performance.md
new file mode 100644
index 0000000000..ff607dfd5b
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2410/trex_performance.md
@@ -0,0 +1,42 @@
+---
+title: "TRex Performance"
+weight: 3
+---
+
+# CSIT 24.10 - TRex Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version 15 is used, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. TREX TESTS
+ - No updates
+3. TREX VERSION
+ - Currently using v3.03 of TRex.
+
+# Known Issues
+
+## New
+
+List of new issues in CSIT 24.10 for TRex performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|------------------------------------------------
+ 1 | [CSIT-1976](https://jira.fd.io/browse/CSIT-1976) | 2n-spr: E810 TG-TG link is always down on TB24.
+
+## Previous
+
+List of known issues in CSIT 24.10 for TRex performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|------------------------------------------------------------------------------------------
+ 1 | [CSIT-1905](https://jira.fd.io/browse/CSIT-1905) | 2n-spr 200Ge2P1Cx7Veat: TG-TG tests see port line rate as 100 Gbps.
+ 2 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in E8xx (dpdk) tests.
+ 3 | [CSIT-1956](https://jira.fd.io/browse/CSIT-1956) | 2n-icx: TRex tests fail to initialize on TB212. (Reopened after wrongly marked as fixed.)
+
+## Fixed
+
+List of fixed issues in CSIT 24.10 for TRex performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|----------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2410/vpp_performance.md b/docs/content/release_notes/previous/csit_rls2410/vpp_performance.md
new file mode 100644
index 0000000000..152818c749
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2410/vpp_performance.md
@@ -0,0 +1,115 @@
+---
+title: "VPP Performance"
+weight: 1
+---
+
+# CSIT 24.10 - VPP Performance
+
+1. TEST FRAMEWORK
+ - **Decommissioned** multiple testbeds: 2n-clx, 2n-tx2 and 3n-tsh.
+ - **CSIT test environment** version 15 is used, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+ - **General Code Housekeeping**: Ongoing code optimizations and bug fixes.
+2. VPP PERFORMANCE TESTS
+ - Re-added a small selection of 1-link bonding tests.
+ - Deleted memif-lxc tests.
+ - Stopped running density and reconf tests on 2n-icx and 2n-zn2.
+ - Deleted vhostvr1024-1vm tests from 3na-spr and 3nb-spr during release testing.
+3. PRESENTATION AND ANALYTICS LAYER
+ - Max value on time axis has been set to utc.now
+
+# Known Issues
+
+These are issues that cause test failures or otherwise limit usefulness of CSIT
+testing.
+
+## New
+
+Any issue listed here may have been present also in a previous release,
+but was not detected/recognized/reported enough back then.
+Also, issues previously thought fixed but now reopened are listed here.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|-------------------------------------------------------------------------
+ 1 | [CSIT-1968](https://jira.fd.io/browse/CSIT-1968) | 3n-icx: two testbeds behave differently in some ipsec tests with AVF.
+ 2 | [CSIT-1969](https://jira.fd.io/browse/CSIT-1969) | nsim scale: Transport endpoint is not connected.
+ 3 | [CSIT-1970](https://jira.fd.io/browse/CSIT-1970) | JSON export validation does not prevent EPL from consuming invalid data.
+ 4 | [CSIT-1971](https://jira.fd.io/browse/CSIT-1971) | Investigate two-band structure in nginx 2c cps tests.
+ 5 | [CSIT-1977](https://jira.fd.io/browse/CSIT-1977) | E810: Unsent packets at moderate load can fail soak.
+ 6 | [CSIT-1978](https://jira.fd.io/browse/CSIT-1978) | 3na-spr, 3nb-spr: Vhost tests cannot access testpmd.
+ 7 | [CSIT-1979](https://jira.fd.io/browse/CSIT-1979) | 3na-spr: Flow related ipsec tests fail on CX7.
+
+## Previous
+
+Issues reported in previous releases which still affect the current results.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ 1 | [CSIT-1785](https://jira.fd.io/browse/CSIT-1785) | NAT44ED tests failing to establish all TCP sessions. At least for max scale, in allotted time (limited by session 500s timeout) due to worse slow path performance than previously measured and calibrated for. CSIT removed the max scale NAT tests to avoid this issue.
+ 2 | [CSIT-1795](https://jira.fd.io/browse/CSIT-1795) | Ocassionally not all DET44 sessions have been established: 4128767 != 4128768.
+ 3 | [CSIT-1802](https://jira.fd.io/browse/CSIT-1802) | All testbeds: AF-XDP - NDR tests failing from time to time on small loss.
+ 4 | [CSIT-1845](https://jira.fd.io/browse/CSIT-1845) | AVF 9000B any ndrpdr test may start failing due to packets not arriving in one or both directions.
+ 5 | [CSIT-1884](https://jira.fd.io/browse/CSIT-1884) | 2n-icx, 2n-spr: All NAT44DET IMIX large scale BIDIR tests fail to create enough sessions.
+ 6 | [CSIT-1886](https://jira.fd.io/browse/CSIT-1886) | 3n: Wireguard tests with 100 and more tunnels are failing PDR criteria.
+ 7 | [CSIT-1892](https://jira.fd.io/browse/CSIT-1892) | 3n-alt: Unexpected two-band structure of ipsec and vxlan.
+ 8 | [CSIT-1896](https://jira.fd.io/browse/CSIT-1896) | Depending on topology, l3fwd avoids dut-dut link.
+ 9 | [CSIT-1901](https://jira.fd.io/browse/CSIT-1901) | 2n-icx 3n-icx: Trex may report negative ipackets on high-performance AVF trial.
+ 10 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | 3n-alt: DPDK testpmd startup check fails on DUT2.
+ 11 | [CSIT-1906](https://jira.fd.io/browse/CSIT-1906) | Zero traffic with cx7 rdma. Testing migrated to mlx5-core on all Mellanox NICs.
+ 12 | [VPP-2077](https://jira.fd.io/browse/VPP-2077) | IP fragmentation: running_fragment_id is not thread safe. Causes reduced performance and failures in gtpu reassembly tests.
+ 13 | [CSIT-1914](https://jira.fd.io/browse/CSIT-1914) | TRex does not produce latency data on ICE NICs.
+ 14 | [CSIT-1915](https://jira.fd.io/browse/CSIT-1915) | The 2n-icx testbeds do not have the same performance.
+ 15 | [CSIT-1916](https://jira.fd.io/browse/CSIT-1916) | Poor CPU scaling on 2n-zn2 RDMA.
+ 16 | [CSIT-1917](https://jira.fd.io/browse/CSIT-1917) | TRex STL performance is unstable at high pps due to unsent packets.
+ 17 | [CSIT-1922](https://jira.fd.io/browse/CSIT-1922) | AF_XDP MRR regressions and PDR failures. Affects subsequent tests, that is why we are not testing AF-XDP now.
+ 18 | [CSIT-1929](https://jira.fd.io/browse/CSIT-1929) | Lossy trials in nat udp mlx5 tests.
+ 19 | [CSIT-1935](https://jira.fd.io/browse/CSIT-1935) | Zero traffic reported in udpquic tests due to session close errors.
+ 20 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in E8xx (dpdk) tests.
+ 21 | [CSIT-1938](https://jira.fd.io/browse/CSIT-1938) | 3n-alt: High scale ipsec policy tests may crash VPP.
+ 22 | [CSIT-1941](https://jira.fd.io/browse/CSIT-1941) | TRex may wrongly detect link bandwidth.
+ 23 | [CSIT-1942](https://jira.fd.io/browse/CSIT-1942) | 3nb-spr hoststack: Interface not up after first test.
+ 24 | [VPP-2090](https://jira.fd.io/browse/VPP-2090) | MRR < PDR: DPDK plugin with MLX5 driver does not read full queue.
+ 25 | [VPP-2091](https://jira.fd.io/browse/VPP-2091) | Memif crashes VPP in container with jumbo frames.
+ 26 | [CSIT-1946](https://jira.fd.io/browse/CSIT-1946) | Ipsec hwasync fails with large scale and multiple queues.
+ 27 | [CSIT-1947](https://jira.fd.io/browse/CSIT-1947) | Rare VPP crash in nat avf tests.
+ 28 | [CSIT-1948](https://jira.fd.io/browse/CSIT-1948) | NICs do not consistently distribute tunnels over RXQs depending on model or plugin.
+ 29 | [CSIT-1950](https://jira.fd.io/browse/CSIT-1950) | 9000B tests with encap overhead and non-dpdk plugins see fragmented packets.
+ 30 | [CSIT-1951](https://jira.fd.io/browse/CSIT-1951) | Combination of AVF and vhost drops all 9000B packets.
+ 31 | [CSIT-1953](https://jira.fd.io/browse/CSIT-1953) | 3n-icx 3nb-spr: Failed to enable GTPU offload RX.
+ 32 | [VPP-2118](https://jira.fd.io/browse/VPP-2118) | 3n spr: Unusable performance of ipsec tests with SHA_256_128.
+ 33 | [CSIT-1960](https://jira.fd.io/browse/CSIT-1960) | 2n-zn2: AVF xxv710 sometimes loses one direction of traffic, mostly with geneve.
+ 34 | [CSIT-1961](https://jira.fd.io/browse/CSIT-1961) | Some tests have too long ramp-up trials. Only for highest scale tests that shuld have been removed already.
+ 35 | [CSIT-1962](https://jira.fd.io/browse/CSIT-1962) | 3n-icx hoststack: Udpquicscale tests sometimes fail with various symptoms.
+ 36 | [CSIT-1963](https://jira.fd.io/browse/CSIT-1963) | 3n-icxd: Various symptoms pointing to hardware (cable/nic/driver) issues. Probably fixed on CSIT master already.
+ 37 | [CSIT-1964](https://jira.fd.io/browse/CSIT-1964) | 3nb-spr: Wireguardhw tests are likely to crash.
+ 38 | [VPP-2121](https://jira.fd.io/browse/VPP-2121) | sw_interface_add_del_address: avf process node failed to reply in 5 seconds. Fixed only for iavf plugin.
+
+## Fixed
+
+Issues reported in previous releases which were fixed in this release:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|-----------------------------------------------------------------------------------------------
+ 1 | [CSIT-1943](https://jira.fd.io/browse/CSIT-1943) | IMIX 4c tests may fail PDR due to ~10% loss. Fixed by DPDK upgrade.
+ 2 | [CSIT-1944](https://jira.fd.io/browse/CSIT-1944) | Memif LXC: unrecognized option '--no-validate'. Fixed in CSIT but also discontinued this test.
+ 3 | [CSIT-1966](https://jira.fd.io/browse/CSIT-1966) | 3n-snr: Increased heap size in ipsec policy tests prevents VPP from starting.
+ 4 | [CSIT-1967](https://jira.fd.io/browse/CSIT-1967) | 3na-spr: Unable to configure large MTU for 9000B tests.
+
+Not listing issues that became unreproducible, e.g. by CSIT decomissioning older testbeds.
+
+# Root Cause Analysis for Regressions
+
+List of RCAs in CSIT 24.10 for VPP performance regressions.
+Not listing differences caused by known issues (uneven worker load
+due to randomized RSS or other per-worker issues).
+Also not listing tests which historically show large performance variance.
+
+Contrary to issues, these genuine regressions do not limit usefulness
+of CSIT testing. So even if they are not fixed
+(e.g. when the regression is an expected consequence of added functionality),
+they will not be re-listed in the next release report.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------
+ 1 | [CSIT-1980](https://jira.fd.io/browse/CSIT-1980) | 2n-zn2: Regression in l2xcbase around 2024-10-10.
+ 2 | [CSIT-1981](https://jira.fd.io/browse/CSIT-1981) | Ip6scale regression around early july 2024.
diff --git a/docs/data/variables.yaml b/docs/data/variables.yaml
index b4f1a76365..1faab1df77 100644
--- a/docs/data/variables.yaml
+++ b/docs/data/variables.yaml
@@ -1,3 +1,3 @@
-release_csit: "CSIT 24.10"
-release_vpp: "VPP 24.10"
+release_csit: "CSIT 25.02"
+release_vpp: "VPP 25.02"
dashboard_url: "https://csit.fd.io/" \ No newline at end of file
diff --git a/docs/static/csit_design_picture.svg b/docs/static/csit_design_picture.svg
index 228e7fdf8d..f428381c91 100644
--- a/docs/static/csit_design_picture.svg
+++ b/docs/static/csit_design_picture.svg
@@ -1,707 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-
-<svg version="1.2" baseProfile="tiny" width="254mm" height="190.5mm" viewBox="0 0 25400 19050" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="25400" height="19050"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1535" descent="503"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="…" horiz-adv-x="1271" d="M 316,107 C 316,90 313,75 306,60 299,45 290,32 279,21 267,10 254,1 239,-6 224,-13 208,-16 191,-16 174,-16 159,-13 144,-6 129,1 117,10 106,21 95,32 86,45 79,60 72,75 69,90 69,107 69,124 72,141 79,156 86,171 95,184 106,195 117,206 129,215 144,222 159,229 174,232 191,232 208,232 224,229 239,222 254,215 267,206 279,195 290,184 299,171 306,156 313,141 316,124 316,107 Z M 822,107 C 822,90 819,75 812,60 805,45 796,32 785,21 773,10 760,1 745,-6 730,-13 714,-16 697,-16 680,-16 665,-13 650,-6 635,1 623,10 612,21 601,32 592,45 585,60 578,75 575,90 575,107 575,124 578,141 585,156 592,171 601,184 612,195 623,206 635,215 650,222 665,229 680,232 697,232 714,232 730,229 745,222 760,215 773,206 785,195 796,184 805,171 812,156 819,141 822,124 822,107 Z M 1343,107 C 1343,90 1340,75 1333,60 1326,45 1317,32 1306,21 1294,10 1281,1 1266,-6 1251,-13 1235,-16 1218,-16 1201,-16 1186,-13 1171,-6 1156,1 1144,10 1133,21 1122,32 1113,45 1106,60 1099,75 1096,90 1096,107 1096,124 1099,141 1106,156 1113,171 1122,184 1133,195 1144,206 1156,215 1171,222 1186,229 1201,232 1218,232 1235,232 1251,229 1266,222 1281,215 1294,206 1306,195 1317,184 1326,171 1333,156 1340,141 1343,124 1343,107 Z"/>
- <glyph unicode="y" horiz-adv-x="927" d="M 409,-288 C 404,-301 397,-312 388,-319 379,-326 365,-330 348,-330 L 217,-330 385,58 11,978 163,978 C 178,978 190,974 198,967 206,960 212,951 216,942 L 444,330 C 449,316 455,302 460,288 465,274 469,260 472,246 476,261 481,275 486,290 491,304 496,318 501,332 L 722,942 C 726,952 733,961 742,968 751,975 762,978 773,978 L 913,978 409,-288 Z"/>
- <glyph unicode="x" horiz-adv-x="874" d="M 327,502 L 36,978 204,978 C 217,978 227,976 234,971 240,966 246,960 251,952 L 455,597 C 458,604 461,612 464,619 467,626 471,633 476,640 L 647,948 C 653,957 659,965 666,970 673,975 681,978 690,978 L 851,978 559,511 864,0 695,0 C 682,0 671,4 663,12 654,19 647,27 642,36 L 435,406 C 430,391 424,378 417,367 L 230,36 C 225,27 218,18 211,11 203,4 193,0 180,0 L 23,0 327,502 Z"/>
- <glyph unicode="w" horiz-adv-x="1456" d="M 21,978 L 160,978 C 173,978 185,974 194,967 203,960 209,951 212,941 L 387,317 C 394,294 399,272 404,251 409,229 413,207 416,186 421,207 427,229 434,251 441,272 448,295 455,318 L 649,946 C 652,956 658,964 667,971 676,977 686,980 698,980 L 774,980 C 787,980 798,977 807,971 815,964 821,956 824,946 L 1014,318 C 1021,295 1028,273 1034,251 1040,229 1046,207 1051,186 1058,229 1069,273 1082,318 L 1261,942 C 1264,953 1270,961 1279,968 1288,975 1298,978 1311,978 L 1443,978 1136,0 996,0 C 979,0 968,11 961,33 L 756,692 C 751,707 746,723 743,738 739,753 735,768 732,783 729,768 725,752 722,737 719,722 714,706 709,691 L 501,33 C 494,11 481,0 462,0 L 329,0 21,978 Z"/>
- <glyph unicode="v" horiz-adv-x="927" d="M 542,0 L 383,0 19,978 164,978 C 177,978 189,974 198,967 207,960 214,951 217,942 L 426,316 C 435,293 442,270 448,248 454,226 460,204 465,181 470,203 475,225 482,248 488,270 496,293 505,316 L 717,942 C 721,952 728,961 737,968 746,975 756,978 767,978 L 906,978 542,0 Z"/>
- <glyph unicode="u" horiz-adv-x="822" d="M 301,978 L 301,355 C 301,282 318,225 351,185 384,144 434,124 501,124 551,124 598,136 641,160 684,183 723,216 760,257 L 760,978 936,978 936,0 830,0 C 818,0 808,3 800,9 792,14 787,23 786,36 L 770,140 C 728,93 681,56 630,28 578,-1 518,-15 450,-15 397,-15 350,-6 310,12 269,29 235,54 208,87 181,119 160,158 146,204 132,249 125,300 125,355 L 125,978 301,978 Z"/>
- <glyph unicode="t" horiz-adv-x="610" d="M 417,-15 C 342,-15 284,7 243,50 202,93 182,155 182,236 L 182,832 70,832 C 60,832 52,835 45,842 38,849 34,858 34,871 L 34,941 188,961 229,1262 C 230,1272 235,1280 242,1286 249,1292 257,1295 268,1295 L 358,1295 358,960 627,960 627,832 358,832 358,248 C 358,208 367,178 386,158 404,138 428,128 457,128 474,128 489,130 502,135 514,140 524,145 533,151 542,157 549,162 556,167 562,172 568,174 573,174 579,174 584,173 588,170 591,167 595,163 598,157 L 650,73 C 620,45 585,23 544,8 503,-7 461,-15 417,-15 Z"/>
- <glyph unicode="s" horiz-adv-x="663" d="M 679,816 C 671,801 659,794 643,794 633,794 622,798 611,805 599,812 585,820 569,829 552,837 533,845 511,852 488,859 462,863 431,863 405,863 382,859 361,852 340,845 323,835 308,822 293,809 282,795 274,778 266,761 262,742 262,723 262,698 269,677 282,660 295,643 313,629 335,617 357,605 382,594 411,585 439,575 468,565 497,555 526,545 555,533 584,520 612,507 637,490 659,471 681,452 699,428 712,401 725,373 732,339 732,300 732,255 724,213 709,175 694,136 671,103 642,75 612,47 575,25 532,9 488,-7 438,-15 381,-15 316,-15 258,-4 205,18 152,40 107,69 70,104 L 111,170 C 116,179 123,185 130,190 137,195 147,197 158,197 170,197 182,193 194,184 206,175 221,165 238,154 255,143 275,133 299,124 323,115 353,110 389,110 420,110 446,114 469,123 491,132 509,143 524,158 539,172 550,189 557,208 564,227 568,248 568,269 568,296 561,318 548,336 534,353 516,368 494,381 472,393 447,404 419,413 390,422 361,432 332,443 302,453 273,465 245,478 216,491 191,507 169,528 147,548 129,573 116,602 102,631 95,667 95,709 95,747 102,783 117,818 132,852 153,882 181,908 209,934 244,955 285,970 326,985 374,993 427,993 488,993 543,983 592,963 641,943 683,915 718,879 L 679,816 Z"/>
- <glyph unicode="r" horiz-adv-x="557" d="M 131,0 L 131,978 232,978 C 251,978 264,974 272,967 279,960 284,947 285,930 L 297,786 C 327,851 364,902 408,939 452,976 505,995 567,995 588,995 607,993 625,989 643,984 659,977 674,967 L 660,837 C 658,820 649,812 632,812 623,812 610,814 593,818 576,821 557,823 536,823 506,823 480,819 457,810 434,801 413,787 395,770 376,752 360,730 346,705 332,680 319,651 307,618 L 307,0 131,0 Z"/>
- <glyph unicode="p" horiz-adv-x="848" d="M 141,-330 L 141,978 246,978 C 259,978 269,975 277,970 285,964 290,955 291,942 L 308,828 C 349,878 397,918 450,949 503,980 565,995 634,995 690,995 741,984 786,963 831,941 870,909 902,867 934,825 959,773 976,711 993,649 1002,577 1002,496 1002,424 992,357 973,295 954,232 926,178 890,133 853,87 809,51 757,25 705,-1 646,-14 581,-14 522,-14 471,-4 429,16 387,36 350,64 317,100 L 317,-330 141,-330 Z M 576,854 C 521,854 473,841 432,816 390,791 352,755 317,708 L 317,236 C 348,194 382,165 419,148 456,131 497,122 542,122 631,122 700,154 749,219 797,284 821,376 821,496 821,559 816,614 805,659 794,704 778,742 757,771 736,800 710,821 680,834 649,847 615,854 576,854 Z"/>
- <glyph unicode="o" horiz-adv-x="927" d="M 541,993 C 612,993 677,981 734,958 791,934 840,900 880,857 920,813 951,760 973,698 994,636 1005,567 1005,490 1005,413 994,343 973,281 951,219 920,166 880,123 840,79 791,45 734,22 677,-2 612,-14 541,-14 470,-14 405,-2 348,22 290,45 241,79 201,123 160,166 129,219 108,281 86,343 75,413 75,490 75,567 86,636 108,698 129,760 160,813 201,857 241,900 290,934 348,958 405,981 470,993 541,993 Z M 541,123 C 588,123 630,131 665,148 700,164 730,188 754,219 777,250 795,289 807,334 818,379 824,431 824,489 824,547 818,599 807,644 795,689 777,728 754,759 730,790 700,814 665,831 630,848 588,856 541,856 493,856 451,848 416,831 380,814 350,790 327,759 303,728 285,689 274,644 262,599 256,547 256,489 256,431 262,379 274,334 285,289 303,250 327,219 350,188 380,164 416,148 451,131 493,123 541,123 Z"/>
- <glyph unicode="n" horiz-adv-x="822" d="M 140,0 L 140,978 245,978 C 258,978 268,975 276,970 284,964 289,955 290,942 L 305,838 C 347,885 394,922 446,951 498,979 558,993 626,993 679,993 726,984 767,967 807,949 841,924 868,892 895,859 916,820 930,775 944,729 951,678 951,623 L 951,0 775,0 775,623 C 775,696 759,752 726,793 693,834 642,854 575,854 525,854 478,842 435,819 392,795 352,762 316,720 L 316,0 140,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1350" d="M 147,0 L 147,978 251,978 C 264,978 275,975 283,970 290,964 295,955 296,942 L 311,842 C 330,864 349,884 370,903 390,921 412,937 435,951 458,964 483,975 510,982 537,989 565,993 595,993 662,993 717,975 760,938 802,901 832,852 850,790 864,826 883,857 906,882 929,907 954,928 982,945 1010,962 1040,974 1072,982 1104,989 1137,993 1170,993 1277,993 1359,961 1418,897 1476,833 1505,742 1505,623 L 1505,0 1329,0 1329,623 C 1329,699 1312,757 1277,796 1242,835 1193,854 1128,854 1099,854 1071,849 1045,840 1019,830 996,815 977,796 957,776 941,752 930,723 918,694 912,661 912,623 L 912,0 736,0 736,623 C 736,701 720,759 688,797 655,835 608,854 545,854 502,854 462,843 425,821 388,798 354,767 323,728 L 323,0 147,0 Z"/>
- <glyph unicode="l" horiz-adv-x="186" d="M 323,1422 L 323,0 147,0 147,1422 323,1422 Z"/>
- <glyph unicode="k" horiz-adv-x="795" d="M 304,1422 L 304,586 344,586 C 357,586 367,588 375,591 382,594 390,602 399,613 L 659,944 C 668,955 678,963 688,969 698,975 711,978 726,978 L 886,978 579,593 C 570,583 560,574 551,566 542,557 532,550 521,543 532,536 543,527 552,517 561,506 570,495 579,484 L 906,0 748,0 C 734,0 722,3 711,8 700,13 691,21 682,33 L 415,434 C 406,447 397,456 389,461 380,465 367,467 349,467 L 304,467 304,0 128,0 128,1422 304,1422 Z"/>
- <glyph unicode="i" horiz-adv-x="239" d="M 323,978 L 323,0 147,0 147,978 323,978 Z M 357,1284 C 357,1267 354,1252 347,1237 340,1222 331,1209 320,1198 308,1187 295,1178 280,1171 265,1164 249,1161 232,1161 215,1161 200,1164 185,1171 170,1178 158,1187 147,1198 136,1209 127,1222 120,1237 113,1252 110,1267 110,1284 110,1301 113,1318 120,1333 127,1348 136,1361 147,1372 158,1383 170,1392 185,1399 200,1406 215,1409 232,1409 249,1409 265,1406 280,1399 295,1392 308,1383 320,1372 331,1361 340,1348 347,1333 354,1318 357,1301 357,1284 Z"/>
- <glyph unicode="h" horiz-adv-x="822" d="M 143,0 L 143,1422 319,1422 319,849 C 360,893 405,928 455,954 504,980 562,993 627,993 680,993 727,984 768,967 808,949 842,924 869,892 896,859 917,820 931,775 944,729 951,678 951,623 L 951,0 775,0 775,623 C 775,696 759,752 726,793 693,834 643,854 576,854 526,854 480,842 437,818 394,794 355,761 319,719 L 319,0 143,0 Z"/>
- <glyph unicode="g" horiz-adv-x="874" d="M 462,994 C 503,994 541,989 576,980 611,971 643,957 672,940 L 928,940 928,875 C 928,852 915,838 888,834 L 784,819 C 805,776 815,730 815,679 815,631 806,588 789,549 771,510 746,477 715,450 684,423 647,402 604,387 561,372 513,364 462,364 419,364 380,369 344,379 325,366 310,353 301,338 292,324 287,309 287,295 287,271 296,254 314,242 332,231 356,222 385,217 414,212 448,209 485,209 522,209 561,208 600,204 639,201 677,197 714,190 751,183 785,172 814,155 843,139 867,117 885,88 903,60 912,23 912,-23 912,-65 902,-106 882,-145 862,-185 833,-220 796,-251 758,-281 712,-306 658,-324 603,-343 542,-352 473,-352 404,-352 344,-345 293,-331 242,-317 199,-298 165,-274 131,-250 106,-222 89,-191 72,-160 64,-127 64,-93 64,-45 78,-4 107,29 135,62 174,89 224,108 197,121 175,138 159,160 143,182 135,211 135,248 135,276 145,306 165,337 185,368 215,394 255,415 209,442 173,478 147,523 120,568 107,620 107,679 107,727 116,770 134,809 151,848 176,881 207,909 238,936 276,957 319,972 362,987 410,994 462,994 Z M 750,-50 C 750,-26 744,-7 732,8 719,23 702,35 681,43 660,52 635,58 607,61 579,65 549,67 518,67 487,67 455,67 423,67 390,67 359,71 329,79 296,62 270,41 249,17 228,-8 218,-37 218,-71 218,-93 223,-113 233,-132 243,-151 259,-167 280,-181 301,-194 327,-205 360,-213 393,-221 431,-225 476,-225 520,-225 559,-221 593,-212 627,-203 656,-191 679,-176 702,-160 720,-142 732,-121 744,-99 750,-76 750,-50 Z M 462,480 C 527,480 576,498 609,534 642,570 658,617 658,675 658,734 642,782 609,817 576,852 527,869 462,869 399,869 351,852 318,817 285,782 268,734 268,675 268,646 272,620 281,597 289,573 301,552 318,535 334,518 354,504 379,495 403,485 431,480 462,480 Z"/>
- <glyph unicode="f" horiz-adv-x="584" d="M 170,0 L 170,831 71,844 C 57,845 46,850 37,857 28,864 24,875 24,888 L 24,960 170,960 170,1053 C 170,1109 178,1159 193,1203 208,1246 229,1283 257,1313 285,1342 319,1365 359,1381 399,1396 444,1404 494,1404 515,1404 535,1402 555,1399 574,1396 593,1391 611,1385 L 606,1297 C 605,1282 597,1273 582,1272 567,1270 548,1269 523,1269 495,1269 470,1265 448,1258 425,1251 406,1238 390,1221 374,1204 362,1181 353,1153 344,1124 340,1089 340,1048 L 340,960 603,960 603,832 346,832 346,0 170,0 Z"/>
- <glyph unicode="e" horiz-adv-x="875" d="M 535,993 C 594,993 648,983 698,964 748,945 791,916 828,879 865,842 893,796 914,742 935,688 945,626 945,556 945,529 942,511 936,502 930,493 919,488 903,488 L 249,488 C 250,427 259,373 274,328 289,282 311,244 338,214 365,184 397,162 434,147 471,132 513,124 559,124 602,124 639,129 670,139 701,148 728,159 751,171 773,183 792,194 807,204 822,213 836,218 847,218 854,218 861,217 866,214 871,211 876,206 880,201 L 930,137 C 908,111 882,89 853,70 823,51 791,35 757,23 723,10 688,1 652,-5 615,-11 579,-14 544,-14 476,-14 413,-3 356,20 299,43 249,76 208,121 166,165 133,220 110,285 87,350 75,424 75,509 75,577 86,641 107,700 128,759 158,810 198,854 237,897 286,931 343,956 400,981 464,993 535,993 Z M 538,865 C 456,865 391,841 344,793 296,745 266,679 254,596 L 787,596 C 787,635 781,672 770,705 759,738 742,766 721,790 700,813 674,832 643,845 612,858 577,865 538,865 Z"/>
- <glyph unicode="d" horiz-adv-x="848" d="M 827,0 C 814,0 804,3 796,9 788,14 783,23 782,36 L 764,153 C 723,103 676,63 623,32 570,1 509,-14 440,-14 385,-14 335,-3 290,19 245,40 206,72 174,114 142,156 117,208 100,271 83,333 74,405 74,486 74,558 84,625 103,688 122,750 149,804 185,849 221,894 265,930 317,956 368,982 427,995 492,995 551,995 602,985 644,966 686,946 723,918 756,881 L 756,1422 932,1422 932,0 827,0 Z M 497,127 C 552,127 601,140 642,166 683,191 721,227 756,273 L 756,746 C 725,788 691,818 654,835 617,852 577,860 532,860 443,860 375,828 327,763 279,698 255,606 255,486 255,423 261,368 272,323 283,278 298,241 319,212 340,183 365,161 395,148 425,134 459,127 497,127 Z"/>
- <glyph unicode="c" horiz-adv-x="769" d="M 769,802 C 764,795 759,789 754,786 749,782 741,780 732,780 722,780 712,784 701,792 690,800 677,809 661,819 645,828 626,837 603,845 580,853 551,857 518,857 474,857 435,849 402,832 368,815 340,790 318,759 295,727 278,688 267,643 255,598 249,547 249,490 249,431 255,379 268,334 280,288 297,249 320,218 343,187 370,163 402,147 434,130 470,122 510,122 549,122 580,127 605,137 630,147 650,158 667,170 684,182 698,193 709,203 720,213 731,218 743,218 756,218 767,212 775,201 L 826,137 C 805,111 781,89 755,70 729,51 701,35 671,23 641,10 610,1 578,-5 545,-11 512,-14 479,-14 422,-14 368,-3 318,20 268,43 225,76 188,119 151,162 122,214 101,277 80,339 69,410 69,490 69,563 79,630 98,692 117,753 146,806 183,851 220,896 265,931 320,956 374,981 436,993 507,993 574,993 632,982 682,960 732,937 776,906 815,866 L 769,802 Z"/>
- <glyph unicode="b" horiz-adv-x="848" d="M 144,0 L 144,1422 320,1422 320,839 C 360,886 406,924 457,952 508,979 567,993 634,993 691,993 742,982 787,960 832,938 871,906 903,865 935,824 960,774 977,715 994,656 1002,589 1002,514 1002,435 992,363 973,298 954,233 926,178 890,132 854,85 810,49 759,24 708,-1 650,-14 586,-14 522,-14 469,-2 426,23 383,47 344,81 311,124 L 301,37 C 298,12 284,0 258,0 L 144,0 Z M 575,854 C 521,854 474,841 433,816 392,791 354,755 320,708 L 320,236 C 351,194 384,165 421,148 458,131 498,122 542,122 632,122 701,154 749,219 797,284 821,380 821,508 821,627 800,714 757,770 714,826 654,854 575,854 Z"/>
- <glyph unicode="a" horiz-adv-x="769" d="M 777,0 C 760,0 746,3 737,8 728,13 721,24 718,41 L 696,132 C 671,109 646,88 622,70 597,51 572,36 545,23 518,10 490,1 459,-6 428,-12 395,-15 358,-15 320,-15 285,-10 252,1 219,11 190,27 165,49 140,70 120,98 106,130 91,162 84,201 84,245 84,284 95,321 116,357 137,393 171,425 218,453 265,481 327,504 403,521 479,539 572,548 683,548 L 683,624 C 683,700 667,758 635,796 602,835 555,854 493,854 452,854 417,849 389,838 360,827 336,816 315,803 294,790 277,779 262,768 247,757 231,752 216,752 204,752 194,755 185,761 176,767 169,775 164,784 L 132,840 C 186,892 244,931 307,957 369,982 438,995 514,995 569,995 617,986 660,969 703,951 738,926 767,893 796,860 818,821 833,776 848,731 855,680 855,625 L 855,0 777,0 Z M 411,108 C 440,108 467,111 492,117 517,123 540,132 562,143 584,154 605,167 625,184 644,200 664,218 683,238 L 683,437 C 605,437 539,432 484,422 429,413 385,400 351,384 316,368 291,349 276,327 261,305 253,281 253,254 253,228 257,206 266,188 274,170 285,154 299,143 313,131 330,122 349,117 368,111 389,108 411,108 Z"/>
- <glyph unicode="_" horiz-adv-x="1006" d="M 1020,-158 L 1020,-275 0,-275 0,-158 1020,-158 Z"/>
- <glyph unicode="V" horiz-adv-x="1165" d="M 6,1314 L 153,1314 C 169,1314 182,1310 192,1302 202,1294 209,1284 214,1272 L 539,351 C 547,330 555,308 563,284 570,259 577,234 583,207 588,234 595,259 602,284 609,308 616,330 624,351 L 948,1271 C 952,1282 959,1292 970,1301 981,1310 994,1314 1009,1314 L 1156,1314 663,0 499,0 6,1314 Z"/>
- <glyph unicode="U" horiz-adv-x="1033" d="M 657,144 C 710,144 757,153 799,172 840,190 875,216 904,249 933,282 955,321 970,366 985,411 992,461 992,516 L 992,1314 1174,1314 1174,516 C 1174,440 1162,370 1138,305 1114,240 1080,184 1036,137 991,90 937,53 873,26 809,-1 737,-15 657,-15 577,-15 505,-1 442,26 378,53 324,90 279,137 234,184 200,240 176,305 152,370 140,440 140,516 L 140,1314 322,1314 322,517 C 322,462 330,412 345,367 360,321 381,282 410,249 439,216 474,190 516,172 557,153 604,144 657,144 Z"/>
- <glyph unicode="T" horiz-adv-x="954" d="M 974,1314 L 974,1162 591,1162 591,0 408,0 408,1162 24,1162 24,1314 974,1314 Z"/>
- <glyph unicode="S" horiz-adv-x="821" d="M 797,1107 C 787,1088 773,1079 756,1079 746,1079 734,1084 721,1095 707,1105 690,1116 671,1129 651,1141 627,1152 600,1163 572,1173 539,1178 500,1178 463,1178 431,1173 404,1163 376,1152 353,1138 335,1120 316,1101 302,1080 293,1056 284,1031 279,1005 279,977 279,940 288,910 305,886 322,862 344,842 372,825 399,808 431,793 466,780 501,767 537,754 574,741 611,728 647,713 682,696 717,679 749,657 777,632 804,606 827,574 844,537 861,500 869,454 869,400 869,342 860,288 841,238 822,187 795,143 760,106 724,69 680,39 628,18 576,-3 517,-14 450,-14 369,-14 295,2 228,33 160,64 102,105 55,158 L 108,244 C 113,251 119,257 126,262 133,266 141,268 150,268 163,268 177,261 193,248 208,234 228,219 251,203 274,186 303,171 336,158 369,144 408,137 454,137 493,137 527,143 557,154 587,165 613,181 634,202 655,223 671,248 682,277 693,306 698,338 698,373 698,412 690,445 673,470 656,495 633,517 606,534 578,551 546,565 511,577 476,588 440,600 403,613 366,626 330,640 295,657 260,673 228,694 201,721 173,748 151,781 134,820 117,859 108,908 108,967 108,1013 117,1058 134,1102 151,1145 177,1184 210,1218 243,1251 283,1278 332,1299 380,1319 435,1329 498,1329 568,1329 632,1317 691,1294 749,1271 799,1237 842,1192 L 797,1107 Z"/>
- <glyph unicode="R" horiz-adv-x="953" d="M 329,546 L 329,0 147,0 147,1314 507,1314 C 587,1314 656,1306 715,1289 773,1272 821,1247 859,1216 896,1184 924,1146 942,1101 960,1056 969,1005 969,949 969,903 962,860 949,820 935,780 915,744 890,712 864,680 832,653 795,630 758,607 715,589 668,577 679,570 690,562 700,553 710,544 720,533 729,520 L 1082,0 920,0 C 889,0 864,12 847,37 L 536,505 C 526,520 515,530 504,537 492,543 474,546 451,546 L 329,546 Z M 329,679 L 500,679 C 548,679 590,685 627,698 663,710 693,727 718,750 743,773 761,800 774,832 786,863 792,898 792,936 792,1093 697,1171 507,1171 L 329,1171 329,679 Z"/>
- <glyph unicode="P" horiz-adv-x="847" d="M 329,490 L 329,0 147,0 147,1314 524,1314 C 604,1314 674,1304 733,1285 792,1266 840,1238 879,1203 918,1168 947,1125 966,1075 985,1024 994,968 994,906 994,845 984,789 964,738 943,687 913,644 874,607 834,570 785,541 727,521 668,500 601,490 524,490 L 329,490 Z M 329,634 L 524,634 C 571,634 612,641 648,654 684,667 714,686 739,710 763,734 781,763 794,796 806,829 812,866 812,906 812,990 788,1055 741,1102 694,1148 621,1171 524,1171 L 329,1171 329,634 Z"/>
- <glyph unicode="O" horiz-adv-x="1218" d="M 1284,657 C 1284,558 1270,468 1241,386 1212,304 1171,233 1118,174 1065,115 1001,69 927,36 852,3 770,-14 679,-14 589,-14 507,3 432,36 357,69 293,115 240,174 187,233 145,304 116,386 87,468 72,558 72,657 72,755 87,845 116,928 145,1010 187,1081 240,1141 293,1200 357,1247 432,1280 507,1313 589,1329 679,1329 770,1329 852,1313 927,1280 1001,1247 1065,1200 1118,1141 1171,1081 1212,1010 1241,928 1270,845 1284,755 1284,657 Z M 1098,657 C 1098,737 1088,809 1069,873 1049,936 1021,990 985,1035 948,1079 904,1113 853,1137 801,1160 743,1172 679,1172 615,1172 557,1160 506,1137 454,1113 410,1079 373,1035 336,990 308,936 289,873 269,809 259,737 259,657 259,577 269,505 289,442 308,378 336,324 373,280 410,235 454,201 506,178 557,155 615,143 679,143 743,143 801,155 853,178 904,201 948,235 985,280 1021,324 1049,378 1069,442 1088,505 1098,577 1098,657 Z"/>
- <glyph unicode="M" horiz-adv-x="1403" d="M 835,479 C 844,464 852,448 859,432 866,416 872,400 879,383 886,400 893,417 900,433 907,449 914,464 922,479 L 1386,1284 C 1394,1298 1403,1307 1412,1310 1421,1313 1434,1314 1450,1314 L 1584,1314 1584,0 1423,0 1423,959 C 1423,972 1424,987 1425,1004 1426,1020 1427,1036 1428,1053 L 959,229 C 944,202 922,188 893,188 L 867,188 C 838,188 816,202 801,229 L 321,1052 C 325,1019 327,988 327,959 L 327,0 167,0 167,1314 301,1314 C 317,1314 330,1313 339,1310 348,1307 356,1298 365,1283 L 835,479 Z"/>
- <glyph unicode="L" horiz-adv-x="689" d="M 320,153 L 827,153 827,0 138,0 138,1314 320,1314 320,153 Z"/>
- <glyph unicode="K" horiz-adv-x="927" d="M 306,740 L 358,740 C 377,740 393,743 406,749 419,755 430,765 439,778 L 778,1272 C 790,1287 803,1298 816,1305 829,1311 845,1314 864,1314 L 1020,1314 620,750 C 599,721 576,701 553,689 584,678 611,657 636,624 L 1049,0 889,0 C 867,0 851,4 841,11 830,18 820,27 811,38 L 463,558 C 452,573 441,584 429,591 416,597 398,600 373,600 L 306,600 306,0 124,0 124,1314 306,1314 306,740 Z"/>
- <glyph unicode="J" horiz-adv-x="530" d="M 538,455 C 538,382 531,316 516,258 501,200 479,151 450,111 421,70 384,39 341,18 298,-3 248,-14 191,-14 165,-14 139,-12 114,-9 89,-5 62,1 34,10 35,29 37,47 39,65 40,83 42,101 44,118 45,128 49,136 56,143 62,150 71,153 84,153 93,153 104,151 118,146 131,141 149,138 172,138 232,138 278,163 309,212 340,261 356,341 356,451 L 356,1314 538,1314 538,455 Z"/>
- <glyph unicode="I" horiz-adv-x="186" d="M 349,0 L 167,0 167,1314 349,1314 349,0 Z"/>
- <glyph unicode="H" horiz-adv-x="980" d="M 1136,0 L 953,0 953,596 323,596 323,0 140,0 140,1314 323,1314 323,729 953,729 953,1314 1136,1314 1136,0 Z"/>
- <glyph unicode="G" horiz-adv-x="1113" d="M 1185,127 C 1121,80 1053,44 981,21 908,-2 830,-14 745,-14 643,-14 551,2 469,35 386,68 316,114 258,173 200,232 155,302 124,385 93,467 77,558 77,657 77,757 92,848 123,931 153,1013 196,1084 253,1143 309,1202 377,1247 457,1280 537,1313 627,1329 726,1329 777,1329 824,1325 867,1318 910,1310 949,1299 986,1285 1023,1270 1057,1253 1088,1232 1119,1211 1147,1188 1174,1163 L 1123,1081 C 1115,1068 1104,1059 1091,1056 1078,1053 1063,1056 1048,1065 1033,1074 1016,1084 998,1097 979,1109 957,1121 932,1132 907,1143 877,1152 842,1160 807,1168 766,1172 719,1172 650,1172 587,1160 531,1136 474,1112 426,1078 387,1033 347,988 316,934 295,871 274,807 263,736 263,657 263,575 274,502 297,437 319,372 351,317 393,272 434,227 484,192 543,169 602,145 667,133 740,133 796,133 846,140 890,153 934,166 977,184 1020,207 L 1020,495 831,495 C 819,495 809,498 802,505 795,512 791,520 791,530 L 791,633 1185,633 1185,127 Z"/>
- <glyph unicode="F" horiz-adv-x="742" d="M 882,1314 L 882,1166 321,1166 321,711 798,711 798,563 321,563 321,0 138,0 138,1314 882,1314 Z"/>
- <glyph unicode="D" horiz-adv-x="1060" d="M 1192,657 C 1192,558 1178,469 1149,388 1120,307 1079,238 1027,181 974,123 911,78 838,47 764,16 682,0 593,0 L 139,0 139,1314 593,1314 C 682,1314 764,1298 838,1267 911,1235 974,1190 1027,1133 1079,1076 1120,1007 1149,926 1178,845 1192,755 1192,657 Z M 1005,657 C 1005,737 995,809 976,872 957,935 929,988 893,1032 857,1076 814,1110 763,1133 712,1156 656,1167 593,1167 L 322,1167 322,147 593,147 C 656,147 712,159 763,182 814,205 857,238 893,282 929,325 957,379 976,442 995,505 1005,577 1005,657 Z"/>
- <glyph unicode="C" horiz-adv-x="980" d="M 954,274 C 963,274 972,270 980,262 L 1052,184 C 1005,121 946,73 877,38 808,3 725,-14 628,-14 543,-14 466,2 397,35 328,68 269,114 220,173 171,232 133,302 107,385 80,467 67,558 67,657 67,756 81,847 109,930 137,1012 176,1083 227,1142 278,1201 338,1247 409,1280 480,1313 558,1329 643,1329 728,1329 802,1314 867,1284 931,1254 987,1213 1035,1162 L 975,1078 C 971,1072 966,1067 960,1063 954,1059 946,1057 937,1057 926,1057 913,1063 900,1075 886,1087 868,1100 846,1115 824,1129 797,1142 764,1154 731,1166 691,1172 642,1172 585,1172 532,1160 485,1137 437,1114 396,1080 362,1036 327,991 301,937 282,874 263,810 253,738 253,657 253,576 263,503 283,439 303,375 330,321 365,277 400,233 441,199 488,176 535,153 585,141 639,141 672,141 702,143 729,148 755,153 779,160 802,170 824,179 845,192 865,207 884,222 904,239 923,260 934,269 944,274 954,274 Z"/>
- <glyph unicode="A" horiz-adv-x="1192" d="M 1178,0 L 1037,0 C 1021,0 1008,4 999,12 989,20 981,30 976,42 L 864,358 322,358 211,43 C 207,32 200,22 189,13 178,4 164,0 149,0 L 8,0 501,1314 686,1314 1178,0 Z M 368,488 L 818,488 632,1017 C 625,1033 619,1052 612,1073 605,1094 599,1117 593,1142 586,1117 580,1093 573,1072 566,1051 560,1032 554,1016 L 368,488 Z"/>
- <glyph unicode="&gt;" horiz-adv-x="742" d="M 927,613 L 181,225 181,350 C 181,372 192,389 215,401 L 644,619 C 669,632 698,642 731,649 698,657 668,667 643,680 L 216,898 C 203,905 194,912 189,920 184,928 181,937 181,948 L 181,1073 927,685 927,613 Z"/>
- <glyph unicode="&lt;" horiz-adv-x="742" d="M 93,685 L 840,1073 840,948 C 840,937 838,928 833,920 828,911 818,904 805,897 L 377,680 C 352,667 322,657 289,649 322,642 351,632 377,619 L 806,401 C 819,394 828,387 833,379 838,370 840,361 840,350 L 840,225 93,613 93,685 Z"/>
- <glyph unicode=":" horiz-adv-x="266" d="M 396,107 C 396,90 393,75 386,60 379,45 370,32 359,21 347,10 334,1 319,-6 304,-13 288,-16 271,-16 254,-16 239,-13 224,-6 209,1 197,10 186,21 175,32 166,45 159,60 152,75 149,90 149,107 149,124 152,141 159,156 166,171 175,184 186,195 197,206 209,215 224,222 239,229 254,232 271,232 288,232 304,229 319,222 334,215 347,206 359,195 370,184 379,171 386,156 393,141 396,124 396,107 Z M 390,785 C 390,768 387,753 380,738 373,723 364,710 353,699 341,688 328,679 313,672 298,665 282,662 265,662 248,662 233,665 218,672 203,679 191,688 180,699 169,710 160,723 153,738 146,753 143,768 143,785 143,802 146,819 153,834 160,849 169,862 180,873 191,884 203,893 218,900 233,907 248,910 265,910 282,910 298,907 313,900 328,893 341,884 353,873 364,862 373,849 380,834 387,819 390,802 390,785 Z"/>
- <glyph unicode="7" horiz-adv-x="874" d="M 972,1314 L 972,1240 C 972,1219 970,1201 965,1188 960,1174 956,1162 951,1153 L 426,59 C 418,43 407,29 392,18 377,6 358,0 335,0 L 213,0 747,1079 C 763,1110 781,1137 801,1160 L 139,1160 C 128,1160 118,1164 110,1172 102,1180 98,1189 98,1200 L 98,1314 972,1314 Z"/>
- <glyph unicode="4" horiz-adv-x="980" d="M 814,475 L 1004,475 1004,380 C 1004,370 1001,362 995,355 988,348 979,344 967,344 L 814,344 814,0 667,0 667,344 102,344 C 89,344 78,348 69,355 60,362 55,371 52,382 L 35,466 657,1315 814,1315 814,475 Z M 667,1011 C 667,1043 669,1078 673,1116 L 214,475 667,475 667,1011 Z"/>
- <glyph unicode="2" horiz-adv-x="848" d="M 539,1329 C 594,1329 646,1321 693,1304 740,1287 781,1263 816,1232 851,1201 878,1162 898,1117 917,1072 927,1020 927,962 927,913 920,868 906,827 891,785 872,745 848,707 823,669 795,632 763,596 731,559 697,523 662,486 L 325,135 C 350,142 376,148 402,152 427,156 452,158 475,158 L 892,158 C 910,158 924,153 935,143 946,132 951,118 951,101 L 951,0 92,0 92,57 C 92,68 94,81 99,94 104,107 112,118 123,129 L 530,549 C 565,584 596,618 624,651 651,684 675,717 694,750 713,783 728,816 739,850 750,884 755,920 755,958 755,996 749,1029 738,1058 726,1087 710,1111 690,1130 670,1149 646,1163 619,1172 592,1181 562,1186 530,1186 499,1186 470,1181 443,1172 416,1162 393,1149 372,1132 351,1115 334,1094 319,1071 304,1047 294,1021 287,993 282,970 273,956 260,949 247,942 228,940 205,943 L 118,957 C 126,1018 142,1071 167,1118 191,1164 221,1203 258,1234 295,1265 337,1289 385,1305 432,1321 484,1329 539,1329 Z"/>
- <glyph unicode="1" horiz-adv-x="769" d="M 255,128 L 528,128 528,1015 C 528,1041 529,1068 531,1096 L 308,900 C 292,887 277,882 262,887 247,891 236,897 230,906 L 177,979 560,1318 696,1318 696,128 946,128 946,0 255,0 255,128 Z"/>
- <glyph unicode="0" horiz-adv-x="927" d="M 985,657 C 985,542 973,443 949,359 925,274 892,205 850,150 808,95 759,54 702,27 645,0 583,-14 518,-14 453,-14 392,0 335,27 278,54 229,95 188,150 146,205 113,274 89,359 65,443 53,542 53,657 53,772 65,871 89,956 113,1040 146,1110 188,1165 229,1220 278,1262 335,1289 392,1316 453,1329 518,1329 583,1329 645,1316 702,1289 759,1262 808,1220 850,1165 892,1110 925,1040 949,956 973,871 985,772 985,657 Z M 811,657 C 811,757 803,841 787,909 771,976 750,1031 723,1072 696,1113 664,1143 629,1161 594,1179 557,1188 518,1188 479,1188 443,1179 408,1161 373,1143 342,1113 315,1072 288,1031 266,976 250,909 234,841 226,757 226,657 226,557 234,473 250,406 266,338 288,283 315,242 342,201 373,171 408,154 443,136 479,127 518,127 557,127 594,136 629,154 664,171 696,201 723,242 750,283 771,338 787,406 803,473 811,557 811,657 Z"/>
- <glyph unicode="/" horiz-adv-x="847" d="M 159,-20 C 150,-43 136,-59 118,-71 100,-81 81,-87 62,-87 L -12,-87 634,1358 C 651,1401 681,1422 726,1422 L 800,1422 159,-20 Z"/>
- <glyph unicode="." horiz-adv-x="239" d="M 381,107 C 381,90 378,75 371,60 364,45 355,32 344,21 332,10 319,1 304,-6 289,-13 273,-16 256,-16 239,-16 224,-13 209,-6 194,1 182,10 171,21 160,32 151,45 144,60 137,75 134,90 134,107 134,124 137,141 144,156 151,171 160,184 171,195 182,206 194,215 209,222 224,229 239,232 256,232 273,232 289,229 304,222 319,215 332,206 344,195 355,184 364,171 371,156 378,141 381,124 381,107 Z"/>
- <glyph unicode="-" horiz-adv-x="478" d="M 75,653 L 553,653 553,504 75,504 75,653 Z"/>
- <glyph unicode="," horiz-adv-x="239" d="M 140,120 C 140,135 143,149 149,162 154,175 162,187 172,197 182,207 194,215 209,221 223,227 239,230 256,230 276,230 294,226 309,219 324,212 336,202 346,190 356,177 364,163 369,146 374,129 376,110 376,91 376,62 372,32 364,1 355,-30 343,-61 328,-92 312,-123 293,-152 270,-182 247,-210 221,-237 192,-262 L 162,-234 C 153,-226 149,-217 149,-206 149,-198 154,-189 163,-180 169,-173 177,-164 187,-152 197,-140 207,-126 218,-111 228,-96 237,-79 246,-60 255,-41 261,-21 265,0 L 254,0 C 220,0 193,11 172,34 151,57 140,85 140,120 Z"/>
- <glyph unicode=")" horiz-adv-x="398" d="M 318,607 C 318,744 301,878 266,1008 231,1137 180,1261 113,1378 108,1388 105,1397 104,1404 103,1411 103,1418 105,1424 107,1430 110,1435 114,1439 118,1443 123,1447 128,1450 L 206,1498 C 254,1423 295,1350 329,1277 362,1204 390,1131 411,1058 432,985 447,911 457,836 466,761 471,685 471,607 471,529 466,453 457,378 447,303 432,229 411,156 390,83 362,10 329,-64 295,-136 254,-210 206,-284 L 128,-236 C 123,-233 118,-230 114,-226 110,-221 107,-216 105,-211 103,-205 103,-198 104,-191 105,-184 108,-175 113,-165 180,-48 231,76 266,206 301,335 318,469 318,607 Z"/>
- <glyph unicode="(" horiz-adv-x="398" d="M 303,607 C 303,469 321,335 356,206 391,76 441,-48 508,-165 519,-184 521,-199 516,-211 511,-221 503,-230 493,-236 L 415,-284 C 367,-210 326,-136 293,-64 259,10 232,83 211,156 190,229 174,303 165,378 155,453 150,529 150,607 150,685 155,761 165,836 174,911 190,985 211,1058 232,1131 259,1204 293,1277 326,1350 367,1423 415,1497 L 493,1450 C 503,1443 511,1435 516,1424 521,1413 519,1397 508,1378 441,1261 391,1137 356,1008 321,878 303,744 303,607 Z"/>
- <glyph unicode="&amp;" horiz-adv-x="1324" d="M 656,1399 C 709,1399 757,1391 800,1375 843,1358 880,1336 911,1309 942,1282 967,1250 986,1215 1004,1179 1014,1142 1016,1103 L 907,1081 C 896,1079 887,1080 878,1085 869,1090 863,1098 859,1111 854,1128 846,1145 836,1163 826,1181 813,1197 796,1212 779,1227 760,1239 737,1249 714,1258 687,1263 656,1263 623,1263 593,1258 566,1248 539,1237 517,1223 498,1205 479,1186 465,1165 455,1140 444,1115 439,1089 439,1060 439,1016 450,974 473,934 495,893 531,849 581,800 L 990,395 C 1016,439 1037,485 1052,532 1067,579 1077,627 1082,675 1084,702 1097,715 1122,715 L 1229,715 C 1228,640 1216,567 1193,496 1170,424 1136,357 1093,294 L 1391,0 1221,0 C 1202,0 1186,2 1175,7 1163,12 1150,21 1136,35 L 991,176 C 929,117 857,71 776,37 695,2 605,-15 508,-15 455,-15 404,-6 353,11 302,28 256,54 216,87 176,120 144,160 120,208 95,255 83,309 83,369 83,414 91,456 107,497 122,537 144,574 171,608 198,642 231,673 269,700 307,727 348,750 393,769 352,819 323,867 304,914 285,961 275,1009 275,1059 275,1106 284,1150 302,1191 319,1232 345,1269 378,1300 411,1331 451,1355 498,1373 545,1390 597,1399 656,1399 Z M 538,127 C 612,127 679,140 738,167 797,193 848,228 893,272 L 474,681 C 403,645 350,602 315,551 280,500 262,444 262,383 262,342 270,305 286,274 302,242 323,215 349,194 375,172 405,155 438,144 471,133 504,127 538,127 Z"/>
- <glyph unicode=" " horiz-adv-x="450"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="1059" d="M 604,1 C 579,-64 553,-123 527,-175 500,-227 471,-272 438,-309 405,-346 369,-374 329,-394 289,-413 243,-423 191,-423 168,-423 147,-423 128,-423 109,-423 88,-420 67,-414 L 67,-279 C 80,-282 94,-284 110,-284 126,-284 140,-284 151,-284 204,-284 253,-264 298,-225 343,-186 383,-123 417,-37 L 434,6 5,1082 197,1082 425,484 C 432,466 440,442 451,412 461,382 471,352 482,322 492,292 501,265 509,241 517,217 522,202 523,196 525,203 530,218 538,240 545,261 554,285 564,312 573,339 583,366 593,393 603,420 611,444 618,464 L 830,1082 1020,1082 604,1 Z"/>
- <glyph unicode="w" horiz-adv-x="1535" d="M 1174,0 L 965,0 792,698 C 787,716 781,738 776,765 770,792 764,818 759,843 752,872 746,903 740,934 734,904 728,874 721,845 716,820 710,793 704,766 697,739 691,715 686,694 L 508,0 300,0 -3,1082 175,1082 358,347 C 363,332 367,313 372,291 377,268 381,246 386,225 391,200 396,175 401,149 406,174 412,199 418,223 423,244 429,265 434,286 439,307 444,325 448,339 L 644,1082 837,1082 1026,339 C 1031,322 1036,302 1041,280 1046,258 1051,237 1056,218 1061,195 1067,172 1072,149 1077,174 1083,199 1088,223 1093,244 1098,265 1103,288 1108,310 1112,330 1117,347 L 1308,1082 1484,1082 1174,0 Z"/>
- <glyph unicode="u" horiz-adv-x="901" d="M 314,1082 L 314,396 C 314,343 318,299 326,264 333,229 346,200 363,179 380,157 403,142 432,133 460,124 495,119 537,119 580,119 618,127 653,142 687,157 716,178 741,207 765,235 784,270 797,312 810,353 817,401 817,455 L 817,1082 997,1082 997,231 C 997,208 997,185 998,160 998,135 998,111 999,89 1000,66 1000,47 1001,31 1002,15 1002,5 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 827,116 826,136 825,155 825,172 825,185 L 822,185 C 805,154 786,125 765,100 744,75 720,53 693,36 666,18 634,4 599,-6 564,-15 523,-20 476,-20 416,-20 364,-13 321,2 278,17 242,39 214,70 186,101 166,140 153,188 140,236 133,294 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 527,1 499,-5 471,-10 442,-14 409,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 467,127 484,128 501,131 517,134 535,137 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="927" d="M 950,299 C 950,248 940,203 921,164 901,124 872,91 835,64 798,37 752,16 698,2 643,-13 581,-20 511,-20 448,-20 392,-15 342,-6 291,4 247,20 209,41 171,62 139,91 114,126 88,161 69,203 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 550,117 585,120 618,125 650,130 678,140 701,153 724,166 743,183 756,205 769,226 775,253 775,285 775,318 767,345 752,366 737,387 715,404 688,418 661,432 628,444 589,455 550,465 507,476 460,489 417,500 374,513 331,527 288,541 250,560 216,583 181,606 153,634 132,668 111,702 100,745 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 763,842 752,866 736,885 720,904 701,919 678,931 655,942 630,951 602,956 573,961 544,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,785 282,761 297,742 311,723 331,707 357,694 382,681 413,669 449,660 485,650 525,640 568,629 597,622 626,614 656,606 686,597 715,587 744,576 772,564 799,550 824,535 849,519 870,500 889,478 908,456 923,430 934,401 945,372 950,338 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="556" d="M 142,0 L 142,830 C 142,853 142,876 142,900 141,923 141,946 140,968 139,990 139,1011 138,1030 137,1049 137,1067 136,1082 L 306,1082 C 307,1067 308,1049 309,1030 310,1010 311,990 312,969 313,948 313,929 314,910 314,891 314,874 314,861 L 318,861 C 331,902 344,938 359,969 373,999 390,1024 409,1044 428,1063 451,1078 478,1088 505,1097 537,1102 575,1102 590,1102 604,1101 617,1099 630,1096 641,1094 648,1092 L 648,927 C 636,930 622,933 606,935 590,936 572,937 552,937 511,937 476,928 447,909 418,890 394,865 376,832 357,799 344,759 335,714 326,668 322,618 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,464 1046,388 1033,319 1020,250 998,190 967,140 936,90 895,51 844,23 793,-6 730,-20 655,-20 578,-20 510,-5 452,24 394,53 350,101 319,168 L 314,168 C 315,167 315,161 316,150 316,139 316,126 317,110 317,94 317,76 318,57 318,37 318,17 318,-2 L 318,-425 138,-425 138,861 C 138,887 138,912 138,936 137,960 137,982 136,1002 135,1021 135,1038 134,1052 133,1066 133,1076 132,1082 L 306,1082 C 307,1080 308,1073 309,1061 310,1049 311,1035 312,1018 313,1001 314,982 315,963 316,944 316,925 316,908 L 320,908 C 337,943 356,972 377,997 398,1021 423,1041 450,1057 477,1072 508,1084 542,1091 575,1098 613,1101 655,1101 730,1101 793,1088 844,1061 895,1034 936,997 967,949 998,900 1020,842 1033,774 1046,705 1053,629 1053,546 Z M 864,542 C 864,609 860,668 852,720 844,772 830,816 811,852 791,888 765,915 732,934 699,953 658,962 609,962 569,962 531,956 496,945 461,934 430,912 404,880 377,848 356,804 341,748 326,691 318,618 318,528 318,451 324,387 337,334 350,281 368,238 393,205 417,172 447,149 483,135 519,120 560,113 607,113 657,113 699,123 732,142 765,161 791,189 811,226 830,263 844,308 852,361 860,414 864,474 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 490,-20 422,-9 363,14 304,37 254,71 213,118 172,165 140,223 119,294 97,364 86,447 86,542 86,915 248,1102 571,1102 655,1102 728,1090 789,1067 850,1044 900,1009 939,962 978,915 1006,857 1025,787 1044,717 1053,635 1053,542 Z M 864,542 C 864,626 858,695 845,750 832,805 813,848 788,881 763,914 732,937 696,950 660,963 619,969 574,969 528,969 487,962 450,949 413,935 381,912 355,879 329,846 309,802 296,747 282,692 275,624 275,542 275,458 282,389 297,334 312,279 332,235 358,202 383,169 414,146 449,133 484,120 522,113 563,113 609,113 651,120 688,133 725,146 757,168 783,201 809,234 829,278 843,333 857,388 864,458 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="900" d="M 825,0 L 825,686 C 825,739 821,783 814,818 806,853 793,882 776,904 759,925 736,941 708,950 679,959 644,963 602,963 559,963 521,956 487,941 452,926 423,904 399,876 374,847 355,812 342,771 329,729 322,681 322,627 L 322,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 334,928 353,957 374,982 395,1007 419,1029 446,1047 473,1064 505,1078 540,1088 575,1097 616,1102 663,1102 723,1102 775,1095 818,1080 861,1065 897,1043 925,1012 953,981 974,942 987,894 1000,845 1006,788 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1456" d="M 768,0 L 768,686 C 768,739 765,783 758,818 751,853 740,882 725,904 709,925 688,941 663,950 638,959 607,963 570,963 532,963 498,956 467,941 436,926 410,904 389,876 367,847 350,812 339,771 327,729 321,681 321,627 L 321,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 333,928 350,957 369,982 388,1007 410,1029 435,1047 460,1064 488,1078 521,1088 553,1097 590,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 946,928 964,957 984,982 1004,1007 1027,1029 1054,1047 1081,1064 1111,1078 1144,1088 1177,1097 1215,1102 1258,1102 1313,1102 1360,1095 1400,1080 1439,1065 1472,1043 1497,1012 1522,981 1541,942 1553,894 1565,845 1571,788 1571,721 L 1571,0 1393,0 1393,686 C 1393,739 1390,783 1383,818 1376,853 1365,882 1350,904 1334,925 1313,941 1288,950 1263,959 1232,963 1195,963 1157,963 1123,956 1092,942 1061,927 1035,906 1014,878 992,850 975,815 964,773 952,731 946,682 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="k" horiz-adv-x="927" d="M 816,0 L 450,494 318,385 318,0 138,0 138,1484 318,1484 318,557 793,1082 1004,1082 565,617 1027,0 816,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="h" horiz-adv-x="874" d="M 317,897 C 337,934 359,965 382,991 405,1016 431,1037 459,1054 487,1071 518,1083 551,1091 584,1098 622,1102 663,1102 732,1102 789,1093 834,1074 878,1055 913,1029 939,996 964,962 982,922 992,875 1001,828 1006,777 1006,721 L 1006,0 825,0 825,686 C 825,732 822,772 817,807 811,842 800,871 784,894 768,917 745,934 716,946 687,957 649,963 602,963 559,963 521,955 487,940 452,925 423,903 399,875 374,847 355,813 342,773 329,733 322,688 322,638 L 322,0 142,0 142,1484 322,1484 322,1098 C 322,1076 322,1054 321,1032 320,1010 320,990 319,971 318,952 317,937 316,924 315,911 315,902 314,897 L 317,897 Z"/>
- <glyph unicode="g" horiz-adv-x="954" d="M 548,-425 C 486,-425 431,-419 383,-406 335,-393 294,-375 260,-352 226,-328 198,-300 177,-267 156,-234 140,-198 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 594,-288 631,-282 664,-271 697,-260 726,-241 749,-217 772,-191 790,-159 803,-119 816,-79 822,-30 822,27 L 822,201 820,201 C 807,174 790,148 771,123 751,98 727,75 699,56 670,37 637,21 600,10 563,-2 520,-8 472,-8 403,-8 345,4 296,27 247,50 207,84 176,130 145,176 122,233 108,302 93,370 86,449 86,539 86,626 93,704 108,773 122,842 145,901 178,950 210,998 252,1035 304,1061 355,1086 418,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,914 825,932 826,953 827,974 828,993 829,1012 830,1030 831,1046 832,1059 833,1072 835,1080 836,1082 L 1007,1082 C 1006,1076 1006,1066 1005,1052 1004,1037 1004,1020 1003,1000 1002,980 1002,958 1002,934 1001,909 1001,884 1001,858 L 1001,31 C 1001,-120 964,-234 890,-311 815,-387 701,-425 548,-425 Z M 822,541 C 822,616 814,681 798,735 781,788 760,832 733,866 706,900 676,925 642,941 607,957 572,965 536,965 490,965 451,957 418,941 385,925 357,900 336,866 314,831 298,787 288,734 277,680 272,616 272,541 272,463 277,398 288,345 298,292 314,249 335,216 356,183 383,160 416,146 449,132 488,125 533,125 569,125 604,133 639,148 673,163 704,188 731,221 758,254 780,297 797,350 814,403 822,466 822,541 Z"/>
- <glyph unicode="f" horiz-adv-x="557" d="M 361,951 L 361,0 181,0 181,951 29,951 29,1082 181,1082 181,1204 C 181,1243 185,1280 192,1314 199,1347 213,1377 233,1402 252,1427 279,1446 313,1461 347,1475 391,1482 445,1482 466,1482 489,1481 512,1479 535,1477 555,1474 572,1470 L 572,1333 C 561,1335 548,1337 533,1339 518,1340 504,1341 492,1341 465,1341 444,1337 427,1330 410,1323 396,1312 387,1299 377,1285 370,1268 367,1248 363,1228 361,1205 361,1179 L 361,1082 572,1082 572,951 361,951 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,446 282,394 294,347 305,299 323,258 348,224 372,189 403,163 441,144 479,125 525,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 1008,206 992,176 972,146 951,115 924,88 890,64 856,39 814,19 763,4 712,-12 650,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,649 100,735 125,806 150,876 185,933 229,977 273,1021 324,1053 383,1073 442,1092 504,1102 571,1102 662,1102 738,1087 799,1058 860,1029 909,988 946,937 983,885 1009,824 1025,754 1040,684 1048,608 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 538,969 507,964 474,955 441,945 410,928 382,903 354,878 330,845 311,803 292,760 281,706 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="954" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 C 823,921 823,931 823,946 822,960 822,975 822,991 821,1006 821,1021 821,1035 821,1049 821,1059 821,1065 L 821,1484 1001,1484 1001,223 C 1001,197 1001,172 1002,148 1002,124 1002,102 1003,82 1004,62 1004,45 1005,31 1006,16 1006,6 1007,0 L 835,0 C 834,7 833,16 832,29 831,41 830,55 829,71 828,87 827,104 826,122 825,139 825,157 825,174 L 821,174 Z M 275,542 C 275,467 280,403 289,350 298,297 313,253 334,219 355,184 381,159 413,143 445,127 484,119 530,119 577,119 619,127 656,142 692,157 722,182 747,217 771,251 789,296 802,351 815,406 821,474 821,554 821,631 815,696 802,749 789,802 771,844 746,877 721,910 691,933 656,948 620,962 579,969 532,969 488,969 450,961 418,946 386,931 359,906 338,872 317,838 301,794 291,740 280,685 275,619 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="875" d="M 275,546 C 275,484 280,427 289,375 298,323 313,278 334,241 355,203 384,174 419,153 454,132 497,122 548,122 612,122 666,139 709,173 752,206 778,258 788,328 L 970,328 C 964,283 951,239 931,197 911,155 884,118 850,86 815,54 773,28 724,9 675,-10 618,-20 553,-20 468,-20 396,-6 337,23 278,52 230,91 193,142 156,192 129,251 112,320 95,388 87,462 87,542 87,615 93,679 105,735 117,790 134,839 156,881 177,922 203,957 232,986 261,1014 293,1037 328,1054 362,1071 398,1083 436,1091 474,1098 512,1102 551,1102 612,1102 666,1094 713,1077 760,1060 801,1038 836,1009 870,980 898,945 919,906 940,867 955,824 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 495,961 452,953 418,936 383,919 355,893 334,859 313,824 298,781 289,729 280,677 275,616 275,546 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,124 87,203 87,303 87,375 101,434 128,480 155,526 190,562 234,588 277,614 327,632 383,642 439,652 496,657 554,657 L 797,657 797,717 C 797,762 792,800 783,832 774,863 759,889 740,908 721,928 697,942 668,951 639,960 604,965 565,965 530,965 499,963 471,958 443,953 419,944 398,931 377,918 361,900 348,878 335,855 327,827 323,793 L 135,810 C 142,853 154,892 173,928 192,963 218,994 253,1020 287,1046 330,1066 382,1081 433,1095 496,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1090,111 1100,112 1110,113 1120,114 1130,116 1139,118 L 1139,6 C 1116,1 1094,-3 1072,-6 1049,-9 1025,-10 1000,-10 966,-10 937,-5 913,4 888,13 868,26 853,45 838,63 826,86 818,113 810,140 805,171 803,207 L 797,207 C 778,172 757,141 734,113 711,85 684,61 653,42 622,22 588,7 549,-4 510,-15 465,-20 414,-20 Z M 455,115 C 512,115 563,125 606,146 649,167 684,194 713,226 741,259 762,294 776,332 790,371 797,408 797,443 L 797,531 600,531 C 556,531 514,528 475,522 435,517 400,506 370,489 340,472 316,449 299,418 281,388 272,349 272,300 272,241 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="V" horiz-adv-x="1350" d="M 782,0 L 584,0 9,1409 210,1409 600,417 C 610,387 620,357 630,328 640,298 649,271 657,248 666,221 675,194 684,168 692,193 701,219 710,246 718,269 727,296 737,325 746,354 757,385 768,417 L 1156,1409 1357,1409 782,0 Z"/>
- <glyph unicode="U" horiz-adv-x="1165" d="M 731,-20 C 654,-20 580,-10 511,11 442,32 381,64 329,108 276,151 235,207 204,274 173,341 158,420 158,512 L 158,1409 349,1409 349,528 C 349,457 359,396 378,347 397,297 423,256 457,225 491,194 531,171 578,157 624,142 675,135 730,135 785,135 836,142 885,157 934,172 976,195 1013,227 1050,259 1079,301 1100,353 1121,404 1131,467 1131,541 L 1131,1409 1321,1409 1321,530 C 1321,436 1306,355 1275,286 1244,217 1201,159 1148,114 1095,69 1032,35 961,13 889,-9 812,-20 731,-20 Z"/>
- <glyph unicode="T" horiz-adv-x="1139" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="S" horiz-adv-x="1139" d="M 1272,389 C 1272,330 1261,275 1238,225 1215,175 1179,132 1131,96 1083,59 1023,31 950,11 877,-10 790,-20 690,-20 515,-20 378,11 280,72 182,133 120,222 93,338 L 278,375 C 287,338 302,305 321,275 340,245 367,219 400,198 433,176 473,159 522,147 571,135 629,129 697,129 754,129 806,134 853,144 900,153 941,168 975,188 1009,208 1036,234 1055,266 1074,297 1083,335 1083,379 1083,425 1073,462 1052,491 1031,520 1001,543 963,562 925,581 880,596 827,609 774,622 716,635 652,650 613,659 573,668 534,679 494,689 456,701 420,716 383,730 349,747 317,766 285,785 257,809 234,836 211,863 192,894 179,930 166,965 159,1006 159,1053 159,1120 173,1177 200,1225 227,1272 264,1311 312,1342 360,1373 417,1395 482,1409 547,1423 618,1430 694,1430 781,1430 856,1423 918,1410 980,1396 1032,1375 1075,1348 1118,1321 1152,1287 1178,1247 1203,1206 1224,1159 1239,1106 L 1051,1073 C 1042,1107 1028,1137 1011,1164 993,1191 970,1213 941,1231 912,1249 878,1263 837,1272 796,1281 747,1286 692,1286 627,1286 572,1280 528,1269 483,1257 448,1241 421,1221 394,1201 374,1178 363,1151 351,1124 345,1094 345,1063 345,1021 356,987 377,960 398,933 426,910 462,892 498,874 540,859 587,847 634,835 685,823 738,811 781,801 825,791 868,781 911,770 952,758 991,744 1030,729 1067,712 1102,693 1136,674 1166,650 1191,622 1216,594 1236,561 1251,523 1265,485 1272,440 1272,389 Z"/>
- <glyph unicode="R" horiz-adv-x="1218" d="M 1164,0 L 798,585 359,585 359,0 168,0 168,1409 831,1409 C 911,1409 982,1400 1044,1382 1105,1363 1157,1337 1199,1302 1241,1267 1273,1225 1295,1175 1317,1125 1328,1069 1328,1006 1328,961 1322,917 1309,874 1296,831 1275,791 1247,755 1219,719 1183,688 1140,662 1097,636 1045,618 984,607 L 1384,0 1164,0 Z M 1136,1004 C 1136,1047 1129,1084 1114,1115 1099,1146 1078,1173 1050,1194 1022,1215 988,1230 948,1241 908,1251 863,1256 812,1256 L 359,1256 359,736 820,736 C 875,736 922,743 962,757 1002,770 1035,789 1061,813 1086,837 1105,865 1118,898 1130,931 1136,966 1136,1004 Z"/>
- <glyph unicode="P" horiz-adv-x="1086" d="M 1258,985 C 1258,924 1248,867 1228,814 1207,761 1177,715 1137,676 1096,637 1046,606 985,583 924,560 854,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 844,1409 917,1399 979,1379 1041,1358 1093,1330 1134,1293 1175,1256 1206,1211 1227,1159 1248,1106 1258,1048 1258,985 Z M 1066,983 C 1066,1072 1039,1140 984,1187 929,1233 847,1256 738,1256 L 359,1256 359,700 746,700 C 856,700 937,724 989,773 1040,822 1066,892 1066,983 Z"/>
- <glyph unicode="L" horiz-adv-x="900" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="I" horiz-adv-x="186" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="C" horiz-adv-x="1297" d="M 792,1274 C 712,1274 641,1261 580,1234 518,1207 466,1169 425,1120 383,1071 351,1011 330,942 309,873 298,796 298,711 298,626 310,549 333,479 356,408 389,348 432,297 475,246 527,207 590,179 652,151 722,137 800,137 855,137 905,144 950,159 995,173 1035,193 1072,219 1108,245 1140,276 1169,312 1198,347 1223,387 1245,430 L 1401,352 C 1376,299 1344,250 1307,205 1270,160 1226,120 1176,87 1125,54 1068,28 1005,9 941,-10 870,-20 791,-20 677,-20 577,-2 492,35 406,71 334,122 277,187 219,252 176,329 147,418 118,507 104,605 104,711 104,821 119,920 150,1009 180,1098 224,1173 283,1236 341,1298 413,1346 498,1380 583,1413 681,1430 790,1430 940,1430 1065,1401 1166,1342 1267,1283 1341,1196 1388,1081 L 1207,1021 C 1194,1054 1176,1086 1153,1117 1130,1147 1102,1174 1068,1197 1034,1220 994,1239 949,1253 903,1267 851,1274 792,1274 Z"/>
- <glyph unicode="." horiz-adv-x="186" d="M 187,0 L 187,219 382,219 382,0 187,0 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_3" horiz-adv-x="2048">
- <font-face font-family="StarSymbol embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="635"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="●" horiz-adv-x="1191" d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- <glyph unicode="-" horiz-adv-x="1139" d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template(57356)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template(57354)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template(10146)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template(10132)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template(10007)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template(10004)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template(9679)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template(8226)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template(8211)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background">
- <path fill="rgb(255,255,255)" stroke="none" d="M 12700,19049 L 0,19049 0,0 25399,0 25399,19049 12700,19049 Z"/>
- </g>
- <g id="bo-id2" class="BackgroundObjects">
- <g visibility="hidden" class="Date/Time">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="1270" y="17657" width="5927" height="1014"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="1524" y="18333"/><tspan class="TextPosition" x="1524" y="18333"><tspan class="PlaceholderText" fill="rgb(139,139,139)" stroke="none">10/24/17</tspan></tspan></tspan></text>
- </g>
- </g>
- <g visibility="hidden" class="Footer">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="8678" y="17657" width="8043" height="1014"/>
- </g>
- </g>
- <g visibility="hidden" class="Slide_Number">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="18203" y="17657" width="5927" height="1014"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="22081" y="18333"/><tspan class="TextPosition" x="22081" y="18333"><tspan class="PlaceholderText" fill="rgb(139,139,139)" stroke="none">&lt;number&gt;</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="1947" y="8251" width="21593" height="6990"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 12743,15239 L 1948,15239 1948,8252 23538,8252 23538,15239 12743,15239 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12743,15239 L 1948,15239 1948,8252 23538,8252 23538,15239 12743,15239 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="21016" y="8551" width="2269" height="6396"/>
- <path fill="rgb(255,149,14)" stroke="none" d="M 22150,14946 L 21016,14946 21016,8551 23284,8551 23284,14946 22150,14946 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="21645" y="10489"/><tspan class="TextPosition" x="21645" y="10489"><tspan fill="rgb(255,255,255)" stroke="none">Tools</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="21336" y="11086"/><tspan class="TextPosition" x="21336" y="11086"><tspan fill="rgb(255,255,255)" stroke="none">(doc-gen, </tspan></tspan><tspan class="TextPosition" x="21545" y="11669"/><tspan class="TextPosition" x="21545" y="11669"><tspan fill="rgb(255,255,255)" stroke="none">report-</tspan></tspan><tspan class="TextPosition" x="21778" y="12252"/><tspan class="TextPosition" x="21778" y="12252"><tspan fill="rgb(255,255,255)" stroke="none">gen, </tspan></tspan><tspan class="TextPosition" x="21349" y="12835"/><tspan class="TextPosition" x="21349" y="12835"><tspan fill="rgb(255,255,255)" stroke="none">test_env-</tspan></tspan><tspan class="TextPosition" x="21395" y="13418"/><tspan class="TextPosition" x="21395" y="13418"><tspan fill="rgb(255,255,255)" stroke="none">builders)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="1947" y="5451" width="19053" height="2250"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 11473,7699 L 1948,7699 1948,5452 20998,5452 20998,7699 11473,7699 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11473,7699 L 1948,7699 1948,5452 20998,5452 20998,7699 11473,7699 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="1947" y="2031" width="21593" height="2797"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 12743,4826 L 1948,4826 1948,2032 23538,2032 23538,4826 12743,4826 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12743,4826 L 1948,4826 1948,2032 23538,2032 23538,4826 12743,4826 Z"/>
- </g>
- </g>
- <g class="TitleText">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="2032" y="150" width="21337" height="1820"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="1129px" font-weight="400"><tspan class="TextPosition" x="5986" y="1512"/><tspan class="TextPosition" x="5986" y="1512"><tspan fill="rgb(0,0,0)" stroke="none">CSIT System Design Hierarchy</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="2178" y="11091" width="4342" height="3856"/>
- <path fill="rgb(79,129,189)" stroke="none" d="M 4349,14946 L 2178,14946 2178,11091 6519,11091 6519,14946 4349,14946 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="564px" font-weight="400"><tspan class="TextPosition" x="2692" y="13245"/><tspan class="TextPosition" x="2692" y="13245"><tspan fill="rgb(255,255,255)" stroke="none">Python Library</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="7643" y="11091" width="4536" height="3856"/>
- <path fill="rgb(79,129,189)" stroke="none" d="M 9911,14946 L 7643,14946 7643,11091 12178,11091 12178,14946 9911,14946 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="7983" y="11711"/><tspan class="TextPosition" x="7983" y="11711"><tspan fill="rgb(255,255,255)" stroke="none">Performance Traffic </tspan></tspan><tspan class="TextPosition" x="8154" y="12390"/><tspan class="TextPosition" x="8154" y="12390"><tspan fill="rgb(255,255,255)" stroke="none">Generator Drivers </tspan></tspan><tspan class="TextPosition" x="9293" y="13069"/><tspan class="TextPosition" x="9293" y="13069"><tspan fill="rgb(255,255,255)" stroke="none">(TRex)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="12461" y="11091" width="2918" height="3856"/>
- <path fill="rgb(79,129,189)" stroke="none" d="M 13920,14946 L 12461,14946 12461,11091 15378,11091 15378,14946 13920,14946 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="12875" y="11859"/><tspan class="TextPosition" x="12875" y="11859"><tspan fill="rgb(255,255,255)" stroke="none">Functional </tspan></tspan><tspan class="TextPosition" x="13321" y="12538"/><tspan class="TextPosition" x="13321" y="12538"><tspan fill="rgb(255,255,255)" stroke="none">Traffic </tspan></tspan><tspan class="TextPosition" x="12911" y="13217"/><tspan class="TextPosition" x="12911" y="13217"><tspan fill="rgb(255,255,255)" stroke="none">Generator</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="13260" y="13896"/><tspan class="TextPosition" x="13260" y="13896"><tspan fill="rgb(255,255,255)" stroke="none">Scripts</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="13198" y="14575"/><tspan class="TextPosition" x="13198" y="14575"><tspan fill="rgb(255,255,255)" stroke="none">(Scapy)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="2172" y="8524" width="13238" height="1546"/>
- <path fill="rgb(155,187,89)" stroke="none" d="M 8791,10069 L 2172,10069 2172,8524 15409,8524 15409,10069 8791,10069 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="3123" y="9636"/><tspan class="TextPosition" x="3123" y="9636"><tspan fill="rgb(255,255,255)" stroke="none">Level-2 Robot Keyword Inventory</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="2176" y="5725" width="18625" height="1775"/>
- <path fill="rgb(75,172,198)" stroke="none" d="M 11488,7499 L 2176,7499 2176,5725 20800,5725 20800,7499 11488,7499 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="8494" y="6345"/><tspan class="TextPosition" x="8494" y="6345"><tspan fill="rgb(255,255,255)" stroke="none">Tests (vpp-verify, csit-verify, …)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="7975" y="13448" width="4001" height="1290"/>
- <path fill="rgb(153,204,255)" stroke="none" d="M 9975,14724 L 7988,14724 7988,13461 11962,13461 11962,14724 9975,14724 Z"/>
- <path fill="none" stroke="rgb(74,126,187)" stroke-width="26" stroke-linejoin="round" d="M 9975,14724 L 7988,14724 7988,13461 11962,13461 11962,14724 9975,14724 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="8581" y="14291"/><tspan class="TextPosition" x="8581" y="14291"><tspan fill="rgb(0,0,0)" stroke="none">Traffic Profiles</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="2155" y="2286" width="21152" height="2287"/>
- <path fill="rgb(192,80,77)" stroke="none" d="M 12731,4572 L 2155,4572 2155,2286 23306,2286 23306,4572 12731,4572 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="9586" y="3046"/><tspan class="TextPosition" x="9586" y="3046"><tspan fill="rgb(255,255,255)" stroke="none">Presentation &amp; Analytics</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="15016" y="3311" width="7974" height="1021"/>
- <path fill="rgb(255,204,204)" stroke="none" d="M 19003,4318 L 15029,4318 15029,3324 22976,3324 22976,4318 19003,4318 Z"/>
- <path fill="none" stroke="rgb(190,75,72)" stroke-width="26" stroke-linejoin="round" d="M 19003,4318 L 15029,4318 15029,3324 22976,3324 22976,4318 19003,4318 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="15600" y="4076"/><tspan class="TextPosition" x="15600" y="4076"><tspan fill="rgb(0,0,0)" stroke="none">FD.io CSIT Release Reports</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="12287" y="3349" width="2026" height="983"/>
- <path fill="rgb(255,204,204)" stroke="none" d="M 13300,4318 L 12300,4318 12300,3362 14299,3362 14299,4318 13300,4318 Z"/>
- <path fill="none" stroke="rgb(190,75,72)" stroke-width="26" stroke-linejoin="round" d="M 13300,4318 L 12300,4318 12300,3362 14299,3362 14299,4318 13300,4318 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="12680" y="4095"/><tspan class="TextPosition" x="12680" y="4095"><tspan fill="rgb(0,0,0)" stroke="none">Docs</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="8757" y="3351" width="2826" height="980"/>
- <path fill="rgb(255,204,204)" stroke="none" d="M 10170,4317 L 8770,4317 8770,3364 11569,3364 11569,4317 10170,4317 Z"/>
- <path fill="none" stroke="rgb(190,75,72)" stroke-width="26" stroke-linejoin="round" d="M 10170,4317 L 8770,4317 8770,3364 11569,3364 11569,4317 10170,4317 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="9051" y="4095"/><tspan class="TextPosition" x="9051" y="4095"><tspan fill="rgb(0,0,0)" stroke="none">Trending</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="15675" y="8551" width="1942" height="6396"/>
- <path fill="rgb(79,129,189)" stroke="none" d="M 16646,14946 L 15675,14946 15675,8551 17616,8551 17616,14946 16646,14946 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="16305" y="11360"/><tspan class="TextPosition" x="16305" y="11360"><tspan fill="rgb(255,255,255)" stroke="none">Test </tspan></tspan><tspan class="TextPosition" x="16265" y="11943"/><tspan class="TextPosition" x="16265" y="11943"><tspan fill="rgb(255,255,255)" stroke="none">data</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="15965" y="12484"/><tspan class="TextPosition" x="15965" y="12484"><tspan fill="rgb(255,255,255)" stroke="none">(Python)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="16605" y="7425" width="216" height="1215"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 16712,7624 L 16713,8440"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 16712,7426 L 16765,7440 16804,7479 16818,7532 16804,7585 16765,7624 16712,7638 16659,7624 16620,7585 16606,7532 16620,7479 16659,7440 16712,7426 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 16713,8638 L 16660,8624 16621,8585 16607,8532 16621,8479 16660,8440 16713,8426 16766,8440 16805,8479 16819,8532 16805,8585 16766,8624 16713,8638 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="11189" y="7392" width="216" height="1215"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 11296,7591 L 11297,8407"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 11296,7393 L 11349,7407 11388,7446 11402,7499 11388,7552 11349,7591 11296,7605 11243,7591 11204,7552 11190,7499 11204,7446 11243,7407 11296,7393 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 11297,8605 L 11244,8591 11205,8552 11191,8499 11205,8446 11244,8407 11297,8393 11350,8407 11389,8446 11403,8499 11389,8552 11350,8591 11297,8605 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="11147" y="4459" width="215" height="1403"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 11254,4658 L 11254,5662"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 11254,4460 L 11307,4474 11346,4513 11361,4566 11346,4619 11307,4658 11254,4673 11201,4658 11162,4619 11148,4566 11162,4513 11201,4474 11254,4460 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 11254,5861 L 11201,5846 11162,5807 11148,5754 11162,5701 11201,5662 11254,5648 11307,5662 11346,5701 11361,5754 11346,5807 11307,5846 11254,5861 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="21907" y="4465" width="215" height="4168"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 22014,4664 L 22014,8433"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 22014,4466 L 22067,4480 22106,4519 22121,4572 22106,4625 22067,4664 22014,4679 21961,4664 21922,4625 21908,4572 21922,4519 21961,4480 22014,4466 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 22014,8632 L 21961,8617 21922,8578 21908,8525 21922,8472 21961,8433 22014,8419 22067,8433 22106,8472 22121,8525 22106,8578 22067,8617 22014,8632 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="4288" y="9964" width="216" height="1215"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 4395,10163 L 4396,10979"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 4395,9965 L 4448,9979 4487,10018 4501,10071 4487,10124 4448,10163 4395,10177 4342,10163 4303,10124 4289,10071 4303,10018 4342,9979 4395,9965 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 4396,11177 L 4343,11163 4304,11124 4290,11071 4304,11018 4343,10979 4396,10965 4449,10979 4488,11018 4502,11071 4488,11124 4449,11163 4396,11177 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="9887" y="9964" width="216" height="1215"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 9994,10163 L 9995,10979"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 9994,9965 L 10047,9979 10086,10018 10100,10071 10086,10124 10047,10163 9994,10177 9941,10163 9902,10124 9888,10071 9902,10018 9941,9979 9994,9965 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 9995,11177 L 9942,11163 9903,11124 9889,11071 9903,11018 9942,10979 9995,10965 10048,10979 10087,11018 10101,11071 10087,11124 10048,11163 9995,11177 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="13773" y="9964" width="216" height="1215"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 13880,10163 L 13881,10979"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 13880,9965 L 13933,9979 13972,10018 13986,10071 13972,10124 13933,10163 13880,10177 13827,10163 13788,10124 13774,10071 13788,10018 13827,9979 13880,9965 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 13881,11177 L 13828,11163 13789,11124 13775,11071 13789,11018 13828,10979 13881,10965 13934,10979 13973,11018 13987,11071 13973,11124 13934,11163 13881,11177 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="6422" y="12903" width="1336" height="216"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 7558,13010 L 6621,13011"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 7756,13010 L 7742,13063 7703,13102 7650,13116 7597,13102 7558,13063 7544,13010 7558,12957 7597,12918 7650,12904 7703,12918 7742,12957 7756,13010 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 6423,13011 L 6437,12958 6476,12919 6529,12905 6582,12919 6621,12958 6635,13011 6621,13064 6582,13103 6529,13117 6476,13103 6437,13064 6423,13011 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="16566" y="7597" width="2317" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="16816" y="8004"/><tspan class="TextPosition" x="16816" y="8004"><tspan fill="rgb(0,0,0)" stroke="none">Python Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="4279" y="10130" width="2317" height="928"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4529" y="10537"/><tspan class="TextPosition" x="4529" y="10537"><tspan fill="rgb(0,0,0)" stroke="none">Python</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4529" y="10875"/><tspan class="TextPosition" x="4529" y="10875"><tspan fill="rgb(0,0,0)" stroke="none">Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="7699" y="15442" width="2317" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7949" y="15849"/><tspan class="TextPosition" x="7949" y="15849"><tspan fill="rgb(0,0,0)" stroke="none">Python Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="9864" y="10174" width="2317" height="928"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10114" y="10581"/><tspan class="TextPosition" x="10114" y="10581"><tspan fill="rgb(0,0,0)" stroke="none">Python</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10114" y="10919"/><tspan class="TextPosition" x="10114" y="10919"><tspan fill="rgb(0,0,0)" stroke="none">Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="22014" y="15158" width="2317" height="926"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22264" y="15565"/><tspan class="TextPosition" x="22264" y="15565"><tspan fill="rgb(0,0,0)" stroke="none">Shell </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22264" y="15903"/><tspan class="TextPosition" x="22264" y="15903"><tspan fill="rgb(0,0,0)" stroke="none">scripts</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="11200" y="7583" width="2317" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11450" y="7990"/><tspan class="TextPosition" x="11450" y="7990"><tspan fill="rgb(0,0,0)" stroke="none">Robot Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="6364" y="11984" width="1427" height="928"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6614" y="12391"/><tspan class="TextPosition" x="6614" y="12391"><tspan fill="rgb(0,0,0)" stroke="none">Python</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6614" y="12729"/><tspan class="TextPosition" x="6614" y="12729"><tspan fill="rgb(0,0,0)" stroke="none">Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="19800" y="10833" width="1452" height="928"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="20050" y="11240"/><tspan class="TextPosition" x="20050" y="11240"><tspan fill="rgb(0,0,0)" stroke="none">Python</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="20050" y="11578"/><tspan class="TextPosition" x="20050" y="11578"><tspan fill="rgb(0,0,0)" stroke="none">Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="21892" y="4937" width="1901" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22142" y="5344"/><tspan class="TextPosition" x="22142" y="5344"><tspan fill="rgb(0,0,0)" stroke="none">Shell scripts</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="11200" y="4783" width="1925" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11450" y="5190"/><tspan class="TextPosition" x="11450" y="5190"><tspan fill="rgb(0,0,0)" stroke="none">Robot Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="5599" y="15442" width="2317" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5849" y="15849"/><tspan class="TextPosition" x="5849" y="15849"><tspan fill="rgb(0,0,0)" stroke="none">VPP: VAT Cals</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="2616" y="3337" width="5227" height="994"/>
- <path fill="rgb(255,204,204)" stroke="none" d="M 5229,4317 L 2629,4317 2629,3350 7829,3350 7829,4317 5229,4317 Z"/>
- <path fill="none" stroke="rgb(255,204,204)" stroke-width="26" stroke-linejoin="round" d="M 5229,4317 L 2629,4317 2629,3350 7829,3350 7829,4317 5229,4317 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="564px" font-weight="400"><tspan class="TextPosition" x="3134" y="4060"/><tspan class="TextPosition" x="3134" y="4060"><tspan fill="rgb(0,0,0)" stroke="none">CI/CD Jenkins Jobs</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="2161" y="1767" width="1821" height="528"/>
- <path fill="rgb(204,204,204)" stroke="none" d="M 3071,2293 L 2162,2293 2162,1768 3980,1768 3980,2293 3071,2293 Z"/>
- <path fill="none" stroke="rgb(51,51,51)" d="M 3071,2293 L 2162,2293 2162,1768 3980,1768 3980,2293 3071,2293 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="2162" y="2200"/><tspan class="TextPosition" x="2162" y="2200"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="2297" y="2200"><tspan fill="rgb(0,0,0)" stroke="none">Users</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="2817" y="6549" width="4321" height="765"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 4977,7312 L 2818,7312 2818,6550 7136,6550 7136,7312 4977,7312 Z"/>
- <path fill="none" stroke="rgb(207,231,245)" d="M 4977,7312 L 2818,7312 2818,6550 7136,6550 7136,7312 4977,7312 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="3563" y="7101"/><tspan class="TextPosition" x="3563" y="7101"><tspan fill="rgb(0,0,0)" stroke="none">Performance</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="9417" y="6549" width="4321" height="765"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 11577,7312 L 9418,7312 9418,6550 13736,6550 13736,7312 11577,7312 Z"/>
- <path fill="none" stroke="rgb(207,231,245)" d="M 11577,7312 L 9418,7312 9418,6550 13736,6550 13736,7312 11577,7312 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="10199" y="7101"/><tspan class="TextPosition" x="10199" y="7101"><tspan fill="rgb(0,0,0)" stroke="none">Functionality</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="15817" y="6549" width="4321" height="765"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 17977,7312 L 15818,7312 15818,6550 20136,6550 20136,7312 17977,7312 Z"/>
- <path fill="none" stroke="rgb(207,231,245)" d="M 17977,7312 L 15818,7312 15818,6550 20136,6550 20136,7312 17977,7312 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="16699" y="7101"/><tspan class="TextPosition" x="16699" y="7101"><tspan fill="rgb(0,0,0)" stroke="none">Programing</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="2181" y="5167" width="2837" height="528"/>
- <path fill="rgb(204,204,204)" stroke="none" d="M 3599,5693 L 2182,5693 2182,5168 5016,5168 5016,5693 3599,5693 Z"/>
- <path fill="none" stroke="rgb(51,51,51)" d="M 3599,5693 L 2182,5693 2182,5168 5016,5168 5016,5693 3599,5693 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="2182" y="5600"/><tspan class="TextPosition" x="2182" y="5600"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="2317" y="5600"><tspan fill="rgb(0,0,0)" stroke="none">CSIT Tests</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="2181" y="7967" width="4087" height="528"/>
- <path fill="rgb(204,204,204)" stroke="none" d="M 4224,8493 L 2182,8493 2182,7968 6266,7968 6266,8493 4224,8493 Z"/>
- <path fill="none" stroke="rgb(51,51,51)" d="M 4224,8493 L 2182,8493 2182,7968 6266,7968 6266,8493 4224,8493 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="2182" y="8400"/><tspan class="TextPosition" x="2182" y="8400"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="2317" y="8400"><tspan fill="rgb(0,0,0)" stroke="none">CSIT Framework</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="17911" y="8551" width="2075" height="6396"/>
- <path fill="rgb(79,129,189)" stroke="none" d="M 18948,14946 L 17911,14946 17911,8551 19985,8551 19985,14946 18948,14946 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="18174" y="11336"/><tspan class="TextPosition" x="18174" y="11336"><tspan fill="rgb(255,255,255)" stroke="none">Topology </tspan></tspan><tspan class="TextPosition" x="18597" y="11919"/><tspan class="TextPosition" x="18597" y="11919"><tspan fill="rgb(255,255,255)" stroke="none">files</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="18411" y="12502"/><tspan class="TextPosition" x="18411" y="12502"><tspan fill="rgb(255,255,255)" stroke="none">(yaml)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="19893" y="11667" width="1236" height="216"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 20929,11774 L 20092,11775"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 21127,11774 L 21113,11827 21074,11866 21021,11880 20968,11866 20929,11827 20915,11774 20929,11721 20968,11682 21021,11668 21074,11682 21113,11721 21127,11774 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 19894,11775 L 19908,11722 19947,11683 20000,11669 20053,11683 20092,11722 20106,11775 20092,11828 20053,11867 20000,11881 19947,11867 19908,11828 19894,11775 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="1947" y="15931" width="21593" height="2359"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 12743,18288 L 1948,18288 1948,15932 23538,15932 23538,18288 12743,18288 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12743,18288 L 1948,18288 1948,15932 23538,15932 23538,18288 12743,18288 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="2181" y="15667" width="2837" height="528"/>
- <path fill="rgb(204,204,204)" stroke="none" d="M 3599,16193 L 2182,16193 2182,15668 5016,15668 5016,16193 3599,16193 Z"/>
- <path fill="none" stroke="rgb(51,51,51)" d="M 3599,16193 L 2182,16193 2182,15668 5016,15668 5016,16193 3599,16193 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="493px" font-weight="400"><tspan class="TextPosition" x="2182" y="16100"/><tspan class="TextPosition" x="2182" y="16100"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="2317" y="16100"><tspan fill="rgb(0,0,0)" stroke="none">CSIT Tests</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="2233" y="16403" width="6451" height="1159"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 5458,17560 L 2234,17560 2234,16404 8682,16404 8682,17560 5458,17560 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5458,17560 L 2234,17560 2234,16404 8682,16404 8682,17560 5458,17560 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="2356" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 3372,17471 L 2356,17471 2356,16546 4388,16546 4388,17471 3372,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2356" y="17179"/><tspan class="TextPosition" x="2356" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="2453" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="3218" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 3726,17371 L 3218,17371 3218,16680 4234,16680 4234,17371 3726,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="3358" y="17196"/><tspan class="TextPosition" x="3358" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="4456" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 5472,17471 L 4456,17471 4456,16546 6488,16546 6488,17471 5472,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="4456" y="17179"/><tspan class="TextPosition" x="4456" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="4553" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="5318" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 5826,17371 L 5318,17371 5318,16680 6334,16680 6334,17371 5826,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="5458" y="17196"/><tspan class="TextPosition" x="5458" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="6556" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 7572,17471 L 6556,17471 6556,16546 8588,16546 8588,17471 7572,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="6556" y="17179"/><tspan class="TextPosition" x="6556" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="6653" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="7418" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 7926,17371 L 7418,17371 7418,16680 8434,16680 8434,17371 7926,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="7698" y="17196"/><tspan class="TextPosition" x="7698" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="11633" y="16403" width="6451" height="1159"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 14858,17560 L 11634,17560 11634,16404 18082,16404 18082,17560 14858,17560 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14858,17560 L 11634,17560 11634,16404 18082,16404 18082,17560 14858,17560 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="11756" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 12772,17471 L 11756,17471 11756,16546 13788,16546 13788,17471 12772,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="11756" y="17179"/><tspan class="TextPosition" x="11756" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="11853" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="12618" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 13126,17371 L 12618,17371 12618,16680 13634,16680 13634,17371 13126,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="12758" y="17196"/><tspan class="TextPosition" x="12758" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="13856" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 14872,17471 L 13856,17471 13856,16546 15888,16546 15888,17471 14872,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="13856" y="17179"/><tspan class="TextPosition" x="13856" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="13953" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="14718" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 15226,17371 L 14718,17371 14718,16680 15734,16680 15734,17371 15226,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="14858" y="17196"/><tspan class="TextPosition" x="14858" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="15956" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 16972,17471 L 15956,17471 15956,16546 17988,16546 17988,17471 16972,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="15956" y="17179"/><tspan class="TextPosition" x="15956" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="16053" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="16818" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 17326,17371 L 16818,17371 16818,16680 17834,16680 17834,17371 17326,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="17098" y="17196"/><tspan class="TextPosition" x="17098" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="18832" y="16403" width="4372" height="1159"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 21018,17560 L 18833,17560 18833,16404 23202,16404 23202,17560 21018,17560 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 21018,17560 L 18833,17560 18833,16404 23202,16404 23202,17560 21018,17560 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="18956" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 19972,17471 L 18956,17471 18956,16546 20988,16546 20988,17471 19972,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="18956" y="17179"/><tspan class="TextPosition" x="18956" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="19053" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="19818" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 20326,17371 L 19818,17371 19818,16680 20834,16680 20834,17371 20326,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="19958" y="17196"/><tspan class="TextPosition" x="19958" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="21056" y="16546" width="2033" height="926"/>
- <path fill="rgb(217,217,217)" stroke="none" d="M 22072,17471 L 21056,17471 21056,16546 23088,16546 23088,17471 22072,17471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="21056" y="17179"/><tspan class="TextPosition" x="21056" y="17179"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan><tspan class="TextPosition" x="21153" y="17179"><tspan fill="rgb(0,0,0)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="21918" y="16680" width="1017" height="692"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 22426,17371 L 21918,17371 21918,16680 22934,16680 22934,17371 22426,17371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="22198" y="17196"/><tspan class="TextPosition" x="22198" y="17196"><tspan fill="rgb(0,0,0)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="2202" y="17762" width="6605" height="396"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="352px" font-weight="400"><tspan class="TextPosition" x="4010" y="18081"/><tspan class="TextPosition" x="4010" y="18081"><tspan fill="rgb(0,0,0)" stroke="none">Physical topologies</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="11702" y="17763" width="11583" height="396"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="352px" font-weight="400"><tspan class="TextPosition" x="15203" y="18082"/><tspan class="TextPosition" x="15203" y="18082"><tspan fill="rgb(0,0,0)" stroke="none">Virtualied topologies i.e. VIRL</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="5143" y="14840" width="215" height="1801"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 5250,15039 L 5250,16441"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 5250,14841 L 5303,14855 5342,14894 5357,14947 5342,15000 5303,15039 5250,15054 5197,15039 5158,15000 5144,14947 5158,14894 5197,14855 5250,14841 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 5250,16640 L 5197,16625 5158,16586 5144,16533 5158,16480 5197,16441 5250,16427 5303,16441 5342,16480 5357,16533 5342,16586 5303,16625 5250,16640 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="5691" y="14840" width="216" height="1949"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 5798,15039 L 5799,16589"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 5798,14841 L 5851,14855 5890,14894 5904,14947 5890,15000 5851,15039 5798,15053 5745,15039 5706,15000 5692,14947 5706,14894 5745,14855 5798,14841 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 5799,16787 L 5746,16773 5707,16734 5693,16681 5707,16628 5746,16589 5799,16575 5852,16589 5891,16628 5905,16681 5891,16734 5852,16773 5799,16787 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="7792" y="14840" width="216" height="1949"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 7899,15039 L 7900,16589"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 7899,14841 L 7952,14855 7991,14894 8005,14947 7991,15000 7952,15039 7899,15053 7846,15039 7807,15000 7793,14947 7807,14894 7846,14855 7899,14841 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 7900,16787 L 7847,16773 7808,16734 7794,16681 7808,16628 7847,16589 7900,16575 7953,16589 7992,16628 8006,16681 7992,16734 7953,16773 7900,16787 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="22043" y="14840" width="215" height="1801"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="71" stroke-linejoin="round" d="M 22150,15039 L 22150,16441"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 22150,14841 L 22203,14855 22242,14894 22257,14947 22242,15000 22203,15039 22150,15054 22097,15039 22058,15000 22044,14947 22058,14894 22097,14855 22150,14841 Z"/>
- <path fill="rgb(128,128,128)" stroke="none" d="M 22150,16640 L 22097,16625 22058,16586 22044,16533 22058,16480 22097,16441 22150,16427 22203,16441 22242,16480 22257,16533 22242,16586 22203,16625 22150,16640 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="13764" y="10174" width="2317" height="928"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14014" y="10581"/><tspan class="TextPosition" x="14014" y="10581"><tspan fill="rgb(0,0,0)" stroke="none">Python</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14014" y="10919"/><tspan class="TextPosition" x="14014" y="10919"><tspan fill="rgb(0,0,0)" stroke="none">Calls</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg>
+<!-- Do not edit this file with editors other than draw.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="881px" height="651px" viewBox="-0.5 -0.5 881 651" content="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36&quot; version=&quot;26.0.6&quot; scale=&quot;1&quot; border=&quot;0&quot;&gt;&#10; &lt;diagram name=&quot;Page-1&quot; id=&quot;5f0bae14-7c28-e335-631c-24af17079c00&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;1080&quot; dy=&quot;867&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;1169&quot; pageHeight=&quot;827&quot; background=&quot;none&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;Tbj8fWwnhEkKqwXPDnLc-1&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=default;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;160&quot; y=&quot;40&quot; width=&quot;880&quot; height=&quot;650&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--3&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;300&quot; y=&quot;60&quot; width=&quot;730&quot; height=&quot;100&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--4&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;300&quot; y=&quot;260&quot; width=&quot;600&quot; height=&quot;100&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--5&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;300&quot; y=&quot;380&quot; width=&quot;600&quot; height=&quot;220&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--6&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;300&quot; y=&quot;620&quot; width=&quot;280&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--7&quot; value=&quot;Bare Metal Environment&quot; style=&quot;text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;610&quot; width=&quot;140&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--8&quot; value=&quot;Libraries&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;370&quot; width=&quot;60&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--9&quot; value=&quot;Methodology&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;250&quot; width=&quot;80&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--10&quot; value=&quot;Presentation &amp;amp;amp; Analytics Dashboard&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;50&quot; width=&quot;200&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--13&quot; value=&quot;CSIT Phy Testbeds&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;640&quot; width=&quot;120&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-1&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;590&quot; y=&quot;620&quot; width=&quot;310&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-2&quot; value=&quot;Public Clouds and Virtualised Environments&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;600&quot; y=&quot;610&quot; width=&quot;240&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-3&quot; value=&quot;CSIT Testbeds&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;600&quot; y=&quot;640&quot; width=&quot;120&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-4&quot; value=&quot;Services&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;730&quot; y=&quot;640&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-5&quot; value=&quot;Data&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;820&quot; y=&quot;640&quot; width=&quot;70&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-6&quot; value=&quot;FD.io Backend&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;440&quot; y=&quot;640&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-7&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;170&quot; y=&quot;60&quot; width=&quot;120&quot; height=&quot;620&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-8&quot; value=&quot;CI/CD&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;180&quot; y=&quot;50&quot; width=&quot;60&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-9&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;910&quot; y=&quot;180&quot; width=&quot;120&quot; height=&quot;500&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-10&quot; value=&quot;Documentation&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;170&quot; width=&quot;90&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--14&quot; value=&quot;Design&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;200&quot; width=&quot;100&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-11&quot; value=&quot;Dash / Plotly&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;455&quot; y=&quot;400&quot; width=&quot;135&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-12&quot; value=&quot;TOIs&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;640&quot; width=&quot;100&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-13&quot; value=&quot;IETF BMWG&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;560&quot; width=&quot;100&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;v3a-xPy5YwSb32yUvcN--15&quot; value=&quot;Release Notes&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;380&quot; width=&quot;100&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-18&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#cce5ff;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;580&quot; y=&quot;80&quot; width=&quot;270&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-15&quot; value=&quot;Release Testing Results&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;580&quot; y=&quot;80&quot; width=&quot;140&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-19&quot; value=&quot;Performance&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;590&quot; y=&quot;110&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-20&quot; value=&quot;Comparisons&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;680&quot; y=&quot;110&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-21&quot; value=&quot;Coverage Data&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;770&quot; y=&quot;110&quot; width=&quot;70&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-22&quot; value=&quot;Documentation&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;80&quot; width=&quot;100&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-23&quot; value=&quot;Results&amp;lt;div&amp;gt;Data&amp;lt;div&amp;gt;Search&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;860&quot; y=&quot;80&quot; width=&quot;50&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-25&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#cce5ff;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;80&quot; width=&quot;260&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-14&quot; value=&quot;Trending&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;80&quot; width=&quot;70&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-26&quot; value=&quot;Performance&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;320&quot; y=&quot;110&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-27&quot; value=&quot;Failures &amp;amp;amp; Anomallies&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;410&quot; y=&quot;110&quot; width=&quot;80&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-28&quot; value=&quot;Job&amp;lt;div&amp;gt;Statistics&amp;lt;/div&amp;gt;&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;500&quot; y=&quot;110&quot; width=&quot;60&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-29&quot; value=&quot;Telemetry&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;810&quot; y=&quot;280&quot; width=&quot;80&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-30&quot; value=&quot;Packet&amp;amp;nbsp;&amp;lt;span style=&amp;quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&amp;quot;&amp;gt;Latency&amp;lt;/span&amp;gt;&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;690&quot; y=&quot;280&quot; width=&quot;110&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-34&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#cce5ff;strokeColor=#36393d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;280&quot; width=&quot;370&quot; height=&quot;70&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-35&quot; value=&quot;Data Plane Throughput&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;280&quot; width=&quot;140&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-33&quot; value=&quot;Maximum Receive Rate&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;320&quot; y=&quot;310&quot; width=&quot;150&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-31&quot; value=&quot;MLR Search&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;480&quot; y=&quot;310&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-32&quot; value=&quot;PLR Search&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;580&quot; y=&quot;310&quot; width=&quot;90&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-38&quot; value=&quot;Ansible&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;560&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-39&quot; value=&quot;Terraform&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;460&quot; y=&quot;560&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-40&quot; value=&quot;PXE&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;610&quot; y=&quot;560&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-41&quot; value=&quot;Packer&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;760&quot; y=&quot;520&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-42&quot; value=&quot;Vagrant&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;760&quot; y=&quot;560&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-43&quot; value=&quot;ETL&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;760&quot; y=&quot;400&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-45&quot; value=&quot;Python&amp;lt;span style=&amp;quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-align: start; text-wrap-mode: nowrap;&amp;quot;&amp;gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22ETL%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Ddefault%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2240%22%20y%3D%22280%22%20width%3D%2280%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&amp;lt;/span&amp;gt;&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;439&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-46&quot; value=&quot;Robot Framework&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;400&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-47&quot; value=&quot;Bash&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;480&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-48&quot; value=&quot;TRex Traffic Generator&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;610&quot; y=&quot;400&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-49&quot; value=&quot;Traffic Profiles&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;610&quot; y=&quot;439&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-50&quot; value=&quot;Topology Files&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;610&quot; y=&quot;480&quot; width=&quot;130&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-51&quot; value=&quot;Job&amp;lt;div&amp;gt;Specifications&amp;lt;/div&amp;gt;&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;180&quot; y=&quot;490&quot; width=&quot;100&quot; height=&quot;180&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-52&quot; value=&quot;Jenkins&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;180&quot; y=&quot;80&quot; width=&quot;100&quot; height=&quot;190&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;t9mUxSI57eyp6HKQyelY-53&quot; value=&quot;Github Actions&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;180&quot; y=&quot;295&quot; width=&quot;100&quot; height=&quot;170&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;DkOmqdSwMXgBLU7vPQgX-1&quot; value=&quot;Hugo&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;455&quot; y=&quot;439&quot; width=&quot;135&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;cpZw9skfnSOhFHgTt7-z-1&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;300&quot; y=&quot;180&quot; width=&quot;600&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;cpZw9skfnSOhFHgTt7-z-2&quot; value=&quot;Benchmarking Tests&quot; style=&quot;text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;170&quot; width=&quot;120&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;cpZw9skfnSOhFHgTt7-z-3&quot; value=&quot;VPP&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;310&quot; y=&quot;200&quot; width=&quot;180&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;cpZw9skfnSOhFHgTt7-z-4&quot; value=&quot;DPDK&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;510&quot; y=&quot;200&quot; width=&quot;180&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;cpZw9skfnSOhFHgTt7-z-5&quot; value=&quot;TRex&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;710&quot; y=&quot;200&quot; width=&quot;180&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;cpZw9skfnSOhFHgTt7-z-7&quot; value=&quot;Methodology&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;290&quot; width=&quot;100&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;cpZw9skfnSOhFHgTt7-z-8&quot; value=&quot;Infrastructure&quot; style=&quot;text;html=1;strokeColor=#36393d;fillColor=#cce5ff;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;920&quot; y=&quot;469&quot; width=&quot;100&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><defs/><rect fill="#ffffff" width="100%" height="100%" x="0" y="0" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="Tbj8fWwnhEkKqwXPDnLc-1"><g><rect x="0" y="0" width="880" height="650" fill="#ffffff" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--3"><g><rect x="140" y="20" width="730" height="100" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--4"><g><rect x="140" y="220" width="600" height="100" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--5"><g><rect x="140" y="340" width="600" height="220" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--6"><g><rect x="140" y="580" width="280" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--7"><g><rect x="150" y="570" width="140" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 138px; height: 1px; padding-top: 580px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Bare Metal Environment</div></div></div></foreignObject><text x="152" y="584" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Bare Metal Environment</text></switch></g></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--8"><g><rect x="150" y="330" width="60" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 58px; height: 1px; padding-top: 340px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Libraries</div></div></div></foreignObject><text x="152" y="344" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Libraries</text></switch></g></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--9"><g><rect x="150" y="210" width="80" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 220px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Methodology</div></div></div></foreignObject><text x="152" y="224" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Methodology</text></switch></g></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--10"><g><rect x="150" y="10" width="200" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 198px; height: 1px; padding-top: 20px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Presentation &amp; Analytics Dashboard</div></div></div></foreignObject><text x="152" y="24" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Presentation &amp; Analytics Dashboard</text></switch></g></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--13"><g><rect x="150" y="600" width="120" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 615px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CSIT Phy Testbeds</div></div></div></foreignObject><text x="210" y="619" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">CSIT Phy Testbeds</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-1"><g><rect x="430" y="580" width="310" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-2"><g><rect x="440" y="570" width="240" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 238px; height: 1px; padding-top: 580px; margin-left: 442px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Public Clouds and Virtualised Environments</div></div></div></foreignObject><text x="442" y="584" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Public Clouds and Virtualised Environmen...</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-3"><g><rect x="440" y="600" width="120" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 615px; margin-left: 441px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CSIT Testbeds</div></div></div></foreignObject><text x="500" y="619" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">CSIT Testbeds</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-4"><g><rect x="570" y="600" width="80" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 615px; margin-left: 571px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Services</div></div></div></foreignObject><text x="610" y="619" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Services</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-5"><g><rect x="660" y="600" width="70" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 615px; margin-left: 661px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Data</div></div></div></foreignObject><text x="695" y="619" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Data</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-6"><g><rect x="280" y="600" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 615px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FD.io Backend</div></div></div></foreignObject><text x="345" y="619" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">FD.io Backend</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-7"><g><rect x="10" y="20" width="120" height="620" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-8"><g><rect x="20" y="10" width="60" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 58px; height: 1px; padding-top: 20px; margin-left: 22px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">CI/CD</div></div></div></foreignObject><text x="22" y="24" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">CI/CD</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-9"><g><rect x="750" y="140" width="120" height="500" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-10"><g><rect x="760" y="130" width="90" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 88px; height: 1px; padding-top: 140px; margin-left: 762px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Documentation</div></div></div></foreignObject><text x="762" y="144" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Documentation</text></switch></g></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--14"><g><rect x="760" y="160" width="100" height="80" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 200px; margin-left: 761px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Design</div></div></div></foreignObject><text x="810" y="204" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Design</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-11"><g><rect x="295" y="360" width="135" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 133px; height: 1px; padding-top: 375px; margin-left: 296px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Dash / Plotly</div></div></div></foreignObject><text x="363" y="379" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Dash / Plotly</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-12"><g><rect x="760" y="600" width="100" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 615px; margin-left: 761px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">TOIs</div></div></div></foreignObject><text x="810" y="619" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">TOIs</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-13"><g><rect x="760" y="520" width="100" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 555px; margin-left: 761px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">IETF BMWG</div></div></div></foreignObject><text x="810" y="559" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">IETF BMWG</text></switch></g></g></g><g data-cell-id="v3a-xPy5YwSb32yUvcN--15"><g><rect x="760" y="340" width="100" height="80" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 380px; margin-left: 761px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Release Notes</div></div></div></foreignObject><text x="810" y="384" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Release Notes</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-18"><g><rect x="420" y="40" width="270" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-15"><g><rect x="420" y="40" width="140" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 138px; height: 1px; padding-top: 50px; margin-left: 422px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Release Testing Results</div></div></div></foreignObject><text x="422" y="54" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Release Testing Results</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-19"><g><rect x="430" y="70" width="80" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 85px; margin-left: 431px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Performance</div></div></div></foreignObject><text x="470" y="89" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Performance</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-20"><g><rect x="520" y="70" width="80" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 85px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Comparisons</div></div></div></foreignObject><text x="560" y="89" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Comparisons</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-21"><g><rect x="610" y="70" width="70" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 85px; margin-left: 611px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Coverage Data</div></div></div></foreignObject><text x="645" y="89" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Coverage Da...</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-22"><g><rect x="760" y="40" width="100" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 75px; margin-left: 761px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Documentation</div></div></div></foreignObject><text x="810" y="79" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Documentation</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-23"><g><rect x="700" y="40" width="50" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 75px; margin-left: 701px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Results<div>Data<div>Search</div></div></div></div></div></foreignObject><text x="725" y="79" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Results...</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-25"><g><rect x="150" y="40" width="260" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-14"><g><rect x="150" y="40" width="70" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 68px; height: 1px; padding-top: 50px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Trending</div></div></div></foreignObject><text x="152" y="54" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Trending</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-26"><g><rect x="160" y="70" width="80" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 85px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Performance</div></div></div></foreignObject><text x="200" y="89" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Performance</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-27"><g><rect x="250" y="70" width="80" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 85px; margin-left: 251px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Failures &amp; Anomallies</div></div></div></foreignObject><text x="290" y="89" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Failures &amp; An...</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-28"><g><rect x="340" y="70" width="60" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 85px; margin-left: 341px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Job<div>Statistics</div></div></div></div></foreignObject><text x="370" y="89" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Job...</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-29"><g><rect x="650" y="240" width="80" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 275px; margin-left: 651px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Telemetry</div></div></div></foreignObject><text x="690" y="279" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Telemetry</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-30"><g><rect x="530" y="240" width="110" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 275px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Packet <span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">Latency</span></div></div></div></foreignObject><text x="585" y="279" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Packet Latency</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-34"><g><rect x="150" y="240" width="370" height="70" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-35"><g><rect x="150" y="240" width="140" height="20" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 138px; height: 1px; padding-top: 250px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Data Plane Throughput</div></div></div></foreignObject><text x="152" y="254" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Data Plane Throughput</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-33"><g><rect x="160" y="270" width="150" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 285px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Maximum Receive Rate</div></div></div></foreignObject><text x="235" y="289" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Maximum Receive Rate</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-31"><g><rect x="320" y="270" width="90" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 285px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">MLR Search</div></div></div></foreignObject><text x="365" y="289" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">MLR Search</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-32"><g><rect x="420" y="270" width="90" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 285px; margin-left: 421px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">PLR Search</div></div></div></foreignObject><text x="465" y="289" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">PLR Search</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-38"><g><rect x="150" y="520" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 535px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Ansible</div></div></div></foreignObject><text x="215" y="539" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Ansible</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-39"><g><rect x="300" y="520" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 535px; margin-left: 301px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Terraform</div></div></div></foreignObject><text x="365" y="539" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Terraform</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-40"><g><rect x="450" y="520" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 535px; margin-left: 451px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">PXE</div></div></div></foreignObject><text x="515" y="539" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">PXE</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-41"><g><rect x="600" y="480" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 495px; margin-left: 601px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Packer</div></div></div></foreignObject><text x="665" y="499" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Packer</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-42"><g><rect x="600" y="520" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 535px; margin-left: 601px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Vagrant</div></div></div></foreignObject><text x="665" y="539" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Vagrant</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-43"><g><rect x="600" y="360" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 375px; margin-left: 601px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">ETL</div></div></div></foreignObject><text x="665" y="379" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">ETL</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-45"><g><rect x="150" y="399" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 414px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Python<span style="color: light-dark(rgba(0, 0, 0, 0), rgb(237, 237, 237)); font-family: monospace; font-size: 0px; text-align: start; text-wrap-mode: nowrap;">%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22ETL%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Ddefault%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2240%22%20y%3D%22280%22%20width%3D%2280%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E</span></div></div></div></foreignObject><text x="215" y="418" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Python%3CmxGraphModel...</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-46"><g><rect x="150" y="360" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 375px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Robot Framework</div></div></div></foreignObject><text x="215" y="379" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Robot Framework</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-47"><g><rect x="150" y="440" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 455px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Bash</div></div></div></foreignObject><text x="215" y="459" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Bash</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-48"><g><rect x="450" y="360" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 375px; margin-left: 451px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">TRex Traffic Generator</div></div></div></foreignObject><text x="515" y="379" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">TRex Traffic Generator</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-49"><g><rect x="450" y="399" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 414px; margin-left: 451px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Traffic Profiles</div></div></div></foreignObject><text x="515" y="418" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Traffic Profiles</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-50"><g><rect x="450" y="440" width="130" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 455px; margin-left: 451px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Topology Files</div></div></div></foreignObject><text x="515" y="459" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Topology Files</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-51"><g><rect x="20" y="450" width="100" height="180" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 540px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Job<div>Specifications</div></div></div></div></foreignObject><text x="70" y="544" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Job...</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-52"><g><rect x="20" y="40" width="100" height="190" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 135px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Jenkins</div></div></div></foreignObject><text x="70" y="139" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Jenkins</text></switch></g></g></g><g data-cell-id="t9mUxSI57eyp6HKQyelY-53"><g><rect x="20" y="255" width="100" height="170" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 340px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Github Actions</div></div></div></foreignObject><text x="70" y="344" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Github Actions</text></switch></g></g></g><g data-cell-id="DkOmqdSwMXgBLU7vPQgX-1"><g><rect x="295" y="399" width="135" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 133px; height: 1px; padding-top: 414px; margin-left: 296px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Hugo</div></div></div></foreignObject><text x="363" y="418" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Hugo</text></switch></g></g></g><g data-cell-id="cpZw9skfnSOhFHgTt7-z-1"><g><rect x="140" y="140" width="600" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g></g><g data-cell-id="cpZw9skfnSOhFHgTt7-z-2"><g><rect x="150" y="130" width="120" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 118px; height: 1px; padding-top: 140px; margin-left: 152px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Benchmarking Tests</div></div></div></foreignObject><text x="152" y="144" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px">Benchmarking Tests</text></switch></g></g></g><g data-cell-id="cpZw9skfnSOhFHgTt7-z-3"><g><rect x="150" y="160" width="180" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 175px; margin-left: 151px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VPP</div></div></div></foreignObject><text x="240" y="179" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">VPP</text></switch></g></g></g><g data-cell-id="cpZw9skfnSOhFHgTt7-z-4"><g><rect x="350" y="160" width="180" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 175px; margin-left: 351px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">DPDK</div></div></div></foreignObject><text x="440" y="179" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">DPDK</text></switch></g></g></g><g data-cell-id="cpZw9skfnSOhFHgTt7-z-5"><g><rect x="550" y="160" width="180" height="30" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 178px; height: 1px; padding-top: 175px; margin-left: 551px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">TRex</div></div></div></foreignObject><text x="640" y="179" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">TRex</text></switch></g></g></g><g data-cell-id="cpZw9skfnSOhFHgTt7-z-7"><g><rect x="760" y="250" width="100" height="80" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 290px; margin-left: 761px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Methodology</div></div></div></foreignObject><text x="810" y="294" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Methodology</text></switch></g></g></g><g data-cell-id="cpZw9skfnSOhFHgTt7-z-8"><g><rect x="760" y="429" width="100" height="80" fill="#cce5ff" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(204, 229, 255), rgb(24, 46, 68)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 469px; margin-left: 761px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Infrastructure</div></div></div></foreignObject><text x="810" y="473" fill="light-dark(#000000, #ffffff)" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Infrastructure</text></switch></g></g></g></g></g></g></svg> \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
index 81794519b3..8ac5bd019d 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
@@ -35,11 +35,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
index 1a269d627d..2ac00bc6cf 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
@@ -35,18 +35,12 @@ intel_qat_matrix: true
docker_sut: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/dev/null"
target: "/etc/sysctl.d/80-vpp.conf"
- source: "/opt/boot/"
target: "/opt/boot/"
- - source: "/opt/dpdk-24.07/"
- target: "/opt/dpdk-24.07/"
+ - source: "/opt/dpdk-24.11.1/"
+ target: "/opt/dpdk-24.11.1/"
- source: "/usr/bin/iperf3"
target: "/usr/bin/iperf3"
- source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.41.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.41.yaml
index 3dc853ad5d..9b8d4e6f5f 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.41.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.41.yaml
@@ -36,11 +36,5 @@ intel_qat_matrix: true
docker_tg: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.42.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.42.yaml
index 7d7fb29b05..107ddd8751 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.42.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.42.yaml
@@ -35,18 +35,12 @@ intel_qat_matrix: true
docker_sut: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/dev/null"
target: "/etc/sysctl.d/80-vpp.conf"
- source: "/opt/boot/"
target: "/opt/boot/"
- - source: "/opt/dpdk-24.07/"
- target: "/opt/dpdk-24.07/"
+ - source: "/opt/dpdk-24.11.1/"
+ target: "/opt/dpdk-24.11.1/"
- source: "/usr/bin/iperf3"
target: "/usr/bin/iperf3"
- source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.43.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.43.yaml
index 4cb3dd7c70..b29ccc6207 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.43.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.43.yaml
@@ -35,11 +35,5 @@ intel_qat_matrix: true
docker_tg: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
index 55709c10ab..066e66edb8 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
@@ -37,18 +37,12 @@ docker_sut: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/dev/null"
target: "/etc/sysctl.d/80-vpp.conf"
- source: "/opt/boot/"
target: "/opt/boot/"
- - source: "/opt/dpdk-24.07/"
- target: "/opt/dpdk-24.07/"
+ - source: "/opt/dpdk-24.11.1/"
+ target: "/opt/dpdk-24.11.1/"
- source: "/usr/bin/iperf3"
target: "/usr/bin/iperf3"
- source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
index 3c149ad194..10a7369ffc 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
@@ -37,11 +37,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
index 1567d7e7ef..17aa30b70d 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
@@ -35,16 +35,12 @@ intel_qat_matrix: true
docker_sut: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/dev/null"
target: "/etc/sysctl.d/80-vpp.conf"
- source: "/opt/boot/"
target: "/opt/boot/"
+ - source: "/opt/dpdk-24.11.1/"
+ target: "/opt/dpdk-24.11.1/"
- source: "/usr/bin/iperf3"
target: "/usr/bin/iperf3"
- source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
index 133ea10ba5..9f824b51e8 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
@@ -35,11 +35,5 @@ intel_qat_matrix: true
docker_tg: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
index 5a8fe6e5fa..45837a6dbd 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
@@ -38,11 +38,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
index 062b90af88..bf2b17abb1 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
@@ -38,11 +38,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.61.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.61.yaml
index 7b89421b1e..344108c41a 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.61.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.61.yaml
@@ -33,11 +33,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml
index f1da8fedcd..e6b2f48b72 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml
@@ -34,11 +34,5 @@ intel_800_matrix: "dpdk24.07"
docker_tg: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml
index fa86f2f54b..c06ae26221 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml
@@ -37,11 +37,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml
index 82891bab43..e0c84f4e6d 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml
@@ -37,11 +37,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml
index b8a42b5b10..9f9eb9b89b 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml
@@ -37,11 +37,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml
index 099287b1cd..c743c08efc 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml
@@ -37,11 +37,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml
index 5baea522eb..ee03a4b33b 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml
@@ -37,11 +37,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml
index e3cb0e8715..300515cd1d 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml
@@ -37,11 +37,5 @@ docker_tg: true
docker_volumes:
- source: "/usr/bin/ofed_info"
target: "/usr/bin/ofed_info"
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml
index fe11858803..0a356dfca8 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml
@@ -34,11 +34,5 @@ intel_800_matrix: "dpdk24.07"
docker_tg: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml
index 6b1291633c..3bd4664ac0 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml
@@ -33,11 +33,5 @@ intel_800_matrix: "dpdk24.07"
docker_tg: true
docker_volumes:
- - source: "/dev/hugepages"
- target: "/dev/hugepages"
- - source: "/dev/vfio"
- target: "/dev/vfio"
- - source: "/etc/sudoers"
- target: "/etc/sudoers"
- source: "/usr/lib/firmware/"
target: "/usr/lib/firmware/" \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/aws/tasks/main.yaml b/fdio.infra.ansible/roles/aws/tasks/main.yaml
index 750bf9f4f7..d6304f8bc7 100644
--- a/fdio.infra.ansible/roles/aws/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/aws/tasks/main.yaml
@@ -79,6 +79,14 @@
tags:
- conf-ssh
+- name: "Enable Password Less sudo"
+ ansible.builtin.lineinfile:
+ dest: "/etc/ssh/sshd_config"
+ regexp: "^#PermitRootLogin prohibit-password"
+ line: "PermitRootLogin yes"
+ tags:
+ - conf-ssh
+
- name: "Recursively Delete Other Configs"
ansible.builtin.file:
path: "/etc/ssh/sshd_config.d"
@@ -141,8 +149,9 @@
- name: "Add User"
ansible.builtin.user:
- createhome: "yes"
- groups: "adm,sudo"
+ append: true
+ createhome: true
+ groups: "admin,adm,sudo"
name: "testuser"
password: "$6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0"
shell: "/bin/bash"
@@ -169,3 +178,12 @@
validate: "/usr/sbin/visudo -cf %s"
tags:
- aws-sudoers
+
+- name: "sudoers nopasswd"
+ ansible.builtin.lineinfile:
+ path: "/etc/sudoers"
+ state: "present"
+ line: "%testuser ALL=(ALL) NOPASSWD: ALL"
+ validate: "/usr/sbin/visudo -cf %s"
+ tags:
+ - aws-sudoers \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/cleanup/files/reset_vppdevice.sh b/fdio.infra.ansible/roles/cleanup/files/reset_vppdevice.sh
deleted file mode 100644
index ede2db1273..0000000000
--- a/fdio.infra.ansible/roles/cleanup/files/reset_vppdevice.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env bash
-
-set -euo pipefail
-
-function die () {
- # Print the message to standard error end exit with error code specified
- # by the second argument.
- #
- # Hardcoded values:
- # - The default error message.
- # Arguments:
- # - ${1} - The whole error message, be sure to quote. Optional
- # - ${2} - the code to exit with, default: 1.
-
- set +eu
- warn "${1:-Unspecified run-time error occurred!}"
- exit "${2:-1}"
-}
-
-
-function set_eligibility_off {
- # Set Nomad eligibility to ineligible for scheduling. Fail otherwise.
-
- set -euo pipefail
-
- node_id="$(nomad node status | grep $(hostname) | cut -d ' ' -f 1)" || die
- node_status="$(nomad node status | grep $(hostname))" || die
-
- if [[ "${node_status}" != *"ineligible"* ]]; then
- nomad node eligibility -disable "${node_id}" || die
- node_status="$(nomad node status | grep $(hostname))" || die
- if [[ "${node_status}" != *"ineligible"* ]]; then
- die "Set eligibility off failed!"
- fi
- fi
-}
-
-
-function set_eligibility_on {
- # Set Nomad eligibility to eligible for scheduling. Fail otherwise.
-
- set -euo pipefail
-
- node_id="$(nomad node status | grep $(hostname) | cut -d ' ' -f 1)" || die
- node_status="$(nomad node status | grep $(hostname))" || die
-
- if [[ "${node_status}" == *"ineligible"* ]]; then
- nomad node eligibility -enable "${node_id}" || die
- node_status="$(nomad node status | grep $(hostname))" || die
- if [[ "${node_status}" == *"ineligible"* ]]; then
- die "Set eligibility on failed!"
- fi
- fi
-}
-
-
-function restart_vfs_service {
- # Stop and start VF serice. This will reinitialize VFs and driver mappings.
-
- set -euo pipefail
-
- warn "Restarting VFs service (this may take few minutes)..."
- sudo service csit-initialize-vfs stop || die "Failed to stop VFs service!"
- sudo service csit-initialize-vfs start || die "Failed to start VFs service!"
-}
-
-
-function wait_for_pending_containers {
- # Wait in loop for defined amount of time for pending containers to
- # gracefully quit them. If parameter force is specified. Force kill them.
-
- # Arguments:
- # - ${@} - Script parameters.
-
- set -euo pipefail
-
- retries=60
- wait_time=60
- containers=(docker ps --quiet --filter name=csit*)
-
- for i in $(seq 1 ${retries}); do
- mapfile -t pending_containers < <( ${containers[@]} ) || die
- warn "Waiting for pending containers [${pending_containers[@]}] ..."
- if [ ${#pending_containers[@]} -eq 0 ]; then
- break
- fi
- sleep "${wait_time}" || die
- done
- if [ ${#pending_containers[@]} -ne 0 ]; then
- if [[ "${1-}" == "force" ]]; then
- warn "Force killing [${pending_containers[@]}] ..."
- docker rm --force ${pending_containers[@]} || die
- else
- die "Still few containers running!"
- fi
- fi
-}
-
-
-function warn () {
- # Print the message to standard error.
- #
- # Arguments:
- # - ${@} - The text of the message.
-
- echo "$@" >&2
-}
-
-
-set_eligibility_off || die
-wait_for_pending_containers "${@}" || die
-restart_vfs_service || die
-set_eligibility_on || die
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml b/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
index 76704ab50d..269b0e523d 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
@@ -1,9 +1,9 @@
---
# file: tasks/clean_images.yaml
-- name: Clean Docker Images
+- name: "Clean Docker Images"
block:
- - name: Clean Images - Prefetch Docker Images
+ - name: "Clean Images - Prefetch Docker Images"
ansible.builtin.cron:
name: "Prefetch docker image {{ item }}"
minute: "10"
@@ -14,7 +14,7 @@
tags:
- prefetch-docker-images
- - name: Clean Images - Remove Dangling Docker Images
+ - name: "Clean Images - Remove Dangling Docker Images"
ansible.builtin.cron:
name: "Remove dangling docker images"
minute: "10"
@@ -22,15 +22,4 @@
weekday: "7"
job: "/usr/bin/docker rmi $(/usr/bin/docker images --filter 'dangling=true' -q)"
tags:
- - remove-docker-images-dangling
-
-# TODO: Disabled until all images will be in registry
-# - name: Clean Images - Prune Docker Images
-# cron:
-# name: "Prune docker images"
-# minute: "10"
-# hour: "6"
-# weekday: 7
-# job: "/usr/bin/docker image prune --all --force"
-# tags:
-# - prune-docker-images
+ - remove-docker-images-dangling \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml b/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
index dc739eb954..9c3dc173bc 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
@@ -1,37 +1,37 @@
---
# file: tasks/kill_containers.yaml
-- name: Kill Docker Containers
+- name: "Kill Docker Containers"
block:
- - name: Get Running Docker Containers
+ - name: "Get Running Docker Containers"
ansible.builtin.shell: "docker ps -a --filter name=DUT -q"
register: running_containers
changed_when: false
tags:
- kill-containers
- - name: Remove All Docker Containers
+ - name: "Remove All Docker Containers"
ansible.builtin.shell: "docker rm --force {{ item }}"
with_items: "{{ running_containers.stdout_lines }}"
tags:
- kill-containers
rescue:
- - name: Restart Docker Daemon
+ - name: "Restart Docker Daemon"
ansible.builtin.systemd:
name: "docker"
state: "restarted"
-- name: Kill LXC Containers
+- name: "Kill LXC Containers"
block:
- - name: Get Running LXC Containers
+ - name: "Get Running LXC Containers"
ansible.builtin.shell: "lxc-ls"
register: running_containers
changed_when: false
tags:
- kill-containers
- - name: Remove All LXC Containers
+ - name: "Remove All LXC Containers"
ansible.builtin.shell: "lxc-destroy --force -n {{ item }}"
with_items: "{{ running_containers.stdout_lines }}"
tags:
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml b/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
index 9ab98a8e57..94f6d0439e 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
@@ -1,9 +1,9 @@
---
# file: tasks/kill_process.yaml
-- name: Kill Process - {{ process }}
+- name: "Kill Process - {{ process }}"
block:
- - name: Get PID Of {{ process }}
+ - name: "Get PID Of {{ process }}"
ansible.builtin.shell: "ps -ef | grep -v grep | grep -w {{ process }} | awk '{print $2}'"
when:
- process is defined and process != ""
@@ -11,7 +11,7 @@
tags:
- kill-process
- - name: Safe Kill {{ process }}
+ - name: "Safe Kill {{ process }}"
ansible.builtin.shell: "kill {{ item }}"
with_items: "{{ running_processes.stdout_lines }}"
ignore_errors: true
@@ -27,7 +27,7 @@
tags:
- kill-process
- - name: Kill Process - Force Kill {{ process }}
+ - name: "Kill Process - Force Kill {{ process }}"
ansible.builtin.shell: "kill -9 {{ item }}"
with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}"
tags:
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/main.yaml b/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
index c97b9c5d7e..82e5a372bb 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
@@ -1,26 +1,20 @@
---
# file: tasks/main.yaml
-- name: tg specific
- include_tasks: tg.yaml
+- name: "tg specific"
+ include_tasks: "tg.yaml"
when: "'tg' in group_names"
tags:
- cleanup
-- name: sut specific
+- name: "sut specific"
include_tasks: sut.yaml
when: "'sut' in group_names"
tags:
- cleanup
-- name: vpp_device specific
- include_tasks: vpp_device.yaml
- when: "'vpp_device' in group_names"
- tags:
- - cleanup
-
-- name: nomad specific
- include_tasks: nomad.yaml
+- name: "nomad specific"
+ include_tasks: "nomad.yaml"
when: "'nomad' in group_names"
tags:
- cleanup
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml b/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
index 086a4eff7d..babf6be34a 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
@@ -1,10 +1,10 @@
---
# file: tasks/nomad.yaml
-- name: Host Cleanup
+- name: "Host Cleanup"
block:
- - name: Clean Images
- import_tasks: clean_images.yaml
+ - name: "Clean Images"
+ import_tasks: "clean_images.yaml"
vars:
images_to_prefetch_by_arch:
aarch64:
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml b/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml
index 652729bc30..a40b1d36c8 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml
@@ -1,14 +1,14 @@
---
# file: tasks/remove_package.yaml
-- name: Fix Corrupted APT
+- name: "Fix Corrupted APT"
ansible.builtin.shell: "dpkg --configure -a"
when:
- ansible_distribution == 'Ubuntu'
tags:
- remove-package
-- name: Remove Package - {{ package }}
+- name: "Remove Package - {{ package }}"
ansible.builtin.apt:
name: "{{ package }}"
force: true
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml b/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml
index 22bf596369..fa0d89816f 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml
@@ -89,9 +89,47 @@
tags:
- kill-containers
+ - name: "Set SSH port to 6001 if docker_sut"
+ set_fact:
+ ansible_port: 6001
+ when: docker_sut is defined
+ tags:
+ - remove-package
+
+ - name: Remove Packages - Remove VPP
+ import_tasks: remove_package.yaml
+ when: docker_sut is defined
+ vars:
+ package: "*vpp*"
+ tags:
+ - remove-package
+
+ - name: "Set SSH port to 6002 if docker_sut"
+ set_fact:
+ ansible_port: 6002
+ when: docker_sut is defined
+ tags:
+ - remove-package
+
- name: Remove Packages - Remove VPP
import_tasks: remove_package.yaml
+ when: docker_sut is defined
vars:
package: "*vpp*"
tags:
- remove-package
+
+ - name: "Set SSH port to 22 if docker_sut"
+ set_fact:
+ ansible_port: 22
+ when: docker_sut is defined
+ tags:
+ - remove-package
+
+ - name: Remove Packages - Remove VPP
+ import_tasks: remove_package.yaml
+ when: docker_sut is undefined
+ vars:
+ package: "*vpp*"
+ tags:
+ - remove-package \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml b/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
index 8c0162df2c..423fd43b1d 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
@@ -1,10 +1,10 @@
---
# file: tasks/tg.yaml
-- name: Host Cleanup
+- name: "Host Cleanup"
block:
- - name: Kill Processes - TRex
- import_tasks: kill_process.yaml
+ - name: "Kill Processes - TRex"
+ import_tasks: "kill_process.yaml"
vars:
process: "_t-rex"
when:
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml b/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml
deleted file mode 100644
index c97fa0cde5..0000000000
--- a/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: tasks/vpp_device.yaml
-
-- name: Host Cleanup
- block:
- - name: Reset vpp_device Binary
- ansible.builtin.copy:
- src: "files/reset_vppdevice.sh"
- dest: "/usr/local/bin"
- owner: "root"
- group: "root"
- mode: "744"
- tags:
- - reset-sriov
-
- - name: Clean Images
- import_tasks: clean_images.yaml
- vars:
- images_to_prefetch_by_arch:
- aarch64:
- - "fdiotools/builder-ubuntu2004:prod-aarch64"
- - "fdiotools/builder-ubuntu1804:prod-aarch64"
- - "fdiotools/builder-centos8:prod-aarch64"
- x86_64:
- - "fdiotools/builder-ubuntu2004:prod-x86_64"
- - "fdiotools/builder-ubuntu1804:prod-x86_64"
- - "fdiotools/builder-debian10:prod-x86_64"
- - "fdiotools/builder-debian9:prod-x86_64"
- - "fdiotools/builder-centos8:prod-x86_64"
- - "fdiotools/builder-centos7:prod-x86_64"
- tags:
- - clean-images
diff --git a/fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j2 b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j2
index 810374527c..10532fcfde 100644
--- a/fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j2
+++ b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j2
@@ -16,6 +16,15 @@ services:
restart: "always"
shm_size: "4G"
volumes:
+ - type: "bind"
+ source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - type: "bind"
+ source: "/dev/vfio"
+ target: "/dev/vfio"
+ - type: "bind"
+ source: "/etc/sudoers"
+ target: "/etc/sudoers"
{% for volume in docker_volumes %}
- type: "bind"
source: "{{ volume.source }}"
@@ -38,6 +47,15 @@ services:
restart: "always"
shm_size: "4G"
volumes:
+ - type: "bind"
+ source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - type: "bind"
+ source: "/dev/vfio"
+ target: "/dev/vfio"
+ - type: "bind"
+ source: "/etc/sudoers"
+ target: "/etc/sudoers"
{% for volume in docker_volumes %}
- type: "bind"
source: "{{ volume.source }}"
diff --git a/fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j2 b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j2
index c4d53c90c2..9b03c65409 100644
--- a/fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j2
+++ b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j2
@@ -17,8 +17,17 @@ services:
privileged: true
restart: "always"
shm_size: "4G"
-{% if docker_volumes is defined and docker_volumes|length > 0 %}
volumes:
+ - type: "bind"
+ source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - type: "bind"
+ source: "/dev/vfio"
+ target: "/dev/vfio"
+ - type: "bind"
+ source: "/etc/sudoers"
+ target: "/etc/sudoers"
+{% if docker_volumes is defined and docker_volumes|length > 0 %}
{% for volume in docker_volumes %}
- type: "bind"
source: "{{ volume.source }}"
@@ -43,8 +52,17 @@ services:
privileged: true
restart: "always"
shm_size: "4G"
-{% if docker_volumes is defined and docker_volumes|length > 0 %}
volumes:
+ - type: "bind"
+ source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - type: "bind"
+ source: "/dev/vfio"
+ target: "/dev/vfio"
+ - type: "bind"
+ source: "/etc/sudoers"
+ target: "/etc/sudoers"
+{% if docker_volumes is defined and docker_volumes|length > 0 %}
{% for volume in docker_volumes %}
- type: "bind"
source: "{{ volume.source }}"
diff --git a/fdio.infra.ansible/roles/dpdk/defaults/main.yaml b/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
index 22e960e98c..a5355eab4e 100644
--- a/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
@@ -19,5 +19,5 @@ packages_by_arch:
dpdk_target_dir: "/opt"
dpdk_version:
- - "24.07"
+ - "24.11.1"
dpdk_url: "https://fast.dpdk.org/rel"
diff --git a/fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml b/fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml
index d5afe2d3f8..0d67c9732c 100644
--- a/fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml
+++ b/fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml
@@ -17,6 +17,11 @@
when: dpdk_downloaded
register: dpdk_extracted
+- name: "Rename folder"
+ ansible.builtin.command: "mv {{ dpdk_target_dir }}/dpdk-stable-{{ item }} {{ dpdk_target_dir }}/dpdk-{{ item }}"
+ ignore_errors: true
+ when: dpdk_extracted
+
- name: "Compile Release I"
ansible.builtin.command: "meson -Dexamples=l3fwd build"
args:
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf
index c165d52399..43002d1b8a 100644
--- a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf
@@ -38,7 +38,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-05fc62a89ea9fdae4"
+ default = "ami-06ea2ad776e2a8461"
}
variable "tg_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/main.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/main.tf
index 94cac297c2..155cbd6032 100644
--- a/fdio.infra.terraform/terraform-aws-1n-c6in/main.tf
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/main.tf
@@ -180,27 +180,32 @@ resource "null_resource" "deploy_tg" {
}
}
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg
+ ]
-resource "null_resource" "deploy_topology" {
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
depends_on = [
aws_instance.tg
]
- provisioner "ansible" {
- plays {
- playbook {
- file_path = var.ansible_topology_path
- }
- hosts = ["local"]
- extra_vars = {
- ansible_python_interpreter = local.ansible_python_executable
- testbed_name = local.testbed_name
- cloud_topology = local.topology_name
- tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
- tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
- tg_public_ip = aws_instance.tg.public_ip
- public_ip_list = "${aws_instance.tg.public_ip}"
- }
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
}
- }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf
index 4af15ed579..923ae7fb74 100644
--- a/fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf
@@ -38,7 +38,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-05fc62a89ea9fdae4"
+ default = "ami-06ea2ad776e2a8461"
}
variable "tg_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf
index 9a2b04082e..f85ae03dc2 100644
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf
@@ -38,7 +38,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-05fc62a89ea9fdae4"
+ default = "ami-06ea2ad776e2a8461"
}
variable "tg_associate_public_ip_address" {
@@ -74,7 +74,7 @@ variable "tg_source_dest_check" {
variable "sut1_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-04de4ffdd0dfa22e8"
+ default = "ami-01d325fa583a17daa"
}
variable "sut1_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf b/fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf
index a8450790b3..fea82b0a5c 100644
--- a/fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf
@@ -50,7 +50,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-05fc62a89ea9fdae4"
+ default = "ami-06ea2ad776e2a8461"
}
variable "tg_associate_public_ip_address" {
@@ -86,7 +86,7 @@ variable "tg_source_dest_check" {
variable "sut1_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-04de4ffdd0dfa22e8"
+ default = "ami-01d325fa583a17daa"
}
variable "sut1_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf b/fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf
index 2e6d58b505..891b2054c0 100644
--- a/fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf
@@ -38,7 +38,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-05fc62a89ea9fdae4"
+ default = "ami-09a82dc14ad8658ce"
}
variable "tg_associate_public_ip_address" {
@@ -74,7 +74,7 @@ variable "tg_source_dest_check" {
variable "sut1_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-0c0f39556bbb626b2"
+ default = "ami-0f79fc4ee6157a1b4"
}
variable "sut1_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf
index b706d77f00..9002e55b8b 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf
@@ -1,7 +1,7 @@
variable "region" {
description = "AWS Region."
type = string
- default = "eu-north-1"
+ default = "us-east-1"
}
variable "vault_provider_address" {
@@ -30,7 +30,7 @@ variable "vault_name" {
variable "application_bucket" {
description = "The name of the bucket."
type = string
- default = "elasticbeanstalk-eu-north-1-407116685360"
+ default = "elasticbeanstalk-us-east-1-407116685360"
}
variable "application_description" {
@@ -42,7 +42,7 @@ variable "application_description" {
variable "application_name" {
description = "Name of the Beanstalk Application."
type = string
- default = "fdio-csit-dash-app-m7g"
+ default = "fdio-csit-dash-app-m8g"
}
variable "application_source" {
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf
index cd4761e34c..95a01e3a64 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf
@@ -2,10 +2,10 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.31.0"
+ version = ">= 5.84.0"
}
vault = {
- version = ">= 3.23.0"
+ version = ">= 4.6.0"
}
}
required_version = ">= 1.4.2"
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf
index 9f115cd6c6..53413c55dc 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf
@@ -1,5 +1,6 @@
-data "vault_generic_secret" "fdio_docs" {
- path = "kv/secret/data/etl/fdio_docs"
+data "vault_kv_secret_v2" "csit_docs" {
+ mount = "kv"
+ name = "etl/csit_docs"
}
data "vault_aws_access_credentials" "creds" {
@@ -11,8 +12,8 @@ module "elastic_beanstalk_application" {
source = "../terraform-aws-elastic-beanstalk-application"
# application
- application_description = "FD.io CDASH M7G"
- application_name = "fdio-csit-dash-app-m7g"
+ application_description = "FD.io CDASH M8G"
+ application_name = "fdio-csit-dash-app-m8g"
appversion_lifecycle_service_role_arn = "arn:aws:iam::407116685360:role/aws-service-role/elasticbeanstalk.amazonaws.com/AWSServiceRoleForElasticBeanstalk"
appversion_lifecycle_max_count = 10
appversion_lifecycle_delete_source_from_s3 = false
@@ -22,7 +23,7 @@ module "elastic_beanstalk_environment" {
source = "../terraform-aws-elastic-beanstalk-environment"
# environment
- application_name = "fdio-csit-dash-app-m7g"
+ application_name = "fdio-csit-dash-app-m8g"
# vpc
vpc_cidr_block = "10.0.0.0/16"
@@ -31,22 +32,22 @@ module "elastic_beanstalk_environment" {
vpc_instance_tenancy = "default"
# subnet
- subnet_a_availability_zone = "eu-north-1a"
+ subnet_a_availability_zone = "us-east-1a"
subnet_a_cidr_block = "10.0.0.0/20"
- subnet_b_availability_zone = "eu-north-1b"
+ subnet_b_availability_zone = "us-east-1b"
subnet_b_cidr_block = "10.0.16.0/20"
# environment
environment_application = module.elastic_beanstalk_application.application_name
environment_description = module.elastic_beanstalk_application.application_description
- environment_name = "fdio-csit-dash-env-m7g"
- environment_solution_stack_name = "64bit Amazon Linux 2023 v4.0.6 running Python 3.11"
+ environment_name = "fdio-csit-dash-env-m8g"
+ environment_solution_stack_name = "64bit Amazon Linux 2023 v4.3.2 running Python 3.12"
environment_tier = "WebServer"
environment_wait_for_ready_timeout = "25m"
environment_version_label = ""
# aws:ec2:instances
- instances_instance_types = "m7g.2xlarge"
+ instances_instance_types = "m8g.2xlarge"
# aws:ec2:vpc
associate_public_ip_address = true
@@ -57,7 +58,7 @@ module "elastic_beanstalk_environment" {
# aws:elasticbeanstalk:environment
environment_loadbalancer_type = "application"
- environment_loadbalancer_ssl_certificate_id = "arn:aws:acm:eu-north-1:407116685360:certificate/3ef3c6ae-f1d4-49f0-a8cd-5d090991bf73"
+ environment_loadbalancer_ssl_certificate_id = "arn:aws:acm:us-east-1:407116685360:certificate/3439b8aa-4f07-496f-a2de-e38159050c85"
# aws:elasticbeanstalk:environment:process:default
environment_process_default_healthcheck_interval = 10
@@ -117,8 +118,8 @@ module "elastic_beanstalk_environment" {
# aws:elasticbeanstalk:application:environment
environment_variables = {
- "AWS_ACCESS_KEY_ID" = data.vault_generic_secret.fdio_docs.data["access_key"]
- "AWS_SECRET_ACCESS_KEY" = data.vault_generic_secret.fdio_docs.data["secret_key"]
- "AWS_DEFAULT_REGION" = data.vault_generic_secret.fdio_docs.data["region"]
+ "AWS_ACCESS_KEY_ID" = data.vault_kv_secret_v2.csit_docs.data["access_key"]
+ "AWS_SECRET_ACCESS_KEY" = data.vault_kv_secret_v2.csit_docs.data["secret_key"]
+ "AWS_DEFAULT_REGION" = data.vault_kv_secret_v2.csit_docs.data["region"]
}
}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf
index d7ff1d19ff..968cd4c962 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf
@@ -1,7 +1,7 @@
variable "region" {
description = "AWS Region."
type = string
- default = "eu-north-1"
+ default = "us-east-1"
}
variable "vault_provider_address" {
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf
index 153890e01b..356c0aa582 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf
@@ -2,16 +2,16 @@ terraform {
backend "consul" {
address = "10.30.51.24:8500"
scheme = "http"
- path = "terraform/dash_m7g"
+ path = "terraform/dash_m8g"
}
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 5.31.0"
+ version = ">= 5.83.1"
}
vault = {
- version = ">= 3.23.0"
+ version = ">= 4.6.0"
}
}
- required_version = ">= 1.4.2"
+ required_version = ">= 1.10.4"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2410.hcl.tftpl
deleted file mode 100644
index 96fef71e17..0000000000
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2410.hcl.tftpl
+++ /dev/null
@@ -1,59 +0,0 @@
-job "${job_name}" {
- datacenters = ["${datacenters}"]
- type = "${type}"
- periodic {
- cron = "${cron}"
- prohibit_overlap = "${prohibit_overlap}"
- time_zone = "${time_zone}"
- }
- group "${job_name}" {
- restart {
- mode = "fail"
- }
- constraint {
- attribute = "$${attr.cpu.arch}"
- operator = "!="
- value = "arm64"
- }
- constraint {
- attribute = "$${node.class}"
- value = "builder"
- }
- task "${job_name}" {
- artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_device_rls2410.py"
- destination = "local/"
- }
- artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_device.json"
- destination = "local/"
- }
- driver = "docker"
- config {
- image = "${image}"
- command = "gluesparksubmit"
- args = [
- "--driver-memory", "20g",
- "--executor-memory", "20g",
- "--executor-cores", "2",
- "--master", "local[2]",
- "coverage_device_rls2410.py"
- ]
- work_dir = "/local"
- }
- env {
- AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
- AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
- AWS_DEFAULT_REGION = "${aws_default_region}"
- OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
- OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
- OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
- ${ envs }
- }
- resources {
- cpu = ${cpu}
- memory = ${memory}
- }
- }
- }
-}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack.hcl.tftpl
index 974e915101..8aa364388d 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_hoststack_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_hoststack.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "coverage_hoststack_rls2410.py"
+ "coverage_hoststack.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr.hcl.tftpl
index c2c282752b..1a2db579a3 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_mrr_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_mrr.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "coverage_mrr_rls2410.py"
+ "coverage_mrr.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr.hcl.tftpl
index ee4771b0b3..b294c390cd 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_ndrpdr_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_ndrpdr.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "coverage_ndrpdr_rls2410.py"
+ "coverage_ndrpdr.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf.hcl.tftpl
index d31ebd81de..83bbceb109 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_reconf_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_reconf.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "coverage_reconf_rls2410.py"
+ "coverage_reconf.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak.hcl.tftpl
index 9d71dd8b9b..871e4f79a3 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_soak_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/coverage_soak.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "coverage_soak_rls2410.py"
+ "coverage_soak.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack.hcl.tftpl
index 79397eda20..c7a9f60730 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_hoststack_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_hoststack.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "iterative_hoststack_rls2410.py"
+ "iterative_hoststack.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr.hcl.tftpl
index c1c298d4a4..3274596680 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_mrr_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_mrr.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "iterative_mrr_rls2410.py"
+ "iterative_mrr.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr.hcl.tftpl
index 42202f30e2..0d9f4bb250 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_ndrpdr_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_ndrpdr.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "iterative_ndrpdr_rls2410.py"
+ "iterative_ndrpdr.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf.hcl.tftpl
index 4a7773ca46..5045edbb33 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_reconf_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_reconf.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "iterative_reconf_rls2410.py"
+ "iterative_reconf.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak-rls2410.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak.hcl.tftpl
index 3759f4bb46..c569a43b2f 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak-rls2410.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak.hcl.tftpl
@@ -21,7 +21,7 @@ job "${job_name}" {
}
task "${job_name}" {
artifact {
- source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_soak_rls2410.py"
+ source = "https://raw.githubusercontent.com/FDio/csit/master/csit.infra.etl/iterative_soak.py"
destination = "local/"
}
artifact {
@@ -37,7 +37,7 @@ job "${job_name}" {
"--executor-memory", "20g",
"--executor-cores", "2",
"--master", "local[2]",
- "iterative_soak_rls2410.py"
+ "iterative_soak.py"
]
work_dir = "/local"
}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
index 57baa24276..b9027a8ceb 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
@@ -3,9 +3,9 @@ data "vault_kv_secret_v2" "fdio_logs" {
name = "etl/fdio_logs"
}
-data "vault_kv_secret_v2" "fdio_docs" {
+data "vault_kv_secret_v2" "csit_docs" {
mount = "kv"
- name = "etl/fdio_docs"
+ name = "etl/csit_docs"
}
module "etl" {
@@ -18,9 +18,9 @@ module "etl" {
aws_access_key_id = data.vault_kv_secret_v2.fdio_logs.data.access_key
aws_secret_access_key = data.vault_kv_secret_v2.fdio_logs.data.secret_key
aws_default_region = data.vault_kv_secret_v2.fdio_logs.data.region
- out_aws_access_key_id = data.vault_kv_secret_v2.fdio_docs.data.access_key
- out_aws_secret_access_key = data.vault_kv_secret_v2.fdio_docs.data.secret_key
- out_aws_default_region = data.vault_kv_secret_v2.fdio_docs.data.region
+ out_aws_access_key_id = data.vault_kv_secret_v2.csit_docs.data.access_key
+ out_aws_secret_access_key = data.vault_kv_secret_v2.csit_docs.data.secret_key
+ out_aws_default_region = data.vault_kv_secret_v2.csit_docs.data.region
cron = "0 30 0 * * * *"
datacenters = ["yul1"]
job_name = each.key
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
index e8ddeb086c..d0d9fa171f 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
@@ -55,51 +55,47 @@ variable "nomad_jobs" {
memory = 50000
},
{
- job_name = "etl-trending-hoststack"
+ job_name = "etl-iterative-hoststack"
memory = 50000
},
{
- job_name = "etl-iterative-hoststack-rls2410"
+ job_name = "etl-iterative-mrr"
memory = 50000
},
{
- job_name = "etl-iterative-mrr-rls2410"
+ job_name = "etl-iterative-ndrpdr"
memory = 50000
},
{
- job_name = "etl-iterative-ndrpdr-rls2410"
+ job_name = "etl-iterative-reconf"
memory = 50000
},
{
- job_name = "etl-iterative-reconf-rls2410"
+ job_name = "etl-iterative-soak"
memory = 50000
},
{
- job_name = "etl-iterative-soak-rls2410"
+ job_name = "etl-coverage-hoststack"
memory = 50000
},
{
- job_name = "etl-coverage-device-rls2410"
+ job_name = "etl-coverage-mrr"
memory = 50000
},
{
- job_name = "etl-coverage-hoststack-rls2410"
+ job_name = "etl-coverage-ndrpdr"
memory = 50000
},
{
- job_name = "etl-coverage-mrr-rls2410"
+ job_name = "etl-coverage-reconf"
memory = 50000
},
{
- job_name = "etl-coverage-ndrpdr-rls2410"
+ job_name = "etl-coverage-soak"
memory = 50000
},
{
- job_name = "etl-coverage-reconf-rls2410"
- memory = 50000
- },
- {
- job_name = "etl-coverage-soak-rls2410"
+ job_name = "etl-trending-hoststack"
memory = 50000
},
{
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
index ffe25bb42e..cf67cc25c7 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
@@ -10,8 +10,8 @@ terraform {
version = ">= 2.3.0"
}
vault = {
- version = ">= 4.3.0"
+ version = ">= 4.6.0"
}
}
- required_version = ">= 1.5.4"
+ required_version = ">= 1.10.4"
}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf
deleted file mode 100644
index 08c3ca8b73..0000000000
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf
+++ /dev/null
@@ -1,23 +0,0 @@
-module "fdio-logs" {
- # fdio logs iam
- source = "../"
- name = "dynamic-aws-creds-vault-fdio-logs"
- aws_access_key = var.aws_access_key
- aws_secret_key = var.aws_secret_key
-}
-
-module "fdio-docs" {
- # fdio docs iam
- source = "../"
- name = "dynamic-aws-creds-vault-fdio-docs"
- aws_access_key = var.aws_access_key
- aws_secret_key = var.aws_secret_key
-}
-
-module "fdio-csit-jenkins" {
- # fdio csit jenkins iam
- source = "../"
- name = "dynamic-aws-creds-vault-fdio-csit-jenkins"
- aws_access_key = var.aws_access_key
- aws_secret_key = var.aws_secret_key
-}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf
index 814121986f..6a2d42e681 100644
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf
@@ -1,4 +1,4 @@
-resource "vault_aws_secret_backend" "aws" {
+resource "vault_aws_secret_backend" "aws_secret_backend" {
access_key = var.aws_access_key
secret_key = var.aws_secret_key
path = "${var.name}-path"
@@ -7,34 +7,18 @@ resource "vault_aws_secret_backend" "aws" {
max_lease_ttl_seconds = "0"
}
-resource "vault_aws_secret_backend_role" "admin" {
- backend = vault_aws_secret_backend.aws.path
+resource "vault_aws_secret_backend_role" "aws_secret_backend_role" {
+ backend = vault_aws_secret_backend.aws_secret_backend.path
name = "${var.name}-role"
credential_type = "iam_user"
- policy_document = <<EOF
-{
- "Version": "2012-10-17",
- "Statement": [
- {
- "Effect": "Allow",
- "Action": [
- "iam:*",
- "ec2:*",
- "s3:*",
- "elasticbeanstalk:*"
- ],
- "Resource": "*"
- }
- ]
-}
-EOF
+ policy_document = var.policy_document
}
output "backend" {
- value = vault_aws_secret_backend.aws.path
+ value = vault_aws_secret_backend.aws_secret_backend.path
}
output "role" {
- value = vault_aws_secret_backend_role.admin.name
+ value = vault_aws_secret_backend_role.aws_secret_backend_role.name
}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf
index 2545345185..d7a2f4a987 100644
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf
@@ -15,3 +15,8 @@ variable "name" {
description = "Vault path"
type = string
}
+
+variable "policy_document" {
+ description = "AWS policy document"
+ type = string
+}
diff --git a/fdio.infra.terraform/terraform-vault-fdio-creds/main.tf b/fdio.infra.terraform/terraform-vault-fdio-creds/main.tf
new file mode 100644
index 0000000000..4469bb131c
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-fdio-creds/main.tf
@@ -0,0 +1,86 @@
+module "fdio-logs" {
+ # fdio logs iam
+ source = "../terraform-vault-aws-secret-backend"
+ name = "dynamic-aws-creds-vault-fdio-logs"
+ aws_access_key = var.aws_access_key
+ aws_secret_key = var.aws_secret_key
+ policy_document = jsonencode({
+ Statement = [
+ {
+ Action = [
+ "iam:*",
+ "ec2:*",
+ "s3:*",
+ "elasticbeanstalk:*",
+ "ssm:*",
+ "cloudformation:*",
+ "logs:*",
+ "elasticloadbalancing:*",
+ "autoscaling:*",
+ "cloudwatch:*"
+ ]
+ Effect = "Allow"
+ Resource = "*"
+ },
+ ]
+ Version = "2012-10-17"
+ })
+}
+
+module "csit-cdash" {
+ # csit cdash iam
+ source = "../terraform-vault-aws-secret-backend"
+ name = "dynamic-aws-creds-vault-cdash"
+ aws_access_key = var.aws_access_key
+ aws_secret_key = var.aws_secret_key
+ policy_document = jsonencode({
+ Statement = [
+ {
+ Action = [
+ "iam:*",
+ "ec2:*",
+ "s3:*",
+ "elasticbeanstalk:*",
+ "ssm:*",
+ "cloudformation:*",
+ "logs:*",
+ "elasticloadbalancing:*",
+ "autoscaling:*",
+ "cloudwatch:*"
+ ]
+ Effect = "Allow"
+ Resource = "*"
+ },
+ ]
+ Version = "2012-10-17"
+ })
+}
+
+module "fdio-csit-jenkins" {
+ # fdio csit jenkins iam
+ source = "../terraform-vault-aws-secret-backend"
+ name = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+ aws_access_key = var.aws_access_key
+ aws_secret_key = var.aws_secret_key
+ policy_document = jsonencode({
+ Statement = [
+ {
+ Action = [
+ "iam:*",
+ "ec2:*",
+ "s3:*",
+ "elasticbeanstalk:*",
+ "ssm:*",
+ "cloudformation:*",
+ "logs:*",
+ "elasticloadbalancing:*",
+ "autoscaling:*",
+ "cloudwatch:*"
+ ]
+ Effect = "Allow"
+ Resource = "*"
+ },
+ ]
+ Version = "2012-10-17"
+ })
+}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf b/fdio.infra.terraform/terraform-vault-fdio-creds/providers.tf
index 102fd31b87..102fd31b87 100644
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf
+++ b/fdio.infra.terraform/terraform-vault-fdio-creds/providers.tf
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf b/fdio.infra.terraform/terraform-vault-fdio-creds/variables.tf
index b1f64eccf2..b1f64eccf2 100644
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf
+++ b/fdio.infra.terraform/terraform-vault-fdio-creds/variables.tf
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf b/fdio.infra.terraform/terraform-vault-fdio-creds/versions.tf
index c573731d65..c573731d65 100644
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf
+++ b/fdio.infra.terraform/terraform-vault-fdio-creds/versions.tf
diff --git a/fdio.infra/packer-aws-sut/ubuntu_noble_arm.pkr.hcl b/fdio.infra/packer-aws-sut/ubuntu_noble_arm.pkr.hcl
index 1d3c78ee14..7c2ac3b194 100644
--- a/fdio.infra/packer-aws-sut/ubuntu_noble_arm.pkr.hcl
+++ b/fdio.infra/packer-aws-sut/ubuntu_noble_arm.pkr.hcl
@@ -15,7 +15,7 @@ variable "first_run_commands" {
]
}
-variable "last_run_commands" {
+variable "last_run_commands_sut" {
description = "Commands to run after deployment via remote-exec"
type = list(string)
default = [
@@ -58,10 +58,11 @@ source "amazon-ebs" "csit_ubuntu_noble_arm_sut" {
volume_type = "gp2"
}
force_deregister = true
- region = "eu-west-1"
+ region = "us-east-1"
skip_create_ami = false
- source_ami = "ami-099a546c02844706e"
+ source_ami = "ami-0932ffb346ea84d48"
ssh_username = "ubuntu"
+ ssh_timeout = "60m"
}
build {
@@ -78,11 +79,10 @@ build {
groups = ["sut_aws"]
extra_arguments = [
"--extra-vars", "ansible_ssh_pass=${var.ansible_provision_pwd}",
- "--extra-vars", "ansible_python_interpreter=${var.ansible_python_executable}",
"--extra-vars", "aws=true"
]
}
provisioner "shell" {
- inline = var.last_run_commands
+ inline = var.last_run_commands_sut
}
} \ No newline at end of file
diff --git a/fdio.infra/packer-aws-sut/ubuntu_noble_x86.pkr.hcl b/fdio.infra/packer-aws-sut/ubuntu_noble_x86.pkr.hcl
index 1b925e0404..a9e0dc7dfb 100644
--- a/fdio.infra/packer-aws-sut/ubuntu_noble_x86.pkr.hcl
+++ b/fdio.infra/packer-aws-sut/ubuntu_noble_x86.pkr.hcl
@@ -15,7 +15,7 @@ variable "first_run_commands" {
]
}
-variable "last_run_commands" {
+variable "last_run_commands_sut" {
description = "Commands to run after deployment via remote-exec"
type = list(string)
default = [
@@ -23,6 +23,15 @@ variable "last_run_commands" {
]
}
+variable "last_run_commands_tg" {
+ description = "Commands to run after deployment via remote-exec"
+ type = list(string)
+ default = [
+ "sudo sed -i 's/Unattended-Upgrade \"1\"/Unattended-Upgrade \"0\"/g' /etc/apt/apt.conf.d/20auto-upgrades",
+ "sudo systemctl start csit-initialize-docker-tg.service"
+ ]
+}
+
variable "ansible_file_path" {
description = "Path to Ansible playbook"
type = string
@@ -51,7 +60,7 @@ source "amazon-ebs" "csit_ubuntu_noble_x86_sut" {
ami_name = "csit_ubuntu_noble_x86_sut"
ami_description = "CSIT SUT image based on Ubuntu noble"
ena_support = true
- instance_type = "c5n.4xlarge"
+ instance_type = "c6in.4xlarge"
launch_block_device_mappings {
device_name = "/dev/sda1"
volume_size = 40
@@ -62,14 +71,14 @@ source "amazon-ebs" "csit_ubuntu_noble_x86_sut" {
skip_create_ami = false
source_ami = "ami-0084a47cc718c111a"
ssh_username = "ubuntu"
- ssh_timeout = "30m"
+ ssh_timeout = "60m"
}
source "amazon-ebs" "csit_ubuntu_noble_x86_tg" {
ami_name = "csit_ubuntu_noble_x86_tg"
ami_description = "CSIT TG image based on Ubuntu noble"
ena_support = true
- instance_type = "c5n.4xlarge"
+ instance_type = "c6in.4xlarge"
launch_block_device_mappings {
device_name = "/dev/sda1"
volume_size = 40
@@ -80,7 +89,7 @@ source "amazon-ebs" "csit_ubuntu_noble_x86_tg" {
skip_create_ami = false
source_ami = "ami-0084a47cc718c111a"
ssh_username = "ubuntu"
- ssh_timeout = "30m"
+ ssh_timeout = "60m"
}
build {
@@ -102,7 +111,7 @@ build {
]
}
provisioner "shell" {
- inline = var.last_run_commands
+ inline = var.last_run_commands_sut
}
}
@@ -126,6 +135,6 @@ build {
]
}
provisioner "shell" {
- inline = var.last_run_commands
+ inline = var.last_run_commands_tg
}
}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4
index dbe510ec58..445f524195 100644
--- a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4
@@ -1,4 +1,4 @@
menuentry "Install s73-t34-sut2" {
- linux /casper/ubuntu-noble-arm64/vmlinuz ip=:::::eno1:dhcp url=http://10.30.51.24:8081/ubuntu_noble_arm64/ubuntu-24.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_noble_arm64/90:e2:ba:49:db:b4/ ---
+ linux /casper/ubuntu-noble-arm64/vmlinuz ip=dhcp url=http://10.30.51.24:8081/ubuntu_noble_arm64/ubuntu-24.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_noble_arm64/90:e2:ba:49:db:b4/ ---
initrd /casper/ubuntu-noble-arm64/initrd
} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32
index 2f55b12953..e2af022b54 100644
--- a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32
@@ -1,4 +1,4 @@
menuentry "Install s72-t34-sut1" {
- linux /casper/ubuntu-noble-arm64/vmlinuz ip=::::eno1::dhcp url=https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_noble_arm64/90:e2:ba:55:be:32/ ---
+ linux /casper/ubuntu-noble-arm64/vmlinuz ip=dhcp url=http://10.30.51.24:8081/ubuntu_noble_arm64/ubuntu-24.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_noble_arm64/90:e2:ba:55:be:32/ ---
initrd /casper/ubuntu-noble-arm64/initrd
} \ No newline at end of file
diff --git a/resources/api/vpp/supported_crcs.yaml b/resources/api/vpp/supported_crcs.yaml
index 2a65497d65..c53e86e8f4 100644
--- a/resources/api/vpp/supported_crcs.yaml
+++ b/resources/api/vpp/supported_crcs.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -55,10 +55,6 @@
af_xdp_create_v3: '0xcf4b1827' # perf
af_xdp_create_v3_reply: '0x5383d31f' # perf
- # plugins/avf/avf.api
- avf_create: '0xdaab8ae2' # dev
- avf_create_reply: '0x5383d31f' # dev
-
# vnet/bonding/bond.api
bond_add_member: '0xe7d14948' # perf
bond_add_member_reply: '0xe8d4e804' # perf
@@ -127,6 +123,12 @@
# TODO: Which test to run to verify det44_* messages?
# dhcp_proxy_dump / details # honeycomb
+ # vnet/dev/dev.api
+ dev_attach: '0x44b725fc'
+ dev_attach_reply: '0x6082b181'
+ dev_create_port_if: '0xdbdf06f3'
+ dev_create_port_if_reply: '0x243c2374'
+
# vnet/flow/flow.api
flow_add_v2: '0x5b757558' # dev
flow_add_v2_reply: '0x8587dc85' # dev
diff --git a/resources/job_specs/report_coverage/2n-grc/dpdk-00.md b/resources/job_specs/report_coverage/2n-grc/dpdk-00.md
new file mode 100644
index 0000000000..dd47080c0b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/dpdk-00.md
@@ -0,0 +1,23 @@
+# 2n-grc
+### mellanox-cx556a
+#### drv_mlx5_core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-00.md b/resources/job_specs/report_coverage/2n-grc/ip4-00.md
new file mode 100644
index 0000000000..9064ce1026
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-00.md
@@ -0,0 +1,74 @@
+# 2n-grc
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-01.md b/resources/job_specs/report_coverage/2n-grc/ip4-01.md
new file mode 100644
index 0000000000..6ac8301ed2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-01.md
@@ -0,0 +1,34 @@
+# 2n-grc
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-02.md b/resources/job_specs/report_coverage/2n-grc/ip4-02.md
new file mode 100644
index 0000000000..1a066cddd1
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-02.md
@@ -0,0 +1,24 @@
+# 2n-grc
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-03.md b/resources/job_specs/report_coverage/2n-grc/ip4-03.md
new file mode 100644
index 0000000000..50a53bc000
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-03.md
@@ -0,0 +1,24 @@
+# 2n-grc
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-04.md b/resources/job_specs/report_coverage/2n-grc/ip4-04.md
new file mode 100644
index 0000000000..a1dab07a4b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-04.md
@@ -0,0 +1,24 @@
+# 2n-grc
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-05.md b/resources/job_specs/report_coverage/2n-grc/ip4-05.md
new file mode 100644
index 0000000000..f1731ef504
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-05.md
@@ -0,0 +1,20 @@
+# 2n-grc
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-06.md b/resources/job_specs/report_coverage/2n-grc/ip4-06.md
new file mode 100644
index 0000000000..88131121d7
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-06.md
@@ -0,0 +1,26 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4-07.md b/resources/job_specs/report_coverage/2n-grc/ip4-07.md
new file mode 100644
index 0000000000..5486c9a792
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4-07.md
@@ -0,0 +1,36 @@
+# 2n-grc
+## ./ip4
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip4tun-00.md b/resources/job_specs/report_coverage/2n-grc/ip4tun-00.md
new file mode 100644
index 0000000000..5d242fc231
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip4tun-00.md
@@ -0,0 +1,64 @@
+# 2n-grc
+## ./ip4_tunnels
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+##### ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1024tun-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip6-00.md b/resources/job_specs/report_coverage/2n-grc/ip6-00.md
new file mode 100644
index 0000000000..02cd03ad49
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip6-00.md
@@ -0,0 +1,34 @@
+# 2n-grc
+## ./ip6
+### mellanox-cx556a
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/ip6-01.md b/resources/job_specs/report_coverage/2n-grc/ip6-01.md
new file mode 100644
index 0000000000..d814f35735
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/ip6-01.md
@@ -0,0 +1,64 @@
+# 2n-grc
+## ./ip6
+### mellanox-cx556a
+#### mlx5-core
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/l2-00.md b/resources/job_specs/report_coverage/2n-grc/l2-00.md
new file mode 100644
index 0000000000..c8e4142726
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/l2-00.md
@@ -0,0 +1,44 @@
+# 2n-grc
+## ./l2
+### mellanox-cx556a
+#### mlx5-core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/l2-01.md b/resources/job_specs/report_coverage/2n-grc/l2-01.md
new file mode 100644
index 0000000000..e3ff716d2d
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/l2-01.md
@@ -0,0 +1,34 @@
+# 2n-grc
+## ./l2
+### mellanox-cx556a
+#### mlx5-core
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/lb-00.md b/resources/job_specs/report_coverage/2n-grc/lb-00.md
new file mode 100644
index 0000000000..809886342e
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/lb-00.md
@@ -0,0 +1,34 @@
+# 2n-grc
+## ./lb
+### mellanox-cx556a
+#### mlx5-core
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/memif-00.md b/resources/job_specs/report_coverage/2n-grc/memif-00.md
new file mode 100644
index 0000000000..9c323b321a
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/memif-00.md
@@ -0,0 +1,48 @@
+# 2n-grc
+## ./container_memif
+### mellanox-cx556a
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-grc/vhost-00.md b/resources/job_specs/report_coverage/2n-grc/vhost-00.md
new file mode 100644
index 0000000000..5fa62119aa
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-grc/vhost-00.md
@@ -0,0 +1,64 @@
+# 2n-grc
+## ./vm_vhost
+### mellanox-cx556a
+#### mlx5-core
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-emr/dpdk-00.md b/resources/job_specs/report_coverage/3n-emr/dpdk-00.md
new file mode 100644
index 0000000000..0ba82c929a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-emr/dpdk-00.md
@@ -0,0 +1,23 @@
+# 3n-emr
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-emr/vpp-gso-mrr-00.md b/resources/job_specs/report_iterative/2n-emr/vpp-gso-mrr-00.md
new file mode 100644
index 0000000000..0355480d14
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-emr/vpp-gso-mrr-00.md
@@ -0,0 +1,23 @@
+# 2n-emr
+## ./gso
+### intel-e810cq
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3 \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-emr/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-emr/vpp-mrr-00.md
index ace4059c3e..2c2a26dfb9 100644
--- a/resources/job_specs/report_iterative/2n-emr/vpp-mrr-00.md
+++ b/resources/job_specs/report_iterative/2n-emr/vpp-mrr-00.md
@@ -58,6 +58,10 @@
1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
##### ethip4-ip4scale2m-rnd
1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
diff --git a/resources/job_specs/report_iterative/2n-grc/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-grc/vpp-mrr-00.md
index d0e887ced8..d7219be16d 100644
--- a/resources/job_specs/report_iterative/2n-grc/vpp-mrr-00.md
+++ b/resources/job_specs/report_iterative/2n-grc/vpp-mrr-00.md
@@ -6,9 +6,6 @@
1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 1518b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
##### eth-l2xcbase-eth-2memif-1dcr
1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
@@ -69,9 +66,9 @@
2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
@@ -104,7 +101,7 @@
2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
## ./ip6
-### intel-cx556a
+### mellanox-cx556a
#### mlx5-core
##### ethip6-ip6base
1c AND 78b AND mrr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
@@ -163,4 +160,4 @@
##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/2n-grc/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-grc/vpp-ndrpdr-00.md
index e603fb56c0..8636c0c5d2 100644
--- a/resources/job_specs/report_iterative/2n-grc/vpp-ndrpdr-00.md
+++ b/resources/job_specs/report_iterative/2n-grc/vpp-ndrpdr-00.md
@@ -6,9 +6,6 @@
1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
##### eth-l2xcbase-eth-2memif-1dcr
1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
@@ -69,9 +66,9 @@
2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
@@ -104,7 +101,7 @@
2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
## ./ip6
-### intel-cx556a
+### mellanox-cx556a
#### mlx5-core
##### ethip6-ip6base
1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
@@ -163,4 +160,4 @@
##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md
index 37d7b66724..37bb12b4bd 100644
--- a/resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md
@@ -107,9 +107,9 @@
2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
@@ -155,6 +155,10 @@
1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
##### ethip4-ip4scale2m-rnd
1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
@@ -208,9 +212,9 @@
2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
@@ -224,6 +228,10 @@
1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
## ./ip4_tunnels
### mellanox-cx7veat
#### mlx5-core
diff --git a/resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md
index 8593bc9feb..d482c02358 100644
--- a/resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md
@@ -107,9 +107,9 @@
2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
@@ -155,6 +155,10 @@
1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
##### ethip4-ip4scale2m-rnd
1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
@@ -208,9 +212,9 @@
2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
@@ -224,6 +228,10 @@
1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
## ./ip4_tunnels
### mellanox-cx7veat
#### mlx5-core
diff --git a/resources/job_specs/report_iterative/2n-spr/vpp-gso-mrr-00.md b/resources/job_specs/report_iterative/2n-spr/vpp-gso-mrr-00.md
new file mode 100644
index 0000000000..86c9d7ab68
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-gso-mrr-00.md
@@ -0,0 +1,23 @@
+# 2n-spr
+## ./gso
+### intel-e810cq
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3 \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md
index 40c028b055..2cda1cf0f5 100644
--- a/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md
@@ -147,9 +147,9 @@
2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
diff --git a/resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md
index a76dd49c52..f3b43ff1ef 100644
--- a/resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md
@@ -147,9 +147,9 @@
2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
diff --git a/resources/job_specs/report_iterative/3n-emr/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-emr/vpp-mrr-00.md
index 1ed74d1e1b..a1d676549e 100644
--- a/resources/job_specs/report_iterative/3n-emr/vpp-mrr-00.md
+++ b/resources/job_specs/report_iterative/3n-emr/vpp-mrr-00.md
@@ -135,6 +135,10 @@
2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
3c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
@@ -231,6 +235,10 @@
1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
##### ethip4udpwireguard1tnlhwasync-ip4base
1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
diff --git a/resources/job_specs/report_iterative/3n-emr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-emr/vpp-ndrpdr-00.md
index b71abbf439..92329992aa 100644
--- a/resources/job_specs/report_iterative/3n-emr/vpp-ndrpdr-00.md
+++ b/resources/job_specs/report_iterative/3n-emr/vpp-ndrpdr-00.md
@@ -135,6 +135,10 @@
2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
3c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
@@ -231,6 +235,10 @@
1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
##### ethip4udpwireguard1tnlhwasync-ip4base
1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
@@ -260,17 +268,6 @@
2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
## ./ip6
-### intel-e810xxv
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
### intel-e810cq
#### avf
##### ethip6-ip6base
diff --git a/resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md b/resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md
index 892f9d7f36..f7dfd1beda 100644
--- a/resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md
+++ b/resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md
@@ -1,52 +1,5 @@
# 3nb-spr
## ./crypto
-### intel-e810xxv
-#### avf
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
### intel-e810cq
#### avf
##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
@@ -182,6 +135,10 @@
2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
3c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
@@ -322,6 +279,10 @@
1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
##### ethip4udpwireguard1tnlhwasync-ip4base
1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
@@ -429,28 +390,6 @@
2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
## ./srv6
-### intel-e810xxv
-#### avf
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
### intel-e810cq
#### avf
##### ethip6ip6-ip6base-srv6enc1sid
diff --git a/resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md
index 5df28c6c15..bda55aef21 100644
--- a/resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md
+++ b/resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md
@@ -1,52 +1,5 @@
# 3nb-spr
## ./crypto
-### intel-e810xxv
-#### avf
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
-##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
-##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
### intel-e810cq
#### avf
##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
@@ -182,6 +135,10 @@
2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
3c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
@@ -322,6 +279,10 @@
1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
##### ethip4udpwireguard1tnlhwasync-ip4base
1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
@@ -429,28 +390,6 @@
2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
## ./srv6
-### intel-e810xxv
-#### avf
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
### intel-e810cq
#### avf
##### ethip6ip6-ip6base-srv6enc1sid
diff --git a/resources/libraries/bash/function/gather_dpdk.sh b/resources/libraries/bash/function/gather_dpdk.sh
index da3fa930e6..ead1079e7a 100644
--- a/resources/libraries/bash/function/gather_dpdk.sh
+++ b/resources/libraries/bash/function/gather_dpdk.sh
@@ -1,5 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
-# Copyright (c) 2024 PANTHEON.tech and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -57,7 +56,6 @@ function gather_dpdk () {
die "Failed to read DPDK VPP version!"
}
fi
- # TODO: Use "wget -N" instead checking for file presence?
if [[ ! -f "${dpdk_stable_ver}" ]]; then
wget -nv --no-check-certificate "${dpdk_repo}/${dpdk_stable_ver}" || {
die "Failed to get DPDK package from: ${dpdk_repo}"
diff --git a/resources/libraries/bash/function/nginx.sh b/resources/libraries/bash/function/nginx.sh
index a2cf8e6514..37c7be65ec 100755
--- a/resources/libraries/bash/function/nginx.sh
+++ b/resources/libraries/bash/function/nginx.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2025 Intel and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -108,6 +108,8 @@ function nginx_compile () {
param+="--with-pcre "
# Enable ngx_http_realip_module.
param+="--with-http_realip_module "
+ # Disable http_rewrite_module
+ param+="--without-http_rewrite_module "
params=(${param})
./configure "${params[@]}" || die "Failed to configure NGINX!"
make -j 16;make install || die "Failed to compile NGINX!"
diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py
index 5ec3fcf377..4646ae3c5d 100644
--- a/resources/libraries/python/Constants.py
+++ b/resources/libraries/python/Constants.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -180,7 +180,7 @@ class Constants:
QEMU_VM_IMAGE = "/var/lib/vm/image.iso"
# QEMU VM DPDK path
- QEMU_VM_DPDK = "/opt/dpdk-24.07"
+ QEMU_VM_DPDK = "/opt/dpdk-24.11.1"
# Docker container SUT image
DOCKER_SUT_IMAGE_UBUNTU = "csit_sut-ubuntu2404:local"
@@ -428,7 +428,7 @@ class Constants:
# Each driver needs different plugin to work.
NIC_DRIVER_TO_PLUGINS = {
"vfio-pci": "dpdk_plugin.so",
- "avf": "avf_plugin.so",
+ "avf": "dev_iavf_plugin.so",
"rdma-core": "rdma_plugin.so",
"mlx5_core": "dpdk_plugin.so",
"af_xdp": "af_xdp_plugin.so",
diff --git a/resources/libraries/python/ContainerUtils.py b/resources/libraries/python/ContainerUtils.py
index 7d6d4d8673..887c869b8b 100644
--- a/resources/libraries/python/ContainerUtils.py
+++ b/resources/libraries/python/ContainerUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -580,7 +580,6 @@ class ContainerManager:
def stop_all_containers(self):
"""Stop all containers."""
- # TODO: Rework if containers can be affected outside ContainerManager.
self._disconnect_papi_to_all_containers()
for container in self.containers:
self.engine.container = self.containers[container]
@@ -588,7 +587,6 @@ class ContainerManager:
def destroy_all_containers(self):
"""Destroy all containers."""
- # TODO: Rework if containers can be affected outside ContainerManager.
self._disconnect_papi_to_all_containers()
for container in self.containers:
self.engine.container = self.containers[container]
diff --git a/resources/libraries/python/DPDK/DPDKTools.py b/resources/libraries/python/DPDK/DPDKTools.py
index cf5f6fc79e..12800ba4fc 100644
--- a/resources/libraries/python/DPDK/DPDKTools.py
+++ b/resources/libraries/python/DPDK/DPDKTools.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -94,7 +94,6 @@ class DPDKTools:
command = f"cat {Constants.REMOTE_FW_DIR}/dpdk*/VERSION"
message = u"Get DPDK version failed!"
stdout, _ = exec_cmd_no_error(node, command, message=message)
- # TODO: PAL should already tolerate stripped value in the log.
logger.info(f"DPDK Version: {stdout}")
return stdout.strip()
diff --git a/resources/libraries/python/DPDK/L3fwdTest.py b/resources/libraries/python/DPDK/L3fwdTest.py
index f7da7bdb3b..6ffae63bc0 100644
--- a/resources/libraries/python/DPDK/L3fwdTest.py
+++ b/resources/libraries/python/DPDK/L3fwdTest.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -62,14 +62,16 @@ class L3fwdTest:
for node_name, node in nodes.items():
if node["type"] == NodeType.DUT:
if dp_count_int > 1:
- BuiltIn().set_tags('MTHREAD')
+ BuiltIn().set_tags("MTHREAD")
else:
- BuiltIn().set_tags('STHREAD')
+ BuiltIn().set_tags("STHREAD")
BuiltIn().set_tags(
f"{dp_count_int}T{cpu_count_int}C"
)
cpu_dp = compute_resource_info[f"{node_name}_cpu_dp"]
+ cpu_dp = [f"{i+1}@{x}" for i,x in enumerate(cpu_dp.split(","))]
+ cpu_dp = ",".join(cpu_dp)
rxq_count_int = compute_resource_info["rxq_count_int"]
if1 = topology_info[f"{node_name}_pf1"][0]
if2 = topology_info[f"{node_name}_pf2"][0]
@@ -79,7 +81,7 @@ class L3fwdTest:
jumbo=jumbo, tg_flip=tg_flip
)
for node in nodes:
- if u"DUT" in node:
+ if "DUT" in node:
for i in range(3):
try:
L3fwdTest.check_l3fwd(nodes[node])
@@ -126,32 +128,32 @@ class L3fwdTest:
:type jumbo: bool
:type tg_flip: bool
"""
- if node[u"type"] == NodeType.DUT:
+ if node["type"] == NodeType.DUT:
adj_mac0, adj_mac1, if_pci0, if_pci1 = L3fwdTest.get_adj_mac(
nodes, node, if1, if2, tg_flip
)
- lcores = [int(item) for item in lcores_list.split(u",")]
+ lcores = [int(item.split("@")[0]) for item in lcores_list.split(",")]
# prepare the port config param
nb_cores = int(nb_cores)
index = 0
- port_config = ''
+ port_config = ""
for port in range(0, NB_PORTS):
for queue in range(0, int(queue_nums)):
index = 0 if nb_cores == 1 else index
port_config += \
- f"({port}, {queue}, {lcores[index % NB_PORTS]}),"
+ f"({port}, {queue}, {lcores[index % queue_nums]}),"
index += 1
if jumbo:
l3fwd_args = DpdkUtil.get_l3fwd_args(
- eal_corelist=f"1,{lcores_list}",
+ eal_coremap=f"0@1,{lcores_list}",
eal_driver=False,
eal_pci_whitelist0=if_pci0,
eal_pci_whitelist1=if_pci1,
eal_in_memory=True,
- pmd_config=f"\\\"{port_config.rstrip(u',')}\\\"",
+ pmd_config=f"\\\"{port_config.rstrip(',')}\\\"",
pmd_eth_dest_0=f"\\\"0,{adj_mac0}\\\"",
pmd_eth_dest_1=f"\\\"1,{adj_mac1}\\\"",
pmd_parse_ptype=True,
@@ -159,7 +161,7 @@ class L3fwdTest:
)
else:
l3fwd_args = DpdkUtil.get_l3fwd_args(
- eal_corelist=f"1,{lcores_list}",
+ eal_coremap=f"0@1,{lcores_list}",
eal_driver=False,
eal_pci_whitelist0=if_pci0,
eal_pci_whitelist1=if_pci1,
@@ -229,9 +231,9 @@ class L3fwdTest:
if dut_flip:
if_key0, if_key1 = if_key1, if_key0
if tg_flip:
- L3fwdTest.patch_l3fwd(node, u"patch_l3fwd_flip_routes")
+ L3fwdTest.patch_l3fwd(node, "patch_l3fwd_flip_routes")
elif not tg_flip:
- L3fwdTest.patch_l3fwd(node, u"patch_l3fwd_flip_routes")
+ L3fwdTest.patch_l3fwd(node, "patch_l3fwd_flip_routes")
adj_node0, adj_if_key0 = Topology.get_adjacent_node_and_interface(
nodes, node, if_key0
@@ -263,5 +265,5 @@ class L3fwdTest:
f"/entry/{patch}"
message = f"Failed to patch l3fwd at node {node['host']}"
ret_code, stdout, _ = exec_cmd(node, command, timeout=1800)
- if ret_code != 0 and u"Skipping patch." not in stdout:
+ if ret_code != 0 and "Skipping patch." not in stdout:
raise RuntimeError(message)
diff --git a/resources/libraries/python/DPDK/TestpmdTest.py b/resources/libraries/python/DPDK/TestpmdTest.py
index c141851bdc..0548126bfc 100644
--- a/resources/libraries/python/DPDK/TestpmdTest.py
+++ b/resources/libraries/python/DPDK/TestpmdTest.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -66,14 +66,16 @@ class TestpmdTest:
for node_name, node in nodes.items():
if node["type"] == NodeType.DUT:
if dp_count_int > 1:
- BuiltIn().set_tags('MTHREAD')
+ BuiltIn().set_tags("MTHREAD")
else:
- BuiltIn().set_tags('STHREAD')
+ BuiltIn().set_tags("STHREAD")
BuiltIn().set_tags(
f"{dp_count_int}T{cpu_count_int}C"
)
cpu_dp = compute_resource_info[f"{node_name}_cpu_dp"]
+ cpu_dp = [f"{i+1}@{x}" for i,x in enumerate(cpu_dp.split(","))]
+ cpu_dp = ",".join(cpu_dp)
rxq_count_int = compute_resource_info["rxq_count_int"]
if1 = topology_info[f"{node_name}_pf1"][0]
if2 = topology_info[f"{node_name}_pf2"][0]
@@ -134,23 +136,23 @@ class TestpmdTest:
:type txq_size: int
:raises RuntimeError: If the script "run_testpmd.sh" fails.
"""
- if node[u"type"] == NodeType.DUT:
+ if node["type"] == NodeType.DUT:
if_pci0 = Topology.get_interface_pci_addr(node, if1)
if_pci1 = Topology.get_interface_pci_addr(node, if2)
- pmd_max_pkt_len = u"9200" if jumbo else u"1518"
+ pmd_max_pkt_len = "9200" if jumbo else "1518"
testpmd_args = DpdkUtil.get_testpmd_args(
- eal_corelist=f"1,{lcores_list}",
+ eal_coremap=f"0@1,{lcores_list}",
eal_driver=False,
eal_pci_whitelist0=if_pci0,
eal_pci_whitelist1=if_pci1,
eal_in_memory=True,
pmd_num_mbufs=32768,
- pmd_fwd_mode=u"io",
- pmd_nb_ports=u"2",
- pmd_portmask=u"0x3",
+ pmd_fwd_mode="io",
+ pmd_nb_ports="2",
+ pmd_portmask="0x3",
pmd_max_pkt_len=pmd_max_pkt_len,
- pmd_mbuf_size=u"16384",
+ pmd_mbuf_size="16384",
pmd_rxd=rxq_size,
pmd_txd=txq_size,
pmd_rxq=queue_nums,
diff --git a/resources/libraries/python/DpdkUtil.py b/resources/libraries/python/DpdkUtil.py
index 8ee0dde850..932f847c55 100644
--- a/resources/libraries/python/DpdkUtil.py
+++ b/resources/libraries/python/DpdkUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -29,25 +29,25 @@ class DpdkUtil:
:returns: EAL parameters.
:rtype: OptionString
"""
- options = OptionString(prefix=u"-")
- options.add(u"v")
+ options = OptionString(prefix="-")
+ options.add("v")
# Set the hexadecimal bitmask of the cores to run on.
options.add_with_value_from_dict(
- u"l", u"eal_corelist", kwargs
+ "-lcores", "eal_coremap", kwargs
)
# Add a PCI device in white list.
options.add_with_value_from_dict(
- u"a", u"eal_pci_whitelist0", kwargs
+ "a", "eal_pci_whitelist0", kwargs
)
options.add_with_value_from_dict(
- u"a", u"eal_pci_whitelist1", kwargs
+ "a", "eal_pci_whitelist1", kwargs
)
# Load an external driver. Multiple -d options are allowed.
options.add_with_value_if_from_dict(
- u"d", u"/usr/lib/librte_pmd_virtio.so", u"eal_driver", kwargs, True
+ "d", "/usr/lib/librte_pmd_virtio.so", "eal_driver", kwargs, True
)
options.add_if_from_dict(
- u"-in-memory", u"eal_in_memory", kwargs, False
+ "-in-memory", "eal_in_memory", kwargs, False
)
return options
@@ -60,79 +60,79 @@ class DpdkUtil:
:returns: PMD parameters.
:rtype: OptionString
"""
- options = OptionString(prefix=u"--")
+ options = OptionString(prefix="--")
# Set the forwarding mode: io, mac, mac_retry, mac_swap, flowgen,
# rxonly, txonly, csum, icmpecho, ieee1588
options.add_equals_from_dict(
- u"forward-mode", u"pmd_fwd_mode", kwargs, u"io"
+ "forward-mode", "pmd_fwd_mode", kwargs, "io"
)
# Set the number of packets per burst to N.
options.add_equals(
- u"burst", 64
+ "burst", 64
)
# Set the number of descriptors in the TX rings to N.
options.add_equals_from_dict(
- u"txd", u"pmd_txd", kwargs, 1024
+ "txd", "pmd_txd", kwargs, 1024
)
# Set the number of descriptors in the RX rings to N.
options.add_equals_from_dict(
- u"rxd", u"pmd_rxd", kwargs, 1024
+ "rxd", "pmd_rxd", kwargs, 1024
)
# Set the number of queues in the TX to N.
options.add_equals_from_dict(
- u"txq", u"pmd_txq", kwargs, 1
+ "txq", "pmd_txq", kwargs, 1
)
# Set the number of queues in the RX to N.
options.add_equals_from_dict(
- u"rxq", u"pmd_rxq", kwargs, 1
+ "rxq", "pmd_rxq", kwargs, 1
)
# Set the hexadecimal bitmask of offloads.
options.add_equals_from_dict(
- u"tx-offloads", u"pmd_tx_offloads", kwargs, u"0x0"
+ "tx-offloads", "pmd_tx_offloads", kwargs, "0x0"
)
# Enables numa aware allocation of mbufs.
options.add_if_from_dict(
- u"numa", u"pmd_numa", kwargs, True
+ "numa", "pmd_numa", kwargs, True
)
# Run by default.
options.add_if_from_dict(
- u"auto-start", u"pmd_auto_start", kwargs, True
+ "auto-start", "pmd_auto_start", kwargs, True
)
# Set the number of mbufs to be allocated in the mbuf pools.
options.add_equals_from_dict(
- u"total-num-mbufs", u"pmd_num_mbufs", kwargs
+ "total-num-mbufs", "pmd_num_mbufs", kwargs
)
# Set the number of forwarding ports.
options.add_equals_from_dict(
- u"nb-ports", u"pmd_nb_ports", kwargs
+ "nb-ports", "pmd_nb_ports", kwargs
)
# Set the hexadecimal bitmask of the ports used by the packet
# forwarding test.
options.add_equals_from_dict(
- u"portmask", u"pmd_portmask", kwargs
+ "portmask", "pmd_portmask", kwargs
)
# Disable link status check.
options.add_if_from_dict(
- u"disable-link-check", u"pmd_disable_link_check", kwargs, True
+ "disable-link-check", "pmd_disable_link_check", kwargs, True
)
# Set the MAC address XX:XX:XX:XX:XX:XX of the peer port N
options.add_equals_from_dict(
- u"eth-peer", u"pmd_eth_peer_0", kwargs
+ "eth-peer", "pmd_eth_peer_0", kwargs
)
options.add_equals_from_dict(
- u"eth-peer", u"pmd_eth_peer_1", kwargs
+ "eth-peer", "pmd_eth_peer_1", kwargs
)
# Set the max packet length.
options.add_equals_from_dict(
- u"max-pkt-len", u"pmd_max_pkt_len", kwargs
+ "max-pkt-len", "pmd_max_pkt_len", kwargs
)
# Set the mbuf size.
options.add_equals_from_dict(
- u"mbuf-size", u"pmd_mbuf_size", kwargs
+ "mbuf-size", "pmd_mbuf_size", kwargs
)
# Set the number of forwarding cores based on coremask.
options.add_equals_from_dict(
- u"nb-cores", u"pmd_nb_cores", kwargs
+ "nb-cores", "pmd_nb_cores", kwargs
)
return options
@@ -147,7 +147,7 @@ class DpdkUtil:
"""
options = OptionString()
options.extend(DpdkUtil.get_eal_options(**kwargs))
- options.add(u"--")
+ options.add("--")
options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs))
return options
@@ -161,9 +161,9 @@ class DpdkUtil:
:rtype: OptionString
"""
options = OptionString()
- options.add(u"dpdk-testpmd")
+ options.add("dpdk-testpmd")
options.extend(DpdkUtil.get_eal_options(**kwargs))
- options.add(u"--")
+ options.add("--")
options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs))
return options
@@ -177,9 +177,9 @@ class DpdkUtil:
:type kwargs: dict
"""
cmd_options = OptionString()
- cmd_options.add(u"/start-testpmd.sh")
+ cmd_options.add("/start-testpmd.sh")
cmd_options.extend(DpdkUtil.get_eal_options(**kwargs))
- cmd_options.add(u"--")
+ cmd_options.add("--")
cmd_options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs))
exec_cmd_no_error(node, cmd_options, sudo=True, disconnect=True)
@@ -191,7 +191,7 @@ class DpdkUtil:
:type node: dict
:returns: nothing
"""
- cmd = u"/stop-testpmd.sh" # Completed string, simple one.
+ cmd = "/stop-testpmd.sh" # Completed string, simple one.
exec_cmd_no_error(node, cmd, sudo=True, disconnect=True)
@staticmethod
@@ -203,25 +203,25 @@ class DpdkUtil:
:returns: PMD parameters.
:rtype: OptionString
"""
- options = OptionString(prefix=u"--")
+ options = OptionString(prefix="--")
# Set to use software to analyze packet type.
options.add_if_from_dict(
- u"parse-ptype", u"pmd_parse_ptype", kwargs, True
+ "parse-ptype", "pmd_parse_ptype", kwargs, True
)
# Set the MAC address XX:XX:XX:XX:XX:XX of the peer port N.
options.add_equals_from_dict(
- u"eth-dest", u"pmd_eth_dest_0", kwargs
+ "eth-dest", "pmd_eth_dest_0", kwargs
)
options.add_equals_from_dict(
- u"eth-dest", u"pmd_eth_dest_1", kwargs
+ "eth-dest", "pmd_eth_dest_1", kwargs
)
# Determines which queues from which ports are mapped to which cores.
options.add_equals_from_dict(
- u"config", u"pmd_config", kwargs
+ "config", "pmd_config", kwargs
)
# Set the max packet length.
options.add_with_value_if_from_dict(
- u"max-pkt-len", u"9200", u"pmd_max_pkt_len", kwargs, False
+ "max-pkt-len", "9200", "pmd_max_pkt_len", kwargs, False
)
return options
@@ -236,6 +236,6 @@ class DpdkUtil:
"""
options = OptionString()
options.extend(DpdkUtil.get_eal_options(**kwargs))
- options.add(u"--")
+ options.add("--")
options.extend(DpdkUtil.get_l3fwd_pmd_options(**kwargs))
return options
diff --git a/resources/libraries/python/IPUtil.py b/resources/libraries/python/IPUtil.py
index 309d8241ee..32f510c80b 100644
--- a/resources/libraries/python/IPUtil.py
+++ b/resources/libraries/python/IPUtil.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
-# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# Copyright (c) 2025 Cisco and/or its affiliates.
+# Copyright (c) 2025 PANTHEON.tech s.r.o.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -498,7 +498,7 @@ class IPUtil:
else:
cmd = f"ip addr show dev {interface}"
- cmd += u" | grep 'inet ' | awk -e '{print $2}'"
+ cmd += u" | grep 'inet ' | awk '{print $2}'"
cmd += f" | grep '{ip_addr_with_prefix}'"
_, stdout, _ = exec_cmd(node, cmd, timeout=5, sudo=True)
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py
index ff013307bc..7a0e37386b 100644
--- a/resources/libraries/python/InterfaceUtil.py
+++ b/resources/libraries/python/InterfaceUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -1261,32 +1261,37 @@ class InterfaceUtil:
the node.
"""
PapiSocketExecutor.run_cli_cmd(
- node, u"set logging class avf level debug"
+ node, u"set logging class dev level debug"
+ )
+ PapiSocketExecutor.run_cli_cmd(
+ node, u"set logging class iavf level debug"
)
- cmd = u"avf_create"
+ cmd = u"dev_attach"
vf_pci_addr = Topology.get_interface_pci_addr(node, if_key)
args = dict(
- pci_addr=InterfaceUtil.pci_to_int(vf_pci_addr),
- enable_elog=0,
- rxq_num=int(num_rx_queues) if num_rx_queues else 0,
- rxq_size=rxq_size,
- txq_size=txq_size
+ device_id=f"pci/{vf_pci_addr}",
+ driver_name="iavf",
)
- err_msg = f"Failed to create AVF interface on host {node[u'host']}"
+ err_msg = f"Failed to attach AVF driver on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ reply = papi_exec.add(cmd, **args).get_reply(err_msg)
+ logger.debug(f"reply: {reply}")
+ dev_index = reply["dev_index"]
- # FIXME: Remove once the fw/driver is upgraded.
- for _ in range(10):
- with PapiSocketExecutor(node) as papi_exec:
- try:
- sw_if_index = papi_exec.add(cmd, **args).get_sw_if_index(
- err_msg
- )
- break
- except AssertionError:
- logger.error(err_msg)
- else:
- raise AssertionError(err_msg)
+ cmd = u"dev_create_port_if"
+ args = dict(
+ dev_index=dev_index,
+ intf_name="",
+ num_rx_queues=int(num_rx_queues) if num_rx_queues else 0,
+ rx_queue_size=rxq_size,
+ tx_queue_size=txq_size,
+ port_id=0,
+ )
+ err_msg = f"Failed to create AVF port on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ sw_if_index = papi_exec.add(cmd, **args).get_sw_if_index(err_msg)
+ PapiSocketExecutor.run_cli_cmd(node, "show dev")
InterfaceUtil.add_eth_interface(
node, sw_if_index=sw_if_index, ifc_pfx=u"eth_avf",
@@ -1820,6 +1825,9 @@ class InterfaceUtil:
def init_generic_interface(node, ifc_key, numvfs=0, osi_layer=u"L2"):
"""Init PCI device. Bind to proper drivers. Optionally create NIC VFs.
+ When creating VFs, also set large enough MTU on PF.
+ As this is called in suite setup, we must allow jumbo here.
+
:param node: DUT node.
:param ifc_key: Interface key from topology file.
:param numvfs: Number of VIFs to initialize, 0 - disable the VIFs.
@@ -1859,6 +1867,10 @@ class InterfaceUtil:
if not numvfs:
if osi_layer == u"L2":
InterfaceUtil.set_linux_interface_promisc(node, pf_dev)
+ else:
+ # AVF VFs cannot read if limited by MTU on PF, ensure default here.
+ # TODO: Allow test-case specific PF initialization if possible.
+ InterfaceUtil.set_interface_mtu(node, [pf_pci_addr])
vf_ifc_keys = []
# Set MAC address and bind each virtual function to uio driver.
diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py
index 8dac06001c..d538e1fb0a 100644
--- a/resources/libraries/python/QemuUtils.py
+++ b/resources/libraries/python/QemuUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024-2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -371,9 +371,10 @@ class QemuUtils:
:param kwargs: Key-value pairs to construct command line parameters.
:type kwargs: dict
"""
- pmd_max_pkt_len = u"9200" if kwargs[u"jumbo"] else u"1518"
+ pmd_max_pkt_len = "9200" if kwargs["jumbo"] else "1518"
+ eal_coremap = ",".join([str(x) for x in range(self._opt.get("smp"))])
testpmd_cmd = DpdkUtil.get_testpmd_cmdline(
- eal_corelist=f"0-{self._opt.get(u'smp') - 1}",
+ eal_coremap=eal_coremap,
eal_driver=False,
eal_pci_whitelist0=u"0000:00:06.0",
eal_pci_whitelist1=u"0000:00:07.0",
@@ -399,8 +400,9 @@ class QemuUtils:
:type kwargs: dict
"""
pmd_max_pkt_len = u"9200" if kwargs[u"jumbo"] else u"1518"
+ eal_coremap = ",".join([str(x) for x in range(self._opt.get("smp"))])
testpmd_cmd = DpdkUtil.get_testpmd_cmdline(
- eal_corelist=f"0-{self._opt.get(u'smp') - 1}",
+ eal_coremap=eal_coremap,
eal_driver=False,
eal_pci_whitelist0=u"0000:00:06.0",
eal_pci_whitelist1=u"0000:00:07.0",
diff --git a/resources/libraries/python/VPPUtil.py b/resources/libraries/python/VPPUtil.py
index 1ede76cdd4..29138da4f4 100644
--- a/resources/libraries/python/VPPUtil.py
+++ b/resources/libraries/python/VPPUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -280,7 +280,6 @@ class VPPUtil:
if_dump[u"sub_if_flags"] = if_dump[u"sub_if_flags"].value \
if hasattr(if_dump[u"sub_if_flags"], u"value") \
else int(if_dump[u"sub_if_flags"])
- # TODO: return only base data
logger.trace(f"Interface data of host {node[u'host']}:\n{details}")
@staticmethod
diff --git a/resources/libraries/python/VppConfigGenerator.py b/resources/libraries/python/VppConfigGenerator.py
index 971b82606f..384964eae0 100644
--- a/resources/libraries/python/VppConfigGenerator.py
+++ b/resources/libraries/python/VppConfigGenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -790,8 +790,6 @@ class VppInitConfig:
vpp_config.add_unix_log()
vpp_config.add_unix_cli_listen()
vpp_config.add_unix_cli_no_pager()
- vpp_config.add_unix_gid()
- vpp_config.add_unix_coredump()
vpp_config.add_socksvr(socket=Constants.SOCKSVR_PATH)
vpp_config.add_main_heap_size("2G")
vpp_config.add_main_heap_page_size(huge_size)
diff --git a/resources/libraries/robot/hoststack/hoststack.robot b/resources/libraries/robot/hoststack/hoststack.robot
index ece1d8a1f4..d5cbd0bce0 100644
--- a/resources/libraries/robot/hoststack/hoststack.robot
+++ b/resources/libraries/robot/hoststack/hoststack.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -458,7 +458,6 @@
| | | Run Keyword If
| | | ... | '${dut}' == 'DUT1' and ${vpp_nsim_attr}[output_nsim_enable]
| | | ... | ${dut}.Add Nsim poll main thread
-| | | Run keyword | ${dut}.Add api segment gid | testuser
| | | Run keyword | ${dut}.Add tcp congestion control algorithm
| | | ... | ${vpp_hoststack_attr}[tcp_cc_algo]
| | | Run keyword | ${dut}.Add session enable
@@ -649,13 +648,15 @@
| | FOR | ${action} | IN | @{stat_pre_trial}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
-| | ${output}= | Run ab | ${tg} | ${dut_ip_addrs_str} | ${ad_ip_addrs_str}
+| | ${status} | ${message}= | Run Keyword And Ignore Error | Run ab
+| | ... | ${tg} | ${dut_ip_addrs_str} | ${ad_ip_addrs_str}
| | ... | ${tls_tcp} | ${ciphers} | ${files} | ${mode} | ${r_total} | ${c_total}
| | ... | ${listen_port}
| | FOR | ${action} | IN | @{stat_post_trial}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
-| | Set test message | ${output}
+| | Set test message | ${message}
+| | Run Keyword If | "${status}" != "PASS" | Fail | AB failed: ${message}
| Configure VPP startup configuration for NGINX
| | [Documentation]
diff --git a/resources/libraries/robot/performance/performance_actions.robot b/resources/libraries/robot/performance/performance_actions.robot
index df520e0757..de7c63200a 100644
--- a/resources/libraries/robot/performance/performance_actions.robot
+++ b/resources/libraries/robot/performance/performance_actions.robot
@@ -187,6 +187,9 @@
| | ${transaction_scale} = | Get Transaction Scale
| | ${transaction_type} = | Get Transaction Type
| | ${use_latency} = | Get Use Latency
+| | ${node_arch} = | Get Node Arch | ${nodes[u'DUT1']}
+| | ${profile} = | Set Variable If | "${node_arch}" == "aarch64"
+| | ... | perf_stat_runtime_arm.yaml | perf_stat_runtime.yaml
| | Send traffic on tg
| | ... | duration=${-1}
| | ... | rate=${runtime_rate}
@@ -203,7 +206,7 @@
| | ... | ramp_up_duration=${ramp_up_duration}
| | ... | ramp_up_rate=${ramp_up_rate}
| | Run Telemetry On All DUTs
-| | ... | ${nodes} | profile=perf_stat_runtime.yaml
+| | ... | ${nodes} | profile=${profile}
| | ... | rate=${telemetry_rate} | export=${False}
| | Stop traffic on tg
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index 2dc78941b3..094d277a11 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -149,7 +149,6 @@
| | | Run Keyword | ${dut}.Add Unix Log
| | | Run Keyword | ${dut}.Add Unix CLI Listen
| | | Run Keyword | ${dut}.Add Unix CLI No Pager
-| | | Run Keyword | ${dut}.Add Unix GID
| | | Run Keyword | ${dut}.Add API Segment Prefix | ${dut}
| | | Run Keyword | ${dut}.Add Unix Coredump
| | | Run Keyword | ${dut}.Add Socksvr | ${SOCKSVR_PATH}
diff --git a/resources/libraries/robot/shared/interfaces.robot b/resources/libraries/robot/shared/interfaces.robot
index b4d6959d01..dfb6482859 100644
--- a/resources/libraries/robot/shared/interfaces.robot
+++ b/resources/libraries/robot/shared/interfaces.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -145,11 +145,9 @@
| | | Run Keyword | ${dut}.Add DPDK Uio Driver | vfio-pci
| | | Run Keyword | ${dut}.Add DPDK Dev Default RXQ | ${rxq_count_int}
| | | Run Keyword If | '${nic_name}' == 'Amazon-Nitro-100G'
-| | | ... | ${dut}.Add DPDK Dev Default Devargs |
-| | | ... | "normal_llq_hdr=1,enable_llq=1,control_path_poll_interval=0"
+| | | ... | ${dut}.Add DPDK Dev Default Devargs | "llq_policy=2"
| | | Run Keyword If | '${nic_name}' == 'Amazon-Nitro-200G'
-| | | ... | ${dut}.Add DPDK Dev Default Devargs |
-| | | ... | "normal_llq_hdr=1,enable_llq=1,control_path_poll_interval=0"
+| | | ... | ${dut}.Add DPDK Dev Default Devargs | "llq_policy=2"
| | | Run Keyword If | not ${jumbo}
| | | ... | ${dut}.Add DPDK No Multi Seg
| | | Run Keyword If | ${nic_rxq_size} > 0
@@ -375,7 +373,7 @@
| Initialize layer avf on node
| | [Documentation]
-| | ... | Initialize AVF (Intel) interfaces on DUT on NIC PF.
+| | ... | Initialize AVF (Intel) interfaces on DUT on NIC PF. Set MTU.
| |
| | ... | *Arguments:*
| | ... | - dut - DUT node. Type: string
@@ -408,6 +406,8 @@
| | | Set List Value | ${${dut}_vf${pf}_mac} | ${vf} | ${_mac}
| | | Set List Value | ${${dut}_vf${pf}_pci} | ${vf} | ${_pci}
| | | Set List Value | ${${dut}_vf${pf}_vlan} | ${vf} | ${_vlan}
+| | | VPP Set Interface MTU | ${nodes['${dut}']}
+| | | ... | ${${dut}_vf${pf}}[${vf}] | mtu=${recommended_mtu}
| | END
| Initialize layer af_xdp on node
diff --git a/resources/templates/telemetry/perf_stat_runtime.yaml b/resources/templates/telemetry/perf_stat_runtime.yaml
index ae0f804945..1e07c2d482 100644
--- a/resources/templates/telemetry/perf_stat_runtime.yaml
+++ b/resources/templates/telemetry/perf_stat_runtime.yaml
@@ -37,6 +37,7 @@ scheduler:
duration: 1
programs:
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: cpu_cycles
@@ -49,6 +50,7 @@ programs:
- eventcode: 0x3C # cpu-cycles
umask: 0x00
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: instructions
@@ -61,6 +63,7 @@ programs:
- eventcode: 0xC0 # instructions
umask: 0x00
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: mem_load_uops_retired_l1_hit
@@ -73,6 +76,7 @@ programs:
- eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L1_HIT
umask: 0x01
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: mem_load_uops_retired_l2_hit
@@ -85,6 +89,7 @@ programs:
- eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L2_HIT
umask: 0x02
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: mem_load_uops_retired_l3_hit
@@ -97,6 +102,7 @@ programs:
- eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L3_HIT
umask: 0x04
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: mem_load_uops_retired_l1_miss
@@ -109,6 +115,7 @@ programs:
- eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L1_MISS
umask: 0x08
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: mem_load_uops_retired_l2_miss
@@ -121,6 +128,7 @@ programs:
- eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L2_MISS
umask: 0x10
- name: bundle_perf_stat
+ architecture: x86_64
metrics:
counter:
- name: mem_load_uops_retired_l3_miss
diff --git a/resources/templates/telemetry/perf_stat_runtime_arm.yaml b/resources/templates/telemetry/perf_stat_runtime_arm.yaml
new file mode 100644
index 0000000000..ae1e4aa329
--- /dev/null
+++ b/resources/templates/telemetry/perf_stat_runtime_arm.yaml
@@ -0,0 +1,104 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_perf_stat
+ architecture: aarch64
+ metrics:
+ counter:
+ - name: cpu_cycles
+ documentation: Cycles processed by CPUs
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events: cpu-cycles
+ - name: bundle_perf_stat
+ architecture: aarch64
+ metrics:
+ counter:
+ - name: instructions
+ documentation: Instructions retired by CPUs
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events: instructions
+ - name: bundle_perf_stat
+ architecture: aarch64
+ metrics:
+ counter:
+ - name: l1d_cache
+ documentation: Level 1 data cache access
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events: l1d_cache
+ - name: bundle_perf_stat
+ architecture: aarch64
+ metrics:
+ counter:
+ - name: l1d_cache_refill
+ documentation: Level 1 data cache refill
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events: l1d_cache_refill
+ - name: bundle_perf_stat
+ architecture: aarch64
+ metrics:
+ counter:
+ - name: l2d_cache
+ documentation: Level 2 data cache access
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events: l2d_cache
+ - name: bundle_perf_stat
+ architecture: aarch64
+ metrics:
+ counter:
+ - name: l2d_cache_refill
+ documentation: Level 2 data cache refill
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events: l2d_cache_refill
diff --git a/resources/templates/vcl/vcl_iperf3.conf b/resources/templates/vcl/vcl_iperf3.conf
index adf6c181bc..74eed51bf4 100644
--- a/resources/templates/vcl/vcl_iperf3.conf
+++ b/resources/templates/vcl/vcl_iperf3.conf
@@ -3,6 +3,8 @@ vcl {
add-segment-size 4000000000
rx-fifo-size 4000000
tx-fifo-size 4000000
+ use-mq-eventfd
+ event-queue-size 500000
app-scope-local
app-scope-global
diff --git a/resources/tools/telemetry/bundle_perf_stat.py b/resources/tools/telemetry/bundle_perf_stat.py
index 471dd07b18..7f64eda2c5 100644
--- a/resources/tools/telemetry/bundle_perf_stat.py
+++ b/resources/tools/telemetry/bundle_perf_stat.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2025 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -39,6 +39,7 @@ class BundlePerfStat:
"""
self.metrics = program[u"metrics"]
self.events = program[u"events"]
+ self.architecture = program[u"architecture"]
self.api_replies_list = list()
self.serializer = serializer
self.hook = hook
@@ -53,21 +54,35 @@ class BundlePerfStat:
"""
try:
self.serializer.create(metrics=self.metrics)
- event = self.events[0]
- text = subprocess.getoutput(
- f"""sudo perf stat -x\; -e\
- '{{cpu/event={hex(event[u"eventcode"])},\
- umask={hex(event[u"umask"])}/u}}'\
- -a --per-thread\
- sleep {duration}"""
- )
+ # The following PMU event format is specific to x86_64 systems.
+ if self.architecture == "x86_64":
+ event = self.events[0]
+ text = subprocess.getoutput(
+ f"""sudo perf stat -x';' -e\
+ '{{cpu/event={hex(event[u"eventcode"])},\
+ umask={hex(event[u"umask"])}/u}}'\
+ -a --per-thread\
+ sleep {duration}"""
+ )
+ # We select the symbolic event name instead on AArch64.
+ else:
+ event = self.events
+ text = subprocess.getoutput(
+ f"""sudo perf stat -x';' -e\
+ {event}\
+ -a --per-thread\
+ sleep {duration}"""
+ )
except subprocess.CalledProcessError:
getLogger("console_stderr").error(f"Could not successfully run "
f"perf stat command.")
sys.exit(Constants.err_linux_perf_stat)
if text == u"":
- getLogger("console_stdout").info(event[u"eventcode"])
+ if self.architecture == "x86_64":
+ getLogger("console_stdout").info(event[u"eventcode"])
+ else:
+ getLogger("console_stdout").info(event)
else:
for line in text.splitlines():
if line.count(u";") < 6:
diff --git a/topologies/available/lf_3n_emr_testbed28.yaml b/topologies/available/lf_3n_emr_testbed28.yaml
index f5833cc9a8..7d9aff6b93 100644
--- a/topologies/available/lf_3n_emr_testbed28.yaml
+++ b/topologies/available/lf_3n_emr_testbed28.yaml
@@ -22,7 +22,7 @@ nodes:
pci_address: "0000:27:00.0"
ip4_address: "172.16.10.1"
driver: ice
- link: link1
+ link: link3
model: Intel-E810CQ
port2:
# s41-t28-tg1-c4/p1 - 100GE port2 Intel E810-2C-Q2 2p100GE.
@@ -30,7 +30,7 @@ nodes:
pci_address: "0000:29:00.0"
ip4_address: "172.16.30.1"
driver: ice
- link: link3
+ link: link1
model: Intel-E810CQ
DUT1:
type: DUT
@@ -59,7 +59,7 @@ nodes:
pci_address: "0000:27:00.0"
ip4_address: "172.16.20.1"
driver: ice
- link: link2
+ link: link3
model: Intel-E810CQ
port2:
# s40-t28-sut1-c4/p2 - 100GE port2 Intel E810-2C-Q2 2p100GE.
@@ -67,7 +67,7 @@ nodes:
pci_address: "0000:29:00.0"
ip4_address: "172.16.30.2"
driver: ice
- link: link3
+ link: link2
model: Intel-E810CQ
DUT2:
type: DUT
@@ -96,7 +96,7 @@ nodes:
pci_address: "0000:a8:00.0"
ip4_address: "172.16.20.2"
driver: ice
- link: link2
+ link: link1
model: Intel-E810CQ
port2:
# s40-t28-sut2-c9/p2 - 100GE port2 Intel E810-2C-Q2 2p100GE.
@@ -104,5 +104,5 @@ nodes:
pci_address: "0000:aa:00.0"
ip4_address: "172.16.10.2"
driver: ice
- link: link1
+ link: link2
model: Intel-E810CQ \ No newline at end of file
diff --git a/topologies/available/lf_3n_emr_testbed29.yaml b/topologies/available/lf_3n_emr_testbed29.yaml
index 1e49a1c8ec..56d38a753e 100644
--- a/topologies/available/lf_3n_emr_testbed29.yaml
+++ b/topologies/available/lf_3n_emr_testbed29.yaml
@@ -34,15 +34,15 @@ nodes:
pci_address: "0000:27:00.0"
ip4_address: "172.16.10.1"
driver: ice
- link: link1
+ link: link3
model: Intel-E810CQ
port2:
- # s41-t29-tg1-c4/p1 - 100GE port2 Intel E810-2C-Q2 2p100GE.
+ # s41-t29-tg1-c4/p2 - 100GE port2 Intel E810-2C-Q2 2p100GE.
mac_address: "40:a6:b7:ca:2a:70"
pci_address: "0000:29:00.0"
ip4_address: "172.16.30.1"
driver: ice
- link: link3
+ link: link1
model: Intel-E810CQ
DUT1:
type: DUT
@@ -67,19 +67,19 @@ nodes:
interfaces:
port1:
# s40-t29-sut1-c4/p1 - 100GE port1 Intel E810-2C-Q2 2p100GE.
- mac_address: "40:a6:b7:ca:2b:f0"
+ mac_address: "40:a6:b7:ca:2c:d0"
pci_address: "0000:27:00.0"
ip4_address: "172.16.20.1"
driver: ice
- link: link2
+ link: link3
model: Intel-E810CQ
port2:
# s40-t29-sut1-c4/p2 - 100GE port2 Intel E810-2C-Q2 2p100GE.
- mac_address: "40:a6:b7:ca:2b:f4"
+ mac_address: "40:a6:b7:ca:2c:d4"
pci_address: "0000:29:00.0"
ip4_address: "172.16.30.2"
driver: ice
- link: link3
+ link: link2
model: Intel-E810CQ
DUT2:
type: DUT
@@ -108,7 +108,7 @@ nodes:
pci_address: "0000:a8:00.0"
ip4_address: "172.16.20.2"
driver: ice
- link: link2
+ link: link1
model: Intel-E810CQ
port2:
# s40-t29-sut2-c9/p2 - 100GE port2 Intel E810-2C-Q2 2p100GE.
@@ -116,5 +116,5 @@ nodes:
pci_address: "0000:aa:00.0"
ip4_address: "172.16.10.2"
driver: ice
- link: link1
- model: Intel-E810CQ \ No newline at end of file
+ link: link2
+ model: Intel-E810CQ