mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
51 lines
1.4 KiB
#ifndef __NET_FIB_NOTIFIER_H |
|
#define __NET_FIB_NOTIFIER_H |
|
|
|
#include <linux/types.h> |
|
#include <linux/notifier.h> |
|
#include <net/net_namespace.h> |
|
|
|
struct module; |
|
|
|
struct fib_notifier_info { |
|
int family; |
|
struct netlink_ext_ack *extack; |
|
}; |
|
|
|
enum fib_event_type { |
|
FIB_EVENT_ENTRY_REPLACE, |
|
FIB_EVENT_ENTRY_APPEND, |
|
FIB_EVENT_ENTRY_ADD, |
|
FIB_EVENT_ENTRY_DEL, |
|
FIB_EVENT_RULE_ADD, |
|
FIB_EVENT_RULE_DEL, |
|
FIB_EVENT_NH_ADD, |
|
FIB_EVENT_NH_DEL, |
|
FIB_EVENT_VIF_ADD, |
|
FIB_EVENT_VIF_DEL, |
|
}; |
|
|
|
struct fib_notifier_ops { |
|
int family; |
|
struct list_head list; |
|
unsigned int (*fib_seq_read)(struct net *net); |
|
int (*fib_dump)(struct net *net, struct notifier_block *nb, |
|
struct netlink_ext_ack *extack); |
|
struct module *owner; |
|
struct rcu_head rcu; |
|
}; |
|
|
|
int call_fib_notifier(struct notifier_block *nb, |
|
enum fib_event_type event_type, |
|
struct fib_notifier_info *info); |
|
int call_fib_notifiers(struct net *net, enum fib_event_type event_type, |
|
struct fib_notifier_info *info); |
|
int register_fib_notifier(struct net *net, struct notifier_block *nb, |
|
void (*cb)(struct notifier_block *nb), |
|
struct netlink_ext_ack *extack); |
|
int unregister_fib_notifier(struct net *net, struct notifier_block *nb); |
|
struct fib_notifier_ops * |
|
fib_notifier_ops_register(const struct fib_notifier_ops *tmpl, struct net *net); |
|
void fib_notifier_ops_unregister(struct fib_notifier_ops *ops); |
|
|
|
#endif
|
|
|