summaryrefslogtreecommitdiff
path: root/wireless.h
diff options
context:
space:
mode:
authorJohn Crispin <john@phrozen.org>2020-05-25 11:49:19 +0200
committerFelix Fietkau <nbd@nbd.name>2020-06-04 13:25:40 +0200
commita56b457656218e5b6142b6238286ea54801ac4b2 (patch)
tree6a1b665d97bc59a0eae636c9d6428b33dc192fbe /wireless.h
parent4ce33cee34e413f69082a80a833f3ed1baf8a761 (diff)
downloadnetifd-a56b457656218e5b6142b6238286ea54801ac4b2.tar.gz
netifd: wireless: add support for tracking wifi-station sections
This new section allows us to assign mac specific key/vid settings to a station. Signed-off-by: John Crispin <john@phrozen.org>
Diffstat (limited to 'wireless.h')
-rw-r--r--wireless.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/wireless.h b/wireless.h
index 8d0a1f0..5fedd20 100644
--- a/wireless.h
+++ b/wireless.h
@@ -30,7 +30,7 @@ struct wireless_driver {
struct {
char *buf;
struct uci_blob_param_list *config;
- } device, interface, vlan;
+ } device, interface, vlan, station;
};
struct wireless_device {
@@ -44,6 +44,7 @@ struct wireless_device {
struct wireless_driver *drv;
struct vlist_tree interfaces;
struct vlist_tree vlans;
+ struct vlist_tree stations;
char *name;
struct netifd_process script_task;
@@ -72,6 +73,7 @@ struct wireless_device {
int vif_idx;
int vlan_idx;
+ int sta_idx;
};
struct wireless_interface {
@@ -106,6 +108,18 @@ struct wireless_vlan {
bool isolate;
};
+struct wireless_station {
+ struct vlist_node node;
+ const char *section;
+ char *name;
+
+ struct wireless_device *wdev;
+ char *vif;
+
+ struct blob_attr *config;
+ struct blob_attr *data;
+};
+
struct wireless_process {
struct list_head list;
@@ -123,6 +137,7 @@ void wireless_device_status(struct wireless_device *wdev, struct blob_buf *b);
void wireless_device_get_validate(struct wireless_device *wdev, struct blob_buf *b);
struct wireless_interface* wireless_interface_create(struct wireless_device *wdev, struct blob_attr *data, const char *section);
void wireless_vlan_create(struct wireless_device *wdev, char *vif, struct blob_attr *data, const char *section);
+void wireless_station_create(struct wireless_device *wdev, char *vif, struct blob_attr *data, const char *section);
int wireless_device_notify(struct wireless_device *wdev, struct blob_attr *data,
struct ubus_request_data *req);