feat(infra): 3n-oct 06/42306/6
authorPeter Mikus <peter.mikus@icloud.com>
Tue, 4 Feb 2025 12:37:54 +0000 (13:37 +0100)
committerPeter Mikus <peter.mikus@icloud.com>
Tue, 11 Feb 2025 08:48:01 +0000 (09:48 +0100)
Signed-off-by: Peter Mikus <peter.mikus@icloud.com>
Change-Id: Ia5b4dff2aaf5b7baa88f85448616c59e51816873

docs/content/infrastructure/fdio_dc_testbed_specifications.md
docs/content/infrastructure/fdio_dc_vexxhost_inventory.md
fdio.infra.ansible/roles/intel/defaults/main.yaml
fdio.infra.ansible/roles/intel/tasks/main.yaml
fdio.infra.ansible/roles/intel/tasks/qat2.yaml
fdio.infra/pxe/docker-dnsmasq/etc/dnsmasq.conf
resources/libraries/bash/function/common.sh
resources/libraries/python/Constants.py
resources/libraries/python/VppConfigGenerator.py
topologies/available/lf_3n_oct_testbed215.yaml [new file with mode: 0644]
topologies/disabled/lf_3n_oct_testbed215.yaml [deleted file]

index 1508f3a..102ba64 100644 (file)
@@ -855,16 +855,8 @@ FD.io CSIT lab contains following server types:
     - IPMI IP: 10.30.50.87
     - Host IP: 10.30.51.87
     - portnames:
-        - s87-t215-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
-        - s87-t215-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-        - s87-t215-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
-        - s87-t215-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
-        - s87-t215-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
-        - s87-t215-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
-        - s87-t215-sut1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
-        - s87-t215-sut1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
-        - s87-t215-sut1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
-        - s87-t215-sut1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+        - s87-t215-sut1-c2/p1 - 100GE-port1 cavium-a063-2p100GE.
+        - s87-t215-sut1-c6/p2 - 100GE-port1 cavium-a063-2p100GE.
 - TG [Server-Type-F2]:
     - testbedname: testbed215.
     - hostname: s88-t215-tg1.
@@ -1368,23 +1360,10 @@ FD.io CSIT lab contains following server types:
 
 ```
 - testbed215:
-    - ring1 25GE-ports xxv710-DA2-2p25GE:
-        - s88-t215-tg1-c2/p1 to s87-t215-sut1-c2/p1.
-        - s87-t215-sut1-c2/p2 to s88-t215-tg1-c2/p2.
-    - ring2 25GE-ports e810-XXVDA4-2p25GE:
-        - s88-t215-tg1-c4/p1 to s87-t215-sut1-c4/p1.
-        - s87-t215-sut1-c4/p2 to s88-t215-tg1-c4/p2.
-        - s88-t215-tg1-c4/p3 to s87-t215-sut1-c4/p3.
-        - s87-t215-sut1-c4/p4 to s88-t215-tg1-c4/p4.
-    - ring3 100GE-ports e810-2CQDA2-2p100GE:
-        - s88-t215-tg1-c9/p1 to s87-t215-sut1-c9/p1.
-        - s87-t215-sut1-c9/p2 to s88-t215-tg1-c9/p2.
-    - ring4 100GE-ports e810-2CQDA2-2p100GE:
-        - s88-t215-tg1-c6/p1 to s88-t215-tg1-c6/p2.
-        - s88-t215-tg1-c6/p2 to s88-t215-tg1-c6/p1.
-    - ring5 200GE-ports ConnectX7-2p200GE:
-        - s88-t215-tg1-c8/p1 to s87-t215-sut1-c8/p1.
-        - s87-t215-sut1-c8/p2 to s88-t215-tg1-c8/p2.
+    - ring1 100GE-ports e810-2CQDA2-2p100GE:
+        - s88-t215-tg1-c9/p1 to s87-t215-sut1-c2/p1.
+        - s87-t215-sut1-c2/p1 to s87-t215-sut1-c6/p1.
+        - s88-t215-tg1-c9/p2 to s87-t215-sut1-c6/p1.
 ```
 
 ### 3-Node-Altra (3n-alt)
