On Wed, Jul 3, 2024 at 10:58 AM Nicholas Pratte <npra...@iol.unh.edu> wrote:
>
> This implementation splits the execution and node configuration
> components of the conf.yaml into two separate config files. A
> new command line argument is added, allowing the user to specify
> both a node configuration file and an execution configuration
> file. Be default, these config files are now named node_conf.yaml and
> execution_conf.yaml, respectively.
>
> To assert these changes, the schema calls for one of these objects,
> nodes or executions, in each file, but neither config file can have
> both.
>
> To avoid excess refactoring, both config files are merged together
> early on in the load_config process.
>
> Bugzilla ID: 1344
>
> Signed-off-by: Nicholas Pratte <npra...@iol.unh.edu>
> ---
>  dts/execution_conf.yaml                    |  26 ++
>  dts/framework/config/__init__.py           |  26 +-
>  dts/framework/config/conf_yaml_schema.json | 340 ++++++++++-----------
>  dts/framework/runner.py                    |   4 +-
>  dts/framework/settings.py                  |  36 ++-
>  dts/node_conf.yaml                         |  56 ++++
>  dts/testbed_conf.yaml                      |  26 ++
>  7 files changed, 325 insertions(+), 189 deletions(-)
>  create mode 100644 dts/execution_conf.yaml
>  create mode 100644 dts/node_conf.yaml
>  create mode 100644 dts/testbed_conf.yaml
>
> diff --git a/dts/execution_conf.yaml b/dts/execution_conf.yaml
> new file mode 100644
> index 0000000000..af2180eac2
> --- /dev/null
> +++ b/dts/execution_conf.yaml
> @@ -0,0 +1,26 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright 2022-2023 The DPDK contributors
> +# Copyright 2023 Arm Limited
> +
> +executions:

We probably don't want to rename this back to executions as Juraj's
patch recently got merged into main that calls these test_runs, and I
think people found that more clear. With that being said, we'll
probably have to rename this file too.

> +  # define one execution environment
> +  - build_targets:
> +      - arch: x86_64
> +        os: linux
> +        cpu: native
> +        # the combination of the following two makes CC="ccache gcc"
> +        compiler: gcc
> +        compiler_wrapper: ccache
> +    perf: false # disable performance testing
> +    func: true # enable functional testing
> +    skip_smoke_tests: false # optional
> +    test_suites: # the following test suites will be run in their entirety
> +      - hello_world
> +      - os_udp
> +    # The machine running the DPDK test executable
> +    system_under_test_node:
> +      node_name: "SUT 1"
> +      vdevs: # optional; if removed, vdevs won't be used in the execution
> +        - "crypto_openssl"
> +    # Traffic generator node to use for this execution environment
> +    traffic_generator_node: "TG 1"
> \ No newline at end of file
<snip>
> +++ b/dts/node_conf.yaml
> @@ -0,0 +1,56 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright 2022-2023 The DPDK contributors
> +# Copyright 2023 Arm Limited
> +
> +nodes:
> +  # Define a system under test node, having two network ports physically
> +  # connected to the corresponding ports in TG 1 (the peer node)
> +  - name: "SUT 1"
> +    hostname: sut1.change.me.localhost
> +    user: dtsuser
> +    arch: x86_64
> +    os: linux
> +    lcores: "" # use all the available logical cores
> +    use_first_core: false # tells DPDK to use any physical core
> +    memory_channels: 4 # tells DPDK to use 4 memory channels
> +    hugepages:  # optional; if removed, will use system hugepage 
> configuration
> +        amount: 256
> +        force_first_numa: false
> +    ports:
> +      # sets up the physical link between "SUT 1"@000:00:08.0 and "TG 
> 1"@0000:00:08.0
> +      - pci: "0000:00:08.0"
> +        os_driver_for_dpdk: vfio-pci # OS driver that DPDK will use
> +        os_driver: i40e              # OS driver to bind when the tests are 
> not running

I think the point of this comment having all the whitespace is to line
up the starts of these two comments but it seems a little off in this
series. I might even be more of a fan of removing it and just making
it one space, but if we want to keep it the way it is on main it's
probably better to give this a little more whitespace.

> +        peer_node: "TG 1"
> +        peer_pci: "0000:00:08.0"
> +      # sets up the physical link between "SUT 1"@000:00:08.1 and "TG 
> 1"@0000:00:08.1
> +      - pci: "0000:00:08.1"
> +        os_driver_for_dpdk: vfio-pci
> +        os_driver: i40e
> +        peer_node: "TG 1"
> +        peer_pci: "0000:00:08.1"
> +  # Define a Scapy traffic generator node, having two network ports
> +  # physically connected to the corresponding ports in SUT 1 (the peer node).
> +  - name: "TG 1"
> +    hostname: tg1.change.me.localhost
> +    user: dtsuser
> +    arch: x86_64
> +    os: linux
> +    ports:
> +      # sets up the physical link between "TG 1"@000:00:08.0 and "SUT 
> 1"@0000:00:08.0
> +      - pci: "0000:00:08.0"
> +        os_driver_for_dpdk: rdma
> +        os_driver: rdma
> +        peer_node: "SUT 1"
> +        peer_pci: "0000:00:08.0"
> +      # sets up the physical link between "SUT 1"@000:00:08.0 and "TG 
> 1"@0000:00:08.0
> +      - pci: "0000:00:08.1"
> +        os_driver_for_dpdk: rdma
> +        os_driver: rdma
> +        peer_node: "SUT 1"
> +        peer_pci: "0000:00:08.1"
> +    hugepages:  # optional; if removed, will use system hugepage 
> configuration
> +        amount: 256
> +        force_first_numa: false
> +    traffic_generator:
> +        type: SCAPY
> diff --git a/dts/testbed_conf.yaml b/dts/testbed_conf.yaml

I'm still not sure what keeping this file is for, it seems like it
isn't used elsewhere in the framework.

> new file mode 100644
> index 0000000000..af2180eac2
> --- /dev/null
> +++ b/dts/testbed_conf.yaml
> @@ -0,0 +1,26 @@
> +# SPDX-License-Identifier: BSD-3-Clause
> +# Copyright 2022-2023 The DPDK contributors
> +# Copyright 2023 Arm Limited
> +
> +executions:
> +  # define one execution environment
> +  - build_targets:
> +      - arch: x86_64
> +        os: linux
> +        cpu: native
> +        # the combination of the following two makes CC="ccache gcc"
> +        compiler: gcc
> +        compiler_wrapper: ccache
> +    perf: false # disable performance testing
> +    func: true # enable functional testing
> +    skip_smoke_tests: false # optional
> +    test_suites: # the following test suites will be run in their entirety
> +      - hello_world
> +      - os_udp
> +    # The machine running the DPDK test executable
> +    system_under_test_node:
> +      node_name: "SUT 1"
> +      vdevs: # optional; if removed, vdevs won't be used in the execution
> +        - "crypto_openssl"
> +    # Traffic generator node to use for this execution environment
> +    traffic_generator_node: "TG 1"
> \ No newline at end of file
> --
> 2.44.0
>

Reply via email to