enum {
DEV_ATTR_TYPE,
DEV_ATTR_MTU,
+ DEV_ATTR_MTU6,
DEV_ATTR_MACADDR,
DEV_ATTR_TXQUEUELEN,
DEV_ATTR_ENABLED,
DEV_ATTR_NEIGHREACHABLETIME,
DEV_ATTR_RPS,
DEV_ATTR_XPS,
+ DEV_ATTR_DADTRANSMITS,
+ DEV_ATTR_MULTICAST_TO_UNICAST,
+ DEV_ATTR_MULTICAST_ROUTER,
__DEV_ATTR_MAX,
};
DEV_OPT_IGMPVERSION = (1 << 7),
DEV_OPT_MLDVERSION = (1 << 8),
DEV_OPT_NEIGHREACHABLETIME = (1 << 9),
+ DEV_OPT_RPS = (1 << 10),
+ DEV_OPT_XPS = (1 << 11),
+ DEV_OPT_MTU6 = (1 << 12),
+ DEV_OPT_DADTRANSMITS = (1 << 13),
+ DEV_OPT_MULTICAST_TO_UNICAST = (1 << 14),
+ DEV_OPT_MULTICAST_ROUTER = (1 << 15),
};
/* events broadcasted to all users of a device */
struct device_settings {
unsigned int flags;
unsigned int mtu;
+ unsigned int mtu6;
unsigned int txqueuelen;
uint8_t macaddr[6];
bool ipv6;
unsigned int neigh6reachabletime;
bool rps;
bool xps;
+ unsigned int dadtransmits;
+ bool multicast_to_unicast;
+ unsigned int multicast_router;
};
/*
struct blob_attr *config;
bool config_pending;
bool sys_present;
+ /* DEV_EVENT_ADD */
bool present;
+ /* DEV_EVENT_UP */
int active;
+ /* DEV_EVENT_LINK_UP */
bool link_active;
bool external;
bool iface_config;
bool default_config;
bool wireless;
+ bool wireless_ap;
+ bool wireless_isolate;
struct interface *config_iface;
void device_reset_config(void);
void device_reset_old(void);
+void device_set_default_ps(bool state);
void device_init_virtual(struct device *dev, const struct device_type *type, const char *name);
int device_init(struct device *iface, const struct device_type *type, const char *ifname);