diff options
Diffstat (limited to 'include/linux/netdevice.h')
| -rw-r--r-- | include/linux/netdevice.h | 22 | 
1 files changed, 19 insertions, 3 deletions
| diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 2095b6ab3661..136ae6bbe81e 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -789,6 +789,7 @@ enum {  	TC_SETUP_CLSU32,  	TC_SETUP_CLSFLOWER,  	TC_SETUP_MATCHALL, +	TC_SETUP_CLSBPF,  };  struct tc_cls_u32_offload; @@ -800,6 +801,7 @@ struct tc_to_netdev {  		struct tc_cls_u32_offload *cls_u32;  		struct tc_cls_flower_offload *cls_flower;  		struct tc_cls_matchall_offload *cls_mall; +		struct tc_cls_bpf_offload *cls_bpf;  	};  }; @@ -924,6 +926,14 @@ struct netdev_xdp {   *	3. Update dev->stats asynchronously and atomically, and define   *	   neither operation.   * + * bool (*ndo_has_offload_stats)(int attr_id) + *	Return true if this device supports offload stats of this attr_id. + * + * int (*ndo_get_offload_stats)(int attr_id, const struct net_device *dev, + *	void *attr_data) + *	Get statistics for offload operations by attr_id. Write it into the + *	attr_data pointer. + *   * int (*ndo_vlan_rx_add_vid)(struct net_device *dev, __be16 proto, u16 vid);   *	If device supports VLAN filtering this function is called when a   *	VLAN id is registered. @@ -936,7 +946,8 @@ struct netdev_xdp {   *   *	SR-IOV management functions.   * int (*ndo_set_vf_mac)(struct net_device *dev, int vf, u8* mac); - * int (*ndo_set_vf_vlan)(struct net_device *dev, int vf, u16 vlan, u8 qos); + * int (*ndo_set_vf_vlan)(struct net_device *dev, int vf, u16 vlan, + *			  u8 qos, __be16 proto);   * int (*ndo_set_vf_rate)(struct net_device *dev, int vf, int min_tx_rate,   *			  int max_tx_rate);   * int (*ndo_set_vf_spoofchk)(struct net_device *dev, int vf, bool setting); @@ -1155,6 +1166,10 @@ struct net_device_ops {  	struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev,  						     struct rtnl_link_stats64 *storage); +	bool			(*ndo_has_offload_stats)(int attr_id); +	int			(*ndo_get_offload_stats)(int attr_id, +							 const struct net_device *dev, +							 void *attr_data);  	struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);  	int			(*ndo_vlan_rx_add_vid)(struct net_device *dev, @@ -1173,7 +1188,8 @@ struct net_device_ops {  	int			(*ndo_set_vf_mac)(struct net_device *dev,  						  int queue, u8 *mac);  	int			(*ndo_set_vf_vlan)(struct net_device *dev, -						   int queue, u16 vlan, u8 qos); +						   int queue, u16 vlan, +						   u8 qos, __be16 proto);  	int			(*ndo_set_vf_rate)(struct net_device *dev,  						   int vf, int min_tx_rate,  						   int max_tx_rate); @@ -1783,7 +1799,7 @@ struct net_device {  #endif  	struct netdev_queue __rcu *ingress_queue;  #ifdef CONFIG_NETFILTER_INGRESS -	struct list_head	nf_hooks_ingress; +	struct nf_hook_entry __rcu *nf_hooks_ingress;  #endif  	unsigned char		broadcast[MAX_ADDR_LEN]; | 