index bab9f1e..bda1ef2 100644 (file)
@@ -36,6 +36,8 @@ Captured inventory data:
  s85-t214-sut1   | 2n-icx        | SYS-740GP-TNRT      | C7470KK33P50219 | 10.30.51.85  | 10.30.50.85  | 3016.8     | u14-u17
  s86-t214-tg1    | 2n-icx        | SYS-740GP-TNRT      | C7470KL07P50312 | 10.30.51.86  | 10.30.50.86  | 3016.8     | u10-u13
  s87-t215-sut1   | 2n-oct        | SYS-740GP-TNRT      | C7470KL03P50171 | 10.30.51.87  | 10.30.50.87  | 3016.8     | u6-u9
+ s95-t215-dpu1   | 2n-oct-dpu1   | -                   | -               | 10.30.51.95  | 10.30.50.95  | 3016.8     | u6-u9
+ s96-t215-dpu2   | 2n-oct-dpu2   | -                   | -               | 10.30.51.96  | 10.30.50.96  | 3016.8     | u6-u9
  s88-t215-tg1    | 2n-oct        | SYS-740GP-TNRT      | C7470KL07P50301 | 10.30.51.88  | 10.30.50.88  | 3016.8     | u2-u5
 
 ### Rack YUL1-9 (3016.9)
index 0d18c74..e163c57 100644 (file)
@@ -65,7 +65,7 @@ intel_dsa_compatibility_matrix:
   dsa: "4.1.8"
 
 intel_qat_compatibility_matrix:
-  qat2: "1.1.50-00003"
+  qat2: "1.2.30-00078"
   qat1: "4.27.0-00006"
 
 intel_i40e_url:
@@ -84,5 +84,5 @@ intel_dsa_url:
   "4.1.8": "https://github.com/intel/idxd-config/archive/refs/tags/accel-config-v4.1.8.tar.gz"
 
 intel_qat_url:
-  "1.1.50-00003": "822703/QAT20.L.1.1.50-00003.tar.gz"
+  "1.2.30-00078": "843052/QAT20.L.1.2.30-00078.tar.gz"
   "4.27.0-00006": "838409/QAT.L.4.27.0-00006.tar.gz"
\ No newline at end of file
index bcc8cfd..5ffab3c 100644 (file)
@@ -50,7 +50,7 @@
     - intel-inst-drivers
 
 - name: Check Presence of Intel 4XXX
-  ansible.builtin.shell: "lspci -d 8086:4942"
+  ansible.builtin.shell: "lspci -d 8086:4942; lspci -d 8086:4940"
   register: intel_qat2_pcis
   failed_when: false
   changed_when: false
   tags:
     - intel-inst-drivers
 
-#- name: Driver Intel QAT 2.x
-#  import_tasks: qat2.yaml
-#  when: >
-#    intel_qat2_pcis.stdout_lines | length > 0 and
-#    intel_qat_matrix is defined
-#  tags:
-#    - intel-inst-drivers
\ No newline at end of file
+- name: Driver Intel QAT 2.x
+  import_tasks: qat2.yaml
+  when: >
+    intel_qat2_pcis.stdout_lines | length > 0 and
+    intel_qat_matrix is defined
+  tags:
+    - intel-inst-drivers
\ No newline at end of file
index 20478c4..450273f 100644 (file)
     chdir: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}"
   become: true
   with_items:
-    - "wget http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_255.4-1ubuntu8.4_amd64.deb"
-    - "dpkg -i ./libudev-dev_255.4-1ubuntu8.4_amd64.deb"
     - "apt install -y libudev-dev nasm libnl-genl-3-dev"
     - "./configure --enable-icp-sriov=host"
     - "make"
     - "make install"
-    - "apt remove -y libudev-dev"
   when:
     - intel_driver_extracted
   tags:
