..
   SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
   SPDX-License-Identifier: Apache-2.0

PDP Testing
===========


Test Framework
--------------

We use `TestVectors`_ to connect to Stratum hardware switches using gRPC and
execute gNMI and P4Runtime tests.

For Aether, we convert existing ptf unit tests written for ``fabric-tna`` to
TestVectors and execute them on Stratum hardware switches in loopback mode
using `TestVectors-Runner`_.

We use Jenkins to schedule and trigger our tests which run against a set of
hardware switches.

Test Scenarios
-------------------

``fabric-tna`` is a P4 program based on the Tofino Native Architecture(TNA).
Currently 4 profiles are supported for compiling the ``fabric-tna`` P4 program.

1. ``fabric``
2. ``fabric-spgw``
3. ``fabric-int``
4. ``fabric-spgw-int``

Based on the ptf unit tests for ``fabric-tna``, we generate TestVectors for each
profile to run on Stratum hardware switches. The names of generated tests can
be found in `Test List`_.

Prerequisites to Generate, Run Tests
------------------------------------

1. Stratum running on a hardware switch with 4 ports running in loopback mode.

2. Create a port-map similar to `port-map`_. The three fields are ptf_port,
   p4_port and iface_name.  ptf_port is the port id used in the test, p4_port
   is a valid port id from Stratum hardware.  iface_name is ignored in
   TestVector generation, this can be any value.

How to Generate TestVectors
---------------------------

1. Checkout ``fabric-tna`` repo.

.. code-block:: shell

   $git clone https://github.com/stratum/fabric-tna.git
   $cd fabric-tna

2. Compile the P4 program for specific profile.

.. code-block:: shell

   $make <profile>

Supported profiles are: fabric, fabric-spgw, fabric-int, fabric-spgw-int.

3. Generate TestVectors.

.. code-block:: shell

   $cd ptf
   $run/tv/run <profile> PORTMAP=port_map.json GRPCADDR=<switch_ip>:<switch_port> CPUPORT=<cpu_port>

switch_ip and switch_port are IP and port where Stratum is running.
cpu_port is 192 for dual pipe switch and 320 for quad pipe switch.
Generated TestVectors are stored under ``fabric-tna/ptf/TestVectors``.

How to Run TestVectors
----------------------

1. Checkout `TestVectors-Runner`_ repo.

.. code-block:: shell

   $git clone https://github.com/stratum/testvectors-runner -b support-fabric-tna
   $cd testvectors-runner

2. Build ``tv-runner`` docker image.

.. code-block:: shell

   $docker build -t tvrunner:fabric-tna-binary -f build/test/Dockerfile .

3. Push PipelineConfig.

.. code-block:: shell

   $IMAGE_NAME=tvrunner:fabric-tna-binary ./tvrunner.sh --target ${tv_dir}/target.pb.txt --portmap ${tv_dir}/portmap.pb.txt --tv-dir ${tv_dir} --dp-mode loopback --tv-name PipelineConfig

4. Run Setup.

.. code-block:: shell

   $IMAGE_NAME=tvrunner:fabric-tna-binary ./tvrunner.sh --dp-mode loopback --match-type in --target ${tv_dir}/target.pb.txt --portmap ${tv_dir}/portmap.pb.txt --tv-dir ${tv_dir}/${test_name}/setup

5. Run TestVector.

.. code-block:: shell

   $IMAGE_NAME=tvrunner:fabric-tna-binary ./tvrunner.sh --dp-mode loopback --match-type in --target ${tv_dir}/target.pb.txt --portmap ${tv_dir}/portmap.pb.txt --tv-dir ${tv_dir}/${test_name} --tv-name ${test_name}.* --result-dir ./results --result-file ${test_name}

6. Run Teardown.

.. code-block:: shell

   $IMAGE_NAME=tvrunner:fabric-tna-binary ./tvrunner.sh --dp-mode loopback --match-type in --target ${tv_dir}/target.pb.txt --portmap ${tv_dir}/portmap.pb.txt --tv-dir ${tv_dir}/${test_name}/teardown

``tv_dir`` is the directory where TestVectors are stored. In this case,
``tv_dir`` is ``fabric-tna/ptf/TestVectors``.

``tv_name`` is the name of the test case. It's also the directory name of the
test under ``fabric-tna/ptf/TestVectors``.

Results for each test are generated under ``testvectors-runner/results``
directory in csv format.

.. _TestVectors: https://github.com/stratum/testvectors
.. _TestVectors-Runner: https://github.com/stratum/testvectors-runner/tree/support-fabric-tna
.. _Test List: https://github.com/stratum/stratum-ci/blob/master/ptf_tv_resources/converted-tests.yaml
.. _port-map: https://github.com/stratum/stratum-ci/blob/master/ptf_configs/x86-64-stordis-bf2556x-1t-r0/port_map.json
