DEV_ATTR_AUTH,
DEV_ATTR_SPEED,
DEV_ATTR_DUPLEX,
+ DEV_ATTR_VLAN,
__DEV_ATTR_MAX,
};
void (*dump_info)(struct device *, struct blob_buf *buf);
void (*dump_stats)(struct device *, struct blob_buf *buf);
int (*check_state)(struct device *);
+ void (*stp_init)(struct device *);
void (*free)(struct device *);
};
bool duplex;
};
+struct device_vlan_range {
+ uint16_t start, end;
+};
+
/*
* link layer device. typically represents a linux network device.
* can be used to support VLANs as well
struct vlist_tree vlans;
struct kvlist vlan_aliases;
- char ifname[IFNAMSIZ + 1];
+ char ifname[IFNAMSIZ];
int ifindex;
struct blob_attr *config;
bool default_config;
bool wireless;
bool wireless_ap;
+ bool wireless_proxyarp;
bool wireless_isolate;
+ bool bpdu_filter;
struct interface *config_iface;
+ struct device_vlan_range *extra_vlan;
+ int n_extra_vlan;
/* set interface up or down */
device_state_cb set_state;
extern struct device_type simple_device_type;
extern struct device_type tunnel_device_type;
-void device_lock(void);
-void device_unlock(void);
-
void device_vlan_update(bool done);
+void device_stp_init(void);
int device_type_add(struct device_type *devtype);
struct device_type *device_type_get(const char *tname);
int device_check_state(struct device *dev);
void device_dump_status(struct blob_buf *b, struct device *dev);
-void device_free_unused(struct device *dev);
+void device_free_unused(void);
struct device *get_vlan_device_chain(const char *ifname, int create);
void alias_notify_device(const char *name, struct device *dev);