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