diff options
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index cead6be467ed..fa5671307b90 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -308,9 +308,12 @@ struct net_device | |||
308 | #define NETIF_F_HW_VLAN_RX 256 /* Receive VLAN hw acceleration */ | 308 | #define NETIF_F_HW_VLAN_RX 256 /* Receive VLAN hw acceleration */ |
309 | #define NETIF_F_HW_VLAN_FILTER 512 /* Receive filtering on VLAN */ | 309 | #define NETIF_F_HW_VLAN_FILTER 512 /* Receive filtering on VLAN */ |
310 | #define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */ | 310 | #define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */ |
311 | #define NETIF_F_TSO 2048 /* Can offload TCP/IP segmentation */ | ||
312 | #define NETIF_F_LLTX 4096 /* LockLess TX */ | 311 | #define NETIF_F_LLTX 4096 /* LockLess TX */ |
313 | #define NETIF_F_UFO 8192 /* Can offload UDP Large Send*/ | 312 | |
313 | /* Segmentation offload features */ | ||
314 | #define NETIF_F_GSO_SHIFT 16 | ||
315 | #define NETIF_F_TSO (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT) | ||
316 | #define NETIF_F_UFO (SKB_GSO_UDPV4 << NETIF_F_GSO_SHIFT) | ||
314 | 317 | ||
315 | #define NETIF_F_GEN_CSUM (NETIF_F_NO_CSUM | NETIF_F_HW_CSUM) | 318 | #define NETIF_F_GEN_CSUM (NETIF_F_NO_CSUM | NETIF_F_HW_CSUM) |
316 | #define NETIF_F_ALL_CSUM (NETIF_F_IP_CSUM | NETIF_F_GEN_CSUM) | 319 | #define NETIF_F_ALL_CSUM (NETIF_F_IP_CSUM | NETIF_F_GEN_CSUM) |
@@ -979,6 +982,13 @@ extern void dev_seq_stop(struct seq_file *seq, void *v); | |||
979 | 982 | ||
980 | extern void linkwatch_run_queue(void); | 983 | extern void linkwatch_run_queue(void); |
981 | 984 | ||
985 | static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) | ||
986 | { | ||
987 | int feature = skb_shinfo(skb)->gso_type << NETIF_F_GSO_SHIFT; | ||
988 | return skb_shinfo(skb)->gso_size && | ||
989 | (dev->features & feature) != feature; | ||
990 | } | ||
991 | |||
982 | #endif /* __KERNEL__ */ | 992 | #endif /* __KERNEL__ */ |
983 | 993 | ||
984 | #endif /* _LINUX_DEV_H */ | 994 | #endif /* _LINUX_DEV_H */ |