[OpenWrt-Devel] [PATCH 1/2] Introduce new interface event "create" (IFEV_CREATE)

Alexander Couzens lynxis at fe80.eu
Thu Jun 28 23:23:14 EDT 2018


"create" will be called before the proto handlers initialised.
---
 interface-event.c | 1 +
 interface.c       | 1 +
 interface.h       | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/interface-event.c b/interface-event.c
index 86e8f5488da8..a40f6dc883d3 100644
--- a/interface-event.c
+++ b/interface-event.c
@@ -38,6 +38,7 @@ static const char * const eventnames[] = {
 	[IFEV_FREE] = "free",
 	[IFEV_RELOAD] = "reload",
 	[IFEV_LINK_UP] = "iflink",
+	[IFEV_CREATE] = "create",
 };
 
 static void
diff --git a/interface.c b/interface.c
index 2a23984922a1..400c605efc0c 100644
--- a/interface.c
+++ b/interface.c
@@ -1275,6 +1275,7 @@ interface_update(struct vlist_tree *tree, struct vlist_node *node_new,
 		set_config_state(if_old, IFC_REMOVE);
 	} else if (node_new) {
 		D(INTERFACE, "Create interface '%s'\n", if_new->name);
+		interface_event(if_new, IFEV_CREATE);
 		proto_init_interface(if_new, if_new->config);
 		interface_claim_device(if_new);
 		netifd_ubus_add_interface(if_new);
diff --git a/interface.h b/interface.h
index 0e58f69c26e0..e5639eb326cd 100644
--- a/interface.h
+++ b/interface.h
@@ -28,6 +28,8 @@ enum interface_event {
 	IFEV_FREE,
 	IFEV_RELOAD,
 	IFEV_LINK_UP,
+	/* send when a new interface created. This is before proto handlers has been attached. */
+	IFEV_CREATE,
 };
 
 enum interface_state {
-- 
2.18.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list