diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/if_vlan.h | 6 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 724bde8477b2..c901b13b6f03 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
| @@ -484,4 +484,10 @@ static inline void vlan_set_encap_proto(struct sk_buff *skb, | |||
| 484 | */ | 484 | */ |
| 485 | skb->protocol = htons(ETH_P_802_2); | 485 | skb->protocol = htons(ETH_P_802_2); |
| 486 | } | 486 | } |
| 487 | |||
| 488 | static inline int vlan_get_encap_level(struct net_device *dev) | ||
| 489 | { | ||
| 490 | BUG_ON(!is_vlan_dev(dev)); | ||
| 491 | return vlan_dev_priv(dev)->nest_level; | ||
| 492 | } | ||
| 487 | #endif /* !(_LINUX_IF_VLAN_H_) */ | 493 | #endif /* !(_LINUX_IF_VLAN_H_) */ |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 9d4b1f1b6b75..b42d07b0390b 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -3056,10 +3056,19 @@ extern int weight_p; | |||
| 3056 | extern int bpf_jit_enable; | 3056 | extern int bpf_jit_enable; |
| 3057 | 3057 | ||
| 3058 | bool netdev_has_upper_dev(struct net_device *dev, struct net_device *upper_dev); | 3058 | bool netdev_has_upper_dev(struct net_device *dev, struct net_device *upper_dev); |
| 3059 | struct net_device *netdev_upper_get_next_dev_rcu(struct net_device *dev, | ||
| 3060 | struct list_head **iter); | ||
| 3059 | struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, | 3061 | struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, |
| 3060 | struct list_head **iter); | 3062 | struct list_head **iter); |
| 3061 | 3063 | ||
| 3062 | /* iterate through upper list, must be called under RCU read lock */ | 3064 | /* iterate through upper list, must be called under RCU read lock */ |
| 3065 | #define netdev_for_each_upper_dev_rcu(dev, updev, iter) \ | ||
| 3066 | for (iter = &(dev)->adj_list.upper, \ | ||
| 3067 | updev = netdev_upper_get_next_dev_rcu(dev, &(iter)); \ | ||
| 3068 | updev; \ | ||
| 3069 | updev = netdev_upper_get_next_dev_rcu(dev, &(iter))) | ||
| 3070 | |||
| 3071 | /* iterate through upper list, must be called under RCU read lock */ | ||
| 3063 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ | 3072 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ |
| 3064 | for (iter = &(dev)->all_adj_list.upper, \ | 3073 | for (iter = &(dev)->all_adj_list.upper, \ |
| 3065 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)); \ | 3074 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)); \ |
