Add ARM Taishan testbed33 perftest 50/16850/39
authorStanislav Chlebec <stanislavv.chlebec@pantheon.tech>
Thu, 17 Jan 2019 11:15:54 +0000 (03:15 -0800)
committerjuraj.linkes <juraj.linkes@pantheon.tech>
Fri, 1 Mar 2019 12:53:30 +0000 (13:53 +0100)
Change-Id: Iaa0e7fbca7de26c7dce8b389cc3494f628a2ecd0
Signed-off-by: Stanislav Chlebec <stanislav.chlebec@pantheon.tech>
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
53 files changed:
VPP_STABLE_VER_UBUNTU_BIONIC
docs/tag_documentation.rst
resources/libraries/bash/function/artifacts.sh
resources/libraries/bash/function/common.sh
resources/libraries/bash/function/gather.sh
resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/calibration/tasks/x86_64.yaml [new file with mode: 0644]
resources/tools/testbed-setup/ansible/roles/sut/files/taishan_workaround.service
tests/vpp/perf/ip4/10ge2p1x82599es-dot1q-ip4base-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-dot1q-ip4base-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-copwhtlistbase-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-copwhtlistbase-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ipolicemarkbase-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale200k-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale200k-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale20k-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale20k-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale2m-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale2m-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-nat44-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-nat44-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/ip4_tunnels/10ge2p1x82599es-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr.robot [new file with mode: 0644]
tests/vpp/perf/ip4_tunnels/10ge2p1x82599es-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-dot1ad-l2xcbase-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-dot1ad-l2xcbase-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-dot1q-l2bdbasemaclrn-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-dot1q-l2bdbasemaclrn-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale100kmaclrn-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale100kmaclrn-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale10kmaclrn-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale10kmaclrn-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale1mmaclrn-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale1mmaclrn-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2patch-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2patch-ndrpdr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2xcbase-mrr.robot [new file with mode: 0644]
tests/vpp/perf/l2/10ge2p1x82599es-eth-l2xcbase-ndrpdr.robot [new file with mode: 0644]
topologies/available/lf_3n_tsh_testbed33.yaml [new file with mode: 0644]

index 6c1188e..8b58ad9 100644 (file)
@@ -1 +1 @@
-19.04-rc0~192-g26a101976~b2075
\ No newline at end of file
+19.04-rc0~192-g26a101976
\ No newline at end of file
index 145b8bc..56d7861 100644 (file)
@@ -75,6 +75,10 @@ NIC Model Tags
 
     Intel XXV710 NIC.
 
 
     Intel XXV710 NIC.
 
+.. topic:: NIC_Intel-82599ES
+
+    Intel 82599ES NIC.
+
 .. topic:: NIC_Cisco-VIC-1227
 
     VIC-1227 by Cisco.
 .. topic:: NIC_Cisco-VIC-1227
 
     VIC-1227 by Cisco.
index b6b5bc5..a403cfe 100644 (file)
@@ -1,6 +1,7 @@
 #!/usr/bin/env bash
 
 #!/usr/bin/env bash
 
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2019 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:
 # 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:
@@ -64,14 +65,50 @@ function download_ubuntu_artifacts () {
     }
     # If version is set we will add suffix.
     artifacts=()
     }
     # If version is set we will add suffix.
     artifacts=()
-    vpp=(vpp vpp-dbg vpp-dev vpp-api-python libvppinfra libvppinfra-dev
-         vpp-plugin-core vpp-plugin-dpdk)
+    BOTH_QUOTES='"'"'"
+    MATCH="[^${BOTH_QUOTES}]*"
+    QMATCH="[${BOTH_QUOTES}]\?"
+    SED_COMMAND="s#.*apt_source_path=${QMATCH}\(${MATCH}\)${QMATCH}#\1#p"
+    APT_FDIO_REPO_FILE=$(curl -s "${REPO_URL}"/script.deb.sh | \
+                         sed -n ${SED_COMMAND}) || {
+                             die "Local fdio repo file path fetch failed."
+                         }
+
+    if [ ! -f ${APT_FDIO_REPO_FILE} ]; then
+        die "${APT_FDIO_REPO_FILE} not found, \
+            repository installation was not successful."
+    fi
+
+    packages=$(apt-cache -o Dir::Etc::SourceList=${APT_FDIO_REPO_FILE} \
+               -o Dir::Etc::SourceParts=${APT_FDIO_REPO_FILE} dumpavail \
+               | grep Package: | cut -d " " -f 2) || {
+                   die "Retrieval of available VPP packages failed."
+               }
     if [ -z "${VPP_VERSION-}" ]; then
     if [ -z "${VPP_VERSION-}" ]; then
-        artifacts+=(${vpp[@]})
-    else
-        artifacts+=(${vpp[@]/%/=${VPP_VERSION-}})
+        # If version is not specified, find out the most recent version
+        VPP_VERSION=$(apt-cache --no-all-versions show vpp | grep Version: | \
+                      cut -d " " -f 2) || {
+                          die "Retrieval of most recent VPP version failed."
+                      }
     fi
 
     fi
 
+    set +x
+    for package in ${packages}; do
+        # Filter packages with given version
+        pkg_info=$(apt-cache show ${package}) || {
+            die "apt-cache show on ${package} failed."
+        }
+        ver=$(echo ${pkg_info} | grep -o "Version: ${VPP_VERSION-}[^ ]*") || true
+        if [ -n "${ver-}" ]; then
+            echo "Found '${VPP_VERSION-}' among '${package}' versions."
+            ver=$(echo "$ver" | cut -d " " -f 2)
+            artifacts+=(${package[@]/%/=${ver-}})
+        else
+            echo "Didn't find '${VPP_VERSION-}' among '${package}' versions."
+        fi
+    done
+    set -x
+
     if [ "${INSTALL:-false}" = true ]; then
         sudo apt-get -y install "${artifacts[@]}" || {
             die "Install VPP artifacts failed."
     if [ "${INSTALL:-false}" = true ]; then
         sudo apt-get -y install "${artifacts[@]}" || {
             die "Install VPP artifacts failed."
@@ -98,11 +135,11 @@ function download_centos_artifacts () {
     }
     # If version is set we will add suffix.
     artifacts=()
     }
     # If version is set we will add suffix.
     artifacts=()
-    vpp=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins vpp-api-python)
+    packages=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins vpp-api-python)
     if [ -z "${VPP_VERSION-}" ]; then
     if [ -z "${VPP_VERSION-}" ]; then
