1 #include <linux/config.h>
2 #include <linux/init.h>
4 #ifdef CONFIG_NETFILTER
6 #include <linux/kernel.h>
7 #include <linux/ipv6.h>
10 #include <net/ip6_route.h>
12 int ip6_route_me_harder(struct sk_buff
*skb
)
14 struct ipv6hdr
*iph
= skb
->nh
.ipv6h
;
15 struct dst_entry
*dst
;
17 .oif
= skb
->sk
? skb
->sk
->sk_bound_dev_if
: 0,
20 { .daddr
= iph
->daddr
,
21 .saddr
= iph
->saddr
, } },
22 .proto
= iph
->nexthdr
,
25 dst
= ip6_route_output(skb
->sk
, &fl
);
28 IP6_INC_STATS(IPSTATS_MIB_OUTNOROUTES
);
30 printk(KERN_DEBUG
"ip6_route_me_harder: No more route.\n"));
36 dst_release(skb
->dst
);
41 EXPORT_SYMBOL(ip6_route_me_harder
);
43 #endif /* CONFIG_NETFILTER */