diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-04-21 01:47:35 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:25:10 -0400 |
commit | eddc9ec53be2ecdbf4efe0efd4a83052594f0ac0 (patch) | |
tree | 4a38ab4dbd9d61fdf5a5ea6ed61463e0b9e33ba7 /include | |
parent | e023dd643798c4f06c16466af90b4d250e4b8bd7 (diff) |
[SK_BUFF]: Introduce ip_hdr(), remove skb->nh.iph
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ip.h | 9 | ||||
-rw-r--r-- | include/linux/skbuff.h | 1 | ||||
-rw-r--r-- | include/net/inet_ecn.h | 2 | ||||
-rw-r--r-- | include/net/ip.h | 2 | ||||
-rw-r--r-- | include/net/pkt_cls.h | 4 |
5 files changed, 13 insertions, 5 deletions
diff --git a/include/linux/ip.h b/include/linux/ip.h index 1d36b971a8b5..f2f26db16f57 100644 --- a/include/linux/ip.h +++ b/include/linux/ip.h | |||
@@ -104,6 +104,15 @@ struct iphdr { | |||
104 | /*The options start here. */ | 104 | /*The options start here. */ |
105 | }; | 105 | }; |
106 | 106 | ||
107 | #ifdef __KERNEL__ | ||
108 | #include <linux/skbuff.h> | ||
109 | |||
110 | static inline struct iphdr *ip_hdr(const struct sk_buff *skb) | ||
111 | { | ||
112 | return (struct iphdr *)skb_network_header(skb); | ||
113 | } | ||
114 | #endif | ||
115 | |||
107 | struct ip_auth_hdr { | 116 | struct ip_auth_hdr { |
108 | __u8 nexthdr; | 117 | __u8 nexthdr; |
109 | __u8 hdrlen; /* This one is measured in 32 bit units! */ | 118 | __u8 hdrlen; /* This one is measured in 32 bit units! */ |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 870438fba93f..62f841b5b700 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -247,7 +247,6 @@ struct sk_buff { | |||
247 | } h; | 247 | } h; |
248 | 248 | ||
249 | union { | 249 | union { |
250 | struct iphdr *iph; | ||
251 | struct ipv6hdr *ipv6h; | 250 | struct ipv6hdr *ipv6h; |
252 | struct arphdr *arph; | 251 | struct arphdr *arph; |
253 | unsigned char *raw; | 252 | unsigned char *raw; |
diff --git a/include/net/inet_ecn.h b/include/net/inet_ecn.h index b9ed3898e368..6fd4452c15d9 100644 --- a/include/net/inet_ecn.h +++ b/include/net/inet_ecn.h | |||
@@ -116,7 +116,7 @@ static inline int INET_ECN_set_ce(struct sk_buff *skb) | |||
116 | case __constant_htons(ETH_P_IP): | 116 | case __constant_htons(ETH_P_IP): |
117 | if (skb_network_header(skb) + sizeof(struct iphdr) <= | 117 | if (skb_network_header(skb) + sizeof(struct iphdr) <= |
118 | skb->tail) | 118 | skb->tail) |
119 | return IP_ECN_set_ce(skb->nh.iph); | 119 | return IP_ECN_set_ce(ip_hdr(skb)); |
120 | break; | 120 | break; |
121 | 121 | ||
122 | case __constant_htons(ETH_P_IPV6): | 122 | case __constant_htons(ETH_P_IPV6): |
diff --git a/include/net/ip.h b/include/net/ip.h index 6f7ba32b199d..75f226d26e0d 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -46,7 +46,7 @@ struct inet_skb_parm | |||
46 | 46 | ||
47 | static inline unsigned int ip_hdrlen(const struct sk_buff *skb) | 47 | static inline unsigned int ip_hdrlen(const struct sk_buff *skb) |
48 | { | 48 | { |
49 | return skb->nh.iph->ihl * 4; | 49 | return ip_hdr(skb)->ihl * 4; |
50 | } | 50 | } |
51 | 51 | ||
52 | struct ipcm_cookie | 52 | struct ipcm_cookie |
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 8a6b0e7bded5..880eb7b54164 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h | |||
@@ -334,8 +334,8 @@ static inline unsigned char * tcf_get_base_ptr(struct sk_buff *skb, int layer) | |||
334 | return NULL; | 334 | return NULL; |
335 | } | 335 | } |
336 | 336 | ||
337 | static inline int tcf_valid_offset(struct sk_buff *skb, unsigned char *ptr, | 337 | static inline int tcf_valid_offset(const struct sk_buff *skb, |
338 | int len) | 338 | const unsigned char *ptr, const int len) |
339 | { | 339 | { |
340 | return unlikely((ptr + len) < skb->tail && ptr > skb->head); | 340 | return unlikely((ptr + len) < skb->tail && ptr > skb->head); |
341 | } | 341 | } |