xref: /linux/include/net/netevent.h (revision 4359a011e259a4608afc7fb3635370c9d4ba5943)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _NET_EVENT_H
3 #define _NET_EVENT_H
4 
5 /*
6  *	Generic netevent notifiers
7  *
8  *	Authors:
9  *      Tom Tucker              <tom@opengridcomputing.com>
10  *      Steve Wise              <swise@opengridcomputing.com>
11  *
12  * 	Changes:
13  */
14 
15 struct dst_entry;
16 struct neighbour;
17 struct notifier_block ;
18 
19 struct netevent_redirect {
20 	struct dst_entry *old;
21 	struct dst_entry *new;
22 	struct neighbour *neigh;
23 	const void *daddr;
24 };
25 
26 enum netevent_notif_type {
27 	NETEVENT_NEIGH_UPDATE = 1, /* arg is struct neighbour ptr */
28 	NETEVENT_REDIRECT,	   /* arg is struct netevent_redirect ptr */
29 	NETEVENT_DELAY_PROBE_TIME_UPDATE, /* arg is struct neigh_parms ptr */
30 	NETEVENT_IPV4_MPATH_HASH_UPDATE, /* arg is struct net ptr */
31 	NETEVENT_IPV6_MPATH_HASH_UPDATE, /* arg is struct net ptr */
32 	NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE, /* arg is struct net ptr */
33 };
34 
35 int register_netevent_notifier(struct notifier_block *nb);
36 int unregister_netevent_notifier(struct notifier_block *nb);
37 int call_netevent_notifiers(unsigned long val, void *v);
38 
39 #endif
40