diff options
author | Cong Wang <amwang@redhat.com> | 2013-08-31 01:44:29 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-31 22:30:00 -0400 |
commit | 788787b55913d456b9851d926d9a80ff00892c34 (patch) | |
tree | 7c65780e5f946dee1080b60efd17c60559a1dede | |
parent | 3ce9b35ff6de8dfebb0b0045e667c000f632e563 (diff) |
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>
-rw-r--r-- | net/ipv6/ip6_output.c | 25 | ||||
-rw-r--r-- | net/ipv6/output_core.c | 26 |
2 files changed, 26 insertions, 25 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 6e3ddf806ec2..dd08cfd8999e 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -56,31 +56,6 @@ | |||
56 | #include <net/checksum.h> | 56 | #include <net/checksum.h> |
57 | #include <linux/mroute6.h> | 57 | #include <linux/mroute6.h> |
58 | 58 | ||
59 | int __ip6_local_out(struct sk_buff *skb) | ||
60 | { | ||
61 | int len; | ||
62 | |||
63 | len = skb->len - sizeof(struct ipv6hdr); | ||
64 | if (len > IPV6_MAXPLEN) | ||
65 | len = 0; | ||
66 | ipv6_hdr(skb)->payload_len = htons(len); | ||
67 | |||
68 | return nf_hook(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL, | ||
69 | skb_dst(skb)->dev, dst_output); | ||
70 | } | ||
71 | |||
72 | int ip6_local_out(struct sk_buff *skb) | ||
73 | { | ||
74 | int err; | ||
75 | |||
76 | err = __ip6_local_out(skb); | ||
77 | if (likely(err == 1)) | ||
78 | err = dst_output(skb); | ||
79 | |||
80 | return err; | ||
81 | } | ||
82 | EXPORT_SYMBOL_GPL(ip6_local_out); | ||
83 | |||
84 | static int ip6_finish_output2(struct sk_buff *skb) | 59 | static int ip6_finish_output2(struct sk_buff *skb) |
85 | { | 60 | { |
86 | struct dst_entry *dst = skb_dst(skb); | 61 | struct dst_entry *dst = skb_dst(skb); |
diff --git a/net/ipv6/output_core.c b/net/ipv6/output_core.c index 53a062187db1..827f795209cf 100644 --- a/net/ipv6/output_core.c +++ b/net/ipv6/output_core.c | |||
@@ -97,3 +97,29 @@ int ip6_dst_hoplimit(struct dst_entry *dst) | |||
97 | } | 97 | } |
98 | EXPORT_SYMBOL(ip6_dst_hoplimit); | 98 | EXPORT_SYMBOL(ip6_dst_hoplimit); |
99 | #endif | 99 | #endif |
100 | |||
101 | int __ip6_local_out(struct sk_buff *skb) | ||
102 | { | ||
103 | int len; | ||
104 | |||
105 | len = skb->len - sizeof(struct ipv6hdr); | ||
106 | if (len > IPV6_MAXPLEN) | ||
107 | len = 0; | ||
108 | ipv6_hdr(skb)->payload_len = htons(len); | ||
109 | |||
110 | return nf_hook(NFPROTO_IPV6, NF_INET_LOCAL_OUT, skb, NULL, | ||
111 | skb_dst(skb)->dev, dst_output); | ||
112 | } | ||
113 | EXPORT_SYMBOL_GPL(__ip6_local_out); | ||
114 | |||
115 | int ip6_local_out(struct sk_buff *skb) | ||
116 | { | ||
117 | int err; | ||
118 | |||
119 | err = __ip6_local_out(skb); | ||
120 | if (likely(err == 1)) | ||
121 | err = dst_output(skb); | ||
122 | |||
123 | return err; | ||
124 | } | ||
125 | EXPORT_SYMBOL_GPL(ip6_local_out); | ||