diff options
Diffstat (limited to 'include/linux/if_macvlan.h')
| -rw-r--r-- | include/linux/if_macvlan.h | 29 | 
1 files changed, 24 insertions, 5 deletions
diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h index 4cb7aeeafce0..2e55e4cdbd8a 100644 --- a/include/linux/if_macvlan.h +++ b/include/linux/if_macvlan.h @@ -21,7 +21,7 @@ struct macvlan_dev {  	struct hlist_node	hlist;  	struct macvlan_port	*port;  	struct net_device	*lowerdev; -	void			*fwd_priv; +	void			*accel_priv;  	struct vlan_pcpu_stats __percpu *pcpu_stats;  	DECLARE_BITMAP(mc_filter, MACVLAN_MC_FILTER_SZ); @@ -61,10 +61,6 @@ extern int macvlan_common_newlink(struct net *src_net, struct net_device *dev,  				  struct nlattr *tb[], struct nlattr *data[],  				  struct netlink_ext_ack *extack); -extern void macvlan_count_rx(const struct macvlan_dev *vlan, -			     unsigned int len, bool success, -			     bool multicast); -  extern void macvlan_dellink(struct net_device *dev, struct list_head *head);  extern int macvlan_link_register(struct rtnl_link_ops *ops); @@ -86,4 +82,27 @@ macvlan_dev_real_dev(const struct net_device *dev)  }  #endif +static inline void *macvlan_accel_priv(struct net_device *dev) +{ +	struct macvlan_dev *macvlan = netdev_priv(dev); + +	return macvlan->accel_priv; +} + +static inline bool macvlan_supports_dest_filter(struct net_device *dev) +{ +	struct macvlan_dev *macvlan = netdev_priv(dev); + +	return macvlan->mode == MACVLAN_MODE_PRIVATE || +	       macvlan->mode == MACVLAN_MODE_VEPA || +	       macvlan->mode == MACVLAN_MODE_BRIDGE; +} + +static inline int macvlan_release_l2fw_offload(struct net_device *dev) +{ +	struct macvlan_dev *macvlan = netdev_priv(dev); + +	macvlan->accel_priv = NULL; +	return dev_uc_add(macvlan->lowerdev, dev->dev_addr); +}  #endif /* _LINUX_IF_MACVLAN_H */  |