index 315f496..7551828 100755 (executable)
@@ -95,13 +95,15 @@ dhcp-host=3c:ec:ef:bc:a1:ea,10.30.51.83,s83-t213-sut1,infinite # eno1
 dhcp-host=3c:ec:ef:bc:92:26,10.30.51.84,s84-t213-tg1,infinite # eno1            ICX
 dhcp-host=3c:ec:ef:b9:a6:92,10.30.51.85,s85-t214-sut1,infinite # eno1           ICX
 dhcp-host=3c:ec:ef:bc:92:e4,10.30.51.86,s86-t214-tg1,infinite # eno1            ICX
-dhcp-host=3c:ec:ef:bc:92:e8,10.30.51.87,s87-t215-sut1,infinite # eno1           OCT
-dhcp-host=3c:ec:ef:bc:a1:ac,10.30.51.88,s88-t215-tg1,infinite # eno1            OCT
+dhcp-host=3c:ec:ef:bc:92:e8,10.30.51.87,s87-t215-sut1,infinite # eno1           ICX-OCT
+dhcp-host=3c:ec:ef:bc:a1:ac,10.30.51.88,s88-t215-tg1,infinite # eno1            ICX-OCT
 dhcp-host=ac:1f:6b:ac:d7:76,10.30.51.89,s89-t39t310-tg1,infinite # eno1         CLX
 dhcp-host=3c:ec:ef:bc:85:8a,10.30.51.90,s90-t31t32-tg1,infinite #eno1           ICX
 dhcp-host=d8:5e:d3:02:b1:bb,10.30.51.91,s91-nomad,infinite #eno1                ALT
 dhcp-host=d8:5e:d3:02:b1:9f,10.30.51.92,s92-nomad,infinite #eno1                ALT
 dhcp-host=a4:bf:01:55:ac:39,10.30.51.93,s93-t39-sut1,infinite # enp4s0          SNR
 dhcp-host=a4:bf:01:55:af:5e,10.30.51.94,s94-t39-sut2,infinite # enp4s0          SNR
+dhcp-host=44:a9:2c:50:80:e5,10.30.51.95,s95-t215-sut1,infinite # eth5           OCT
+dhcp-host=44:a9:2c:50:0c:75,10.30.51.96,s96-t215-sut2,infinite # eth5           OCT
 # Hosts DHCP settings yul1_1_ipmi subnet.
 dhcp-host=3c:6d:66:05:55:d8,10.30.50.36,s36-t27-sut1,infinite # eth1            GRC
index d130217..8022103 100644 (file)
@@ -1,5 +1,5 @@
-# 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.
+# Copyright (c) 2025 PANTHEON.tech 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:
@@ -532,6 +532,10 @@ function get_test_code () {
             NODENESS="3n"
             FLAVOR="emr"
             ;;
+        *"3n-oct")
+            NODENESS="3n"
+            FLAVOR="oct"
+            ;;
         *"-x-2n"*)
             TESTBED="${TEST_CODE#${TEST_CODE%2n*}}"
             NODENESS="${TESTBED%-${TEST_CODE#*-x-2n*-}}"
@@ -982,6 +986,9 @@ function select_tags () {
         *"3n-emr")
             default_nic="nic_intel-e810cq"
             ;;
+        *"3n-oct")
+            default_nic="nic_cavium-a063-100g"
+            ;;
         *"1n-aws" | *"2n-aws" | *"3n-aws")
             default_nic="nic_amazon-nitro-50g"
             ;;
@@ -1132,6 +1139,8 @@ function select_tags () {
             ;;
         *"3n-emr")
             ;;
+        *"3n-oct")
+            ;;
         *"3n-icx")
             test_tag_array+=("!ipsechw")
             test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
@@ -1272,6 +1281,10 @@ function select_topology () {
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_emr_*.yaml )
             TOPOLOGIES_TAGS="3_node_*_link_topo"
             ;;
+        *"3n-oct")
+            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_oct_*.yaml )
+            TOPOLOGIES_TAGS="3_node_*_link_topo"
+            ;;
         *"3n-aws")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-aws*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
index 6a7b81b..e98d1bb 100644 (file)
@@ -332,6 +332,10 @@ class Constants:
         "Amazon-Nitro-50G": 10000000000,
         "Amazon-Nitro-100G": 10000000000,
         "Amazon-Nitro-200G": 16000000000,
