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 
18 struct netevent_redirect {
19 	struct dst_entry *old;
20 	struct dst_entry *new;
21 	struct neighbour *neigh;
22 	const void *daddr;
23 };
24 
25 enum netevent_notif_type {
26 	NETEVENT_NEIGH_UPDATE = 1, /* arg is struct neighbour ptr */
27 	NETEVENT_REDIRECT,	   /* arg is struct netevent_redirect ptr */
28 	NETEVENT_DELAY_PROBE_TIME_UPDATE, /* arg is struct neigh_parms ptr */
29 	NETEVENT_IPV4_MPATH_HASH_UPDATE, /* arg is struct net ptr */
30 	NETEVENT_IPV6_MPATH_HASH_UPDATE, /* arg is struct net ptr */
31 	NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE, /* arg is struct net ptr */
32 };
33 
34 int register_netevent_notifier(struct notifier_block *nb);
35 int unregister_netevent_notifier(struct notifier_block *nb);
36 int call_netevent_notifiers(unsigned long val, void *v);
37 
38 #endif
39