diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/socket.h | 4 | ||||
-rw-r--r-- | include/linux/if.h | 2 | ||||
-rw-r--r-- | include/linux/netdevice.h | 8 | ||||
-rw-r--r-- | include/linux/skbuff.h | 4 | ||||
-rw-r--r-- | include/net/sock.h | 4 |
5 files changed, 20 insertions, 2 deletions
diff --git a/include/asm-generic/socket.h b/include/asm-generic/socket.h index d9aaac0c36d4..b1bea03274d5 100644 --- a/include/asm-generic/socket.h +++ b/include/asm-generic/socket.h | |||
@@ -68,4 +68,8 @@ | |||
68 | #define SO_WIFI_STATUS 41 | 68 | #define SO_WIFI_STATUS 41 |
69 | #define SCM_WIFI_STATUS SO_WIFI_STATUS | 69 | #define SCM_WIFI_STATUS SO_WIFI_STATUS |
70 | #define SO_PEEK_OFF 42 | 70 | #define SO_PEEK_OFF 42 |
71 | |||
72 | /* Instruct lower device to use last 4-bytes of skb data as FCS */ | ||
73 | #define SO_NOFCS 43 | ||
74 | |||
71 | #endif /* __ASM_GENERIC_SOCKET_H */ | 75 | #endif /* __ASM_GENERIC_SOCKET_H */ |
diff --git a/include/linux/if.h b/include/linux/if.h index 06b6ef60c821..f995c663c493 100644 --- a/include/linux/if.h +++ b/include/linux/if.h | |||
@@ -80,6 +80,8 @@ | |||
80 | * skbs on transmit */ | 80 | * skbs on transmit */ |
81 | #define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */ | 81 | #define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */ |
82 | #define IFF_TEAM_PORT 0x40000 /* device used as team port */ | 82 | #define IFF_TEAM_PORT 0x40000 /* device used as team port */ |
83 | #define IFF_SUPP_NOFCS 0x80000 /* device supports sending custom FCS */ | ||
84 | |||
83 | 85 | ||
84 | #define IF_GET_IFACE 0x0001 /* for querying only */ | 86 | #define IF_GET_IFACE 0x0001 /* for querying only */ |
85 | #define IF_GET_PROTO 0x0002 | 87 | #define IF_GET_PROTO 0x0002 |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 0eac07c95255..f1b7d037c2c5 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1082,7 +1082,8 @@ struct net_device { | |||
1082 | const struct header_ops *header_ops; | 1082 | const struct header_ops *header_ops; |
1083 | 1083 | ||
1084 | unsigned int flags; /* interface flags (a la BSD) */ | 1084 | unsigned int flags; /* interface flags (a la BSD) */ |
1085 | unsigned int priv_flags; /* Like 'flags' but invisible to userspace. */ | 1085 | unsigned int priv_flags; /* Like 'flags' but invisible to userspace. |
1086 | * See if.h for definitions. */ | ||
1086 | unsigned short gflags; | 1087 | unsigned short gflags; |
1087 | unsigned short padded; /* How much padding added by alloc_netdev() */ | 1088 | unsigned short padded; /* How much padding added by alloc_netdev() */ |
1088 | 1089 | ||
@@ -2650,6 +2651,11 @@ static inline int netif_is_bond_slave(struct net_device *dev) | |||
2650 | return dev->flags & IFF_SLAVE && dev->priv_flags & IFF_BONDING; | 2651 | return dev->flags & IFF_SLAVE && dev->priv_flags & IFF_BONDING; |
2651 | } | 2652 | } |
2652 | 2653 | ||
2654 | static inline bool netif_supports_nofcs(struct net_device *dev) | ||
2655 | { | ||
2656 | return dev->priv_flags & IFF_SUPP_NOFCS; | ||
2657 | } | ||
2658 | |||
2653 | extern struct pernet_operations __net_initdata loopback_net_ops; | 2659 | extern struct pernet_operations __net_initdata loopback_net_ops; |
2654 | 2660 | ||
2655 | /* Logging, debugging and troubleshooting/diagnostic helpers. */ | 2661 | /* Logging, debugging and troubleshooting/diagnostic helpers. */ |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index c11a44ea1bf4..06a4c0fd7bef 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -361,6 +361,7 @@ typedef unsigned char *sk_buff_data_t; | |||
361 | * ports. | 361 | * ports. |
362 | * @wifi_acked_valid: wifi_acked was set | 362 | * @wifi_acked_valid: wifi_acked was set |
363 | * @wifi_acked: whether frame was acked on wifi or not | 363 | * @wifi_acked: whether frame was acked on wifi or not |
364 | * @no_fcs: Request NIC to treat last 4 bytes as Ethernet FCS | ||
364 | * @dma_cookie: a cookie to one of several possible DMA operations | 365 | * @dma_cookie: a cookie to one of several possible DMA operations |
365 | * done by skb DMA functions | 366 | * done by skb DMA functions |
366 | * @secmark: security marking | 367 | * @secmark: security marking |
@@ -459,7 +460,8 @@ struct sk_buff { | |||
459 | __u8 l4_rxhash:1; | 460 | __u8 l4_rxhash:1; |
460 | __u8 wifi_acked_valid:1; | 461 | __u8 wifi_acked_valid:1; |
461 | __u8 wifi_acked:1; | 462 | __u8 wifi_acked:1; |
462 | /* 10/12 bit hole (depending on ndisc_nodetype presence) */ | 463 | __u8 no_fcs:1; |
464 | /* 9/11 bit hole (depending on ndisc_nodetype presence) */ | ||
463 | kmemcheck_bitfield_end(flags2); | 465 | kmemcheck_bitfield_end(flags2); |
464 | 466 | ||
465 | #ifdef CONFIG_NET_DMA | 467 | #ifdef CONFIG_NET_DMA |
diff --git a/include/net/sock.h b/include/net/sock.h index 9c0553b9e451..ba761e7de252 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -615,6 +615,10 @@ enum sock_flags { | |||
615 | SOCK_RXQ_OVFL, | 615 | SOCK_RXQ_OVFL, |
616 | SOCK_ZEROCOPY, /* buffers from userspace */ | 616 | SOCK_ZEROCOPY, /* buffers from userspace */ |
617 | SOCK_WIFI_STATUS, /* push wifi status to userspace */ | 617 | SOCK_WIFI_STATUS, /* push wifi status to userspace */ |
618 | SOCK_NOFCS, /* Tell NIC not to do the Ethernet FCS. | ||
619 | * Will use last 4 bytes of packet sent from | ||
620 | * user-space instead. | ||
621 | */ | ||
618 | }; | 622 | }; |
619 | 623 | ||
620 | static inline void sock_copy_flags(struct sock *nsk, struct sock *osk) | 624 | static inline void sock_copy_flags(struct sock *nsk, struct sock *osk) |