mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-19 02:04:19 +08:00
792d1932e3
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>
34 lines
784 B
C
34 lines
784 B
C
#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
|