From: Felix Fietkau Date: Mon, 5 Sep 2011 03:49:11 +0000 (+0200) Subject: move ip related functions and data structures to a separate header file X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=818abd9f2f42c36a0f91ff6d29a9a635398216e0;p=oweals%2Fnetifd.git move ip related functions and data structures to a separate header file --- diff --git a/device.h b/device.h index 1abd567..cb7146a 100644 --- a/device.h +++ b/device.h @@ -37,42 +37,6 @@ 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 diff --git a/interface-ip.c b/interface-ip.c index 2a26a4a..6decaea 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -5,6 +5,7 @@ #include "netifd.h" #include "device.h" #include "interface.h" +#include "interface-ip.h" #include "proto.h" #include "ubus.h" #include "system.h" diff --git a/interface-ip.h b/interface-ip.h new file mode 100644 index 0000000..2f5cf85 --- /dev/null +++ b/interface-ip.h @@ -0,0 +1,48 @@ +#ifndef __INTERFACE_IP_H +#define __INTERFACE_IP_H + +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; +}; + +int interface_add_address(struct interface *iface, struct device_addr *addr); +void interface_del_address(struct interface *iface, struct device_addr *addr); +void interface_del_ctx_addr(struct interface *iface, void *ctx); + +int interface_add_route(struct interface *iface, struct device_route *route); +void interface_del_route(struct interface *iface, struct device_route *route); +void interface_del_all_routes(struct interface *iface); + +#endif diff --git a/interface.c b/interface.c index f6c32f4..570e046 100644 --- a/interface.c +++ b/interface.c @@ -5,6 +5,7 @@ #include "netifd.h" #include "device.h" #include "interface.h" +#include "interface-ip.h" #include "proto.h" #include "ubus.h" #include "config.h" diff --git a/interface.h b/interface.h index f66b5b9..bde069c 100644 --- a/interface.h +++ b/interface.h @@ -75,14 +75,6 @@ void interface_remove_link(struct interface *iface, struct device *llif); void interface_add_error(struct interface *iface, const char *subsystem, const char *code, const char **data, int n_data); -int interface_add_address(struct interface *iface, struct device_addr *addr); -void interface_del_address(struct interface *iface, struct device_addr *addr); -void interface_del_ctx_addr(struct interface *iface, void *ctx); - -int interface_add_route(struct interface *iface, struct device_route *route); -void interface_del_route(struct interface *iface, struct device_route *route); -void interface_del_all_routes(struct interface *iface); - void interface_start_pending(void); #endif diff --git a/proto-static.c b/proto-static.c index 15db330..a4938f4 100644 --- a/proto-static.c +++ b/proto-static.c @@ -7,6 +7,7 @@ #include "netifd.h" #include "interface.h" +#include "interface-ip.h" #include "proto.h" #include "system.h" diff --git a/system-dummy.c b/system-dummy.c index eab9277..b3efa08 100644 --- a/system-dummy.c +++ b/system-dummy.c @@ -7,6 +7,7 @@ #include "netifd.h" #include "device.h" +#include "system.h" int system_bridge_addbr(struct device *bridge) { diff --git a/system.h b/system.h index 835a49d..8658467 100644 --- a/system.h +++ b/system.h @@ -3,6 +3,7 @@ #include #include "device.h" +#include "interface-ip.h" int system_bridge_addbr(struct device *bridge); int system_bridge_delbr(struct device *bridge);