-        artifacts+=(${vpp[@]})
+        artifacts+=(${packages[@]})
     else
     else
-        artifacts+=(${vpp[@]/%/-${VPP_VERSION-}})
+        artifacts+=(${packages[@]/%/-${VPP_VERSION-}})
     fi
 
     if [ "${INSTALL:-false}" = true ]; then
     fi
 
     if [ "${INSTALL:-false}" = true ]; then
@@ -131,11 +168,11 @@ function download_opensuse_artifacts () {
     }
     # If version is set we will add suffix.
     artifacts=()
     }
     # If version is set we will add suffix.
     artifacts=()
-    vpp=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
+    packages=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
     if [ -z "${VPP_VERSION-}" ]; then
     if [ -z "${VPP_VERSION-}" ]; then
-        artifacts+=(${vpp[@]})
+        artifacts+=(${packages[@]})
     else
     else
-        artifacts+=(${vpp[@]/%/-${VPP_VERSION-}})
+        artifacts+=(${packages[@]/%/-${VPP_VERSION-}})
     fi
 
     if [ "${INSTALL:-false}" = true ]; then
     fi
 
     if [ "${INSTALL:-false}" = true ]; then
@@ -148,4 +185,3 @@ function download_opensuse_artifacts () {
         }
     fi
 }
         }
     fi
 }
-
index 71cf9d3..2ae1354 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright (c) 2019 Cisco and/or its affiliates.
 # Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2019 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:
 # 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:
@@ -382,6 +383,10 @@ function get_test_code () {
             NODENESS="3n"
             FLAVOR="skx"
             ;;
             NODENESS="3n"
             FLAVOR="skx"
             ;;
+        *"3n-tsh"*)
+            NODENESS="3n"
+            FLAVOR="tsh"
+            ;;
         *)
             # Fallback to 3-node Haswell by default (backward compatibility)
             NODENESS="3n"
         *)
             # Fallback to 3-node Haswell by default (backward compatibility)
             NODENESS="3n"
@@ -424,6 +429,7 @@ function get_test_tag_string () {
                 comment="${comment/perftest-3n/perftest}"
                 comment="${comment/perftest-hsw/perftest}"
                 comment="${comment/perftest-skx/perftest}"
                 comment="${comment/perftest-3n/perftest}"
                 comment="${comment/perftest-hsw/perftest}"
                 comment="${comment/perftest-skx/perftest}"
+                comment="${comment/perftest-tsh/perftest}"
                 tag_string="$(echo "${comment}" \
                     | grep -oE '(perftest$|perftest[[:space:]].+$)' || true)"
                 # Set test tags as string.
                 tag_string="$(echo "${comment}" \
                     | grep -oE '(perftest$|perftest[[:space:]].+$)' || true)"
                 # Set test tags as string.
@@ -557,6 +563,16 @@ function select_tags () {
     # All topologies NICs - Selected topology NICs
     exclude_nics=($(comm -13 <(echo "${reserved}") <(echo "${available}")))
 
     # All topologies NICs - Selected topology NICs
     exclude_nics=($(comm -13 <(echo "${reserved}") <(echo "${available}")))
 
+    # Select default NIC
+    case "${TEST_CODE}" in
+        *"3n-tsh"*)
+            DEFAULT_NIC='nic_intel-82599es'
+            ;;
+        *)
+            DEFAULT_NIC='nic_intel-x710'
+            ;;
+    esac
+
     case "${TEST_CODE}" in
         # Select specific performance tests based on jenkins job type variable.
         *"ndrpdr-weekly"* )
     case "${TEST_CODE}" in
         # Select specific performance tests based on jenkins job type variable.
         *"ndrpdr-weekly"* )
@@ -666,10 +682,10 @@ function select_tags () {
             if [[ -z "${TEST_TAG_STRING-}" ]]; then
                 # If nothing is specified, we will run pre-selected tests by
                 # following tags.
             if [[ -z "${TEST_TAG_STRING-}" ]]; then
                 # If nothing is specified, we will run pre-selected tests by
                 # following tags.
-                test_tag_array=("mrrANDnic_intel-x710AND1cAND64bANDip4base"
-                                "mrrANDnic_intel-x710AND1cAND78bANDip6base"
-                                "mrrANDnic_intel-x710AND1cAND64bANDl2bdbase"
-                                "mrrANDnic_intel-x710AND1cAND64bANDl2xcbase"
+                test_tag_array=("mrrAND${DEFAULT_NIC}AND1cAND64bANDip4base"
+                                "mrrAND${DEFAULT_NIC}AND1cAND78bANDip6base"
+                                "mrrAND${DEFAULT_NIC}AND1cAND64bANDl2bdbase"
+                                "mrrAND${DEFAULT_NIC}AND1cAND64bANDl2xcbase"
                                 "!dot1q")
             else
                 # If trigger contains tags, split them into array.
                                 "!dot1q")
             else
                 # If trigger contains tags, split them into array.
@@ -689,6 +705,9 @@ function select_tags () {
         *"3n-skx"*)
             test_tag_array+=("!ipsechw")
             ;;
         *"3n-skx"*)
             test_tag_array+=("!ipsechw")
             ;;
+        *"3n-tsh"*)
+            test_tag_array+=("!ipsechw")
+            ;;
         *)
             # Default to 3n-hsw due to compatibility.
             test_tag_array+=("!drv_avf")
         *)
             # Default to 3n-hsw due to compatibility.
             test_tag_array+=("!drv_avf")
