mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	tip_station_powersave.py: progress creating and removing ports; collecting mac addresses for tshark
This commit is contained in:
		| @@ -58,6 +58,7 @@ class TIPStationPowersave(LFCliBase): | |||||||
|         self.normal_sta_radio = normal_station_radio_ |         self.normal_sta_radio = normal_station_radio_ | ||||||
|         self.powersave_sta_list = powersave_station_list_ |         self.powersave_sta_list = powersave_station_list_ | ||||||
|         self.powersave_sta_radio = powersave_station_radio_ |         self.powersave_sta_radio = powersave_station_radio_ | ||||||
|  |         self.sta_mac_map = {} | ||||||
|         self.debug = debug_on_ |         self.debug = debug_on_ | ||||||
|         self.local_realm = realm.Realm(lfclient_host=self.host, |         self.local_realm = realm.Realm(lfclient_host=self.host, | ||||||
|                                        lfclient_port=self.port, |                                        lfclient_port=self.port, | ||||||
| @@ -126,11 +127,11 @@ class TIPStationPowersave(LFCliBase): | |||||||
|         self.sta_powersave_enabled_profile.set_command_flag("set_port", "rpt_timer", 1) |         self.sta_powersave_enabled_profile.set_command_flag("set_port", "rpt_timer", 1) | ||||||
|         self.sta_powersave_enabled_profile.set_command_flag("add_sta", "power_save_enable", 1) |         self.sta_powersave_enabled_profile.set_command_flag("add_sta", "power_save_enable", 1) | ||||||
|  |  | ||||||
|  |  | ||||||
|         self.wifi_monitor_profile.create(resource_=self.resource, |         self.wifi_monitor_profile.create(resource_=self.resource, | ||||||
|                                          channel=self.channel, |                                          channel=self.channel, | ||||||
|                                          radio_=self.monitor_radio, |                                          radio_=self.monitor_radio, | ||||||
|                                          name_=self.monitor_name) |                                          name_=self.monitor_name) | ||||||
|  |  | ||||||
|         LFUtils.wait_until_ports_appear(base_url=self.local_realm.lfclient_url, |         LFUtils.wait_until_ports_appear(base_url=self.local_realm.lfclient_url, | ||||||
|                                         port_list=[self.monitor_name]) |                                         port_list=[self.monitor_name]) | ||||||
|         time.sleep(0.2) |         time.sleep(0.2) | ||||||
| @@ -147,7 +148,6 @@ class TIPStationPowersave(LFCliBase): | |||||||
|                                                   sta_names_=self.powersave_sta_list, |                                                   sta_names_=self.powersave_sta_list, | ||||||
|                                                   debug=self.debug, |                                                   debug=self.debug, | ||||||
|                                                   suppress_related_commands_=True) |                                                   suppress_related_commands_=True) | ||||||
|  |  | ||||||
|         temp_sta_map = {} |         temp_sta_map = {} | ||||||
|         for name in  self.powersave_sta_list + self.normal_sta_list: |         for name in  self.powersave_sta_list + self.normal_sta_list: | ||||||
|                 temp_sta_map[name]=1 |                 temp_sta_map[name]=1 | ||||||
| @@ -206,6 +206,8 @@ class TIPStationPowersave(LFCliBase): | |||||||
|             self._fail("eth0 is misconfigured or not our management port", print_=True) |             self._fail("eth0 is misconfigured or not our management port", print_=True) | ||||||
|             exit(1) |             exit(1) | ||||||
|  |  | ||||||
|  |         self.sta_mac_map = {} | ||||||
|  |  | ||||||
|  |  | ||||||
|     def __get_rx_values(self): |     def __get_rx_values(self): | ||||||
|         cx_list = self.json_get("/endp/list?fields=name,rx+bytes", debug_=False) |         cx_list = self.json_get("/endp/list?fields=name,rx+bytes", debug_=False) | ||||||
| @@ -250,6 +252,17 @@ class TIPStationPowersave(LFCliBase): | |||||||
|                                           port_list=self.sta_powersave_disabled_profile.station_names + self.sta_powersave_enabled_profile.station_names) |                                           port_list=self.sta_powersave_disabled_profile.station_names + self.sta_powersave_enabled_profile.station_names) | ||||||
|         self.local_realm.wait_for_ip(station_list=self.sta_powersave_disabled_profile.station_names + self.sta_powersave_enabled_profile.station_names) |         self.local_realm.wait_for_ip(station_list=self.sta_powersave_disabled_profile.station_names + self.sta_powersave_enabled_profile.station_names) | ||||||
|         time.sleep(2) |         time.sleep(2) | ||||||
|  |         # collect BSSID of AP so we can tshark on it | ||||||
|  |         uri = "/port/1/%s/%s?fields=alias,ip,mac,ap"%( | ||||||
|  |             self.resource, | ||||||
|  |             ",".join(self.sta_powersave_disabled_profile.station_names + self.sta_powersave_enabled_profile.station_names) | ||||||
|  |         ) | ||||||
|  |         port_info_r = self.json_get(uri) | ||||||
|  |         if (port_info_r is None) or ("empty" in port_info_r): | ||||||
|  |             self._fail("unable to query for mac addresses", print_=True) | ||||||
|  |             exit(1) | ||||||
|  |         self.sta_mac_map = LFUtils.portListToAliasMap(port_info_r) | ||||||
|  |  | ||||||
|         self.cx_prof_bg.start_cx() |         self.cx_prof_bg.start_cx() | ||||||
|         print("Upload starts at: %d"%time.time()) |         print("Upload starts at: %d"%time.time()) | ||||||
|         self.cx_prof_upload.start_cx() |         self.cx_prof_upload.start_cx() | ||||||
| @@ -269,6 +282,7 @@ class TIPStationPowersave(LFCliBase): | |||||||
|     def stop(self): |     def stop(self): | ||||||
|         #switch off new monitor |         #switch off new monitor | ||||||
|         self.wifi_monitor_profile.admin_down() |         self.wifi_monitor_profile.admin_down() | ||||||
|  |         self.cx_prof_bg.stop_cx() | ||||||
|         self.cx_prof_download.stop_cx() |         self.cx_prof_download.stop_cx() | ||||||
|         self.cx_prof_upload.stop_cx() |         self.cx_prof_upload.stop_cx() | ||||||
|         self.sta_powersave_enabled_profile.admin_down() |         self.sta_powersave_enabled_profile.admin_down() | ||||||
| @@ -276,16 +290,31 @@ class TIPStationPowersave(LFCliBase): | |||||||
|  |  | ||||||
|         # check for that pcap file |         # check for that pcap file | ||||||
|         if self.pcap_file is None: |         if self.pcap_file is None: | ||||||
|             self._fail("Did not configure pcap file") |             self._fail("Did not configure pcap file", print_=True) | ||||||
|  |             exit(1) | ||||||
|         homepage_url = "http://%s/"%self.eth0_ip |         homepage_url = "http://%s/"%self.eth0_ip | ||||||
|         webpage = LFRequest.plain_get(url_=homepage_url, debug_=True) |         webpage = LFRequest.plain_get(url_=homepage_url, debug_=True) | ||||||
|         if webpage is None: |         if webpage is None: | ||||||
|             self._fail("Unable to find wepage for LANforge") |             self._fail("Unable to find wepage for LANforge", print_=True) | ||||||
|  |             exit(1) | ||||||
|         homepage_url="http://%s/lf_reports/"%self.eth0_ip |         homepage_url="http://%s/lf_reports/"%self.eth0_ip | ||||||
|         webpage = LFRequest.plain_get(url_=homepage_url, debug_=True) |         webpage = LFRequest.plain_get(url_=homepage_url, debug_=True) | ||||||
|         if webpage is None: |         if webpage is None: | ||||||
|             self._fail("Unable to find /lf_reports/ page") |             self._fail("Unable to find /lf_reports/ page", print_=True) | ||||||
|  |             exit(1) | ||||||
|  |  | ||||||
|  |         pprint.pprint(self.sta_mac_map) | ||||||
|  |         interesting_macs = {} | ||||||
|  |         for eid,record in self.sta_mac_map.items(): | ||||||
|  |             interesting_macs[record["mac"]] = 1 | ||||||
|  |             interesting_macs[record["ap"]] = 1 | ||||||
|  |  | ||||||
|  |         mac_str = "-e wlan.addr ".join(interesting_macs.keys()) | ||||||
|  |         tshark_filter = "tshark -e wlan.addr=="+mac_str+" -r "+self.pcap_file | ||||||
|         # now check for the pcap file we just created |         # now check for the pcap file we just created | ||||||
|  |         print("TSHARK COMMAND: "+tshark_filter) | ||||||
|  |         self._fail("not done writing pcap logic", print_=True) | ||||||
|  |         exit(1) | ||||||
|  |  | ||||||
|  |  | ||||||
|     def cleanup(self): |     def cleanup(self): | ||||||
| @@ -316,8 +345,8 @@ def main(): | |||||||
|                                             side_b_min_rate_=56000, |                                             side_b_min_rate_=56000, | ||||||
|                                             traffic_duration_="5s", |                                             traffic_duration_="5s", | ||||||
|                                             pause_duration_="2s", |                                             pause_duration_="2s", | ||||||
|                                             debug_on_=True, |                                             debug_on_=False, | ||||||
|                                             exit_on_error_=False, |                                             exit_on_error_=True, | ||||||
|                                             exit_on_fail_=True) |                                             exit_on_fail_=True) | ||||||
|     ip_powersave_test.cleanup() |     ip_powersave_test.cleanup() | ||||||
|     ip_powersave_test.build() |     ip_powersave_test.build() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jed Reynolds
					Jed Reynolds