aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/dccp.h16
-rw-r--r--include/linux/netfilter_ipv4/ipt_dccp.h23
2 files changed, 36 insertions, 3 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index fd1412ddb3ff..431d58923ba9 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -242,10 +242,15 @@ static inline struct dccp_hdr_ext *dccp_hdrx(const struct sk_buff *skb)
242 return (struct dccp_hdr_ext *)(skb->h.raw + sizeof(struct dccp_hdr)); 242 return (struct dccp_hdr_ext *)(skb->h.raw + sizeof(struct dccp_hdr));
243} 243}
244 244
245static inline unsigned int __dccp_basic_hdr_len(const struct dccp_hdr *dh)
246{
247 return sizeof(*dh) + (dh->dccph_x ? sizeof(struct dccp_hdr_ext) : 0);
248}
249
245static inline unsigned int dccp_basic_hdr_len(const struct sk_buff *skb) 250static inline unsigned int dccp_basic_hdr_len(const struct sk_buff *skb)
246{ 251{
247 const struct dccp_hdr *dh = dccp_hdr(skb); 252 const struct dccp_hdr *dh = dccp_hdr(skb);
248 return sizeof(*dh) + (dh->dccph_x ? sizeof(struct dccp_hdr_ext) : 0); 253 return __dccp_basic_hdr_len(dh);
249} 254}
250 255
251static inline __u64 dccp_hdr_seq(const struct sk_buff *skb) 256static inline __u64 dccp_hdr_seq(const struct sk_buff *skb)
@@ -297,10 +302,15 @@ static inline struct dccp_hdr_reset *dccp_hdr_reset(struct sk_buff *skb)
297 return (struct dccp_hdr_reset *)(skb->h.raw + dccp_basic_hdr_len(skb)); 302 return (struct dccp_hdr_reset *)(skb->h.raw + dccp_basic_hdr_len(skb));
298} 303}
299 304
305static inline unsigned int __dccp_hdr_len(const struct dccp_hdr *dh)
306{
307 return __dccp_basic_hdr_len(dh) +
308 dccp_packet_hdr_len(dh->dccph_type);
309}
310
300static inline unsigned int dccp_hdr_len(const struct sk_buff *skb) 311static inline unsigned int dccp_hdr_len(const struct sk_buff *skb)
301{ 312{
302 return dccp_basic_hdr_len(skb) + 313 return __dccp_hdr_len(dccp_hdr(skb));
303 dccp_packet_hdr_len(dccp_hdr(skb)->dccph_type);
304} 314}
305 315
306 316
diff --git a/include/linux/netfilter_ipv4/ipt_dccp.h b/include/linux/netfilter_ipv4/ipt_dccp.h
new file mode 100644
index 000000000000..3cb3a522e62b
--- /dev/null
+++ b/include/linux/netfilter_ipv4/ipt_dccp.h
@@ -0,0 +1,23 @@
1#ifndef _IPT_DCCP_H_
2#define _IPT_DCCP_H_
3
4#define IPT_DCCP_SRC_PORTS 0x01
5#define IPT_DCCP_DEST_PORTS 0x02
6#define IPT_DCCP_TYPE 0x04
7#define IPT_DCCP_OPTION 0x08
8
9#define IPT_DCCP_VALID_FLAGS 0x0f
10
11struct ipt_dccp_info {
12 u_int16_t dpts[2]; /* Min, Max */
13 u_int16_t spts[2]; /* Min, Max */
14
15 u_int16_t flags;
16 u_int16_t invflags;
17
18 u_int16_t typemask;
19 u_int8_t option;
20};
21
22#endif /* _IPT_DCCP_H_ */
23