mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-03 20:27:54 +00:00
monitor changes - now works
This commit is contained in:
@@ -767,7 +767,7 @@ class WifiMonitor:
|
|||||||
self.lfclient_url = lfclient_url
|
self.lfclient_url = lfclient_url
|
||||||
self.up = up
|
self.up = up
|
||||||
self.local_realm = local_realm
|
self.local_realm = local_realm
|
||||||
self.station_name = None
|
self.monitor_name = None
|
||||||
self.resource = resource_
|
self.resource = resource_
|
||||||
self.flag_names = []
|
self.flag_names = []
|
||||||
self.flag_mask_names = []
|
self.flag_mask_names = []
|
||||||
@@ -775,22 +775,31 @@ class WifiMonitor:
|
|||||||
self.aid = "NA" # used when sniffing /ax radios
|
self.aid = "NA" # used when sniffing /ax radios
|
||||||
self.bsssid = "00:00:00:00:00:00" # used when sniffing on /ax radios
|
self.bsssid = "00:00:00:00:00:00" # used when sniffing on /ax radios
|
||||||
|
|
||||||
def create(self, resource_=1, radio_="wiphy0", name_="moni0" ):
|
def create(self, resource_=1,channel=None, radio_="wiphy0", name_="moni0" ):
|
||||||
print("Creating monitor " + name_)
|
print("Creating monitor " + name_)
|
||||||
|
self.monitor_name = name_
|
||||||
computed_flags = 0
|
computed_flags = 0
|
||||||
for flag_n in self.flag_names:
|
for flag_n in self.flag_names:
|
||||||
computed_flags += add_monitor.flags[flag_n]
|
computed_flags += add_monitor.flags[flag_n]
|
||||||
|
data ={
|
||||||
|
"shelf": 1,
|
||||||
|
"resource": resource_,
|
||||||
|
"radio": radio_,
|
||||||
|
"freqency":5785,
|
||||||
|
"mode": "NA", #0 for AUTO or "NA"
|
||||||
|
"channel": channel
|
||||||
|
|
||||||
|
}
|
||||||
|
self.local_realm.json_post("/cli-json/set_wifi_radio", _data= data)
|
||||||
|
|
||||||
self.local_realm.json_post("/cli-json/add_monitor", {
|
self.local_realm.json_post("/cli-json/add_monitor", {
|
||||||
"shelf": 1,
|
"shelf": 1,
|
||||||
"resource": resource_,
|
"resource": resource_,
|
||||||
"radio": radio_,
|
"radio": radio_,
|
||||||
"ap_name": name_,
|
"ap_name": self.monitor_name,
|
||||||
"flags": computed_flags,
|
"flags": computed_flags,
|
||||||
"flags_mask": self.flags_mask
|
"flags_mask": self.flags_mask
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
def set_flag(self, param_name, value):
|
def set_flag(self, param_name, value):
|
||||||
if (param_name not in add_monitor.flags):
|
if (param_name not in add_monitor.flags):
|
||||||
raise ValueError("Flag '%s' does not exist for add_monitor, consult add_monitor.py" % param_name)
|
raise ValueError("Flag '%s' does not exist for add_monitor, consult add_monitor.py" % param_name)
|
||||||
@@ -802,17 +811,33 @@ class WifiMonitor:
|
|||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
print("Cleaning up monitors")
|
print("Cleaning up monitors")
|
||||||
LFUtils.removePort(resource=self.resource, port_name = self.station_name, baseurl=self.lfclient_url, debug=self.debug)
|
LFUtils.removePort(resource=self.resource, port_name = self.monitor_name, baseurl=self.lfclient_url, debug=self.debug)
|
||||||
pass
|
|
||||||
|
|
||||||
def admin_up(self):
|
def admin_up(self):
|
||||||
up_request = LFUtils.port_up_request(resource_id=self.resource, port_name=self.station_name)
|
up_request = LFUtils.port_up_request(resource_id=self.resource, port_name=self.monitor_name)
|
||||||
self.local_realm.json_post("/cli-json/set_port", up_request)
|
self.local_realm.json_post("/cli-json/set_port", up_request)
|
||||||
|
|
||||||
def admin_down(self):
|
def admin_down(self):
|
||||||
down_request = LFUtils.portDownRequest(resource_id=self.resource, port_name=self.station_name)
|
down_request = LFUtils.portDownRequest(resource_id=self.resource, port_name=self.monitor_name)
|
||||||
self.local_realm.json_post("/cli-json/set_port", down_request)
|
self.local_realm.json_post("/cli-json/set_port", down_request)
|
||||||
|
|
||||||
|
def start_sniff(self):
|
||||||
|
data = {
|
||||||
|
"shelf": 1,
|
||||||
|
"resource": 1,
|
||||||
|
"port": self.monitor_name,
|
||||||
|
"display": "NA",
|
||||||
|
"flags": 0x2,
|
||||||
|
"outfile": "/home/lanforge/Documents/out.cap",
|
||||||
|
"duration": 45
|
||||||
|
}
|
||||||
|
self.local_realm.json_post("/cli-json/sniff_port", _data= data)
|
||||||
|
|
||||||
|
|
||||||
|
# "sniff_port 1 %s %s NA %s %s.pcap %i"%(r, m, sflags, m, int(dur))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# use the station profile to set the combination of features you want on your stations
|
# use the station profile to set the combination of features you want on your stations
|
||||||
# once this combination is configured, build the stations with the build(resource, radio, number) call
|
# once this combination is configured, build the stations with the build(resource, radio, number) call
|
||||||
@@ -869,19 +894,19 @@ class StationProfile:
|
|||||||
|
|
||||||
# TODO: create use_wpa3()
|
# TODO: create use_wpa3()
|
||||||
|
|
||||||
def use_security(self, security_type, ssid=None, passwd=None):
|
def use_wpa2(self, on=False, ssid=None, passwd=None):
|
||||||
security_type = security_type.lower()
|
|
||||||
types = {"wep": "wep_enable", "wpa": "wpa_enable", "wpa2": "wpa2_enable", "wpa3": "use-wpa3"}
|
|
||||||
self.add_sta_data["ssid"] = ssid
|
self.add_sta_data["ssid"] = ssid
|
||||||
if security_type in types.keys():
|
if on:
|
||||||
if (ssid is None) or ("" == ssid):
|
if (ssid is None) or ("" == ssid):
|
||||||
raise ValueError("use_security: %s requires ssid" % security_type)
|
raise ValueError("use_wpa2: WPA2 requires ssid")
|
||||||
if (passwd is None) or ("" == passwd):
|
if (passwd is None) or ("" == passwd):
|
||||||
raise ValueError("use_security: %s requires passphrase or [BLANK]" % security_type)
|
raise ValueError("use_wpa2: WPA2 requires passphrase or [BLANK]")
|
||||||
self.set_command_param("add_sta", "ssid", ssid)
|
self.set_command_param("add_sta", "ssid", ssid)
|
||||||
self.set_command_param("add_sta", "key", passwd)
|
self.set_command_param("add_sta", "key", passwd)
|
||||||
self.set_command_flag("add_sta", types[security_type], 1)
|
self.set_command_flag("add_sta", "wpa2_enable", 1)
|
||||||
self.add_sta_data["key"] = passwd
|
self.add_sta_data["key"] = passwd
|
||||||
|
else:
|
||||||
|
self.set_command_flag("add_sta", "wpa2_enable", 0)
|
||||||
|
|
||||||
def set_command_param(self, command_name, param_name, param_value):
|
def set_command_param(self, command_name, param_name, param_value):
|
||||||
# we have to check what the param name is
|
# we have to check what the param name is
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class L3PowersaveTraffic(LFCliBase):
|
|||||||
dhcp=True,
|
dhcp=True,
|
||||||
debug_=False)
|
debug_=False)
|
||||||
self.newMonitor = realm.WifiMonitor(self.lfclient_url, self.local_realm,debug_= _debug_on)
|
self.newMonitor = realm.WifiMonitor(self.lfclient_url, self.local_realm,debug_= _debug_on)
|
||||||
self.station_profile.admin_up(resource=1)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -65,9 +65,15 @@ class L3PowersaveTraffic(LFCliBase):
|
|||||||
self.station_profile.set_command_param("set_port", "report_timer", 1500)
|
self.station_profile.set_command_param("set_port", "report_timer", 1500)
|
||||||
self.station_profile.set_command_flag("set_port", "rpt_timer", 1)
|
self.station_profile.set_command_flag("set_port", "rpt_timer", 1)
|
||||||
self.station_profile.set_command_flag("add_sta", "power_save_enable", 1)
|
self.station_profile.set_command_flag("add_sta", "power_save_enable", 1)
|
||||||
|
#channel = self.json_get("/port/1/%s/%s/"%(1,"wiphy0"))
|
||||||
|
#rint("The channel name is...")
|
||||||
|
|
||||||
|
#pprint.pprint(channel)
|
||||||
|
self.newMonitor.create(resource_=1, channel=157, radio_= "wiphy1", name_="moni0")
|
||||||
self.station_profile.create(resource=1, radio="wiphy0", sta_names_=self.sta_list, debug=False)
|
self.station_profile.create(resource=1, radio="wiphy0", sta_names_=self.sta_list, debug=False)
|
||||||
self.newMonitor.create(resource_=1, radio_= "wiphy1", name_="moni_powersave")
|
# station_channel = self.json_get("/port/1/%s/%s")
|
||||||
|
# pprint.pprint(station_channel)
|
||||||
|
|
||||||
|
|
||||||
self._pass("PASS: Station builds finished")
|
self._pass("PASS: Station builds finished")
|
||||||
temp_sta_list = []
|
temp_sta_list = []
|
||||||
@@ -99,7 +105,7 @@ class L3PowersaveTraffic(LFCliBase):
|
|||||||
|
|
||||||
|
|
||||||
def __get_rx_values(self):
|
def __get_rx_values(self):
|
||||||
cx_list = self.json_get("/endp/list?fields=name,rx+bytes", debug_=True)
|
cx_list = self.json_get("/endp/list?fields=name,rx+bytes", debug_=False)
|
||||||
#print("==============\n", cx_list, "\n==============")
|
#print("==============\n", cx_list, "\n==============")
|
||||||
cx_rx_map = {}
|
cx_rx_map = {}
|
||||||
for cx_name in cx_list['endpoint']:
|
for cx_name in cx_list['endpoint']:
|
||||||
@@ -118,6 +124,10 @@ class L3PowersaveTraffic(LFCliBase):
|
|||||||
end_time = self.local_realm.parse_time(self.test_duration) + cur_time
|
end_time = self.local_realm.parse_time(self.test_duration) + cur_time
|
||||||
#admin up on new monitor
|
#admin up on new monitor
|
||||||
self.newMonitor.admin_up()
|
self.newMonitor.admin_up()
|
||||||
|
self.newMonitor.start_sniff()
|
||||||
|
#admin up on station
|
||||||
|
self.station_profile.admin_up(resource=1)
|
||||||
|
#self.newMonitor.set_flag()
|
||||||
self.__set_all_cx_state("RUNNING")
|
self.__set_all_cx_state("RUNNING")
|
||||||
|
|
||||||
while cur_time < end_time:
|
while cur_time < end_time:
|
||||||
@@ -149,7 +159,8 @@ def main():
|
|||||||
|
|
||||||
lfjson_host = "localhost"
|
lfjson_host = "localhost"
|
||||||
lfjson_port = 8080
|
lfjson_port = 8080
|
||||||
station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=0, end_id_=4, padding_number_=10000)
|
#station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=0, end_id_=4, padding_number_=10000)
|
||||||
|
station_list = ["sta0000","sta0001"]
|
||||||
ip_powersave_test = L3PowersaveTraffic(lfjson_host, lfjson_port, ssid = "jedway-open" , security = "open",
|
ip_powersave_test = L3PowersaveTraffic(lfjson_host, lfjson_port, ssid = "jedway-open" , security = "open",
|
||||||
password ="[BLANK]", station_list = station_list , side_a_min_rate=2000, side_b_min_rate=2000, side_a_max_rate=0,
|
password ="[BLANK]", station_list = station_list , side_a_min_rate=2000, side_b_min_rate=2000, side_a_max_rate=0,
|
||||||
side_b_max_rate=0, prefix="00000", test_duration="30s",
|
side_b_max_rate=0, prefix="00000", test_duration="30s",
|
||||||
|
|||||||
Reference in New Issue
Block a user