|
@@ -3077,6 +3077,14 @@ void *netdev_lower_get_next_private_rcu(struct net_device *dev,
|
|
priv; \
|
|
priv; \
|
|
priv = netdev_lower_get_next_private_rcu(dev, &(iter)))
|
|
priv = netdev_lower_get_next_private_rcu(dev, &(iter)))
|
|
|
|
|
|
|
|
+void *netdev_lower_get_next(struct net_device *dev,
|
|
|
|
+ struct list_head **iter);
|
|
|
|
+#define netdev_for_each_lower_dev(dev, ldev, iter) \
|
|
|
|
+ for (iter = &(dev)->adj_list.lower, \
|
|
|
|
+ ldev = netdev_lower_get_next(dev, &(iter)); \
|
|
|
|
+ ldev; \
|
|
|
|
+ ldev = netdev_lower_get_next(dev, &(iter)))
|
|
|
|
+
|
|
void *netdev_adjacent_get_private(struct list_head *adj_list);
|
|
void *netdev_adjacent_get_private(struct list_head *adj_list);
|
|
void *netdev_lower_get_first_private_rcu(struct net_device *dev);
|
|
void *netdev_lower_get_first_private_rcu(struct net_device *dev);
|
|
struct net_device *netdev_master_upper_dev_get(struct net_device *dev);
|
|
struct net_device *netdev_master_upper_dev_get(struct net_device *dev);
|
|
@@ -3092,6 +3100,8 @@ void netdev_upper_dev_unlink(struct net_device *dev,
|
|
void netdev_adjacent_rename_links(struct net_device *dev, char *oldname);
|
|
void netdev_adjacent_rename_links(struct net_device *dev, char *oldname);
|
|
void *netdev_lower_dev_get_private(struct net_device *dev,
|
|
void *netdev_lower_dev_get_private(struct net_device *dev,
|
|
struct net_device *lower_dev);
|
|
struct net_device *lower_dev);
|
|
|
|
+int dev_get_nest_level(struct net_device *dev,
|
|
|
|
+ bool (*type_check)(struct net_device *dev));
|
|
int skb_checksum_help(struct sk_buff *skb);
|
|
int skb_checksum_help(struct sk_buff *skb);
|
|
struct sk_buff *__skb_gso_segment(struct sk_buff *skb,
|
|
struct sk_buff *__skb_gso_segment(struct sk_buff *skb,
|
|
netdev_features_t features, bool tx_path);
|
|
netdev_features_t features, bool tx_path);
|