diff options
Diffstat (limited to 'include/net/udp.h')
| -rw-r--r-- | include/net/udp.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/net/udp.h b/include/net/udp.h index bb967dd59bf7..67ea6fcb3ec0 100644 --- a/include/net/udp.h +++ b/include/net/udp.h | |||
| @@ -144,6 +144,17 @@ static inline __wsum udp_csum_outgoing(struct sock *sk, struct sk_buff *skb) | |||
| 144 | return csum; | 144 | return csum; |
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | static inline __wsum udp_csum(struct sk_buff *skb) | ||
| 148 | { | ||
| 149 | __wsum csum = csum_partial(skb_transport_header(skb), | ||
| 150 | sizeof(struct udphdr), skb->csum); | ||
| 151 | |||
| 152 | for (skb = skb_shinfo(skb)->frag_list; skb; skb = skb->next) { | ||
| 153 | csum = csum_add(csum, skb->csum); | ||
| 154 | } | ||
| 155 | return csum; | ||
| 156 | } | ||
| 157 | |||
| 147 | /* hash routines shared between UDPv4/6 and UDP-Litev4/6 */ | 158 | /* hash routines shared between UDPv4/6 and UDP-Litev4/6 */ |
| 148 | static inline void udp_lib_hash(struct sock *sk) | 159 | static inline void udp_lib_hash(struct sock *sk) |
| 149 | { | 160 | { |
| @@ -245,5 +256,5 @@ extern void udp4_proc_exit(void); | |||
| 245 | extern void udp_init(void); | 256 | extern void udp_init(void); |
| 246 | 257 | ||
| 247 | extern int udp4_ufo_send_check(struct sk_buff *skb); | 258 | extern int udp4_ufo_send_check(struct sk_buff *skb); |
| 248 | extern struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, int features); | 259 | extern struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, u32 features); |
| 249 | #endif /* _UDP_H */ | 260 | #endif /* _UDP_H */ |
