mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2026-01-27 10:23:37 +00:00
Merge branch 'master' of https://github.com/Telecominfraproject/wlan-testing
This commit is contained in:
126
.github/workflows/nightly.yml
vendored
126
.github/workflows/nightly.yml
vendored
@@ -1,27 +1,135 @@
|
||||
name: nightly build
|
||||
env:
|
||||
DOCKER_SERVER: tip-tip-wlan-cloud-docker-repo.jfrog.io
|
||||
DOCKER_USER_NAME: ${{ secrets.DOCKER_USER_NAME }}
|
||||
DOCKER_USER_PASSWORD: ${{ secrets.DOCKER_USER_PASSWORD }}
|
||||
TESTRAIL_USER_PASSWORD: ${{ secrets.TESTRAIL_USER_PASSWORD }}
|
||||
JFROG_USER_PASSWORD: ${{ secrets.JFROG_USER_PASSWORD }}
|
||||
# AWS credentials
|
||||
AWS_EKS_NAME: tip-wlan-main
|
||||
AWS_DEFAULT_OUTPUT: json
|
||||
AWS_DEFAULT_REGION: us-east-2
|
||||
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }}
|
||||
# Cloud SDK certs
|
||||
CACERT: ${{ secrets.CACERT }}
|
||||
CAKEY: ${{ secrets.CAKEY }}
|
||||
|
||||
on:
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '15 0 * * *'
|
||||
- cron: '15 0 * * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: 4c74356b41/cloud-sdk-nightly
|
||||
steps:
|
||||
- name: Checkout
|
||||
# checkout needed repositories
|
||||
- name: Checkout Testing repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: wlan-testing
|
||||
|
||||
- name: Checkout LANforge scripts
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: wlan-lanforge-scripts
|
||||
repository: Telecominfraproject/wlan-lanforge-scripts
|
||||
token: ${{ secrets.GitHub_PAT }} # `GitHub_PAT` is a secret that contains your PAT
|
||||
path: wlan-LANforge-scripts
|
||||
|
||||
|
||||
# build and push docker image
|
||||
- name: docker login
|
||||
shell: bash
|
||||
run: docker login ${{ env.DOCKER_SERVER }} -u ${{ env.DOCKER_USER_NAME }} -p ${{ env.DOCKER_USER_PASSWORD }}
|
||||
- name: build docker image
|
||||
shell: bash
|
||||
run: ls -Rla; docker build -t tip/nightly -f wlan-testing/docker/Dockerfile
|
||||
run: docker build -t ${{ env.DOCKER_SERVER }}/cloud-sdk-nightly:${{ github.run_id }} -f wlan-testing/docker/Dockerfile .
|
||||
- name: push docker image
|
||||
shell: bash
|
||||
run: docker push ${{ env.DOCKER_SERVER }}/cloud-sdk-nightly:${{ github.run_id }}
|
||||
|
||||
cloudsdk:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout pki scripts repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: wlan-pki
|
||||
repository: Telecominfraproject/wlan-pki-cert-scripts
|
||||
ref: local/dev
|
||||
- name: Checkout Cloud SDK repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: wlan-helm
|
||||
repository: Telecominfraproject/wlan-cloud-helm
|
||||
- name: Checkout helm values repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: toolsmith
|
||||
repository: Telecominfraproject/Toolsmith
|
||||
token: ${{ secrets.PAT_TOKEN }}
|
||||
|
||||
- name: Prepare environment
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir ./wlan-helm/tip-wlan/resources/certs
|
||||
mkdir -p ./wlan-pki/testCA/private
|
||||
mkdir -p ./wlan-pki/testCA/newcerts
|
||||
mkdir -p ./wlan-pki/generated
|
||||
touch ./wlan-pki/testCA/index.txt
|
||||
echo "01" > ./wlan-pki/testCA/serial.txt
|
||||
echo "${{ env.CACERT }}" | base64 -d > ./wlan-pki/testCA/cacert.pem
|
||||
echo "${{ env.CAKEY }}" | base64 -d > ./wlan-pki/testCA/private/cakey.pem
|
||||
cp ./toolsmith/helm-values/aws-cicd.yaml ./wlan-helm/tip-wlan/resources/environments/aws-cicd.yaml
|
||||
|
||||
- name: Generate certs
|
||||
shell: bash
|
||||
run: |
|
||||
cd ./wlan-pki
|
||||
./generate_all.sh true
|
||||
./copy-certs-to-helm.sh "../wlan-helm"
|
||||
|
||||
- name: Deploy Cloud SDK
|
||||
shell: bash
|
||||
run: |
|
||||
cd ./wlan-helm/tip-wlan
|
||||
aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
|
||||
# the 2 lines below are needed for the new flow only, not needed for the old one
|
||||
# helm dependency update
|
||||
# helm upgrade --install tip-wlan . -f resources/environments/aws-cicd.yaml --create-namespace -n tip
|
||||
helm upgrade --install tip-wlan . -f resources/environments/aws-cicd.yaml --namespace default
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ build, cloudsdk ]
|
||||
steps:
|
||||
- name: run tests
|
||||
run: |
|
||||
today=$(date +"%d-%m-%Y")
|
||||
aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
|
||||
kubectl delete job nightly-ci-$today --wait=true --ignore-not-found=true
|
||||
cat <<EOF | kubectl apply -f -
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: nightly-ci-$today
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: tests
|
||||
image: ${{ env.DOCKER_SERVER }}/cloud-sdk-nightly:${{ github.run_id }}
|
||||
args:
|
||||
- "--testrail-user-id"
|
||||
- "gleb@opsfleet.com"
|
||||
- "--testrail-user-password"
|
||||
- "${{ env.TESTRAIL_USER_PASSWORD }}"
|
||||
- "--skip-update-firmware"
|
||||
imagePullSecrets:
|
||||
- name: tip-docker-registry-key
|
||||
restartPolicy: Never
|
||||
backoffLimit: 0
|
||||
EOF
|
||||
# kubectl wait job/nightly-ci-$today --for=condition=complete --timeout=3600s
|
||||
# kubectl logs -l job-name=nightly-ci-$today --since=1h
|
||||
# kubectl delete job/nightly-ci-$today
|
||||
shell: bash
|
||||
|
||||
142
.gitignore
vendored
Normal file
142
.gitignore
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
docker/*
|
||||
!docker/nightly*
|
||||
docker/nightly*log
|
||||
@@ -1,536 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import base64
|
||||
import urllib.request
|
||||
from bs4 import BeautifulSoup
|
||||
import ssl
|
||||
import subprocess, os
|
||||
from artifactory import ArtifactoryPath
|
||||
import tarfile
|
||||
import paramiko
|
||||
from paramiko import SSHClient
|
||||
from scp import SCPClient
|
||||
import os
|
||||
import pexpect
|
||||
from pexpect import pxssh
|
||||
import sys
|
||||
import paramiko
|
||||
from scp import SCPClient
|
||||
import pprint
|
||||
from pprint import pprint
|
||||
from os import listdir
|
||||
import re
|
||||
import requests
|
||||
import json
|
||||
import testrail_api
|
||||
import logging
|
||||
import datetime
|
||||
import time
|
||||
|
||||
local_dir="logs/"
|
||||
#print("Local Directory where all files will be copied and logged", local_dir)
|
||||
tr_user="syama.devi@connectus.ai"
|
||||
tr_pw="Connectus123$"
|
||||
#print ("Testrail password =", tr_pw)
|
||||
aws_host='3.96.56.0'
|
||||
aws_user='ubuntu'
|
||||
|
||||
logger = logging.getLogger('Nightly_Sanity')
|
||||
hdlr = logging.FileHandler(local_dir+"/Nightly_Sanity.log")
|
||||
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
|
||||
hdlr.setFormatter(formatter)
|
||||
logger.addHandler(hdlr)
|
||||
logger.setLevel(logging.INFO)
|
||||
logger.info('Start Nightly Sanity run')
|
||||
|
||||
# For finding files
|
||||
# https://stackoverflow.com/questions/3207219/how-do-i-list-all-files-of-a-directory
|
||||
import glob
|
||||
#external_results_dir=/var/tmp/lanforge
|
||||
|
||||
|
||||
if sys.version_info[0] != 3:
|
||||
print("This script requires Python 3")
|
||||
exit(1)
|
||||
if 'py-json' not in sys.path:
|
||||
sys.path.append('../py-json')
|
||||
|
||||
from LANforge.LFUtils import *
|
||||
# if you lack __init__.py in this directory you will not find sta_connect module#
|
||||
import sta_connect
|
||||
import sta_connect2
|
||||
import testrail_api
|
||||
from sta_connect import StaConnect
|
||||
from sta_connect2 import StaConnect2
|
||||
from testrail_api import APIClient
|
||||
from datetime import date
|
||||
client: APIClient = APIClient('https://telecominfraproject.testrail.com')
|
||||
client.user = tr_user
|
||||
client.password = tr_pw
|
||||
|
||||
|
||||
###Class for jfrog Interaction
|
||||
class GetBuild:
|
||||
def __init__(self):
|
||||
self.user = 'cicd_user'
|
||||
self.password = 'fepv6nj9guCPeEHC'
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
|
||||
def get_latest_image(self,url):
|
||||
|
||||
auth = str(
|
||||
base64.b64encode(
|
||||
bytes('%s:%s' % (self.user, self.password), 'utf-8')
|
||||
),
|
||||
'ascii'
|
||||
).strip()
|
||||
headers = {'Authorization': 'Basic ' + auth}
|
||||
|
||||
''' FIND THE LATEST FILE NAME'''
|
||||
#print(url)
|
||||
req = urllib.request.Request(url, headers=headers)
|
||||
response = urllib.request.urlopen(req)
|
||||
html = response.read()
|
||||
soup = BeautifulSoup(html, features="html.parser")
|
||||
##find the last pending link on dev
|
||||
last_link = soup.find_all('a', href=re.compile("pending"))[-1]
|
||||
latest_file=last_link['href']
|
||||
latest_fw = latest_file.replace('.tar.gz','')
|
||||
return latest_fw
|
||||
|
||||
###Class for CloudSDK Interaction via RestAPI
|
||||
class CloudSDK:
|
||||
def __init__(self):
|
||||
self.user = 'support@example.com'
|
||||
|
||||
def get_bearer():
|
||||
cloud_login_url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/management/v1/oauth2/token"
|
||||
payload = "{\n \"userId\": \"support@example.com\",\n \"password\": \"support\"\n}"
|
||||
headers = {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
try:
|
||||
token_response = requests.request("POST", cloud_login_url, headers=headers, data=payload)
|
||||
except requests.exceptions.RequestException as e:
|
||||
raise SystemExit("Exiting Script! Cloud not get bearer token for reason:",e)
|
||||
token_data = token_response.json()
|
||||
bearer_token = token_data['access_token']
|
||||
return(bearer_token)
|
||||
|
||||
def ap_firmware(customer_id,equipment_id):
|
||||
equip_fw_url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/status/forEquipment?customerId="+customer_id+"&equipmentId="+equipment_id
|
||||
payload = {}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
status_response = requests.request("GET", equip_fw_url, headers=headers, data=payload)
|
||||
status_data = status_response.json()
|
||||
current_ap_fw = status_data[2]['details']['reportedSwVersion']
|
||||
return current_ap_fw
|
||||
|
||||
def CloudSDK_images(apModel):
|
||||
getFW_url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/firmware/version/byEquipmentType?equipmentType=AP&modelId=" + apModel
|
||||
payload = {}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
response = requests.request("GET", getFW_url, headers=headers, data=payload)
|
||||
ap_fw_details = response.json()
|
||||
###return ap_fw_details
|
||||
fwlist = []
|
||||
for version in ap_fw_details:
|
||||
fwlist.append(version.get('versionName'))
|
||||
return(fwlist)
|
||||
#fw_versionNames = ap_fw_details[0]['versionName']
|
||||
#return fw_versionNames
|
||||
|
||||
def firwmare_upload(commit, apModel,latest_image,fw_url):
|
||||
fw_upload_url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/firmware/version"
|
||||
payload = "{\n \"model_type\": \"FirmwareVersion\",\n \"id\": 0,\n \"equipmentType\": \"AP\",\n \"modelId\": \""+apModel+"\",\n \"versionName\": \""+latest_image+"\",\n \"description\": \"\",\n \"filename\": \""+fw_url+"\",\n \"commit\": \""+commit+"\",\n \"validationMethod\": \"MD5_CHECKSUM\",\n \"validationCode\": \"19494befa87eb6bb90a64fd515634263\",\n \"releaseDate\": 1596192028877,\n \"createdTimestamp\": 0,\n \"lastModifiedTimestamp\": 0\n}\n\n"
|
||||
headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
|
||||
response = requests.request("POST", fw_upload_url, headers=headers, data=payload)
|
||||
#print(response)
|
||||
upload_result = response.json()
|
||||
return(upload_result)
|
||||
|
||||
def get_firmware_id(latest_ap_image):
|
||||
#print(latest_ap_image)
|
||||
fw_id_url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/firmware/version/byName?firmwareVersionName="+latest_ap_image
|
||||
|
||||
payload = {}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
response = requests.request("GET", fw_id_url, headers=headers, data=payload)
|
||||
fw_data = response.json()
|
||||
latest_fw_id = fw_data['id']
|
||||
return latest_fw_id
|
||||
|
||||
def update_firmware(equioment_id, latest_firmware_id):
|
||||
url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/equipmentGateway/requestFirmwareUpdate?equipmentId="+equipment_id+"&firmwareVersionId="+latest_firmware_id
|
||||
|
||||
payload = {}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
|
||||
response = requests.request("POST", url, headers=headers, data=payload)
|
||||
print(response.text)
|
||||
|
||||
def set_ap_profile(equipment_id,test_profile_id):
|
||||
###Get AP Info
|
||||
url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/equipment?equipmentId="+equipment_id
|
||||
payload = {}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
|
||||
response = requests.request("GET", url, headers=headers, data=payload)
|
||||
print(response)
|
||||
|
||||
###Add Lab Profile ID to Equipment
|
||||
equipment_info = response.json()
|
||||
#print(equipment_info)
|
||||
equipment_info["profileId"] = test_profile_id
|
||||
#print(equipment_info)
|
||||
|
||||
###Update AP Info with Required Profile ID
|
||||
url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/equipment"
|
||||
headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
|
||||
response = requests.request("PUT", url, headers=headers, data=json.dumps(equipment_info))
|
||||
#print(response)
|
||||
|
||||
###Class for Tests
|
||||
class RunTest:
|
||||
def Single_Client_Connectivity(self, radio, ssid_name, ssid_psk, security, station, test_case, rid):
|
||||
'''SINGLE CLIENT CONNECTIVITY using sta_connect2.py'''
|
||||
staConnect = StaConnect2("10.10.10.201", 8080, debug_= False)
|
||||
staConnect.sta_mode = 0
|
||||
staConnect.upstream_resource = 1
|
||||
staConnect.upstream_port = "eth2"
|
||||
staConnect.radio = radio
|
||||
staConnect.resource = 1
|
||||
staConnect.dut_ssid = ssid_name
|
||||
staConnect.dut_passwd = ssid_psk
|
||||
staConnect.dut_security = security
|
||||
staConnect.station_names = station
|
||||
staConnect.runtime_secs = 30
|
||||
staConnect.cleanup_on_exit = True
|
||||
staConnect.setup()
|
||||
staConnect.start()
|
||||
print("napping %f sec" % staConnect.runtime_secs)
|
||||
time.sleep(staConnect.runtime_secs)
|
||||
staConnect.stop()
|
||||
staConnect.cleanup()
|
||||
run_results = staConnect.get_result_list()
|
||||
for result in run_results:
|
||||
print("test result: " + result)
|
||||
#result = 'pass'
|
||||
print("Single Client Connectivity :",staConnect.passes)
|
||||
if staConnect.passes() == True:
|
||||
print("Single client connection to", ssid_name, "successful. Test Passed")
|
||||
client.update_testrail(case_id=test_case, run_id=rid, status_id=1, msg='Client connectivity passed')
|
||||
else:
|
||||
client.update_testrail(case_id=test_case, run_id=rid, status_id=5, msg='Client connectivity failed')
|
||||
print("Single client connection to", ssid_name, "unsuccessful. Test Failed")
|
||||
|
||||
def Client_Count(customer_id, equipment_id):
|
||||
url = "https://wlan-portal-svc.demo.lab.wlan.tip.build/portal/status/forEquipment?customerId=" + customer_id + "&equipmentId=" + equipment_id
|
||||
payload = {}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + bearer
|
||||
}
|
||||
response = requests.request("GET", url, headers=headers, data=payload)
|
||||
print(response.text.encode('utf8'))
|
||||
|
||||
|
||||
def TestCase_941(self, rid):
|
||||
#MULTI CLIENT CONNECTIVITY
|
||||
staConnect = StaConnect2("10.10.10.201", 8080, debug_= True)
|
||||
staConnect.sta_mode = 0
|
||||
staConnect.upstream_resource = 1
|
||||
staConnect.upstream_port = "eth2"
|
||||
staConnect.radio = "wiphy0"
|
||||
staConnect.resource = 1
|
||||
staConnect.dut_ssid = "LAB_2dot4G_WPA2"
|
||||
# staConnect.dut_passwd = "4C0nnectUS!"
|
||||
staConnect.dut_passwd = "Connectus123$"
|
||||
staConnect.dut_security = "wpa2"
|
||||
staConnect.station_names = ["sta0020", 'sta0021', 'sta0022', 'sta0023']
|
||||
staConnect.runtime_secs = 20
|
||||
staConnect.cleanup_on_exit = True
|
||||
staConnect.run()
|
||||
run_results = staConnect.get_result_list()
|
||||
for result in run_results:
|
||||
print("test result: " + result)
|
||||
if staConnect.passes() == True:
|
||||
client.update_testrail(case_id=941, run_id=rid, status_id=1,
|
||||
msg='client Connectivity to SSID Passed ')
|
||||
else:
|
||||
client.update_testrail(case_id=941, run_id=rid, status_id=5,
|
||||
msg='client connectivity to SSID Failed')
|
||||
|
||||
######Testrail Project and Run ID Information ##############################
|
||||
|
||||
Test: RunTest = RunTest()
|
||||
|
||||
projId = client.get_project_id(project_name= 'WLAN')
|
||||
print("TIP WLAN Project ID is:", projId)
|
||||
|
||||
logger.info('Start of Nightly Sanity')
|
||||
|
||||
|
||||
|
||||
###Dictionaries
|
||||
ap_latest_dict = {
|
||||
"ea8300": "Unknown",
|
||||
"ecw5410": "unknown"
|
||||
}
|
||||
|
||||
ap_updated_dict = {
|
||||
"ea8300": "",
|
||||
"ecw5410": ""
|
||||
}
|
||||
|
||||
##Equipment IDs for Lab APs under test
|
||||
equipment_id_dict = {
|
||||
"ea8300": "3",
|
||||
"ecw5410": "6"
|
||||
}
|
||||
|
||||
###Testing AP Profile Information
|
||||
profile_info_dict = {
|
||||
"ecw5410": {
|
||||
"profile_id": "7",
|
||||
"fiveG_WPA2_SSID": "ECW5410_5G_WPA2",
|
||||
"fiveG_WPA2_PSK": "Connectus123$",
|
||||
"fiveG_WPA_SSID": "ECW5410_5G_WPA",
|
||||
"fiveG_WPA_PSK": "Connectus123$",
|
||||
"fiveG_OPEN_SSID": "ECW5410_5G_OPEN",
|
||||
"twoFourG_OPEN_SSID": "ECW5410_2dot4G_OPEN",
|
||||
"twoFourG_WPA2_SSID": "ECW5410_2dot4G_WPA2",
|
||||
"twoFourG_WPA2_PSK": "Connectus123$",
|
||||
"twoFourG_WPA_SSID":"ECW5410_2dot4G_WPA",
|
||||
"twoFourG_WPA_PSK": "Connectus123$"
|
||||
},
|
||||
|
||||
"ea8300": {
|
||||
"profile_id": "24",
|
||||
"fiveG_WPA2_SSID": "EA8300_5G_WPA2",
|
||||
"fiveG_WPA2_PSK": "Connectus123$",
|
||||
"fiveG_WPA_SSID": "EA8300_5G_WPA",
|
||||
"fiveG_WPA_PSK": "Connectus123$",
|
||||
"fiveG_OPEN_SSID": "EA8300_5G_OPEN",
|
||||
"twoFourG_OPEN_SSID": "EA8300_2dot4G_OPEN",
|
||||
"twoFourG_WPA2_SSID": "EA8300_2dot4G_WPA2",
|
||||
"twoFourG_WPA2_PSK": "Connectus123$",
|
||||
"twoFourG_WPA_SSID":"EA8300_2dot4G_WPA",
|
||||
"twoFourG_WPA_PSK": "Connectus123$"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
##Test Cases to be included in Test Runs
|
||||
test_cases = [
|
||||
2233,
|
||||
2234,
|
||||
2235,
|
||||
2236,
|
||||
2237,
|
||||
2419,
|
||||
2420
|
||||
]
|
||||
|
||||
##AP models
|
||||
ap_models = ["ea8300","ecw5410"]
|
||||
#ap_models = ["ecw5410"]
|
||||
|
||||
###Get Cloud Bearer Token
|
||||
bearer = CloudSDK.get_bearer()
|
||||
|
||||
|
||||
|
||||
#############################################################################
|
||||
##################### CloudSDK Firmware Check ###############################
|
||||
### 1) Get Token for CloudSDK ###############################################
|
||||
### 2) Find Latest FW on jfrog for each AP Model ############################
|
||||
### 3) Find Available FW on CloudSDK --> if Latest FW not present, upload ###
|
||||
#############################################################################
|
||||
|
||||
###Check Latest FW Version on jfrog and CloudSDK for each model
|
||||
for model in ap_models:
|
||||
apModel = model
|
||||
###Check Latest FW on jFrog
|
||||
jfrog_url = 'https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/'
|
||||
url = jfrog_url + apModel + "/dev/"
|
||||
Build: GetBuild = GetBuild()
|
||||
latest_image = Build.get_latest_image(url)
|
||||
print(model,"Latest FW on jFrog:",latest_image)
|
||||
###Check images already on CloudSDK
|
||||
firmware_list_by_model = CloudSDK.CloudSDK_images(apModel)
|
||||
print("Available",apModel,"Firmware on CloudSDK:",firmware_list_by_model)
|
||||
|
||||
if latest_image in firmware_list_by_model:
|
||||
print("Latest Firmware",latest_image,"is on CloudSDK!")
|
||||
ap_latest_dict[model] = latest_image
|
||||
ap_updated_dict[model] = "Up to Date"
|
||||
|
||||
else:
|
||||
print("Latest Firmware is not on CloudSDK! Uploading...")
|
||||
fw_url = "https://cicd_user:fepv6nj9guCPeEHC@tip.jfrog.io/artifactory/tip-wlan-ap-firmware/" + apModel + "/dev/" + latest_image + ".tar.gz"
|
||||
#print(fw_url)
|
||||
commit = latest_image.split("-")[-1]
|
||||
fw_upload_status = CloudSDK.firwmare_upload(commit, apModel,latest_image,fw_url)
|
||||
#print(fw_upload_status)
|
||||
fw_id = fw_upload_status['id']
|
||||
print("Upload Complete.",latest_image,"FW ID is",fw_id)
|
||||
ap_latest_dict[model] = latest_image
|
||||
ap_updated_dict[model] = "Outdated"
|
||||
|
||||
|
||||
sleep(1)
|
||||
#print(ap_updated_dict)
|
||||
if (ap_updated_dict["ea8300"] == "Up to Date") and (ap_updated_dict["ecw5410"] == "Up to Date"):
|
||||
print("All AP FW loads up to date on CloudSDK")
|
||||
logger.info("Newest builds on jfrog already loaded to CloudSDK")
|
||||
else:
|
||||
print("All new FW loads created on CloudSDK")
|
||||
logger.info("New loads have been created on CloudSDK")
|
||||
#print("Latest FW List:",ap_latest_dict)
|
||||
|
||||
####################################################################################
|
||||
####################################################################################
|
||||
############ Update FW and Run Test Cases on Each AP Variant #######################
|
||||
####################################################################################
|
||||
####################################################################################
|
||||
|
||||
for key in equipment_id_dict:
|
||||
###Get Current AP Firmware and upgrade
|
||||
customer_id = "2"
|
||||
equipment_id = equipment_id_dict[key]
|
||||
ap_fw = CloudSDK.ap_firmware(customer_id,equipment_id)
|
||||
fw_model = ap_fw.partition("-")[0]
|
||||
print("AP MODEL UNDER TEST IS", fw_model)
|
||||
print ('Current AP Firmware:', ap_fw)
|
||||
###Find Latest FW for Current AP Model and Get FW ID
|
||||
|
||||
latest_ap_image = ap_latest_dict[fw_model]
|
||||
model_firmware_id = CloudSDK.get_firmware_id(latest_ap_image)
|
||||
latest_firmware_id = str(model_firmware_id)
|
||||
print("Latest FW ID is:",latest_firmware_id)
|
||||
|
||||
##Compare Latest and Current AP FW and Upgrade
|
||||
if ap_fw == latest_ap_image:
|
||||
print('FW does not require updating')
|
||||
logger.info(fw_model + " does not require upgrade. Not performing sanity tests for this AP variant")
|
||||
#raise SystemExit("No new FW loads available. Exiting Test...")
|
||||
|
||||
else:
|
||||
print('FW needs updating')
|
||||
#Upgrade AP firmware
|
||||
upgrade_fw = CloudSDK.update_firmware(equipment_id, latest_firmware_id)
|
||||
logger.info("Lab "+fw_model+" Requires FW update")
|
||||
time.sleep(300)
|
||||
|
||||
###Create Test Run
|
||||
today = str(date.today())
|
||||
test_run_name = "Daily_Sanity_"+fw_model+"_"+today
|
||||
client.create_testrun(name=test_run_name, case_ids=test_cases, project_id=projId)
|
||||
rid = client.get_run_id(test_run_name="Daily_Sanity_"+fw_model+"_"+today)
|
||||
|
||||
print("TIP run ID is:", rid)
|
||||
|
||||
#Check if upgrade worked
|
||||
ap_fw = CloudSDK.ap_firmware(customer_id, equipment_id)
|
||||
print('Current AP Firmware:', ap_fw)
|
||||
if ap_fw == latest_ap_image:
|
||||
print("Upgrade Successful!")
|
||||
client.update_testrail(case_id="2233", run_id=rid, status_id=1,msg='Upgrade successful')
|
||||
logger.info("Lab "+fw_model+" upgrade SUCCESS. Proceeding with sanity testing for this AP variant")
|
||||
else:
|
||||
client.update_testrail(case_id="2233", run_id=rid, status_id=5, msg='Upgrade Failed')
|
||||
logger.warning("Lab "+fw_model+" upgrade FAILED")
|
||||
print("AP FW Upgrade Failed. Updating TestRail and skipping sanity testing for this AP variant...")
|
||||
continue
|
||||
|
||||
|
||||
###Set Proper AP Profile
|
||||
test_profile_id = profile_info_dict[fw_model]["profile_id"]
|
||||
print(test_profile_id)
|
||||
ap_profile = CloudSDK.set_ap_profile(equipment_id,test_profile_id)
|
||||
|
||||
###Run Client Single Connectivity Test Cases
|
||||
#TC 2237 - 2.4 GHz WPA2
|
||||
test_case = "2237"
|
||||
radio = "wiphy0"
|
||||
station = ["sta2237"]
|
||||
ssid_name = profile_info_dict[fw_model]["twoFourG_WPA2_SSID"]
|
||||
ssid_psk = profile_info_dict[fw_model]["twoFourG_WPA2_PSK"]
|
||||
security = "wpa2"
|
||||
Test.Single_Client_Connectivity(radio, ssid_name, ssid_psk, security, station, test_case, rid)
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
#TC 2420 - 2.4 GHz WPA
|
||||
test_case = "2420"
|
||||
radio = "wiphy0"
|
||||
station = ["sta2420"]
|
||||
ssid_name = profile_info_dict[fw_model]["twoFourG_WPA_SSID"]
|
||||
ssid_psk = profile_info_dict[fw_model]["twoFourG_WPA_PSK"]
|
||||
security = "wpa"
|
||||
Test.Single_Client_Connectivity(radio, ssid_name, ssid_psk, security, station, test_case, rid)
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
#TC 2234 - 2.4 GHz Open
|
||||
test_case = "2234"
|
||||
radio = "wiphy0"
|
||||
station = ["sta2234"]
|
||||
ssid_name = profile_info_dict[fw_model]["twoFourG_OPEN_SSID"]
|
||||
ssid_psk = "BLANK"
|
||||
security = "open"
|
||||
Test.Single_Client_Connectivity(radio, ssid_name, ssid_psk, security, station, test_case, rid)
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
#TC 2236 - 5 GHz WPA2
|
||||
test_case = "2236"
|
||||
radio = "wiphy3"
|
||||
station = ["sta2236"]
|
||||
ssid_name = profile_info_dict[fw_model]["fiveG_WPA2_SSID"]
|
||||
ssid_psk = profile_info_dict[fw_model]["fiveG_WPA2_PSK"]
|
||||
security = "wpa2"
|
||||
Test.Single_Client_Connectivity(radio, ssid_name, ssid_psk, security, station, test_case, rid)
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
#TC 2419 - 5 GHz WPA
|
||||
test_case = "2419"
|
||||
radio = "wiphy3"
|
||||
station = ["sta2419"]
|
||||
ssid_name = profile_info_dict[fw_model]["fiveG_WPA_SSID"]
|
||||
ssid_psk = profile_info_dict[fw_model]["fiveG_WPA_PSK"]
|
||||
security = "wpa"
|
||||
Test.Single_Client_Connectivity(radio, ssid_name, ssid_psk, security, station, test_case, rid)
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
#TC 2235 - 5 GHz Open
|
||||
test_case = "2235"
|
||||
radio = "wiphy3"
|
||||
station = ["sta2235"]
|
||||
ssid_name = profile_info_dict[fw_model]["fiveG_OPEN_SSID"]
|
||||
ssid_psk = "BLANK"
|
||||
security = "open"
|
||||
Test.Single_Client_Connectivity(radio, ssid_name, ssid_psk, security, station, test_case, rid)
|
||||
|
||||
print(".....End of Sanity Test.....")
|
||||
logger.info("End of Sanity Test run")
|
||||
@@ -12,7 +12,7 @@ use Getopt::Long;
|
||||
my $user = "cicd_user";
|
||||
my $passwd = "";
|
||||
my $url = "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware";
|
||||
my @platforms = ("ea8300", "ecw5410", "ecw5211", "ec420"); # Add more here as we have test beds that support them.
|
||||
my @platforms = ("ea8300", "ecw5410", "ecw5211", "ec420", "eap102"); # Add more here as we have test beds that support them.
|
||||
my $files_processed = "jfrog_files_processed.txt";
|
||||
my $tb_url_base = "cicd_user\@tip.cicd.cloud.com/testbeds"; # Used by SSH: scp -R results_dir cicd_user@tip.cicd.cloud.com/testbeds/
|
||||
my $help = 0;
|
||||
|
||||
8
cicd/nola-basic-12/TESTBED_INFO.txt
Normal file
8
cicd/nola-basic-12/TESTBED_INFO.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
TESTBED_HW=eap102
|
||||
TESTBED_NAME=NOLA-12
|
||||
|
||||
# Controller's view of the test bed, from wlan-testing/cicd/[testbed] directory
|
||||
TESTBED_DIR=../../testbeds/nola-basic-12
|
||||
|
||||
#TESTBED_CASEID_FAST=C1308
|
||||
#TESTBED_CASEID_BASIC=C1309
|
||||
8
cicd/nola-basic-12/loop.bash
Executable file
8
cicd/nola-basic-12/loop.bash
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
while true
|
||||
do
|
||||
../testbed_poll.pl --jfrog_passwd tip-read --jfrog_user tip-read --url http://orch/tip/testbeds/nola-basic-12/pending_work/ --dut_passwd openwifi --dut_user root
|
||||
sleep 120
|
||||
done
|
||||
|
||||
8
cicd/nola-basic-13/TESTBED_INFO.txt
Normal file
8
cicd/nola-basic-13/TESTBED_INFO.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
TESTBED_HW=eap102
|
||||
TESTBED_NAME=NOLA-13
|
||||
|
||||
# Controller's view of the test bed, from wlan-testing/cicd/[testbed] directory
|
||||
TESTBED_DIR=../../testbeds/nola-basic-13
|
||||
|
||||
#TESTBED_CASEID_FAST=C1308
|
||||
#TESTBED_CASEID_BASIC=C1309
|
||||
8
cicd/nola-basic-13/loop.bash
Executable file
8
cicd/nola-basic-13/loop.bash
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
while true
|
||||
do
|
||||
../testbed_poll.pl --jfrog_passwd tip-read --jfrog_user tip-read --url http://orch/tip/testbeds/nola-basic-13/pending_work/ --dut_passwd openwifi --dut_user root
|
||||
sleep 120
|
||||
done
|
||||
|
||||
8
cicd/nola-basic-14/TESTBED_INFO.txt
Normal file
8
cicd/nola-basic-14/TESTBED_INFO.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
TESTBED_HW=eap102
|
||||
TESTBED_NAME=NOLA-14
|
||||
|
||||
# Controller's view of the test bed, from wlan-testing/cicd/[testbed] directory
|
||||
TESTBED_DIR=../../testbeds/nola-basic-14
|
||||
|
||||
#TESTBED_CASEID_FAST=C1308
|
||||
#TESTBED_CASEID_BASIC=C1309
|
||||
8
cicd/nola-basic-14/loop.bash
Executable file
8
cicd/nola-basic-14/loop.bash
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
while true
|
||||
do
|
||||
../testbed_poll.pl --jfrog_passwd tip-read --jfrog_user tip-read --url http://orch/tip/testbeds/nola-basic-14/pending_work/ --dut_passwd openwifi --dut_user root
|
||||
sleep 120
|
||||
done
|
||||
|
||||
8
cicd/nola-basic-15/TESTBED_INFO.txt
Normal file
8
cicd/nola-basic-15/TESTBED_INFO.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
TESTBED_HW=ecw5410
|
||||
TESTBED_NAME=NOLA-15
|
||||
|
||||
# Controller's view of the test bed, from wlan-testing/cicd/[testbed] directory
|
||||
TESTBED_DIR=../../testbeds/nola-basic-15
|
||||
|
||||
#TESTBED_CASEID_FAST=C1308
|
||||
#TESTBED_CASEID_BASIC=C1309
|
||||
8
cicd/nola-basic-15/loop.bash
Executable file
8
cicd/nola-basic-15/loop.bash
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
while true
|
||||
do
|
||||
../testbed_poll.pl --jfrog_passwd tip-read --jfrog_user tip-read --url http://orch/tip/testbeds/nola-basic-15/pending_work/ --dut_passwd openwifi --dut_user root
|
||||
sleep 120
|
||||
done
|
||||
|
||||
@@ -16,6 +16,9 @@ my $url = "";
|
||||
my $next_info = "__next_test.txt";
|
||||
my $help = 0;
|
||||
my $owt_log = "";
|
||||
my $dut_passwd = "";
|
||||
my $dut_user = "root";
|
||||
my $sysupgrade_n = 0;
|
||||
#my $prompt = "root\@OpenAp";
|
||||
my $prompt = "root\@Open"; # match OpenWrt and OpenAp-foo
|
||||
my $log = "";
|
||||
@@ -25,13 +28,16 @@ my $usage = qq($0
|
||||
[--jfrog_passwd { jfrog password }
|
||||
[--user { for accessing URL }
|
||||
[--passwd { for accessing URL }
|
||||
[--dut_user { for accessing DUT }
|
||||
[--dut_passwd { for accessing DUT }
|
||||
[--url { test-orchestrator URL for this test bed }
|
||||
[--next_info { output text file containing info about the next test to process }
|
||||
[--sysupgrade-n { 0 | 1 } 1 means use the -n option when doing sysupgrade.
|
||||
[--log {location} For instance: --log stdout, for openwrt_ctl expect script.
|
||||
|
||||
Example:
|
||||
$0 --user to_user --passwd secret --jfrog_user tip-read --jfrog_passwd tip-read \\
|
||||
--url https://tip.cicd.mycloud.com/testbed-ferndale-01/
|
||||
--url https://tip.cicd.mycloud.com/testbed-ferndale-01/ --dut_passwd owrt --dut_user root
|
||||
|
||||
# Use specific scenario file.
|
||||
SCENARIO_CFG_FILE=/home/lanforge/git/wlan-testing/testbeds/ferndale-basic-01/scenario_small.txt \\
|
||||
@@ -46,8 +52,11 @@ GetOptions
|
||||
'jfrog_passwd=s' => \$jfrog_passwd,
|
||||
'user=s' => \$user,
|
||||
'passwd=s' => \$passwd,
|
||||
'dut_passwd=s' => \$dut_passwd,
|
||||
'dut_user=s' => \$dut_user,
|
||||
'url=s' => \$url,
|
||||
'next_info=s' => \$next_info,
|
||||
'sysupgrade_n=i' => \$sysupgrade_n,
|
||||
'log=s' => \$log,
|
||||
'help|?' => \$help,
|
||||
) || (print($usage) && exit(1));
|
||||
@@ -70,6 +79,15 @@ if ($log ne "") {
|
||||
$owt_log = "--log $log";
|
||||
}
|
||||
my $owt_args = " --prompt $prompt";
|
||||
|
||||
if ($dut_user ne "") {
|
||||
$owt_args .= " --user $dut_user";
|
||||
}
|
||||
|
||||
if ($dut_passwd ne "") {
|
||||
$owt_args .= " --passwd $dut_passwd";
|
||||
}
|
||||
|
||||
$owt_log .= $owt_args;
|
||||
|
||||
my $i;
|
||||
@@ -187,7 +205,7 @@ for ($i = 0; $i<@lines; $i++) {
|
||||
do_system($cmd);
|
||||
|
||||
do_system("rm -f openwrt-*.bin");
|
||||
do_system("rm -f *sysupgrade.bin"); # just in case openwrt prefix changes.
|
||||
do_system("rm -f *sysupgrade.*"); # just in case openwrt prefix changes.
|
||||
do_system("tar xf $jfile");
|
||||
|
||||
print_note("Copy AP build to LANforge so LANforge can serve the file to AP");
|
||||
@@ -247,7 +265,7 @@ for ($i = 0; $i<@lines; $i++) {
|
||||
|
||||
# and then get it onto the DUT, reboot DUT, re-configure as needed,
|
||||
print_note("Request AP DUT to install the test image.");
|
||||
do_system("scp *sysupgrade.bin lanforge\@$lfmgr:tip-$jfile");
|
||||
do_system("scp *sysupgrade.* lanforge\@$lfmgr:tip-$jfile");
|
||||
|
||||
|
||||
# TODO: Kill anything using the serial port
|
||||
@@ -317,7 +335,13 @@ for ($i = 0; $i<@lines; $i++) {
|
||||
|
||||
print_note("Request AP DUT to install the test image and reboot.");
|
||||
# TODO: Change this to curl download??
|
||||
my $ap_out = do_system("../../lanforge/lanforge-scripts/openwrt_ctl.py $owt_log --scheme serial --tty $serial --action sysupgrade --value \"lanforge\@$ap_gw:tip-$jfile\"");
|
||||
my $ap_out;
|
||||
if ($sysupgrade_n) {
|
||||
$ap_out = do_system("../../lanforge/lanforge-scripts/openwrt_ctl.py $owt_log --scheme serial --tty $serial --action sysupgrade-n --value \"lanforge\@$ap_gw:tip-$jfile\"");
|
||||
}
|
||||
else {
|
||||
$ap_out = do_system("../../lanforge/lanforge-scripts/openwrt_ctl.py $owt_log --scheme serial --tty $serial --action sysupgrade --value \"lanforge\@$ap_gw:tip-$jfile\"");
|
||||
}
|
||||
print ("Sys-upgrade results:\n$ap_out\n");
|
||||
if ($ap_out =~ /pexpect.exceptions.TIMEOUT/) {
|
||||
print("FATAL-ERROR: DUT is in bad state, bail out.\n");
|
||||
|
||||
15
docker/Dockerfile
Normal file
15
docker/Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
||||
FROM python:3.8
|
||||
WORKDIR /ci
|
||||
|
||||
RUN apt update && apt install vim -y && rm -rf /var/lib/apt/lists/*
|
||||
RUN pip3 install requests
|
||||
|
||||
COPY wlan-lanforge-scripts/py-json/LANforge /ci/LANforge
|
||||
COPY wlan-lanforge-scripts/py-json/realm.py /ci
|
||||
COPY wlan-lanforge-scripts/py-json/generic_cx.py /ci
|
||||
COPY wlan-lanforge-scripts/py-scripts/sta_connect2.py /ci
|
||||
COPY wlan-lanforge-scripts/py-scripts/__init__.py /ci
|
||||
COPY wlan-testing/docker/nightly.py /ci
|
||||
COPY wlan-testing/docker/nightly_test_config.json /ci
|
||||
|
||||
ENTRYPOINT [ "/ci/nightly.py" ]
|
||||
437
docker/nightly.py
Executable file
437
docker/nightly.py
Executable file
@@ -0,0 +1,437 @@
|
||||
#!/usr/local/bin/python3
|
||||
|
||||
import re
|
||||
import requests
|
||||
import json
|
||||
import logging
|
||||
import argparse
|
||||
from time import sleep, gmtime, strftime
|
||||
from unittest.mock import Mock
|
||||
|
||||
# the below hack is only needed for local dev
|
||||
# This should be replaced with a module and added to dockerfile
|
||||
import sys
|
||||
for folder in 'py-json','py-scripts':
|
||||
if folder not in sys.path:
|
||||
sys.path.append(f'../lanforge/lanforge/{folder}')
|
||||
|
||||
from LANforge.LFUtils import *
|
||||
from sta_connect2 import StaConnect2
|
||||
|
||||
# Run from remote dev machine on ssh tunnel through to LANforge in TIP Lab, without testrails being used.
|
||||
# SSH tunnel created with login to orchestrator with option: -L 10080:lf1:8080
|
||||
# python3 ./nightly.py --skip-update-firmware --no-testrails --lanforge-ip-address localhost --lanforge-port-number 10080
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--sdk-base-url", type=str, help="cloudsdk base url",
|
||||
default="https://wlan-portal-svc.cicd.lab.wlan.tip.build")
|
||||
parser.add_argument("--sdk-user-id", type=str, help="cloudsdk user id",
|
||||
default="support@example.com")
|
||||
parser.add_argument("--sdk-user-password", type=str, help="cloudsdk user password",
|
||||
default="support")
|
||||
parser.add_argument("--jfrog-base-url", type=str, help="jfrog base url",
|
||||
default="tip.jFrog.io/artifactory/tip-wlan-ap-firmware")
|
||||
parser.add_argument("--jfrog-user-id", type=str, help="jfrog user id",
|
||||
default="tip-read")
|
||||
parser.add_argument("--jfrog-user-password", type=str, help="jfrog user password",
|
||||
default="tip-read")
|
||||
parser.add_argument("--testrail-base-url", type=str, help="testrail base url",
|
||||
default="https://telecominfraproject.testrail.com")
|
||||
parser.add_argument("--testrail-project", type=str, help="testrail project name",
|
||||
default="opsfleet-wlan")
|
||||
parser.add_argument("--testrail-user-id", type=str, help="testrail user id",
|
||||
default="gleb@opsfleet.com")
|
||||
parser.add_argument("--testrail-user-password", type=str, help="testrail user password",
|
||||
default="password")
|
||||
parser.add_argument("--lanforge-ip-address", type=str, help="ip address of the lanforge gui",
|
||||
default="10.28.3.6")
|
||||
parser.add_argument("--lanforge-port-number", type=str, help="port of the lanforge gui",
|
||||
default="8080")
|
||||
parser.add_argument('--skip-update-firmware', dest='update_firmware', action='store_false')
|
||||
parser.add_argument('--no-testrails', dest='use_testrails', action='store_false')
|
||||
parser.set_defaults(update_firmware=True)
|
||||
parser.set_defaults(use_testrails=True)
|
||||
command_line_args = parser.parse_args()
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG,
|
||||
format="%(asctime)s %(levelname)-8s %(message)s file:%(pathname)s line:%(lineno)d",
|
||||
datefmt="%m-%d %H:%M",
|
||||
filename="nightly_cicd_sanity.log",
|
||||
filemode="a")
|
||||
formatter = logging.Formatter("%(asctime)s %(levelname)-8s %(message)s")
|
||||
console = logging.StreamHandler()
|
||||
console.setLevel(logging.INFO)
|
||||
console.setFormatter(formatter)
|
||||
logging.getLogger().addHandler(console)
|
||||
logging.info("------------------------")
|
||||
logging.info("nightly sanity run start")
|
||||
|
||||
# ap details, test data and test config
|
||||
with open("nightly_test_config.json") as json_file:
|
||||
TEST_DATA = json.load(json_file)
|
||||
TESTRAIL = {
|
||||
True: {
|
||||
"statusCode": 1, # status_id is 1 for Passed, 2 For Blocked, 4 for Retest, 5 for Failed
|
||||
"message": "success"
|
||||
},
|
||||
False: {
|
||||
"statusCode": 5,
|
||||
"message": "failure"
|
||||
}
|
||||
}
|
||||
|
||||
# Class to interact with Testrail; better to replace this with pytest\nunit
|
||||
class TestRail_Client:
|
||||
def __new__(cls, *args, **kwargs):
|
||||
if command_line_args.use_testrails:
|
||||
return super().__new__(cls, *args, **kwargs)
|
||||
else:
|
||||
mock = Mock()
|
||||
mock.get_project_id.return_value = -1
|
||||
mock.create_testrun.return_value = -1
|
||||
return mock
|
||||
|
||||
def __init__(self):
|
||||
self.user = command_line_args.testrail_user_id
|
||||
self.password = command_line_args.testrail_user_password
|
||||
self.__url = f"{command_line_args.testrail_base_url}/index.php?/api/v2/"
|
||||
|
||||
def send_get(self, uri, filepath=None):
|
||||
"""Issue a GET request (read) against the API.
|
||||
|
||||
Args:
|
||||
uri: The API method to call including parameters, e.g. get_case/1.
|
||||
filepath: The path and file name for attachment download; used only
|
||||
for "get_attachment/:attachment_id".
|
||||
|
||||
Returns:
|
||||
A dict containing the result of the request.
|
||||
"""
|
||||
return self.__send_request("GET", uri, filepath)
|
||||
|
||||
def send_post(self, uri, data):
|
||||
"""Issue a POST request (write) against the API.
|
||||
|
||||
Args:
|
||||
uri: The API method to call, including parameters, e.g. add_case/1.
|
||||
data: The data to submit as part of the request as a dict; strings
|
||||
must be UTF-8 encoded. If adding an attachment, must be the
|
||||
path to the file.
|
||||
|
||||
Returns:
|
||||
A dict containing the result of the request.
|
||||
"""
|
||||
return self.__send_request("POST", uri, data)
|
||||
|
||||
def __send_request(self, method, uri, data):
|
||||
url = self.__url + uri
|
||||
headers = {
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
logging.debug(f"Method: {method}; Url: {url}; Data: {data}")
|
||||
|
||||
if method == "POST":
|
||||
if uri[:14] == "add_attachment": # add_attachment API method
|
||||
files = { "attachment": open(data, "rb") }
|
||||
response = requests.post(url, headers=headers, files=files, auth=(self.user, self.password))
|
||||
files["attachment"].close()
|
||||
else:
|
||||
payload = bytes(json.dumps(data), "utf-8")
|
||||
response = requests.post(url, headers=headers, data=payload, auth=(self.user, self.password))
|
||||
else:
|
||||
response = requests.get(url, headers=headers, auth=(self.user, self.password))
|
||||
logging.debug(f"headers: {headers}; response: {response.text}; response code: {response.status_code}")
|
||||
|
||||
if response.status_code > 201:
|
||||
try:
|
||||
error = response.json()
|
||||
except: # response.content not formatted as JSON
|
||||
error = str(response.content)
|
||||
logging.info(f"TestRail API returned HTTP status code {response.status_code} with the following: ({error})")
|
||||
return
|
||||
else:
|
||||
logging.debug(uri[:15])
|
||||
if uri[:15] == "get_attachments": # Expecting file, not JSON
|
||||
try:
|
||||
logging.info (str(response.content))
|
||||
open(data, "wb").write(response.content)
|
||||
return (data)
|
||||
except:
|
||||
return ("Error saving attachment.")
|
||||
else:
|
||||
try:
|
||||
return response.json()
|
||||
except: # Nothing to return
|
||||
return {}
|
||||
|
||||
def get_project_id(self, project_name):
|
||||
"Get the project ID using project name"
|
||||
projects = testrail.send_get("get_projects")
|
||||
logging.debug(projects)
|
||||
for project in projects:
|
||||
if project["name"] == project_name:
|
||||
return project["id"]
|
||||
|
||||
def update_testrail(self, case_id, run_id, status_id, msg):
|
||||
logging.info(f"Update TestRail; result status: {status_id}; case id: {case_id}; run id: {run_id}")
|
||||
if run_id is not None:
|
||||
try:
|
||||
result = testrail.send_post(
|
||||
f"add_result_for_case/{run_id}/{case_id}",
|
||||
{ "status_id": status_id, "comment": msg }
|
||||
)
|
||||
logging.info(f"Updating TestRail result: {result}")
|
||||
except Exception as e:
|
||||
logging.info(f"Exception in update_testrail(): {e}")
|
||||
else:
|
||||
logging.info(f"Updated test result for case: {case_id} in test run: {run_id} with msg: {msg}")
|
||||
|
||||
def create_testrun(self, name, case_ids, project_id):
|
||||
result = testrail.send_post(
|
||||
f"add_run/{project_id}",
|
||||
{"name": name, "case_ids": case_ids, "include_all": False}
|
||||
)
|
||||
logging.debug(result)
|
||||
return result["id"]
|
||||
|
||||
# Class for jFrog Interaction
|
||||
class jFrog_Client:
|
||||
def __init__(self):
|
||||
self.user = command_line_args.jfrog_user_id
|
||||
self.password = command_line_args.jfrog_user_password
|
||||
self.baseUrl = command_line_args.jfrog_base_url
|
||||
|
||||
def get_latest_image(self, model):
|
||||
# todo handle auth errors
|
||||
logging.debug(f"searching for the latest firmware on url: {model}")
|
||||
response = requests.get(f"https://{self.baseUrl}/{model}/dev/", auth=(self.user, self.password))
|
||||
return re.findall('href="(.+pending.+).tar.gz"', response.text)[-1]
|
||||
|
||||
def get_latest_image_url(self, model, latest_image):
|
||||
return f"https://{self.user}:{self.password}@{self.baseUrl}/{model}/dev/{latest_image}.tar.gz"
|
||||
|
||||
# Class for CloudSDK Interaction via RestAPI
|
||||
class CloudSDK_Client:
|
||||
def __init__(self):
|
||||
self.baseUrl = command_line_args.sdk_base_url
|
||||
cloud_login_url = f"{self.baseUrl}/management/v1/oauth2/token"
|
||||
payload = {
|
||||
"userId": command_line_args.sdk_user_id,
|
||||
"password": command_line_args.sdk_user_password
|
||||
}
|
||||
headers = {
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
try:
|
||||
token_response = requests.post(cloud_login_url, headers=headers, data=json.dumps(payload))
|
||||
except requests.exceptions.RequestException as e:
|
||||
raise SystemExit(f"Exiting Script! Cloud not get bearer token for reason: {e}")
|
||||
token_data = token_response.json()
|
||||
self.headers = {
|
||||
"Authorization": f"Bearer {token_data['access_token']}"
|
||||
}
|
||||
|
||||
def ap_firmware(self, customer_id, equipment_id):
|
||||
equip_fw_url = f"{self.baseUrl}/portal/status/forEquipment?customerId={customer_id}&equipmentId={equipment_id}&statusDataTypes="
|
||||
status_response = requests.get(equip_fw_url, headers=self.headers)
|
||||
logging.debug(status_response.json())
|
||||
return (status_response.json())[2]["details"]["reportedSwVersion"]
|
||||
|
||||
def get_images(self, apModel):
|
||||
getFW_url = f"{self.baseUrl}/portal/firmware/version/byEquipmentType?equipmentType=AP&modelId={apModel}"
|
||||
status_response = requests.get(getFW_url, headers=self.headers)
|
||||
logging.debug(status_response.json())
|
||||
return([ version.get("versionName") for version in status_response.json()])
|
||||
|
||||
def firwmare_upload(self, apModel, latest_image, fw_url):
|
||||
fw_upload_url = f"{self.baseUrl}/portal/firmware/version"
|
||||
payload = {
|
||||
"model_type": "FirmwareVersion",
|
||||
"id": 0,
|
||||
"equipmentType": "AP",
|
||||
"modelId": apModel,
|
||||
"versionName": latest_image,
|
||||
"description": "",
|
||||
"filename": fw_url,
|
||||
"commit": latest_image.split("-")[-1],
|
||||
"validationMethod": "MD5_CHECKSUM",
|
||||
"validationCode": "19494befa87eb6bb90a64fd515634263",
|
||||
"releaseDate": 1596192028877,
|
||||
"createdTimestamp": 0,
|
||||
"lastModifiedTimestamp": 0
|
||||
}
|
||||
self.headers["Content-Type"] = "application/json"
|
||||
response = requests.post(fw_upload_url, headers=self.headers, data=json.dumps(payload))
|
||||
self.headers.pop("Content-Type", None)
|
||||
logging.debug(response)
|
||||
return(response.json())
|
||||
|
||||
def get_firmware_id(self, latest_ap_image):
|
||||
logging.debug(latest_ap_image)
|
||||
fw_id_url = f"{self.baseUrl}/portal/firmware/version/byName?firmwareVersionName={latest_ap_image}"
|
||||
response = requests.get(fw_id_url, headers=self.headers)
|
||||
fw_data = response.json()
|
||||
return fw_data["id"]
|
||||
|
||||
def update_firmware(self, equipment_id, latest_firmware_id):
|
||||
url = f"{self.baseUrl}/portal/equipmentGateway/requestFirmwareUpdate?equipmentId={equipment_id}&firmwareVersionId={latest_firmware_id}"
|
||||
response = requests.post(url, headers=self.headers)
|
||||
logging.info(response.text)
|
||||
|
||||
def set_ap_profile(self, equipment_id, test_profile_id):
|
||||
url = f"{self.baseUrl}/portal/equipment?equipmentId={equipment_id}"
|
||||
response = requests.get(url, headers=self.headers)
|
||||
logging.debug(response.json())
|
||||
|
||||
# Add Lab Profile ID to Equipment
|
||||
equipment_info = response.json()
|
||||
logging.debug(equipment_info)
|
||||
equipment_info["profileId"] = test_profile_id
|
||||
logging.debug(equipment_info)
|
||||
|
||||
# Update AP Info with Required Profile ID
|
||||
url = f"{self.baseUrl}/portal/equipment"
|
||||
self.headers["Content-Type"] = "application/json"
|
||||
response = requests.put(url, headers=self.headers, data=json.dumps(equipment_info))
|
||||
self.headers.pop("Content-Type", None)
|
||||
logging.debug(response.text)
|
||||
|
||||
# instantiate clients and configuration
|
||||
sdk: CloudSDK_Client = CloudSDK_Client()
|
||||
testrail: TestRail_Client = TestRail_Client()
|
||||
jFrog: jFrog_Client = jFrog_Client()
|
||||
|
||||
# 1. Find Latest firmware on jFrog for each AP Model
|
||||
# 2. Find Available firmware on CloudSDK
|
||||
# 3. If Latest firmware not present, upload
|
||||
# 4. Update Firmware on each AP Model
|
||||
# 5. Run tests
|
||||
for model in TEST_DATA["ap_models"].keys():
|
||||
# Get latest firmware on jFrog and Cloud SDK
|
||||
latest_image = jFrog.get_latest_image(model)
|
||||
firmware_list_by_model = sdk.get_images(model)
|
||||
logging.info(f"Model: {model}; Latest firmware on jFrog: {latest_image}; Latest firmware on Cloud SDK: {firmware_list_by_model}")
|
||||
|
||||
if latest_image in firmware_list_by_model:
|
||||
logging.info(f"Latest firmware {latest_image} present on CloudSDK!")
|
||||
TEST_DATA["ap_models"][model]["firmware"] = latest_image
|
||||
else:
|
||||
logging.info(f"Uploading {latest_image} firmware to CloudSDK")
|
||||
fw_url = jFrog.get_latest_image_url(model, latest_image)
|
||||
fw_upload_status = sdk.firwmare_upload(model, latest_image, fw_url)
|
||||
logging.info(f"Upload Complete. {latest_image}; firmware ID is {fw_upload_status['id']}")
|
||||
TEST_DATA["ap_models"][model]["firmware"] = latest_image
|
||||
|
||||
# Get Current AP Firmware and upgrade
|
||||
ap_fw = sdk.ap_firmware(TEST_DATA["customer_id"], TEST_DATA["ap_models"][model]["id"])
|
||||
fw_model = ap_fw.partition("-")[0]
|
||||
latest_ap_image = TEST_DATA["ap_models"][fw_model]["firmware"]
|
||||
model_firmware_id = sdk.get_firmware_id(latest_ap_image)
|
||||
logging.info(f"Firmware: {ap_fw}; latest firmware ID is: {model_firmware_id}")
|
||||
|
||||
if ap_fw == latest_ap_image and command_line_args.update_firmware:
|
||||
logging.info("Model does not require firmware upgrade, skipping sanity tests")
|
||||
else:
|
||||
if command_line_args.update_firmware:
|
||||
firmware_update_case = [2831]
|
||||
logging.info("Model requires firmware update, will update and sleep")
|
||||
sdk.update_firmware(TEST_DATA["ap_models"][model]["id"], model_firmware_id)
|
||||
sleep(300)
|
||||
else:
|
||||
firmware_update_case = []
|
||||
|
||||
test_cases_data = {
|
||||
2832: { # 2.4 GHz Open
|
||||
"radio": "wiphy4",
|
||||
"station": ["sta2234"],
|
||||
"ssid_name": TEST_DATA["ap_models"][fw_model]["info"]["twoFourG_OPEN_SSID"],
|
||||
"ssid_psk": "BLANK",
|
||||
"security": "open"
|
||||
},
|
||||
2835: { # 2.4 GHz WPA2
|
||||
"radio": "wiphy4",
|
||||
"station": ["sta2237"],
|
||||
"ssid_name": TEST_DATA["ap_models"][fw_model]["info"]["twoFourG_WPA2_SSID"],
|
||||
"ssid_psk": TEST_DATA["ap_models"][fw_model]["info"]["twoFourG_WPA2_PSK"],
|
||||
"security": "wpa2"
|
||||
},
|
||||
2833: { # 5 GHz Open
|
||||
"radio": "wiphy3",
|
||||
"station": ["sta2235"],
|
||||
"ssid_name": TEST_DATA["ap_models"][fw_model]["info"]["fiveG_OPEN_SSID"],
|
||||
"ssid_psk": "BLANK",
|
||||
"security": "open"
|
||||
},
|
||||
2834: { # 5 GHz WPA2
|
||||
"radio": "wiphy3",
|
||||
"station": ["sta2236"],
|
||||
"ssid_name": TEST_DATA["ap_models"][fw_model]["info"]["fiveG_WPA2_SSID"],
|
||||
"ssid_psk": TEST_DATA["ap_models"][fw_model]["info"]["fiveG_WPA2_PSK"],
|
||||
"security": "wpa2"
|
||||
},
|
||||
2836: { # 5 GHz WPA
|
||||
"radio": "wiphy3",
|
||||
"station": ["sta2419"],
|
||||
"ssid_name": TEST_DATA["ap_models"][fw_model]["info"]["fiveG_WPA_SSID"],
|
||||
"ssid_psk": TEST_DATA["ap_models"][fw_model]["info"]["fiveG_WPA_PSK"],
|
||||
"security": "wpa"
|
||||
},
|
||||
2837: { # 2.4 GHz WPA
|
||||
"radio": "wiphy0",
|
||||
"station": ["sta2420"],
|
||||
"ssid_name": TEST_DATA["ap_models"][fw_model]["info"]["twoFourG_WPA_SSID"],
|
||||
"ssid_psk": TEST_DATA["ap_models"][fw_model]["info"]["twoFourG_WPA_PSK"],
|
||||
"security": "wpa"
|
||||
}
|
||||
}
|
||||
|
||||
# Create Test Run
|
||||
test_run_name = f'Nightly_model_{fw_model}_firmware_{ap_fw}_{strftime("%Y-%m-%d", gmtime())}'
|
||||
testrail_project_id = testrail.get_project_id(project_name=command_line_args.testrail_project)
|
||||
runId = testrail.create_testrun(name=test_run_name, case_ids=( [*test_cases_data] + firmware_update_case ), project_id=testrail_project_id)
|
||||
logging.info(f"Testrail project id: {testrail_project_id}; run ID is: {runId}")
|
||||
|
||||
# Check if upgrade worked
|
||||
if command_line_args.update_firmware:
|
||||
results = TESTRAIL[(sdk.ap_firmware(TEST_DATA["customer_id"], TEST_DATA["ap_models"][model]["id"]) == latest_ap_image)]
|
||||
testrail.update_testrail(case_id="2831", run_id=runId, status_id=results["statusCode"], msg=f"Upgrade {results['message']}")
|
||||
logging.info(f"Upgrade {results['statusCode']}")
|
||||
if not test_result:
|
||||
continue
|
||||
|
||||
# Set Proper AP Profile
|
||||
test_profile_id = TEST_DATA["ap_models"][fw_model]["info"]["profile_id"]
|
||||
sdk.set_ap_profile(TEST_DATA["ap_models"][model]["id"], test_profile_id)
|
||||
logging.info(f"Test profile id: {test_profile_id}")
|
||||
|
||||
# Run Client Single Connectivity Test Cases
|
||||
for testcase in test_cases_data.keys():
|
||||
if test_cases_data[testcase]["ssid_name"] != "skip":
|
||||
logging.info(f"Test parameters are:\n radio = {test_cases_data[testcase]['radio']}\n ssid_name = {test_cases_data[testcase]['ssid_name']}\n ssid_psk = {test_cases_data[testcase]['ssid_psk']}\n security = {test_cases_data[testcase]['security']}\n station = {test_cases_data[testcase]['station']}\n testcase = {testcase}")
|
||||
staConnect = StaConnect2(command_line_args.lanforge_ip_address, command_line_args.lanforge_port_number, debug_ = False)
|
||||
staConnect.sta_mode = 0
|
||||
staConnect.upstream_resource = 1
|
||||
staConnect.upstream_port = "eth2"
|
||||
staConnect.radio = test_cases_data[testcase]["radio"]
|
||||
staConnect.resource = 1
|
||||
staConnect.dut_ssid = test_cases_data[testcase]["ssid_name"]
|
||||
staConnect.dut_passwd = test_cases_data[testcase]["ssid_psk"]
|
||||
staConnect.dut_security = test_cases_data[testcase]["security"]
|
||||
staConnect.station_names = test_cases_data[testcase]["station"]
|
||||
staConnect.runtime_secs = 30
|
||||
staConnect.clean_all_sta = True
|
||||
staConnect.cleanup_on_exit = True
|
||||
staConnect.setup()
|
||||
staConnect.start()
|
||||
logging.info(f"sleeping {staConnect.runtime_secs} seconds")
|
||||
sleep(staConnect.runtime_secs)
|
||||
staConnect.stop()
|
||||
staConnect.cleanup()
|
||||
for result in staConnect.get_result_list():
|
||||
logging.info(f"test result: {result}")
|
||||
results = TESTRAIL[staConnect.passes()]
|
||||
logging.info(f"Single client connection to {test_cases_data[testcase]['ssid_name']} successful. Test {results['message']}")
|
||||
testrail.update_testrail(case_id=testcase, run_id=runId, status_id=results["statusCode"], msg=f"Test {results['message']}")
|
||||
|
||||
logging.info("----------------------")
|
||||
logging.info("End of Sanity Test run")
|
||||
22
docker/nightly_test_config.json
Normal file
22
docker/nightly_test_config.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"customer_id": "2",
|
||||
"ap_models": {
|
||||
"ecw5410": {
|
||||
"id": "1",
|
||||
"firmware": "unknown",
|
||||
"info": {
|
||||
"profile_id": "6",
|
||||
"fiveG_WPA2_SSID": "skip",
|
||||
"fiveG_WPA2_PSK": "w1r3l3ss-fr33d0m",
|
||||
"fiveG_WPA_SSID": "skip",
|
||||
"fiveG_WPA_PSK": "w1r3l3ss-fr33d0m",
|
||||
"fiveG_OPEN_SSID": "skip",
|
||||
"twoFourG_OPEN_SSID": "skip",
|
||||
"twoFourG_WPA2_SSID": "TipWlan-cloud-wifi",
|
||||
"twoFourG_WPA2_PSK": "w1r3l3ss-fr33d0m",
|
||||
"twoFourG_WPA_SSID": "skip",
|
||||
"twoFourG_WPA_PSK": "w1r3l3ss-fr33d0m"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
testbeds/nola-basic-12/NOTES.txt
Normal file
2
testbeds/nola-basic-12/NOTES.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
DUT is an EAP-102 wifi-6, running TIP OpenWrt.
|
||||
@@ -0,0 +1,2 @@
|
||||
DO_BUGCHECK=1
|
||||
export DO_BUGCHECK
|
||||
34
testbeds/nola-basic-12/OpenWrt-overlay/etc/config/wireless
Normal file
34
testbeds/nola-basic-12/OpenWrt-overlay/etc/config/wireless
Normal file
@@ -0,0 +1,34 @@
|
||||
config wifi-device 'radio0'
|
||||
option type 'mac80211'
|
||||
option channel '36'
|
||||
option hwmode '11a'
|
||||
option path 'platform/soc/c000000.wifi1'
|
||||
option htmode 'HE80'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio0'
|
||||
option device 'radio0'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-5gl'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
option macaddr '00:00:ea:D2:01:01'
|
||||
|
||||
config wifi-device 'radio1'
|
||||
option type 'mac80211'
|
||||
option channel '11'
|
||||
option hwmode '11g'
|
||||
option path 'platform/soc/c000000.wifi1+1'
|
||||
option htmode 'HE20'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio1'
|
||||
option device 'radio1'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-2g'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
option macaddr '00:00:ea:92:01:01'
|
||||
|
||||
120
testbeds/nola-basic-12/ap-auto.txt
Normal file
120
testbeds/nola-basic-12/ap-auto.txt
Normal file
@@ -0,0 +1,120 @@
|
||||
[BLANK]
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: AP Auto
|
||||
bg: 0xE0ECF8
|
||||
test_rig: NOLA-12-Basic
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 1
|
||||
skip_5: 1
|
||||
skip_5b: 1
|
||||
skip_dual: 0
|
||||
skip_tri: 1
|
||||
dut5b-0: NA
|
||||
dut5-0: TIP Default-SSID-5gl
|
||||
dut2-0: TIP Default-SSID-2g
|
||||
dut5b-1: NA
|
||||
dut5-1: NA
|
||||
dut2-1: NA
|
||||
dut5b-2: NA
|
||||
dut5-2: NA
|
||||
dut2-2: NA
|
||||
spatial_streams: AUTO
|
||||
bandw_options: AUTO
|
||||
modes: Auto
|
||||
upstream_port: 1.1.2 eth2
|
||||
operator:
|
||||
mconn: 1
|
||||
tos: 0
|
||||
vid_buf: 1000000
|
||||
vid_speed: 700000
|
||||
reset_stall_thresh_udp_dl: 9600
|
||||
cx_prcnt: 950000
|
||||
cx_open_thresh: 35
|
||||
cx_psk_thresh: 75
|
||||
cx_1x_thresh: 130
|
||||
reset_stall_thresh_udp_ul: 9600
|
||||
reset_stall_thresh_tcp_dl: 9600
|
||||
reset_stall_thresh_tcp_ul: 9600
|
||||
reset_stall_thresh_l4: 100000
|
||||
reset_stall_thresh_voip: 20000
|
||||
stab_mcast_dl_min: 100000
|
||||
stab_mcast_dl_max: 0
|
||||
stab_udp_dl_min: 56000
|
||||
stab_udp_dl_max: 0
|
||||
stab_udp_ul_min: 56000
|
||||
stab_udp_ul_max: 0
|
||||
stab_tcp_dl_min: 500000
|
||||
stab_tcp_dl_max: 0
|
||||
stab_tcp_ul_min: 500000
|
||||
stab_tcp_ul_max: 0
|
||||
dl_speed: 85%
|
||||
ul_speed: 85%
|
||||
max_stations_2: 65
|
||||
max_stations_5: 67
|
||||
max_stations_5b: 64
|
||||
max_stations_dual: 132
|
||||
max_stations_tri: 64
|
||||
lt_sta: 2
|
||||
voip_calls: 0
|
||||
lt_dur: 3600
|
||||
reset_dur: 600
|
||||
lt_gi: 30
|
||||
dur20: 20
|
||||
hunt_retries: 1
|
||||
hunt_iter: 100
|
||||
bind_bssid: 1
|
||||
set_txpower_default: 0
|
||||
cap_dl: 1
|
||||
cap_ul: 0
|
||||
cap_use_pkt_sizes: 0
|
||||
stability_reset_radios: 0
|
||||
stability_use_pkt_sizes: 0
|
||||
pkt_loss_thresh: 10000
|
||||
frame_sizes: 200, 512, 1024, MTU
|
||||
capacities: 1, 2, 5, 10, 20, 40, 64, 128, 256, 512, 1024, MAX
|
||||
pf_text0: 2.4 DL 200 70Mbps
|
||||
pf_text1: 2.4 DL 512 110Mbps
|
||||
pf_text2: 2.4 DL 1024 115Mbps
|
||||
pf_text3: 2.4 DL MTU 120Mbps
|
||||
pf_text4:
|
||||
pf_text5: 2.4 UL 200 88Mbps
|
||||
pf_text6: 2.4 UL 512 106Mbps
|
||||
pf_text7: 2.4 UL 1024 115Mbps
|
||||
pf_text8: 2.4 UL MTU 120Mbps
|
||||
pf_text9:
|
||||
pf_text10: 5 DL 200 72Mbps
|
||||
pf_text11: 5 DL 512 185Mbps
|
||||
pf_text12: 5 DL 1024 370Mbps
|
||||
pf_text13: 5 DL MTU 525Mbps
|
||||
pf_text14:
|
||||
pf_text15: 5 UL 200 90Mbps
|
||||
pf_text16: 5 UL 512 230Mbps
|
||||
pf_text17: 5 UL 1024 450Mbps
|
||||
pf_text18: 5 UL MTU 630Mbps
|
||||
radio2-0: 1.1.4 wiphy2
|
||||
radio2-1: 1.1.6 wiphy4
|
||||
radio5-0: 1.1.5 wiphy3
|
||||
radio5-1: 1.1.7 wiphy5
|
||||
radio5-2: 1.1.9 wiphy6
|
||||
radio5-3: 1.1.9 wiphy7
|
||||
basic_cx: 1
|
||||
tput: 0
|
||||
tput_multi: 0
|
||||
tput_multi_tcp: 1
|
||||
tput_multi_udp: 1
|
||||
tput_multi_dl: 1
|
||||
tput_multi_ul: 1
|
||||
dual_band_tput: 0
|
||||
capacity: 0
|
||||
band_steering: 0
|
||||
longterm: 0
|
||||
mix_stability: 0
|
||||
loop_iter: 1
|
||||
reset_batch_size: 1
|
||||
reset_duration_min: 10000
|
||||
reset_duration_max: 60000
|
||||
bandsteer_always_5g: 0
|
||||
|
||||
55
testbeds/nola-basic-12/dpt-pkt-sz.txt
Normal file
55
testbeds/nola-basic-12/dpt-pkt-sz.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
[BLANK]
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: Dataplane
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 0
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
selected_dut: TIP
|
||||
duration: 15000
|
||||
traffic_port: 1.1.136 sta00500
|
||||
upstream_port: 1.1.2 eth2
|
||||
path_loss: 10
|
||||
speed: 85%
|
||||
speed2: 0Kbps
|
||||
min_rssi_bound: -150
|
||||
max_rssi_bound: 0
|
||||
channels: AUTO
|
||||
modes: Auto
|
||||
pkts: 60;142;256;512;1024;MTU;4000
|
||||
spatial_streams: AUTO
|
||||
security_options: AUTO
|
||||
bandw_options: AUTO
|
||||
traffic_types: UDP
|
||||
directions: DUT Transmit;DUT Receive
|
||||
txo_preamble: OFDM
|
||||
txo_mcs: 0 CCK, OFDM, HT, VHT
|
||||
txo_retries: No Retry
|
||||
txo_sgi: OFF
|
||||
txo_txpower: 15
|
||||
attenuator: 0
|
||||
attenuator2: 0
|
||||
attenuator_mod: 255
|
||||
attenuator_mod2: 255
|
||||
attenuations: 0..+50..950
|
||||
attenuations2: 0..+50..950
|
||||
chamber: 0
|
||||
tt_deg: 0..+45..359
|
||||
cust_pkt_sz:
|
||||
show_3s: 0
|
||||
show_ll_graphs: 1
|
||||
show_gp_graphs: 1
|
||||
show_1m: 1
|
||||
pause_iter: 0
|
||||
show_realtime: 1
|
||||
operator:
|
||||
mconn: 1
|
||||
mpkt: 1000
|
||||
tos: 0
|
||||
loop_iterations: 1
|
||||
|
||||
|
||||
71
testbeds/nola-basic-12/run_basic.bash
Executable file
71
testbeds/nola-basic-12/run_basic.bash
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Run one test
|
||||
# DEFAULT_ENABLE=0 DO_SHORT_AP_STABILITY_RESET=1 ./basic_regression.bash
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run all tests
|
||||
./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
83
testbeds/nola-basic-12/run_basic_fast.bash
Executable file
83
testbeds/nola-basic-12/run_basic_fast.bash
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
#set -x
|
||||
|
||||
DO_SHORT_AP_BASIC_CX=${DO_SHORT_AP_BASIC_CX:-1}
|
||||
DO_WCT_BI=${DO_WCT_BI:-1}
|
||||
|
||||
export DO_SHORT_AP_BASI_CX DO_WCT_BI
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression-fast
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run a subset of available tests
|
||||
# See 'Tests to run' comment in basic_regression.bash for available options.
|
||||
|
||||
#DEFAULT_ENABLE=0 WCT_DURATION=20s DO_SHORT_AP_BASIC_CX=1 DO_WCT_BI=1 ./basic_regression.bash
|
||||
|
||||
DEFAULT_ENABLE=0 WCT_DURATION=20s ./basic_regression.bash
|
||||
|
||||
|
||||
# Run all tests
|
||||
#./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
9
testbeds/nola-basic-12/scenario.txt
Normal file
9
testbeds/nola-basic-12/scenario.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth1,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
9
testbeds/nola-basic-12/scenario_small.txt
Normal file
9
testbeds/nola-basic-12/scenario_small.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth1,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
62
testbeds/nola-basic-12/test_bed_cfg.bash
Normal file
62
testbeds/nola-basic-12/test_bed_cfg.bash
Normal file
@@ -0,0 +1,62 @@
|
||||
# Example test-bed configuration
|
||||
|
||||
# Scripts should source this file to set the default environment variables
|
||||
# and then override the variables specific to their test case (and it can be done
|
||||
# in opposite order for same results
|
||||
#
|
||||
# After the env variables are set,
|
||||
# call the 'lanforge/lanforge-scripts/gui/basic_regression.bash'
|
||||
# from the directory in which it resides.
|
||||
|
||||
NOLA_NUM=12
|
||||
|
||||
PWD=`pwd`
|
||||
AP_SERIAL=${AP_SERIAL:-/dev/ttyAP1}
|
||||
LF_SERIAL=${LF_SERIAL:-/dev/ttyLF1}
|
||||
LFPASSWD=${LFPASSWD:-lanforge} # Root password on LANforge machine
|
||||
AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-$PWD/ap-auto.txt}
|
||||
WCT_CFG_FILE=${WCT_CFG_FILE:-$PWD/wct.txt}
|
||||
DPT_CFG_FILE=${DPT_CFG_FILE:-$PWD/dpt-pkt-sz.txt}
|
||||
SCENARIO_CFG_FILE=${SCENARIO_CFG_FILE:-$PWD/scenario.txt}
|
||||
|
||||
# Default to enable cloud-sdk for this testbed, cloud-sdk is at IP addr below
|
||||
#USE_CLOUD_SDK=${USE_CLOUD_SDK:-192.168.100.164}
|
||||
|
||||
# LANforge target machine
|
||||
LFMANAGER=${LFMANAGER:-lf12}
|
||||
|
||||
# LANforge GUI machine (may often be same as target)
|
||||
GMANAGER=${GMANAGER:-lf12}
|
||||
GMPORT=${GMPORT:-3990}
|
||||
MY_TMPDIR=${MY_TMPDIR:-/tmp}
|
||||
|
||||
# Test configuration (10 minutes by default, in interest of time)
|
||||
STABILITY_DURATION=${STABILITY_DURATION:-600}
|
||||
TEST_RIG_ID=${TEST_RIG_ID:-NOLA-${NOLA_NUM}-Basic}
|
||||
|
||||
# DUT configuration
|
||||
DUT_FLAGS=${DUT_FLAGS:-0x22} # AP, WPA-PSK
|
||||
#DUT_FLAGS=${DUT_FLAGS:-0x2} # AP, Open
|
||||
DUT_FLAGS_MASK=${DUT_FLAGS_MASK:-0xFFFF}
|
||||
DUT_SW_VER=${DUT_SW_VER:-OpenWrt-TIP}
|
||||
DUT_HW_VER=EAP-102
|
||||
DUT_MODEL=EAP-102
|
||||
DUT_SERIAL=${DUT_SERIAL:-NA}
|
||||
DUT_SSID1=${DUT_SSID1:-Default-SSID-2g}
|
||||
DUT_SSID2=${DUT_SSID2:-Default-SSID-5gl}
|
||||
DUT_PASSWD1=${DUT_PASSWD1:-12345678}
|
||||
DUT_PASSWD2=${DUT_PASSWD2:-12345678}
|
||||
# 2.4 radio
|
||||
DUT_BSSID1=00:00:ea:92:01:01
|
||||
# 5Ghz radio
|
||||
DUT_BSSID2=00:00:ea:D2:01:01
|
||||
|
||||
export LF_SERIAL AP_SERIAL LFPASSWD
|
||||
export AP_AUTO_CFG_FILE WCT_CFG_FILE DPT_CFG_FILE SCENARIO_CFG_FILE
|
||||
export LFMANAGER GMANAGER GMPORT MY_TMPDIR
|
||||
export STABILITY_DURATION TEST_RIG_ID
|
||||
export DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
export DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
export DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
export DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
export USE_CLOUD_SDK
|
||||
197
testbeds/nola-basic-12/wct.txt
Normal file
197
testbeds/nola-basic-12/wct.txt
Normal file
@@ -0,0 +1,197 @@
|
||||
[BLANK]
|
||||
sel_port-0: 1.1.eth2
|
||||
sel_port-1: 1.1.sta00000
|
||||
sel_port-2: 1.1.sta00001
|
||||
sel_port-3: 1.1.sta00002
|
||||
sel_port-4: 1.1.sta00003
|
||||
sel_port-5: 1.1.sta00004
|
||||
sel_port-6: 1.1.sta00005
|
||||
sel_port-7: 1.1.sta00006
|
||||
sel_port-8: 1.1.sta00007
|
||||
sel_port-9: 1.1.sta00008
|
||||
sel_port-10: 1.1.sta00009
|
||||
sel_port-11: 1.1.sta00010
|
||||
sel_port-12: 1.1.sta00011
|
||||
sel_port-13: 1.1.sta00012
|
||||
sel_port-14: 1.1.sta00013
|
||||
sel_port-15: 1.1.sta00014
|
||||
sel_port-16: 1.1.sta00015
|
||||
sel_port-17: 1.1.sta00016
|
||||
sel_port-18: 1.1.sta00017
|
||||
sel_port-19: 1.1.sta00018
|
||||
sel_port-20: 1.1.sta00019
|
||||
sel_port-21: 1.1.sta00020
|
||||
sel_port-22: 1.1.sta00021
|
||||
sel_port-23: 1.1.sta00022
|
||||
sel_port-24: 1.1.sta00023
|
||||
sel_port-25: 1.1.sta00024
|
||||
sel_port-26: 1.1.sta00025
|
||||
sel_port-27: 1.1.sta00026
|
||||
sel_port-28: 1.1.sta00027
|
||||
sel_port-29: 1.1.sta00028
|
||||
sel_port-30: 1.1.sta00029
|
||||
sel_port-31: 1.1.sta00030
|
||||
sel_port-32: 1.1.sta00031
|
||||
sel_port-33: 1.1.sta00032
|
||||
sel_port-34: 1.1.sta00033
|
||||
sel_port-35: 1.1.sta00034
|
||||
sel_port-36: 1.1.sta00035
|
||||
sel_port-37: 1.1.sta00036
|
||||
sel_port-38: 1.1.sta00037
|
||||
sel_port-39: 1.1.sta00038
|
||||
sel_port-40: 1.1.sta00039
|
||||
sel_port-41: 1.1.sta00040
|
||||
sel_port-42: 1.1.sta00041
|
||||
sel_port-43: 1.1.sta00042
|
||||
sel_port-44: 1.1.sta00043
|
||||
sel_port-45: 1.1.sta00044
|
||||
sel_port-46: 1.1.sta00045
|
||||
sel_port-47: 1.1.sta00046
|
||||
sel_port-48: 1.1.sta00047
|
||||
sel_port-49: 1.1.sta00048
|
||||
sel_port-50: 1.1.sta00049
|
||||
sel_port-51: 1.1.sta00050
|
||||
sel_port-52: 1.1.sta00051
|
||||
sel_port-53: 1.1.sta00052
|
||||
sel_port-54: 1.1.sta00053
|
||||
sel_port-55: 1.1.sta00054
|
||||
sel_port-56: 1.1.sta00055
|
||||
sel_port-57: 1.1.sta00056
|
||||
sel_port-58: 1.1.sta00057
|
||||
sel_port-59: 1.1.sta00058
|
||||
sel_port-60: 1.1.sta00059
|
||||
sel_port-61: 1.1.sta00060
|
||||
sel_port-62: 1.1.sta00061
|
||||
sel_port-63: 1.1.sta00062
|
||||
sel_port-64: 1.1.sta00063
|
||||
sel_port-65: 1.1.sta00500
|
||||
sel_port-66: 1.1.sta00501
|
||||
sel_port-67: 1.1.sta00502
|
||||
sel_port-68: 1.1.sta00503
|
||||
sel_port-69: 1.1.sta00504
|
||||
sel_port-70: 1.1.sta00505
|
||||
sel_port-71: 1.1.sta00506
|
||||
sel_port-72: 1.1.sta00507
|
||||
sel_port-73: 1.1.sta00508
|
||||
sel_port-74: 1.1.sta00509
|
||||
sel_port-75: 1.1.sta00510
|
||||
sel_port-76: 1.1.sta00511
|
||||
sel_port-77: 1.1.sta00512
|
||||
sel_port-78: 1.1.sta00513
|
||||
sel_port-79: 1.1.sta00514
|
||||
sel_port-80: 1.1.sta00515
|
||||
sel_port-81: 1.1.sta00516
|
||||
sel_port-82: 1.1.sta00517
|
||||
sel_port-83: 1.1.sta00518
|
||||
sel_port-84: 1.1.sta00519
|
||||
sel_port-85: 1.1.sta00520
|
||||
sel_port-86: 1.1.sta00521
|
||||
sel_port-87: 1.1.sta00522
|
||||
sel_port-88: 1.1.sta00523
|
||||
sel_port-89: 1.1.sta00524
|
||||
sel_port-90: 1.1.sta00525
|
||||
sel_port-91: 1.1.sta00526
|
||||
sel_port-92: 1.1.sta00527
|
||||
sel_port-93: 1.1.sta00528
|
||||
sel_port-94: 1.1.sta00529
|
||||
sel_port-95: 1.1.sta00530
|
||||
sel_port-96: 1.1.sta00531
|
||||
sel_port-97: 1.1.sta00532
|
||||
sel_port-98: 1.1.sta00533
|
||||
sel_port-99: 1.1.sta00534
|
||||
sel_port-100: 1.1.sta00535
|
||||
sel_port-101: 1.1.sta00536
|
||||
sel_port-102: 1.1.sta00537
|
||||
sel_port-103: 1.1.sta00538
|
||||
sel_port-104: 1.1.sta00539
|
||||
sel_port-105: 1.1.sta00540
|
||||
sel_port-106: 1.1.sta00541
|
||||
sel_port-107: 1.1.sta00542
|
||||
sel_port-108: 1.1.sta00543
|
||||
sel_port-109: 1.1.sta00544
|
||||
sel_port-110: 1.1.sta00545
|
||||
sel_port-111: 1.1.sta00546
|
||||
sel_port-112: 1.1.sta00547
|
||||
sel_port-113: 1.1.sta00548
|
||||
sel_port-114: 1.1.sta00549
|
||||
sel_port-115: 1.1.sta00550
|
||||
sel_port-116: 1.1.sta00551
|
||||
sel_port-117: 1.1.sta00552
|
||||
sel_port-118: 1.1.sta00553
|
||||
sel_port-119: 1.1.sta00554
|
||||
sel_port-120: 1.1.sta00555
|
||||
sel_port-121: 1.1.sta00556
|
||||
sel_port-122: 1.1.sta00557
|
||||
sel_port-123: 1.1.sta00558
|
||||
sel_port-124: 1.1.sta00559
|
||||
sel_port-125: 1.1.sta00560
|
||||
sel_port-126: 1.1.sta00561
|
||||
sel_port-127: 1.1.sta00562
|
||||
sel_port-128: 1.1.sta00563
|
||||
sel_port-129: 1.1.wlan4
|
||||
sel_port-130: 1.1.wlan5
|
||||
sel_port-131: 1.1.wlan6
|
||||
sel_port-132: 1.1.wlan7
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 2
|
||||
kpi_id: Capacity-TCP-UL+DL
|
||||
bg: 0xE0ECF8
|
||||
test_rig: NOLA-12-Basic
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
skip_5b: 1
|
||||
skip_dual: 0
|
||||
skip_tri: 1
|
||||
batch_size: 1,5,10,20,40,80
|
||||
loop_iter: 1
|
||||
duration: 60000
|
||||
test_groups: 0
|
||||
test_groups_subset: 0
|
||||
protocol: TCP-IPv4
|
||||
dl_rate_sel: Total Download Rate:
|
||||
dl_rate: 1000000000
|
||||
ul_rate_sel: Total Upload Rate:
|
||||
ul_rate: 1000000000
|
||||
prcnt_tcp: 100000
|
||||
l4_endp:
|
||||
pdu_sz: -1
|
||||
mss_sel: 1
|
||||
sock_buffer: 0
|
||||
ip_tos: 0
|
||||
multi_conn: -1
|
||||
min_speed: -1
|
||||
ps_interval: 60-second Running Average
|
||||
fairness: 0
|
||||
naptime: 0
|
||||
before_clear: 5000
|
||||
rpt_timer: 1000
|
||||
try_lower: 0
|
||||
rnd_rate: 1
|
||||
leave_ports_up: 0
|
||||
down_quiesce: 0
|
||||
udp_nat: 1
|
||||
record_other_ssids: 0
|
||||
clear_reset_counters: 0
|
||||
do_pf: 0
|
||||
pf_min_period_dl: 128000
|
||||
pf_min_period_ul: 0
|
||||
pf_max_reconnects: 0
|
||||
use_mix_pdu: 0
|
||||
pdu_prcnt_pps: 1
|
||||
pdu_prcnt_bps: 0
|
||||
pdu_mix_ln-0:
|
||||
show_scan: 1
|
||||
show_golden_3p: 0
|
||||
save_csv: 0
|
||||
show_realtime: 1
|
||||
show_pie: 1
|
||||
show_per_loop_totals: 1
|
||||
show_cx_time: 1
|
||||
show_dhcp: 1
|
||||
show_anqp: 1
|
||||
show_4way: 1
|
||||
show_latency: 1
|
||||
|
||||
2
testbeds/nola-basic-13/NOTES.txt
Normal file
2
testbeds/nola-basic-13/NOTES.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
DUT is an EAP-102 wifi-6, running TIP OpenWrt.
|
||||
@@ -0,0 +1,2 @@
|
||||
DO_BUGCHECK=1
|
||||
export DO_BUGCHECK
|
||||
34
testbeds/nola-basic-13/OpenWrt-overlay/etc/config/wireless
Normal file
34
testbeds/nola-basic-13/OpenWrt-overlay/etc/config/wireless
Normal file
@@ -0,0 +1,34 @@
|
||||
config wifi-device 'radio0'
|
||||
option type 'mac80211'
|
||||
option channel '36'
|
||||
option hwmode '11a'
|
||||
option path 'platform/soc/c000000.wifi1'
|
||||
option htmode 'HE80'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio0'
|
||||
option device 'radio0'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-5gl'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
option macaddr '00:00:ea:D2:01:02'
|
||||
|
||||
config wifi-device 'radio1'
|
||||
option type 'mac80211'
|
||||
option channel '11'
|
||||
option hwmode '11g'
|
||||
option path 'platform/soc/c000000.wifi1+1'
|
||||
option htmode 'HE20'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio1'
|
||||
option device 'radio1'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-2g'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
option macaddr '00:00:ea:92:01:02'
|
||||
|
||||
111
testbeds/nola-basic-13/ap-auto.txt
Normal file
111
testbeds/nola-basic-13/ap-auto.txt
Normal file
@@ -0,0 +1,111 @@
|
||||
[BLANK]
|
||||
sel_port-0: 1.1.sta00500
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: AP Auto
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 1
|
||||
skip_5: 1
|
||||
dut5b-0: NA
|
||||
dut5-0: TIP Default-SSID-5gl
|
||||
dut2-0: TIP Default-SSID-2g
|
||||
dut5b-1: NA
|
||||
dut5-1: NA
|
||||
dut2-1: NA
|
||||
dut5b-2: NA
|
||||
dut5-2: NA
|
||||
dut2-2: NA
|
||||
spatial_streams: AUTO
|
||||
bandw_options: AUTO
|
||||
modes: Auto
|
||||
upstream_port: 1.1.2 eth2
|
||||
operator:
|
||||
mconn: 1
|
||||
tos: 0
|
||||
vid_buf: 1000000
|
||||
vid_speed: 700000
|
||||
reset_stall_thresh_udp_dl: 9600
|
||||
reset_stall_thresh_udp_ul: 9600
|
||||
reset_stall_thresh_tcp_dl: 9600
|
||||
reset_stall_thresh_tcp_ul: 9600
|
||||
reset_stall_thresh_l4: 100000
|
||||
reset_stall_thresh_voip: 20000
|
||||
stab_udp_dl_min: 56000
|
||||
stab_udp_dl_max: 0
|
||||
stab_udp_ul_min: 56000
|
||||
stab_udp_ul_max: 0
|
||||
stab_tcp_dl_min: 500000
|
||||
stab_tcp_dl_max: 0
|
||||
stab_tcp_ul_min: 500000
|
||||
stab_tcp_ul_max: 0
|
||||
dl_speed: 85%
|
||||
ul_speed: 85%
|
||||
max_stations_2: 129
|
||||
max_stations_5: 131
|
||||
max_stations_dual: 260
|
||||
lt_sta: 2
|
||||
voip_calls: 0
|
||||
lt_dur: 3600
|
||||
reset_dur: 600
|
||||
lt_gi: 30
|
||||
dur20: 20
|
||||
hunt_retries: 1
|
||||
cap_dl: 1
|
||||
cap_ul: 0
|
||||
cap_use_pkt_sizes: 0
|
||||
stability_reset_radios: 0
|
||||
pkt_loss_thresh: 10000
|
||||
frame_sizes: 200, 512, 1024, MTU
|
||||
capacities: 1, 2, 5, 10, 20, 40, 64, 128, 256, 512, 1024, MAX
|
||||
radio2-0: 1.1.4 wiphy0
|
||||
radio2-1: 1.1.0 wiphy2
|
||||
radio2-2: 1.1.0 wiphy4
|
||||
radio5-0: 1.1.5 wiphy3
|
||||
radio5-1: 1.1.7 wiphy5
|
||||
radio5-2: 1.1.9 wiphy6
|
||||
radio5-3: 1.1.9 wiphy7
|
||||
radio5-4: 1.1.0 wiphy1
|
||||
radio5-5:
|
||||
basic_cx: 1
|
||||
tput: 0
|
||||
dual_band_tput: 0
|
||||
capacity: 0
|
||||
longterm: 0
|
||||
mix_stability: 0
|
||||
loop_iter: 1
|
||||
reset_batch_size: 1
|
||||
reset_duration_min: 10000
|
||||
reset_duration_max: 60000
|
||||
|
||||
# Configure pass/fail metrics for this testbed.
|
||||
pf_text0: 2.4 DL 200 70Mbps
|
||||
pf_text1: 2.4 DL 512 110Mbps
|
||||
pf_text2: 2.4 DL 1024 115Mbps
|
||||
pf_text3: 2.4 DL MTU 120Mbps
|
||||
pf_text4:
|
||||
pf_text5: 2.4 UL 200 88Mbps
|
||||
pf_text6: 2.4 UL 512 106Mbps
|
||||
pf_text7: 2.4 UL 1024 115Mbps
|
||||
pf_text8: 2.4 UL MTU 120Mbps
|
||||
pf_text9:
|
||||
pf_text10: 5 DL 200 72Mbps
|
||||
pf_text11: 5 DL 512 185Mbps
|
||||
pf_text12: 5 DL 1024 370Mbps
|
||||
pf_text13: 5 DL MTU 525Mbps
|
||||
pf_text14:
|
||||
pf_text15: 5 UL 200 90Mbps
|
||||
pf_text16: 5 UL 512 230Mbps
|
||||
pf_text17: 5 UL 1024 450Mbps
|
||||
pf_text18: 5 UL MTU 630Mbps
|
||||
|
||||
# Tune connect-time thresholds.
|
||||
cx_prcnt: 950000
|
||||
cx_open_thresh: 35
|
||||
cx_psk_thresh: 75
|
||||
cx_1x_thresh: 130
|
||||
|
||||
|
||||
55
testbeds/nola-basic-13/dpt-pkt-sz.txt
Normal file
55
testbeds/nola-basic-13/dpt-pkt-sz.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
[BLANK]
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: Dataplane
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 0
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
selected_dut: TIP
|
||||
duration: 15000
|
||||
traffic_port: 1.1.136 sta00500
|
||||
upstream_port: 1.1.2 eth2
|
||||
path_loss: 10
|
||||
speed: 85%
|
||||
speed2: 0Kbps
|
||||
min_rssi_bound: -150
|
||||
max_rssi_bound: 0
|
||||
channels: AUTO
|
||||
modes: Auto
|
||||
pkts: 60;142;256;512;1024;MTU;4000
|
||||
spatial_streams: AUTO
|
||||
security_options: AUTO
|
||||
bandw_options: AUTO
|
||||
traffic_types: UDP
|
||||
directions: DUT Transmit;DUT Receive
|
||||
txo_preamble: OFDM
|
||||
txo_mcs: 0 CCK, OFDM, HT, VHT
|
||||
txo_retries: No Retry
|
||||
txo_sgi: OFF
|
||||
txo_txpower: 15
|
||||
attenuator: 0
|
||||
attenuator2: 0
|
||||
attenuator_mod: 255
|
||||
attenuator_mod2: 255
|
||||
attenuations: 0..+50..950
|
||||
attenuations2: 0..+50..950
|
||||
chamber: 0
|
||||
tt_deg: 0..+45..359
|
||||
cust_pkt_sz:
|
||||
show_3s: 0
|
||||
show_ll_graphs: 1
|
||||
show_gp_graphs: 1
|
||||
show_1m: 1
|
||||
pause_iter: 0
|
||||
show_realtime: 1
|
||||
operator:
|
||||
mconn: 1
|
||||
mpkt: 1000
|
||||
tos: 0
|
||||
loop_iterations: 1
|
||||
|
||||
|
||||
71
testbeds/nola-basic-13/run_basic.bash
Executable file
71
testbeds/nola-basic-13/run_basic.bash
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Run one test
|
||||
# DEFAULT_ENABLE=0 DO_SHORT_AP_STABILITY_RESET=1 ./basic_regression.bash
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run all tests
|
||||
./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
83
testbeds/nola-basic-13/run_basic_fast.bash
Executable file
83
testbeds/nola-basic-13/run_basic_fast.bash
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
#set -x
|
||||
|
||||
DO_SHORT_AP_BASIC_CX=${DO_SHORT_AP_BASIC_CX:-1}
|
||||
DO_WCT_BI=${DO_WCT_BI:-1}
|
||||
|
||||
export DO_SHORT_AP_BASI_CX DO_WCT_BI
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression-fast
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run a subset of available tests
|
||||
# See 'Tests to run' comment in basic_regression.bash for available options.
|
||||
|
||||
#DEFAULT_ENABLE=0 WCT_DURATION=20s DO_SHORT_AP_BASIC_CX=1 DO_WCT_BI=1 ./basic_regression.bash
|
||||
|
||||
DEFAULT_ENABLE=0 WCT_DURATION=20s ./basic_regression.bash
|
||||
|
||||
|
||||
# Run all tests
|
||||
#./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
11
testbeds/nola-basic-13/scenario.txt
Normal file
11
testbeds/nola-basic-13/scenario.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-1' NA wiphy0,AUTO -1
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-2' NA wiphy1,AUTO -1
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth3,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
11
testbeds/nola-basic-13/scenario_small.txt
Normal file
11
testbeds/nola-basic-13/scenario_small.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy0,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy1,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth3,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
62
testbeds/nola-basic-13/test_bed_cfg.bash
Normal file
62
testbeds/nola-basic-13/test_bed_cfg.bash
Normal file
@@ -0,0 +1,62 @@
|
||||
# Example test-bed configuration
|
||||
|
||||
# Scripts should source this file to set the default environment variables
|
||||
# and then override the variables specific to their test case (and it can be done
|
||||
# in opposite order for same results
|
||||
#
|
||||
# After the env variables are set,
|
||||
# call the 'lanforge/lanforge-scripts/gui/basic_regression.bash'
|
||||
# from the directory in which it resides.
|
||||
|
||||
NOLA_NUM=13
|
||||
|
||||
PWD=`pwd`
|
||||
AP_SERIAL=${AP_SERIAL:-/dev/ttyAP2}
|
||||
LF_SERIAL=${LF_SERIAL:-/dev/ttyLF2}
|
||||
LFPASSWD=${LFPASSWD:-lanforge} # Root password on LANforge machine
|
||||
AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-$PWD/ap-auto.txt}
|
||||
WCT_CFG_FILE=${WCT_CFG_FILE:-$PWD/wct.txt}
|
||||
DPT_CFG_FILE=${DPT_CFG_FILE:-$PWD/dpt-pkt-sz.txt}
|
||||
SCENARIO_CFG_FILE=${SCENARIO_CFG_FILE:-$PWD/scenario.txt}
|
||||
|
||||
# Default to enable cloud-sdk for this testbed, cloud-sdk is at IP addr below
|
||||
#USE_CLOUD_SDK=${USE_CLOUD_SDK:-192.168.100.164}
|
||||
|
||||
# LANforge target machine
|
||||
LFMANAGER=${LFMANAGER:-lf13}
|
||||
|
||||
# LANforge GUI machine (may often be same as target)
|
||||
GMANAGER=${GMANAGER:-lf13}
|
||||
GMPORT=${GMPORT:-3990}
|
||||
MY_TMPDIR=${MY_TMPDIR:-/tmp}
|
||||
|
||||
# Test configuration (10 minutes by default, in interest of time)
|
||||
STABILITY_DURATION=${STABILITY_DURATION:-600}
|
||||
TEST_RIG_ID=${TEST_RIG_ID:-NOLA-${NOLA_NUM}-Basic}
|
||||
|
||||
# DUT configuration
|
||||
DUT_FLAGS=${DUT_FLAGS:-0x22} # AP, WPA-PSK
|
||||
#DUT_FLAGS=${DUT_FLAGS:-0x2} # AP, Open
|
||||
DUT_FLAGS_MASK=${DUT_FLAGS_MASK:-0xFFFF}
|
||||
DUT_SW_VER=${DUT_SW_VER:-OpenWrt-TIP}
|
||||
DUT_HW_VER=EAP-102
|
||||
DUT_MODEL=EAP-102
|
||||
DUT_SERIAL=${DUT_SERIAL:-NA}
|
||||
DUT_SSID1=${DUT_SSID1:-Default-SSID-2g}
|
||||
DUT_SSID2=${DUT_SSID2:-Default-SSID-5gl}
|
||||
DUT_PASSWD1=${DUT_PASSWD1:-12345678}
|
||||
DUT_PASSWD2=${DUT_PASSWD2:-12345678}
|
||||
# 2.4 radio
|
||||
DUT_BSSID1=00:00:ea:92:01:02
|
||||
# 5Ghz radio
|
||||
DUT_BSSID2=00:00:ea:D2:01:02
|
||||
|
||||
export LF_SERIAL AP_SERIAL LFPASSWD
|
||||
export AP_AUTO_CFG_FILE WCT_CFG_FILE DPT_CFG_FILE SCENARIO_CFG_FILE
|
||||
export LFMANAGER GMANAGER GMPORT MY_TMPDIR
|
||||
export STABILITY_DURATION TEST_RIG_ID
|
||||
export DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
export DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
export DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
export DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
export USE_CLOUD_SDK
|
||||
323
testbeds/nola-basic-13/wct.txt
Normal file
323
testbeds/nola-basic-13/wct.txt
Normal file
@@ -0,0 +1,323 @@
|
||||
[BLANK]
|
||||
sel_port-0: 1.1.eth2
|
||||
sel_port-1: 1.1.sta00000
|
||||
sel_port-2: 1.1.sta00001
|
||||
sel_port-3: 1.1.sta00002
|
||||
sel_port-4: 1.1.sta00003
|
||||
sel_port-5: 1.1.sta00004
|
||||
sel_port-6: 1.1.sta00005
|
||||
sel_port-7: 1.1.sta00006
|
||||
sel_port-8: 1.1.sta00007
|
||||
sel_port-9: 1.1.sta00008
|
||||
sel_port-10: 1.1.sta00009
|
||||
sel_port-11: 1.1.sta00010
|
||||
sel_port-12: 1.1.sta00011
|
||||
sel_port-13: 1.1.sta00012
|
||||
sel_port-14: 1.1.sta00013
|
||||
sel_port-15: 1.1.sta00014
|
||||
sel_port-16: 1.1.sta00015
|
||||
sel_port-17: 1.1.sta00016
|
||||
sel_port-18: 1.1.sta00017
|
||||
sel_port-19: 1.1.sta00018
|
||||
sel_port-20: 1.1.sta00019
|
||||
sel_port-21: 1.1.sta00020
|
||||
sel_port-22: 1.1.sta00021
|
||||
sel_port-23: 1.1.sta00022
|
||||
sel_port-24: 1.1.sta00023
|
||||
sel_port-25: 1.1.sta00024
|
||||
sel_port-26: 1.1.sta00025
|
||||
sel_port-27: 1.1.sta00026
|
||||
sel_port-28: 1.1.sta00027
|
||||
sel_port-29: 1.1.sta00028
|
||||
sel_port-30: 1.1.sta00029
|
||||
sel_port-31: 1.1.sta00030
|
||||
sel_port-32: 1.1.sta00031
|
||||
sel_port-33: 1.1.sta00032
|
||||
sel_port-34: 1.1.sta00033
|
||||
sel_port-35: 1.1.sta00034
|
||||
sel_port-36: 1.1.sta00035
|
||||
sel_port-37: 1.1.sta00036
|
||||
sel_port-38: 1.1.sta00037
|
||||
sel_port-39: 1.1.sta00038
|
||||
sel_port-40: 1.1.sta00039
|
||||
sel_port-41: 1.1.sta00040
|
||||
sel_port-42: 1.1.sta00041
|
||||
sel_port-43: 1.1.sta00042
|
||||
sel_port-44: 1.1.sta00043
|
||||
sel_port-45: 1.1.sta00044
|
||||
sel_port-46: 1.1.sta00045
|
||||
sel_port-47: 1.1.sta00046
|
||||
sel_port-48: 1.1.sta00047
|
||||
sel_port-49: 1.1.sta00048
|
||||
sel_port-50: 1.1.sta00049
|
||||
sel_port-51: 1.1.sta00050
|
||||
sel_port-52: 1.1.sta00051
|
||||
sel_port-53: 1.1.sta00052
|
||||
sel_port-54: 1.1.sta00053
|
||||
sel_port-55: 1.1.sta00054
|
||||
sel_port-56: 1.1.sta00055
|
||||
sel_port-57: 1.1.sta00056
|
||||
sel_port-58: 1.1.sta00057
|
||||
sel_port-59: 1.1.sta00058
|
||||
sel_port-60: 1.1.sta00059
|
||||
sel_port-61: 1.1.sta00060
|
||||
sel_port-62: 1.1.sta00061
|
||||
sel_port-63: 1.1.sta00062
|
||||
sel_port-64: 1.1.sta00063
|
||||
sel_port-65: 1.1.sta00500
|
||||
sel_port-66: 1.1.sta00501
|
||||
sel_port-67: 1.1.sta00502
|
||||
sel_port-68: 1.1.sta00503
|
||||
sel_port-69: 1.1.sta00504
|
||||
sel_port-70: 1.1.sta00505
|
||||
sel_port-71: 1.1.sta00506
|
||||
sel_port-72: 1.1.sta00507
|
||||
sel_port-73: 1.1.sta00508
|
||||
sel_port-74: 1.1.sta00509
|
||||
sel_port-75: 1.1.sta00510
|
||||
sel_port-76: 1.1.sta00511
|
||||
sel_port-77: 1.1.sta00512
|
||||
sel_port-78: 1.1.sta00513
|
||||
sel_port-79: 1.1.sta00514
|
||||
sel_port-80: 1.1.sta00515
|
||||
sel_port-81: 1.1.sta00516
|
||||
sel_port-82: 1.1.sta00517
|
||||
sel_port-83: 1.1.sta00518
|
||||
sel_port-84: 1.1.sta00519
|
||||
sel_port-85: 1.1.sta00520
|
||||
sel_port-86: 1.1.sta00521
|
||||
sel_port-87: 1.1.sta00522
|
||||
sel_port-88: 1.1.sta00523
|
||||
sel_port-89: 1.1.sta00524
|
||||
sel_port-90: 1.1.sta00525
|
||||
sel_port-91: 1.1.sta00526
|
||||
sel_port-92: 1.1.sta00527
|
||||
sel_port-93: 1.1.sta00528
|
||||
sel_port-94: 1.1.sta00529
|
||||
sel_port-95: 1.1.sta00530
|
||||
sel_port-96: 1.1.sta00531
|
||||
sel_port-97: 1.1.sta00532
|
||||
sel_port-98: 1.1.sta00533
|
||||
sel_port-99: 1.1.sta00534
|
||||
sel_port-100: 1.1.sta00535
|
||||
sel_port-101: 1.1.sta00536
|
||||
sel_port-102: 1.1.sta00537
|
||||
sel_port-103: 1.1.sta00538
|
||||
sel_port-104: 1.1.sta00539
|
||||
sel_port-105: 1.1.sta00540
|
||||
sel_port-106: 1.1.sta00541
|
||||
sel_port-107: 1.1.sta00542
|
||||
sel_port-108: 1.1.sta00543
|
||||
sel_port-109: 1.1.sta00544
|
||||
sel_port-110: 1.1.sta00545
|
||||
sel_port-111: 1.1.sta00546
|
||||
sel_port-112: 1.1.sta00547
|
||||
sel_port-113: 1.1.sta00548
|
||||
sel_port-114: 1.1.sta00549
|
||||
sel_port-115: 1.1.sta00550
|
||||
sel_port-116: 1.1.sta00551
|
||||
sel_port-117: 1.1.sta00552
|
||||
sel_port-118: 1.1.sta00553
|
||||
sel_port-119: 1.1.sta00554
|
||||
sel_port-120: 1.1.sta00555
|
||||
sel_port-121: 1.1.sta00556
|
||||
sel_port-122: 1.1.sta00557
|
||||
sel_port-123: 1.1.sta00558
|
||||
sel_port-124: 1.1.sta00559
|
||||
sel_port-125: 1.1.sta00560
|
||||
sel_port-126: 1.1.sta00561
|
||||
sel_port-127: 1.1.sta00562
|
||||
sel_port-128: 1.1.sta00563
|
||||
sel_port-129: 1.1.sta04000
|
||||
sel_port-130: 1.1.sta04001
|
||||
sel_port-131: 1.1.sta04002
|
||||
sel_port-132: 1.1.sta04003
|
||||
sel_port-133: 1.1.sta04004
|
||||
sel_port-134: 1.1.sta04005
|
||||
sel_port-135: 1.1.sta04006
|
||||
sel_port-136: 1.1.sta04007
|
||||
sel_port-137: 1.1.sta04008
|
||||
sel_port-138: 1.1.sta04009
|
||||
sel_port-139: 1.1.sta04010
|
||||
sel_port-140: 1.1.sta04011
|
||||
sel_port-141: 1.1.sta04012
|
||||
sel_port-142: 1.1.sta04013
|
||||
sel_port-143: 1.1.sta04014
|
||||
sel_port-144: 1.1.sta04015
|
||||
sel_port-145: 1.1.sta04016
|
||||
sel_port-146: 1.1.sta04017
|
||||
sel_port-147: 1.1.sta04018
|
||||
sel_port-148: 1.1.sta04019
|
||||
sel_port-149: 1.1.sta04020
|
||||
sel_port-150: 1.1.sta04021
|
||||
sel_port-151: 1.1.sta04022
|
||||
sel_port-152: 1.1.sta04023
|
||||
sel_port-153: 1.1.sta04024
|
||||
sel_port-154: 1.1.sta04025
|
||||
sel_port-155: 1.1.sta04026
|
||||
sel_port-156: 1.1.sta04027
|
||||
sel_port-157: 1.1.sta04028
|
||||
sel_port-158: 1.1.sta04029
|
||||
sel_port-159: 1.1.sta04030
|
||||
sel_port-160: 1.1.sta04031
|
||||
sel_port-161: 1.1.sta04032
|
||||
sel_port-162: 1.1.sta04033
|
||||
sel_port-163: 1.1.sta04034
|
||||
sel_port-164: 1.1.sta04035
|
||||
sel_port-165: 1.1.sta04036
|
||||
sel_port-166: 1.1.sta04037
|
||||
sel_port-167: 1.1.sta04038
|
||||
sel_port-168: 1.1.sta04039
|
||||
sel_port-169: 1.1.sta04040
|
||||
sel_port-170: 1.1.sta04041
|
||||
sel_port-171: 1.1.sta04042
|
||||
sel_port-172: 1.1.sta04043
|
||||
sel_port-173: 1.1.sta04044
|
||||
sel_port-174: 1.1.sta04045
|
||||
sel_port-175: 1.1.sta04046
|
||||
sel_port-176: 1.1.sta04047
|
||||
sel_port-177: 1.1.sta04048
|
||||
sel_port-178: 1.1.sta04049
|
||||
sel_port-179: 1.1.sta04050
|
||||
sel_port-180: 1.1.sta04051
|
||||
sel_port-181: 1.1.sta04052
|
||||
sel_port-182: 1.1.sta04053
|
||||
sel_port-183: 1.1.sta04054
|
||||
sel_port-184: 1.1.sta04055
|
||||
sel_port-185: 1.1.sta04056
|
||||
sel_port-186: 1.1.sta04057
|
||||
sel_port-187: 1.1.sta04058
|
||||
sel_port-188: 1.1.sta04059
|
||||
sel_port-189: 1.1.sta04060
|
||||
sel_port-190: 1.1.sta04061
|
||||
sel_port-191: 1.1.sta04062
|
||||
sel_port-192: 1.1.sta04063
|
||||
sel_port-193: 1.1.sta04500
|
||||
sel_port-194: 1.1.sta04501
|
||||
sel_port-195: 1.1.sta04502
|
||||
sel_port-196: 1.1.sta04503
|
||||
sel_port-197: 1.1.sta04504
|
||||
sel_port-198: 1.1.sta04505
|
||||
sel_port-199: 1.1.sta04506
|
||||
sel_port-200: 1.1.sta04507
|
||||
sel_port-201: 1.1.sta04508
|
||||
sel_port-202: 1.1.sta04509
|
||||
sel_port-203: 1.1.sta04510
|
||||
sel_port-204: 1.1.sta04511
|
||||
sel_port-205: 1.1.sta04512
|
||||
sel_port-206: 1.1.sta04513
|
||||
sel_port-207: 1.1.sta04514
|
||||
sel_port-208: 1.1.sta04515
|
||||
sel_port-209: 1.1.sta04516
|
||||
sel_port-210: 1.1.sta04517
|
||||
sel_port-211: 1.1.sta04518
|
||||
sel_port-212: 1.1.sta04519
|
||||
sel_port-213: 1.1.sta04520
|
||||
sel_port-214: 1.1.sta04521
|
||||
sel_port-215: 1.1.sta04522
|
||||
sel_port-216: 1.1.sta04523
|
||||
sel_port-217: 1.1.sta04524
|
||||
sel_port-218: 1.1.sta04525
|
||||
sel_port-219: 1.1.sta04526
|
||||
sel_port-220: 1.1.sta04527
|
||||
sel_port-221: 1.1.sta04528
|
||||
sel_port-222: 1.1.sta04529
|
||||
sel_port-223: 1.1.sta04530
|
||||
sel_port-224: 1.1.sta04531
|
||||
sel_port-225: 1.1.sta04532
|
||||
sel_port-226: 1.1.sta04533
|
||||
sel_port-227: 1.1.sta04534
|
||||
sel_port-228: 1.1.sta04535
|
||||
sel_port-229: 1.1.sta04536
|
||||
sel_port-230: 1.1.sta04537
|
||||
sel_port-231: 1.1.sta04538
|
||||
sel_port-232: 1.1.sta04539
|
||||
sel_port-233: 1.1.sta04540
|
||||
sel_port-234: 1.1.sta04541
|
||||
sel_port-235: 1.1.sta04542
|
||||
sel_port-236: 1.1.sta04543
|
||||
sel_port-237: 1.1.sta04544
|
||||
sel_port-238: 1.1.sta04545
|
||||
sel_port-239: 1.1.sta04546
|
||||
sel_port-240: 1.1.sta04547
|
||||
sel_port-241: 1.1.sta04548
|
||||
sel_port-242: 1.1.sta04549
|
||||
sel_port-243: 1.1.sta04550
|
||||
sel_port-244: 1.1.sta04551
|
||||
sel_port-245: 1.1.sta04552
|
||||
sel_port-246: 1.1.sta04553
|
||||
sel_port-247: 1.1.sta04554
|
||||
sel_port-248: 1.1.sta04555
|
||||
sel_port-249: 1.1.sta04556
|
||||
sel_port-250: 1.1.sta04557
|
||||
sel_port-251: 1.1.sta04558
|
||||
sel_port-252: 1.1.sta04559
|
||||
sel_port-253: 1.1.sta04560
|
||||
sel_port-254: 1.1.sta04561
|
||||
sel_port-255: 1.1.sta04562
|
||||
sel_port-256: 1.1.sta04563
|
||||
sel_port-257: 1.1.wlan4
|
||||
sel_port-258: 1.1.wlan5
|
||||
sel_port-259: 1.1.wlan6
|
||||
sel_port-260: 1.1.wlan7
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 2
|
||||
kpi_id: WiFi Capacity
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
batch_size: 1,5,10,20,40,80
|
||||
loop_iter: 1
|
||||
duration: 30000
|
||||
test_groups: 0
|
||||
test_groups_subset: 0
|
||||
protocol: TCP-IPv4
|
||||
dl_rate_sel: Total Download Rate:
|
||||
dl_rate: 1000000000
|
||||
ul_rate_sel: Total Upload Rate:
|
||||
ul_rate: 1000000000
|
||||
prcnt_tcp: 100000
|
||||
l4_endp:
|
||||
pdu_sz: -1
|
||||
mss_sel: 1
|
||||
sock_buffer: 0
|
||||
ip_tos: 0
|
||||
multi_conn: -1
|
||||
min_speed: -1
|
||||
ps_interval: 60-second Running Average
|
||||
fairness: 0
|
||||
naptime: 0
|
||||
before_clear: 5000
|
||||
rpt_timer: 1000
|
||||
try_lower: 0
|
||||
rnd_rate: 1
|
||||
leave_ports_up: 0
|
||||
down_quiesce: 0
|
||||
udp_nat: 1
|
||||
record_other_ssids: 0
|
||||
clear_reset_counters: 0
|
||||
do_pf: 0
|
||||
pf_min_period_dl: 128000
|
||||
pf_min_period_ul: 0
|
||||
pf_max_reconnects: 0
|
||||
use_mix_pdu: 0
|
||||
pdu_prcnt_pps: 1
|
||||
pdu_prcnt_bps: 0
|
||||
pdu_mix_ln-0:
|
||||
show_scan: 1
|
||||
show_golden_3p: 0
|
||||
save_csv: 0
|
||||
show_realtime: 1
|
||||
show_pie: 1
|
||||
show_per_loop_totals: 1
|
||||
show_cx_time: 1
|
||||
show_dhcp: 1
|
||||
show_anqp: 1
|
||||
show_4way: 1
|
||||
show_latency: 1
|
||||
|
||||
|
||||
2
testbeds/nola-basic-14/NOTES.txt
Normal file
2
testbeds/nola-basic-14/NOTES.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
DUT is an EAP-102 wifi-6, running TIP OpenWrt.
|
||||
Configured for <= 128 stations total.
|
||||
@@ -0,0 +1,2 @@
|
||||
DO_BUGCHECK=1
|
||||
export DO_BUGCHECK
|
||||
34
testbeds/nola-basic-14/OpenWrt-overlay/etc/config/wireless
Normal file
34
testbeds/nola-basic-14/OpenWrt-overlay/etc/config/wireless
Normal file
@@ -0,0 +1,34 @@
|
||||
config wifi-device 'radio0'
|
||||
option type 'mac80211'
|
||||
option channel '36'
|
||||
option hwmode '11a'
|
||||
option path 'platform/soc/c000000.wifi1'
|
||||
option htmode 'HE80'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio0'
|
||||
option device 'radio0'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-5gl'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
option macaddr '00:00:ea:D2:01:03'
|
||||
|
||||
config wifi-device 'radio1'
|
||||
option type 'mac80211'
|
||||
option channel '11'
|
||||
option hwmode '11g'
|
||||
option path 'platform/soc/c000000.wifi1+1'
|
||||
option htmode 'HE20'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio1'
|
||||
option device 'radio1'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-2g'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
option macaddr '00:00:ea:92:01:03'
|
||||
|
||||
111
testbeds/nola-basic-14/ap-auto.txt
Normal file
111
testbeds/nola-basic-14/ap-auto.txt
Normal file
@@ -0,0 +1,111 @@
|
||||
[BLANK]
|
||||
sel_port-0: 1.1.sta00500
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: AP Auto
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 1
|
||||
skip_5: 1
|
||||
dut5b-0: NA
|
||||
dut5-0: TIP Default-SSID-5gl
|
||||
dut2-0: TIP Default-SSID-2g
|
||||
dut5b-1: NA
|
||||
dut5-1: NA
|
||||
dut2-1: NA
|
||||
dut5b-2: NA
|
||||
dut5-2: NA
|
||||
dut2-2: NA
|
||||
spatial_streams: AUTO
|
||||
bandw_options: AUTO
|
||||
modes: Auto
|
||||
upstream_port: 1.1.2 eth2
|
||||
operator:
|
||||
mconn: 1
|
||||
tos: 0
|
||||
vid_buf: 1000000
|
||||
vid_speed: 700000
|
||||
reset_stall_thresh_udp_dl: 9600
|
||||
reset_stall_thresh_udp_ul: 9600
|
||||
reset_stall_thresh_tcp_dl: 9600
|
||||
reset_stall_thresh_tcp_ul: 9600
|
||||
reset_stall_thresh_l4: 100000
|
||||
reset_stall_thresh_voip: 20000
|
||||
stab_udp_dl_min: 56000
|
||||
stab_udp_dl_max: 0
|
||||
stab_udp_ul_min: 56000
|
||||
stab_udp_ul_max: 0
|
||||
stab_tcp_dl_min: 500000
|
||||
stab_tcp_dl_max: 0
|
||||
stab_tcp_ul_min: 500000
|
||||
stab_tcp_ul_max: 0
|
||||
dl_speed: 85%
|
||||
ul_speed: 85%
|
||||
max_stations_2: 60
|
||||
max_stations_5: 60
|
||||
max_stations_dual: 120
|
||||
lt_sta: 2
|
||||
voip_calls: 0
|
||||
lt_dur: 3600
|
||||
reset_dur: 600
|
||||
lt_gi: 30
|
||||
dur20: 20
|
||||
hunt_retries: 1
|
||||
cap_dl: 1
|
||||
cap_ul: 0
|
||||
cap_use_pkt_sizes: 0
|
||||
stability_reset_radios: 0
|
||||
pkt_loss_thresh: 10000
|
||||
frame_sizes: 200, 512, 1024, MTU
|
||||
capacities: 1, 2, 5, 10, 20, 40, 64, 128, 256, 512, 1024, MAX
|
||||
radio2-0: 1.1.4 wiphy0
|
||||
radio2-1: 1.1.0 wiphy2
|
||||
radio2-2: 1.1.0 wiphy4
|
||||
radio5-0: 1.1.5 wiphy3
|
||||
radio5-1: 1.1.7 wiphy5
|
||||
radio5-2: 1.1.9 wiphy6
|
||||
radio5-3: 1.1.9 wiphy7
|
||||
radio5-4: 1.1.0 wiphy1
|
||||
radio5-5:
|
||||
basic_cx: 1
|
||||
tput: 0
|
||||
dual_band_tput: 0
|
||||
capacity: 0
|
||||
longterm: 0
|
||||
mix_stability: 0
|
||||
loop_iter: 1
|
||||
reset_batch_size: 1
|
||||
reset_duration_min: 10000
|
||||
reset_duration_max: 60000
|
||||
|
||||
# Configure pass/fail metrics for this testbed.
|
||||
pf_text0: 2.4 DL 200 70Mbps
|
||||
pf_text1: 2.4 DL 512 110Mbps
|
||||
pf_text2: 2.4 DL 1024 115Mbps
|
||||
pf_text3: 2.4 DL MTU 120Mbps
|
||||
pf_text4:
|
||||
pf_text5: 2.4 UL 200 88Mbps
|
||||
pf_text6: 2.4 UL 512 106Mbps
|
||||
pf_text7: 2.4 UL 1024 115Mbps
|
||||
pf_text8: 2.4 UL MTU 120Mbps
|
||||
pf_text9:
|
||||
pf_text10: 5 DL 200 72Mbps
|
||||
pf_text11: 5 DL 512 185Mbps
|
||||
pf_text12: 5 DL 1024 370Mbps
|
||||
pf_text13: 5 DL MTU 525Mbps
|
||||
pf_text14:
|
||||
pf_text15: 5 UL 200 90Mbps
|
||||
pf_text16: 5 UL 512 230Mbps
|
||||
pf_text17: 5 UL 1024 450Mbps
|
||||
pf_text18: 5 UL MTU 630Mbps
|
||||
|
||||
# Tune connect-time thresholds.
|
||||
cx_prcnt: 950000
|
||||
cx_open_thresh: 35
|
||||
cx_psk_thresh: 75
|
||||
cx_1x_thresh: 130
|
||||
|
||||
|
||||
55
testbeds/nola-basic-14/dpt-pkt-sz.txt
Normal file
55
testbeds/nola-basic-14/dpt-pkt-sz.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
[BLANK]
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: Dataplane
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 0
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
selected_dut: TIP
|
||||
duration: 15000
|
||||
traffic_port: 1.1.136 sta00500
|
||||
upstream_port: 1.1.2 eth2
|
||||
path_loss: 10
|
||||
speed: 85%
|
||||
speed2: 0Kbps
|
||||
min_rssi_bound: -150
|
||||
max_rssi_bound: 0
|
||||
channels: AUTO
|
||||
modes: Auto
|
||||
pkts: 60;142;256;512;1024;MTU;4000
|
||||
spatial_streams: AUTO
|
||||
security_options: AUTO
|
||||
bandw_options: AUTO
|
||||
traffic_types: UDP
|
||||
directions: DUT Transmit;DUT Receive
|
||||
txo_preamble: OFDM
|
||||
txo_mcs: 0 CCK, OFDM, HT, VHT
|
||||
txo_retries: No Retry
|
||||
txo_sgi: OFF
|
||||
txo_txpower: 15
|
||||
attenuator: 0
|
||||
attenuator2: 0
|
||||
attenuator_mod: 255
|
||||
attenuator_mod2: 255
|
||||
attenuations: 0..+50..950
|
||||
attenuations2: 0..+50..950
|
||||
chamber: 0
|
||||
tt_deg: 0..+45..359
|
||||
cust_pkt_sz:
|
||||
show_3s: 0
|
||||
show_ll_graphs: 1
|
||||
show_gp_graphs: 1
|
||||
show_1m: 1
|
||||
pause_iter: 0
|
||||
show_realtime: 1
|
||||
operator:
|
||||
mconn: 1
|
||||
mpkt: 1000
|
||||
tos: 0
|
||||
loop_iterations: 1
|
||||
|
||||
|
||||
71
testbeds/nola-basic-14/run_basic.bash
Executable file
71
testbeds/nola-basic-14/run_basic.bash
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Run one test
|
||||
# DEFAULT_ENABLE=0 DO_SHORT_AP_STABILITY_RESET=1 ./basic_regression.bash
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run all tests
|
||||
./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
83
testbeds/nola-basic-14/run_basic_fast.bash
Executable file
83
testbeds/nola-basic-14/run_basic_fast.bash
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
#set -x
|
||||
|
||||
DO_SHORT_AP_BASIC_CX=${DO_SHORT_AP_BASIC_CX:-1}
|
||||
DO_WCT_BI=${DO_WCT_BI:-1}
|
||||
|
||||
export DO_SHORT_AP_BASI_CX DO_WCT_BI
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression-fast
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run a subset of available tests
|
||||
# See 'Tests to run' comment in basic_regression.bash for available options.
|
||||
|
||||
#DEFAULT_ENABLE=0 WCT_DURATION=20s DO_SHORT_AP_BASIC_CX=1 DO_WCT_BI=1 ./basic_regression.bash
|
||||
|
||||
DEFAULT_ENABLE=0 WCT_DURATION=20s ./basic_regression.bash
|
||||
|
||||
|
||||
# Run all tests
|
||||
#./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
11
testbeds/nola-basic-14/scenario.txt
Normal file
11
testbeds/nola-basic-14/scenario.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy0,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy1,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth3,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
11
testbeds/nola-basic-14/scenario_small.txt
Normal file
11
testbeds/nola-basic-14/scenario_small.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy0,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy1,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth3,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
62
testbeds/nola-basic-14/test_bed_cfg.bash
Normal file
62
testbeds/nola-basic-14/test_bed_cfg.bash
Normal file
@@ -0,0 +1,62 @@
|
||||
# Example test-bed configuration
|
||||
|
||||
# Scripts should source this file to set the default environment variables
|
||||
# and then override the variables specific to their test case (and it can be done
|
||||
# in opposite order for same results
|
||||
#
|
||||
# After the env variables are set,
|
||||
# call the 'lanforge/lanforge-scripts/gui/basic_regression.bash'
|
||||
# from the directory in which it resides.
|
||||
|
||||
NOLA_NUM=14
|
||||
|
||||
PWD=`pwd`
|
||||
AP_SERIAL=${AP_SERIAL:-/dev/ttyAP3}
|
||||
LF_SERIAL=${LF_SERIAL:-/dev/ttyLF3}
|
||||
LFPASSWD=${LFPASSWD:-lanforge} # Root password on LANforge machine
|
||||
AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-$PWD/ap-auto.txt}
|
||||
WCT_CFG_FILE=${WCT_CFG_FILE:-$PWD/wct.txt}
|
||||
DPT_CFG_FILE=${DPT_CFG_FILE:-$PWD/dpt-pkt-sz.txt}
|
||||
SCENARIO_CFG_FILE=${SCENARIO_CFG_FILE:-$PWD/scenario.txt}
|
||||
|
||||
# Default to enable cloud-sdk for this testbed, cloud-sdk is at IP addr below
|
||||
#USE_CLOUD_SDK=${USE_CLOUD_SDK:-192.168.100.164}
|
||||
|
||||
# LANforge target machine
|
||||
LFMANAGER=${LFMANAGER:-lf14}
|
||||
|
||||
# LANforge GUI machine (may often be same as target)
|
||||
GMANAGER=${GMANAGER:-lf14}
|
||||
GMPORT=${GMPORT:-3990}
|
||||
MY_TMPDIR=${MY_TMPDIR:-/tmp}
|
||||
|
||||
# Test configuration (10 minutes by default, in interest of time)
|
||||
STABILITY_DURATION=${STABILITY_DURATION:-600}
|
||||
TEST_RIG_ID=${TEST_RIG_ID:-NOLA-${NOLA_NUM}-Basic}
|
||||
|
||||
# DUT configuration
|
||||
DUT_FLAGS=${DUT_FLAGS:-0x22} # AP, WPA-PSK
|
||||
#DUT_FLAGS=${DUT_FLAGS:-0x2} # AP, Open
|
||||
DUT_FLAGS_MASK=${DUT_FLAGS_MASK:-0xFFFF}
|
||||
DUT_SW_VER=${DUT_SW_VER:-OpenWrt-TIP}
|
||||
DUT_HW_VER=EAP-102
|
||||
DUT_MODEL=EAP-102
|
||||
DUT_SERIAL=${DUT_SERIAL:-NA}
|
||||
DUT_SSID1=${DUT_SSID1:-Default-SSID-2g}
|
||||
DUT_SSID2=${DUT_SSID2:-Default-SSID-5gl}
|
||||
DUT_PASSWD1=${DUT_PASSWD1:-12345678}
|
||||
DUT_PASSWD2=${DUT_PASSWD2:-12345678}
|
||||
# 2.4 radio
|
||||
DUT_BSSID1=00:00:ea:92:01:03
|
||||
# 5Ghz radio
|
||||
DUT_BSSID2=00:00:ea:D2:01:03
|
||||
|
||||
export LF_SERIAL AP_SERIAL LFPASSWD
|
||||
export AP_AUTO_CFG_FILE WCT_CFG_FILE DPT_CFG_FILE SCENARIO_CFG_FILE
|
||||
export LFMANAGER GMANAGER GMPORT MY_TMPDIR
|
||||
export STABILITY_DURATION TEST_RIG_ID
|
||||
export DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
export DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
export DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
export DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
export USE_CLOUD_SDK
|
||||
323
testbeds/nola-basic-14/wct.txt
Normal file
323
testbeds/nola-basic-14/wct.txt
Normal file
@@ -0,0 +1,323 @@
|
||||
[BLANK]
|
||||
sel_port-0: 1.1.eth2
|
||||
sel_port-1: 1.1.sta00000
|
||||
sel_port-2: 1.1.sta00001
|
||||
sel_port-3: 1.1.sta00002
|
||||
sel_port-4: 1.1.sta00003
|
||||
sel_port-5: 1.1.sta00004
|
||||
sel_port-6: 1.1.sta00005
|
||||
sel_port-7: 1.1.sta00006
|
||||
sel_port-8: 1.1.sta00007
|
||||
sel_port-9: 1.1.sta00008
|
||||
sel_port-10: 1.1.sta00009
|
||||
sel_port-11: 1.1.sta00010
|
||||
sel_port-12: 1.1.sta00011
|
||||
sel_port-13: 1.1.sta00012
|
||||
sel_port-14: 1.1.sta00013
|
||||
sel_port-15: 1.1.sta00014
|
||||
sel_port-16: 1.1.sta00015
|
||||
sel_port-17: 1.1.sta00016
|
||||
sel_port-18: 1.1.sta00017
|
||||
sel_port-19: 1.1.sta00018
|
||||
sel_port-20: 1.1.sta00019
|
||||
sel_port-21: 1.1.sta00020
|
||||
sel_port-22: 1.1.sta00021
|
||||
sel_port-23: 1.1.sta00022
|
||||
sel_port-24: 1.1.sta00023
|
||||
sel_port-25: 1.1.sta00024
|
||||
sel_port-26: 1.1.sta00025
|
||||
sel_port-27: 1.1.sta00026
|
||||
sel_port-28: 1.1.sta00027
|
||||
sel_port-29: 1.1.sta00028
|
||||
sel_port-30: 1.1.sta00029
|
||||
sel_port-31: 1.1.sta00030
|
||||
sel_port-32: 1.1.sta00031
|
||||
sel_port-33: 1.1.sta00032
|
||||
sel_port-34: 1.1.sta00033
|
||||
sel_port-35: 1.1.sta00034
|
||||
sel_port-36: 1.1.sta00035
|
||||
sel_port-37: 1.1.sta00036
|
||||
sel_port-38: 1.1.sta00037
|
||||
sel_port-39: 1.1.sta00038
|
||||
sel_port-40: 1.1.sta00039
|
||||
sel_port-41: 1.1.sta00040
|
||||
sel_port-42: 1.1.sta00041
|
||||
sel_port-43: 1.1.sta00042
|
||||
sel_port-44: 1.1.sta00043
|
||||
sel_port-45: 1.1.sta00044
|
||||
sel_port-46: 1.1.sta00045
|
||||
sel_port-47: 1.1.sta00046
|
||||
sel_port-48: 1.1.sta00047
|
||||
sel_port-49: 1.1.sta00048
|
||||
sel_port-50: 1.1.sta00049
|
||||
sel_port-51: 1.1.sta00050
|
||||
sel_port-52: 1.1.sta00051
|
||||
sel_port-53: 1.1.sta00052
|
||||
sel_port-54: 1.1.sta00053
|
||||
sel_port-55: 1.1.sta00054
|
||||
sel_port-56: 1.1.sta00055
|
||||
sel_port-57: 1.1.sta00056
|
||||
sel_port-58: 1.1.sta00057
|
||||
sel_port-59: 1.1.sta00058
|
||||
sel_port-60: 1.1.sta00059
|
||||
sel_port-61: 1.1.sta00060
|
||||
sel_port-62: 1.1.sta00061
|
||||
sel_port-63: 1.1.sta00062
|
||||
sel_port-64: 1.1.sta00063
|
||||
sel_port-65: 1.1.sta00500
|
||||
sel_port-66: 1.1.sta00501
|
||||
sel_port-67: 1.1.sta00502
|
||||
sel_port-68: 1.1.sta00503
|
||||
sel_port-69: 1.1.sta00504
|
||||
sel_port-70: 1.1.sta00505
|
||||
sel_port-71: 1.1.sta00506
|
||||
sel_port-72: 1.1.sta00507
|
||||
sel_port-73: 1.1.sta00508
|
||||
sel_port-74: 1.1.sta00509
|
||||
sel_port-75: 1.1.sta00510
|
||||
sel_port-76: 1.1.sta00511
|
||||
sel_port-77: 1.1.sta00512
|
||||
sel_port-78: 1.1.sta00513
|
||||
sel_port-79: 1.1.sta00514
|
||||
sel_port-80: 1.1.sta00515
|
||||
sel_port-81: 1.1.sta00516
|
||||
sel_port-82: 1.1.sta00517
|
||||
sel_port-83: 1.1.sta00518
|
||||
sel_port-84: 1.1.sta00519
|
||||
sel_port-85: 1.1.sta00520
|
||||
sel_port-86: 1.1.sta00521
|
||||
sel_port-87: 1.1.sta00522
|
||||
sel_port-88: 1.1.sta00523
|
||||
sel_port-89: 1.1.sta00524
|
||||
sel_port-90: 1.1.sta00525
|
||||
sel_port-91: 1.1.sta00526
|
||||
sel_port-92: 1.1.sta00527
|
||||
sel_port-93: 1.1.sta00528
|
||||
sel_port-94: 1.1.sta00529
|
||||
sel_port-95: 1.1.sta00530
|
||||
sel_port-96: 1.1.sta00531
|
||||
sel_port-97: 1.1.sta00532
|
||||
sel_port-98: 1.1.sta00533
|
||||
sel_port-99: 1.1.sta00534
|
||||
sel_port-100: 1.1.sta00535
|
||||
sel_port-101: 1.1.sta00536
|
||||
sel_port-102: 1.1.sta00537
|
||||
sel_port-103: 1.1.sta00538
|
||||
sel_port-104: 1.1.sta00539
|
||||
sel_port-105: 1.1.sta00540
|
||||
sel_port-106: 1.1.sta00541
|
||||
sel_port-107: 1.1.sta00542
|
||||
sel_port-108: 1.1.sta00543
|
||||
sel_port-109: 1.1.sta00544
|
||||
sel_port-110: 1.1.sta00545
|
||||
sel_port-111: 1.1.sta00546
|
||||
sel_port-112: 1.1.sta00547
|
||||
sel_port-113: 1.1.sta00548
|
||||
sel_port-114: 1.1.sta00549
|
||||
sel_port-115: 1.1.sta00550
|
||||
sel_port-116: 1.1.sta00551
|
||||
sel_port-117: 1.1.sta00552
|
||||
sel_port-118: 1.1.sta00553
|
||||
sel_port-119: 1.1.sta00554
|
||||
sel_port-120: 1.1.sta00555
|
||||
sel_port-121: 1.1.sta00556
|
||||
sel_port-122: 1.1.sta00557
|
||||
sel_port-123: 1.1.sta00558
|
||||
sel_port-124: 1.1.sta00559
|
||||
sel_port-125: 1.1.sta00560
|
||||
sel_port-126: 1.1.sta00561
|
||||
sel_port-127: 1.1.sta00562
|
||||
sel_port-128: 1.1.sta00563
|
||||
sel_port-129: 1.1.sta04000
|
||||
sel_port-130: 1.1.sta04001
|
||||
sel_port-131: 1.1.sta04002
|
||||
sel_port-132: 1.1.sta04003
|
||||
sel_port-133: 1.1.sta04004
|
||||
sel_port-134: 1.1.sta04005
|
||||
sel_port-135: 1.1.sta04006
|
||||
sel_port-136: 1.1.sta04007
|
||||
sel_port-137: 1.1.sta04008
|
||||
sel_port-138: 1.1.sta04009
|
||||
sel_port-139: 1.1.sta04010
|
||||
sel_port-140: 1.1.sta04011
|
||||
sel_port-141: 1.1.sta04012
|
||||
sel_port-142: 1.1.sta04013
|
||||
sel_port-143: 1.1.sta04014
|
||||
sel_port-144: 1.1.sta04015
|
||||
sel_port-145: 1.1.sta04016
|
||||
sel_port-146: 1.1.sta04017
|
||||
sel_port-147: 1.1.sta04018
|
||||
sel_port-148: 1.1.sta04019
|
||||
sel_port-149: 1.1.sta04020
|
||||
sel_port-150: 1.1.sta04021
|
||||
sel_port-151: 1.1.sta04022
|
||||
sel_port-152: 1.1.sta04023
|
||||
sel_port-153: 1.1.sta04024
|
||||
sel_port-154: 1.1.sta04025
|
||||
sel_port-155: 1.1.sta04026
|
||||
sel_port-156: 1.1.sta04027
|
||||
sel_port-157: 1.1.sta04028
|
||||
sel_port-158: 1.1.sta04029
|
||||
sel_port-159: 1.1.sta04030
|
||||
sel_port-160: 1.1.sta04031
|
||||
sel_port-161: 1.1.sta04032
|
||||
sel_port-162: 1.1.sta04033
|
||||
sel_port-163: 1.1.sta04034
|
||||
sel_port-164: 1.1.sta04035
|
||||
sel_port-165: 1.1.sta04036
|
||||
sel_port-166: 1.1.sta04037
|
||||
sel_port-167: 1.1.sta04038
|
||||
sel_port-168: 1.1.sta04039
|
||||
sel_port-169: 1.1.sta04040
|
||||
sel_port-170: 1.1.sta04041
|
||||
sel_port-171: 1.1.sta04042
|
||||
sel_port-172: 1.1.sta04043
|
||||
sel_port-173: 1.1.sta04044
|
||||
sel_port-174: 1.1.sta04045
|
||||
sel_port-175: 1.1.sta04046
|
||||
sel_port-176: 1.1.sta04047
|
||||
sel_port-177: 1.1.sta04048
|
||||
sel_port-178: 1.1.sta04049
|
||||
sel_port-179: 1.1.sta04050
|
||||
sel_port-180: 1.1.sta04051
|
||||
sel_port-181: 1.1.sta04052
|
||||
sel_port-182: 1.1.sta04053
|
||||
sel_port-183: 1.1.sta04054
|
||||
sel_port-184: 1.1.sta04055
|
||||
sel_port-185: 1.1.sta04056
|
||||
sel_port-186: 1.1.sta04057
|
||||
sel_port-187: 1.1.sta04058
|
||||
sel_port-188: 1.1.sta04059
|
||||
sel_port-189: 1.1.sta04060
|
||||
sel_port-190: 1.1.sta04061
|
||||
sel_port-191: 1.1.sta04062
|
||||
sel_port-192: 1.1.sta04063
|
||||
sel_port-193: 1.1.sta04500
|
||||
sel_port-194: 1.1.sta04501
|
||||
sel_port-195: 1.1.sta04502
|
||||
sel_port-196: 1.1.sta04503
|
||||
sel_port-197: 1.1.sta04504
|
||||
sel_port-198: 1.1.sta04505
|
||||
sel_port-199: 1.1.sta04506
|
||||
sel_port-200: 1.1.sta04507
|
||||
sel_port-201: 1.1.sta04508
|
||||
sel_port-202: 1.1.sta04509
|
||||
sel_port-203: 1.1.sta04510
|
||||
sel_port-204: 1.1.sta04511
|
||||
sel_port-205: 1.1.sta04512
|
||||
sel_port-206: 1.1.sta04513
|
||||
sel_port-207: 1.1.sta04514
|
||||
sel_port-208: 1.1.sta04515
|
||||
sel_port-209: 1.1.sta04516
|
||||
sel_port-210: 1.1.sta04517
|
||||
sel_port-211: 1.1.sta04518
|
||||
sel_port-212: 1.1.sta04519
|
||||
sel_port-213: 1.1.sta04520
|
||||
sel_port-214: 1.1.sta04521
|
||||
sel_port-215: 1.1.sta04522
|
||||
sel_port-216: 1.1.sta04523
|
||||
sel_port-217: 1.1.sta04524
|
||||
sel_port-218: 1.1.sta04525
|
||||
sel_port-219: 1.1.sta04526
|
||||
sel_port-220: 1.1.sta04527
|
||||
sel_port-221: 1.1.sta04528
|
||||
sel_port-222: 1.1.sta04529
|
||||
sel_port-223: 1.1.sta04530
|
||||
sel_port-224: 1.1.sta04531
|
||||
sel_port-225: 1.1.sta04532
|
||||
sel_port-226: 1.1.sta04533
|
||||
sel_port-227: 1.1.sta04534
|
||||
sel_port-228: 1.1.sta04535
|
||||
sel_port-229: 1.1.sta04536
|
||||
sel_port-230: 1.1.sta04537
|
||||
sel_port-231: 1.1.sta04538
|
||||
sel_port-232: 1.1.sta04539
|
||||
sel_port-233: 1.1.sta04540
|
||||
sel_port-234: 1.1.sta04541
|
||||
sel_port-235: 1.1.sta04542
|
||||
sel_port-236: 1.1.sta04543
|
||||
sel_port-237: 1.1.sta04544
|
||||
sel_port-238: 1.1.sta04545
|
||||
sel_port-239: 1.1.sta04546
|
||||
sel_port-240: 1.1.sta04547
|
||||
sel_port-241: 1.1.sta04548
|
||||
sel_port-242: 1.1.sta04549
|
||||
sel_port-243: 1.1.sta04550
|
||||
sel_port-244: 1.1.sta04551
|
||||
sel_port-245: 1.1.sta04552
|
||||
sel_port-246: 1.1.sta04553
|
||||
sel_port-247: 1.1.sta04554
|
||||
sel_port-248: 1.1.sta04555
|
||||
sel_port-249: 1.1.sta04556
|
||||
sel_port-250: 1.1.sta04557
|
||||
sel_port-251: 1.1.sta04558
|
||||
sel_port-252: 1.1.sta04559
|
||||
sel_port-253: 1.1.sta04560
|
||||
sel_port-254: 1.1.sta04561
|
||||
sel_port-255: 1.1.sta04562
|
||||
sel_port-256: 1.1.sta04563
|
||||
sel_port-257: 1.1.wlan4
|
||||
sel_port-258: 1.1.wlan5
|
||||
sel_port-259: 1.1.wlan6
|
||||
sel_port-260: 1.1.wlan7
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 2
|
||||
kpi_id: WiFi Capacity
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
batch_size: 1,5,10,20,40,80
|
||||
loop_iter: 1
|
||||
duration: 30000
|
||||
test_groups: 0
|
||||
test_groups_subset: 0
|
||||
protocol: TCP-IPv4
|
||||
dl_rate_sel: Total Download Rate:
|
||||
dl_rate: 1000000000
|
||||
ul_rate_sel: Total Upload Rate:
|
||||
ul_rate: 1000000000
|
||||
prcnt_tcp: 100000
|
||||
l4_endp:
|
||||
pdu_sz: -1
|
||||
mss_sel: 1
|
||||
sock_buffer: 0
|
||||
ip_tos: 0
|
||||
multi_conn: -1
|
||||
min_speed: -1
|
||||
ps_interval: 60-second Running Average
|
||||
fairness: 0
|
||||
naptime: 0
|
||||
before_clear: 5000
|
||||
rpt_timer: 1000
|
||||
try_lower: 0
|
||||
rnd_rate: 1
|
||||
leave_ports_up: 0
|
||||
down_quiesce: 0
|
||||
udp_nat: 1
|
||||
record_other_ssids: 0
|
||||
clear_reset_counters: 0
|
||||
do_pf: 0
|
||||
pf_min_period_dl: 128000
|
||||
pf_min_period_ul: 0
|
||||
pf_max_reconnects: 0
|
||||
use_mix_pdu: 0
|
||||
pdu_prcnt_pps: 1
|
||||
pdu_prcnt_bps: 0
|
||||
pdu_mix_ln-0:
|
||||
show_scan: 1
|
||||
show_golden_3p: 0
|
||||
save_csv: 0
|
||||
show_realtime: 1
|
||||
show_pie: 1
|
||||
show_per_loop_totals: 1
|
||||
show_cx_time: 1
|
||||
show_dhcp: 1
|
||||
show_anqp: 1
|
||||
show_4way: 1
|
||||
show_latency: 1
|
||||
|
||||
|
||||
1
testbeds/nola-basic-15/NOTES.txt
Normal file
1
testbeds/nola-basic-15/NOTES.txt
Normal file
@@ -0,0 +1 @@
|
||||
DUT is an Edge-Core 5410 wifi-5, running TIP OpenWrt.
|
||||
@@ -0,0 +1,2 @@
|
||||
DO_BUGCHECK=1
|
||||
export DO_BUGCHECK
|
||||
32
testbeds/nola-basic-15/OpenWrt-overlay/etc/config/wireless
Normal file
32
testbeds/nola-basic-15/OpenWrt-overlay/etc/config/wireless
Normal file
@@ -0,0 +1,32 @@
|
||||
config wifi-device 'radio0'
|
||||
option type 'mac80211'
|
||||
option channel '36'
|
||||
option hwmode '11a'
|
||||
option path 'soc/1b700000.pci/pci0001:00/0001:00:00.0/0001:01:00.0'
|
||||
option htmode 'VHT80'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio0'
|
||||
option device 'radio0'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-5gl'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
|
||||
config wifi-device 'radio1'
|
||||
option type 'mac80211'
|
||||
option channel '11'
|
||||
option hwmode '11g'
|
||||
option path 'soc/1b900000.pci/pci0002:00/0002:00:00.0/0002:01:00.0'
|
||||
option htmode 'HT20'
|
||||
option disabled '0'
|
||||
|
||||
config wifi-iface 'default_radio1'
|
||||
option device 'radio1'
|
||||
option network 'lan'
|
||||
option mode 'ap'
|
||||
option ssid 'Default-SSID-2g'
|
||||
option encryption 'psk-mixed'
|
||||
option key '12345678'
|
||||
|
||||
111
testbeds/nola-basic-15/ap-auto.txt
Normal file
111
testbeds/nola-basic-15/ap-auto.txt
Normal file
@@ -0,0 +1,111 @@
|
||||
[BLANK]
|
||||
sel_port-0: 1.1.sta00500
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: AP Auto
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 1
|
||||
skip_5: 1
|
||||
dut5b-0: NA
|
||||
dut5-0: TIP Default-SSID-5gl
|
||||
dut2-0: TIP Default-SSID-2g
|
||||
dut5b-1: NA
|
||||
dut5-1: NA
|
||||
dut2-1: NA
|
||||
dut5b-2: NA
|
||||
dut5-2: NA
|
||||
dut2-2: NA
|
||||
spatial_streams: AUTO
|
||||
bandw_options: AUTO
|
||||
modes: Auto
|
||||
upstream_port: 1.1.2 eth2
|
||||
operator:
|
||||
mconn: 1
|
||||
tos: 0
|
||||
vid_buf: 1000000
|
||||
vid_speed: 700000
|
||||
reset_stall_thresh_udp_dl: 9600
|
||||
reset_stall_thresh_udp_ul: 9600
|
||||
reset_stall_thresh_tcp_dl: 9600
|
||||
reset_stall_thresh_tcp_ul: 9600
|
||||
reset_stall_thresh_l4: 100000
|
||||
reset_stall_thresh_voip: 20000
|
||||
stab_udp_dl_min: 56000
|
||||
stab_udp_dl_max: 0
|
||||
stab_udp_ul_min: 56000
|
||||
stab_udp_ul_max: 0
|
||||
stab_tcp_dl_min: 500000
|
||||
stab_tcp_dl_max: 0
|
||||
stab_tcp_ul_min: 500000
|
||||
stab_tcp_ul_max: 0
|
||||
dl_speed: 85%
|
||||
ul_speed: 85%
|
||||
max_stations_2: 129
|
||||
max_stations_5: 131
|
||||
max_stations_dual: 260
|
||||
lt_sta: 2
|
||||
voip_calls: 0
|
||||
lt_dur: 3600
|
||||
reset_dur: 600
|
||||
lt_gi: 30
|
||||
dur20: 20
|
||||
hunt_retries: 1
|
||||
cap_dl: 1
|
||||
cap_ul: 0
|
||||
cap_use_pkt_sizes: 0
|
||||
stability_reset_radios: 0
|
||||
pkt_loss_thresh: 10000
|
||||
frame_sizes: 200, 512, 1024, MTU
|
||||
capacities: 1, 2, 5, 10, 20, 40, 64, 128, 256, 512, 1024, MAX
|
||||
radio2-0: 1.1.4 wiphy0
|
||||
radio2-1: 1.1.0 wiphy2
|
||||
radio2-2: 1.1.0 wiphy4
|
||||
radio5-0: 1.1.5 wiphy3
|
||||
radio5-1: 1.1.7 wiphy5
|
||||
radio5-2: 1.1.9 wiphy6
|
||||
radio5-3: 1.1.9 wiphy7
|
||||
radio5-4: 1.1.0 wiphy1
|
||||
radio5-5:
|
||||
basic_cx: 1
|
||||
tput: 0
|
||||
dual_band_tput: 0
|
||||
capacity: 0
|
||||
longterm: 0
|
||||
mix_stability: 0
|
||||
loop_iter: 1
|
||||
reset_batch_size: 1
|
||||
reset_duration_min: 10000
|
||||
reset_duration_max: 60000
|
||||
|
||||
# Configure pass/fail metrics for this testbed.
|
||||
pf_text0: 2.4 DL 200 70Mbps
|
||||
pf_text1: 2.4 DL 512 110Mbps
|
||||
pf_text2: 2.4 DL 1024 115Mbps
|
||||
pf_text3: 2.4 DL MTU 120Mbps
|
||||
pf_text4:
|
||||
pf_text5: 2.4 UL 200 88Mbps
|
||||
pf_text6: 2.4 UL 512 106Mbps
|
||||
pf_text7: 2.4 UL 1024 115Mbps
|
||||
pf_text8: 2.4 UL MTU 120Mbps
|
||||
pf_text9:
|
||||
pf_text10: 5 DL 200 72Mbps
|
||||
pf_text11: 5 DL 512 185Mbps
|
||||
pf_text12: 5 DL 1024 370Mbps
|
||||
pf_text13: 5 DL MTU 525Mbps
|
||||
pf_text14:
|
||||
pf_text15: 5 UL 200 90Mbps
|
||||
pf_text16: 5 UL 512 230Mbps
|
||||
pf_text17: 5 UL 1024 450Mbps
|
||||
pf_text18: 5 UL MTU 630Mbps
|
||||
|
||||
# Tune connect-time thresholds.
|
||||
cx_prcnt: 950000
|
||||
cx_open_thresh: 35
|
||||
cx_psk_thresh: 75
|
||||
cx_1x_thresh: 130
|
||||
|
||||
|
||||
55
testbeds/nola-basic-15/dpt-pkt-sz.txt
Normal file
55
testbeds/nola-basic-15/dpt-pkt-sz.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
[BLANK]
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 0
|
||||
kpi_id: Dataplane
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 0
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
selected_dut: TIP
|
||||
duration: 15000
|
||||
traffic_port: 1.1.136 sta00500
|
||||
upstream_port: 1.1.2 eth2
|
||||
path_loss: 10
|
||||
speed: 85%
|
||||
speed2: 0Kbps
|
||||
min_rssi_bound: -150
|
||||
max_rssi_bound: 0
|
||||
channels: AUTO
|
||||
modes: Auto
|
||||
pkts: 60;142;256;512;1024;MTU;4000
|
||||
spatial_streams: AUTO
|
||||
security_options: AUTO
|
||||
bandw_options: AUTO
|
||||
traffic_types: UDP
|
||||
directions: DUT Transmit;DUT Receive
|
||||
txo_preamble: OFDM
|
||||
txo_mcs: 0 CCK, OFDM, HT, VHT
|
||||
txo_retries: No Retry
|
||||
txo_sgi: OFF
|
||||
txo_txpower: 15
|
||||
attenuator: 0
|
||||
attenuator2: 0
|
||||
attenuator_mod: 255
|
||||
attenuator_mod2: 255
|
||||
attenuations: 0..+50..950
|
||||
attenuations2: 0..+50..950
|
||||
chamber: 0
|
||||
tt_deg: 0..+45..359
|
||||
cust_pkt_sz:
|
||||
show_3s: 0
|
||||
show_ll_graphs: 1
|
||||
show_gp_graphs: 1
|
||||
show_1m: 1
|
||||
pause_iter: 0
|
||||
show_realtime: 1
|
||||
operator:
|
||||
mconn: 1
|
||||
mpkt: 1000
|
||||
tos: 0
|
||||
loop_iterations: 1
|
||||
|
||||
|
||||
71
testbeds/nola-basic-15/run_basic.bash
Executable file
71
testbeds/nola-basic-15/run_basic.bash
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Run one test
|
||||
# DEFAULT_ENABLE=0 DO_SHORT_AP_STABILITY_RESET=1 ./basic_regression.bash
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run all tests
|
||||
./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
83
testbeds/nola-basic-15/run_basic_fast.bash
Executable file
83
testbeds/nola-basic-15/run_basic_fast.bash
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage of this script
|
||||
# DUT_SW_VER=my-build-id ./run_basic.bash
|
||||
#
|
||||
# Other DUT variables in test_bed_cfg.bash may also be over-ridden,
|
||||
# including those below. See LANforge 'add_dut' CLI command for
|
||||
# details on what these variables are for.
|
||||
|
||||
# DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
# DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
# DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
# DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
|
||||
#set -x
|
||||
|
||||
DO_SHORT_AP_BASIC_CX=${DO_SHORT_AP_BASIC_CX:-1}
|
||||
DO_WCT_BI=${DO_WCT_BI:-1}
|
||||
|
||||
export DO_SHORT_AP_BASI_CX DO_WCT_BI
|
||||
|
||||
# Source config file
|
||||
. test_bed_cfg.bash
|
||||
|
||||
echo "<b>Top wlan-testing git commits.</b><br><pre>" > ./tmp_gitlog.html
|
||||
git log -n 8 --oneline >> ./tmp_gitlog.html
|
||||
echo "</pre>" >> ./tmp_gitlog.html
|
||||
|
||||
NOTES_HTML=`pwd`/testbed_notes.html
|
||||
GITLOG=`pwd`/tmp_gitlog.html
|
||||
|
||||
if [ -d "../../../wlan-ap" ]
|
||||
then
|
||||
DUTGITLOG=/tmp/${DUT_SW_VER}_dut_gitlog.html
|
||||
echo "<b>Top wlan-ap git commits.</b><br><pre>" > $DUTGITLOG
|
||||
(cd ../../../wlan-ap && git log -n 8 --oneline $DUT_SW_VER >> $DUTGITLOG && cd -)
|
||||
echo "</pre>" >> $DUTGITLOG
|
||||
export DUTGITLOG
|
||||
fi
|
||||
export NOTES_HTML GITLOG
|
||||
|
||||
# TODO: Copy config file to cloud controller and restart it
|
||||
# and/or do other config to make it work.
|
||||
|
||||
# Change to scripts dir
|
||||
cd ../../lanforge/lanforge-scripts/gui
|
||||
|
||||
# Where to place results. basic_regression.bash will use this variable.
|
||||
RSLTS_DIR=/tmp/nola-${NOLA_NUM}-basic-regression-fast
|
||||
export RSLTS_DIR
|
||||
|
||||
# Clean any existing data from the results dir
|
||||
rm -fr $RSLTS_DIR
|
||||
|
||||
# Clean up old DHCP leases
|
||||
../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli clear_port_counters ALL ALL ALL dhcp_leases"
|
||||
|
||||
# Run a subset of available tests
|
||||
# See 'Tests to run' comment in basic_regression.bash for available options.
|
||||
|
||||
#DEFAULT_ENABLE=0 WCT_DURATION=20s DO_SHORT_AP_BASIC_CX=1 DO_WCT_BI=1 ./basic_regression.bash
|
||||
|
||||
DEFAULT_ENABLE=0 WCT_DURATION=20s ./basic_regression.bash
|
||||
|
||||
|
||||
# Run all tests
|
||||
#./basic_regression.bash
|
||||
|
||||
cd -
|
||||
|
||||
if [ ! -d $RSLTS_DIR ]
|
||||
then
|
||||
echo "Test did not run as expected, $RSLTS_DIR not found."
|
||||
mkdir -p $RSLTS_DIR
|
||||
fi
|
||||
|
||||
if [ -f ${MY_TMPDIR}/basic_regression_log.txt ]
|
||||
then
|
||||
echo "Found ${MY_TMPDIR}/basic_regression_log.txt, moving into $RSLTS_DIR"
|
||||
mv ${MY_TMPDIR}/basic_regression_log.txt $RSLTS_DIR/
|
||||
fi
|
||||
|
||||
echo "See results in $RSLTS_DIR"
|
||||
11
testbeds/nola-basic-15/scenario.txt
Normal file
11
testbeds/nola-basic-15/scenario.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-1' NA wiphy0,AUTO -1
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-2' NA wiphy1,AUTO -1
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 64 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth3,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
11
testbeds/nola-basic-15/scenario_small.txt
Normal file
11
testbeds/nola-basic-15/scenario_small.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy0,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy1,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-1' NA wiphy2,AUTO -1
|
||||
profile_link 1.1 STA-AC 24 'DUT: TIP Radio-2' NA wiphy3,AUTO -1
|
||||
profile_link 1.1 upstream-dhcp 1 NA NA eth2,AUTO -1
|
||||
profile_link 1.1 uplink-nat 1 'DUT: upstream LAN 10.28.2.1/24' NA eth3,eth2 -1
|
||||
profile_link 1.1 STA-AC 1 'DUT: TIP Radio-2' NA ALL-AX,AUTO -1
|
||||
dut ecw5410 393 148
|
||||
dut TIP 395 295
|
||||
dut upstream 306 62
|
||||
resource 1.1 132 218
|
||||
62
testbeds/nola-basic-15/test_bed_cfg.bash
Normal file
62
testbeds/nola-basic-15/test_bed_cfg.bash
Normal file
@@ -0,0 +1,62 @@
|
||||
# Example test-bed configuration
|
||||
|
||||
# Scripts should source this file to set the default environment variables
|
||||
# and then override the variables specific to their test case (and it can be done
|
||||
# in opposite order for same results
|
||||
#
|
||||
# After the env variables are set,
|
||||
# call the 'lanforge/lanforge-scripts/gui/basic_regression.bash'
|
||||
# from the directory in which it resides.
|
||||
|
||||
NOLA_NUM=15
|
||||
|
||||
PWD=`pwd`
|
||||
AP_SERIAL=${AP_SERIAL:-/dev/ttyAP4}
|
||||
LF_SERIAL=${LF_SERIAL:-/dev/ttyLF4}
|
||||
LFPASSWD=${LFPASSWD:-lanforge} # Root password on LANforge machine
|
||||
AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-$PWD/ap-auto.txt}
|
||||
WCT_CFG_FILE=${WCT_CFG_FILE:-$PWD/wct.txt}
|
||||
DPT_CFG_FILE=${DPT_CFG_FILE:-$PWD/dpt-pkt-sz.txt}
|
||||
SCENARIO_CFG_FILE=${SCENARIO_CFG_FILE:-$PWD/scenario.txt}
|
||||
|
||||
# Default to enable cloud-sdk for this testbed, cloud-sdk is at IP addr below
|
||||
#USE_CLOUD_SDK=${USE_CLOUD_SDK:-192.168.100.164}
|
||||
|
||||
# LANforge target machine
|
||||
LFMANAGER=${LFMANAGER:-lf15}
|
||||
|
||||
# LANforge GUI machine (may often be same as target)
|
||||
GMANAGER=${GMANAGER:-lf15}
|
||||
GMPORT=${GMPORT:-3990}
|
||||
MY_TMPDIR=${MY_TMPDIR:-/tmp}
|
||||
|
||||
# Test configuration (10 minutes by default, in interest of time)
|
||||
STABILITY_DURATION=${STABILITY_DURATION:-600}
|
||||
TEST_RIG_ID=${TEST_RIG_ID:-NOLA-${NOLA_NUM}-Basic}
|
||||
|
||||
# DUT configuration
|
||||
DUT_FLAGS=${DUT_FLAGS:-0x22} # AP, WPA-PSK
|
||||
#DUT_FLAGS=${DUT_FLAGS:-0x2} # AP, Open
|
||||
DUT_FLAGS_MASK=${DUT_FLAGS_MASK:-0xFFFF}
|
||||
DUT_SW_VER=${DUT_SW_VER:-OpenWrt-TIP}
|
||||
DUT_HW_VER=ECW5410
|
||||
DUT_MODEL=ECW5410
|
||||
DUT_SERIAL=${DUT_SERIAL:-NA}
|
||||
DUT_SSID1=${DUT_SSID1:-Default-SSID-2g}
|
||||
DUT_SSID2=${DUT_SSID2:-Default-SSID-5gl}
|
||||
DUT_PASSWD1=${DUT_PASSWD1:-12345678}
|
||||
DUT_PASSWD2=${DUT_PASSWD2:-12345678}
|
||||
# 2.4 radio
|
||||
DUT_BSSID1=68:21:5F:D2:F7:26
|
||||
# 5Ghz radio
|
||||
DUT_BSSID2=68:21:5F:D2:F7:27
|
||||
|
||||
export LF_SERIAL AP_SERIAL LFPASSWD
|
||||
export AP_AUTO_CFG_FILE WCT_CFG_FILE DPT_CFG_FILE SCENARIO_CFG_FILE
|
||||
export LFMANAGER GMANAGER GMPORT MY_TMPDIR
|
||||
export STABILITY_DURATION TEST_RIG_ID
|
||||
export DUT_FLAGS DUT_FLAGS_MASK DUT_SW_VER DUT_HW_VER DUT_MODEL
|
||||
export DUT_SERIAL DUT_SSID1 DUT_SSID2 DUT_SSID3
|
||||
export DUT_PASSWD1 DUT_PASSWD2 DUT_PASSWD3
|
||||
export DUT_BSSID1 DUT_BSSID2 DUT_BSSID3
|
||||
export USE_CLOUD_SDK
|
||||
323
testbeds/nola-basic-15/wct.txt
Normal file
323
testbeds/nola-basic-15/wct.txt
Normal file
@@ -0,0 +1,323 @@
|
||||
[BLANK]
|
||||
sel_port-0: 1.1.eth2
|
||||
sel_port-1: 1.1.sta00000
|
||||
sel_port-2: 1.1.sta00001
|
||||
sel_port-3: 1.1.sta00002
|
||||
sel_port-4: 1.1.sta00003
|
||||
sel_port-5: 1.1.sta00004
|
||||
sel_port-6: 1.1.sta00005
|
||||
sel_port-7: 1.1.sta00006
|
||||
sel_port-8: 1.1.sta00007
|
||||
sel_port-9: 1.1.sta00008
|
||||
sel_port-10: 1.1.sta00009
|
||||
sel_port-11: 1.1.sta00010
|
||||
sel_port-12: 1.1.sta00011
|
||||
sel_port-13: 1.1.sta00012
|
||||
sel_port-14: 1.1.sta00013
|
||||
sel_port-15: 1.1.sta00014
|
||||
sel_port-16: 1.1.sta00015
|
||||
sel_port-17: 1.1.sta00016
|
||||
sel_port-18: 1.1.sta00017
|
||||
sel_port-19: 1.1.sta00018
|
||||
sel_port-20: 1.1.sta00019
|
||||
sel_port-21: 1.1.sta00020
|
||||
sel_port-22: 1.1.sta00021
|
||||
sel_port-23: 1.1.sta00022
|
||||
sel_port-24: 1.1.sta00023
|
||||
sel_port-25: 1.1.sta00024
|
||||
sel_port-26: 1.1.sta00025
|
||||
sel_port-27: 1.1.sta00026
|
||||
sel_port-28: 1.1.sta00027
|
||||
sel_port-29: 1.1.sta00028
|
||||
sel_port-30: 1.1.sta00029
|
||||
sel_port-31: 1.1.sta00030
|
||||
sel_port-32: 1.1.sta00031
|
||||
sel_port-33: 1.1.sta00032
|
||||
sel_port-34: 1.1.sta00033
|
||||
sel_port-35: 1.1.sta00034
|
||||
sel_port-36: 1.1.sta00035
|
||||
sel_port-37: 1.1.sta00036
|
||||
sel_port-38: 1.1.sta00037
|
||||
sel_port-39: 1.1.sta00038
|
||||
sel_port-40: 1.1.sta00039
|
||||
sel_port-41: 1.1.sta00040
|
||||
sel_port-42: 1.1.sta00041
|
||||
sel_port-43: 1.1.sta00042
|
||||
sel_port-44: 1.1.sta00043
|
||||
sel_port-45: 1.1.sta00044
|
||||
sel_port-46: 1.1.sta00045
|
||||
sel_port-47: 1.1.sta00046
|
||||
sel_port-48: 1.1.sta00047
|
||||
sel_port-49: 1.1.sta00048
|
||||
sel_port-50: 1.1.sta00049
|
||||
sel_port-51: 1.1.sta00050
|
||||
sel_port-52: 1.1.sta00051
|
||||
sel_port-53: 1.1.sta00052
|
||||
sel_port-54: 1.1.sta00053
|
||||
sel_port-55: 1.1.sta00054
|
||||
sel_port-56: 1.1.sta00055
|
||||
sel_port-57: 1.1.sta00056
|
||||
sel_port-58: 1.1.sta00057
|
||||
sel_port-59: 1.1.sta00058
|
||||
sel_port-60: 1.1.sta00059
|
||||
sel_port-61: 1.1.sta00060
|
||||
sel_port-62: 1.1.sta00061
|
||||
sel_port-63: 1.1.sta00062
|
||||
sel_port-64: 1.1.sta00063
|
||||
sel_port-65: 1.1.sta00500
|
||||
sel_port-66: 1.1.sta00501
|
||||
sel_port-67: 1.1.sta00502
|
||||
sel_port-68: 1.1.sta00503
|
||||
sel_port-69: 1.1.sta00504
|
||||
sel_port-70: 1.1.sta00505
|
||||
sel_port-71: 1.1.sta00506
|
||||
sel_port-72: 1.1.sta00507
|
||||
sel_port-73: 1.1.sta00508
|
||||
sel_port-74: 1.1.sta00509
|
||||
sel_port-75: 1.1.sta00510
|
||||
sel_port-76: 1.1.sta00511
|
||||
sel_port-77: 1.1.sta00512
|
||||
sel_port-78: 1.1.sta00513
|
||||
sel_port-79: 1.1.sta00514
|
||||
sel_port-80: 1.1.sta00515
|
||||
sel_port-81: 1.1.sta00516
|
||||
sel_port-82: 1.1.sta00517
|
||||
sel_port-83: 1.1.sta00518
|
||||
sel_port-84: 1.1.sta00519
|
||||
sel_port-85: 1.1.sta00520
|
||||
sel_port-86: 1.1.sta00521
|
||||
sel_port-87: 1.1.sta00522
|
||||
sel_port-88: 1.1.sta00523
|
||||
sel_port-89: 1.1.sta00524
|
||||
sel_port-90: 1.1.sta00525
|
||||
sel_port-91: 1.1.sta00526
|
||||
sel_port-92: 1.1.sta00527
|
||||
sel_port-93: 1.1.sta00528
|
||||
sel_port-94: 1.1.sta00529
|
||||
sel_port-95: 1.1.sta00530
|
||||
sel_port-96: 1.1.sta00531
|
||||
sel_port-97: 1.1.sta00532
|
||||
sel_port-98: 1.1.sta00533
|
||||
sel_port-99: 1.1.sta00534
|
||||
sel_port-100: 1.1.sta00535
|
||||
sel_port-101: 1.1.sta00536
|
||||
sel_port-102: 1.1.sta00537
|
||||
sel_port-103: 1.1.sta00538
|
||||
sel_port-104: 1.1.sta00539
|
||||
sel_port-105: 1.1.sta00540
|
||||
sel_port-106: 1.1.sta00541
|
||||
sel_port-107: 1.1.sta00542
|
||||
sel_port-108: 1.1.sta00543
|
||||
sel_port-109: 1.1.sta00544
|
||||
sel_port-110: 1.1.sta00545
|
||||
sel_port-111: 1.1.sta00546
|
||||
sel_port-112: 1.1.sta00547
|
||||
sel_port-113: 1.1.sta00548
|
||||
sel_port-114: 1.1.sta00549
|
||||
sel_port-115: 1.1.sta00550
|
||||
sel_port-116: 1.1.sta00551
|
||||
sel_port-117: 1.1.sta00552
|
||||
sel_port-118: 1.1.sta00553
|
||||
sel_port-119: 1.1.sta00554
|
||||
sel_port-120: 1.1.sta00555
|
||||
sel_port-121: 1.1.sta00556
|
||||
sel_port-122: 1.1.sta00557
|
||||
sel_port-123: 1.1.sta00558
|
||||
sel_port-124: 1.1.sta00559
|
||||
sel_port-125: 1.1.sta00560
|
||||
sel_port-126: 1.1.sta00561
|
||||
sel_port-127: 1.1.sta00562
|
||||
sel_port-128: 1.1.sta00563
|
||||
sel_port-129: 1.1.sta04000
|
||||
sel_port-130: 1.1.sta04001
|
||||
sel_port-131: 1.1.sta04002
|
||||
sel_port-132: 1.1.sta04003
|
||||
sel_port-133: 1.1.sta04004
|
||||
sel_port-134: 1.1.sta04005
|
||||
sel_port-135: 1.1.sta04006
|
||||
sel_port-136: 1.1.sta04007
|
||||
sel_port-137: 1.1.sta04008
|
||||
sel_port-138: 1.1.sta04009
|
||||
sel_port-139: 1.1.sta04010
|
||||
sel_port-140: 1.1.sta04011
|
||||
sel_port-141: 1.1.sta04012
|
||||
sel_port-142: 1.1.sta04013
|
||||
sel_port-143: 1.1.sta04014
|
||||
sel_port-144: 1.1.sta04015
|
||||
sel_port-145: 1.1.sta04016
|
||||
sel_port-146: 1.1.sta04017
|
||||
sel_port-147: 1.1.sta04018
|
||||
sel_port-148: 1.1.sta04019
|
||||
sel_port-149: 1.1.sta04020
|
||||
sel_port-150: 1.1.sta04021
|
||||
sel_port-151: 1.1.sta04022
|
||||
sel_port-152: 1.1.sta04023
|
||||
sel_port-153: 1.1.sta04024
|
||||
sel_port-154: 1.1.sta04025
|
||||
sel_port-155: 1.1.sta04026
|
||||
sel_port-156: 1.1.sta04027
|
||||
sel_port-157: 1.1.sta04028
|
||||
sel_port-158: 1.1.sta04029
|
||||
sel_port-159: 1.1.sta04030
|
||||
sel_port-160: 1.1.sta04031
|
||||
sel_port-161: 1.1.sta04032
|
||||
sel_port-162: 1.1.sta04033
|
||||
sel_port-163: 1.1.sta04034
|
||||
sel_port-164: 1.1.sta04035
|
||||
sel_port-165: 1.1.sta04036
|
||||
sel_port-166: 1.1.sta04037
|
||||
sel_port-167: 1.1.sta04038
|
||||
sel_port-168: 1.1.sta04039
|
||||
sel_port-169: 1.1.sta04040
|
||||
sel_port-170: 1.1.sta04041
|
||||
sel_port-171: 1.1.sta04042
|
||||
sel_port-172: 1.1.sta04043
|
||||
sel_port-173: 1.1.sta04044
|
||||
sel_port-174: 1.1.sta04045
|
||||
sel_port-175: 1.1.sta04046
|
||||
sel_port-176: 1.1.sta04047
|
||||
sel_port-177: 1.1.sta04048
|
||||
sel_port-178: 1.1.sta04049
|
||||
sel_port-179: 1.1.sta04050
|
||||
sel_port-180: 1.1.sta04051
|
||||
sel_port-181: 1.1.sta04052
|
||||
sel_port-182: 1.1.sta04053
|
||||
sel_port-183: 1.1.sta04054
|
||||
sel_port-184: 1.1.sta04055
|
||||
sel_port-185: 1.1.sta04056
|
||||
sel_port-186: 1.1.sta04057
|
||||
sel_port-187: 1.1.sta04058
|
||||
sel_port-188: 1.1.sta04059
|
||||
sel_port-189: 1.1.sta04060
|
||||
sel_port-190: 1.1.sta04061
|
||||
sel_port-191: 1.1.sta04062
|
||||
sel_port-192: 1.1.sta04063
|
||||
sel_port-193: 1.1.sta04500
|
||||
sel_port-194: 1.1.sta04501
|
||||
sel_port-195: 1.1.sta04502
|
||||
sel_port-196: 1.1.sta04503
|
||||
sel_port-197: 1.1.sta04504
|
||||
sel_port-198: 1.1.sta04505
|
||||
sel_port-199: 1.1.sta04506
|
||||
sel_port-200: 1.1.sta04507
|
||||
sel_port-201: 1.1.sta04508
|
||||
sel_port-202: 1.1.sta04509
|
||||
sel_port-203: 1.1.sta04510
|
||||
sel_port-204: 1.1.sta04511
|
||||
sel_port-205: 1.1.sta04512
|
||||
sel_port-206: 1.1.sta04513
|
||||
sel_port-207: 1.1.sta04514
|
||||
sel_port-208: 1.1.sta04515
|
||||
sel_port-209: 1.1.sta04516
|
||||
sel_port-210: 1.1.sta04517
|
||||
sel_port-211: 1.1.sta04518
|
||||
sel_port-212: 1.1.sta04519
|
||||
sel_port-213: 1.1.sta04520
|
||||
sel_port-214: 1.1.sta04521
|
||||
sel_port-215: 1.1.sta04522
|
||||
sel_port-216: 1.1.sta04523
|
||||
sel_port-217: 1.1.sta04524
|
||||
sel_port-218: 1.1.sta04525
|
||||
sel_port-219: 1.1.sta04526
|
||||
sel_port-220: 1.1.sta04527
|
||||
sel_port-221: 1.1.sta04528
|
||||
sel_port-222: 1.1.sta04529
|
||||
sel_port-223: 1.1.sta04530
|
||||
sel_port-224: 1.1.sta04531
|
||||
sel_port-225: 1.1.sta04532
|
||||
sel_port-226: 1.1.sta04533
|
||||
sel_port-227: 1.1.sta04534
|
||||
sel_port-228: 1.1.sta04535
|
||||
sel_port-229: 1.1.sta04536
|
||||
sel_port-230: 1.1.sta04537
|
||||
sel_port-231: 1.1.sta04538
|
||||
sel_port-232: 1.1.sta04539
|
||||
sel_port-233: 1.1.sta04540
|
||||
sel_port-234: 1.1.sta04541
|
||||
sel_port-235: 1.1.sta04542
|
||||
sel_port-236: 1.1.sta04543
|
||||
sel_port-237: 1.1.sta04544
|
||||
sel_port-238: 1.1.sta04545
|
||||
sel_port-239: 1.1.sta04546
|
||||
sel_port-240: 1.1.sta04547
|
||||
sel_port-241: 1.1.sta04548
|
||||
sel_port-242: 1.1.sta04549
|
||||
sel_port-243: 1.1.sta04550
|
||||
sel_port-244: 1.1.sta04551
|
||||
sel_port-245: 1.1.sta04552
|
||||
sel_port-246: 1.1.sta04553
|
||||
sel_port-247: 1.1.sta04554
|
||||
sel_port-248: 1.1.sta04555
|
||||
sel_port-249: 1.1.sta04556
|
||||
sel_port-250: 1.1.sta04557
|
||||
sel_port-251: 1.1.sta04558
|
||||
sel_port-252: 1.1.sta04559
|
||||
sel_port-253: 1.1.sta04560
|
||||
sel_port-254: 1.1.sta04561
|
||||
sel_port-255: 1.1.sta04562
|
||||
sel_port-256: 1.1.sta04563
|
||||
sel_port-257: 1.1.wlan4
|
||||
sel_port-258: 1.1.wlan5
|
||||
sel_port-259: 1.1.wlan6
|
||||
sel_port-260: 1.1.wlan7
|
||||
show_events: 1
|
||||
show_log: 0
|
||||
port_sorting: 2
|
||||
kpi_id: WiFi Capacity
|
||||
bg: 0xE0ECF8
|
||||
test_rig:
|
||||
show_scan: 1
|
||||
auto_helper: 1
|
||||
skip_2: 0
|
||||
skip_5: 0
|
||||
batch_size: 1,5,10,20,40,80
|
||||
loop_iter: 1
|
||||
duration: 30000
|
||||
test_groups: 0
|
||||
test_groups_subset: 0
|
||||
protocol: TCP-IPv4
|
||||
dl_rate_sel: Total Download Rate:
|
||||
dl_rate: 1000000000
|
||||
ul_rate_sel: Total Upload Rate:
|
||||
ul_rate: 1000000000
|
||||
prcnt_tcp: 100000
|
||||
l4_endp:
|
||||
pdu_sz: -1
|
||||
mss_sel: 1
|
||||
sock_buffer: 0
|
||||
ip_tos: 0
|
||||
multi_conn: -1
|
||||
min_speed: -1
|
||||
ps_interval: 60-second Running Average
|
||||
fairness: 0
|
||||
naptime: 0
|
||||
before_clear: 5000
|
||||
rpt_timer: 1000
|
||||
try_lower: 0
|
||||
rnd_rate: 1
|
||||
leave_ports_up: 0
|
||||
down_quiesce: 0
|
||||
udp_nat: 1
|
||||
record_other_ssids: 0
|
||||
clear_reset_counters: 0
|
||||
do_pf: 0
|
||||
pf_min_period_dl: 128000
|
||||
pf_min_period_ul: 0
|
||||
pf_max_reconnects: 0
|
||||
use_mix_pdu: 0
|
||||
pdu_prcnt_pps: 1
|
||||
pdu_prcnt_bps: 0
|
||||
pdu_mix_ln-0:
|
||||
show_scan: 1
|
||||
show_golden_3p: 0
|
||||
save_csv: 0
|
||||
show_realtime: 1
|
||||
show_pie: 1
|
||||
show_per_loop_totals: 1
|
||||
show_cx_time: 1
|
||||
show_dhcp: 1
|
||||
show_anqp: 1
|
||||
show_4way: 1
|
||||
show_latency: 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user