mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 11:18:03 +00:00
Merge ../lanforge-scripts
This commit is contained in:
@@ -33,10 +33,12 @@ class VAPProfile(LFCliBase):
|
||||
self.COMMANDS = ["add_vap", "set_port"]
|
||||
self.desired_add_vap_flags = ["wpa2_enable", "80211u_enable", "create_admin_down"]
|
||||
self.desired_add_vap_flags_mask = ["wpa2_enable", "80211u_enable", "create_admin_down"]
|
||||
self.shelf = 1
|
||||
self.resource = 1
|
||||
|
||||
self.add_vap_data = {
|
||||
"shelf": 1,
|
||||
"resource": 1,
|
||||
"shelf": self.shelf,
|
||||
"resource": self.resource,
|
||||
"radio": None,
|
||||
"ap_name": None,
|
||||
"flags": 0,
|
||||
@@ -51,16 +53,16 @@ class VAPProfile(LFCliBase):
|
||||
self.desired_set_port_current_flags = ["if_down"]
|
||||
self.desired_set_port_interest_flags = ["current_flags", "ifdown"]
|
||||
self.set_port_data = {
|
||||
"shelf": 1,
|
||||
"resource": 1,
|
||||
"shelf": self.shelf,
|
||||
"resource": self.resource,
|
||||
"port": None,
|
||||
"current_flags": 0,
|
||||
"interest": 0, # (0x2 + 0x4000 + 0x800000) # current, dhcp, down
|
||||
}
|
||||
self.wifi_extra_data_modified = False
|
||||
self.wifi_extra_data = {
|
||||
"shelf": 1,
|
||||
"resource": 1,
|
||||
"shelf": self.shelf,
|
||||
"resource": self.resource,
|
||||
"port": None,
|
||||
"key_mgmt": None,
|
||||
"eap": None,
|
||||
@@ -70,6 +72,7 @@ class VAPProfile(LFCliBase):
|
||||
"realm": None,
|
||||
"domain": None
|
||||
}
|
||||
self.up = None
|
||||
|
||||
def set_wifi_extra(self,
|
||||
key_mgmt="WPA-EAP",
|
||||
@@ -219,6 +222,14 @@ class VAPProfile(LFCliBase):
|
||||
def create(self, resource, radio, channel=None, up_=None, debug=False, use_ht40=True, use_ht80=True,
|
||||
use_ht160=False,
|
||||
suppress_related_commands_=True, use_radius=False, hs20_enable=False, bridge=True):
|
||||
eid = LFUtils.name_to_eid(radio)
|
||||
self.shelf = eid[0]
|
||||
self.resource = eid[1]
|
||||
radio = eid[2]
|
||||
|
||||
if resource:
|
||||
self.resource = resource
|
||||
|
||||
port_list = self.local_realm.json_get("port/1/1/list")
|
||||
if port_list is not None:
|
||||
port_list = port_list['interfaces']
|
||||
@@ -248,19 +259,19 @@ class VAPProfile(LFCliBase):
|
||||
|
||||
# print("MODE ========= ", self.mode)
|
||||
|
||||
jr = self.local_realm.json_get("/radiostatus/1/%s/%s?fields=channel,frequency,country" % (resource, radio),
|
||||
jr = self.local_realm.json_get("/radiostatus/1/%s/%s?fields=channel,frequency,country" % (self.resource, radio),
|
||||
debug_=self.debug)
|
||||
if jr is None:
|
||||
raise ValueError("No radio %s.%s found" % (resource, radio))
|
||||
raise ValueError("No radio %s.%s found" % (self.resource, radio))
|
||||
|
||||
eid = "1.%s.%s" % (resource, radio)
|
||||
eid_2 = "1.%s.%s" % (self.resource, radio)
|
||||
country = 0
|
||||
if eid in jr:
|
||||
country = jr[eid]["country"]
|
||||
if eid_2 in jr:
|
||||
country = jr[eid_2]["country"]
|
||||
|
||||
data = {
|
||||
"shelf": 1,
|
||||
"resource": resource,
|
||||
"shelf": self.shelf,
|
||||
"resource": self.resource,
|
||||
"radio": radio,
|
||||
"mode": self.mode, # "NA", #0 for AUTO or "NA"
|
||||
"channel": channel,
|
||||
@@ -355,7 +366,7 @@ class VAPProfile(LFCliBase):
|
||||
if self.up:
|
||||
self.admin_up(resource)
|
||||
|
||||
def cleanup(self, resource, delay=0.03):
|
||||
def cleanup(self, resource):
|
||||
print("Cleaning up VAPs")
|
||||
desired_ports = ["1.%s.%s" % (resource, self.vap_name), "1.%s.br0" % resource]
|
||||
|
||||
|
||||
@@ -28,9 +28,13 @@ class WifiMonitor:
|
||||
self.flag_mask_names = []
|
||||
self.flags_mask = add_monitor.default_flags_mask
|
||||
self.aid = "NA" # used when sniffing /ax radios
|
||||
self.bsssid = "00:00:00:00:00:00" # used when sniffing on /ax radios
|
||||
self.bssid = "00:00:00:00:00:00" # used when sniffing on /ax radios
|
||||
|
||||
def create(self, resource_=1, channel=None, mode="AUTO", radio_="wiphy0", name_="moni0"):
|
||||
radio_eid = self.local_realm.name_to_eid(radio_)
|
||||
radio_shelf = radio_eid[0]
|
||||
self.resource = radio_eid[1]
|
||||
radio_ = radio_eid[2]
|
||||
print("Creating monitor " + name_)
|
||||
self.monitor_name = name_
|
||||
computed_flags = 0
|
||||
@@ -40,20 +44,19 @@ class WifiMonitor:
|
||||
# we want to query the existing country code of the radio
|
||||
# there's no reason to change it but we get hollering from server
|
||||
# if we don't provide a value for the parameter
|
||||
jr = self.local_realm.json_get("/radiostatus/1/%s/%s?fields=channel,frequency,country" % (resource_, radio_),
|
||||
jr = self.local_realm.json_get("/radiostatus/1/%s/%s?fields=channel,frequency,country" % (self.resource, radio_),
|
||||
debug_=self.debug)
|
||||
if jr is None:
|
||||
raise ValueError("No radio %s.%s found" % (resource_, radio_))
|
||||
raise ValueError("No radio %s.%s found" % (self.resource, radio_))
|
||||
|
||||
eid = "1.%s.%s" % (resource_, radio_)
|
||||
# frequency = 0
|
||||
country = 0
|
||||
if eid in jr:
|
||||
country = jr[eid]["country"]
|
||||
if radio_ in jr:
|
||||
country = jr[radio_]["country"]
|
||||
|
||||
data = {
|
||||
"shelf": 1,
|
||||
"resource": resource_,
|
||||
"shelf": radio_shelf,
|
||||
"resource": self.resource,
|
||||
"radio": radio_,
|
||||
"mode": set_radio_mode[mode], # "NA", #0 for AUTO or "NA"
|
||||
"channel": channel,
|
||||
@@ -64,8 +67,8 @@ class WifiMonitor:
|
||||
self.local_realm.json_post("/cli-json/set_wifi_radio", _data=data)
|
||||
time.sleep(1)
|
||||
self.local_realm.json_post("/cli-json/add_monitor", {
|
||||
"shelf": 1,
|
||||
"resource": resource_,
|
||||
"shelf": radio_shelf,
|
||||
"resource": self.resource,
|
||||
"radio": radio_,
|
||||
"ap_name": self.monitor_name,
|
||||
"flags": computed_flags,
|
||||
@@ -81,31 +84,31 @@ class WifiMonitor:
|
||||
del self.flag_names[param_name]
|
||||
self.flags_mask |= add_monitor.flags[param_name]
|
||||
|
||||
def cleanup(self, resource_=1, desired_ports=None):
|
||||
def cleanup(self, desired_ports=None):
|
||||
print("Cleaning up monitors")
|
||||
if (desired_ports is None) or (len(desired_ports) < 1):
|
||||
if (self.monitor_name is None) or (self.monitor_name == ""):
|
||||
print("No monitor name set to delete")
|
||||
return
|
||||
LFUtils.removePort(resource=resource_,
|
||||
LFUtils.removePort(resource=self.resource,
|
||||
port_name=self.monitor_name,
|
||||
baseurl=self.lfclient_url,
|
||||
debug=self.debug)
|
||||
else:
|
||||
names = ",".join(desired_ports)
|
||||
existing_ports = self.local_realm.json_get("/port/1/%d/%s?fields=alias" % (resource_, names), debug_=False)
|
||||
existing_ports = self.local_realm.json_get("/port/1/%d/%s?fields=alias" % (self.resource, names), debug_=False)
|
||||
if (existing_ports is None) or ("interfaces" not in existing_ports) or ("interface" not in existing_ports):
|
||||
print("No monitor names found to delete")
|
||||
return
|
||||
if "interfaces" in existing_ports:
|
||||
for eid, info in existing_ports["interfaces"].items():
|
||||
LFUtils.removePort(resource=resource_,
|
||||
LFUtils.removePort(resource=self.resource,
|
||||
port_name=info["alias"],
|
||||
baseurl=self.lfclient_url,
|
||||
debug=self.debug)
|
||||
if "interface" in existing_ports:
|
||||
for eid, info in existing_ports["interface"].items():
|
||||
LFUtils.removePort(resource=resource_,
|
||||
LFUtils.removePort(resource=self.resource,
|
||||
port_name=info["alias"],
|
||||
baseurl=self.lfclient_url,
|
||||
debug=self.debug)
|
||||
@@ -124,7 +127,7 @@ class WifiMonitor:
|
||||
raise ValueError("Need a capture file name")
|
||||
data = {
|
||||
"shelf": 1,
|
||||
"resource": 1,
|
||||
"resource": self.resource,
|
||||
"port": self.monitor_name,
|
||||
"display": "NA",
|
||||
"flags": 0x2,
|
||||
|
||||
Reference in New Issue
Block a user