diff options
Diffstat (limited to 'net/ipv6/exthdrs.c')
-rw-r--r-- | net/ipv6/exthdrs.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index 14be0b9b77a5..173a4bb52255 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c | |||
@@ -42,7 +42,7 @@ | |||
42 | #include <net/ndisc.h> | 42 | #include <net/ndisc.h> |
43 | #include <net/ip6_route.h> | 43 | #include <net/ip6_route.h> |
44 | #include <net/addrconf.h> | 44 | #include <net/addrconf.h> |
45 | #ifdef CONFIG_IPV6_MIP6 | 45 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
46 | #include <net/xfrm.h> | 46 | #include <net/xfrm.h> |
47 | #endif | 47 | #endif |
48 | 48 | ||
@@ -90,6 +90,7 @@ int ipv6_find_tlv(struct sk_buff *skb, int offset, int type) | |||
90 | bad: | 90 | bad: |
91 | return -1; | 91 | return -1; |
92 | } | 92 | } |
93 | EXPORT_SYMBOL_GPL(ipv6_find_tlv); | ||
93 | 94 | ||
94 | /* | 95 | /* |
95 | * Parsing tlv encoded headers. | 96 | * Parsing tlv encoded headers. |
@@ -196,7 +197,7 @@ bad: | |||
196 | Destination options header. | 197 | Destination options header. |
197 | *****************************/ | 198 | *****************************/ |
198 | 199 | ||
199 | #ifdef CONFIG_IPV6_MIP6 | 200 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
200 | static int ipv6_dest_hao(struct sk_buff **skbp, int optoff) | 201 | static int ipv6_dest_hao(struct sk_buff **skbp, int optoff) |
201 | { | 202 | { |
202 | struct sk_buff *skb = *skbp; | 203 | struct sk_buff *skb = *skbp; |
@@ -270,7 +271,7 @@ static int ipv6_dest_hao(struct sk_buff **skbp, int optoff) | |||
270 | #endif | 271 | #endif |
271 | 272 | ||
272 | static struct tlvtype_proc tlvprocdestopt_lst[] = { | 273 | static struct tlvtype_proc tlvprocdestopt_lst[] = { |
273 | #ifdef CONFIG_IPV6_MIP6 | 274 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
274 | { | 275 | { |
275 | .type = IPV6_TLV_HAO, | 276 | .type = IPV6_TLV_HAO, |
276 | .func = ipv6_dest_hao, | 277 | .func = ipv6_dest_hao, |
@@ -283,7 +284,7 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp) | |||
283 | { | 284 | { |
284 | struct sk_buff *skb = *skbp; | 285 | struct sk_buff *skb = *skbp; |
285 | struct inet6_skb_parm *opt = IP6CB(skb); | 286 | struct inet6_skb_parm *opt = IP6CB(skb); |
286 | #ifdef CONFIG_IPV6_MIP6 | 287 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
287 | __u16 dstbuf; | 288 | __u16 dstbuf; |
288 | #endif | 289 | #endif |
289 | struct dst_entry *dst; | 290 | struct dst_entry *dst; |
@@ -298,7 +299,7 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp) | |||
298 | } | 299 | } |
299 | 300 | ||
300 | opt->lastopt = opt->dst1 = skb_network_header_len(skb); | 301 | opt->lastopt = opt->dst1 = skb_network_header_len(skb); |
301 | #ifdef CONFIG_IPV6_MIP6 | 302 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
302 | dstbuf = opt->dst1; | 303 | dstbuf = opt->dst1; |
303 | #endif | 304 | #endif |
304 | 305 | ||
@@ -308,7 +309,7 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp) | |||
308 | skb = *skbp; | 309 | skb = *skbp; |
309 | skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3; | 310 | skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3; |
310 | opt = IP6CB(skb); | 311 | opt = IP6CB(skb); |
311 | #ifdef CONFIG_IPV6_MIP6 | 312 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
312 | opt->nhoff = dstbuf; | 313 | opt->nhoff = dstbuf; |
313 | #else | 314 | #else |
314 | opt->nhoff = opt->dst1; | 315 | opt->nhoff = opt->dst1; |
@@ -427,7 +428,7 @@ static int ipv6_rthdr_rcv(struct sk_buff **skbp) | |||
427 | looped_back: | 428 | looped_back: |
428 | if (hdr->segments_left == 0) { | 429 | if (hdr->segments_left == 0) { |
429 | switch (hdr->type) { | 430 | switch (hdr->type) { |
430 | #ifdef CONFIG_IPV6_MIP6 | 431 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
431 | case IPV6_SRCRT_TYPE_2: | 432 | case IPV6_SRCRT_TYPE_2: |
432 | /* Silently discard type 2 header unless it was | 433 | /* Silently discard type 2 header unless it was |
433 | * processed by own | 434 | * processed by own |
@@ -463,7 +464,7 @@ looped_back: | |||
463 | return -1; | 464 | return -1; |
464 | } | 465 | } |
465 | break; | 466 | break; |
466 | #ifdef CONFIG_IPV6_MIP6 | 467 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
467 | case IPV6_SRCRT_TYPE_2: | 468 | case IPV6_SRCRT_TYPE_2: |
468 | /* Silently discard invalid RTH type 2 */ | 469 | /* Silently discard invalid RTH type 2 */ |
469 | if (hdr->hdrlen != 2 || hdr->segments_left != 1) { | 470 | if (hdr->hdrlen != 2 || hdr->segments_left != 1) { |
@@ -520,7 +521,7 @@ looped_back: | |||
520 | addr += i - 1; | 521 | addr += i - 1; |
521 | 522 | ||
522 | switch (hdr->type) { | 523 | switch (hdr->type) { |
523 | #ifdef CONFIG_IPV6_MIP6 | 524 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
524 | case IPV6_SRCRT_TYPE_2: | 525 | case IPV6_SRCRT_TYPE_2: |
525 | if (xfrm6_input_addr(skb, (xfrm_address_t *)addr, | 526 | if (xfrm6_input_addr(skb, (xfrm_address_t *)addr, |
526 | (xfrm_address_t *)&ipv6_hdr(skb)->saddr, | 527 | (xfrm_address_t *)&ipv6_hdr(skb)->saddr, |