diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-05-02 23:00:30 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-05-02 23:00:30 +0200 |
commit | 273550337f70b8b2175875e0c4f0bbd483cfe326 (patch) | |
tree | b433b4dcc731d61f750692a2a531c21e5eac4f26 /device.h | |
parent | 85218c601b0f5895f9025910643761930c02eb1a (diff) |
move interface address handling to the device module, clean up arguments to system_{add,del}_addr
Diffstat (limited to 'device.h')
-rw-r--r-- | device.h | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -2,6 +2,7 @@ #define __LL_H #include <libubox/avl.h> +#include <netinet/in.h> struct device; struct device_hotplug_ops; @@ -22,6 +23,42 @@ enum { DEV_OPT_TXQUEUELEN = (1 << 2) }; +enum device_addr_flags { + /* address family for routes and addresses */ + DEVADDR_INET4 = (0 << 0), + DEVADDR_INET6 = (1 << 0), + DEVADDR_FAMILY = DEVADDR_INET4 | DEVADDR_INET6, + + /* device route (no gateway) */ + DEVADDR_DEVICE = (1 << 1), +}; + +union if_addr { + struct in_addr in; + struct in6_addr in6; +}; + +struct device_addr { + struct list_head list; + void *ctx; + + enum device_addr_flags flags; + + unsigned int mask; + union if_addr addr; +}; + +struct device_route { + struct list_head list; + void *ctx; + + enum device_addr_flags flags; + + unsigned int mask; + union if_addr addr; + union if_addr nexthop; +}; + /* * link layer device. typically represents a linux network device. * can be used to support VLANs as well |