diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-04-10 23:50:43 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:24:59 -0400 |
commit | d56f90a7c96da5187f0cdf07ee7434fe6aa78bbc (patch) | |
tree | 3b9073cecfbb3b6a1e25ab2b5dd2a22a43aef238 /net/ipv4/esp4.c | |
parent | bbe735e4247dba32568a305553b010081c8dea99 (diff) |
[SK_BUFF]: Introduce skb_network_header()
For the places where we need a pointer to the network header, it is still legal
to touch skb->nh.raw directly if just adding to, subtracting from or setting it
to another layer header.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/esp4.c')
-rw-r--r-- | net/ipv4/esp4.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c index 31041127eeb8..222d21e5bbeb 100644 --- a/net/ipv4/esp4.c +++ b/net/ipv4/esp4.c | |||
@@ -57,9 +57,10 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb) | |||
57 | *(u8*)(trailer->tail + clen-skb->len - 2) = (clen - skb->len)-2; | 57 | *(u8*)(trailer->tail + clen-skb->len - 2) = (clen - skb->len)-2; |
58 | pskb_put(skb, trailer, clen - skb->len); | 58 | pskb_put(skb, trailer, clen - skb->len); |
59 | 59 | ||
60 | __skb_push(skb, skb->data - skb->nh.raw); | 60 | __skb_push(skb, skb->data - skb_network_header(skb)); |
61 | top_iph = skb->nh.iph; | 61 | top_iph = skb->nh.iph; |
62 | esph = (struct ip_esp_hdr *)(skb->nh.raw + top_iph->ihl*4); | 62 | esph = (struct ip_esp_hdr *)(skb_network_header(skb) + |
63 | top_iph->ihl * 4); | ||
63 | top_iph->tot_len = htons(skb->len + alen); | 64 | top_iph->tot_len = htons(skb->len + alen); |
64 | *(u8*)(trailer->tail - 1) = top_iph->protocol; | 65 | *(u8*)(trailer->tail - 1) = top_iph->protocol; |
65 | 66 | ||
@@ -222,7 +223,7 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) | |||
222 | 223 | ||
223 | if (x->encap) { | 224 | if (x->encap) { |
224 | struct xfrm_encap_tmpl *encap = x->encap; | 225 | struct xfrm_encap_tmpl *encap = x->encap; |
225 | struct udphdr *uh = (void *)(skb->nh.raw + ihl); | 226 | struct udphdr *uh = (void *)(skb_network_header(skb) + ihl); |
226 | 227 | ||
227 | /* | 228 | /* |
228 | * 1) if the NAT-T peer's IP or port changed then | 229 | * 1) if the NAT-T peer's IP or port changed then |