|
@@ -1521,6 +1521,39 @@ struct packet_type {
|
|
|
|
|
|
#include <linux/notifier.h>
|
|
#include <linux/notifier.h>
|
|
|
|
|
|
|
|
+/* netdevice notifier chain. Please remember to update the rtnetlink
|
|
|
|
+ * notification exclusion list in rtnetlink_event() when adding new
|
|
|
|
+ * types.
|
|
|
|
+ */
|
|
|
|
+#define NETDEV_UP 0x0001 /* For now you can't veto a device up/down */
|
|
|
|
+#define NETDEV_DOWN 0x0002
|
|
|
|
+#define NETDEV_REBOOT 0x0003 /* Tell a protocol stack a network interface
|
|
|
|
+ detected a hardware crash and restarted
|
|
|
|
+ - we can use this eg to kick tcp sessions
|
|
|
|
+ once done */
|
|
|
|
+#define NETDEV_CHANGE 0x0004 /* Notify device state change */
|
|
|
|
+#define NETDEV_REGISTER 0x0005
|
|
|
|
+#define NETDEV_UNREGISTER 0x0006
|
|
|
|
+#define NETDEV_CHANGEMTU 0x0007
|
|
|
|
+#define NETDEV_CHANGEADDR 0x0008
|
|
|
|
+#define NETDEV_GOING_DOWN 0x0009
|
|
|
|
+#define NETDEV_CHANGENAME 0x000A
|
|
|
|
+#define NETDEV_FEAT_CHANGE 0x000B
|
|
|
|
+#define NETDEV_BONDING_FAILOVER 0x000C
|
|
|
|
+#define NETDEV_PRE_UP 0x000D
|
|
|
|
+#define NETDEV_PRE_TYPE_CHANGE 0x000E
|
|
|
|
+#define NETDEV_POST_TYPE_CHANGE 0x000F
|
|
|
|
+#define NETDEV_POST_INIT 0x0010
|
|
|
|
+#define NETDEV_UNREGISTER_BATCH 0x0011
|
|
|
|
+#define NETDEV_RELEASE 0x0012
|
|
|
|
+#define NETDEV_NOTIFY_PEERS 0x0013
|
|
|
|
+#define NETDEV_JOIN 0x0014
|
|
|
|
+
|
|
|
|
+extern int register_netdevice_notifier(struct notifier_block *nb);
|
|
|
|
+extern int unregister_netdevice_notifier(struct notifier_block *nb);
|
|
|
|
+extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev);
|
|
|
|
+
|
|
|
|
+
|
|
extern rwlock_t dev_base_lock; /* Device list lock */
|
|
extern rwlock_t dev_base_lock; /* Device list lock */
|
|
|
|
|
|
|
|
|
|
@@ -1603,12 +1636,9 @@ static inline void unregister_netdevice(struct net_device *dev)
|
|
extern int netdev_refcnt_read(const struct net_device *dev);
|
|
extern int netdev_refcnt_read(const struct net_device *dev);
|
|
extern void free_netdev(struct net_device *dev);
|
|
extern void free_netdev(struct net_device *dev);
|
|
extern void synchronize_net(void);
|
|
extern void synchronize_net(void);
|
|
-extern int register_netdevice_notifier(struct notifier_block *nb);
|
|
|
|
-extern int unregister_netdevice_notifier(struct notifier_block *nb);
|
|
|
|
extern int init_dummy_netdev(struct net_device *dev);
|
|
extern int init_dummy_netdev(struct net_device *dev);
|
|
extern void netdev_resync_ops(struct net_device *dev);
|
|
extern void netdev_resync_ops(struct net_device *dev);
|
|
|
|
|
|
-extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev);
|
|
|
|
extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
|
|
extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
|
|
extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
|
|
extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
|
|
extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
|
|
extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
|