ipv6: move ip6_local_out into core kernel
It will be used the vxlan kernel module. Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3ce9b35ff6
commit
788787b559
|
@ -56,31 +56,6 @@
|
||||||
#include <net/checksum.h>
|
#include <net/checksum.h>
|
||||||
#include <linux/mroute6.h>
|
#include <linux/mroute6.h>
|
||||||
|
|
||||||
int __ip6_local_out(struct sk_buff *skb)
|
|
||||||
{
|
|
||||||
int len;
|
|
||||||
|
|
||||||
len = skb->len - sizeof(struct ipv6hdr);
|
|
||||||
if (len > IPV6_MAXPLEN)
|
|
||||||
len = 0;
|
|
||||||
ipv6_hdr(skb)->payload_len = htons(len);
|
|
||||||
|
|
||||||
return nf_hook(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL,
|
|
||||||
skb_dst(skb)->dev, dst_output);
|
|
||||||
}
|
|
||||||
|
|
||||||
int ip6_local_out(struct sk_buff *skb)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
|
|
||||||
err = __ip6_local_out(skb);
|
|
||||||
if (likely(err == 1))
|
|
||||||
err = dst_output(skb);
|
|
||||||
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(ip6_local_out);
|
|
||||||
|
|
||||||
static int ip6_finish_output2(struct sk_buff *skb)
|
static int ip6_finish_output2(struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct dst_entry *dst = skb_dst(skb);
|
struct dst_entry *dst = skb_dst(skb);
|
||||||
|
|
|
@ -97,3 +97,29 @@ int ip6_dst_hoplimit(struct dst_entry *dst)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ip6_dst_hoplimit);
|
EXPORT_SYMBOL(ip6_dst_hoplimit);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int __ip6_local_out(struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
|
||||||
|
len = skb->len - sizeof(struct ipv6hdr);
|
||||||
|
if (len > IPV6_MAXPLEN)
|
||||||
|
len = 0;
|
||||||
|
ipv6_hdr(skb)->payload_len = htons(len);
|
||||||
|
|
||||||
|
return nf_hook(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL,
|
||||||
|
skb_dst(skb)->dev, dst_output);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(__ip6_local_out);
|
||||||
|
|
||||||
|
int ip6_local_out(struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = __ip6_local_out(skb);
|
||||||
|
if (likely(err == 1))
|
||||||
|
err = dst_output(skb);
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(ip6_local_out);
|
||||||
|
|
Loading…
Reference in a new issue