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

Hans Dedecker dedeckeh at gmail.com
Tue Jul 3 16:46:00 EDT 2018


On Tue, Jul 3, 2018 at 7:26 PM Paul Oranje <por at oranjevos.nl> wrote:
>
> Curious: what purposes or use-cases are intended to be served with this event ?
Please don't top post

The interface event IFEV_CREATE can be used by external applications
or netifd internal subsystems to trigger specific logic when an
interface is created; patch http://patchwork.ozlabs.org/patch/937167/
makes use of this event

Hans
>
>
> > Op 29 jun. 2018, om 16:14 heeft Hans Dedecker <dedeckeh at gmail.com> het volgende geschreven:
> >
> > On Fri, Jun 29, 2018 at 5:23 AM Alexander Couzens <lynxis at fe80.eu> wrote:
> >>
> >> "create" will be called before the proto handlers initialised.
> > Acked-by: Hans Dedecker <dedeckeh at gmail.com>
> >> ---
> >> 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
>

_______________________________________________
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