merge with master

This commit is contained in:
anjali
2021-07-15 14:41:43 +05:30
83 changed files with 9050 additions and 50 deletions

View File

@@ -227,6 +227,10 @@ jobs:
name: allure-report
path: allure-report
# doing this to be able to aggregate multiple reports together later on
- name: copy results into report
run: cp -r allure-results allure-report/results
- name: copy new report
run: |
mkdir -p reports/interop/interop

View File

@@ -305,15 +305,19 @@ jobs:
with:
name: allure-report-${{ matrix.testbed }}
path: allure-report
# doing this to be able to aggregate multiple reports together later on
- name: copy results into report
run: cp -r allure-results allure-report/results
- name: copy new report
if: ${{ (github.event.inputs.marker_expression || 'sanity') == 'sanity and not interop' }}
if: ${{ (github.event.inputs.marker_expression || 'sanity and not interop') == 'sanity and not interop' }}
run: |
mkdir -p reports/sanity/${{ matrix.testbed }}
cp -Tr allure-report reports/sanity/${{ matrix.testbed }}/${{ github.run_number }}
- name: update latest symlink
if: ${{ (github.event.inputs.marker_expression || 'sanity') == 'sanity and not interop' }}
if: ${{ (github.event.inputs.marker_expression || 'sanity and not interop') == 'sanity and not interop' }}
working-directory: reports/sanity/${{ matrix.testbed }}
run: ln -fns ${{ github.run_number }} latest

View File

@@ -0,0 +1,133 @@
name: Update uCentral
defaults:
run:
shell: bash
env:
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 }}
# DigiCert certs
DIGICERT_CERT: ${{ secrets.DIGICERT_CERT }}
DIGICERT_KEY: ${{ secrets.DIGICERT_KEY }}
# https://stackoverflow.com/questions/59977364/github-actions-how-use-strategy-matrix-with-script
testbeds: '[
{
"namespace": "qa01",
"ucentralgw_version": "master",
"ucentralsec_version": "main",
"ucentralgwui_version": "main"
},
{
"namespace": "dev01",
"ucentralgw_version": "master",
"ucentralsec_version": "main",
"ucentralgwui_version": "main"
}
]'
on:
workflow_dispatch: {}
jobs:
generate-matrix:
name: Generate matrix for build
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: generate-matrix
id: set-matrix
run: |
echo '::set-output name=matrix::{"include":${{ env.testbeds }}}'
deploy:
name: Update uCentral instances
runs-on: ubuntu-latest
needs: [ generate-matrix ]
strategy:
matrix: ${{ fromJson( needs.generate-matrix.outputs.matrix ) }}
fail-fast: false
steps:
- name: Checkout uCentral assembly chart repo
uses: actions/checkout@v2
with:
path: wlan-cloud-ucentral-deploy
repository: Telecominfraproject/wlan-cloud-ucentral-deploy
- name: Checkout Helm values repo
uses: actions/checkout@v2
with:
path: toolsmith
repository: Telecominfraproject/Toolsmith
token: ${{ secrets.PAT_TOKEN }}
- name: Prepare certificates from secrets
run: |
echo "${{ env.DIGICERT_CERT }}" | base64 -d > cert.pem
echo "${{ env.DIGICERT_KEY }}" | base64 -d > key.pem
- name: Fetch kubeconfig
run: |
aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }}
- name: Deploy uCentralGW
working-directory: wlan-cloud-ucentral-deploy/chart
run: |
helm plugin install https://github.com/aslafy-z/helm-git --version 0.10.0
sed -i '/wlan-cloud-ucentralgw@/s/ref=.*/ref='${{ matrix.ucentralgw_version }}'\"/g' Chart.yaml
sed -i '/wlan-cloud-ucentralgw-ui@/s/ref=.*/ref='${{ matrix.ucentralgwui_version }}'\"/g' Chart.yaml
sed -i '/wlan-cloud-ucentralsec@/s/ref=.*/ref='${{ matrix.ucentralsec_version }}'\"/g' Chart.yaml
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm dependency update
helm upgrade --install --create-namespace \
--namespace ucentral-${{ matrix.namespace }} --wait --timeout 20m \
-f ../../toolsmith/helm-values/assembly-ucentral/values.ucentral-${{ matrix.namespace }}.yaml \
--set ucentralgw.configProperties."rtty\.token"=${{ secrets.RTTY_TOKEN }} \
--set ucentralsec.configProperties."authentication\.default\.username"=${{ secrets.UCENTRALGW_AUTH_USERNAME }} \
--set ucentralsec.configProperties."authentication\.default\.password"=${{ secrets.UCENTRALGW_AUTH_PASSWORD }} \
--set rttys.config.token=${{ secrets.RTTY_TOKEN }} \
--set-file ucentralgw.certs."restapi-cert\.pem"=../../cert.pem \
--set-file ucentralgw.certs."restapi-key\.pem"=../../key.pem \
--set-file ucentralgw.certs."websocket-cert\.pem"=../../cert.pem \
--set-file ucentralgw.certs."websocket-key\.pem"=../../key.pem \
--set-file rttys.certs."restapi-cert\.pem"=../../cert.pem \
--set-file rttys.certs."restapi-key\.pem"=../../key.pem \
--set-file ucentralsec.certs."restapi-cert\.pem"=../../cert.pem \
--set-file ucentralsec.certs."restapi-key\.pem"=../../key.pem \
--set ucentralgw.images.ucentralgw.tag=${{ matrix.ucentralgw_version }} \
--set ucentralgwui.images.ucentralgwui.tag=${{ matrix.ucentralgwui_version }} \
--set ucentralsec.images.ucentralsec.tag=${{ matrix.ucentralsec_version }} \
tip-ucentral .
- name: Show resource state on deployment failure
if: failure()
run: |
kubectl get pods --namespace ucentral-${{ matrix.namespace }}
kubectl get services --namespace ucentral-${{ matrix.namespace }}
kubectl get persistentvolumeclaims --namespace ucentral-${{ matrix.namespace }}
- name: Describe pods on deployment failure
if: failure()
run: |
kubectl describe pods --namespace ucentral-${{ matrix.namespace }}
- name: Describe services on deployment failure
if: failure()
run: |
kubectl describe services --namespace ucentral-${{ matrix.namespace }}
- name: Describe persistentvolumeclaims on deployment failure
if: failure()
run: |
kubectl describe persistentvolumeclaims --namespace ucentral-${{ matrix.namespace }}
- name: Rollback Cloud SDK
if: failure()
run: |
helm rollback tip-ucentral --namespace ucentral-${{ matrix.namespace }} --wait --timeout 20m

48
.github/workflows/update-badges.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Update test number badges
on:
push:
branches:
- master
paths:
- "tests/**"
jobs:
update_badges:
runs-on: ubuntu-latest
container: python:3.8
steps:
- uses: actions/checkout@v2
- name: add TIP pypi repo
run: |
mkdir -p ~/.pip
echo "[global]" > ~/.pip/pip.conf
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
- name: install dependencies
run: pip install -r requirements.txt
- name: download badges
working-directory: tests
run: |
mkdir -p ../.img
wget https://img.shields.io/badge/total_tests-$(pytest --collect-only -q | tail -1 | cut -d ' ' -f 1)-green?style=flat-square -O ../.img/total-count.svg
wget https://img.shields.io/badge/interop_tests-$(pytest --collect-only -m "interop" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../.img/interop-count.svg
wget https://img.shields.io/badge/sanity_tests-$(pytest --collect-only -m "sanity and not interop" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../.img/sanity-count.svg
wget https://img.shields.io/badge/performance_tests-$(pytest --collect-only -m "performance" -q | tail -1 | cut -d '/' -f 1)-green?style=flat-square -O ../.img/performance-count.svg
- name: commit changes
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "Updating test count badges: $(date -u)"
- name: push changes
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: master

View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

1
.img/interop-count.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="102" height="20" role="img" aria-label="interop tests: 56"><title>interop tests: 56</title><g shape-rendering="crispEdges"><rect width="79" height="20" fill="#555"/><rect x="79" width="23" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="405" y="140" transform="scale(.1)" fill="#fff" textLength="690">interop tests</text><text x="895" y="140" transform="scale(.1)" fill="#fff" textLength="130">56</text></g></svg>

After

Width:  |  Height:  |  Size: 636 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="142" height="20" role="img" aria-label="performance tests: 241"><title>performance tests: 241</title><g shape-rendering="crispEdges"><rect width="111" height="20" fill="#555"/><rect x="111" width="31" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="565" y="140" transform="scale(.1)" fill="#fff" textLength="1010">performance tests</text><text x="1255" y="140" transform="scale(.1)" fill="#fff" textLength="210">241</text></g></svg>

After

Width:  |  Height:  |  Size: 655 B

1
.img/sanity-count.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="104" height="20" role="img" aria-label="sanity tests: 176"><title>sanity tests: 176</title><g shape-rendering="crispEdges"><rect width="73" height="20" fill="#555"/><rect x="73" width="31" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="375" y="140" transform="scale(.1)" fill="#fff" textLength="630">sanity tests</text><text x="875" y="140" transform="scale(.1)" fill="#fff" textLength="210">176</text></g></svg>

After

Width:  |  Height:  |  Size: 636 B

1
.img/total-count.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="96" height="20" role="img" aria-label="total tests: 519"><title>total tests: 519</title><g shape-rendering="crispEdges"><rect width="65" height="20" fill="#555"/><rect x="65" width="31" height="20" fill="#97ca00"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="335" y="140" transform="scale(.1)" fill="#fff" textLength="550">total tests</text><text x="795" y="140" transform="scale(.1)" fill="#fff" textLength="210">519</text></g></svg>

After

Width:  |  Height:  |  Size: 632 B

View File

