[NET]: Network Event Notifier Mechanism.

This patch uses notifier blocks to implement a network event
notifier mechanism.

Clients register their callback function by calling
register_netevent_notifier() like this:

static struct notifier_block nb = {
        .notifier_call = my_callback_func
};

...

register_netevent_notifier(&nb);

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Tom Tucker 2006-07-30 20:43:26 -07:00 committed by David S. Miller
parent 3687b1dc6f
commit 792d1932e3
2 changed files with 102 additions and 0 deletions

33
include/net/netevent.h Normal file
View file

@ -0,0 +1,33 @@
#ifndef _NET_EVENT_H
#define _NET_EVENT_H
/*
* Generic netevent notifiers
*
* Authors:
* Tom Tucker <tom@opengridcomputing.com>
* Steve Wise <swise@opengridcomputing.com>
*
* Changes:
*/
#ifdef __KERNEL__
#include <net/dst.h>
struct netevent_redirect {
struct dst_entry *old;
struct dst_entry *new;
};
enum netevent_notif_type {
NETEVENT_NEIGH_UPDATE = 1, /* arg is struct neighbour ptr */
NETEVENT_PMTU_UPDATE, /* arg is struct dst_entry ptr */
NETEVENT_REDIRECT, /* arg is struct netevent_redirect ptr */
};
extern int register_netevent_notifier(struct notifier_block *nb);
extern int unregister_netevent_notifier(struct notifier_block *nb);
extern int call_netevent_notifiers(unsigned long val, void *v);
#endif
#endif