Infra: AWS - add CSIT parameters to bootstrap
[csit.git] / resources / libraries / bash / function / common.sh
index a387801..ec95f92 100644 (file)
@@ -441,6 +441,14 @@ function get_test_code () {
             NODENESS="1n"
             FLAVOR="tx2"
             ;;
+        *"2n-aws"*)
+            NODENESS="2n"
+            FLAVOR="aws"
+            ;;
+        *"3n-aws"*)
+            NODENESS="3n"
+            FLAVOR="aws"
+            ;;
         *"2n-skx"*)
             NODENESS="2n"
             FLAVOR="skx"
@@ -641,7 +649,7 @@ function reserve_and_cleanup_testbed () {
                     }
                     die "Trap attempt failed, unreserve succeeded. Aborting."
                 }
-                # Cleanup + calibration checks.
+                # Cleanup + calibration checks
                 set +e
                 ansible_playbook "cleanup, calibration"
                 result="$?"
@@ -803,6 +811,9 @@ function select_tags () {
         *"3n-hsw"* | *"2n-tx2"* | *"mrr-daily-master")
             default_nic="nic_intel-xl710"
             ;;
+        *"2n-aws"* | *"3n-aws"*)
+            default_nic="nic_amazon-nitro-50g"
+            ;;
         *)
             default_nic="nic_intel-x710"
             ;;
@@ -818,6 +829,7 @@ function select_tags () {
     awk_nics_sub_cmd+='gsub("cx556a","100ge2p1cx556a");'
     awk_nics_sub_cmd+='gsub("vic1227","10ge2p1vic1227");'
     awk_nics_sub_cmd+='gsub("vic1385","40ge2p1vic1385");'
+    awk_nics_sub_cmd+='gsub("nitro-50g","50ge1p1ENA");'
     awk_nics_sub_cmd+='if ($9 =="drv_avf") drv="avf-";'
     awk_nics_sub_cmd+='else if ($9 =="drv_rdma_core") drv ="rdma-";'
     awk_nics_sub_cmd+='else drv="";'
@@ -930,6 +942,9 @@ function select_tags () {
             # which we do not want to even run.
             test_tag_array+=("!ipsechwNOTnic_intel-xl710")
             ;;
+        *"2n-aws"* | *"3n-aws"*)
+            test_tag_array+=("!ipsechw")
+            ;;
         *)
             # Default to 3n-hsw due to compatibility.
             test_tag_array+=("!drv_avf")
@@ -1043,6 +1058,14 @@ function select_topology () {
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_tx2*.yaml )
             TOPOLOGIES_TAGS="2_node_single_link_topo"
             ;;
+        "2n_aws")
+            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_aws*.yaml )
+            TOPOLOGIES_TAGS="2_node_single_link_topo"
+            ;;
+        "3n_aws")
+            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_aws*.yaml )
+            TOPOLOGIES_TAGS="3_node_single_link_topo"
+            ;;
         *)
             # No falling back to 3n_hsw default, that should have been done
             # by the function which has set NODENESS and FLAVOR.
@@ -1115,6 +1138,31 @@ function select_vpp_device_tags () {
     done
 }
 
+
+function set_environment_variables () {
+
+    # Depending on testbed topology, overwrite defaults set in the
+    # resources/libraries/python/Constants.py file
+    #
+    # Variables read:
+    # - TEST_CODE - String affecting test selection, usually jenkins job name.
+    # Variables set:
+    # See specific cases
+
+    set -exuo pipefail
+
+    case "${TEST_CODE}" in
+        *"2n-aws"* | *"3n-aws"*)
+            # T-Rex 2.88 workaround for ENA NICs
+            export TREX_RX_DESCRIPTORS_COUNT=1024
+            export TREX_EXTRA_CMDLINE="--mbuf-factor 19"
+            # Settings to prevent duration stretching
+            export PERF_TRIAL_STL_DELAY=0.1
+            ;;
+    esac
+}
+
+
 function untrap_and_unreserve_testbed () {
 
     # Use this as a trap function to ensure testbed does not remain reserved.