Skip to content

Commit

Permalink
ipv6: move ip6_local_out into core kernel
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Cong Wang authored and David S. Miller committed Sep 1, 2013
1 parent 3ce9b35 commit 788787b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
25 changes: 0 additions & 25 deletions net/ipv6/ip6_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,31 +56,6 @@
#include <net/checksum.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)
{
struct dst_entry *dst = skb_dst(skb);
Expand Down
26 changes: 26 additions & 0 deletions net/ipv6/output_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,29 @@ int ip6_dst_hoplimit(struct dst_entry *dst)
}
EXPORT_SYMBOL(ip6_dst_hoplimit);
#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);

0 comments on commit 788787b

Please sign in to comment.