interface: report link up events for force_link interfaces
[project/netifd.git] / wireless.h
index c6609e7..665cdb7 100644 (file)
@@ -17,8 +17,8 @@
 #include <libubox/utils.h>
 #include "interface.h"
 
-struct vlist_tree wireless_devices;
-struct avl_tree wireless_drivers;
+extern struct vlist_tree wireless_devices;
+extern struct avl_tree wireless_drivers;
 
 struct wireless_driver {
        struct avl_node node;
@@ -49,11 +49,13 @@ struct wireless_device {
 
        struct ubus_request_data *kill_request;
 
+       struct blob_attr *prev_config;
        struct blob_attr *config;
        struct blob_attr *data;
 
        bool config_autostart;
        bool autostart;
+       bool disabled;
 
        enum interface_state state;
        enum interface_config_state config_state;
@@ -65,6 +67,7 @@ struct wireless_device {
 
 struct wireless_interface {
        struct vlist_node node;
+       const char *section;
        char *name;
 
        struct wireless_device *wdev;
@@ -73,7 +76,9 @@ struct wireless_interface {
        struct blob_attr *data;
 
        const char *ifname;
-       const char *network;
+       struct blob_attr *network;
+       bool isolate;
+       bool ap_mode;
 };
 
 struct wireless_process {
@@ -89,10 +94,12 @@ void wireless_device_create(struct wireless_driver *drv, const char *name, struc
 void wireless_device_set_up(struct wireless_device *wdev);
 void wireless_device_set_down(struct wireless_device *wdev);
 void wireless_device_status(struct wireless_device *wdev, struct blob_buf *b);
-void wireless_interface_create(struct wireless_device *wdev, struct blob_attr *data);
+void wireless_device_get_validate(struct wireless_device *wdev, struct blob_buf *b);
+void wireless_interface_create(struct wireless_device *wdev, struct blob_attr *data, const char *section);
 int wireless_device_notify(struct wireless_device *wdev, struct blob_attr *data,
                           struct ubus_request_data *req);
 
 void wireless_start_pending(void);
+void wireless_init(void);
 
 #endif