Merged WIFI-7 branches (#1053)

* Added sanity marker for 6g test cases

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Add logic for better error handling

* Add detailed error logging

* Add fix for broken Dynamic VLAN 6GHz test cases

* Configured channel mode to EHT for wifi7

* Removed sercomm_ap72tip and Added sonicfi_rap7110c-341x AP in the sanity, performance and regression workflows

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Replaced HE mode with EHT mode for the AP config

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Increased sleep time after config push

* Replaced 2g test case with 5g test case in the sanity suite

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Swapped the testbed basic-4a and basic-5a

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Increased the sleep time after the config push

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Update sleep time for all interfaces to come up

* Removed sonicfi_rap7110c-341x AP from basic-4 and added it in advanced-2 testbed

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Updated the DFS path for WiFi 7 APs

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Add BE capacity tests and BE client scale tests

* Rename client_scale tests into ax_client_scale tests

* Rename client_scale_tests into ax_client_scale_tests

* Remove bidirectional tests from ax_client_scale tests

* Add configuraion data

* Provide pass fail criteria for 2G 2x2 40MHz

* Modified the marker name

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added be_client_scale_tests, wifi_capacity_be_tests and  ax_client_scale_tests for new performance suite

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Increased the wait time after config push

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added the ax capacity marker

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Change upload and download rate for BE client scale

* Added pass fail values for BE mode

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Modified the markers for the test cases

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added be mode pass fail

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added pass-fail values for 6g 2x2 160MHz

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Added pass-fail values for 6g 2x2 160MHz

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Replaced basic-4a with adv-2a

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Add Multiband testcases

* Add multi_band_tests marker

* Replaced dual band with multi band test

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>

* Update sleep time after config push

* Update sleep time after config push

* ADD EMPSK 6G testcase

* Update dataplane tests

* Modified the namespace name for sonicfi_rap630c-311g

Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>

* Replaced advanced-2a with advanced-2c

Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>

* Replaced advanced-2a with advanced-2c

Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>

* Updated code as per master

Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>

* Replaced advanced-2c with basic-5b

Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>

* Added jsonschema module

Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>

* Replace basic-5b with advanced-2c

* Add EAP112 & OAP103-BR to all automation workflows

* Add EAP112 & OAP103-BR to all automation workflows

* Update workflows

* Update workflows

* Add CIG189H in workflows

* Add CIG189H to performance workflow and add pass/fail criteria for performance testing

* Add CIG189H in AP models in a workflow

* Add Advance Captive Portal testcases on 5GHz and 6GHz

* Change sonicfi-rap7110c-341x AP from advance-2c to basic-4a in sanity and regression workflows

* Modify the namespace name for sonicfi_rap7110c-341x

* Update logic to assign channel mode in controller.py

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update performance workflow and add sanity marker to a be_capacity test

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add pass fail criteria for perforamnce for CIG189H AP

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Added sets parameter to enable the UDP-Burst,UDP-GRO and Multiple Endpoints options

Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>

* Remove regression marker from EMPSK testcase

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update DFS path for the EAP112 AP

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update pass fail criteria for CIG189H AP for AX mode

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update pass fail criteria for cig189h AP

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Modify tedtbed from basic-4a to basic-5a for cig_wf189 AP in sanity workflow

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update dfs path for WIFI7 AP

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update dfs path

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update EMPSK test case

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Enable 320MHz from client side for EMPSK test case

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add EMPSK test case into sanity test suite

* Remove EMPSK from sanity

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Fix typos: replaced wap with wpa encryption

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update EMPSK testcase

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update the testbed name for sonicfi_rap7110c-341x AP to basic-4a in performance workflow

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update radio config for DFS testcases

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update DFS testcase to verify configured channel

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add get_dut_logs_per_test_case and get_test_device_logs fixtures to multiband testcases

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

---------

Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>
Signed-off-by: jitendra-kushavah <jitendra.kushavah@candelatech.com>
Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>
Co-authored-by: bhargavi-mamidipaka <bhargavi.mamidipaka@candelatech.com>
Co-authored-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>
This commit is contained in:
Jitendrakumar Kushavah
2025-06-27 10:40:42 +05:30
committed by GitHub
parent ae0fb31623
commit 98e67832aa
64 changed files with 9407 additions and 887 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -22,7 +22,7 @@ on:
description: "revision of the Open Wifi Helm chart"
ap_models:
required: true
default: "cig_wf186h,edgecore_eap104,cig_wf196,udaya_a6-id2,sonicfi_rap630c-311g,hfcl_ion4xe,yuncore_fap655,cig_wf189,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111"
default: "cig_wf186h,edgecore_eap104,sonicfi_rap630c-311g,hfcl_ion4xe,yuncore_fap655,cig_wf189,edgecore_eap105,sonicfi_rap7110c-341x,edgecore_eap101,edgecore_eap111,edgecore_oap103,edgecore_eap112,cig_wf189h"
description: "the AP models to test"
ap_version:
required: true
@@ -103,7 +103,7 @@ jobs:
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf189,edgecore_eap105,edgecore_eap111' }}"
fi
else
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf186h,cig_wf196,yuncore_ax820,yuncore_fap655,sercomm_ap72tip,edgecore_eap101' }}"
AP_MODELS="${{ github.event.inputs.ap_models || 'cig_wf186h,cig_wf196,yuncore_ax820,yuncore_fap655,sercomm_ap72tip,edgecore_eap101,edgecore_oap103,edgecore_eap112,cig_wf189h' }}"
fi
echo "List of AP models to test - $AP_MODELS"
@@ -1208,11 +1208,277 @@ jobs:
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owsec
test-edgecore-oap103:
needs: [ "vars", "build" ]
runs-on: ubuntu-latest
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_oap103')"
env:
AP_MODEL: edgecore_oap103
steps:
- name: Set AP model output
id: ap_model
run: |
echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
# TODO WIFI-7839 delete when issue is resolved on AWS CLI side
- name: install kubectl
run: |
curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- name: get EKS access credentials
run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
- name: prepare namespace name
id: namespace
run: |
NAMESPACE="testing-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')"
echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT
- name: prepare configuration
run: |
cat << EOF > lab_info.json
${{ secrets.LAB_INFO_JSON }}
EOF
- name: run tests
uses: ./.github/actions/run-tests
with:
namespace: ${{ steps.namespace.outputs.name }}
testbed: basic-3
marker_expression: "${{ needs.vars.outputs.marker_expression }}"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"'
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}"
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}
- name: show gw logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owgw
- name: show fms logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owfms
- name: show prov logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owprov
- name: show analytics logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owanalytics
- name: show subscription (userportal) logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owsub
- name: show sec logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owsec
test-edgecore-eap112:
needs: [ "vars", "build" ]
runs-on: ubuntu-latest
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'edgecore_eap112')"
env:
AP_MODEL: edgecore_eap112
steps:
- name: Set AP model output
id: ap_model
run: |
echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
# TODO WIFI-7839 delete when issue is resolved on AWS CLI side
- name: install kubectl
run: |
curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- name: get EKS access credentials
run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
- name: prepare namespace name
id: namespace
run: |
NAMESPACE="testing-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')"
echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT
- name: prepare configuration
run: |
cat << EOF > lab_info.json
${{ secrets.LAB_INFO_JSON }}
EOF
- name: run tests
uses: ./.github/actions/run-tests
with:
namespace: ${{ steps.namespace.outputs.name }}
testbed: basic-1
marker_expression: "${{ needs.vars.outputs.marker_expression }}"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"'
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}"
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}
- name: show gw logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owgw
- name: show fms logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owfms
- name: show prov logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owprov
- name: show analytics logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owanalytics
- name: show subscription (userportal) logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owsub
- name: show sec logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owsec
test-cig-wf189h:
needs: [ "vars", "build" ]
runs-on: ubuntu-latest
if: "!cancelled() && contains(fromJSON(needs.vars.outputs.ap_models), 'cig_wf189h')"
env:
AP_MODEL: cig_wf189h
steps:
- name: Set AP model output
id: ap_model
run: |
echo "model=${AP_MODEL}" >> $GITHUB_OUTPUT
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
# TODO WIFI-7839 delete when issue is resolved on AWS CLI side
- name: install kubectl
run: |
curl -s -LO "https://dl.k8s.io/release/v1.27.6/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- name: get EKS access credentials
run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
- name: prepare namespace name
id: namespace
run: |
NAMESPACE="testing-${{ github.run_id }}-$(echo ${{ steps.ap_model.outputs.model }} | tr '[:upper:]' '[:lower:]' | tr '_' '-')"
echo "name=${NAMESPACE}" >> $GITHUB_OUTPUT
- name: prepare configuration
run: |
cat << EOF > lab_info.json
${{ secrets.LAB_INFO_JSON }}
EOF
- name: run tests
uses: ./.github/actions/run-tests
with:
namespace: ${{ steps.namespace.outputs.name }}
testbed: basic-4
marker_expression: "${{ needs.vars.outputs.marker_expression }}"
configuration_file: "./lab_info.json"
testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }}
additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"'
allure_results_artifact_name: "allure-results-${{ steps.ap_model.outputs.model }}"
dns_records_to_resolve: "sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build gw-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build fms-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build"
# necessary because if conditionals in composite actions are currently not respected
- name: get tests logs
if: always()
continue-on-error: true
run: |
podname=$(kubectl get pods -n ${{ steps.namespace.outputs.name }} --no-headers -o custom-columns=":metadata.name" -l job-name=testing | sed "s/pod\///")
kubectl logs --timestamps -n ${{ steps.namespace.outputs.name }} $podname || true
- name: delete namespace
if: always()
continue-on-error: true
run: kubectl delete ns --ignore-not-found=true --wait ${{ steps.namespace.outputs.name }}
- name: show gw logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owgw
- name: show fms logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owfms
- name: show prov logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owprov
- name: show analytics logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owanalytics
- name: show subscription (userportal) logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owsub
- name: show sec logs
if: failure()
run: kubectl -n openwifi-qa01 logs deployment/owsec
# Save reports
report:
if: "!cancelled()"
runs-on: ubuntu-latest
needs: [vars, test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111]
needs: [vars, test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111,test-edgecore-oap103,test-edgecore-eap112,test-cig-wf189h]
strategy:
fail-fast: false
matrix:
@@ -1263,7 +1529,7 @@ jobs:
# Cleanup
cleanup:
needs: [test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111]
needs: [test-cig-wf186h, test-edgecore-eap104, test-cig-wf196, test-udaya-a6-id2, test-sonicfi-rap630c-311g, test-hfcl-ion4xe, test-yuncore-fap655, test-cig-wf189, test-edgecore-eap105, test-sonicfi-rap7110c-341x, test-edgecore-eap101, test-edgecore-eap111,test-edgecore-oap103,test-edgecore-eap112,test-cig-wf189h]
runs-on: ubuntu-latest
if: always()
steps:

File diff suppressed because it is too large Load Diff