net: introduce upper device lists
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / linux / netdevice.h
index c5031a4..e324601 100644 (file)
@@ -1174,6 +1174,8 @@ struct net_device {
                                          * which this device is member of.
                                          */
 
+       struct list_head        upper_dev_list; /* List of upper devices */
+
        /* Interface address info used in eth_type_trans() */
        unsigned char           *dev_addr;      /* hw address, (before bcast
                                                   because most packets are
@@ -2636,6 +2638,18 @@ extern int               netdev_max_backlog;
 extern int             netdev_tstamp_prequeue;
 extern int             weight_p;
 extern int             bpf_jit_enable;
+
+extern bool netdev_has_upper_dev(struct net_device *dev,
+                                struct net_device *upper_dev);
+extern bool netdev_has_any_upper_dev(struct net_device *dev);
+extern struct net_device *netdev_master_upper_dev_get(struct net_device *dev);
+extern struct net_device *netdev_master_upper_dev_get_rcu(struct net_device *dev);
+extern int netdev_upper_dev_link(struct net_device *dev,
+                                struct net_device *upper_dev);
+extern int netdev_master_upper_dev_link(struct net_device *dev,
+                                       struct net_device *upper_dev);
+extern void netdev_upper_dev_unlink(struct net_device *dev,
+                                   struct net_device *upper_dev);
 extern int             netdev_set_master(struct net_device *dev, struct net_device *master);
 extern int netdev_set_bond_master(struct net_device *dev,
                                  struct net_device *master);