@@ -706,7 +725,7 @@ function select_tags () {
     if [[ "${TEST_CODE}" == "vpp-"* ]]; then
         # Automatic prefixing for VPP jobs to limit the NIC used and
         # traffic evaluation to MRR.
     if [[ "${TEST_CODE}" == "vpp-"* ]]; then
         # Automatic prefixing for VPP jobs to limit the NIC used and
         # traffic evaluation to MRR.
-        prefix="${prefix}mrrANDnic_intel-x710AND"
+        prefix="${prefix}mrrAND${DEFAULT_NIC}AND"
     fi
     for tag in "${test_tag_array[@]}"; do
         if [[ ${tag} == "!"* ]]; then
     fi
     for tag in "${test_tag_array[@]}"; do
         if [[ ${tag} == "!"* ]]; then
@@ -818,6 +837,12 @@ function select_topology () {
                        )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
                        )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
+        "3n_tsh")
+            TOPOLOGIES=(
+                        "${TOPOLOGIES_DIR}/lf_3n_tsh_testbed33.yaml"
+                       )
+            TOPOLOGIES_TAGS="3_node_*_link_topo"
+            ;;
         *)
             # No falling back to 3n_hsw default, that should have been done
             # by the function which has set NODENESS and FLAVOR.
         *)
             # No falling back to 3n_hsw default, that should have been done
             # by the function which has set NODENESS and FLAVOR.
index f92c4ef..518c6b4 100644 (file)
@@ -1,4 +1,5 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2019 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:
 # 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:
index b70694a..17be800 100644 (file)
 - debug: var=spectre_meltdown_output.stdout_lines
   tags: run-spectre-meltdown-checker
 
 - debug: var=spectre_meltdown_output.stdout_lines
   tags: run-spectre-meltdown-checker
 
-- name: Clone Jitter tool
-  git:
-    repo: 'https://gerrit.fd.io/r/pma_tools'
-    dest: '{{ jitter.directory }}'
-  tags: run-jitter-tool
-
-- name: Compile Jitter tool
-  raw: 'cd {{ jitter.directory }}/jitter && make'
-  tags: run-jitter-tool
-
-- name: Run Jitter tool
-  raw: '{{ jitter.directory }}/jitter/jitter -c {{ jitter.core }} -i {{ jitter.iterations }} -f'
-  become: yes
-  register: jitter_output
-  tags: run-jitter-tool
-
-- debug: var=jitter_output.stdout_lines
-  tags: run-jitter-tool
+- name: x86 specific
+  import_tasks: x86_64.yaml
+  when: ansible_machine == 'x86_64'
diff --git a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/x86_64.yaml b/resources/tools/testbed-setup/ansible/roles/calibration/tasks/x86_64.yaml
new file mode 100644 (file)
index 0000000..a613284
--- /dev/null
@@ -0,0 +1,21 @@
+---
+# file: roles/calibration/tasks/x86_64.yaml
+
+- name: Clone Jitter tool
+  git:
+    repo: 'https://gerrit.fd.io/r/pma_tools'
+    dest: '{{ jitter.directory }}'
+  tags: run-jitter-tool
+
+- name: Compile Jitter tool
+  raw: 'cd {{ jitter.directory }}/jitter && make'
+  tags: run-jitter-tool
+
+- name: Run Jitter tool
+  raw: '{{ jitter.directory }}/jitter/jitter -c {{ jitter.core }} -i {{ jitter.iterations }} -f'
+  become: yes
+  register: jitter_output
+  tags: run-jitter-tool
+
+- debug: var=jitter_output.stdout_lines
+  tags: run-jitter-tool
index 05f865f..246c985 100644 (file)
@@ -2,8 +2,8 @@
 Description=Numa node workaround configuration
 
 [Service]
 Description=Numa node workaround configuration
 
 [Service]
