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
15struct dst_entry;
16struct neighbour;
17
18struct netevent_redirect {
19 struct dst_entry *old;
20 struct dst_entry *new;
21 struct neighbour *neigh;
22 const void *daddr;
23};
24
25enum 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
34int register_netevent_notifier(struct notifier_block *nb);
35int unregister_netevent_notifier(struct notifier_block *nb);
36int call_netevent_notifiers(unsigned long val, void *v);
37
38#endif
39