On Tue, 25 Nov 2008 04:51:53 +0100 Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: > Hi Stephen, > > > It is easier for some applications to deal with text based interfaces > > like uevent, rather than using netlink to listen for events. > > > > Note, this does not deal with network namespaces but that is a generic > > problem that already exists with kobjects (see rename events). > > > > Signed-off-by: Stephen Hemminger <shemminger@xxxxxxxxxx> > > > > --- > > net/core/Makefile | 1 > > net/core/uevent.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ > > ++++++++++ > > 2 files changed, 62 insertions(+) > > > > --- a/net/core/Makefile 2008-11-24 12:07:18.000000000 -0800 > > +++ b/net/core/Makefile 2008-11-24 12:07:22.000000000 -0800 > > @@ -17,3 +17,4 @@ obj-$(CONFIG_NET_PKTGEN) += pktgen.o > > obj-$(CONFIG_NETPOLL) += netpoll.o > > obj-$(CONFIG_NET_DMA) += user_dma.o > > obj-$(CONFIG_FIB_RULES) += fib_rules.o > > +obj-$(CONFIG_HOTPLUG) += uevent.o > > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > > +++ b/net/core/uevent.c 2008-11-24 12:11:46.000000000 -0800 > > @@ -0,0 +1,55 @@ > > +/* > > + * Linux network device event notification > > + * > > + * Author: > > + * Stephen Hemminger <shemminger@xxxxxxxxxx> > > + */ > > + > > +#include <linux/kernel.h> > > +#include <linux/netdevice.h> > > +#include <linux/kobject.h> > > +#include <linux/notifier.h> > > + > > +/* > > + * Generate uevent in response to network device state changes. > > + * Other events are already handled by device subsystem. > > + */ > > +static int netdev_event(struct notifier_block *this, unsigned long > > event, void *ptr) > > +{ > > + struct net_device *netdev = ptr; > > + > > + switch (event) { > > + case NETDEV_UP: > > + kobject_uevent(&netdev->dev.kobj, KOBJ_ONLINE); > > + break; > > + > > + case NETDEV_DOWN: > > + kobject_uevent(&netdev->dev.kobj, KOBJ_OFFLINE); > > + break; > > + > > + case NETDEV_CHANGE: { > > + char str[64] = "DEVSTATE=UP"; > > + char *envp[2] = { str, NULL }; > > + > > + if (netif_oper_up(netdev)) > > + strcat(str, ",RUNNING"); > > + if (netif_carrier_ok(netdev)) > > + strcat(str, ",LOWER_UP"); > > + if (netif_dormant(netdev)) > > + strcat(str, ",DORMANT"); > > + kobject_uevent_env(&netdev->dev.kobj, KOBJ_CHANGE, envp); > > + break; > > do we wanna copy just what ifconfig shows or do we might be a more > intelligent and have separate variables like RUNNING=1 etc.? > > Regards > > Marcel Was arbitrary choice to just use same flags as existing ifconfig. What ever feels best I guess... -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html