-ExecStart=/bin/sh -c 'echo 1 > /sys/bus/pci/devices/000a:11:00.0/numa_node'
-ExecStart=/bin/sh -c 'echo 1 > /sys/bus/pci/devices/000a:11:00.1/numa_node'
+ExecStart=/bin/sh -c 'echo 1 > /sys/bus/pci/devices/0000:11:00.0/numa_node'
+ExecStart=/bin/sh -c 'echo 1 > /sys/bus/pci/devices/0000:11:00.1/numa_node'
 Type=oneshot
 RemainAfterExit=yes
 
 Type=oneshot
 RemainAfterExit=yes
 
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-dot1q-ip4base-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-dot1q-ip4base-mrr.robot
new file mode 100644 (file)
index 0000000..dc09f00
--- /dev/null
@@ -0,0 +1,134 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | BASE | DOT1Q | IP4BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 routing with IEEE 802.1Q test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. IEEE 802.1Q\
+| ... | tagging is applied on link between DUT1 and DUT2.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and two static IPv4 /30 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| ${subid}= | 10
+| ${tag_rewrite}= | pop-1
+| ${overhead}= | ${4}
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# TG subnets used by T-Rex
+| ${tg_if1_net}= | 10.10.10.0
+| ${tg_if2_net}= | 20.20.20.0
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs IPv4 routing with VLAN and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with VLAN dot1q sub-interfaces in circular topology
+| | ... | ${tg_if1_net} | ${tg_if2_net} | ${subid} | ${tag_rewrite}
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1q-ip4base-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1q-ip4base-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1q-ip4base-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1q-ip4base-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1q-ip4base-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1q-ip4base-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1q-ip4base-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1q-ip4base-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1q-ip4base-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1q-ip4base-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1q-ip4base-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1q-ip4base-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-dot1q-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-dot1q-ip4base-ndrpdr.robot
new file mode 100644 (file)
index 0000000..2b65609
--- /dev/null
@@ -0,0 +1,141 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | BASE | DOT1Q | IP4BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 routing with IEEE 802.1Q test\
+| ... | cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. IEEE 802.1Q\
+| ... | tagging is applied on link between DUT1 and DUT2.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and two static IPv4 /30 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library. Test packets are\
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
+| ... | all packets containing Ethernet header, IPv4 header with IP\
+| ... | protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| ${subid}= | 10
+| ${tag_rewrite}= | pop-1
+| ${overhead}= | ${4}
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# TG subnets used by T-Rex
+| ${tg_if1_net}= | 10.10.10.0
+| ${tg_if2_net}= | 20.20.20.0
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs IPv4 routing with VLAN and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with VLAN dot1q sub-interfaces in circular topology
+| | ... | ${tg_if1_net} | ${tg_if2_net} | ${subid} | ${tag_rewrite}
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1q-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1q-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1q-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1q-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1q-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1q-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1q-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1q-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1q-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1q-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1q-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1q-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-copwhtlistbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-copwhtlistbase-mrr.robot
new file mode 100644 (file)
index 0000000..7deca2a
--- /dev/null
@@ -0,0 +1,136 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Library | resources.libraries.python.Cop
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | COPWHLIST
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 whitelist test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing, two static IPv4 /24 routes and IPv4 COP security whitelist
+| ... | ingress /24 filter entries applied on links TG - DUT1 and DUT2 - TG.
+| ... | DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding in circular topology
+| | And Add Fib Table | ${dut1} | 1
+| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
+| | And Add Fib Table | ${dut2} | 1
+| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
+| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
+| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
+| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
+| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4base-copwhtlistbase-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-copwhtlistbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-copwhtlistbase-ndrpdr.robot
new file mode 100644 (file)
index 0000000..73ccee2
--- /dev/null
@@ -0,0 +1,142 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Library | resources.libraries.python.Cop
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | COPWHLIST
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 whitelist test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing, two static IPv4 /24 routes and IPv4 COP security whitelist
+| ... | ingress /24 filter entries applied on links TG - DUT1 and DUT2 - TG.
+| ... | DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding in circular topology
+| | And Add Fib Table | ${dut1} | 1
+| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
+| | And Add Fib Table | ${dut2} | 1
+| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE}
+| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1
+| | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1
+| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
+| | And COP interface enable or disable | ${dut2} | ${dut2_if2} | enable
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4base-copwhtlistbase-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ipolicemarkbase-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ipolicemarkbase-mrr.robot
new file mode 100644 (file)
index 0000000..7df1bcd
--- /dev/null
@@ -0,0 +1,134 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Library | resources.libraries.python.Policer
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | IP4FWD | FEATURE | POLICE_MARK
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 policer test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 route entries and policer with 2R3C
+| ... | color-aware configuration. Policer is applied on links TG - DUT1 and
+| ... | DUT2 - TG. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header
+| ... | and generated payload. MAC addresses are matching MAC addresses
+| ... | of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC2698.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${cir}= | ${100}
+| ${eir}= | ${150}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${cb} | ${framesize}
+| | Set Test Variable | ${eb} | ${framesize}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding in circular topology
+| | And Initialize IPv4 policer 2r3c-'ca' in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4base-ipolicemarkbase-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot
new file mode 100644 (file)
index 0000000..49f1ea5
--- /dev/null
@@ -0,0 +1,139 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Library | resources.libraries.python.Policer
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | IP4FWD | FEATURE | POLICE_MARK
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 policer test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 route entries and policer with 2R3C
+| ... | color-aware configuration. Policer is applied on links TG - DUT1 and
+| ... | DUT2 - TG. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header
+| ... | and generated payload. MAC addresses are matching MAC addresses
+| ... | of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC2698.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${cir}= | ${100}
+| ${eir}= | ${150}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | Set Test Variable | ${cb} | ${framesize}
+| | Set Test Variable | ${eb} | ${framesize}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding in circular topology
+| | And Initialize IPv4 policer 2r3c-'ca' in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4base-ipolicemarkbase-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-mrr.robot
new file mode 100644 (file)
index 0000000..a318298
--- /dev/null
@@ -0,0 +1,125 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | BASE | IP4BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 route entries. DUT1 and DUT2 tested with
+| ... | 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4base-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4base-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4base-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4base-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4base-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4base-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4base-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4base-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4base-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4base-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4base-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4base-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4base-ndrpdr.robot
new file mode 100644 (file)
index 0000000..0faaa2f
--- /dev/null
@@ -0,0 +1,131 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | BASE | IP4BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 route entries. DUT1 and DUT2 tested with
+| ... | 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale200k-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale200k-mrr.robot
new file mode 100644 (file)
index 0000000..9a44555
--- /dev/null
@@ -0,0 +1,128 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | SCALE | FIB_200K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and 2x100k static IPv4 /32 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${rts_per_flow}= | ${100000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4scale200k-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4scale200k-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4scale200k-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4scale200k-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4scale200k-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4scale200k-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4scale200k-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4scale200k-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4scale200k-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4scale200k-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4scale200k-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4scale200k-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale200k-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale200k-ndrpdr.robot
new file mode 100644 (file)
index 0000000..86ef486
--- /dev/null
@@ -0,0 +1,134 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | SCALE | FIB_200K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and 2x100k static IPv4 /32 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${rts_per_flow}= | ${100000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4scale200k-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale20k-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale20k-mrr.robot
new file mode 100644 (file)
index 0000000..797e2a4
--- /dev/null
@@ -0,0 +1,128 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | SCALE | FIB_20K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and 2x10k static IPv4 /32 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${rts_per_flow}= | ${10000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4scale20k-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4scale20k-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4scale20k-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4scale20k-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4scale20k-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4scale20k-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4scale20k-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4scale20k-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4scale20k-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4scale20k-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4scale20k-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4scale20k-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale20k-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale20k-ndrpdr.robot
new file mode 100644 (file)
index 0000000..97dbaa1
--- /dev/null
@@ -0,0 +1,134 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | SCALE | FIB_20K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and 2x10k static IPv4 /32 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${rts_per_flow}= | ${10000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4scale20k-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale2m-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale2m-mrr.robot
new file mode 100644 (file)
index 0000000..9e55382
--- /dev/null
@@ -0,0 +1,128 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | SCALE | FIB_2M
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${rts_per_flow}= | ${1000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4scale2m-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4scale2m-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4scale2m-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4scale2m-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4scale2m-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4scale2m-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4scale2m-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4scale2m-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4scale2m-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4scale2m-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4scale2m-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4scale2m-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale2m-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4-ip4scale2m-ndrpdr.robot
new file mode 100644 (file)
index 0000000..9c11f1f
--- /dev/null
@@ -0,0 +1,134 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | SCALE | FIB_2M
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L3 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 tested\
+| ... | with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${rts_per_flow}= | ${1000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize IPv4 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4-ip4scale2m-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sf-10kflows-mrr.robot
new file mode 100644 (file)
index 0000000..749f11a
--- /dev/null
@@ -0,0 +1,147 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | ACL | ACL_STATEFUL
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
+| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
+| ... | with 2p10GE NIC 82599ES Niantic by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
+| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
+| ... | header with IP protocol=61 and static payload. MAC addresses are\
+| ... | matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit+reflect
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | ${ip_nr}= | Set Variable | 10
+| | When Initialize IPv4 routing for '${ip_nr}' addresses with IPv4 ACLs on DUT1 in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4base-iacl50sf-10kflows-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot
new file mode 100644 (file)
index 0000000..3d17e93
--- /dev/null
@@ -0,0 +1,153 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | ACL | ACL_STATEFUL
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
+| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
+| ... | with 2p10GE NIC 82599ES Niantic by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
+| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
+| ... | header with IP protocol=61 and static payload. MAC addresses are\
+| ... | matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit+reflect
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | ${ip_nr}= | Set Variable | 10
+| | When Initialize IPv4 routing for '${ip_nr}' addresses with IPv4 ACLs on DUT1 in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sl-10kflows-mrr.robot
new file mode 100644 (file)
index 0000000..d6f420d
--- /dev/null
@@ -0,0 +1,147 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | ACL | ACL_STATELESS
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results IPv4 test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
+| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
+| ... | with 2p10GE NIC 82599ES Niantic by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
+| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
+| ... | header with IP protocol=61 and static payload. MAC addresses are\
+| ... | matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | ${ip_nr}= | Set Variable | 10
+| | When Initialize IPv4 routing for '${ip_nr}' addresses with IPv4 ACLs on DUT1 in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4base-iacl50sl-10kflows-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot
new file mode 100644 (file)
index 0000000..f122dfa
--- /dev/null
@@ -0,0 +1,153 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | ACL | ACL_STATELESS
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput IPv4 test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
+| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
+| ... | with 2p10GE NIC 82599ES Niantic by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
+| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
+| ... | header with IP protocol=61 and static payload. MAC addresses are\
+| ... | matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | ${ip_nr}= | Set Variable | 10
+| | When Initialize IPv4 routing for '${ip_nr}' addresses with IPv4 ACLs on DUT1 in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-nat44-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-nat44-mrr.robot
new file mode 100644 (file)
index 0000000..b62048f
--- /dev/null
@@ -0,0 +1,131 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | NAT44 | BASE
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with NAT
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results NAT44 performance test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 and IPv4/20 route entries. DUT1 and DUT2
+| ... | tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-1u1p
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Add NAT to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize NAT44 in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4base-nat44-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-nat44-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4base-nat44-ndrpdr.robot
new file mode 100644 (file)
index 0000000..f5b4c25
--- /dev/null
@@ -0,0 +1,137 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | NAT44 | BASE
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with NAT
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput NAT44 performance test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 and IPv4/20 route entries. DUT1 and DUT2
+| ... | tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-1u1p
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Add NAT to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize NAT44 in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4base-nat44-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.robot
new file mode 100644 (file)
index 0000000..deb12e2
--- /dev/null
@@ -0,0 +1,132 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | NAT44 | SRC_USER_1000
+| ... | SCALE
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with NAT
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results NAT44 performance test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 and IPv4/20 route entries. DUT1 and DUT2
+| ... | tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-1000u15p
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Add NAT to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize NAT44 in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x82599es-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr.robot
new file mode 100644 (file)
index 0000000..9323778
--- /dev/null
@@ -0,0 +1,138 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | IP4FWD | FEATURE | NAT44 | SRC_USER_1000
+| ... | SCALE
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L3
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with NAT
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput  NAT44 performance test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| ... | routing and two static IPv4 /24 and IPv4/20 route entries. DUT1 and DUT2
+| ... | tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-1000u15p
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Add NAT to all DUTs
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize NAT44 in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x82599es-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x82599es-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr.robot
new file mode 100644 (file)
index 0000000..f2ccd40
--- /dev/null
@@ -0,0 +1,132 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | L2BDMACLRN | SCALE | L2BD_1K | DOT1Q | VLAN_1K
+| ... | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY | VXLAN_1K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2BD with IEEE 802.1Q and VXLANoIPv4 test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-Dot1Q-IPv4 for L2 switching of IPv4\
+| ... | on TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with 1k L2\
+| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and\
+| ... | DUT2. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k\
+| ... | flows per flow-group) with all packets containing Ethernet header,\
+| ... | IEEE 802.1Q header, IPv4 header with IP protocol=61 and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${overhead}= | ${50}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254
+# Number of VXLAN tunnels
+| ${vxlan_count}= | ${1000}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD forwarding config with VLAN and VXLAN and\
+| | ... | uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain with VLAN and VXLANoIPv4 in 3-node circular topology
+| | ... | vxlan_count=${vxlan_count}
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x82599es-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x82599es-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot
new file mode 100644 (file)
index 0000000..abd5f99
--- /dev/null
@@ -0,0 +1,139 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | L2BDMACLRN | SCALE | L2BD_1K | DOT1Q | VLAN_1K
+| ... | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY | VXLAN_1K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q and VXLANoIPv4
+| ... | test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-Dot1Q-IPv4 for L2 switching of IPv4\
+| ... | on TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with 1k L2\
+| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and\
+| ... | DUT2. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k\
+| ... | flows per flow-group) with all packets containing Ethernet header, IEEE\
+| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+| ${overhead}= | ${50}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-dot1qip4-vlan1kip4src254ip4dst254
+# Number of VXLAN tunnels
+| ${vxlan_count}= | ${1000}
+
+*** Keywords ***
+| Local Template
+| | ...
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD forwarding config with VLAN and VXLAN and\
+| | ... | uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain with VLAN and VXLANoIPv4 in 3-node circular topology
+| | ... | vxlan_count=${vxlan_count}
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-dot1ad-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-dot1ad-l2xcbase-mrr.robot
new file mode 100644 (file)
index 0000000..7e8bf3d
--- /dev/null
@@ -0,0 +1,144 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Resource | resources/libraries/robot/l2/tagging.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | L2XCFWD | BASE | DOT1AD
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2XC with 802.1ad test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 xconnect.
+| ... | 802.1ad tagging is applied on link between DUT1 and DUT2 with inner 4B
+| ... | vlan tag (id=100) and outer 4B vlan tag (id=200).
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
+| ... | static payload. MAC addresses are matching MAC addresses of the TG
+| ... | node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| ${subid}= | 10
+| ${outer_vlan_id}= | 100
+| ${inner_vlan_id}= | 200
+| ${type_subif}= | two_tags
+| ${tag_rewrite}= | pop-2
+| ${overhead}= | ${8}
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | And Set interfaces in path up
+| | When Initialize VLAN sub-interfaces in 3-node circular topology
+| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid}
+| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif}
+| | And Configure L2 tag rewrite method on interfaces
+| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2}
+| | ... | ${tag_rewrite}
+| | And Connect interfaces and VLAN sub-interfaces using L2XC
+| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1}
+| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2}
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1ad-l2xcbase-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1ad-l2xcbase-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1ad-l2xcbase-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1ad-l2xcbase-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1ad-l2xcbase-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1ad-l2xcbase-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1ad-l2xcbase-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1ad-l2xcbase-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1ad-l2xcbase-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1ad-l2xcbase-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1ad-l2xcbase-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1ad-l2xcbase-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-dot1ad-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-dot1ad-l2xcbase-ndrpdr.robot
new file mode 100644 (file)
index 0000000..80bc976
--- /dev/null
@@ -0,0 +1,150 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| Resource | resources/libraries/robot/l2/tagging.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | L2XCFWD | BASE | DOT1AD
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput L2XC with 802.1ad test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 xconnect.
+| ... | 802.1ad tagging is applied on link between DUT1 and DUT2 with inner 4B
+| ... | vlan tag (id=100) and outer 4B vlan tag (id=200).
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
+| ... | static payload. MAC addresses are matching MAC addresses of the TG
+| ... | node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| ${subid}= | 10
+| ${outer_vlan_id}= | 100
+| ${inner_vlan_id}= | 200
+| ${type_subif}= | two_tags
+| ${tag_rewrite}= | pop-2
+| ${overhead}= | ${8}
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC forwarding config.
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | And Set interfaces in path up
+| | When Initialize VLAN sub-interfaces in 3-node circular topology
+| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid}
+| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif}
+| | And Configure L2 tag rewrite method on interfaces
+| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2}
+| | ... | ${tag_rewrite}
+| | And Connect interfaces and VLAN sub-interfaces using L2XC
+| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1}
+| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2}
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1ad-l2xcbase-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-dot1q-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-dot1q-l2bdbasemaclrn-mrr.robot
new file mode 100644 (file)
index 0000000..d43aef7
--- /dev/null
@@ -0,0 +1,134 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | BASE | DOT1Q | L2BDMACLRN
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2BD with IEEE 802.1Q test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
+| ... | 802.1Q tagging is applied on link between DUT1 and DUT2.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 are tested with 2p10GE\
+| ... | NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| ${subid}= | 10
+| ${tag_rewrite}= | pop-1
+| ${overhead}= | ${4}
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Bridge domain IDs
+| ${bd_id1}= | 1
+| ${bd_id2}= | 2
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD config with VLAN and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domains with VLAN dot1q sub-interfaces in circular topology
+| | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite}
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-dot1q-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-dot1q-l2bdbasemaclrn-ndrpdr.robot
new file mode 100644 (file)
index 0000000..de68f47
--- /dev/null
@@ -0,0 +1,140 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | BASE | DOT1Q | L2BDMACLRN
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
+| ... | 802.1Q tagging is applied on link between DUT1 and DUT2.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 are tested with 2p10GE\
+| ... | NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library. Test packets are\
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
+| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
+| ... | node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+| ${subid}= | 10
+| ${tag_rewrite}= | pop-1
+| ${overhead}= | ${4}
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Bridge domain IDs
+| ${bd_id1}= | 1
+| ${bd_id2}= | 2
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD config with VLAN and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize} | overhead=${overhead}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domains with VLAN dot1q sub-interfaces in circular topology
+| | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite}
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot
new file mode 100644 (file)
index 0000000..0829487
--- /dev/null
@@ -0,0 +1,148 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2BD test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
+| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
+| ... | DUT1 and DUT2 are tested with 2p10GE NIC 82599ES by Intel.\
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on\
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
+| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
+| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
+| ... | interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit+reflect
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
new file mode 100644 (file)
index 0000000..a102418
--- /dev/null
@@ -0,0 +1,154 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
+| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
+| ... | DUT1 and DUT2 are tested with 2p10GE NIC 82599ES by Intel.\
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on\
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
+| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
+| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
+| ... | interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit+reflect
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot
new file mode 100644 (file)
index 0000000..69da50c
--- /dev/null
@@ -0,0 +1,148 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2BD test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
+| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
+| ... | DUT1 and DUT2 are tested with 2p10GE NIC 82599ES by Intel.\
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on\
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
+| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
+| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
+| ... | interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot
new file mode 100644 (file)
index 0000000..36c514a
--- /dev/null
@@ -0,0 +1,154 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS
+| ... | IACL | ACL50 | 10k_FLOWS
+| ...
+| Suite Setup | Run Keywords
+| ... | Set up 3-node performance topology with DUT's NIC model | L2
+| ... | Intel-82599ES
+| ... | AND | Set up performance test suite with ACL
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
+| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
+| ... | DUT1 and DUT2 are tested with 2p10GE NIC 82599ES by Intel.\
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on\
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
+| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
+| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
+| ... | interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+
+# ACL test setup
+| ${acl_action}= | permit
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 50
+| ${flows_per_dir}= | 10k
+
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-mrr.robot
new file mode 100644 (file)
index 0000000..0e1a979
--- /dev/null
@@ -0,0 +1,126 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | Intel-82599ES.
+| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# Link limit:
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | Apply startup configuration on all VPP DUTs
+| | Initialize L2 bridge domain in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdbasemaclrn-ndrpdr.robot
new file mode 100644 (file)
index 0000000..f8f94b1
--- /dev/null
@@ -0,0 +1,132 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | 82599ES.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# Link limit:
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | Apply startup configuration on all VPP DUTs
+| | Initialize L2 bridge domain in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale100kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale100kmaclrn-mrr.robot
new file mode 100644 (file)
index 0000000..0a8a5c8
--- /dev/null
@@ -0,0 +1,130 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | SCALE | L2BDSCALE | FIB_100K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results for L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 50k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload.\
+| ... | MAC addresses ranges are incremented as follows:
+| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
+| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
+| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
+| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc50kdst50k
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [CFG] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale100kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale100kmaclrn-ndrpdr.robot
new file mode 100644 (file)
index 0000000..3ff01fa
--- /dev/null
@@ -0,0 +1,136 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | SCALE | L2BDSCALE | FIB_100K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 50k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload.\
+| ... | MAC addresses ranges are incremented as follows:
+| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
+| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
+| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
+| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc50kdst50k
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [CFG] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale10kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale10kmaclrn-mrr.robot
new file mode 100644 (file)
index 0000000..b4b3449
--- /dev/null
@@ -0,0 +1,130 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | SCALE | L2BDSCALE | FIB_10K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results for L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 5k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload.\
+| ... | MAC addresses ranges are incremented as follows:
+| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
+| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
+| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
+| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc5kdst5k
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [CFG] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale10kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale10kmaclrn-ndrpdr.robot
new file mode 100644 (file)
index 0000000..0023b5b
--- /dev/null
@@ -0,0 +1,136 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | SCALE | L2BDSCALE | FIB_10K
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 5k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload.\
+| ... | MAC addresses ranges are incremented as follows:
+| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
+| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
+| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
+| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc5kdst5k
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [CFG] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale1mmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale1mmaclrn-mrr.robot
new file mode 100644 (file)
index 0000000..1d38215
--- /dev/null
@@ -0,0 +1,130 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | SCALE | L2BDSCALE | FIB_1M
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results for L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload.\
+| ... | MAC addresses ranges are incremented as follows:
+| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
+| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
+| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
+| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc500kdst500k
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain in circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale1mmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2bdscale1mmaclrn-ndrpdr.robot
new file mode 100644 (file)
index 0000000..3f5f766
--- /dev/null
@@ -0,0 +1,136 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2BDMACLRN | SCALE | L2BDSCALE | FIB_1M
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC\
+| ... | 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per\
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
+| ... | with IP protocol=61 and static payload.\
+| ... | MAC addresses ranges are incremented as follows:
+| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
+| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
+| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
+| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc500kdst500k
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] Each DUT runs L2BD switching config and uses ${phy_cores}\
+| | ... | physical core(s) for worker threads.
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 bridge domain in circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2patch-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2patch-mrr.robot
new file mode 100644 (file)
index 0000000..cd12374
--- /dev/null
@@ -0,0 +1,127 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2PATCH | BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2patch test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 patch.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 patch\
+| ... | DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic\
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
+| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... | interfaces.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Add DPDK dev default RXD to all DUTs | 2048
+| | And Add DPDK dev default TXD to all DUTs | 2048
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 patch
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2patch-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2patch-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2patch-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2patch-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2patch-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2patch-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2patch-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2patch-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2patch-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2patch-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2patch-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2patch-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2patch-ndrpdr.robot
new file mode 100644 (file)
index 0000000..b538be0
--- /dev/null
@@ -0,0 +1,133 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2PATCH | BASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput  L2patch test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 patch.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 patch\
+| ... | DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
+| ... | of packets transmitted. NDR and PDR are discovered for different\
+| ... | Ethernet L2 frame sizes using MLRsearch library\
+| ... | Test packets are generated by TG on\
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
+| ... | (flow-group per direction, 254 flows per flow-group) with\
+| ... | all packets containing Ethernet header,IPv4 header with static payload.\
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Add DPDK dev default RXD to all DUTs | 2048
+| | And Add DPDK dev default TXD to all DUTs | 2048
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize L2 patch
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2patch-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2patch-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2patch-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2patch-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2patch-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2patch-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2patch-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2patch-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2patch-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2patch-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2patch-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2patch-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2xcbase-mrr.robot
new file mode 100644 (file)
index 0000000..2a7aeb7
--- /dev/null
@@ -0,0 +1,125 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-82599ES | ETH | L2XCFWD | BASE | L2XCBASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance mrr test
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Raw results L2XC test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* In MaxReceivedRate tests TG sends traffic
+| ... | at line rate and reports total received/sent packets over trial period.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\
+| | ... | trial throughput test.
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | And Initialize L2 xconnect in 3-node circular topology
+| | Then Traffic should pass with maximum rate
+| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2xcbase-mrr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2xcbase-mrr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2xcbase-mrr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2xcbase-mrr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2xcbase-mrr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2xcbase-mrr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2xcbase-mrr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2xcbase-mrr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2xcbase-mrr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2xcbase-mrr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2xcbase-mrr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2xcbase-mrr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x82599es-eth-l2xcbase-ndrpdr.robot
new file mode 100644 (file)
index 0000000..22ee553
--- /dev/null
@@ -0,0 +1,131 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/performance/performance_setup.robot
+| ...
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-82599ES | ETH | L2XCFWD | BASE | L2XCBASE
+| ...
+| Suite Setup | Set up 3-node performance topology with DUT's NIC model
+| ... | L2 | Intel-82599ES
+| ...
+| Suite Teardown | Tear down 3-node performance topology
+| ...
+| Test Setup | Set up performance test
+| ...
+| Test Teardown | Tear down performance discovery test | ${min_rate}pps
+| ... | ${framesize} | ${traffic_profile}
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *RFC2544: Pkt throughput L2XC test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
+| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC 82599ES by Intel.
+| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop
+| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop
+| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage
+| ... | of packets transmitted. NDR and PDR are discovered for different
+| ... | Ethernet L2 frame sizes using MLRsearch library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | addresses of the TG node interfaces.
+| ... | *[Ref] Applicable standard specifications:* RFC2544.
+
+*** Variables ***
+# 82599ES bandwidth limit
+| ${s_limit}= | ${10000000000}
+# Traffic profile:
+| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy
+| | ... | core(s).
+| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ...
+| | ... | *Arguments:*
+| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | ${framesize}
+| | Set Test Variable | ${min_rate} | ${10000}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg
+| | ... | ${s_limit} | ${framesize}
+| | And Apply startup configuration on all VPP DUTs
+| | And Initialize L2 xconnect in 3-node circular topology
+| | Then Find NDR and PDR intervals using optimized search
+| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate}
+
+*** Test Cases ***
+| tc01-64B-1c-eth-l2xcbase-ndrpdr
+| | [Tags] | 64B | 1C
+| | framesize=${64} | phy_cores=${1}
+
+| tc02-64B-2c-eth-l2xcbase-ndrpdr
+| | [Tags] | 64B | 2C
+| | framesize=${64} | phy_cores=${2}
+
+| tc03-64B-4c-eth-l2xcbase-ndrpdr
+| | [Tags] | 64B | 4C
+| | framesize=${64} | phy_cores=${4}
+
+| tc04-1518B-1c-eth-l2xcbase-ndrpdr
+| | [Tags] | 1518B | 1C
+| | framesize=${1518} | phy_cores=${1}
+
+| tc05-1518B-2c-eth-l2xcbase-ndrpdr
+| | [Tags] | 1518B | 2C
+| | framesize=${1518} | phy_cores=${2}
+
+| tc06-1518B-4c-eth-l2xcbase-ndrpdr
+| | [Tags] | 1518B | 4C
+| | framesize=${1518} | phy_cores=${4}
+
+| tc07-9000B-1c-eth-l2xcbase-ndrpdr
+| | [Tags] | 9000B | 1C
+| | framesize=${9000} | phy_cores=${1}
+
+| tc08-9000B-2c-eth-l2xcbase-ndrpdr
+| | [Tags] | 9000B | 2C
+| | framesize=${9000} | phy_cores=${2}
+
+| tc09-9000B-4c-eth-l2xcbase-ndrpdr
+| | [Tags] | 9000B | 4C
+| | framesize=${9000} | phy_cores=${4}
+
+| tc10-IMIX-1c-eth-l2xcbase-ndrpdr
+| | [Tags] | IMIX | 1C
+| | framesize=IMIX_v4_1 | phy_cores=${1}
+
+| tc11-IMIX-2c-eth-l2xcbase-ndrpdr
+| | [Tags] | IMIX | 2C
+| | framesize=IMIX_v4_1 | phy_cores=${2}
+
+| tc12-IMIX-4c-eth-l2xcbase-ndrpdr
+| | [Tags] | IMIX | 4C
+| | framesize=IMIX_v4_1 | phy_cores=${4}
diff --git a/topologies/available/lf_3n_tsh_testbed33.yaml b/topologies/available/lf_3n_tsh_testbed33.yaml
new file mode 100644 (file)
index 0000000..fec8dec
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright (c) 2019 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:
+#
+#     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.
+
+---
+metadata:
+  version: 0.1
+  schema: # list of schema files against which to validate
+    - 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.49
+    arch: x86_64
+    port: 22
+    username: testuser
+    password: Csit1234
+    interfaces:
+      port0:
+        mac_address: "3c:fd:fe:a8:aa:c0"
+        pci_address: "0000:18:00.0"
+        link: link2
+        driver: i40e
+        model: Intel-X710
+      port1:
+        mac_address: "3c:fd:fe:a8:aa:c1"
+        pci_address: "0000:18:00.1"
+        link: link1
+        driver: i40e
+        model: Intel-X710
+  DUT1:
+    type: DUT
+    host: 10.30.51.36
+    arch: aarch64
+    port: 22
+    uio_driver: vfio-pci
+    username: testuser
+    password: Csit1234
+    interfaces:
+      port0:
+        mac_address: "80:41:26:6f:19:81"
+        pci_address: "0000:11:00.0"
+        link: link3
+        driver: ixgbe
+        model: Intel-82599ES
+      port1:
+        mac_address: "80:41:26:6f:19:82"
+        pci_address: "0000:11:00.1"
+        link: link1
+        driver: ixgbe
+        model: Intel-82599ES
+  DUT2:
+    type: DUT
+    host: 10.30.51.37
+    arch: aarch64
+    port: 22
+    username: testuser
+    uio_driver: vfio-pci
+    password: Csit1234
+    interfaces:
+      port0:
+        mac_address: "80:41:26:6f:19:7d"
+        pci_address: "0000:11:00.0"
+        link: link2
+        driver: ixgbe
+        model: Intel-82599ES
+      port1:
+        mac_address: "80:41:26:6f:19:7e"
+        pci_address: "0000:11:00.1"
+        link: link3
+        driver: ixgbe
+        model: Intel-82599ES