+        "Cavium-A063-10G": 10000000000,
+        "Cavium-A063-40G": 40000000000,
+        "Cavium-A063-50G": 50000000000,
+        "Cavium-A063-100G": 100000000000,
         "virtual": 100000000,
     }
 
@@ -350,6 +354,10 @@ class Constants:
         "Amazon-Nitro-50G": 1500000,
         "Amazon-Nitro-100G": 3000000,
         "Amazon-Nitro-200G": 6000000,
+        "Cavium-A063-10G": 78125000,
+        "Cavium-A063-40G": 78125000,
+        "Cavium-A063-50G": 97656250,
+        "Cavium-A063-100G": 195312500,
         "virtual": 14880952,
     }
 
@@ -369,6 +377,10 @@ class Constants:
         "Mellanox-CX6DX": "100ge2p1cx6dx",
         "Mellanox-CX7VEAT": "200ge2p1cx7veat",
         "Mellanox-CX7VEAT": "200ge6p3cx7veat",
+        "Cavium-A063-10G": "10ge2p1a063",
+        "Cavium-A063-40G": "40ge2p1a063",
+        "Cavium-A063-50G": "50ge2p1a063",
+        "Cavium-A063-100G": "100ge2p1a063",
         "virtual": "1ge1p82540em",
     }
     NIC_CODE_TO_NAME = {
@@ -386,6 +398,10 @@ class Constants:
         "100ge2p1cx6dx": "Mellanox-CX6DX",
         "200ge2p1cx7veat": "Mellanox-CX7VEAT",
         "200ge6p3cx7veat": "Mellanox-CX7VEAT",
+        "10ge2p1a063":"Cavium-A063-10G",
+        "40ge2p1a063":"Cavium-A063-40G",
+        "50ge2p1a063":"Cavium-A063-50G",
+        "100ge2p1a063":"Cavium-A063-100G",
         "1ge1p82540em": "virtual",
     }
 
@@ -405,6 +421,10 @@ class Constants:
         "100ge2p1cx6dx": "cx6dx",
         "200ge2p1cx7veat": "cx7veat",
         "200ge6p3cx7veat": "cx7veat",
+        "10ge2p1a063": "a063",
+        "40ge2p1a063": "a063",
+        "50ge2p1a063": "a063",
+        "100ge2p1a063": "a063",
         "1ge1p82540em": "82540em",
     }
 
@@ -423,6 +443,10 @@ class Constants:
         "Mellanox-CX556A": ["rdma-core", "mlx5_core", "af_xdp"],
         "Mellanox-CX6DX": ["rdma-core", "mlx5_core", "af_xdp"],
         "Mellanox-CX7VEAT": ["rdma-core", "mlx5_core", "af_xdp"],
+        "Cavium-A063-10G": ["vfio-pci"],
+        "Cavium-A063-40G": ["vfio-pci"],
+        "Cavium-A063-50G": ["vfio-pci"],
+        "Cavium-A063-100G": ["vfio-pci"],
         "virtual": ["vfio-pci"],
     }
 
@@ -478,6 +502,10 @@ class Constants:
         "100ge2p1cx6dx": "nic_pfs}= | 2",
         "200ge2p1cx7veat": "nic_pfs}= | 2",
         "200ge6p3cx7veat": "nic_pfs}= | 6",
+        "10ge2p1a063": "nic_pfs}= | 2",
+        "40ge2p1a063": "nic_pfs}= | 2",
+        "50ge2p1a063": "nic_pfs}= | 2",
+        "100ge2p1a063": "nic_pfs}= | 2",
         "1ge1p82540em": "nic_pfs}= | 2",
     }
 
@@ -496,6 +524,10 @@ class Constants:
         "100ge2p1cx6dx": 1,
         "200ge2p1cx7veat": 1,
         "200ge6p3cx7veat": 3,
+        "10ge2p1a063": 1,
+        "40ge2p1a063": 1,
+        "50ge2p1a063": 1,
+        "100ge2p1a063": 1,
         "1ge1p82540em": 1,
     }
 
