mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-30 18:27:53 +00:00
test_l3_longevity.py : adding reading the AP using pexpect
Signed-off-by: Chuck SmileyRekiere <chuck.smileyrekiere@candelatech.com>
This commit is contained in:
@@ -28,6 +28,9 @@ import os
|
||||
from pprint import pprint
|
||||
from csv_to_influx import *
|
||||
import re
|
||||
import serial
|
||||
import pexpect
|
||||
from pexpect_serial import SerialSpawn
|
||||
|
||||
if sys.version_info[0] != 3:
|
||||
print("This script requires Python 3")
|
||||
@@ -44,7 +47,6 @@ from realm import Realm
|
||||
import time
|
||||
import datetime
|
||||
import subprocess
|
||||
import re
|
||||
import csv
|
||||
import random
|
||||
|
||||
@@ -128,6 +130,7 @@ class L3VariableTime(Realm):
|
||||
self.show_least_most_csv = show_least_most_csv
|
||||
self.mconn = mconn
|
||||
self.user_tags = user_tags
|
||||
|
||||
|
||||
self.side_a_min_rate = side_a_min_rate
|
||||
self.side_a_max_rate = side_a_max_rate
|
||||
@@ -623,6 +626,29 @@ class L3VariableTime(Realm):
|
||||
|
||||
self._pass("PASS: Stations & CX build finished: created/updated: %s stations and %s connections."%(self.station_count, self.cx_count))
|
||||
|
||||
def read_ap_stats(self,band):
|
||||
# 5ghz: wl -i wl1 bs_data 2.4ghz# wl -i wl0 bs_data
|
||||
stats_5ghz = "wl -i wl1 bs_data"
|
||||
stats_24ghz = "w1 -i wl0 bs_data"
|
||||
ap_data = ""
|
||||
command = stats_5ghz
|
||||
'''if band == "5ghz":
|
||||
command = stats_5ghz
|
||||
else:
|
||||
command = stats_24ghz'''
|
||||
|
||||
try:
|
||||
# configure the serial interface
|
||||
ser = serial.Serial(self.args.tty, int(self.args.baud), timeout=5)
|
||||
egg = SerialSpawn(ser)
|
||||
egg.sendline(str(command))
|
||||
egg.expect([pexpect.TIMEOUT], timeout=2) # do not detete line, waits for output
|
||||
ap_data = egg.before.decode('utf-8','ignore')
|
||||
except:
|
||||
print("WARNING unable to read AP")
|
||||
|
||||
return ap_data
|
||||
|
||||
# Run the main body of the test logic.
|
||||
def start(self, print_pass=False, print_fail=False):
|
||||
print("Bringing up stations")
|
||||
@@ -747,11 +773,11 @@ class L3VariableTime(Realm):
|
||||
ap_stats = [];
|
||||
#ap_stats.add("root@Docsis-Gateway:~# wl -i wl1 bs_data")
|
||||
#ap_stats.add("Station Address PHY Mbps Data Mbps Air Use Data Use Retries bw mcs Nss ofdma mu-mimo")
|
||||
ap_stats.add("50:E0:85:87:AA:19 1016.6 48.9 6.5% 24.4% 16.6% 80 9.7 2 0.0% 0.0%")
|
||||
ap_stats.add("50:E0:85:84:7A:E7 880.9 52.2 7.7% 26.1% 20.0% 80 8.5 2 0.0% 0.0%")
|
||||
ap_stats.add("50:E0:85:89:5D:00 840.0 47.6 6.4% 23.8% 2.3% 80 8.0 2 0.0% 0.0%")
|
||||
ap_stats.add("50:E0:85:87:5B:F4 960.7 51.5 5.9% 25.7% 0.0% 80 9 2 0.0% 0.0%")
|
||||
ap_stats.add("(overall) - 200.2 26.5% - -")
|
||||
#ap_stats.add("50:E0:85:87:AA:19 1016.6 48.9 6.5% 24.4% 16.6% 80 9.7 2 0.0% 0.0%")
|
||||
#ap_stats.add("50:E0:85:84:7A:E7 880.9 52.2 7.7% 26.1% 20.0% 80 8.5 2 0.0% 0.0%")
|
||||
#ap_stats.add("50:E0:85:89:5D:00 840.0 47.6 6.4% 23.8% 2.3% 80 8.0 2 0.0% 0.0%")
|
||||
#ap_stats.add("50:E0:85:87:5B:F4 960.7 51.5 5.9% 25.7% 0.0% 80 9 2 0.0% 0.0%")
|
||||
#ap_stats.add("(overall) - 200.2 26.5% - -")
|
||||
# TODO: Read real stats, comment out the example above.
|
||||
# ap_stats = read_ap_stats()
|
||||
|
||||
@@ -760,7 +786,7 @@ class L3VariableTime(Realm):
|
||||
stats_row = line.split()
|
||||
ap_stats_rows.add(stats_row)
|
||||
|
||||
m = re.search((r'(\S+)\s+(\S+)\s+(Data Mbps)\s+(Air Use)'ap_stats[0]
|
||||
#m = re.search((r'(\S+)\s+(\S+)\s+(Data Mbps)\s+(Air Use)'ap_stats[0]
|
||||
|
||||
# Query all of our ports
|
||||
port_eids = self.gather_port_eids()
|
||||
@@ -787,6 +813,8 @@ class L3VariableTime(Realm):
|
||||
# Find latency, jitter for connections using this port.
|
||||
latency, jitter, tput = self.get_endp_stats_for_port(p["port"], endps)
|
||||
|
||||
ap_stats_col_titles = ['Station Address','PHY Mbps','Data Mbps','Air Use','Data Use','Retries','bw','mcs','Nss','ofdma','mu-mimo']
|
||||
|
||||
self.write_port_csv(len(temp_stations_list), ul, dl, ul_pdu_str, dl_pdu_str, atten_val, eid_name, p,
|
||||
latency, jitter, tput, ap_row, ap_stats_col_titles)
|
||||
|
||||
@@ -1102,7 +1130,8 @@ python3 test_l3_longevity.py --cisco_ctlr 192.168.100.112 --cisco_dfs True --mgr
|
||||
,choices=["1","2","3","4","5","6","7","8","NA"])
|
||||
|
||||
|
||||
|
||||
parser.add_argument('--tty', help='--tty \"/dev/ttyUSB2\" the serial interface to the AP')
|
||||
parser.add_argument('--baud', help='--baud \"9600\" baud rate for the serial interface',default="9600")
|
||||
parser.add_argument('--amount_ports_to_reset', help='--amount_ports_to_reset \"<min amount ports> <max amount ports>\" ', default=None)
|
||||
parser.add_argument('--port_reset_seconds', help='--ports_reset_seconds \"<min seconds> <max seconds>\" ', default="10 30")
|
||||
|
||||
@@ -1120,6 +1149,9 @@ python3 test_l3_longevity.py --cisco_ctlr 192.168.100.112 --cisco_dfs True --mgr
|
||||
\"radio==<number_of_wiphy stations=<=number of stations> ssid==<ssid> ssid_pw==<ssid password> security==<security>\" ',
|
||||
required=True)
|
||||
|
||||
parser.add_argument('-tty', help='-tty <port> serial interface to AP -tty \"/dev/ttyUSB2\"',default="")
|
||||
parser.add_argument('-baud', help='-baud <rate> serial interface baud rate to AP -baud ',default='9600')
|
||||
|
||||
parser.add_argument('-amr','--side_a_min_bps',
|
||||
help='--side_a_min_bps, requested downstream min tx rate, comma separated list for multiple iterations. Default 256k', default="256000")
|
||||
parser.add_argument('-amp','--side_a_min_pdu',
|
||||
|
||||
Reference in New Issue
Block a user