1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2792d1932STom Tucker #ifndef _NET_EVENT_H 3792d1932STom Tucker #define _NET_EVENT_H 4792d1932STom Tucker 5792d1932STom Tucker /* 6792d1932STom Tucker * Generic netevent notifiers 7792d1932STom Tucker * 8792d1932STom Tucker * Authors: 9792d1932STom Tucker * Tom Tucker <tom@opengridcomputing.com> 10792d1932STom Tucker * Steve Wise <swise@opengridcomputing.com> 11792d1932STom Tucker * 12792d1932STom Tucker * Changes: 13792d1932STom Tucker */ 14792d1932STom Tucker 15274b3426SHerbert Xu struct dst_entry; 161d248b1cSDavid S. Miller struct neighbour; 17*949d6b40SJakub Kicinski struct notifier_block ; 18792d1932STom Tucker 19792d1932STom Tucker struct netevent_redirect { 20792d1932STom Tucker struct dst_entry *old; 21792d1932STom Tucker struct dst_entry *new; 2260592833SYOSHIFUJI Hideaki / 吉藤英明 struct neighbour *neigh; 231d248b1cSDavid S. Miller const void *daddr; 24792d1932STom Tucker }; 25792d1932STom Tucker 26792d1932STom Tucker enum netevent_notif_type { 27792d1932STom Tucker NETEVENT_NEIGH_UPDATE = 1, /* arg is struct neighbour ptr */ 28792d1932STom Tucker NETEVENT_REDIRECT, /* arg is struct netevent_redirect ptr */ 292a4501aeSIdo Schimmel NETEVENT_DELAY_PROBE_TIME_UPDATE, /* arg is struct neigh_parms ptr */ 303192dac6SDavid Ahern NETEVENT_IPV4_MPATH_HASH_UPDATE, /* arg is struct net ptr */ 31b4bac172SDavid Ahern NETEVENT_IPV6_MPATH_HASH_UPDATE, /* arg is struct net ptr */ 32d18c5d19SPetr Machata NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE, /* arg is struct net ptr */ 33792d1932STom Tucker }; 34792d1932STom Tucker 354f69053bSJoe Perches int register_netevent_notifier(struct notifier_block *nb); 364f69053bSJoe Perches int unregister_netevent_notifier(struct notifier_block *nb); 374f69053bSJoe Perches int call_netevent_notifiers(unsigned long val, void *v); 38792d1932STom Tucker 39792d1932STom Tucker #endif 40