X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=device.h;h=b2ea0fa67afe56b243ec13c288ab239b07fb5984;hb=33ec3daaaa52cea628df91eb0eb1701e16172c1e;hp=4f80caa870ffe767b9633157d0d1ac7cd68d975a;hpb=6519cf31e4b033fd4a03c031ad882166be84fa6d;p=project%2Fnetifd.git diff --git a/device.h b/device.h index 4f80caa..b2ea0fa 100644 --- a/device.h +++ b/device.h @@ -60,8 +60,18 @@ enum { DEV_ATTR_DROP_UNSOLICITED_NA, DEV_ATTR_ARP_ACCEPT, DEV_ATTR_AUTH, + DEV_ATTR_AUTH_VLAN, DEV_ATTR_SPEED, DEV_ATTR_DUPLEX, + DEV_ATTR_VLAN, + DEV_ATTR_PAUSE, + DEV_ATTR_ASYM_PAUSE, + DEV_ATTR_RXPAUSE, + DEV_ATTR_TXPAUSE, + DEV_ATTR_AUTONEG, + DEV_ATTR_GRO, + DEV_ATTR_MASTER, + DEV_ATTR_EEE, __DEV_ATTR_MAX, }; @@ -126,6 +136,14 @@ enum { DEV_OPT_ARP_ACCEPT = (1ULL << 29), DEV_OPT_SPEED = (1ULL << 30), DEV_OPT_DUPLEX = (1ULL << 31), + DEV_OPT_PAUSE = (1ULL << 32), + DEV_OPT_ASYM_PAUSE = (1ULL << 33), + DEV_OPT_RXPAUSE = (1ULL << 34), + DEV_OPT_TXPAUSE = (1ULL << 35), + DEV_OPT_AUTONEG = (1ULL << 36), + DEV_OPT_GRO = (1ULL << 37), + DEV_OPT_MASTER = (1ULL << 38), + DEV_OPT_EEE = (1ULL << 39), }; /* events broadcasted to all users of a device */ @@ -203,6 +221,18 @@ struct device_settings { bool auth; unsigned int speed; bool duplex; + bool pause; + bool asym_pause; + bool rxpause; + bool txpause; + bool autoneg; + bool gro; + int master_ifindex; + bool eee; +}; + +struct device_vlan_range { + uint16_t start, end; }; /* @@ -218,8 +248,10 @@ struct device { struct vlist_tree vlans; struct kvlist vlan_aliases; + struct blob_attr *config_auth_vlans; + struct blob_attr *auth_vlans; - char ifname[IFNAMSIZ + 1]; + char ifname[IFNAMSIZ]; int ifindex; struct blob_attr *config; @@ -243,9 +275,13 @@ struct device { 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; @@ -298,9 +334,6 @@ extern const struct uci_blob_param_list device_attr_list; 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); @@ -344,13 +377,13 @@ void device_release(struct device_user *dep); 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); struct device *device_alias_get(const char *name); -void device_set_auth_status(struct device *dev, bool value); +void device_set_auth_status(struct device *dev, bool value, struct blob_attr *vlans); static inline void device_set_deferred(struct device *dev, bool value)