aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/udp.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/udp.h')
-rw-r--r--include/net/udp.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/net/udp.h b/include/net/udp.h
index 70f941368ace..07f9b70962f6 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -158,6 +158,24 @@ static inline __sum16 udp_v4_check(int len, __be32 saddr,
158void udp_set_csum(bool nocheck, struct sk_buff *skb, 158void udp_set_csum(bool nocheck, struct sk_buff *skb,
159 __be32 saddr, __be32 daddr, int len); 159 __be32 saddr, __be32 daddr, int len);
160 160
161struct sk_buff **udp_gro_receive(struct sk_buff **head, struct sk_buff *skb,
162 struct udphdr *uh);
163int udp_gro_complete(struct sk_buff *skb, int nhoff);
164
165static inline struct udphdr *udp_gro_udphdr(struct sk_buff *skb)
166{
167 struct udphdr *uh;
168 unsigned int hlen, off;
169
170 off = skb_gro_offset(skb);
171 hlen = off + sizeof(*uh);
172 uh = skb_gro_header_fast(skb, off);
173 if (skb_gro_header_hard(skb, hlen))
174 uh = skb_gro_header_slow(skb, hlen, off);
175
176 return uh;
177}
178
161/* hash routines shared between UDPv4/6 and UDP-Litev4/6 */ 179/* hash routines shared between UDPv4/6 and UDP-Litev4/6 */
162static inline void udp_lib_hash(struct sock *sk) 180static inline void udp_lib_hash(struct sock *sk)
163{ 181{
@@ -221,7 +239,8 @@ int udp_ioctl(struct sock *sk, int cmd, unsigned long arg);
221int udp_disconnect(struct sock *sk, int flags); 239int udp_disconnect(struct sock *sk, int flags);
222unsigned int udp_poll(struct file *file, struct socket *sock, poll_table *wait); 240unsigned int udp_poll(struct file *file, struct socket *sock, poll_table *wait);
223struct sk_buff *skb_udp_tunnel_segment(struct sk_buff *skb, 241struct sk_buff *skb_udp_tunnel_segment(struct sk_buff *skb,
224 netdev_features_t features); 242 netdev_features_t features,
243 bool is_ipv6);
225int udp_lib_getsockopt(struct sock *sk, int level, int optname, 244int udp_lib_getsockopt(struct sock *sk, int level, int optname,
226 char __user *optval, int __user *optlen); 245 char __user *optval, int __user *optlen);
227int udp_lib_setsockopt(struct sock *sk, int level, int optname, 246int udp_lib_setsockopt(struct sock *sk, int level, int optname,