@@ -5,13 +5,13 @@
This repository contains the test automation framework and scripts for TIP Open WiFi.
Test Framework is implemented in pytest
![Automation Overview](./automation_overview.png)
![Automation Overview](.img/automation_overview.png)
The vision is to create an open test framework to ensure production grade Open Wifi Solution.
This test automation tied into our overall tooling at TIP as shown below:
![Tools and Test Automation](./Tools_and_Testing.png)
![Tools and Test Automation](.img/Tools_and_Testing.png)
### General guidelines
@@ -41,7 +41,6 @@ pylint --fail-under=7 *py
the command above would produce a non-zero exit code if the score drops below 7.
### TIP Controller Integration
Using Swagger Autogenerated CloudSDK Library pypi package (implemented with [swagger codegen](https://github.com/swagger-api/swagger-codegen)).
@@ -50,7 +49,7 @@ Using Swagger Autogenerated CloudSDK Library pypi package (implemented with [swa
Currently the plan is to use pytest integrated with [allure](https://docs.qameta.io/allure/#_pytest) to create visual reports for the test outcomes
### Miscelanneous
### Miscellaneous
1. Do not use old style string formatting: `"Hello %s" % var`; use `f"Hello {var}` instead
2. use `"""` in Docstrings
@@ -62,8 +61,17 @@ https://docs.pytest.org/en/latest/usage.html
http://pythontesting.net/framework/pytest/pytest-introduction/
### Test status
![total test count](.img/total-count.svg)
[![sanity testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/sanity.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/sanity.yml)
![sanity test count](.img/sanity-count.svg)
[![interop testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/interop.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/interop.yml)
![interop test count](.img/interop-count.svg)
[![performance testing](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/performance.yml/badge.svg)](https://github.com/Telecominfraproject/wlan-testing/actions/workflows/performance.yml)
![performance test count](.img/performance-count.svg)
### Best Practice
@@ -74,11 +82,11 @@ http://pythontesting.net/framework/pytest/pytest-introduction/
All code must be written in python 3 and conform to PEP 8 style guide. The test framework is built using pytest.
[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)
[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)
[![PEP8](https://img.shields.io/badge/code%20style-pep8-orange.svg)](https://www.python.org/dev/peps/pep-0008/)
### Directory Structure
```bash
├── lanforge - /* to be migrated */
├── libs
@@ -100,6 +108,7 @@ All code must be written in python 3 and conform to PEP 8 style guide. The test
|── scale
|── README.md -/* Pytest framework and testcases information */
```
### Setup Instructions
#### Step 1
@@ -123,6 +132,19 @@ cd wlan-testing
#### Step 2
Please ensure you follow the steps outlined in [here](./libs/controller/README.md)
```shell
Lets add the TIP pypi repository by following the below steps:
mkdir ~/.pip
echo "[global]" > ~/.pip/pip.conf
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
```
#### Step 3
Please ensure you have python version >= 3 is required. Double check this by running "python --version" command.
```shell
@@ -130,31 +152,7 @@ User this to check "python --version"
Lets Install the Python Packages needed
pip3 install pytest==6.2.2
pip3 install bs4
pip3 install paramiko
pip3 install xlsxwriter
pip3 install influxdb_client
pip3 install allure-pytest
```
#### Step 3
Please ensure you follow the steps outlined in [here](./libs/controller/README.md)
```shell
Lets Install Controller Libraries, follow below steps:
mkdir ~/.pip
echo "[global]" > ~/.pip/pip.conf
echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
echo "tip-wlan-cloud" > ~/.pip/requirements.txt
pip3 install -r ~/.pip/requirements.txt
pip3 install -r requirements.txt
```
#### Step 4

View File

@@ -3,7 +3,8 @@ RUN mkdir ~/.pip
RUN echo "[global]" > ~/.pip/pip.conf
RUN echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf
RUN echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
RUN pip3 install pytest==6.2.2 bs4 paramiko xlsxwriter requests pandas influxdb influxdb-client scp allure-pytest tip-wlan-cloud selenium perfecto-py37 Appium-Python-Client
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY lanforge /wlan-testing/lanforge
COPY tests /wlan-testing/tests
COPY libs /wlan-testing/libs

View File

@@ -3,6 +3,8 @@ from create_chamberview_dut import DUT
import time
from LANforge.lfcli_base import LFCliBase
import json
import os
import pandas as pd
class ChamberView:
@@ -104,4 +106,22 @@ class ChamberView:
cli_base = LFCliBase(_lfjson_host=self.lanforge_ip, _lfjson_port=self.lanforge_port, )
return cli_base.json_post(req_url, data)
def read_kpi_file(self, column_name, dir_name ):
if column_name == None:
df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', engine='python')
if df.empty == True:
return "empty"
else:
return df
else:
df = pd.read_csv("../reports/" + str(dir_name) + "/kpi.csv", sep=r'\t', usecols=column_name, engine='python')
if df.empty == True:
return "empty"
else:
return df

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,157 @@
Date,"Total Upload/RX (Mbps)",Date,"Total Download/RX (Mbps)",Date,"UL + DL Sum/RX (Mbps)",Date,"UDP UL + DL Sum/RX (Mbps)",Date,"UDP DL/RX (Mbps)",Date,"UDP UL/RX (Mbps)",
"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,"2021-06-24T13:04:42.332 UTC",0,
"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,"2021-06-24T13:04:43.455 UTC",0,
"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,"2021-06-24T13:04:44.533 UTC",0,
"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,"2021-06-24T13:04:45.664 UTC",0,
"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,"2021-06-24T13:04:46.758 UTC",0,
"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,"2021-06-24T13:04:47.835 UTC",0,
"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,"2021-06-24T13:04:48.910 UTC",0,
"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,"2021-06-24T13:04:50.021 UTC",0,
"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,"2021-06-24T13:04:51.131 UTC",0,
"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,"2021-06-24T13:04:52.218 UTC",0,
"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,"2021-06-24T13:04:53.294 UTC",0,
"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,"2021-06-24T13:04:54.531 UTC",0,
"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,"2021-06-24T13:04:55.703 UTC",0,
"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,"2021-06-24T13:04:56.775 UTC",0,
"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,"2021-06-24T13:04:57.851 UTC",0,
"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,"2021-06-24T13:04:58.932 UTC",0,
"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,"2021-06-24T13:05:00.002 UTC",0,
"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,"2021-06-24T13:05:01.078 UTC",0,
"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,"2021-06-24T13:05:02.158 UTC",0,
"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,"2021-06-24T13:05:03.227 UTC",0,
"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,"2021-06-24T13:05:04.768 UTC",0,
"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,"2021-06-24T13:05:05.852 UTC",0,
"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,"2021-06-24T13:05:06.927 UTC",0,
"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,"2021-06-24T13:05:08.011 UTC",0,
"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,"2021-06-24T13:05:09.090 UTC",0,
"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,"2021-06-24T13:05:10.170 UTC",0,
"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,"2021-06-24T13:05:11.545 UTC",0,
"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,"2021-06-24T13:05:12.635 UTC",0,
"2021-06-24T13:05:13.767 UTC",0,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",20.08248,"2021-06-24T13:05:13.767 UTC",0,
"2021-06-24T13:05:15.123 UTC",0,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",20.08248,"2021-06-24T13:05:15.123 UTC",0,
"2021-06-24T13:05:16.379 UTC",0,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",35.83649,"2021-06-24T13:05:16.379 UTC",0,
"2021-06-24T13:05:17.516 UTC",0,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",43.68122,"2021-06-24T13:05:17.516 UTC",0,
"2021-06-24T13:05:18.635 UTC",0,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",43.69924,"2021-06-24T13:05:18.635 UTC",0,
"2021-06-24T13:05:20.559 UTC",0,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",45.09452,"2021-06-24T13:05:20.559 UTC",0,
"2021-06-24T13:05:21.762 UTC",0,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",45.3935,"2021-06-24T13:05:21.762 UTC",0,
"2021-06-24T13:05:22.906 UTC",0,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",45.65422,"2021-06-24T13:05:22.906 UTC",0,
"2021-06-24T13:05:24.083 UTC",0,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",45.07789,"2021-06-24T13:05:24.083 UTC",0,
"2021-06-24T13:05:26.051 UTC",0,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",45.28866,"2021-06-24T13:05:26.051 UTC",0,
"2021-06-24T13:05:27.409 UTC",0,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",45.86275,"2021-06-24T13:05:27.409 UTC",0,
"2021-06-24T13:05:28.559 UTC",0,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",45.47469,"2021-06-24T13:05:28.559 UTC",0,
"2021-06-24T13:05:29.682 UTC",0,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",45.65525,"2021-06-24T13:05:29.682 UTC",0,
"2021-06-24T13:05:31.459 UTC",0,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",45.83485,"2021-06-24T13:05:31.459 UTC",0,
"2021-06-24T13:05:32.753 UTC",0,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",46.98529,"2021-06-24T13:05:32.753 UTC",0,
"2021-06-24T13:05:33.899 UTC",0,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",47.08026,"2021-06-24T13:05:33.899 UTC",0,
"2021-06-24T13:05:35.326 UTC",0,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",47.64647,"2021-06-24T13:05:35.326 UTC",0,
"2021-06-24T13:05:37.613 UTC",0,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",47.44756,"2021-06-24T13:05:37.613 UTC",0,
"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,"2021-06-24T13:05:38.941 UTC",0,
"2021-06-24T13:05:39.945 UTC",0,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",57.0272,"2021-06-24T13:05:39.945 UTC",0,
"2021-06-24T13:05:41.012 UTC",0,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",106.88364,"2021-06-24T13:05:41.012 UTC",0,
"2021-06-24T13:05:42.019 UTC",0,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",88.64117,"2021-06-24T13:05:42.019 UTC",0,
"2021-06-24T13:05:43.939 UTC",0,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",88.64117,"2021-06-24T13:05:43.939 UTC",0,
"2021-06-24T13:05:45.014 UTC",0,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",154.11658,"2021-06-24T13:05:45.014 UTC",0,
"2021-06-24T13:05:46.089 UTC",0,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",153.43946,"2021-06-24T13:05:46.089 UTC",0,
"2021-06-24T13:05:47.111 UTC",0,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",145.7932,"2021-06-24T13:05:47.111 UTC",0,
"2021-06-24T13:05:48.151 UTC",0,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",151.65382,"2021-06-24T13:05:48.151 UTC",0,
"2021-06-24T13:05:49.485 UTC",0,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",157.77303,"2021-06-24T13:05:49.485 UTC",0,
"2021-06-24T13:05:50.565 UTC",0,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",153.89262,"2021-06-24T13:05:50.565 UTC",0,
"2021-06-24T13:05:51.569 UTC",0,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",164.79277,"2021-06-24T13:05:51.569 UTC",0,
"2021-06-24T13:05:52.572 UTC",0,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",180.95022,"2021-06-24T13:05:52.572 UTC",0,
"2021-06-24T13:05:53.580 UTC",0,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",196.10081,"2021-06-24T13:05:53.580 UTC",0,
"2021-06-24T13:05:55.086 UTC",0,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",199.74376,"2021-06-24T13:05:55.086 UTC",0,
"2021-06-24T13:05:56.099 UTC",0,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",186.79759,"2021-06-24T13:05:56.099 UTC",0,
"2021-06-24T13:05:57.105 UTC",0,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",178.54685,"2021-06-24T13:05:57.105 UTC",0,
"2021-06-24T13:05:58.109 UTC",0,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",171.03893,"2021-06-24T13:05:58.109 UTC",0,
"2021-06-24T13:05:59.127 UTC",0,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",173.49083,"2021-06-24T13:05:59.127 UTC",0,
"2021-06-24T13:06:00.761 UTC",0,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",160.76421,"2021-06-24T13:06:00.761 UTC",0,
"2021-06-24T13:06:01.986 UTC",0,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",169.5681,"2021-06-24T13:06:01.986 UTC",0,
"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,"2021-06-24T13:06:02.989 UTC",0,
"2021-06-24T13:06:04.029 UTC",0,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",12.86295,"2021-06-24T13:06:04.029 UTC",0,
"2021-06-24T13:06:05.032 UTC",0,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",89.01764,"2021-06-24T13:06:05.032 UTC",0,
"2021-06-24T13:06:06.764 UTC",0,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",89.01764,"2021-06-24T13:06:06.764 UTC",0,
"2021-06-24T13:06:08.019 UTC",0,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",109.14102,"2021-06-24T13:06:08.019 UTC",0,
"2021-06-24T13:06:09.031 UTC",0,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",114.97869,"2021-06-24T13:06:09.031 UTC",0,
"2021-06-24T13:06:10.052 UTC",0,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",140.84837,"2021-06-24T13:06:10.052 UTC",0,
"2021-06-24T13:06:11.141 UTC",0,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",182.41845,"2021-06-24T13:06:11.141 UTC",0,
"2021-06-24T13:06:12.961 UTC",0,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",182.41845,"2021-06-24T13:06:12.961 UTC",0,
"2021-06-24T13:06:13.985 UTC",0,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",126.42118,"2021-06-24T13:06:13.985 UTC",0,
"2021-06-24T13:06:14.991 UTC",0,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",138.64259,"2021-06-24T13:06:14.991 UTC",0,
"2021-06-24T13:06:15.996 UTC",0,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",169.36751,"2021-06-24T13:06:15.996 UTC",0,
"2021-06-24T13:06:17.000 UTC",0,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",194.3941,"2021-06-24T13:06:17.000 UTC",0,
"2021-06-24T13:06:18.016 UTC",0,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",182.3653,"2021-06-24T13:06:18.016 UTC",0,
"2021-06-24T13:06:19.074 UTC",0,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",177.53078,"2021-06-24T13:06:19.074 UTC",0,
"2021-06-24T13:06:20.078 UTC",0,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",176.84158,"2021-06-24T13:06:20.078 UTC",0,
"2021-06-24T13:06:21.126 UTC",0,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",156.20589,"2021-06-24T13:06:21.126 UTC",0,
"2021-06-24T13:06:22.175 UTC",0,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",161.65611,"2021-06-24T13:06:22.175 UTC",0,
"2021-06-24T13:06:24.014 UTC",0,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",179.27208,"2021-06-24T13:06:24.014 UTC",0,
"2021-06-24T13:06:25.138 UTC",0,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",179.96647,"2021-06-24T13:06:25.138 UTC",0,
"2021-06-24T13:06:26.153 UTC",0,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",179.96647,"2021-06-24T13:06:26.153 UTC",0,
"2021-06-24T13:06:27.458 UTC",0,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",168.18325,"2021-06-24T13:06:27.458 UTC",0,
"2021-06-24T13:06:30.313 UTC",0,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",136.23597,"2021-06-24T13:06:30.313 UTC",0,
"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,"2021-06-24T13:06:31.446 UTC",0,
"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",0,"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",81.01041,"2021-06-24T13:06:32.456 UTC",0,"2021-06-24T13:06:32.456 UTC",81.01041,
"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",0,"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",81.01041,"2021-06-24T13:06:33.462 UTC",0,"2021-06-24T13:06:33.462 UTC",81.01041,
"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",0,"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",115.21429,"2021-06-24T13:06:34.466 UTC",0,"2021-06-24T13:06:34.466 UTC",115.21429,
"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",0,"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",74.11585,"2021-06-24T13:06:36.207 UTC",0,"2021-06-24T13:06:36.207 UTC",74.11585,
"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",0,"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",128.71215,"2021-06-24T13:06:37.236 UTC",0,"2021-06-24T13:06:37.236 UTC",128.71215,
"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",0,"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",136.12795,"2021-06-24T13:06:38.239 UTC",0,"2021-06-24T13:06:38.239 UTC",136.12795,
"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",0,"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",145.54554,"2021-06-24T13:06:39.243 UTC",0,"2021-06-24T13:06:39.243 UTC",145.54554,
"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",0,"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",139.12486,"2021-06-24T13:06:40.246 UTC",0,"2021-06-24T13:06:40.246 UTC",139.12486,
"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",0,"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",131.13375,"2021-06-24T13:06:41.818 UTC",0,"2021-06-24T13:06:41.818 UTC",131.13375,
"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",0,"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",139.43639,"2021-06-24T13:06:42.825 UTC",0,"2021-06-24T13:06:42.825 UTC",139.43639,
"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",0,"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",147.65079,"2021-06-24T13:06:43.831 UTC",0,"2021-06-24T13:06:43.831 UTC",147.65079,
"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",0,"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",160.72659,"2021-06-24T13:06:44.849 UTC",0,"2021-06-24T13:06:44.849 UTC",160.72659,
"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",0,"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",157.75082,"2021-06-24T13:06:45.876 UTC",0,"2021-06-24T13:06:45.876 UTC",157.75082,
"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",0,"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",157.75082,"2021-06-24T13:06:47.306 UTC",0,"2021-06-24T13:06:47.306 UTC",157.75082,
"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",0,"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",140.73814,"2021-06-24T13:06:48.402 UTC",0,"2021-06-24T13:06:48.402 UTC",140.73814,
"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",0,"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",140.18522,"2021-06-24T13:06:49.473 UTC",0,"2021-06-24T13:06:49.473 UTC",140.18522,
"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",0,"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",140.9653,"2021-06-24T13:06:50.475 UTC",0,"2021-06-24T13:06:50.475 UTC",140.9653,
"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",0,"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",149.74488,"2021-06-24T13:06:51.479 UTC",0,"2021-06-24T13:06:51.479 UTC",149.74488,
"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",0,"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",149.74488,"2021-06-24T13:06:52.900 UTC",0,"2021-06-24T13:06:52.900 UTC",149.74488,
"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",0,"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",154.60875,"2021-06-24T13:06:53.975 UTC",0,"2021-06-24T13:06:53.975 UTC",154.60875,
"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",0,"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",157.48085,"2021-06-24T13:06:55.081 UTC",0,"2021-06-24T13:06:55.081 UTC",157.48085,
"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",0,"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",156.62474,"2021-06-24T13:06:56.091 UTC",0,"2021-06-24T13:06:56.091 UTC",156.62474,
"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",0,"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",46.2555,"2021-06-24T13:06:57.171 UTC",0,"2021-06-24T13:06:57.171 UTC",46.2555,
"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",0,"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",46.2555,"2021-06-24T13:06:58.775 UTC",0,"2021-06-24T13:06:58.775 UTC",46.2555,
"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",0,"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",128.1117,"2021-06-24T13:06:59.855 UTC",0,"2021-06-24T13:06:59.855 UTC",128.1117,
"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",0,"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",149.7146,"2021-06-24T13:07:00.858 UTC",0,"2021-06-24T13:07:00.858 UTC",149.7146,
"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",0,"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",138.46164,"2021-06-24T13:07:01.861 UTC",0,"2021-06-24T13:07:01.861 UTC",138.46164,
"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",0,"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",131.2945,"2021-06-24T13:07:02.865 UTC",0,"2021-06-24T13:07:02.865 UTC",131.2945,
"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",0,"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",121.3569,"2021-06-24T13:07:04.356 UTC",0,"2021-06-24T13:07:04.356 UTC",121.3569,
"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",0,"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",130.35988,"2021-06-24T13:07:05.406 UTC",0,"2021-06-24T13:07:05.406 UTC",130.35988,
"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",0,"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",142.1523,"2021-06-24T13:07:06.412 UTC",0,"2021-06-24T13:07:06.412 UTC",142.1523,
"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",0,"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",136.28422,"2021-06-24T13:07:07.416 UTC",0,"2021-06-24T13:07:07.416 UTC",136.28422,
"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",0,"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",134.34447,"2021-06-24T13:07:08.419 UTC",0,"2021-06-24T13:07:08.419 UTC",134.34447,
"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",0,"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",132.86177,"2021-06-24T13:07:10.092 UTC",0,"2021-06-24T13:07:10.092 UTC",132.86177,
"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",0,"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",134.60485,"2021-06-24T13:07:11.187 UTC",0,"2021-06-24T13:07:11.187 UTC",134.60485,
"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",0,"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",137.69828,"2021-06-24T13:07:12.193 UTC",0,"2021-06-24T13:07:12.193 UTC",137.69828,
"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",0,"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",122.84054,"2021-06-24T13:07:13.195 UTC",0,"2021-06-24T13:07:13.195 UTC",122.84054,
"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",0,"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",123.97687,"2021-06-24T13:07:14.198 UTC",0,"2021-06-24T13:07:14.198 UTC",123.97687,
"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",0,"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",122.20608,"2021-06-24T13:07:15.559 UTC",0,"2021-06-24T13:07:15.559 UTC",122.20608,
"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",0,"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",123.6539,"2021-06-24T13:07:16.569 UTC",0,"2021-06-24T13:07:16.569 UTC",123.6539,
"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",0,"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",119.04136,"2021-06-24T13:07:17.572 UTC",0,"2021-06-24T13:07:17.572 UTC",119.04136,
"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",0,"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",118.09227,"2021-06-24T13:07:18.575 UTC",0,"2021-06-24T13:07:18.575 UTC",118.09227,
"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",0,"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",131.86202,"2021-06-24T13:07:19.602 UTC",0,"2021-06-24T13:07:19.602 UTC",131.86202,
"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,"2021-06-24T13:07:21.198 UTC",0,
"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",0,"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",47.09622,"2021-06-24T13:07:22.307 UTC",0,"2021-06-24T13:07:22.307 UTC",47.09622,
"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",0,"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",113.1122,"2021-06-24T13:07:23.342 UTC",0,"2021-06-24T13:07:23.342 UTC",113.1122,
"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",0,"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",183.21198,"2021-06-24T13:07:24.346 UTC",0,"2021-06-24T13:07:24.346 UTC",183.21198,
"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",0,"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",200.66185,"2021-06-24T13:07:25.350 UTC",0,"2021-06-24T13:07:25.350 UTC",200.66185,
"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",0,"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",200.66185,"2021-06-24T13:07:27.258 UTC",0,"2021-06-24T13:07:27.258 UTC",200.66185,
"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",0,"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",183.28354,"2021-06-24T13:07:28.435 UTC",0,"2021-06-24T13:07:28.435 UTC",183.28354,
"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",0,"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",179.58321,"2021-06-24T13:07:29.439 UTC",0,"2021-06-24T13:07:29.439 UTC",179.58321,
"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",0,"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",178.73124,"2021-06-24T13:07:30.443 UTC",0,"2021-06-24T13:07:30.443 UTC",178.73124,
"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",0,"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",186.23463,"2021-06-24T13:07:31.447 UTC",0,"2021-06-24T13:07:31.447 UTC",186.23463,
"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",0,"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",196.21518,"2021-06-24T13:07:33.039 UTC",0,"2021-06-24T13:07:33.039 UTC",196.21518,
"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",0,"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",182.65512,"2021-06-24T13:07:36.225 UTC",0,"2021-06-24T13:07:36.225 UTC",182.65512,
"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",0,"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",153.38336,"2021-06-24T13:07:37.306 UTC",0,"2021-06-24T13:07:37.306 UTC",153.38336,
"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",0,"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",164.19841,"2021-06-24T13:07:38.375 UTC",0,"2021-06-24T13:07:38.375 UTC",164.19841,
"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",0,"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",199.45854,"2021-06-24T13:07:39.385 UTC",0,"2021-06-24T13:07:39.385 UTC",199.45854,
"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",0,"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",211.0476,"2021-06-24T13:07:41.299 UTC",0,"2021-06-24T13:07:41.299 UTC",211.0476,
"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",0,"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",142.29037,"2021-06-24T13:07:42.321 UTC",0,"2021-06-24T13:07:42.321 UTC",142.29037,
"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",0,"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",160.24816,"2021-06-24T13:07:43.640 UTC",0,"2021-06-24T13:07:43.640 UTC",160.24816,
"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,"2021-06-24T13:07:44.741 UTC",0,
"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,"2021-06-24T13:07:45.785 UTC",0,
"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,"2021-06-24T13:07:46.831 UTC",0,
"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,"2021-06-24T13:07:47.855 UTC",0,
1 Date Total Upload/RX (Mbps) Date Total Download/RX (Mbps) Date UL + DL Sum/RX (Mbps) Date UDP UL + DL Sum/RX (Mbps) Date UDP DL/RX (Mbps) Date UDP UL/RX (Mbps)
2 2021-06-24T13:04:42.332 UTC 0 2021-06-24T13:04:42.332 UTC 0 2021-06-24T13:04:42.332 UTC 0 2021-06-24T13:04:42.332 UTC 0 2021-06-24T13:04:42.332 UTC 0 2021-06-24T13:04:42.332 UTC 0
3 2021-06-24T13:04:43.455 UTC 0 2021-06-24T13:04:43.455 UTC 0 2021-06-24T13:04:43.455 UTC 0 2021-06-24T13:04:43.455 UTC 0 2021-06-24T13:04:43.455 UTC 0 2021-06-24T13:04:43.455 UTC 0
4 2021-06-24T13:04:44.533 UTC 0 2021-06-24T13:04:44.533 UTC 0 2021-06-24T13:04:44.533 UTC 0 2021-06-24T13:04:44.533 UTC 0 2021-06-24T13:04:44.533 UTC 0 2021-06-24T13:04:44.533 UTC 0
5 2021-06-24T13:04:45.664 UTC 0 2021-06-24T13:04:45.664 UTC 0 2021-06-24T13:04:45.664 UTC 0 2021-06-24T13:04:45.664 UTC 0 2021-06-24T13:04:45.664 UTC 0 2021-06-24T13:04:45.664 UTC 0
6 2021-06-24T13:04:46.758 UTC 0 2021-06-24T13:04:46.758 UTC 0 2021-06-24T13:04:46.758 UTC 0 2021-06-24T13:04:46.758 UTC 0 2021-06-24T13:04:46.758 UTC 0 2021-06-24T13:04:46.758 UTC 0
7 2021-06-24T13:04:47.835 UTC 0 2021-06-24T13:04:47.835 UTC 0 2021-06-24T13:04:47.835 UTC 0 2021-06-24T13:04:47.835 UTC 0 2021-06-24T13:04:47.835 UTC 0 2021-06-24T13:04:47.835 UTC 0
8 2021-06-24T13:04:48.910 UTC 0 2021-06-24T13:04:48.910 UTC 0 2021-06-24T13:04:48.910 UTC 0 2021-06-24T13:04:48.910 UTC 0 2021-06-24T13:04:48.910 UTC 0 2021-06-24T13:04:48.910 UTC 0
9 2021-06-24T13:04:50.021 UTC 0 2021-06-24T13:04:50.021 UTC 0 2021-06-24T13:04:50.021 UTC 0 2021-06-24T13:04:50.021 UTC 0 2021-06-24T13:04:50.021 UTC 0 2021-06-24T13:04:50.021 UTC 0
10 2021-06-24T13:04:51.131 UTC 0 2021-06-24T13:04:51.131 UTC 0 2021-06-24T13:04:51.131 UTC 0 2021-06-24T13:04:51.131 UTC 0 2021-06-24T13:04:51.131 UTC 0 2021-06-24T13:04:51.131 UTC 0
11 2021-06-24T13:04:52.218 UTC 0 2021-06-24T13:04:52.218 UTC 0 2021-06-24T13:04:52.218 UTC 0 2021-06-24T13:04:52.218 UTC 0 2021-06-24T13:04:52.218 UTC 0 2021-06-24T13:04:52.218 UTC 0
12 2021-06-24T13:04:53.294 UTC 0 2021-06-24T13:04:53.294 UTC 0 2021-06-24T13:04:53.294 UTC 0 2021-06-24T13:04:53.294 UTC 0 2021-06-24T13:04:53.294 UTC 0 2021-06-24T13:04:53.294 UTC 0
13 2021-06-24T13:04:54.531 UTC 0 2021-06-24T13:04:54.531 UTC 0 2021-06-24T13:04:54.531 UTC 0 2021-06-24T13:04:54.531 UTC 0 2021-06-24T13:04:54.531 UTC 0 2021-06-24T13:04:54.531 UTC 0
14 2021-06-24T13:04:55.703 UTC 0 2021-06-24T13:04:55.703 UTC 0 2021-06-24T13:04:55.703 UTC 0 2021-06-24T13:04:55.703 UTC 0 2021-06-24T13:04:55.703 UTC 0 2021-06-24T13:04:55.703 UTC 0
15 2021-06-24T13:04:56.775 UTC 0 2021-06-24T13:04:56.775 UTC 0 2021-06-24T13:04:56.775 UTC 0 2021-06-24T13:04:56.775 UTC 0 2021-06-24T13:04:56.775 UTC 0 2021-06-24T13:04:56.775 UTC 0
16 2021-06-24T13:04:57.851 UTC 0 2021-06-24T13:04:57.851 UTC 0 2021-06-24T13:04:57.851 UTC 0 2021-06-24T13:04:57.851 UTC 0 2021-06-24T13:04:57.851 UTC 0 2021-06-24T13:04:57.851 UTC 0
17 2021-06-24T13:04:58.932 UTC 0 2021-06-24T13:04:58.932 UTC 0 2021-06-24T13:04:58.932 UTC 0 2021-06-24T13:04:58.932 UTC 0 2021-06-24T13:04:58.932 UTC 0 2021-06-24T13:04:58.932 UTC 0
18 2021-06-24T13:05:00.002 UTC 0 2021-06-24T13:05:00.002 UTC 0 2021-06-24T13:05:00.002 UTC 0 2021-06-24T13:05:00.002 UTC 0 2021-06-24T13:05:00.002 UTC 0 2021-06-24T13:05:00.002 UTC 0
19 2021-06-24T13:05:01.078 UTC 0 2021-06-24T13:05:01.078 UTC 0 2021-06-24T13:05:01.078 UTC 0 2021-06-24T13:05:01.078 UTC 0 2021-06-24T13:05:01.078 UTC 0 2021-06-24T13:05:01.078 UTC 0
20 2021-06-24T13:05:02.158 UTC 0 2021-06-24T13:05:02.158 UTC 0 2021-06-24T13:05:02.158 UTC 0 2021-06-24T13:05:02.158 UTC 0 2021-06-24T13:05:02.158 UTC 0 2021-06-24T13:05:02.158 UTC 0
21 2021-06-24T13:05:03.227 UTC 0 2021-06-24T13:05:03.227 UTC 0 2021-06-24T13:05:03.227 UTC 0 2021-06-24T13:05:03.227 UTC 0 2021-06-24T13:05:03.227 UTC 0 2021-06-24T13:05:03.227 UTC 0
22 2021-06-24T13:05:04.768 UTC 0 2021-06-24T13:05:04.768 UTC 0 2021-06-24T13:05:04.768 UTC 0 2021-06-24T13:05:04.768 UTC 0 2021-06-24T13:05:04.768 UTC 0 2021-06-24T13:05:04.768 UTC 0
23 2021-06-24T13:05:05.852 UTC 0 2021-06-24T13:05:05.852 UTC 0 2021-06-24T13:05:05.852 UTC 0 2021-06-24T13:05:05.852 UTC 0 2021-06-24T13:05:05.852 UTC 0 2021-06-24T13:05:05.852 UTC 0
24 2021-06-24T13:05:06.927 UTC 0 2021-06-24T13:05:06.927 UTC 0 2021-06-24T13:05:06.927 UTC 0 2021-06-24T13:05:06.927 UTC 0 2021-06-24T13:05:06.927 UTC 0 2021-06-24T13:05:06.927 UTC 0
25 2021-06-24T13:05:08.011 UTC 0 2021-06-24T13:05:08.011 UTC 0 2021-06-24T13:05:08.011 UTC 0 2021-06-24T13:05:08.011 UTC 0 2021-06-24T13:05:08.011 UTC 0 2021-06-24T13:05:08.011 UTC 0
26 2021-06-24T13:05:09.090 UTC 0 2021-06-24T13:05:09.090 UTC 0 2021-06-24T13:05:09.090 UTC 0 2021-06-24T13:05:09.090 UTC 0 2021-06-24T13:05:09.090 UTC 0 2021-06-24T13:05:09.090 UTC 0
27 2021-06-24T13:05:10.170 UTC 0 2021-06-24T13:05:10.170 UTC 0 2021-06-24T13:05:10.170 UTC 0 2021-06-24T13:05:10.170 UTC 0 2021-06-24T13:05:10.170 UTC 0 2021-06-24T13:05:10.170 UTC 0
28 2021-06-24T13:05:11.545 UTC 0 2021-06-24T13:05:11.545 UTC 0 2021-06-24T13:05:11.545 UTC 0 2021-06-24T13:05:11.545 UTC 0 2021-06-24T13:05:11.545 UTC 0 2021-06-24T13:05:11.545 UTC 0
29 2021-06-24T13:05:12.635 UTC 0 2021-06-24T13:05:12.635 UTC 0 2021-06-24T13:05:12.635 UTC 0 2021-06-24T13:05:12.635 UTC 0 2021-06-24T13:05:12.635 UTC 0 2021-06-24T13:05:12.635 UTC 0
30 2021-06-24T13:05:13.767 UTC 0 2021-06-24T13:05:13.767 UTC 20.08248 2021-06-24T13:05:13.767 UTC 20.08248 2021-06-24T13:05:13.767 UTC 20.08248 2021-06-24T13:05:13.767 UTC 20.08248 2021-06-24T13:05:13.767 UTC 0
31 2021-06-24T13:05:15.123 UTC 0 2021-06-24T13:05:15.123 UTC 20.08248 2021-06-24T13:05:15.123 UTC 20.08248 2021-06-24T13:05:15.123 UTC 20.08248 2021-06-24T13:05:15.123 UTC 20.08248 2021-06-24T13:05:15.123 UTC 0
32 2021-06-24T13:05:16.379 UTC 0 2021-06-24T13:05:16.379 UTC 35.83649 2021-06-24T13:05:16.379 UTC 35.83649 2021-06-24T13:05:16.379 UTC 35.83649 2021-06-24T13:05:16.379 UTC 35.83649 2021-06-24T13:05:16.379 UTC 0
33 2021-06-24T13:05:17.516 UTC 0 2021-06-24T13:05:17.516 UTC 43.68122 2021-06-24T13:05:17.516 UTC 43.68122 2021-06-24T13:05:17.516 UTC 43.68122 2021-06-24T13:05:17.516 UTC 43.68122 2021-06-24T13:05:17.516 UTC 0
34 2021-06-24T13:05:18.635 UTC 0 2021-06-24T13:05:18.635 UTC 43.69924 2021-06-24T13:05:18.635 UTC 43.69924 2021-06-24T13:05:18.635 UTC 43.69924 2021-06-24T13:05:18.635 UTC 43.69924 2021-06-24T13:05:18.635 UTC 0
35 2021-06-24T13:05:20.559 UTC 0 2021-06-24T13:05:20.559 UTC 45.09452 2021-06-24T13:05:20.559 UTC 45.09452 2021-06-24T13:05:20.559 UTC 45.09452 2021-06-24T13:05:20.559 UTC 45.09452 2021-06-24T13:05:20.559 UTC 0
36 2021-06-24T13:05:21.762 UTC 0 2021-06-24T13:05:21.762 UTC 45.3935 2021-06-24T13:05:21.762 UTC 45.3935 2021-06-24T13:05:21.762 UTC 45.3935 2021-06-24T13:05:21.762 UTC 45.3935 2021-06-24T13:05:21.762 UTC 0
37 2021-06-24T13:05:22.906 UTC 0 2021-06-24T13:05:22.906 UTC 45.65422 2021-06-24T13:05:22.906 UTC 45.65422 2021-06-24T13:05:22.906 UTC 45.65422 2021-06-24T13:05:22.906 UTC 45.65422 2021-06-24T13:05:22.906 UTC 0
38 2021-06-24T13:05:24.083 UTC 0 2021-06-24T13:05:24.083 UTC 45.07789 2021-06-24T13:05:24.083 UTC 45.07789 2021-06-24T13:05:24.083 UTC 45.07789 2021-06-24T13:05:24.083 UTC 45.07789 2021-06-24T13:05:24.083 UTC 0
39 2021-06-24T13:05:26.051 UTC 0 2021-06-24T13:05:26.051 UTC 45.28866 2021-06-24T13:05:26.051 UTC 45.28866 2021-06-24T13:05:26.051 UTC 45.28866 2021-06-24T13:05:26.051 UTC 45.28866 2021-06-24T13:05:26.051 UTC 0
40 2021-06-24T13:05:27.409 UTC 0 2021-06-24T13:05:27.409 UTC 45.86275 2021-06-24T13:05:27.409 UTC 45.86275 2021-06-24T13:05:27.409 UTC 45.86275 2021-06-24T13:05:27.409 UTC 45.86275 2021-06-24T13:05:27.409 UTC 0
41 2021-06-24T13:05:28.559 UTC 0 2021-06-24T13:05:28.559 UTC 45.47469 2021-06-24T13:05:28.559 UTC 45.47469 2021-06-24T13:05:28.559 UTC 45.47469 2021-06-24T13:05:28.559 UTC 45.47469 2021-06-24T13:05:28.559 UTC 0
42 2021-06-24T13:05:29.682 UTC 0 2021-06-24T13:05:29.682 UTC 45.65525 2021-06-24T13:05:29.682 UTC 45.65525 2021-06-24T13:05:29.682 UTC 45.65525 2021-06-24T13:05:29.682 UTC 45.65525 2021-06-24T13:05:29.682 UTC 0
43 2021-06-24T13:05:31.459 UTC 0 2021-06-24T13:05:31.459 UTC 45.83485 2021-06-24T13:05:31.459 UTC 45.83485 2021-06-24T13:05:31.459 UTC 45.83485 2021-06-24T13:05:31.459 UTC 45.83485 2021-06-24T13:05:31.459 UTC 0
44 2021-06-24T13:05:32.753 UTC 0 2021-06-24T13:05:32.753 UTC 46.98529 2021-06-24T13:05:32.753 UTC 46.98529 2021-06-24T13:05:32.753 UTC 46.98529 2021-06-24T13:05:32.753 UTC 46.98529 2021-06-24T13:05:32.753 UTC 0
45 2021-06-24T13:05:33.899 UTC 0 2021-06-24T13:05:33.899 UTC 47.08026 2021-06-24T13:05:33.899 UTC 47.08026 2021-06-24T13:05:33.899 UTC 47.08026 2021-06-24T13:05:33.899 UTC 47.08026 2021-06-24T13:05:33.899 UTC 0
46 2021-06-24T13:05:35.326 UTC 0 2021-06-24T13:05:35.326 UTC 47.64647 2021-06-24T13:05:35.326 UTC 47.64647 2021-06-24T13:05:35.326 UTC 47.64647 2021-06-24T13:05:35.326 UTC 47.64647 2021-06-24T13:05:35.326 UTC 0
47 2021-06-24T13:05:37.613 UTC 0 2021-06-24T13:05:37.613 UTC 47.44756 2021-06-24T13:05:37.613 UTC 47.44756 2021-06-24T13:05:37.613 UTC 47.44756 2021-06-24T13:05:37.613 UTC 47.44756 2021-06-24T13:05:37.613 UTC 0
48 2021-06-24T13:05:38.941 UTC 0 2021-06-24T13:05:38.941 UTC 0 2021-06-24T13:05:38.941 UTC 0 2021-06-24T13:05:38.941 UTC 0 2021-06-24T13:05:38.941 UTC 0 2021-06-24T13:05:38.941 UTC 0
49 2021-06-24T13:05:39.945 UTC 0 2021-06-24T13:05:39.945 UTC 57.0272 2021-06-24T13:05:39.945 UTC 57.0272 2021-06-24T13:05:39.945 UTC 57.0272 2021-06-24T13:05:39.945 UTC 57.0272 2021-06-24T13:05:39.945 UTC 0
50 2021-06-24T13:05:41.012 UTC 0 2021-06-24T13:05:41.012 UTC 106.88364 2021-06-24T13:05:41.012 UTC 106.88364 2021-06-24T13:05:41.012 UTC 106.88364 2021-06-24T13:05:41.012 UTC 106.88364 2021-06-24T13:05:41.012 UTC 0
51 2021-06-24T13:05:42.019 UTC 0 2021-06-24T13:05:42.019 UTC 88.64117 2021-06-24T13:05:42.019 UTC 88.64117 2021-06-24T13:05:42.019 UTC 88.64117 2021-06-24T13:05:42.019 UTC 88.64117 2021-06-24T13:05:42.019 UTC 0
52 2021-06-24T13:05:43.939 UTC 0 2021-06-24T13:05:43.939 UTC 88.64117 2021-06-24T13:05:43.939 UTC 88.64117 2021-06-24T13:05:43.939 UTC 88.64117 2021-06-24T13:05:43.939 UTC 88.64117 2021-06-24T13:05:43.939 UTC 0
53 2021-06-24T13:05:45.014 UTC 0 2021-06-24T13:05:45.014 UTC 154.11658 2021-06-24T13:05:45.014 UTC 154.11658 2021-06-24T13:05:45.014 UTC 154.11658 2021-06-24T13:05:45.014 UTC 154.11658 2021-06-24T13:05:45.014 UTC 0
54 2021-06-24T13:05:46.089 UTC 0 2021-06-24T13:05:46.089 UTC 153.43946 2021-06-24T13:05:46.089 UTC 153.43946 2021-06-24T13:05:46.089 UTC 153.43946 2021-06-24T13:05:46.089 UTC 153.43946 2021-06-24T13:05:46.089 UTC 0
55 2021-06-24T13:05:47.111 UTC 0 2021-06-24T13:05:47.111 UTC 145.7932 2021-06-24T13:05:47.111 UTC 145.7932 2021-06-24T13:05:47.111 UTC 145.7932 2021-06-24T13:05:47.111 UTC 145.7932 2021-06-24T13:05:47.111 UTC 0
56 2021-06-24T13:05:48.151 UTC 0 2021-06-24T13:05:48.151 UTC 151.65382 2021-06-24T13:05:48.151 UTC 151.65382 2021-06-24T13:05:48.151 UTC 151.65382 2021-06-24T13:05:48.151 UTC 151.65382 2021-06-24T13:05:48.151 UTC 0
57 2021-06-24T13:05:49.485 UTC 0 2021-06-24T13:05:49.485 UTC 157.77303 2021-06-24T13:05:49.485 UTC 157.77303 2021-06-24T13:05:49.485 UTC 157.77303 2021-06-24T13:05:49.485 UTC 157.77303 2021-06-24T13:05:49.485 UTC 0
58 2021-06-24T13:05:50.565 UTC 0 2021-06-24T13:05:50.565 UTC 153.89262 2021-06-24T13:05:50.565 UTC 153.89262 2021-06-24T13:05:50.565 UTC 153.89262 2021-06-24T13:05:50.565 UTC 153.89262 2021-06-24T13:05:50.565 UTC 0
59 2021-06-24T13:05:51.569 UTC 0 2021-06-24T13:05:51.569 UTC 164.79277 2021-06-24T13:05:51.569 UTC 164.79277 2021-06-24T13:05:51.569 UTC 164.79277 2021-06-24T13:05:51.569 UTC 164.79277 2021-06-24T13:05:51.569 UTC 0
60 2021-06-24T13:05:52.572 UTC 0 2021-06-24T13:05:52.572 UTC 180.95022 2021-06-24T13:05:52.572 UTC 180.95022 2021-06-24T13:05:52.572 UTC 180.95022 2021-06-24T13:05:52.572 UTC 180.95022 2021-06-24T13:05:52.572 UTC 0
61 2021-06-24T13:05:53.580 UTC 0 2021-06-24T13:05:53.580 UTC 196.10081 2021-06-24T13:05:53.580 UTC 196.10081 2021-06-24T13:05:53.580 UTC 196.10081 2021-06-24T13:05:53.580 UTC 196.10081 2021-06-24T13:05:53.580 UTC 0
62 2021-06-24T13:05:55.086 UTC 0 2021-06-24T13:05:55.086 UTC 199.74376 2021-06-24T13:05:55.086 UTC 199.74376 2021-06-24T13:05:55.086 UTC 199.74376 2021-06-24T13:05:55.086 UTC 199.74376 2021-06-24T13:05:55.086 UTC 0
63 2021-06-24T13:05:56.099 UTC 0 2021-06-24T13:05:56.099 UTC 186.79759 2021-06-24T13:05:56.099 UTC 186.79759 2021-06-24T13:05:56.099 UTC 186.79759 2021-06-24T13:05:56.099 UTC 186.79759 2021-06-24T13:05:56.099 UTC 0
64 2021-06-24T13:05:57.105 UTC 0 2021-06-24T13:05:57.105 UTC 178.54685 2021-06-24T13:05:57.105 UTC 178.54685 2021-06-24T13:05:57.105 UTC 178.54685 2021-06-24T13:05:57.105 UTC 178.54685 2021-06-24T13:05:57.105 UTC 0
65 2021-06-24T13:05:58.109 UTC 0 2021-06-24T13:05:58.109 UTC 171.03893 2021-06-24T13:05:58.109 UTC 171.03893 2021-06-24T13:05:58.109 UTC 171.03893 2021-06-24T13:05:58.109 UTC 171.03893 2021-06-24T13:05:58.109 UTC 0
66 2021-06-24T13:05:59.127 UTC 0 2021-06-24T13:05:59.127 UTC 173.49083 2021-06-24T13:05:59.127 UTC 173.49083 2021-06-24T13:05:59.127 UTC 173.49083 2021-06-24T13:05:59.127 UTC 173.49083 2021-06-24T13:05:59.127 UTC 0
67 2021-06-24T13:06:00.761 UTC 0 2021-06-24T13:06:00.761 UTC 160.76421 2021-06-24T13:06:00.761 UTC 160.76421 2021-06-24T13:06:00.761 UTC 160.76421 2021-06-24T13:06:00.761 UTC 160.76421 2021-06-24T13:06:00.761 UTC 0
68 2021-06-24T13:06:01.986 UTC 0 2021-06-24T13:06:01.986 UTC 169.5681 2021-06-24T13:06:01.986 UTC 169.5681 2021-06-24T13:06:01.986 UTC 169.5681 2021-06-24T13:06:01.986 UTC 169.5681 2021-06-24T13:06:01.986 UTC 0
69 2021-06-24T13:06:02.989 UTC 0 2021-06-24T13:06:02.989 UTC 0 2021-06-24T13:06:02.989 UTC 0 2021-06-24T13:06:02.989 UTC 0 2021-06-24T13:06:02.989 UTC 0 2021-06-24T13:06:02.989 UTC 0
70 2021-06-24T13:06:04.029 UTC 0 2021-06-24T13:06:04.029 UTC 12.86295 2021-06-24T13:06:04.029 UTC 12.86295 2021-06-24T13:06:04.029 UTC 12.86295 2021-06-24T13:06:04.029 UTC 12.86295 2021-06-24T13:06:04.029 UTC 0
71 2021-06-24T13:06:05.032 UTC 0 2021-06-24T13:06:05.032 UTC 89.01764 2021-06-24T13:06:05.032 UTC 89.01764 2021-06-24T13:06:05.032 UTC 89.01764 2021-06-24T13:06:05.032 UTC 89.01764 2021-06-24T13:06:05.032 UTC 0
72 2021-06-24T13:06:06.764 UTC 0 2021-06-24T13:06:06.764 UTC 89.01764 2021-06-24T13:06:06.764 UTC 89.01764 2021-06-24T13:06:06.764 UTC 89.01764 2021-06-24T13:06:06.764 UTC 89.01764 2021-06-24T13:06:06.764 UTC 0
73 2021-06-24T13:06:08.019 UTC 0 2021-06-24T13:06:08.019 UTC 109.14102 2021-06-24T13:06:08.019 UTC 109.14102 2021-06-24T13:06:08.019 UTC 109.14102 2021-06-24T13:06:08.019 UTC 109.14102 2021-06-24T13:06:08.019 UTC 0
74 2021-06-24T13:06:09.031 UTC 0 2021-06-24T13:06:09.031 UTC 114.97869 2021-06-24T13:06:09.031 UTC 114.97869 2021-06-24T13:06:09.031 UTC 114.97869 2021-06-24T13:06:09.031 UTC 114.97869 2021-06-24T13:06:09.031 UTC 0
75 2021-06-24T13:06:10.052 UTC 0 2021-06-24T13:06:10.052 UTC 140.84837 2021-06-24T13:06:10.052 UTC 140.84837 2021-06-24T13:06:10.052 UTC 140.84837 2021-06-24T13:06:10.052 UTC 140.84837 2021-06-24T13:06:10.052 UTC 0
76 2021-06-24T13:06:11.141 UTC 0 2021-06-24T13:06:11.141 UTC 182.41845 2021-06-24T13:06:11.141 UTC 182.41845 2021-06-24T13:06:11.141 UTC 182.41845 2021-06-24T13:06:11.141 UTC 182.41845 2021-06-24T13:06:11.141 UTC 0
77 2021-06-24T13:06:12.961 UTC 0 2021-06-24T13:06:12.961 UTC 182.41845 2021-06-24T13:06:12.961 UTC 182.41845 2021-06-24T13:06:12.961 UTC 182.41845 2021-06-24T13:06:12.961 UTC 182.41845 2021-06-24T13:06:12.961 UTC 0
78 2021-06-24T13:06:13.985 UTC 0 2021-06-24T13:06:13.985 UTC 126.42118 2021-06-24T13:06:13.985 UTC 126.42118 2021-06-24T13:06:13.985 UTC 126.42118 2021-06-24T13:06:13.985 UTC 126.42118 2021-06-24T13:06:13.985 UTC 0
79 2021-06-24T13:06:14.991 UTC 0 2021-06-24T13:06:14.991 UTC 138.64259 2021-06-24T13:06:14.991 UTC 138.64259 2021-06-24T13:06:14.991 UTC 138.64259 2021-06-24T13:06:14.991 UTC 138.64259 2021-06-24T13:06:14.991 UTC 0
80 2021-06-24T13:06:15.996 UTC 0 2021-06-24T13:06:15.996 UTC 169.36751 2021-06-24T13:06:15.996 UTC 169.36751 2021-06-24T13:06:15.996 UTC 169.36751 2021-06-24T13:06:15.996 UTC 169.36751 2021-06-24T13:06:15.996 UTC 0
81 2021-06-24T13:06:17.000 UTC 0 2021-06-24T13:06:17.000 UTC 194.3941 2021-06-24T13:06:17.000 UTC 194.3941 2021-06-24T13:06:17.000 UTC 194.3941 2021-06-24T13:06:17.000 UTC 194.3941 2021-06-24T13:06:17.000 UTC 0
82 2021-06-24T13:06:18.016 UTC 0 2021-06-24T13:06:18.016 UTC 182.3653 2021-06-24T13:06:18.016 UTC 182.3653 2021-06-24T13:06:18.016 UTC 182.3653 2021-06-24T13:06:18.016 UTC 182.3653 2021-06-24T13:06:18.016 UTC 0
83 2021-06-24T13:06:19.074 UTC 0 2021-06-24T13:06:19.074 UTC 177.53078 2021-06-24T13:06:19.074 UTC 177.53078 2021-06-24T13:06:19.074 UTC 177.53078 2021-06-24T13:06:19.074 UTC 177.53078 2021-06-24T13:06:19.074 UTC 0
84 2021-06-24T13:06:20.078 UTC 0 2021-06-24T13:06:20.078 UTC 176.84158 2021-06-24T13:06:20.078 UTC 176.84158 2021-06-24T13:06:20.078 UTC 176.84158 2021-06-24T13:06:20.078 UTC 176.84158 2021-06-24T13:06:20.078 UTC 0
85 2021-06-24T13:06:21.126 UTC 0 2021-06-24T13:06:21.126 UTC 156.20589 2021-06-24T13:06:21.126 UTC 156.20589 2021-06-24T13:06:21.126 UTC 156.20589 2021-06-24T13:06:21.126 UTC 156.20589 2021-06-24T13:06:21.126 UTC 0
86 2021-06-24T13:06:22.175 UTC 0 2021-06-24T13:06:22.175 UTC 161.65611 2021-06-24T13:06:22.175 UTC 161.65611 2021-06-24T13:06:22.175 UTC 161.65611 2021-06-24T13:06:22.175 UTC 161.65611 2021-06-24T13:06:22.175 UTC 0
87 2021-06-24T13:06:24.014 UTC 0 2021-06-24T13:06:24.014 UTC 179.27208 2021-06-24T13:06:24.014 UTC 179.27208 2021-06-24T13:06:24.014 UTC 179.27208 2021-06-24T13:06:24.014 UTC 179.27208 2021-06-24T13:06:24.014 UTC 0
88 2021-06-24T13:06:25.138 UTC 0 2021-06-24T13:06:25.138 UTC 179.96647 2021-06-24T13:06:25.138 UTC 179.96647 2021-06-24T13:06:25.138 UTC 179.96647 2021-06-24T13:06:25.138 UTC 179.96647 2021-06-24T13:06:25.138 UTC 0
89 2021-06-24T13:06:26.153 UTC 0 2021-06-24T13:06:26.153 UTC 179.96647 2021-06-24T13:06:26.153 UTC 179.96647 2021-06-24T13:06:26.153 UTC 179.96647 2021-06-24T13:06:26.153 UTC 179.96647 2021-06-24T13:06:26.153 UTC 0
90 2021-06-24T13:06:27.458 UTC 0 2021-06-24T13:06:27.458 UTC 168.18325 2021-06-24T13:06:27.458 UTC 168.18325 2021-06-24T13:06:27.458 UTC 168.18325 2021-06-24T13:06:27.458 UTC 168.18325 2021-06-24T13:06:27.458 UTC 0
91 2021-06-24T13:06:30.313 UTC 0 2021-06-24T13:06:30.313 UTC 136.23597 2021-06-24T13:06:30.313 UTC 136.23597 2021-06-24T13:06:30.313 UTC 136.23597 2021-06-24T13:06:30.313 UTC 136.23597 2021-06-24T13:06:30.313 UTC 0
92 2021-06-24T13:06:31.446 UTC 0 2021-06-24T13:06:31.446 UTC 0 2021-06-24T13:06:31.446 UTC 0 2021-06-24T13:06:31.446 UTC 0 2021-06-24T13:06:31.446 UTC 0 2021-06-24T13:06:31.446 UTC 0
93 2021-06-24T13:06:32.456 UTC 81.01041 2021-06-24T13:06:32.456 UTC 0 2021-06-24T13:06:32.456 UTC 81.01041 2021-06-24T13:06:32.456 UTC 81.01041 2021-06-24T13:06:32.456 UTC 0 2021-06-24T13:06:32.456 UTC 81.01041
94 2021-06-24T13:06:33.462 UTC 81.01041 2021-06-24T13:06:33.462 UTC 0 2021-06-24T13:06:33.462 UTC 81.01041 2021-06-24T13:06:33.462 UTC 81.01041 2021-06-24T13:06:33.462 UTC 0 2021-06-24T13:06:33.462 UTC 81.01041
95 2021-06-24T13:06:34.466 UTC 115.21429 2021-06-24T13:06:34.466 UTC 0 2021-06-24T13:06:34.466 UTC 115.21429 2021-06-24T13:06:34.466 UTC 115.21429 2021-06-24T13:06:34.466 UTC 0 2021-06-24T13:06:34.466 UTC 115.21429
96 2021-06-24T13:06:36.207 UTC 74.11585 2021-06-24T13:06:36.207 UTC 0 2021-06-24T13:06:36.207 UTC 74.11585 2021-06-24T13:06:36.207 UTC 74.11585 2021-06-24T13:06:36.207 UTC 0 2021-06-24T13:06:36.207 UTC 74.11585
97 2021-06-24T13:06:37.236 UTC 128.71215 2021-06-24T13:06:37.236 UTC 0 2021-06-24T13:06:37.236 UTC 128.71215 2021-06-24T13:06:37.236 UTC 128.71215 2021-06-24T13:06:37.236 UTC 0 2021-06-24T13:06:37.236 UTC 128.71215
98 2021-06-24T13:06:38.239 UTC 136.12795 2021-06-24T13:06:38.239 UTC 0 2021-06-24T13:06:38.239 UTC 136.12795 2021-06-24T13:06:38.239 UTC 136.12795 2021-06-24T13:06:38.239 UTC 0 2021-06-24T13:06:38.239 UTC 136.12795
99 2021-06-24T13:06:39.243 UTC 145.54554 2021-06-24T13:06:39.243 UTC 0 2021-06-24T13:06:39.243 UTC 145.54554 2021-06-24T13:06:39.243 UTC 145.54554 2021-06-24T13:06:39.243 UTC 0 2021-06-24T13:06:39.243 UTC 145.54554
100 2021-06-24T13:06:40.246 UTC 139.12486 2021-06-24T13:06:40.246 UTC 0 2021-06-24T13:06:40.246 UTC 139.12486 2021-06-24T13:06:40.246 UTC 139.12486 2021-06-24T13:06:40.246 UTC 0 2021-06-24T13:06:40.246 UTC 139.12486
101 2021-06-24T13:06:41.818 UTC 131.13375 2021-06-24T13:06:41.818 UTC 0 2021-06-24T13:06:41.818 UTC 131.13375 2021-06-24T13:06:41.818 UTC 131.13375 2021-06-24T13:06:41.818 UTC 0 2021-06-24T13:06:41.818 UTC 131.13375
102 2021-06-24T13:06:42.825 UTC 139.43639 2021-06-24T13:06:42.825 UTC 0 2021-06-24T13:06:42.825 UTC 139.43639 2021-06-24T13:06:42.825 UTC 139.43639 2021-06-24T13:06:42.825 UTC 0 2021-06-24T13:06:42.825 UTC 139.43639
103 2021-06-24T13:06:43.831 UTC 147.65079 2021-06-24T13:06:43.831 UTC 0 2021-06-24T13:06:43.831 UTC 147.65079 2021-06-24T13:06:43.831 UTC 147.65079 2021-06-24T13:06:43.831 UTC 0 2021-06-24T13:06:43.831 UTC 147.65079
104 2021-06-24T13:06:44.849 UTC 160.72659 2021-06-24T13:06:44.849 UTC 0 2021-06-24T13:06:44.849 UTC 160.72659 2021-06-24T13:06:44.849 UTC 160.72659 2021-06-24T13:06:44.849 UTC 0 2021-06-24T13:06:44.849 UTC 160.72659
105 2021-06-24T13:06:45.876 UTC 157.75082 2021-06-24T13:06:45.876 UTC 0 2021-06-24T13:06:45.876 UTC 157.75082 2021-06-24T13:06:45.876 UTC 157.75082 2021-06-24T13:06:45.876 UTC 0 2021-06-24T13:06:45.876 UTC 157.75082
106 2021-06-24T13:06:47.306 UTC 157.75082 2021-06-24T13:06:47.306 UTC 0 2021-06-24T13:06:47.306 UTC 157.75082 2021-06-24T13:06:47.306 UTC 157.75082 2021-06-24T13:06:47.306 UTC 0 2021-06-24T13:06:47.306 UTC 157.75082
107 2021-06-24T13:06:48.402 UTC 140.73814 2021-06-24T13:06:48.402 UTC 0 2021-06-24T13:06:48.402 UTC 140.73814 2021-06-24T13:06:48.402 UTC 140.73814 2021-06-24T13:06:48.402 UTC 0 2021-06-24T13:06:48.402 UTC 140.73814
108 2021-06-24T13:06:49.473 UTC 140.18522 2021-06-24T13:06:49.473 UTC 0 2021-06-24T13:06:49.473 UTC 140.18522 2021-06-24T13:06:49.473 UTC 140.18522 2021-06-24T13:06:49.473 UTC 0 2021-06-24T13:06:49.473 UTC 140.18522
109 2021-06-24T13:06:50.475 UTC 140.9653 2021-06-24T13:06:50.475 UTC 0 2021-06-24T13:06:50.475 UTC 140.9653 2021-06-24T13:06:50.475 UTC 140.9653 2021-06-24T13:06:50.475 UTC 0 2021-06-24T13:06:50.475 UTC 140.9653
110 2021-06-24T13:06:51.479 UTC 149.74488 2021-06-24T13:06:51.479 UTC 0 2021-06-24T13:06:51.479 UTC 149.74488 2021-06-24T13:06:51.479 UTC 149.74488 2021-06-24T13:06:51.479 UTC 0 2021-06-24T13:06:51.479 UTC 149.74488
111 2021-06-24T13:06:52.900 UTC 149.74488 2021-06-24T13:06:52.900 UTC 0 2021-06-24T13:06:52.900 UTC 149.74488 2021-06-24T13:06:52.900 UTC 149.74488 2021-06-24T13:06:52.900 UTC 0 2021-06-24T13:06:52.900 UTC 149.74488
112 2021-06-24T13:06:53.975 UTC 154.60875 2021-06-24T13:06:53.975 UTC 0 2021-06-24T13:06:53.975 UTC 154.60875 2021-06-24T13:06:53.975 UTC 154.60875 2021-06-24T13:06:53.975 UTC 0 2021-06-24T13:06:53.975 UTC 154.60875
113 2021-06-24T13:06:55.081 UTC 157.48085 2021-06-24T13:06:55.081 UTC 0 2021-06-24T13:06:55.081 UTC 157.48085 2021-06-24T13:06:55.081 UTC 157.48085 2021-06-24T13:06:55.081 UTC 0 2021-06-24T13:06:55.081 UTC 157.48085
114 2021-06-24T13:06:56.091 UTC 156.62474 2021-06-24T13:06:56.091 UTC 0 2021-06-24T13:06:56.091 UTC 156.62474 2021-06-24T13:06:56.091 UTC 156.62474 2021-06-24T13:06:56.091 UTC 0 2021-06-24T13:06:56.091 UTC 156.62474
115 2021-06-24T13:06:57.171 UTC 46.2555 2021-06-24T13:06:57.171 UTC 0 2021-06-24T13:06:57.171 UTC 46.2555 2021-06-24T13:06:57.171 UTC 46.2555 2021-06-24T13:06:57.171 UTC 0 2021-06-24T13:06:57.171 UTC 46.2555
116 2021-06-24T13:06:58.775 UTC 46.2555 2021-06-24T13:06:58.775 UTC 0 2021-06-24T13:06:58.775 UTC 46.2555 2021-06-24T13:06:58.775 UTC 46.2555 2021-06-24T13:06:58.775 UTC 0 2021-06-24T13:06:58.775 UTC 46.2555
117 2021-06-24T13:06:59.855 UTC 128.1117 2021-06-24T13:06:59.855 UTC 0 2021-06-24T13:06:59.855 UTC 128.1117 2021-06-24T13:06:59.855 UTC 128.1117 2021-06-24T13:06:59.855 UTC 0 2021-06-24T13:06:59.855 UTC 128.1117
118 2021-06-24T13:07:00.858 UTC 149.7146 2021-06-24T13:07:00.858 UTC 0 2021-06-24T13:07:00.858 UTC 149.7146 2021-06-24T13:07:00.858 UTC 149.7146 2021-06-24T13:07:00.858 UTC 0 2021-06-24T13:07:00.858 UTC 149.7146
119 2021-06-24T13:07:01.861 UTC 138.46164 2021-06-24T13:07:01.861 UTC 0 2021-06-24T13:07:01.861 UTC 138.46164 2021-06-24T13:07:01.861 UTC 138.46164 2021-06-24T13:07:01.861 UTC 0 2021-06-24T13:07:01.861 UTC 138.46164
120 2021-06-24T13:07:02.865 UTC 131.2945 2021-06-24T13:07:02.865 UTC 0 2021-06-24T13:07:02.865 UTC 131.2945 2021-06-24T13:07:02.865 UTC 131.2945 2021-06-24T13:07:02.865 UTC 0 2021-06-24T13:07:02.865 UTC 131.2945
121 2021-06-24T13:07:04.356 UTC 121.3569 2021-06-24T13:07:04.356 UTC 0 2021-06-24T13:07:04.356 UTC 121.3569 2021-06-24T13:07:04.356 UTC 121.3569 2021-06-24T13:07:04.356 UTC 0 2021-06-24T13:07:04.356 UTC 121.3569
122 2021-06-24T13:07:05.406 UTC 130.35988 2021-06-24T13:07:05.406 UTC 0 2021-06-24T13:07:05.406 UTC 130.35988 2021-06-24T13:07:05.406 UTC 130.35988 2021-06-24T13:07:05.406 UTC 0 2021-06-24T13:07:05.406 UTC 130.35988
123 2021-06-24T13:07:06.412 UTC 142.1523 2021-06-24T13:07:06.412 UTC 0 2021-06-24T13:07:06.412 UTC 142.1523 2021-06-24T13:07:06.412 UTC 142.1523 2021-06-24T13:07:06.412 UTC 0 2021-06-24T13:07:06.412 UTC 142.1523
124 2021-06-24T13:07:07.416 UTC 136.28422 2021-06-24T13:07:07.416 UTC 0 2021-06-24T13:07:07.416 UTC 136.28422 2021-06-24T13:07:07.416 UTC 136.28422 2021-06-24T13:07:07.416 UTC 0 2021-06-24T13:07:07.416 UTC 136.28422
125 2021-06-24T13:07:08.419 UTC 134.34447 2021-06-24T13:07:08.419 UTC 0 2021-06-24T13:07:08.419 UTC 134.34447 2021-06-24T13:07:08.419 UTC 134.34447 2021-06-24T13:07:08.419 UTC 0 2021-06-24T13:07:08.419 UTC 134.34447
126 2021-06-24T13:07:10.092 UTC 132.86177 2021-06-24T13:07:10.092 UTC 0 2021-06-24T13:07:10.092 UTC 132.86177 2021-06-24T13:07:10.092 UTC 132.86177 2021-06-24T13:07:10.092 UTC 0 2021-06-24T13:07:10.092 UTC 132.86177
127 2021-06-24T13:07:11.187 UTC 134.60485 2021-06-24T13:07:11.187 UTC 0 2021-06-24T13:07:11.187 UTC 134.60485 2021-06-24T13:07:11.187 UTC 134.60485 2021-06-24T13:07:11.187 UTC 0 2021-06-24T13:07:11.187 UTC 134.60485
128 2021-06-24T13:07:12.193 UTC 137.69828 2021-06-24T13:07:12.193 UTC 0 2021-06-24T13:07:12.193 UTC 137.69828 2021-06-24T13:07:12.193 UTC 137.69828 2021-06-24T13:07:12.193 UTC 0 2021-06-24T13:07:12.193 UTC 137.69828
129 2021-06-24T13:07:13.195 UTC 122.84054 2021-06-24T13:07:13.195 UTC 0 2021-06-24T13:07:13.195 UTC 122.84054 2021-06-24T13:07:13.195 UTC 122.84054 2021-06-24T13:07:13.195 UTC 0 2021-06-24T13:07:13.195 UTC 122.84054
130 2021-06-24T13:07:14.198 UTC 123.97687 2021-06-24T13:07:14.198 UTC 0 2021-06-24T13:07:14.198 UTC 123.97687 2021-06-24T13:07:14.198 UTC 123.97687 2021-06-24T13:07:14.198 UTC 0 2021-06-24T13:07:14.198 UTC 123.97687
131 2021-06-24T13:07:15.559 UTC 122.20608 2021-06-24T13:07:15.559 UTC 0 2021-06-24T13:07:15.559 UTC 122.20608 2021-06-24T13:07:15.559 UTC 122.20608 2021-06-24T13:07:15.559 UTC 0 2021-06-24T13:07:15.559 UTC 122.20608
132 2021-06-24T13:07:16.569 UTC 123.6539 2021-06-24T13:07:16.569 UTC 0 2021-06-24T13:07:16.569 UTC 123.6539 2021-06-24T13:07:16.569 UTC 123.6539 2021-06-24T13:07:16.569 UTC 0 2021-06-24T13:07:16.569 UTC 123.6539
133 2021-06-24T13:07:17.572 UTC 119.04136 2021-06-24T13:07:17.572 UTC 0 2021-06-24T13:07:17.572 UTC 119.04136 2021-06-24T13:07:17.572 UTC 119.04136 2021-06-24T13:07:17.572 UTC 0 2021-06-24T13:07:17.572 UTC 119.04136
134 2021-06-24T13:07:18.575 UTC 118.09227 2021-06-24T13:07:18.575 UTC 0 2021-06-24T13:07:18.575 UTC 118.09227 2021-06-24T13:07:18.575 UTC 118.09227 2021-06-24T13:07:18.575 UTC 0 2021-06-24T13:07:18.575 UTC 118.09227
135 2021-06-24T13:07:19.602 UTC 131.86202 2021-06-24T13:07:19.602 UTC 0 2021-06-24T13:07:19.602 UTC 131.86202 2021-06-24T13:07:19.602 UTC 131.86202 2021-06-24T13:07:19.602 UTC 0 2021-06-24T13:07:19.602 UTC 131.86202
136 2021-06-24T13:07:21.198 UTC 0 2021-06-24T13:07:21.198 UTC 0 2021-06-24T13:07:21.198 UTC 0 2021-06-24T13:07:21.198 UTC 0 2021-06-24T13:07:21.198 UTC 0 2021-06-24T13:07:21.198 UTC 0
137 2021-06-24T13:07:22.307 UTC 47.09622 2021-06-24T13:07:22.307 UTC 0 2021-06-24T13:07:22.307 UTC 47.09622 2021-06-24T13:07:22.307 UTC 47.09622 2021-06-24T13:07:22.307 UTC 0 2021-06-24T13:07:22.307 UTC 47.09622
138 2021-06-24T13:07:23.342 UTC 113.1122 2021-06-24T13:07:23.342 UTC 0 2021-06-24T13:07:23.342 UTC 113.1122 2021-06-24T13:07:23.342 UTC 113.1122 2021-06-24T13:07:23.342 UTC 0 2021-06-24T13:07:23.342 UTC 113.1122
139 2021-06-24T13:07:24.346 UTC 183.21198 2021-06-24T13:07:24.346 UTC 0 2021-06-24T13:07:24.346 UTC 183.21198 2021-06-24T13:07:24.346 UTC 183.21198 2021-06-24T13:07:24.346 UTC 0 2021-06-24T13:07:24.346 UTC 183.21198
140 2021-06-24T13:07:25.350 UTC 200.66185 2021-06-24T13:07:25.350 UTC 0 2021-06-24T13:07:25.350 UTC 200.66185 2021-06-24T13:07:25.350 UTC 200.66185 2021-06-24T13:07:25.350 UTC 0 2021-06-24T13:07:25.350 UTC 200.66185
141 2021-06-24T13:07:27.258 UTC 200.66185 2021-06-24T13:07:27.258 UTC 0 2021-06-24T13:07:27.258 UTC 200.66185 2021-06-24T13:07:27.258 UTC 200.66185 2021-06-24T13:07:27.258 UTC 0 2021-06-24T13:07:27.258 UTC 200.66185
142 2021-06-24T13:07:28.435 UTC 183.28354 2021-06-24T13:07:28.435 UTC 0 2021-06-24T13:07:28.435 UTC 183.28354 2021-06-24T13:07:28.435 UTC 183.28354 2021-06-24T13:07:28.435 UTC 0 2021-06-24T13:07:28.435 UTC 183.28354
143 2021-06-24T13:07:29.439 UTC 179.58321 2021-06-24T13:07:29.439 UTC 0 2021-06-24T13:07:29.439 UTC 179.58321 2021-06-24T13:07:29.439 UTC 179.58321 2021-06-24T13:07:29.439 UTC 0 2021-06-24T13:07:29.439 UTC 179.58321
144 2021-06-24T13:07:30.443 UTC 178.73124 2021-06-24T13:07:30.443 UTC 0 2021-06-24T13:07:30.443 UTC 178.73124 2021-06-24T13:07:30.443 UTC 178.73124 2021-06-24T13:07:30.443 UTC 0 2021-06-24T13:07:30.443 UTC 178.73124
145 2021-06-24T13:07:31.447 UTC 186.23463 2021-06-24T13:07:31.447 UTC 0 2021-06-24T13:07:31.447 UTC 186.23463 2021-06-24T13:07:31.447 UTC 186.23463 2021-06-24T13:07:31.447 UTC 0 2021-06-24T13:07:31.447 UTC 186.23463
146 2021-06-24T13:07:33.039 UTC 196.21518 2021-06-24T13:07:33.039 UTC 0 2021-06-24T13:07:33.039 UTC 196.21518 2021-06-24T13:07:33.039 UTC 196.21518 2021-06-24T13:07:33.039 UTC 0 2021-06-24T13:07:33.039 UTC 196.21518
147 2021-06-24T13:07:36.225 UTC 182.65512 2021-06-24T13:07:36.225 UTC 0 2021-06-24T13:07:36.225 UTC 182.65512 2021-06-24T13:07:36.225 UTC 182.65512 2021-06-24T13:07:36.225 UTC 0 2021-06-24T13:07:36.225 UTC 182.65512
148 2021-06-24T13:07:37.306 UTC 153.38336 2021-06-24T13:07:37.306 UTC 0 2021-06-24T13:07:37.306 UTC 153.38336 2021-06-24T13:07:37.306 UTC 153.38336 2021-06-24T13:07:37.306 UTC 0 2021-06-24T13:07:37.306 UTC 153.38336
149 2021-06-24T13:07:38.375 UTC 164.19841 2021-06-24T13:07:38.375 UTC 0 2021-06-24T13:07:38.375 UTC 164.19841 2021-06-24T13:07:38.375 UTC 164.19841 2021-06-24T13:07:38.375 UTC 0 2021-06-24T13:07:38.375 UTC 164.19841
150 2021-06-24T13:07:39.385 UTC 199.45854 2021-06-24T13:07:39.385 UTC 0 2021-06-24T13:07:39.385 UTC 199.45854 2021-06-24T13:07:39.385 UTC 199.45854 2021-06-24T13:07:39.385 UTC 0 2021-06-24T13:07:39.385 UTC 199.45854
151 2021-06-24T13:07:41.299 UTC 211.0476 2021-06-24T13:07:41.299 UTC 0 2021-06-24T13:07:41.299 UTC 211.0476 2021-06-24T13:07:41.299 UTC 211.0476 2021-06-24T13:07:41.299 UTC 0 2021-06-24T13:07:41.299 UTC 211.0476
152 2021-06-24T13:07:42.321 UTC 142.29037 2021-06-24T13:07:42.321 UTC 0 2021-06-24T13:07:42.321 UTC 142.29037 2021-06-24T13:07:42.321 UTC 142.29037 2021-06-24T13:07:42.321 UTC 0 2021-06-24T13:07:42.321 UTC 142.29037
153 2021-06-24T13:07:43.640 UTC 160.24816 2021-06-24T13:07:43.640 UTC 0 2021-06-24T13:07:43.640 UTC 160.24816 2021-06-24T13:07:43.640 UTC 160.24816 2021-06-24T13:07:43.640 UTC 0 2021-06-24T13:07:43.640 UTC 160.24816
154 2021-06-24T13:07:44.741 UTC 0 2021-06-24T13:07:44.741 UTC 0 2021-06-24T13:07:44.741 UTC 0 2021-06-24T13:07:44.741 UTC 0 2021-06-24T13:07:44.741 UTC 0 2021-06-24T13:07:44.741 UTC 0
155 2021-06-24T13:07:45.785 UTC 0 2021-06-24T13:07:45.785 UTC 0 2021-06-24T13:07:45.785 UTC 0 2021-06-24T13:07:45.785 UTC 0 2021-06-24T13:07:45.785 UTC 0 2021-06-24T13:07:45.785 UTC 0
156 2021-06-24T13:07:46.831 UTC 0 2021-06-24T13:07:46.831 UTC 0 2021-06-24T13:07:46.831 UTC 0 2021-06-24T13:07:46.831 UTC 0 2021-06-24T13:07:46.831 UTC 0 2021-06-24T13:07:46.831 UTC 0
157 2021-06-24T13:07:47.855 UTC 0 2021-06-24T13:07:47.855 UTC 0 2021-06-24T13:07:47.855 UTC 0 2021-06-24T13:07:47.855 UTC 0 2021-06-24T13:07:47.855 UTC 0 2021-06-24T13:07:47.855 UTC 0

View File

@@ -0,0 +1,4 @@
"Throughput for different bands",
"2.4Ghz","5Ghz","Combined-2","Dual",
45.93387,167.48692,213.42079,169.00617
145.23156,128.71492,273.94648,179.92017
Can't render this file because it has a wrong number of fields in line 2.

View File

@@ -0,0 +1,11 @@
/* file reserved for customer styling of reports */
/* rename to custom.css to take effect */
.TitleFont {}
.HeaderFont {}
.TableFont {}
.TableBorder {}
.ImgStyle {}
.HeaderStyle {}
.FooterStyle {}
/* eof */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,2 @@
Date test-rig dut-hw-version dut-sw-version dut-model-num dut-serial-num test-priority test-id short-description pass/fail numeric-score test details Units Graph-Group Subtest-Pass Subtest-Fail
1624540068480 ecw5410 ecw5410-2021-06-16-pending-e8418c0.tar. ecw5410 903cb3944817 100 AP Auto Multi Band Performance Score FAIL 80.48127866945252 Dual-Concurrent vs 90% of Sum: 169.01 Mbps / 192.08 Mbps Dual-Concurrent vs 90% of Sum: 179.92 Mbps / 246.55 Mbps Score Score 0 2
1 Date test-rig dut-hw-version dut-sw-version dut-model-num dut-serial-num test-priority test-id short-description pass/fail numeric-score test details Units Graph-Group Subtest-Pass Subtest-Fail
2 1624540068480 ecw5410 ecw5410-2021-06-16-pending-e8418c0.tar. ecw5410 903cb3944817 100 AP Auto Multi Band Performance Score FAIL 80.48127866945252 Dual-Concurrent vs 90% of Sum: 169.01 Mbps / 192.08 Mbps Dual-Concurrent vs 90% of Sum: 179.92 Mbps / 246.55 Mbps Score Score 0 2

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,256 @@
html, body,div {
margin: 0;
padding:0;
font-size: 14px;
}
h1,h2,h3,h4 {
padding: 0em;
line-height: 1.5;
text-align: left;
color: rgb(42,91,41);
}
@font-face {
font-family: CenturyGothic;
src: url("CenturyGothic.woff"),
url("images/CenturyGothic.woff"),
url("/images/CenturyGothic.woff"),
url("http://www.candelatech.com/images/CenturyGothic.woff");
}
body,h1,h2,h3,h4 {
font-family: CenturyGothic, "Century Gothic", Arial, Helvetica, sans-serif;
}
h1 { font-size: 30px;}
h2 { font-size: 24px;}
h3 { font-size: 18px;}
h4 { font-size: 14px;}
li,pre,tt {
text-align: left;
}
pre {
font-size: 10px;
}
table {
border-collapse: collapse;
background: #e0e0e0;
}
table, td, th {
border: 1px solid gray;
padding 4px;
}
table.noborder, table.noborder td, table.noborder th {
border: 0 none;
}
td {
background: white;
}
td.ar {
text-align: right;
}
th {
color: rgb(42,91,41);
text-align: center;
}
#lf_title {
text-align: center;
background-image: url(candela_swirl_small-72h.png);
background-position: right;
background-repeat: no-repeat;
height: 90px;
}
#new_chart {
display: block;
height: 250px;
min-width: 200px;
width: 80%;
border: 1px solid black;
margin: 14px auto;
padding: 14px;
vertical-align: bottom;
text-align: center;
}
.lf_chart {
margin: 1em;
padding: 5px;
}
#error_types ul {
background: #f0f0f0;
font-size: 12px;
line-height: 1.5;
margin: 1em;
padding: 0.25em inherit 0.25em inherit;
max-height: 8em;
overflow: auto;
}
li {
line-height: 1.5;
}
.contentDiv {
margin: 1em 0.25in;
}
.ct-point {
stroke-width: 6px;}
.o_el {
display: inline-block;
width: 100px;
height: 230px;
border: none;
margin: 1px 1px 16px 1px;
padding: 10px 10px 0 10px;
background: #eee;
text-align: center;
vertical-align: bottom;
}
.bar_el {
display: block;
background: green;
border: none;
min-height: 1px;
margin: 0 0 5px 0;
padding: 0;
text-align: center;
}
.label_el {
color: black;
display: block;
font-size: 14px;
font-family: Arial,Helvetica,sans-serif,mono;
margin: 1px;
text-align: center;
vertical-align: bottom;
width: inherit;
}
.value_el {
font-family: Arial,Helvetica,sans-serif,mono;
color: black;
display: block;
font-size: 14px;
margin: 0 auto;
padding: none;
border: none;
background: white;
text-align: center;
vertical-align: bottom;
width: auto;
}
.value_el>span {
background: #f0f0f0a0;
border: 1px solid #f0f0f0a0;
border-radius: 5px;
padding: 1px;
min-width: 2em;
}
.error {
color: red;
}
@media only screen {
.hideFromPrint { }
.hideFromScreen { display:none; }
}
@media only print {
.hideFromScreen { }
.hideFromPrint { display:none; }
}
/* these styles will get overridden by custom.css */
.TitleFontScreen {
margin-left:auto;
margin-right:auto;
margin-top: 0;
margin-bottom: 0;
font-size: 50px;
padding-top: 1em;
}
.TitleFontPrint {
line-height: 1;
margin-left:0px;
margin-right:auto;
margin-top: 0;
margin-bottom: 0;
font-size: 50px;
padding-top: 20px;
padding-left: 20px;
}
.TitleFontPrintSub {
line-height: 1;
margin-left:0px;
margin-right:auto;
margin-top: 0;
margin-bottom: 0;
/*font-size: 20px; Let 'h3', etc control this */
padding-top: 0px;
padding-left: 20px;
}
.HeaderFont {}
.TableFont {}
.TableBorder {}
.ImgStyle {}
div.Section h1, div.Section h2 {
margin: 0 0 0 0em;
}
div.HeaderStyle h1, div.HeaderStyle h2 {
text-align: left;
margin: 0 0 0 0;
}
div.Section {
padding 5px;
position: relative;
}
div.Section img {
margin: 0;
padding: 0;
position: relative;
top: 50%;
transform: translateY(-50%);
}
div.FooterStyle {
width: 100%;
vertical-align: middle;
border: 0 none;
border-top: 2px solid #2A5B29;
color: #2A5B29;
font-size: 12px;
margin-top: 2em;
}
div.FooterStyle img {
width: auto;
height: auto;
text-align: right;
}
div.FooterStyle span.Gradient {
background: white;
color: #2A5B29;
display: inline-block;
height: 30px;
line-height: 1;
padding-top: 22px;
padding-bottom: 20px;
padding-left: 2em;
vertical-align: middle;
max-width:80%;
float:left;
width:50%;
}
.FooterStyle a, .FooterStyle a:visited {
color: #2A5B29;
font-size: 12px;
line-height: 1;
height: 30px;
margin: 0;
padding: 0;
vertical-align: middle;
}
div.FooterStyle a.LogoImgLink {
display: inline-block;
text-align: right;
float: right;
}
a .LogoImgLink {
}
a.LogoImgLink img {
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,48 @@
"Endpoint RX Packet Loss Percentage",
Date,"cv_udp-1.1-1.wlan000--1.0.0-A/Packet Loss Percent",Date,"cv_udp-1.1-1.wlan000--1.0.0-B/Packet Loss Percent",Date,"cv_tcp-1.1-1.wlan000--1.0.0-A/Packet Loss Percent",Date,"cv_tcp-1.1-1.wlan000--1.0.0-B/Packet Loss Percent",
NA,NA,NA,NA,"2021-06-14T06:18:29.353 UTC",0,"2021-06-14T06:18:29.353 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:31.119 UTC",0,"2021-06-14T06:18:31.119 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:32.314 UTC",0,"2021-06-14T06:18:32.314 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:33.423 UTC",0,"2021-06-14T06:18:33.423 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:34.558 UTC",0,"2021-06-14T06:18:34.558 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:36.329 UTC",0,"2021-06-14T06:18:36.329 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:37.527 UTC",0,"2021-06-14T06:18:37.527 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:38.612 UTC",0,"2021-06-14T06:18:38.612 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:39.718 UTC",0,"2021-06-14T06:18:39.718 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:40.833 UTC",0,"2021-06-14T06:18:40.833 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:41.941 UTC",0,"2021-06-14T06:18:41.941 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:43.908 UTC",0,"2021-06-14T06:18:43.908 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:45.097 UTC",0,"2021-06-14T06:18:45.097 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:46.300 UTC",0,"2021-06-14T06:18:46.300 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:47.459 UTC",0,"2021-06-14T06:18:47.459 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:49.925 UTC",0,"2021-06-14T06:18:49.925 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:51.046 UTC",0,"2021-06-14T06:18:51.046 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:52.185 UTC",0,"2021-06-14T06:18:52.185 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:54.069 UTC",0,"2021-06-14T06:18:54.069 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:55.565 UTC",0,"2021-06-14T06:18:55.565 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:56.700 UTC",0,"2021-06-14T06:18:56.700 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:57.858 UTC",0,"2021-06-14T06:18:57.858 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:59.822 UTC",0,"2021-06-14T06:18:59.822 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:01.008 UTC",0,"2021-06-14T06:19:01.008 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:02.203 UTC",0,"2021-06-14T06:19:02.203 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:03.375 UTC",0,"2021-06-14T06:19:03.375 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:05.214 UTC",0,"2021-06-14T06:19:05.214 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:06.582 UTC",0,"2021-06-14T06:19:06.582 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:07.740 UTC",0,"2021-06-14T06:19:07.740 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:08.908 UTC",0,"2021-06-14T06:19:08.908 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:10.553 UTC",0,"2021-06-14T06:19:10.553 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:11.905 UTC",0,"2021-06-14T06:19:11.905 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:13.039 UTC",0,"2021-06-14T06:19:13.039 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:14.170 UTC",0,"2021-06-14T06:19:14.170 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:15.985 UTC",0,"2021-06-14T06:19:15.985 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:17.198 UTC",0,"2021-06-14T06:19:17.198 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:18.389 UTC",0,"2021-06-14T06:19:18.389 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:19.535 UTC",0,"2021-06-14T06:19:19.535 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:21.236 UTC",0,"2021-06-14T06:19:21.236 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:22.461 UTC",0,"2021-06-14T06:19:22.461 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:23.611 UTC",0,"2021-06-14T06:19:23.611 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:24.730 UTC",0,"2021-06-14T06:19:24.730 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:26.535 UTC",0,"2021-06-14T06:19:26.535 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:27.696 UTC",0,"2021-06-14T06:19:27.696 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:28.941 UTC",0,"2021-06-14T06:19:28.941 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:30.055 UTC",0,"2021-06-14T06:19:30.055 UTC",0,
Can't render this file because it has a wrong number of fields in line 2.

View File

@@ -0,0 +1,3 @@
"Latency vs Loops",
"loop-1",
12902
Can't render this file because it has a wrong number of fields in line 3.

View File

@@ -0,0 +1,3 @@
"RX Pps vs Loops",
"loop-1",
9.54248
Can't render this file because it has a wrong number of fields in line 3.

View File

@@ -0,0 +1,59 @@
"Realtime Throughput",
Date,"Total Upload/RX (Mbps)",Date,"Total Download/RX (Mbps)",Date,"UL + DL Sum/RX (Mbps)",
"2021-06-14T06:18:14.491 UTC",0,"2021-06-14T06:18:14.491 UTC",0,"2021-06-14T06:18:14.491 UTC",0,
"2021-06-14T06:18:15.696 UTC",0,"2021-06-14T06:18:15.696 UTC",0,"2021-06-14T06:18:15.696 UTC",0,
"2021-06-14T06:18:16.929 UTC",0,"2021-06-14T06:18:16.929 UTC",0,"2021-06-14T06:18:16.929 UTC",0,
"2021-06-14T06:18:18.013 UTC",0,"2021-06-14T06:18:18.013 UTC",0,"2021-06-14T06:18:18.013 UTC",0,
"2021-06-14T06:18:19.762 UTC",0,"2021-06-14T06:18:19.762 UTC",0,"2021-06-14T06:18:19.762 UTC",0,
"2021-06-14T06:18:20.906 UTC",0,"2021-06-14T06:18:20.906 UTC",0,"2021-06-14T06:18:20.906 UTC",0,
"2021-06-14T06:18:22.048 UTC",0,"2021-06-14T06:18:22.048 UTC",0,"2021-06-14T06:18:22.048 UTC",0,
"2021-06-14T06:18:23.187 UTC",0,"2021-06-14T06:18:23.187 UTC",0,"2021-06-14T06:18:23.187 UTC",0,
"2021-06-14T06:18:25.015 UTC",0,"2021-06-14T06:18:25.015 UTC",0,"2021-06-14T06:18:25.015 UTC",0,
"2021-06-14T06:18:26.182 UTC",0,"2021-06-14T06:18:26.182 UTC",0,"2021-06-14T06:18:26.182 UTC",0,
"2021-06-14T06:18:28.153 UTC",0,"2021-06-14T06:18:28.153 UTC",0,"2021-06-14T06:18:28.153 UTC",0,
"2021-06-14T06:18:29.442 UTC",1.75003,"2021-06-14T06:18:29.442 UTC",0,"2021-06-14T06:18:29.442 UTC",1.75003,
"2021-06-14T06:18:31.174 UTC",1.75003,"2021-06-14T06:18:31.174 UTC",1.80106,"2021-06-14T06:18:31.174 UTC",3.55109,
"2021-06-14T06:18:32.316 UTC",2.87806,"2021-06-14T06:18:32.316 UTC",5.20833,"2021-06-14T06:18:32.316 UTC",8.08638,
"2021-06-14T06:18:33.426 UTC",3.2864,"2021-06-14T06:18:33.426 UTC",3.45554,"2021-06-14T06:18:33.426 UTC",6.74194,
"2021-06-14T06:18:34.560 UTC",4.04095,"2021-06-14T06:18:34.560 UTC",1.26318,"2021-06-14T06:18:34.560 UTC",5.30413,
"2021-06-14T06:18:36.404 UTC",4.73456,"2021-06-14T06:18:36.404 UTC",0.31271,"2021-06-14T06:18:36.404 UTC",5.04727,
"2021-06-14T06:18:37.534 UTC",3.89843,"2021-06-14T06:18:37.534 UTC",4.1251,"2021-06-14T06:18:37.534 UTC",8.02353,
"2021-06-14T06:18:38.614 UTC",4.17425,"2021-06-14T06:18:38.614 UTC",7.22493,"2021-06-14T06:18:38.614 UTC",11.39918,
"2021-06-14T06:18:39.720 UTC",4.03886,"2021-06-14T06:18:39.720 UTC",4.27919,"2021-06-14T06:18:39.720 UTC",8.31805,
"2021-06-14T06:18:40.835 UTC",4.41466,"2021-06-14T06:18:40.835 UTC",4.67455,"2021-06-14T06:18:40.835 UTC",9.0892,
"2021-06-14T06:18:41.944 UTC",3.85986,"2021-06-14T06:18:41.944 UTC",1.21643,"2021-06-14T06:18:41.944 UTC",5.07629,
"2021-06-14T06:18:43.911 UTC",6.43784,"2021-06-14T06:18:43.911 UTC",0.68502,"2021-06-14T06:18:43.911 UTC",7.12286,
"2021-06-14T06:18:45.104 UTC",10.06896,"2021-06-14T06:18:45.104 UTC",2.25064,"2021-06-14T06:18:45.104 UTC",12.3196,
"2021-06-14T06:18:46.305 UTC",19.0978,"2021-06-14T06:18:46.305 UTC",4.0045,"2021-06-14T06:18:46.305 UTC",23.1023,
"2021-06-14T06:18:48.754 UTC",36.90406,"2021-06-14T06:18:48.754 UTC",4.86103,"2021-06-14T06:18:48.754 UTC",41.76509,
"2021-06-14T06:18:49.929 UTC",53.73509,"2021-06-14T06:18:49.929 UTC",5.78265,"2021-06-14T06:18:49.929 UTC",59.51774,
"2021-06-14T06:18:51.049 UTC",66.41366,"2021-06-14T06:18:51.049 UTC",7.63314,"2021-06-14T06:18:51.049 UTC",74.0468,
"2021-06-14T06:18:52.194 UTC",84.9243,"2021-06-14T06:18:52.194 UTC",9.92113,"2021-06-14T06:18:52.194 UTC",94.84543,
"2021-06-14T06:18:54.399 UTC",96.77401,"2021-06-14T06:18:54.399 UTC",9.92113,"2021-06-14T06:18:54.399 UTC",106.69514,
"2021-06-14T06:18:55.568 UTC",94.12947,"2021-06-14T06:18:55.568 UTC",7.71467,"2021-06-14T06:18:55.568 UTC",101.84414,
"2021-06-14T06:18:56.709 UTC",96.54569,"2021-06-14T06:18:56.709 UTC",8.34182,"2021-06-14T06:18:56.709 UTC",104.8875,
"2021-06-14T06:18:57.866 UTC",98.07408,"2021-06-14T06:18:57.866 UTC",8.86503,"2021-06-14T06:18:57.866 UTC",106.93911,
"2021-06-14T06:18:59.826 UTC",94.74527,"2021-06-14T06:18:59.826 UTC",7.48923,"2021-06-14T06:18:59.826 UTC",102.2345,
"2021-06-14T06:19:01.015 UTC",94.41135,"2021-06-14T06:19:01.015 UTC",7.34423,"2021-06-14T06:19:01.015 UTC",101.75558,
"2021-06-14T06:19:02.206 UTC",95.25536,"2021-06-14T06:19:02.206 UTC",8.33255,"2021-06-14T06:19:02.206 UTC",103.58791,
"2021-06-14T06:19:03.387 UTC",97.57287,"2021-06-14T06:19:03.387 UTC",8.50956,"2021-06-14T06:19:03.387 UTC",106.08243,
"2021-06-14T06:19:05.376 UTC",99.95112,"2021-06-14T06:19:05.376 UTC",5.75767,"2021-06-14T06:19:05.376 UTC",105.70879,
"2021-06-14T06:19:06.590 UTC",92.26879,"2021-06-14T06:19:06.590 UTC",4.72484,"2021-06-14T06:19:06.590 UTC",96.99363,
"2021-06-14T06:19:07.743 UTC",86.53777,"2021-06-14T06:19:07.743 UTC",4.7272,"2021-06-14T06:19:07.743 UTC",91.26497,
"2021-06-14T06:19:08.978 UTC",84.74502,"2021-06-14T06:19:08.978 UTC",4.58302,"2021-06-14T06:19:08.978 UTC",89.32804,
"2021-06-14T06:19:10.756 UTC",87.24463,"2021-06-14T06:19:10.756 UTC",4.58302,"2021-06-14T06:19:10.756 UTC",91.82764,
"2021-06-14T06:19:11.916 UTC",92.16941,"2021-06-14T06:19:11.916 UTC",3.65123,"2021-06-14T06:19:11.916 UTC",95.82064,
"2021-06-14T06:19:13.041 UTC",91.02048,"2021-06-14T06:19:13.041 UTC",3.49271,"2021-06-14T06:19:13.041 UTC",94.51319,
"2021-06-14T06:19:14.173 UTC",87.2426,"2021-06-14T06:19:14.173 UTC",2.12289,"2021-06-14T06:19:14.173 UTC",89.36549,
"2021-06-14T06:19:16.022 UTC",86.80179,"2021-06-14T06:19:16.022 UTC",1.62499,"2021-06-14T06:19:16.022 UTC",88.42678,
"2021-06-14T06:19:17.204 UTC",86.8341,"2021-06-14T06:19:17.204 UTC",1.67498,"2021-06-14T06:19:17.204 UTC",88.50908,
"2021-06-14T06:19:18.409 UTC",86.3232,"2021-06-14T06:19:18.409 UTC",1.92374,"2021-06-14T06:19:18.409 UTC",88.24694,
"2021-06-14T06:19:19.624 UTC",84.41218,"2021-06-14T06:19:19.624 UTC",2.04373,"2021-06-14T06:19:19.624 UTC",86.45591,
"2021-06-14T06:19:21.316 UTC",86.27471,"2021-06-14T06:19:21.316 UTC",2.71882,"2021-06-14T06:19:21.316 UTC",88.99353,
"2021-06-14T06:19:22.478 UTC",83.51591,"2021-06-14T06:19:22.478 UTC",2.0343,"2021-06-14T06:19:22.478 UTC",85.55021,
"2021-06-14T06:19:23.613 UTC",84.26147,"2021-06-14T06:19:23.613 UTC",0.70839,"2021-06-14T06:19:23.613 UTC",84.96986,
"2021-06-14T06:19:24.737 UTC",87.03975,"2021-06-14T06:19:24.737 UTC",0.80498,"2021-06-14T06:19:24.737 UTC",87.84473,
"2021-06-14T06:19:26.585 UTC",86.71005,"2021-06-14T06:19:26.585 UTC",0.80498,"2021-06-14T06:19:26.585 UTC",87.51503,
"2021-06-14T06:19:27.763 UTC",86.6069,"2021-06-14T06:19:27.763 UTC",1.32252,"2021-06-14T06:19:27.763 UTC",87.92942,
"2021-06-14T06:19:28.944 UTC",84.86319,"2021-06-14T06:19:28.944 UTC",2.06289,"2021-06-14T06:19:28.944 UTC",86.92608,
"2021-06-14T06:19:30.067 UTC",82.69794,"2021-06-14T06:19:30.067 UTC",2.44029,"2021-06-14T06:19:30.067 UTC",85.13823,
Can't render this file because it has a wrong number of fields in line 2.

View File

@@ -0,0 +1,48 @@
"Rx Errors",
Date,"cv_udp-1.1-1.wlan000--1.0.0-A/Errors",Date,"cv_udp-1.1-1.wlan000--1.0.0-B/Errors",Date,"cv_tcp-1.1-1.wlan000--1.0.0-A/Errors",Date,"cv_tcp-1.1-1.wlan000--1.0.0-B/Errors",
NA,NA,NA,NA,"2021-06-14T06:18:29.353 UTC",0,"2021-06-14T06:18:29.353 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:31.119 UTC",0,"2021-06-14T06:18:31.119 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:32.314 UTC",0,"2021-06-14T06:18:32.314 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:33.423 UTC",0,"2021-06-14T06:18:33.423 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:34.558 UTC",0,"2021-06-14T06:18:34.558 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:36.329 UTC",0,"2021-06-14T06:18:36.329 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:37.527 UTC",0,"2021-06-14T06:18:37.527 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:38.612 UTC",0,"2021-06-14T06:18:38.612 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:39.718 UTC",0,"2021-06-14T06:18:39.718 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:40.833 UTC",0,"2021-06-14T06:18:40.833 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:41.941 UTC",0,"2021-06-14T06:18:41.941 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:43.908 UTC",0,"2021-06-14T06:18:43.908 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:45.097 UTC",0,"2021-06-14T06:18:45.097 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:46.300 UTC",0,"2021-06-14T06:18:46.300 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:47.459 UTC",0,"2021-06-14T06:18:47.459 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:49.925 UTC",0,"2021-06-14T06:18:49.925 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:51.046 UTC",0,"2021-06-14T06:18:51.046 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:52.185 UTC",0,"2021-06-14T06:18:52.185 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:54.069 UTC",0,"2021-06-14T06:18:54.069 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:55.565 UTC",0,"2021-06-14T06:18:55.565 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:56.700 UTC",0,"2021-06-14T06:18:56.700 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:57.858 UTC",0,"2021-06-14T06:18:57.858 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:18:59.822 UTC",0,"2021-06-14T06:18:59.822 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:01.008 UTC",0,"2021-06-14T06:19:01.008 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:02.203 UTC",0,"2021-06-14T06:19:02.203 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:03.375 UTC",0,"2021-06-14T06:19:03.375 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:05.214 UTC",0,"2021-06-14T06:19:05.214 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:06.582 UTC",0,"2021-06-14T06:19:06.582 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:07.740 UTC",0,"2021-06-14T06:19:07.740 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:08.908 UTC",0,"2021-06-14T06:19:08.908 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:10.553 UTC",0,"2021-06-14T06:19:10.553 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:11.905 UTC",0,"2021-06-14T06:19:11.905 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:13.039 UTC",0,"2021-06-14T06:19:13.039 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:14.170 UTC",0,"2021-06-14T06:19:14.170 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:15.985 UTC",0,"2021-06-14T06:19:15.985 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:17.198 UTC",0,"2021-06-14T06:19:17.198 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:18.389 UTC",0,"2021-06-14T06:19:18.389 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:19.535 UTC",0,"2021-06-14T06:19:19.535 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:21.236 UTC",0,"2021-06-14T06:19:21.236 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:22.461 UTC",0,"2021-06-14T06:19:22.461 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:23.611 UTC",0,"2021-06-14T06:19:23.611 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:24.730 UTC",0,"2021-06-14T06:19:24.730 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:26.535 UTC",0,"2021-06-14T06:19:26.535 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:27.696 UTC",0,"2021-06-14T06:19:27.696 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:28.941 UTC",0,"2021-06-14T06:19:28.941 UTC",0,
NA,NA,NA,NA,"2021-06-14T06:19:30.055 UTC",0,"2021-06-14T06:19:30.055 UTC",0,
Can't render this file because it has a wrong number of fields in line 2.

View File

@@ -0,0 +1,3 @@
"Throughput vs Loops",
"loop-1",
71.56142
Can't render this file because it has a wrong number of fields in line 3.

View File

@@ -0,0 +1,11 @@
/* file reserved for customer styling of reports */
/* rename to custom.css to take effect */
.TitleFont {}
.HeaderFont {}
.TableFont {}
.TableBorder {}
.ImgStyle {}
.HeaderStyle {}
.FooterStyle {}
/* eof */

View File

@@ -0,0 +1,495 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<meta name='viewport' content='width=device-width, initial-scale=1' />
<title>Dataplane Test</title> <link rel='shortcut icon' href='canvil.ico' type='image/x-icon' />
<link rel='stylesheet' href='report.css' />
<link rel='stylesheet' href='custom.css' />
<style>
pre {
overflow: auto;
}
img {
width: 100%;
max-width: 8in;
}
</style>
</head>
<body>
<div class='Section report_banner-1000x205' style='background-image:url("report_banner-1000x205.jpg");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
<img align='right' style='padding:0;margin:5;width:200px;' src='CandelaLogo2-90dpi-200x90-trans.png' border='0' />
<div class='HeaderStyle'>
<h1 class='TitleFontPrint'>Dataplane Test</h1><br/><h4 class='TitleFontPrintSub'><br><br><br><br><br>Sun Jun 13 23:19:35 PDT 2021</h4></div>
</div><!-- end section -->
<div class='contentDiv'>
<br>
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
<tr>
<th colspan="2">
Test Setup Information
</th>
</tr>
<tr>
<td>
Device Under Test
</td>
<td>
<table width="100%" border="0" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
<tr>
<td>
Name
</td>
<td colspan="3">
basic-ext-03-03
</td>
</tr>
<tr>
<td>
Software Version
</td>
<td>
ecw5410-1.1.0.tar.gz
</td>
<td>
Hardware Version
</td>
<td>
ecw5410
</td>
</tr>
<tr>
<td>
Model Number
</td>
<td>
ecw5410
</td>
<td>
Serial Number
</td>
<td>
903cb3944857
</td>
</tr>
<tr>
<td>
SSIDs
</td>
<td colspan="3">
<pre>ssid_wpa2_2g </pre>
</td>
</tr>
<tr>
<td>
Passwords
</td>
<td colspan="3">
<pre>something </pre>
</td>
</tr>
<tr>
<td>
BSSIDs
</td>
<td colspan="3">
<pre>90:3c:b3:94:48:58 </pre>
</td>
</tr>
<tr>
<td>
Notes
</td>
<td colspan="3">
[BLANK]
</td>
</tr>
</table>
</td>
</tr>
</table>
<br/>
<h2 align="left">
Objective
</h2>
<p align="left" width="900">
The Candela WiFi data plane test is designed to conduct an automatic
testing of all combinations of station types, MIMO types, Channel
Bandwidths, Traffic types, Traffic direction, Frame sizes etc&#8230; It will
run a quick throughput test at every combination of these test variables
and plot all the results in a set of charts to compare performance. The
user is allowed to define an intended load as a percentage of the max
theoretical PHY rate for every test combination. The expected behavior
is that for every test combination the achieved throughput should be at
least 70% of the theoretical max PHY rate under ideal test conditions.
This test provides a way to go through hundreds of combinations in a
fully automated fashion and very easily find patterns and problem areas
which can be further debugged using more specific testing.
</p>
<br/>
<br/><br/>Throughput for each different traffic type. Datasets with names ending in '-LL' will include the IP, TCP, UDP and Ethernet header bytes in their calculation. For Armageddon traffic only, low-level throughput includes the Ethernet FCS and preamble. Other datasets report 'goodput' for the protocol.
<br/>
<small><br/><a href='csv-data/data-Throughput_vs_Loops-1.csv'>CSV Data for Throughput vs Loops</a><br/></small>
<img src='kpi-chart-0-print.png' alt='Throughput vs Loops'><br/>
<img src='chart-1-print.png' alt='Throughput as % of theoretical vs Packet Size'><br/>
<br/><br/>Pps throughput for each different traffic type. The values are estimated packets-per-second over the DUT, but some protocols such as TCP make this difficult to know for certain, so the value is extrapolated.
<br/>
<small><br/><a href='csv-data/data-RX_Pps_vs_Loops-1.csv'>CSV Data for RX Pps vs Loops</a><br/></small>
<img src='chart-2-print.png' alt='RX Pps vs Loops'><br/>
<br/><br/>Latency for each different traffic type. If opposite-direction traffic is non-zero, then round-trip time will be reported. Otherwise, one-way latency will be reported.
<br/>
<small><br/><a href='csv-data/data-Latency_vs_Loops-1.csv'>CSV Data for Latency vs Loops</a><br/></small>
<img src='chart-3-print.png' alt='Latency vs Loops'><br/>
<br/><br/>Realtime Graph shows summary download and upload RX Goodput rate of connections created by this test. Goodput does not include Ethernet, IP, UDP/TCP header overhead.
<br/>
<small><br/><a href='csv-data/data-Realtime_Throughput-1.csv'>CSV Data for Realtime Throughput</a><br/></small>
<img src='chart-4-print.png' alt='Realtime Throughput'><br/>
<h3>
Test Information
</h3>
<table>
<tr>
<th>
Message
</th>
</tr>
<tr>
<td>
Starting dataplane test with: 1 iterations.
</td>
</tr>
</table>
<br/>
<br/><br/><table border='1' style='font-size:8px'>
<tr><th>Channel</th><th>Frequency</th><th>Security</th><th>NSS</th><th>Cfg-Mode</th><th>Bandwidth</th><th>Pkt</th><th>Traffic-Type</th><th>Direction</th><th>Atten</th><th>Rotation</th><th>Duration</th><th>Offered-1m</th><th>Rx-Bps</th><th>Rx-Bps-1m</th><th>Rx-Bps-LL</th><th>Rx-Bps-3s</th><th>Phy-Rate</th><th>Theoretical</th><th>Throughput%</th><th>RSSI</th><th>Tx-Failed</th><th>Tx-Failed%</th><th>Tx-Rate</th><th>Rx-Rate</th><th>Rpt-Mode</th><th>Rpt-Mode-Brief</th></tr>
<tr><td>6</td><td>2437</td><td>WPA2</td><td>3</td><td>AUTO</td><td>20</td><td>1024</td><td>TCP</td><td>DUT-TX</td><td>NA</td><td>NA</td><td>60</td><td>75.853 Mbps</td><td>69.903 Mbps</td><td>71.561 Mbps</td><td>75.684 Mbps</td><td>83.13 Mbps</td><td>1.3 Gbps</td><td>NA</td><td>NA</td><td>-5</td><td>0 / 119365</td><td>0</td><td>156 Mbps</td><td>19.5 Mbps</td><td>802.11bgn</td><td>802.11n</td></tr>
</table>
<br/><br/>Brief csv report, may be imported into third-party tools.
<br/>
<br/><br/><table border='1' >
<tr><th>Step Index</th><th>Position [Deg]</th><th>Attenuation [dB]</th><th>Throughput [Mbps]</th><th>Beacon RSSI [dBm]</th><th>Data RSSI [dBm]</th></tr>
<tr><td>0</td><td>NA</td><td>0</td><td>69.90</td><td>0</td><td>-5</td></tr>
</table>
<br/><br/>Packet Loss Percentage graph shows the percentage of lost packets as detected by the receiving endpoint due to packet gaps. If there is full packet loss, then this will not report any loss since there will be no gap to detect.
<br/>
<small><br/><a href='csv-data/data-Endpoint_RX_Packet_Loss_Percentage-1.csv'>CSV Data for Endpoint RX Packet Loss Percentage</a><br/></small>
<img src='chart-5-print.png' alt='Endpoint RX Packet Loss Percentage'><br/>
<br/><br/>Error Graph shows occurances of packet errors.
<br/>
<small><br/><a href='csv-data/data-Rx_Errors-1.csv'>CSV Data for Rx Errors</a><br/></small>
<img src='chart-6-print.png' alt='Rx Errors'><br/>
<br>
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
<tr>
<th colspan="2">
Test configuration and LANforge software version
</th>
</tr>
<tr>
<td>
Path Loss
</td>
<td>
10
</td>
</tr>
<tr>
<td>
Requested Speed
</td>
<td>
85%
</td>
</tr>
<tr>
<td>
Requested Opposite Speed
</td>
<td>
85%
</td>
</tr>
<tr>
<td>
Multi-Conn
</td>
<td>
1
</td>
</tr>
<tr>
<td>
Armageddon Multi-Pkt
</td>
<td>
1000
</td>
</tr>
<tr>
<td>
ToS
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Duration:
</td>
<td>
1 min (1 m)
</td>
</tr>
<tr>
<td>
Settle Time:
</td>
<td>
1 sec (1 s)
</td>
</tr>
<tr>
<td>
Send Buffer Size:
</td>
<td>
OS Default
</td>
</tr>
<tr>
<td>
Receive Buffer Size:
</td>
<td>
OS Default
</td>
</tr>
<tr>
<td>
Channels
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Spatial Streams
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Bandwidth
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Attenuator-1
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Attenuation-1
</td>
<td>
0..+50..950
</td>
</tr>
<tr>
<td>
Attenuator-2
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Attenuation-2
</td>
<td>
0..+50..950
</td>
</tr>
<tr>
<td>
Turntable Chamber
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Turntable Angles
</td>
<td>
0..+45..359
</td>
</tr>
<tr>
<td>
Modes
</td>
<td>
Auto
</td>
</tr>
<tr>
<td>
Packet Size
</td>
<td>
1024
</td>
</tr>
<tr>
<td>
Security
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Traffic Type
</td>
<td>
TCP
</td>
</tr>
<tr>
<td>
Direction
</td>
<td>
DUT Transmit
</td>
</tr>
<tr>
<td>
Upstream Port
</td>
<td>
1.1.eth1 Firmware: 0. 6-5 Resource: lf0350-9540
</td>
</tr>
<tr>
<td>
WiFi Port
</td>
<td>
1.1.wlan000 Firmware: 10.1-ct-8x-__xtH-022-bcdb24ff Resource:
lf0350-9540
</td>
</tr>
<tr>
<td>
Outer Loop is Attenuation
</td>
<td>
false
</td>
</tr>
<tr>
<td>
Show Events
</td>
<td>
true
</td>
</tr>
<tr>
<td>
Auto Save Report
</td>
<td>
true
</td>
</tr>
<tr>
<td>
Build Date
</td>
<td>
Wed 26 May 2021 11:06:38 AM PDT
</td>
</tr>
<tr>
<td>
Build Version
</td>
<td>
5.4.3
</td>
</tr>
<tr>
<td>
Git Version
</td>
<td>
899b50be0d42cdc86f0a6ae44d9bd6aaab43fe0b
</td>
</tr>
</table>
<br/>
<br/><a href='kpi.csv'>Key Performance Indicators CSV</a><br/><br/>
</div><!-- end content-div -->
<div class='FooterStyle'><span class='Gradient'>Generated by Candela Technologies LANforge network testing tool.<br/>
<a href='https://www.candelatech.com/' target='_blank'>www.candelatech.com</a>
</span>
<a align='right' class='LogoImgLink' href='https://www.candelatech.com/' target='_blank'><img align='right' src='logo.png'></a>
</div><br/>
</body>
</html>

View File

@@ -0,0 +1,500 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<meta name='viewport' content='width=device-width, initial-scale=1' />
<title>Dataplane Test</title> <link rel='shortcut icon' href='canvil.ico' type='image/x-icon' />
<link rel='stylesheet' href='report.css' />
<link rel='stylesheet' href='custom.css' />
<style>
pre {
overflow: auto;
}
img {
width: 100%;
max-width: 8in;
}
</style>
</head>
<body>
<div class='Section report_banner-1000x205' style='background-image:url("report_banner-1000x205.jpg");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
<img align='right' style='padding:0;margin:5;width:200px;' src='CandelaLogo2-90dpi-200x90-trans.png' border='0' />
<div class='HeaderStyle'>
<h1 class='TitleFontPrint'>Dataplane Test</h1><br/><h4 class='TitleFontPrintSub'><br><br><br><br><br>Sun Jun 13 23:19:31 PDT 2021</h4></div>
</div><!-- end section -->
<div class='contentDiv'>
<a href='dataplane-report-2021-06-13-11-18-08.pdf'>PDF Report</a><br/>
<br>
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
<tr>
<th colspan="2">
Test Setup Information
</th>
</tr>
<tr>
<td>
Device Under Test
</td>
<td>
<table width="100%" border="0" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
<tr>
<td>
Name
</td>
<td colspan="3">
basic-ext-03-03
</td>
</tr>
<tr>
<td>
Software Version
</td>
<td>
ecw5410-1.1.0.tar.gz
</td>
<td>
Hardware Version
</td>
<td>
ecw5410
</td>
</tr>
<tr>
<td>
Model Number
</td>
<td>
ecw5410
</td>
<td>
Serial Number
</td>
<td>
903cb3944857
</td>
</tr>
<tr>
<td>
SSIDs
</td>
<td colspan="3">
<pre>ssid_wpa2_2g </pre>
</td>
</tr>
<tr>
<td>
Passwords
</td>
<td colspan="3">
<pre>something </pre>
</td>
</tr>
<tr>
<td>
BSSIDs
</td>
<td colspan="3">
<pre>90:3c:b3:94:48:58 </pre>
</td>
</tr>
<tr>
<td>
Notes
</td>
<td colspan="3">
[BLANK]
</td>
</tr>
</table>
</td>
</tr>
</table>
<br/>
<h2 align="left">
Objective
</h2>
<p align="left" width="900">
The Candela WiFi data plane test is designed to conduct an automatic
testing of all combinations of station types, MIMO types, Channel
Bandwidths, Traffic types, Traffic direction, Frame sizes etc&#8230; It will
run a quick throughput test at every combination of these test variables
and plot all the results in a set of charts to compare performance. The
user is allowed to define an intended load as a percentage of the max
theoretical PHY rate for every test combination. The expected behavior
is that for every test combination the achieved throughput should be at
least 70% of the theoretical max PHY rate under ideal test conditions.
This test provides a way to go through hundreds of combinations in a
fully automated fashion and very easily find patterns and problem areas
which can be further debugged using more specific testing.
</p>
<br/>
<br/><br/>Throughput for each different traffic type. Datasets with names ending in '-LL' will include the IP, TCP, UDP and Ethernet header bytes in their calculation. For Armageddon traffic only, low-level throughput includes the Ethernet FCS and preamble. Other datasets report 'goodput' for the protocol.
<br/>
<small><br/><a href='csv-data/data-Throughput_vs_Loops-1.csv'>CSV Data for Throughput vs Loops</a><br/></small>
<img src='kpi-chart-0.png' alt='Throughput vs Loops'><br/>
<img src='chart-1.png' alt='Throughput as % of theoretical vs Packet Size'><br/>
<br/><br/>Pps throughput for each different traffic type. The values are estimated packets-per-second over the DUT, but some protocols such as TCP make this difficult to know for certain, so the value is extrapolated.
<br/>
<small><br/><a href='csv-data/data-RX_Pps_vs_Loops-1.csv'>CSV Data for RX Pps vs Loops</a><br/></small>
<img src='chart-2.png' alt='RX Pps vs Loops'><br/>
<br/><br/>Latency for each different traffic type. If opposite-direction traffic is non-zero, then round-trip time will be reported. Otherwise, one-way latency will be reported.
<br/>
<small><br/><a href='csv-data/data-Latency_vs_Loops-1.csv'>CSV Data for Latency vs Loops</a><br/></small>
<img src='chart-3.png' alt='Latency vs Loops'><br/>
<br/><br/>Realtime Graph shows summary download and upload RX Goodput rate of connections created by this test. Goodput does not include Ethernet, IP, UDP/TCP header overhead.
<br/>
<small><br/><a href='csv-data/data-Realtime_Throughput-1.csv'>CSV Data for Realtime Throughput</a><br/></small>
<img src='chart-4.png' alt='Realtime Throughput'><br/>
<h3>
Test Information
</h3>
<table>
<tr>
<th>
Message
</th>
</tr>
<tr>
<td>
Starting dataplane test with: 1 iterations.
</td>
</tr>
</table>
<br/>
<br/><br/><table border='1' style='font-size:8px'>
<tr><th>Channel</th><th>Frequency</th><th>Security</th><th>NSS</th><th>Cfg-Mode</th><th>Bandwidth</th><th>Pkt</th><th>Traffic-Type</th><th>Direction</th><th>Atten</th><th>Rotation</th><th>Duration</th><th>Offered-1m</th><th>Rx-Bps</th><th>Rx-Bps-1m</th><th>Rx-Bps-LL</th><th>Rx-Bps-3s</th><th>Phy-Rate</th><th>Theoretical</th><th>Throughput%</th><th>RSSI</th><th>Tx-Failed</th><th>Tx-Failed%</th><th>Tx-Rate</th><th>Rx-Rate</th><th>Rpt-Mode</th><th>Rpt-Mode-Brief</th></tr>
<tr><td>6</td><td>2437</td><td>WPA2</td><td>3</td><td>AUTO</td><td>20</td><td>1024</td><td>TCP</td><td>DUT-TX</td><td>NA</td><td>NA</td><td>60</td><td>75.853 Mbps</td><td>69.903 Mbps</td><td>71.561 Mbps</td><td>75.684 Mbps</td><td>83.13 Mbps</td><td>1.3 Gbps</td><td>NA</td><td>NA</td><td>-5</td><td>0 / 119365</td><td>0</td><td>156 Mbps</td><td>19.5 Mbps</td><td>802.11bgn</td><td>802.11n</td></tr>
</table>
<br/><a href='text-tab-0.csv'>TAB Delineated Data for Table Above</a>
<br/><a href='text-csv-0.csv'>CSV Data for Table Above</a>
<br/><br/>Brief csv report, may be imported into third-party tools.
<br/>
<br/><br/><table border='1' >
<tr><th>Step Index</th><th>Position [Deg]</th><th>Attenuation [dB]</th><th>Throughput [Mbps]</th><th>Beacon RSSI [dBm]</th><th>Data RSSI [dBm]</th></tr>
<tr><td>0</td><td>NA</td><td>0</td><td>69.90</td><td>0</td><td>-5</td></tr>
</table>
<br/><a href='text-tab-1.csv'>TAB Delineated Data for Table Above</a>
<br/><a href='text-csv-1.csv'>CSV Data for Table Above</a>
<br/><br/>Packet Loss Percentage graph shows the percentage of lost packets as detected by the receiving endpoint due to packet gaps. If there is full packet loss, then this will not report any loss since there will be no gap to detect.
<br/>
<small><br/><a href='csv-data/data-Endpoint_RX_Packet_Loss_Percentage-1.csv'>CSV Data for Endpoint RX Packet Loss Percentage</a><br/></small>
<img src='chart-5.png' alt='Endpoint RX Packet Loss Percentage'><br/>
<br/><br/>Error Graph shows occurances of packet errors.
<br/>
<small><br/><a href='csv-data/data-Rx_Errors-1.csv'>CSV Data for Rx Errors</a><br/></small>
<img src='chart-6.png' alt='Rx Errors'><br/>
<br>
<table width="700px" border="1" cellpadding="2" cellspacing="0" style="border-top-color: gray; border-top-style: solid; border-top-width: 1px; border-right-color: gray; border-right-style: solid; border-right-width: 1px; border-bottom-color: gray; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: gray; border-left-style: solid; border-left-width: 1px">
<tr>
<th colspan="2">
Test configuration and LANforge software version
</th>
</tr>
<tr>
<td>
Path Loss
</td>
<td>
10
</td>
</tr>
<tr>
<td>
Requested Speed
</td>
<td>
85%
</td>
</tr>
<tr>
<td>
Requested Opposite Speed
</td>
<td>
85%
</td>
</tr>
<tr>
<td>
Multi-Conn
</td>
<td>
1
</td>
</tr>
<tr>
<td>
Armageddon Multi-Pkt
</td>
<td>
1000
</td>
</tr>
<tr>
<td>
ToS
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Duration:
</td>
<td>
1 min (1 m)
</td>
</tr>
<tr>
<td>
Settle Time:
</td>
<td>
1 sec (1 s)
</td>
</tr>
<tr>
<td>
Send Buffer Size:
</td>
<td>
OS Default
</td>
</tr>
<tr>
<td>
Receive Buffer Size:
</td>
<td>
OS Default
</td>
</tr>
<tr>
<td>
Channels
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Spatial Streams
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Bandwidth
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Attenuator-1
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Attenuation-1
</td>
<td>
0..+50..950
</td>
</tr>
<tr>
<td>
Attenuator-2
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Attenuation-2
</td>
<td>
0..+50..950
</td>
</tr>
<tr>
<td>
Turntable Chamber
</td>
<td>
0
</td>
</tr>
<tr>
<td>
Turntable Angles
</td>
<td>
0..+45..359
</td>
</tr>
<tr>
<td>
Modes
</td>
<td>
Auto
</td>
</tr>
<tr>
<td>
Packet Size
</td>
<td>
1024
</td>
</tr>
<tr>
<td>
Security
</td>
<td>
AUTO
</td>
</tr>
<tr>
<td>
Traffic Type
</td>
<td>
TCP
</td>
</tr>
<tr>
<td>
Direction
</td>
<td>
DUT Transmit
</td>
</tr>
<tr>
<td>
Upstream Port
</td>
<td>
1.1.eth1 Firmware: 0. 6-5 Resource: lf0350-9540
</td>
</tr>
<tr>
<td>
WiFi Port
</td>
<td>
1.1.wlan000 Firmware: 10.1-ct-8x-__xtH-022-bcdb24ff Resource:
lf0350-9540
</td>
</tr>
<tr>
<td>
Outer Loop is Attenuation
</td>
<td>
false
</td>
</tr>
<tr>
<td>
Show Events
</td>
<td>
true
</td>
</tr>
<tr>
<td>
Auto Save Report
</td>
<td>
true
</td>
</tr>
<tr>
<td>
Build Date
</td>
<td>
Wed 26 May 2021 11:06:38 AM PDT
</td>
</tr>
<tr>
<td>
Build Version
</td>
<td>
5.4.3
</td>
</tr>
<tr>
<td>
Git Version
</td>
<td>
899b50be0d42cdc86f0a6ae44d9bd6aaab43fe0b
</td>
</tr>
</table>
<br/>
<br/><a href='kpi.csv'>Key Performance Indicators CSV</a><br/><br/>
</div><!-- end content-div -->
<div class='FooterStyle'><span class='Gradient'>Generated by Candela Technologies LANforge network testing tool.<br/>
<a href='https://www.candelatech.com/' target='_blank'>www.candelatech.com</a>
</span>
<a align='right' class='LogoImgLink' href='https://www.candelatech.com/' target='_blank'><img align='right' src='logo.png'></a>
</div><br/>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@@ -0,0 +1,2 @@
Date test-rig dut-hw-version dut-sw-version dut-model-num dut-serial-num test-priority test-id short-description pass/fail numeric-score test details Units Graph-Group Subtest-Pass Subtest-Fail
1623651570763 ecw5410 ecw5410-1.1.0.tar.gz ecw5410 903cb3944857 90 Dataplane TCP-DUT-TX-1024pkt-sz 69.90298 Throughput at specified settings. Mbps Throughput 0 0
1 Date test-rig dut-hw-version dut-sw-version dut-model-num dut-serial-num test-priority test-id short-description pass/fail numeric-score test details Units Graph-Group Subtest-Pass Subtest-Fail
2 1623651570763 ecw5410 ecw5410-1.1.0.tar.gz ecw5410 903cb3944857 90 Dataplane TCP-DUT-TX-1024pkt-sz 69.90298 Throughput at specified settings. Mbps Throughput 0 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,256 @@
html, body,div {
margin: 0;
padding:0;
font-size: 14px;
}
h1,h2,h3,h4 {
padding: 0em;
line-height: 1.5;
text-align: left;
color: rgb(42,91,41);
}
@font-face {
font-family: CenturyGothic;
src: url("CenturyGothic.woff"),
url("images/CenturyGothic.woff"),
url("/images/CenturyGothic.woff"),
url("http://www.candelatech.com/images/CenturyGothic.woff");
}
body,h1,h2,h3,h4 {
font-family: CenturyGothic, "Century Gothic", Arial, Helvetica, sans-serif;
}
h1 { font-size: 30px;}
h2 { font-size: 24px;}
h3 { font-size: 18px;}
h4 { font-size: 14px;}
li,pre,tt {
text-align: left;
}
pre {
font-size: 10px;
}
table {
border-collapse: collapse;
background: #e0e0e0;
}
table, td, th {
border: 1px solid gray;
padding 4px;
}
table.noborder, table.noborder td, table.noborder th {
border: 0 none;
}
td {
background: white;
}
td.ar {
text-align: right;
}
th {
color: rgb(42,91,41);
text-align: center;
}
#lf_title {
text-align: center;
background-image: url(candela_swirl_small-72h.png);
background-position: right;
background-repeat: no-repeat;
height: 90px;
}
#new_chart {
display: block;
height: 250px;
min-width: 200px;
width: 80%;
border: 1px solid black;
margin: 14px auto;
padding: 14px;
vertical-align: bottom;
text-align: center;
}
.lf_chart {
margin: 1em;
padding: 5px;
}
#error_types ul {
background: #f0f0f0;
font-size: 12px;
line-height: 1.5;
margin: 1em;
padding: 0.25em inherit 0.25em inherit;
max-height: 8em;
overflow: auto;
}
li {
line-height: 1.5;
}
.contentDiv {
margin: 1em 0.25in;
}
.ct-point {
stroke-width: 6px;}
.o_el {
display: inline-block;
width: 100px;
height: 230px;
border: none;
margin: 1px 1px 16px 1px;
padding: 10px 10px 0 10px;
background: #eee;
text-align: center;
vertical-align: bottom;
}
.bar_el {
display: block;
background: green;
border: none;
min-height: 1px;
margin: 0 0 5px 0;
padding: 0;
text-align: center;
}
.label_el {
color: black;
display: block;
font-size: 14px;
font-family: Arial,Helvetica,sans-serif,mono;
margin: 1px;
text-align: center;
vertical-align: bottom;
width: inherit;
}
.value_el {
font-family: Arial,Helvetica,sans-serif,mono;
color: black;
display: block;
font-size: 14px;
margin: 0 auto;
padding: none;
border: none;
background: white;
text-align: center;
vertical-align: bottom;
width: auto;
}
.value_el>span {
background: #f0f0f0a0;
border: 1px solid #f0f0f0a0;
border-radius: 5px;
padding: 1px;
min-width: 2em;
}
.error {
color: red;
}
@media only screen {
.hideFromPrint { }
.hideFromScreen { display:none; }
}
@media only print {
.hideFromScreen { }
.hideFromPrint { display:none; }
}
/* these styles will get overridden by custom.css */
.TitleFontScreen {
margin-left:auto;
margin-right:auto;
margin-top: 0;
margin-bottom: 0;
font-size: 50px;
padding-top: 1em;
}
.TitleFontPrint {
line-height: 1;
margin-left:0px;
margin-right:auto;
margin-top: 0;
margin-bottom: 0;
font-size: 50px;
padding-top: 20px;
padding-left: 20px;
}
.TitleFontPrintSub {
line-height: 1;
margin-left:0px;
margin-right:auto;
margin-top: 0;
margin-bottom: 0;
/*font-size: 20px; Let 'h3', etc control this */
padding-top: 0px;
padding-left: 20px;
}
.HeaderFont {}
.TableFont {}
.TableBorder {}
.ImgStyle {}
div.Section h1, div.Section h2 {
margin: 0 0 0 0em;
}
div.HeaderStyle h1, div.HeaderStyle h2 {
text-align: left;
margin: 0 0 0 0;
}
div.Section {
padding 5px;
position: relative;
}
div.Section img {
margin: 0;
padding: 0;
position: relative;
top: 50%;
transform: translateY(-50%);
}
div.FooterStyle {
width: 100%;
vertical-align: middle;
border: 0 none;
border-top: 2px solid #2A5B29;
color: #2A5B29;
font-size: 12px;
margin-top: 2em;
}
div.FooterStyle img {
width: auto;
height: auto;
text-align: right;
}
div.FooterStyle span.Gradient {
background: white;
color: #2A5B29;
display: inline-block;
height: 30px;
line-height: 1;
padding-top: 22px;
padding-bottom: 20px;
padding-left: 2em;
vertical-align: middle;
max-width:80%;
float:left;
width:50%;
}
.FooterStyle a, .FooterStyle a:visited {
color: #2A5B29;
font-size: 12px;
line-height: 1;
height: 30px;
margin: 0;
padding: 0;
vertical-align: middle;
}
div.FooterStyle a.LogoImgLink {
display: inline-block;
text-align: right;
float: right;
}
a .LogoImgLink {
}
a.LogoImgLink img {
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,2 @@
Channel,Frequency,Security,NSS,Cfg-Mode,Bandwidth,Pkt,Traffic-Type,Direction,Atten,Rotation,Duration,Offered-1m,Rx-Bps,Rx-Bps-1m,Rx-Bps-LL,Rx-Bps-3s,Phy-Rate,Theoretical,Throughput%,RSSI,Tx-Failed,Tx-Failed%,Tx-Rate,Rx-Rate,Rpt-Mode,Rpt-Mode-Brief
6,2437,WPA2,3,AUTO,20,1024,TCP,DUT-TX,NA,NA,60,75.853 Mbps,69.903 Mbps,71.561 Mbps,75.684 Mbps,83.13 Mbps,1.3 Gbps,NA,NA,-5,0 / 119365,0,156 Mbps,19.5 Mbps,802.11bgn,802.11n
1 Channel Frequency Security NSS Cfg-Mode Bandwidth Pkt Traffic-Type Direction Atten Rotation Duration Offered-1m Rx-Bps Rx-Bps-1m Rx-Bps-LL Rx-Bps-3s Phy-Rate Theoretical Throughput% RSSI Tx-Failed Tx-Failed% Tx-Rate Rx-Rate Rpt-Mode Rpt-Mode-Brief
2 6 2437 WPA2 3 AUTO 20 1024 TCP DUT-TX NA NA 60 75.853 Mbps 69.903 Mbps 71.561 Mbps 75.684 Mbps 83.13 Mbps 1.3 Gbps NA NA -5 0 / 119365 0 156 Mbps 19.5 Mbps 802.11bgn 802.11n

View File

@@ -0,0 +1,2 @@
Step Index,Position [Deg],Attenuation [dB],Throughput [Mbps],Beacon RSSI [dBm],Data RSSI [dBm]
0,NA,0,69.90,0,-5
1 Step Index Position [Deg] Attenuation [dB] Throughput [Mbps] Beacon RSSI [dBm] Data RSSI [dBm]
2 0 NA 0 69.90 0 -5

View File

@@ -0,0 +1,2 @@
Channel Frequency Security NSS Cfg-Mode Bandwidth Pkt Traffic-Type Direction Atten Rotation Duration Offered-1m Rx-Bps Rx-Bps-1m Rx-Bps-LL Rx-Bps-3s Phy-Rate Theoretical Throughput% RSSI Tx-Failed Tx-Failed% Tx-Rate Rx-Rate Rpt-Mode Rpt-Mode-Brief
6 2437 WPA2 3 AUTO 20 1024 TCP DUT-TX NA NA 60 75.853 Mbps 69.903 Mbps 71.561 Mbps 75.684 Mbps 83.13 Mbps 1.3 Gbps NA NA -5 0 / 119365 0 156 Mbps 19.5 Mbps 802.11bgn 802.11n
1 Channel Frequency Security NSS Cfg-Mode Bandwidth Pkt Traffic-Type Direction Atten Rotation Duration Offered-1m Rx-Bps Rx-Bps-1m Rx-Bps-LL Rx-Bps-3s Phy-Rate Theoretical Throughput% RSSI Tx-Failed Tx-Failed% Tx-Rate Rx-Rate Rpt-Mode Rpt-Mode-Brief
2 6 2437 WPA2 3 AUTO 20 1024 TCP DUT-TX NA NA 60 75.853 Mbps 69.903 Mbps 71.561 Mbps 75.684 Mbps 83.13 Mbps 1.3 Gbps NA NA -5 0 / 119365 0 156 Mbps 19.5 Mbps 802.11bgn 802.11n

View File

@@ -0,0 +1,2 @@
Step Index Position [Deg] Attenuation [dB] Throughput [Mbps] Beacon RSSI [dBm] Data RSSI [dBm]
0 NA 0 69.90 0 -5
1 Step Index Position [Deg] Attenuation [dB] Throughput [Mbps] Beacon RSSI [dBm] Data RSSI [dBm]
2 0 NA 0 69.90 0 -5

14
requirements.txt Normal file
View File

@@ -0,0 +1,14 @@
allure-pytest
Appium-Python-Client
bs4
influxdb
influxdb-client
pandas
paramiko
perfecto-py37
pytest==6.2.2
requests
scp
selenium
tip-wlan-cloud
xlsxwriter

View File

@@ -1,11 +0,0 @@
FROM python:alpine3.12
WORKDIR /tests
COPY . /tests
RUN mkdir ~/.pip \
&& echo "[global]" > ~/.pip/pip.conf \
&& echo "index-url = https://pypi.org/simple" >> ~/.pip/pip.conf \
&& echo "extra-index-url = https://tip-read:tip-read@tip.jfrog.io/artifactory/api/pypi/tip-wlan-python-pypi-local/simple" >> ~/.pip/pip.conf
RUN pip3 install -r requirements.txt
ENTRYPOINT [ "/bin/sh" ]

View File

@@ -1,3 +0,0 @@
FROM wlan-tip-tests
RUN pip3 install pylint
ENTRYPOINT [ "pylint" ]

View File

@@ -6,7 +6,56 @@
"""
CONFIGURATION = {
"basic-01": {
"advanced-02": {
"controller": {
'url': "https://wlan-portal-svc-nola-01.cicd.lab.wlan.tip.build", # API base url for the controller
'username': 'support@example.com', # cloud controller Login
'password': 'support', # Cloud Controller Login Password
'version': '1.1.0-SNAPSHOT', # Controller version
'commit_date': "2021-04-27" # Controller version sdk, commit date
},
'access_point': [
{
'model': 'eap102', # AP Model, can be found in ap console using "node" command
'mode': 'wifi6', # wifi5/wifi6 can be found on AP Hardware page on Confluence
'serial': '903cb39d6959', # "node" command has serial_number information
'jumphost': True,
# True, if you have AP On serial console and not ssh access, False, if you have AP ssh access from the machine
'ip': "localhost",
# IP Address of System, which has AP Connected to serial cable (if jumphost is True), else - AP IP Address
'username': "lanforge", # ssh username of system (lab-ctlr/ap)
'password': "pumpkin77", # ssh password for system (lab-ctlr/ap)
'port': 8803, # 22, # ssh port for system (lab-ctlr/ap)
'jumphost_tty': '/dev/ttyAP3', # if jumphost is True, enter the serial console device name
'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/ecw5410/dev/eap102-2021-06-25-pending-b6743c3.tar.gz"
# Enter the Target AP Version URL for Testing
}
],
# Traffic generator
"traffic_generator": {
"name": "lanforge", # ( lanforge/ perfecto)
# Details for LANforge system
"details": {
"ip": "localhost", # localhost,
"port": 8802, # 8802,
"ssh_port": 8804,
"2.4G-Radio": ["wiphy2", "wiphy4"],
"5G-Radio": ["wiphy5", "wiphy3"],
"AX-Radio": [],
"upstream": "1.1.eth1",
"upstream_subnet": "10.28.2.1/24",
"uplink": "1.1.eth3",
"2.4G-Station-Name": "wlan0",
"5G-Station-Name": "wlan0",
"AX-Station-Name": "ax"
}
}
},
"basic-01": {
"controller": {
'url': "https://wlan-portal-svc-nola-02.cicd.lab.wlan.tip.build", # API base url for the controller
'username': 'support@example.com',

View File

@@ -253,7 +253,7 @@ def instantiate_firmware(request, setup_controller, get_configuration):
for access_point_info in get_configuration['access_point']:
version = access_point_info["version"]
if request.config.getini("build") != "0":
if request.config.getini("build").__contains__("https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/"):
version = request.config.getini("build")
firmware_client = FirmwareUtility(sdk_client=setup_controller,
model=access_point_info["model"],
@@ -513,6 +513,13 @@ def create_lanforge_chamberview_dut(get_configuration, testbed):
testbed=testbed, access_point_data=get_configuration["access_point"])
yield True
@pytest.fixture(scope="session")
def lf_tools(get_configuration, testbed):
""" Create a DUT on LANforge"""
obj = ChamberView(lanforge_data=get_configuration["traffic_generator"]["details"],
testbed=testbed, access_point_data=get_configuration["access_point"])
yield obj
@pytest.fixture(scope="module")
def create_vlan(request, testbed, get_configuration):

View File

@@ -0,0 +1,670 @@
import os
import sys
sys.path.append(
os.path.dirname(
os.path.realpath(__file__)
)
)
if "libs" not in sys.path:
sys.path.append(f'../libs')
from controller.controller import ProfileUtility
import time
from lanforge.lf_tests import RunTest
from lanforge.lf_tools import ChamberView
import pytest
import allure
@pytest.fixture(scope="session")
def instantiate_profile():
yield ProfileUtility
@pytest.fixture(scope="session")
def lf_tools(get_configuration, testbed):
lf_tools_obj = ChamberView(lanforge_data=get_configuration['traffic_generator']['details'],
access_point_data=get_configuration['access_point'],
testbed=testbed)
yield lf_tools_obj
@pytest.fixture(scope="session")
def create_lanforge_chamberview(lf_tools):
scenario_object, scenario_name = lf_tools.Chamber_View()
return scenario_name
@pytest.fixture(scope="session")
def create_lanforge_chamberview_dut(lf_tools):
dut_object, dut_name = lf_tools.Create_Dut()
return dut_name
@pytest.fixture(scope="session")
def setup_vlan():
vlan_id = [100]
allure.attach(body=str(vlan_id), name="VLAN Created: ")
yield vlan_id[0]
@allure.feature("CLIENT CONNECTIVITY SETUP")
@pytest.fixture(scope="class")
def setup_profiles(request, setup_controller, testbed, setup_vlan, get_equipment_id,
instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools,
get_security_flags, get_configuration, radius_info, get_apnos):
instantiate_profile = instantiate_profile(sdk_client=setup_controller)
vlan_id, mode = 0, 0
instantiate_profile.cleanup_objects()
parameter = dict(request.param)
print(parameter)
test_cases = {}
profile_data = {}
if parameter['mode'] not in ["BRIDGE", "NAT", "VLAN"]:
print("Invalid Mode: ", parameter['mode'])
allure.attach(body=parameter['mode'], name="Invalid Mode: ")
yield test_cases
if parameter['mode'] == "NAT":
mode = "NAT"
vlan_id = 1
if parameter['mode'] == "BRIDGE":
mode = "BRIDGE"
vlan_id = 1
if parameter['mode'] == "VLAN":
mode = "BRIDGE"
vlan_id = setup_vlan
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Equipment-AP-" + parameter['mode'])
profile_data["equipment_ap"] = {"profile_name": testbed + "-Equipment-AP-" + parameter['mode']}
profile_data["ssid"] = {}
for i in parameter["ssid_modes"]:
profile_data["ssid"][i] = []
for j in range(len(parameter["ssid_modes"][i])):
profile_name = testbed + "-SSID-" + i + "-" + str(j) + "-" + parameter['mode']
data = parameter["ssid_modes"][i][j]
data["profile_name"] = profile_name
if "mode" not in dict(data).keys():
data["mode"] = mode
if "vlan" not in dict(data).keys():
data["vlan"] = vlan_id
instantiate_profile.delete_profile_by_name(profile_name=profile_name)
profile_data["ssid"][i].append(data)
# print(profile_name)
# print(profile_data)
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
time.sleep(10)
"""
Setting up rf profile
"""
rf_profile_data = {
"name": "RF-Profile-" + testbed + "-" + parameter['mode'] + "-" +
get_configuration['access_point'][0]['mode']
}
for i in parameter["rf"]:
rf_profile_data[i] = parameter['rf'][i]
# print(rf_profile_data)
try:
instantiate_profile.delete_profile_by_name(profile_name=rf_profile_data['name'])
instantiate_profile.set_rf_profile(profile_data=rf_profile_data,
mode=get_configuration['access_point'][0]['mode'])
allure.attach(body=str(rf_profile_data),
name="RF Profile Created : " + get_configuration['access_point'][0]['mode'])
except Exception as e:
print(e)
allure.attach(body=str(e), name="Exception ")
# Radius Profile Creation
if parameter["radius"]:
radius_info = radius_info
radius_info["name"] = testbed + "-Automation-Radius-Profile-" + mode
instantiate_profile.delete_profile_by_name(profile_name=testbed + "-Automation-Radius-Profile-" + mode)
try:
instantiate_profile.create_radius_profile(radius_info=radius_info)
allure.attach(body=str(radius_info),
name="Radius Profile Created")
test_cases['radius_profile'] = True
except Exception as e:
print(e)
test_cases['radius_profile'] = False
# SSID Profile Creation
lf_dut_data = []
for mode in profile_data['ssid']:
if mode == "open":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
test_cases["open_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["open_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_open_ssid_profile(profile_data=j)
test_cases["open_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["open_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
test_cases["wpa_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_ssid_profile(profile_data=j)
test_cases["wpa_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_personal":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
test_cases["wpa2_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa2_personal_ssid_profile(profile_data=j)
test_cases["wpa2_personal_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_personal_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_wpa2_personal_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_personal_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_wpa2_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_personal_mixed_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_personal_mixed_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
test_cases["wpa3_personal_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_personal_ssid_profile(profile_data=j)
test_cases["wpa3_personal_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_personal_mixed":
for j in profile_data["ssid"][mode]:
print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_personal_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_personal_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_personal_mixed_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_personal_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_enterprise":
for j in profile_data["ssid"][mode]:
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_enterprise_ssid_profile(profile_data=j)
test_cases["wpa_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_enterprise_ssid_profile(profile_data=j)
test_cases["wpa_enterprise_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_enterprise_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa2_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
test_cases["wpa2_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa2_enterprise_ssid_profile(profile_data=j)
test_cases["wpa2_enterprise_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa2_enterprise_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_enterprise":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_enterprise_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa_wpa2_enterprise_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_wpa2_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_enterprise_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_enterprise_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa_wpa2_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa_wpa2_enterprise_mixed_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa_wpa2_enterprise_mixed_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wpa3_enterprise_mixed":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_enterprise_mixed_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_mixed_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wpa3_enterprise_mixed_ssid_profile(
profile_data=j)
test_cases["wpa3_enterprise_mixed_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_mixed_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
if mode == "wep":
for j in profile_data["ssid"][mode]:
# print(j)
if mode in get_markers.keys() and get_markers[mode]:
try:
if "twog" in get_markers.keys() and get_markers["twog"] and "is2dot4GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wep_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_2g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_2g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
try:
if "fiveg" in get_markers.keys() and get_markers["fiveg"] and "is5GHz" in list(
j["appliedRadios"]):
lf_dut_data.append(j)
creates_profile = instantiate_profile.create_wep_ssid_profile(profile_data=j)
test_cases["wpa3_enterprise_5g"] = True
allure.attach(body=str(creates_profile),
name="SSID Profile Created")
except Exception as e:
print(e)
test_cases["wpa3_enterprise_5g"] = False
allure.attach(body=str(e),
name="SSID Profile Creation Failed")
# Equipment AP Profile Creation
try:
instantiate_profile.set_ap_profile(profile_data=profile_data['equipment_ap'])
test_cases["equipment_ap"] = True
allure.attach(body=str(profile_data['equipment_ap']),
name="Equipment AP Profile Created")
except Exception as e:
print(e)
test_cases["equipment_ap"] = False
allure.attach(body=str(e),
name="Equipment AP Profile Creation Failed")
# Push the Equipment AP Profile to AP
try:
for i in get_equipment_id:
instantiate_profile.push_profile_old_method(equipment_id=i)
except Exception as e:
print(e)
print("failed to create AP Profile")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
ssid_names = []
for i in instantiate_profile.profile_creation_ids["ssid"]:
ssid_names.append(instantiate_profile.get_ssid_name_by_profile_id(profile_id=i))
ssid_names.sort()
# This loop will check the VIF Config with cloud profile
vif_config = []
test_cases['vifc'] = False
for i in range(0, 18):
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(ssid_names)
if ssid_names == vif_config:
test_cases['vifc'] = True
break
time.sleep(10)
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "SSID Pushed from Controller: " + str(ssid_names)),
name="SSID Profiles in VIF Config and Controller: ")
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
# This loop will check the VIF Config with VIF State
test_cases['vifs'] = False
for i in range(0, 18):
vif_state = list(ap_ssh.get_vif_state_ssids())
vif_state.sort()
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_config.sort()
print(vif_config)
print(vif_state)
if vif_state == vif_config:
test_cases['vifs'] = True
break
time.sleep(10)
allure.attach(body=str("VIF Config: " + str(vif_config) + "\n" + "VIF State: " + str(vif_state)),
name="SSID Profiles in VIF Config and VIF State: ")
ap_logs = ap_ssh.logread()
allure.attach(body=ap_logs, name="AP LOgs: ")
ssid_info = ap_ssh.get_ssid_info()
ssid_data = []
print(ssid_info)
for i in range(0, len(ssid_info)):
if ssid_info[i][1] == "OPEN":
ssid_info[i].append("")
if ssid_info[i][1] == "OPEN":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=OPEN" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
if ssid_info[i][1] == "WPA":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
if ssid_info[i][1] == "WPA2":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA2" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
if ssid_info[i][1] == "WPA3_PERSONAL":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA3" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
if ssid_info[i][1] == "WPA | WPA2":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=WPA|WPA2" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
if ssid_info[i][1] == "EAP-TTLS":
ssid = ["ssid_idx=" + str(i) + " ssid=" + ssid_info[i][3] + " security=EAP-TTLS" +
" password=" + ssid_info[i][2] + " bssid=" + ssid_info[i][0]]
ssid_data.append(ssid)
# Add bssid password and security from iwinfo data
# Format SSID Data in the below format
# ssid_data = [
# ['ssid_idx=0 ssid=Default-SSID-2g security=WPA|WEP| password=12345678 bssid=90:3c:b3:94:48:58'],
# ['ssid_idx=1 ssid=Default-SSID-5gl password=12345678 bssid=90:3c:b3:94:48:59']
# ]
allure.attach(name="SSID DATA IN LF DUT", body=str(ssid_data))
lf_tools.update_ssid(ssid_data=ssid_data)
def teardown_session():
print("\nRemoving Profiles")
instantiate_profile.delete_profile_by_name(profile_name=profile_data['equipment_ap']['profile_name'])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["ssid"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["radius"])
instantiate_profile.delete_profile(instantiate_profile.profile_creation_ids["rf"])
allure.attach(body=str(profile_data['equipment_ap']['profile_name'] + "\n"),
name="Tear Down in Profiles ")
time.sleep(20)
request.addfinalizer(teardown_session)
yield test_cases
@pytest.fixture(scope="session")
def lf_test(get_configuration, setup_influx):
# print(get_configuration)
obj = RunTest(lanforge_data=get_configuration['traffic_generator']['details'], influx_params=setup_influx)
# pytest.exit("")
yield obj
@pytest.fixture(scope="session")
def station_names_twog(request, get_configuration):
station_names = []
for i in range(0, int(request.config.getini("num_stations"))):
station_names.append(get_configuration["traffic_generator"]["details"]["2.4G-Station-Name"] + "0" + str(i))
yield station_names
@pytest.fixture(scope="session")
def station_names_fiveg(request, get_configuration):
station_names = []
for i in range(0, int(request.config.getini("num_stations"))):
station_names.append(get_configuration["traffic_generator"]["details"]["5G-Station-Name"] + "0" + str(i))
yield station_names
@pytest.fixture(scope="session")
def num_stations(request):
num_sta = int(request.config.getini("num_stations"))
yield num_sta
@pytest.fixture(scope="class")
def get_vif_state(get_apnos, get_configuration):
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
vif_config = list(ap_ssh.get_vif_config_ssids())
vif_state = list(ap_ssh.get_vif_state_ssids())
vif_state.sort()
vif_config.sort()
allure.attach(name="vif_state", body=str(vif_state))
yield vif_state
@pytest.fixture(scope="class")
def get_vlan_list(get_apnos, get_configuration):
ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
vlan_list = list(ap_ssh.get_vlan())
vlan_list.sort()
allure.attach(name="vlan_list", body=str(vlan_list))
yield vlan_list

View File

@@ -0,0 +1,353 @@
"""
Advanced Test: Rate v/s Range test under various combinations: Bridge Mode
pytest -m "ratevsrange and bridge " -s -vvv --skip-testrail --testbed=basic-01 --alluredir=../allure_reports
--> allure serve ../allure_reports/
"""
import os
import time
import pytest
import allure
import os.path
import csv
import pandas as pd
pytestmark = [pytest.mark.ratevsrange, pytest.mark.bridge ,pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}],
"wpa": [{"ssid_name": "ssid_wpa_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}],
"wpa2_personal": [
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}]},
"rf": {
"is5GHz": {"channelBandwidth": "is20MHz"},
"is5GHzL": {"channelBandwidth": "is20MHz"},
"is5GHzU": {"channelBandwidth": "is20MHz"}
},
"radius": False
}
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
@pytest.mark.Mhz20
class TestRatevsRangeBridge(object):
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.client11b
def test_client_wpa2_personal_2g_11b(self, get_vif_state,
lf_test, station_names_twog, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and client11b" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2495
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "BRIDGE"
band = "twog"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_twog, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11b'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
instance_name="BRIDGE_RVR_11B",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
print("report name ", report_name)
entries = os.listdir("../reports/" + report_name + '/')
print("entries",entries)
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_twog)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
if str(kpi_val) == "empty":
print("kpi is empty, station did not got ip, Test failed")
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
assert False
else:
print("Test passed successfully")
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.client11g
def test_client_wpa2_personal_2g_11g(self, get_vif_state,
lf_test, station_names_twog, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and bridge and client11g" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2496
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "BRIDGE"
band = "twog"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_twog, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11g'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
instance_name="BRIDGE_RVR_11G",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_twog)
script_dir = os.path.dirname(__file__) # Script directory
print(script_dir)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
if str(kpi_val) == "empty":
print("kpi is empty, station did not got ip, Test failed")
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
assert False
else:
print("Test passed successfully")
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11a
def test_client_wpa2_personal_5g_11a(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration,lf_tools):
"""
pytest -m "ratevsrange and bridge and client11a" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2497
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "BRIDGE"
band = "fiveg"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11a'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="BRIDGE_RVR_11A",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=['numeric-score'], dir_name=report_name)
print(str(kpi_val))
if str(kpi_val) == "empty":
print("kpi is empty, station did not got ip, Test failed")
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
assert False
else:
print("Test passed successfully")
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11an
def test_client_wpa2_personal_5g_11an(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and bridge and client11an" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2498
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "BRIDGE"
band = "fiveg"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11an'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="BRIDGE_RVR_11AN",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
if str(kpi_val) == "empty":
print("kpi is empty, station did not got ip, Test failed")
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
assert False
else:
print("Test passed successfully")
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.performance_advanced
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11ac
def test_client_wpa2_personal_5g_11ac(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and bridge and client11ac" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2499
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "BRIDGE"
band = "fiveg"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11an-AC'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'] ,['attenuator2: 1.1.3059'], ['attenuations: 0..+50..950'],['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="BRIDGE_RVR_11AC",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
if str(kpi_val) == "empty":
print("kpi is empty, station did not got ip, Test failed")
allure.attach(name="Kpi Data", body="station did not got ip Test failed.")
assert False
else:
print("Test passed successfully")
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False

View File

@@ -0,0 +1,316 @@
"""
Advanced Test: Rate v/s Range test under various combinations: NAT Mode
pytest -m "throughput_benchmark_test and nat" -s -vvv --skip-testrail --testbed=basic-01
"""
import os
import time
import pytest
import allure
pytestmark = [pytest.mark.ratevsrange, pytest.mark.nat ,pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "NAT",
"ssid_modes": {
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}],
"wpa": [{"ssid_name": "ssid_wpa_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}],
"wpa2_personal": [
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}]},
"rf": {
"is5GHz": {"channelBandwidth": "is20MHz"},
"is5GHzL": {"channelBandwidth": "is20MHz"},
"is5GHzU": {"channelBandwidth": "is20MHz"}
},
"radius": False
}
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
@pytest.mark.Mhz20
class TestRatevsRangeNat(object):
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.client11b
def test_client_wpa2_personal_2g_11b(self, get_vif_state,
lf_test, station_names_twog, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and nat and 11bclient" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2495
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "NAT"
band = "twog"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_twog, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11b'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
instance_name="NAT_RVR_11B",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_twog)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.client11g
def test_client_wpa2_personal_2g_11g(self, get_vif_state,
lf_test, station_names_twog, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and nat and client11g" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2496
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "NAT"
band = "twog"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_twog, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11G'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
instance_name="NAT_RVR_11G",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_twog)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11a
def test_client_wpa2_personal_5g_11a(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and nat and client11a" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2497
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "NAT"
band = "fiveg"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11a'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="NAT_RVR_11A",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11an
def test_client_wpa2_personal_5g_11an(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration,lf_tools):
"""
pytest -m "ratevsrange and nat and client11an" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2498
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "NAT"
band = "fiveg"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11an'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="NAT_RVR_11AN",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.performance_advanced
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11ac
def test_client_wpa2_personal_5g_11ac(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and nat and client11ac" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2499
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "NAT"
band = "fiveg"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11an-AC'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="NAT_RVR_11AC",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False

View File

@@ -0,0 +1,314 @@
"""
Advanced Test: Rate v/s Range test under various combinations: VLAN Mode
pytest -m "throughput_benchmark_test and vlan" -s -vvv --skip-testrail --testbed=basic-01
"""
import os
import time
import pytest
import allure
pytestmark = [pytest.mark.ratevsrange, pytest.mark.vlan ,pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "VLAN",
"ssid_modes": {
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}],
"wpa": [{"ssid_name": "ssid_wpa_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}],
"wpa2_personal": [
{"ssid_name": "ssid_wpa2_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa2_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}]},
"rf": {
"is5GHz": {"channelBandwidth": "is20MHz"},
"is5GHzL": {"channelBandwidth": "is20MHz"},
"is5GHzU": {"channelBandwidth": "is20MHz"}
},
"radius": False
}
@allure.feature("BRIDGE MODE CLIENT CONNECTIVITY")
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
@pytest.mark.Mhz20
class TestRatevsRangeVlan(object):
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.client11b
def test_client_wpa2_personal_2g_11b(self, get_vif_state,
lf_test, station_names_twog, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and vlan and 11bclient" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2495
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "VLAN"
band = "twog"
vlan = 100
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_twog, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11b'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
instance_name="VLAN_RVR_11B",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_twog)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.client11g
def test_client_wpa2_personal_2g_11g(self, get_vif_state,
lf_test, station_names_twog, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and vlan and client11g" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2496
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][0]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "VLAN"
band = "twog"
vlan = 100
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_twog, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11g'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_twog, mode=mode,
instance_name="VLAN_RVR_11G",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_twog)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11a
def test_client_wpa2_personal_5g_11a(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and vlan and client11a" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2497
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "VLAN"
band = "fiveg"
vlan = 100
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11a'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="VLAN_RVR_11A",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11an
def test_client_wpa2_personal_5g_11an(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration,lf_tools):
"""
pytest -m "ratevsrange and vlan and client11an" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2498
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "VLAN"
band = "fiveg"
vlan = 100
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11an'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="VLAN_RVR_11AN",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False
@pytest.mark.performance_advanced
@pytest.mark.wpa2_personal
@pytest.mark.fiveg
@pytest.mark.client11ac
def test_client_wpa2_personal_5g_11ac(self, get_vif_state,
lf_test, station_names_fiveg, create_lanforge_chamberview_dut,
get_configuration, lf_tools):
"""
pytest -m "ratevsrange and vlan and client11ac" -s -vvv --skip-testrail --testbed=advanced-02
jira- wifi-2499
"""
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"][1]
ssid_name = profile_data["ssid_name"]
security_key = profile_data["security_key"]
security = "wpa2"
mode = "VLAN"
band = "fiveg"
vlan = 1
dut_name = create_lanforge_chamberview_dut
if ssid_name not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID NOT AVAILABLE IN VIF STATE")
station = lf_test.Client_Connect(ssid=ssid_name, security=security,
passkey=security_key, mode=mode, band=band,
station_name=station_names_fiveg, vlan_id=vlan)
print("station", station)
val = [['modes: 802.11an-AC'], ['pkts: MTU'], ['directions: DUT Transmit'], ['traffic_types:TCP'],
['bandw_options: AUTO'], ['spatial_streams: AUTO'], ['attenuator: 1.1.3034'], ['attenuator2: 1.1.3059'],
['attenuations: 0..+50..950'], ['attenuations2: 0..+50..950']]
if station:
time.sleep(3)
rvr_o = lf_test.ratevsrange(station_name=station_names_fiveg, mode=mode,
instance_name="VLAN_RVR_11AC",
vlan_id=vlan, dut_name=dut_name, raw_lines=val)
report_name = rvr_o.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "ratevsrange")
print("Test Completed... Cleaning up Stations")
lf_test.Client_disconnect(station_name=station_names_fiveg)
kpi_val = lf_tools.read_kpi_file(column_name=None, dir_name=report_name)
print(str(kpi_val))
allure.attach(name="Kpi Data", body=str(kpi_val))
assert station
else:
assert False

View File

@@ -0,0 +1,67 @@
"""
Dual Band Performance Test : Bridge Mode
pytest -m "dual_band_test and bridge"
"""
import os
import allure
import pytest
pytestmark = [pytest.mark.dual_band_test, pytest.mark.bridge,
pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}]},
"rf": {},
"radius": False
}
@pytest.mark.dual_band_test
@pytest.mark.wifi5
@pytest.mark.wifi6
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestDualbandPerformanceBridge(object):
"""
pytest -m "dual_band_test and bridge and open and twog and fiveg"
"""
@pytest.mark.open
@pytest.mark.twog
@pytest.mark.fiveg
def test_client_open(self,get_vif_state,create_lanforge_chamberview_dut, lf_test,get_configuration):
profile_data = setup_params_general["ssid_modes"]["open"]
ssid_2G = profile_data[0]["ssid_name"]
ssid_5G = profile_data[1]["ssid_name"]
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
if ssid_2G and ssid_5G not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
dbpt_obj = lf_test.dualbandperformancetest(mode=mode,ssid_2G=ssid_2G,ssid_5G=ssid_5G,
instance_name="dbp_instance_open_bridge",
vlan_id=vlan, dut_name=dut_name)
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")

View File

@@ -0,0 +1,67 @@
"""
Dual Band Performance Test : NAT Mode
pytest -m "dual_band_test and nat"
"""
import os
import allure
import pytest
pytestmark = [pytest.mark.dual_band_test, pytest.mark.nat,
pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "NAT",
"ssid_modes": {
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}]},
"rf": {},
"radius": False
}
@pytest.mark.dual_band_test
@pytest.mark.wifi5
@pytest.mark.wifi6
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestDualbandPerformanceNat(object):
"""
pytest -m "dual_band_test and nat and open and twog and fiveg"
"""
@pytest.mark.open
@pytest.mark.twog
@pytest.mark.fiveg
def test_client_open(self,get_vif_state,create_lanforge_chamberview_dut, lf_test,get_configuration):
profile_data = setup_params_general["ssid_modes"]["open"]
ssid_2G = profile_data[0]["ssid_name"]
ssid_5G = profile_data[1]["ssid_name"]
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
if ssid_2G and ssid_5G not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
dbpt_obj = lf_test.dualbandperformancetest(mode=mode,ssid_2G=ssid_2G,ssid_5G=ssid_5G,
instance_name="dbp_instance_open_nat",
vlan_id=vlan, dut_name=dut_name)
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")

View File

@@ -0,0 +1,72 @@
"""
Dual Band Performance Test : VLAN Mode
pytest -m "dual_band_test and vlan"
"""
import os
import allure
import pytest
pytestmark = [pytest.mark.dual_band_test, pytest.mark.vlan,
pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "VLAN",
"ssid_modes": {
"open": [{"ssid_name": "ssid_open_2g", "appliedRadios": ["is2dot4GHz"]},
{"ssid_name": "ssid_open_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"]}]},
"rf": {},
"radius": False
}
@pytest.mark.dual_band_test
@pytest.mark.wifi5
@pytest.mark.wifi6
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.parametrize(
"create_vlan",
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles","create_vlan")
class TestDualbandPerformanceVlan(object):
"""
pytest -m "dual_band_test and vlan and open and twog and fiveg"
"""
@pytest.mark.open
@pytest.mark.twog
@pytest.mark.fiveg
def test_client_open(self,get_vif_state,create_lanforge_chamberview_dut, lf_test,get_configuration):
profile_data = setup_params_general["ssid_modes"]["open"]
ssid_2G = profile_data[0]["ssid_name"]
ssid_5G = profile_data[1]["ssid_name"]
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 100
if ssid_2G and ssid_5G not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
dbpt_obj = lf_test.dualbandperformancetest(mode=mode,ssid_2G=ssid_2G,ssid_5G=ssid_5G,
instance_name="dbp_instance_open_vlan",
vlan_id=vlan, dut_name=dut_name)
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")

View File

@@ -0,0 +1,68 @@
"""
Dual Band Performance Test : Bridge Mode
pytest -m "performance and dual_band_test and bridge"
"""
import os
import allure
import pytest
pytestmark = [pytest.mark.performance,pytest.mark.dual_band_test, pytest.mark.bridge,
pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "BRIDGE",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "ssid_wpa2p_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa2p_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}]},
"rf": {},
"radius": False
}
@pytest.mark.dual_band_test
@pytest.mark.wifi5
@pytest.mark.wifi6
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestDualbandPerformanceBridge(object):
"""
pytest -m "performance and dual_band_test and bridge and wpa2_personal and twog and fiveg"
"""
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.fiveg
def test_client_wpa2_personal(self,get_vif_state,create_lanforge_chamberview_dut,lf_test,get_configuration):
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
ssid_2G = profile_data[0]["ssid_name"]
ssid_5G = profile_data[1]["ssid_name"]
dut_name = create_lanforge_chamberview_dut
mode = "BRIDGE"
vlan = 1
if ssid_2G and ssid_5G not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
dbpt_obj = lf_test.dualbandperformancetest(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
instance_name="dbp_instance_wpa2p_bridge",
vlan_id=vlan, dut_name=dut_name)
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")

View File

@@ -0,0 +1,69 @@
"""
Dual Band Performance Test : NAT Mode
pytest -m "performance and dual_band_test and nat"
"""
import os
import allure
import pytest
pytestmark = [pytest.mark.performance,pytest.mark.dual_band_test, pytest.mark.nat,
pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "NAT",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "ssid_wpa2p_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa2p_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}]},
"rf": {},
"radius": False
}
@pytest.mark.dual_band_test
@pytest.mark.wifi5
@pytest.mark.wifi6
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles")
class TestDualbandPerformanceNat(object):
"""
pytest -m "performance and dual_band_test and nat and wpa2_personal and twog and fiveg"
"""
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.fiveg
def test_client_wpa2_personal(self,get_vif_state,create_lanforge_chamberview_dut,lf_test,get_configuration):
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
ssid_2G = profile_data[0]["ssid_name"]
ssid_5G = profile_data[1]["ssid_name"]
dut_name = create_lanforge_chamberview_dut
mode = "NAT"
vlan = 1
if ssid_2G and ssid_5G not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
dbpt_obj = lf_test.dualbandperformancetest(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
instance_name="dbp_instance_wpa2p_nat",
vlan_id=vlan, dut_name=dut_name)
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")

View File

@@ -0,0 +1,75 @@
"""
Dual Band Performance Test : VLAN Mode
pytest -m "performance and dual_band_test and vlan"
"""
import os
import allure
import pytest
pytestmark = [pytest.mark.performance,pytest.mark.dual_band_test, pytest.mark.vlan,
pytest.mark.usefixtures("setup_test_run")]
setup_params_general = {
"mode": "VLAN",
"ssid_modes": {
"wpa2_personal": [
{"ssid_name": "ssid_wpa2p_2g", "appliedRadios": ["is2dot4GHz"], "security_key": "something"},
{"ssid_name": "ssid_wpa2p_5g", "appliedRadios": ["is5GHzU", "is5GHz", "is5GHzL"],
"security_key": "something"}]},
"rf": {},
"radius": False
}
@pytest.mark.dual_band_test
@pytest.mark.wifi5
@pytest.mark.wifi6
@pytest.mark.parametrize(
'setup_profiles',
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.parametrize(
"create_vlan",
[setup_params_general],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_profiles","create_vlan")
class TestDualbandPerformanceVlan(object):
"""
pytest -m "dual_band_test and vlan and wpa2_personal and twog and fiveg"
"""
@pytest.mark.wpa2_personal
@pytest.mark.twog
@pytest.mark.fiveg
def test_client_wpa2_personal(self,get_vif_state,create_lanforge_chamberview_dut,lf_test,get_configuration):
profile_data = setup_params_general["ssid_modes"]["wpa2_personal"]
ssid_2G = profile_data[0]["ssid_name"]
ssid_5G = profile_data[1]["ssid_name"]
dut_name = create_lanforge_chamberview_dut
mode = "VLAN"
vlan = 100
if ssid_2G and ssid_5G not in get_vif_state:
allure.attach(name="retest,vif state ssid not available:", body=str(get_vif_state))
pytest.xfail("SSID's NOT AVAILABLE IN VIF STATE")
dbpt_obj = lf_test.dualbandperformancetest(mode=mode, ssid_2G=ssid_2G, ssid_5G=ssid_5G,
instance_name="dbp_instance_wpa2p_vlan",
vlan_id=vlan, dut_name=dut_name)
report_name = dbpt_obj.report_name[0]['LAST']["response"].split(":::")[1].split("/")[-1]
entries = os.listdir("../reports/" + report_name + '/')
pdf = False
for i in entries:
if ".pdf" in i:
pdf = i
if pdf:
allure.attach.file(source="../reports/" + report_name + "/" + pdf,
name=get_configuration["access_point"][0]["model"] + "_dualbandperfomance")