mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-31 18:58:01 +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 pprint import pprint
|
||||||
from csv_to_influx import *
|
from csv_to_influx import *
|
||||||
import re
|
import re
|
||||||
|
import serial
|
||||||
|
import pexpect
|
||||||
|
from pexpect_serial import SerialSpawn
|
||||||
|
|
||||||
if sys.version_info[0] != 3:
|
if sys.version_info[0] != 3:
|
||||||
print("This script requires Python 3")
|
print("This script requires Python 3")
|
||||||
@@ -44,7 +47,6 @@ from realm import Realm
|
|||||||
import time
|
import time
|
||||||
import datetime
|
import datetime
|
||||||
import subprocess
|
import subprocess
|
||||||
import re
|
|
||||||
import csv
|
import csv
|
||||||
import random
|
import random
|
||||||
|
|
||||||
@@ -129,6 +131,7 @@ class L3VariableTime(Realm):
|
|||||||
self.mconn = mconn
|
self.mconn = mconn
|
||||||
self.user_tags = user_tags
|
self.user_tags = user_tags
|
||||||
|
|
||||||
|
|
||||||
self.side_a_min_rate = side_a_min_rate
|
self.side_a_min_rate = side_a_min_rate
|
||||||
self.side_a_max_rate = side_a_max_rate
|
self.side_a_max_rate = side_a_max_rate
|
||||||
self.side_b_min_rate = side_b_min_rate
|
self.side_b_min_rate = side_b_min_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))
|
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.
|
# Run the main body of the test logic.
|
||||||
def start(self, print_pass=False, print_fail=False):
|
def start(self, print_pass=False, print_fail=False):
|
||||||
print("Bringing up stations")
|
print("Bringing up stations")
|
||||||
@@ -747,11 +773,11 @@ class L3VariableTime(Realm):
|
|||||||
ap_stats = [];
|
ap_stats = [];
|
||||||
#ap_stats.add("root@Docsis-Gateway:~# wl -i wl1 bs_data")
|
#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("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: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: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: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("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("(overall) - 200.2 26.5% - -")
|
||||||
# TODO: Read real stats, comment out the example above.
|
# TODO: Read real stats, comment out the example above.
|
||||||
# ap_stats = read_ap_stats()
|
# ap_stats = read_ap_stats()
|
||||||
|
|
||||||
@@ -760,7 +786,7 @@ class L3VariableTime(Realm):
|
|||||||
stats_row = line.split()
|
stats_row = line.split()
|
||||||
ap_stats_rows.add(stats_row)
|
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
|
# Query all of our ports
|
||||||
port_eids = self.gather_port_eids()
|
port_eids = self.gather_port_eids()
|
||||||
@@ -787,6 +813,8 @@ class L3VariableTime(Realm):
|
|||||||
# Find latency, jitter for connections using this port.
|
# Find latency, jitter for connections using this port.
|
||||||
latency, jitter, tput = self.get_endp_stats_for_port(p["port"], endps)
|
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,
|
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)
|
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"])
|
,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('--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")
|
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>\" ',
|
\"radio==<number_of_wiphy stations=<=number of stations> ssid==<ssid> ssid_pw==<ssid password> security==<security>\" ',
|
||||||
required=True)
|
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',
|
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")
|
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',
|
parser.add_argument('-amp','--side_a_min_pdu',
|
||||||
|
|||||||
Reference in New Issue
Block a user