• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/netifd/wireless.h

  1 /*
  2  * netifd - network interface daemon
  3  * Copyright (C) 2013 Felix Fietkau <nbd@openwrt.org>
  4  *
  5  * This program is free software; you can redistribute it and/or modify
  6  * it under the terms of the GNU General Public License version 2
  7  * as published by the Free Software Foundation
  8  *
  9  * This program is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 12  * GNU General Public License for more details.
 13  */
 14 #ifndef __NETIFD_WIRELESS_H
 15 #define __NETIFD_WIRELESS_H
 16 
 17 #include <libubox/utils.h>
 18 #include <libubox/list.h>
 19 #include "interface.h"
 20 
 21 extern struct vlist_tree wireless_devices;
 22 extern struct avl_tree wireless_drivers;
 23 
 24 struct wireless_driver {
 25         struct avl_node node;
 26 
 27         const char *name;
 28         const char *script;
 29 
 30         struct {
 31                 char *buf;
 32                 struct uci_blob_param_list *config;
 33         } device, interface, vlan, station;
 34 };
 35 
 36 struct wireless_device {
 37         struct vlist_node node;
 38 
 39         struct list_head handler;
 40         bool handler_action;
 41         bool handler_pending;
 42         bool serialize;
 43         bool config_update;
 44 
 45         struct wireless_driver *drv;
 46         struct vlist_tree interfaces;
 47         char *name;
 48 
 49         struct netifd_process script_task;
 50         struct uloop_timeout timeout;
 51         struct uloop_timeout poll;
 52 
 53         struct list_head script_proc;
 54         struct uloop_fd script_proc_fd;
 55         struct uloop_timeout script_check;
 56 
 57         struct ubus_request_data *kill_request;
 58 
 59         struct blob_attr *prev_config;
 60         struct blob_attr *config;
 61         struct blob_attr *data;
 62 
 63         bool autostart;
 64         bool disabled;
 65         bool retry_setup_failed;
 66 
 67         enum interface_state state;
 68         enum interface_config_state config_state;
 69         bool reconf;
 70         bool cancel;
 71         int retry;
 72 
 73         int vif_idx;
 74 };
 75 
 76 struct wireless_interface {
 77         struct vlist_node node;
 78         const char *section;
 79         char *name;
 80 
 81         struct vlist_tree vlans;
 82         struct vlist_tree stations;
 83         struct wireless_device *wdev;
 84 
 85         struct blob_attr *config;
 86         struct blob_attr *data;
 87 
 88         const char *ifname;
 89         struct blob_attr *network;
 90         struct blob_attr *network_vlan;
 91         bool proxyarp;
 92         bool isolate;
 93         bool bridge_isolate;
 94         bool ap_mode;
 95         int multicast_to_unicast;
 96         int vlan_idx;
 97         int sta_idx;
 98         bool disabled;
 99 };
100 
101 struct wireless_vlan {
102         struct vlist_node node;
103         const char *section;
104         char *name;
105 
106         struct blob_attr *config;
107         struct blob_attr *data;
108 
109         const char *ifname;
110         struct blob_attr *network;
111         struct blob_attr *network_vlan;
112         int multicast_to_unicast;
113         bool isolate;
114         bool bridge_isolate;
115 };
116 
117 struct wireless_station {
118         struct vlist_node node;
119         const char *section;
120         char *name;
121 
122         struct blob_attr *config;
123         struct blob_attr *data;
124 };
125 
126 struct wireless_process {
127         struct list_head list;
128 
129         const char *exe;
130         int pid;
131 
132         bool required;
133         bool keep;
134 };
135 
136 void wireless_device_create(struct wireless_driver *drv, const char *name, struct blob_attr *data);
137 void wireless_device_set_up(struct wireless_device *wdev);
138 void wireless_device_set_down(struct wireless_device *wdev);
139 void wireless_device_reconf(struct wireless_device *wdev);
140 void wireless_device_status(struct wireless_device *wdev, struct blob_buf *b);
141 void wireless_device_get_validate(struct wireless_device *wdev, struct blob_buf *b);
142 struct wireless_interface* wireless_interface_create(struct wireless_device *wdev, struct blob_attr *data, const char *section);
143 void wireless_vlan_create(struct wireless_interface *vif, struct blob_attr *data, const char *section);
144 void wireless_station_create(struct wireless_interface *vif, struct blob_attr *data, const char *section);
145 int wireless_device_notify(struct wireless_device *wdev, struct blob_attr *data,
146                            struct ubus_request_data *req);
147 
148 void wireless_check_network_enabled(void);
149 void wireless_start_pending(int timeout);
150 void wireless_init(void);
151 void wireless_device_hotplug_event(const char *name, bool add);
152 
153 #endif
154 

This page was automatically generated by LXR 0.3.1.  •  OpenWrt