root/include/net/fib_notifier.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef __NET_FIB_NOTIFIER_H
   2 #define __NET_FIB_NOTIFIER_H
   3 
   4 #include <linux/types.h>
   5 #include <linux/notifier.h>
   6 #include <net/net_namespace.h>
   7 
   8 struct module;
   9 
  10 struct fib_notifier_info {
  11         struct net *net;
  12         int family;
  13         struct netlink_ext_ack  *extack;
  14 };
  15 
  16 enum fib_event_type {
  17         FIB_EVENT_ENTRY_REPLACE,
  18         FIB_EVENT_ENTRY_APPEND,
  19         FIB_EVENT_ENTRY_ADD,
  20         FIB_EVENT_ENTRY_DEL,
  21         FIB_EVENT_RULE_ADD,
  22         FIB_EVENT_RULE_DEL,
  23         FIB_EVENT_NH_ADD,
  24         FIB_EVENT_NH_DEL,
  25         FIB_EVENT_VIF_ADD,
  26         FIB_EVENT_VIF_DEL,
  27 };
  28 
  29 struct fib_notifier_ops {
  30         int family;
  31         struct list_head list;
  32         unsigned int (*fib_seq_read)(struct net *net);
  33         int (*fib_dump)(struct net *net, struct notifier_block *nb);
  34         struct module *owner;
  35         struct rcu_head rcu;
  36 };
  37 
  38 int call_fib_notifier(struct notifier_block *nb, struct net *net,
  39                       enum fib_event_type event_type,
  40                       struct fib_notifier_info *info);
  41 int call_fib_notifiers(struct net *net, enum fib_event_type event_type,
  42                        struct fib_notifier_info *info);
  43 int register_fib_notifier(struct notifier_block *nb,
  44                           void (*cb)(struct notifier_block *nb));
  45 int unregister_fib_notifier(struct notifier_block *nb);
  46 struct fib_notifier_ops *
  47 fib_notifier_ops_register(const struct fib_notifier_ops *tmpl, struct net *net);
  48 void fib_notifier_ops_unregister(struct fib_notifier_ops *ops);
  49 
  50 #endif

/* [<][>][^][v][top][bottom][index][help] */