summaryrefslogtreecommitdiffhomepage
path: root/interface.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-10-02 20:33:10 +0200
committerFelix Fietkau <nbd@openwrt.org>2011-10-02 20:37:21 +0200
commitfd50535d7d4060d3cb80f1c317a087507ecfdf2b (patch)
tree4092597805e6bb0eed7f5d6c16fcbf14561a21e4 /interface.h
parent504b87e64062fc52fdedea4e35bb03467c8bf97f (diff)
manage interfaces via vlist
Diffstat (limited to 'interface.h')
-rw-r--r--interface.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/interface.h b/interface.h
index 9708a5e..1e8ef44 100644
--- a/interface.h
+++ b/interface.h
@@ -31,7 +31,7 @@ struct interface_error {
* interface configuration
*/
struct interface {
- struct list_head list;
+ struct vlist_node node;
char name[IFNAMSIZ];
@@ -46,7 +46,7 @@ struct interface {
/* interface that layer 3 communication will go through */
struct device_user *l3_dev;
- struct config_state config;
+ struct blob_attr *config;
/* primary protocol state */
const struct proto_handler *proto_handler;
@@ -63,9 +63,10 @@ struct interface {
extern const struct config_param_list interface_attr_list;
-struct interface *interface_get(const char *name);
-struct interface *interface_alloc(const char *name, struct blob_attr *attr);
-void interface_free(struct interface *iface);
+void interface_init(struct interface *iface, const char *name,
+ struct blob_attr *config);
+
+void interface_add(struct interface *iface, struct blob_attr *config);
void interface_set_proto_state(struct interface *iface, struct interface_proto_state *state);