index 384964e..849a329 100644 (file)
@@ -727,6 +727,42 @@ class VppConfigGenerator:
             path = ["dsa", f"dev {device}"]
             self.add_config_item(self._nodeconfig, "", path)
 
+    def add_octeon_dev(self, *devices):
+        """Add OCTEON PCI device configuration.
+
+        :param devices: PCI device(s) (format xxxx:xx:xx.x)
+        :type devices: tuple
+        """
+        for i, device in enumerate(devices):
+            if pci_dev_check(device):
+                path = ["devices", f"dev pci/{device}", "driver octeon"]
+                self.add_config_item(self._nodeconfig, "", path)
+                path = ["devices", f"dev pci/{device}", "port 0", f"name eth{i}"]
+                self.add_config_item(self._nodeconfig, "", path)
+                num_rx_queues = Topology.get_num_rx_queues(self._node)
+                num_tx_queues = Topology.get_num_tx_queues(self._node)
+                if num_rx_queues and num_tx_queues:
+                    self.add_octeon_dev_default_rxq(device, num_rx_queues)
+                    self.add_octeon_dev_default_txq(device, num_tx_queues)
+
+    def add_octeon_dev_default_rxq(self, device, value):
+        """Add OCTEON dev default rxq configuration.
+
+        :param value: Default number of rxqs.
+        :type value: str
+        """
+        path = ["devices", f"dev pci/{device}", "port 0", "num-rx-queues"]
+        self.add_config_item(self._nodeconfig, value, path)
+
+    def add_octeon_dev_default_txq(self, device, value):
+        """Add OCTEON dev default txq configuration.
+
+        :param value: Default number of txqs.
+        :type value: str
+        """
+        path = ["devices", f"dev pci/{device}", "port 0", "num-tx-queues"]
+        self.add_config_item(self._nodeconfig, value, path)
+
     def add_logging_default_syslog_log_level(self, value="debug"):
         """Add default logging level for syslog.
 
diff --git a/topologies/available/lf_3n_oct_testbed215.yaml b/topologies/available/lf_3n_oct_testbed215.yaml
new file mode 100644 (file)
index 0000000..5f41ca6
--- /dev/null
@@ -0,0 +1,100 @@
+---
+metadata:
+  version: 0.1
+  schema:
+    - resources/topology_schemas/3_node_topology.sch.yaml
+    - resources/topology_schemas/topology.sch.yaml
+  tags: [hw, 3-node]
+
+nodes:
+  TG:
+    type: TG
+    subtype: TREX
+    host: "10.30.51.88"
+    arch: x86_64
+    port: 6001
+    username: testuser
+    password: Csit1234
+    interfaces:
+      port1:
+        # s88-t215-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+        mac_address: "40:a6:b7:67:1c:f4"
+        pci_address: "0000:17:00.0"
+        ip4_address: "172.16.10.1"
+        driver: ice
+        link: link1
+        model: Intel-E810CQ
+      port2:
+        # s88-t215-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+        mac_address: "40:a6:b7:67:1c:f0"
+        pci_address: "0000:19:00.0"
+        ip4_address: "172.16.20.1"
+        driver: ice
+        link: link2
+        model: Intel-E810CQ
+  DUT1:
+    type: DUT
+    host: "10.30.51.95"
+    arch: aarch64
+    port: 22
+    username: root
+    password: root
+    uio_driver: vfio-pci
+    cryptodev:
+      device1:
+        pci_address: "0002:20:00.0"
+        driver: "rvu_cptpf"
+        model: "HW_A0FD"
+        module: "rvu_cptpf"
+        numvfs: 1
+    eventdev: "0002:0e:00.0"
+    interfaces:
+      port1:
+        # s95-t215-sut1-c2/p1 - 100GE port1 Cavium A063 2p100GE.
+        mac_address: "1a:cc:6a:50:05:2a"
+        pci_address: "0002:02:00.0"
+        ip4_address: "172.16.10.2"
+        driver: rvu_nicpf
+        link: link1
+        model: Cavium-A063-100G
+      port2:
+        # s95-t215-sut1-c2/p1 - 100GE port2 Cavium A063 2p100GE.
+        mac_address: "1a:cc:6a:50:05:2a "
+        pci_address: "0002:03:00.0"
+        ip4_address: "172.16.30.1"
+        driver: rvu_nicpf
+        link: link3
+        model: Cavium-A063-100G
+  DUT2:
+    type: DUT
+    host: "10.30.51.96"
+    arch: aarch64
+    port: 22
+    username: root
+    password: root
+    uio_driver: vfio-pci
+    cryptodev:
+      device1:
+        pci_address: "0002:20:00.0"
+        driver: "rvu_cptpf"
+        model: "HW_A0FD"
+        module: "rvu_cptpf"
+        numvfs: 1
+    eventdev: "0002:0e:00.0"
+    interfaces:
+      port1:
+        # s87-t215-sut1-c6/p1 - 100GE port1 Cavium A063 2p100GE.
+        mac_address: "40:a6:b7:67:2b:ec"
+        pci_address: "0002:03:00.0"
+        ip4_address: "172.16.20.2"
+        driver: rvu_nicpf
+        link: link2
+        model: Cavium-A063-100G
+      port2:
+        # s87-t215-sut1-c6/p1 - 100GE port2 Cavium A063 2p100GE.
+        mac_address: "40:60:5a:02:e1:60"
+        pci_address: "0002:02:00.0"
+        ip4_address: "172.16.30.2"
+        driver: rvu_nicpf
+        link: link3
+        model: Cavium-A063-100G
\ No newline at end of file
diff --git a/topologies/disabled/lf_3n_oct_testbed215.yaml b/topologies/disabled/lf_3n_oct_testbed215.yaml
deleted file mode 100644 (file)
index f1996cb..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
----
-metadata:
-  version: 0.1
-  schema:
-    - resources/topology_schemas/2_node_topology.sch.yaml
-    - resources/topology_schemas/topology.sch.yaml
-  tags: [hw, 2-node]
-
-nodes:
-  TG:
-    type: TG
-    subtype: TREX
-    host: "10.30.51.88"
-    arch: x86_64
-    port: 6001
-    username: testuser
-    password: Csit1234
-    interfaces:
-      port1:
-        # s88-t215-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
-        mac_address: "40:a6:b7:67:1c:f4"
-        pci_address: "0000:17:00.0"
-        ip4_address: "172.16.10.2"
-        driver: ice
-        link: link1
-        model: Intel-E810CQ
-      port2:
-        # s88-t215-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
-        mac_address: "40:a6:b7:67:1c:f0"
-        pci_address: "0000:19:00.0"
-        ip4_address: "172.16.20.2"
-        driver: ice
-        link: link2
-        model: Intel-E810CQ
-      port3:
-        # s88-t215-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:24"
-        pci_address: "0000:31:00.0"
-        ip4_address: "172.16.30.2"
-        driver: ice
-        link: link3
-        model: Intel-E810XXV
-      port4:
-        # s88-t215-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:25"
-        pci_address: "0000:31:00.1"
-        ip4_address: "172.16.40.2"
-        driver: ice
-        link: link4
-        model: Intel-E810XXV
-      port5:
-        # s88-t215-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:26"
-        pci_address: "0000:31:00.2"
-        ip4_address: "172.16.50.2"
-        driver: ice
-        link: link5
-        model: Intel-E810XXV
-      port6:
-        # s88-t215-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:27"
-        pci_address: "0000:31:00.3"
-        ip4_address: "172.16.60.2"
-        driver: ice
-        link: link6
-        model: Intel-E810XXV
-      port7:
-        # s88-t215-tg1-c2/p1 - 25GE port1 Intel NIC xxv710 4p25GE.
-        mac_address: "40:a6:b7:40:87:cc"
-        pci_address: "0000:4b:00.0"
-        ip4_address: "172.16.70.2"
-        driver: i40e
-        link: link7
-        model: Intel-XXV710
-      port8:
-        # s88-t215-tg1-c2/p2 - 25GE port2 Intel NIC xxv710 4p25GE.
-        mac_address: "40:a6:b7:40:87:cd"
-        pci_address: "0000:4b:00.1"
-        ip4_address: "172.16.80.2"
-        driver: i40e
-        link: link8
-        model: Intel-XXV710
-      port9:
-        # s88-t215-tg1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:f9:c3:4e"
-        pci_address: "0000:b1:00.0"
-        ip4_address: "172.16.90.2"
-        driver: mlx5_core
-        link: link9
-        model: Mellanox-CX7VEAT
-      port10:
-        # s88-t215-tg1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:f9:c3:4f"
-        pci_address: "0000:b1:00.1"
-        ip4_address: "172.16.100.2"
-        driver: mlx5_core
-        link: link10
-        model: Mellanox-CX7VEAT
-      port11:
-        # s88-t215-tg1-c6/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
-        mac_address: "40:a6:b7:67:17:10"
-        pci_address: "0000:ca:00.0"
-        ip4_address: "172.16.110.2"
-        driver: ice
-        link: link11
-        model: Intel-E810CQ
-      port12:
-        # s88-t215-tg1-c6/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
-        mac_address: "40:a6:b7:67:17:14"
-        pci_address: "0000:cc:00.0"
-        ip4_address: "172.16.120.2"
-        driver: ice
-        link: link11
-        model: Intel-E810CQ
-  DUT1:
-    type: DUT
-    host: "10.30.51.87"
-    arch: x86_64
-    port: 22
-    username: testuser
-    password: Csit1234
-    uio_driver: vfio-pci
-    interfaces:
-      port1:
-        # s87-t215-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
-        mac_address: "40:a6:b7:67:2b:ec"
-        pci_address: "0000:17:00.0"
-        ip4_address: "172.16.10.1"
-        driver: ice
-        link: link1
-        model: Intel-E810CQ
-      port2:
-        # s87-t215-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
-        mac_address: "40:a6:b7:67:2b:e8"
-        pci_address: "0000:19:00.0"
-        ip4_address: "172.16.20.1"
-        driver: ice
-        link: link2
-        model: Intel-E810CQ
-      port3:
-        # s87-t215-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:1c"
-        pci_address: "0000:31:00.0"
-        ip4_address: "172.16.30.1"
-        driver: ice
-        link: link3
-        model: Intel-E810XXV
-      port4:
-        # s87-t215-sut1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:1d"
-        pci_address: "0000:31:00.1"
-        ip4_address: "172.16.40.1"
-        driver: ice
-        link: link4
-        model: Intel-E810XXV
-      port5:
-        # s87-t215-sut1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:1e"
-        pci_address: "0000:31:00.2"
-        ip4_address: "172.16.50.1"
-        driver: ice
-        link: link5
-        model: Intel-E810XXV
-      port6:
-        # s87-t215-sut1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
-        mac_address: "b4:96:91:a5:7a:1f"
-        pci_address: "0000:31:00.3"
-        ip4_address: "172.16.60.1"
-        driver: ice
-        link: link6
-        model: Intel-E810XXV
-      port7:
-        # s87-t215-sut1-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
-        mac_address: "40:a6:b7:40:87:90"
-        pci_address: "0000:4b:00.0"
-        ip4_address: "172.16.70.1"
-        driver: i40e
-        link: link7
-        model: Intel-XXV710
-      port8:
-        # s87-t215-sut1-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
-        mac_address: "40:a6:b7:40:87:91"
-        pci_address: "0000:4b:00.1"
-        ip4_address: "172.16.80.1"
-        driver: i40e
-        link: link8
-        model: Intel-XXV710
-      port9:
-        # s87-t215-sut1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:b7:a2:78"
-        pci_address: "0000:b1:00.0"
-        ip4_address: "172.16.90.1"
-        driver: mlx5_core
-        link: link9
-        model: Mellanox-CX7VEAT
-      port10:
-        # s87-t215-sut1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:b7:a2:79"
-        pci_address: "0000:b1:00.1"
-        ip4_address: "172.16.100.1"
-        driver: mlx5_core
-        link: link10
-        model: Mellanox-CX7VEAT
\ No newline at end of file