aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorChris Elston <celston@katalix.com>2012-04-29 17:48:53 -0400
committerDavid S. Miller <davem@davemloft.net>2012-05-01 09:30:55 -0400
commita495f8364efe11f4813914b09cf0d026364d6969 (patch)
tree80bc059942c937399165c39642e3b1dcc510593d /net/ipv6
parentf9bac8df908d7c0a36960265c92f3445623b19d1 (diff)
ipv6: Export ipv6 functions for use by other protocols
For implementing other protocols on top of IPv6, such as L2TPv3's IP encapsulation over ipv6, we'd like to call some IPv6 functions which are not currently exported. This patch exports them. Signed-off-by: Chris Elston <celston@katalix.com> Signed-off-by: James Chapman <jchapman@katalix.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/datagram.c4
-rw-r--r--net/ipv6/exthdrs.c1
-rw-r--r--net/ipv6/ip6_flowlabel.c1
-rw-r--r--net/ipv6/ip6_output.c3
4 files changed, 9 insertions, 0 deletions
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
index 7fba35aea06..b8b61ac88bc 100644
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -22,6 +22,7 @@
22#include <linux/ipv6.h> 22#include <linux/ipv6.h>
23#include <linux/route.h> 23#include <linux/route.h>
24#include <linux/slab.h> 24#include <linux/slab.h>
25#include <linux/export.h>
25 26
26#include <net/ipv6.h> 27#include <net/ipv6.h>
27#include <net/ndisc.h> 28#include <net/ndisc.h>
@@ -202,6 +203,7 @@ out:
202 fl6_sock_release(flowlabel); 203 fl6_sock_release(flowlabel);
203 return err; 204 return err;
204} 205}
206EXPORT_SYMBOL_GPL(ip6_datagram_connect);
205 207
206void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err, 208void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
207 __be16 port, u32 info, u8 *payload) 209 __be16 port, u32 info, u8 *payload)
@@ -414,6 +416,7 @@ out_free_skb:
414out: 416out:
415 return err; 417 return err;
416} 418}
419EXPORT_SYMBOL_GPL(ipv6_recv_error);
417 420
418/* 421/*
419 * Handle IPV6_RECVPATHMTU 422 * Handle IPV6_RECVPATHMTU
@@ -868,3 +871,4 @@ int datagram_send_ctl(struct net *net, struct sock *sk,
868exit_f: 871exit_f:
869 return err; 872 return err;
870} 873}
874EXPORT_SYMBOL_GPL(datagram_send_ctl);
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c
index aa0a51e6468..a93bd231eca 100644
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
@@ -883,6 +883,7 @@ struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space,
883 883
884 return opt; 884 return opt;
885} 885}
886EXPORT_SYMBOL_GPL(ipv6_fixup_options);
886 887
887/** 888/**
888 * fl6_update_dst - update flowi destination address with info given 889 * fl6_update_dst - update flowi destination address with info given
diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c
index 1dd632971bc..cb43df69021 100644
--- a/net/ipv6/ip6_flowlabel.c
+++ b/net/ipv6/ip6_flowlabel.c
@@ -294,6 +294,7 @@ struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions * opt_space,
294 opt_space->opt_flen = fopt->opt_flen; 294 opt_space->opt_flen = fopt->opt_flen;
295 return opt_space; 295 return opt_space;
296} 296}
297EXPORT_SYMBOL_GPL(fl6_merge_options);
297 298
298static unsigned long check_linger(unsigned long ttl) 299static unsigned long check_linger(unsigned long ttl)
299{ 300{
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index b347062aa80..d8e05af2c4b 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1535,6 +1535,7 @@ error:
1535 IP6_INC_STATS(sock_net(sk), rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS); 1535 IP6_INC_STATS(sock_net(sk), rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS);
1536 return err; 1536 return err;
1537} 1537}
1538EXPORT_SYMBOL_GPL(ip6_append_data);
1538 1539
1539static void ip6_cork_release(struct inet_sock *inet, struct ipv6_pinfo *np) 1540static void ip6_cork_release(struct inet_sock *inet, struct ipv6_pinfo *np)
1540{ 1541{
@@ -1638,6 +1639,7 @@ error:
1638 IP6_INC_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS); 1639 IP6_INC_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS);
1639 goto out; 1640 goto out;
1640} 1641}
1642EXPORT_SYMBOL_GPL(ip6_push_pending_frames);
1641 1643
1642void ip6_flush_pending_frames(struct sock *sk) 1644void ip6_flush_pending_frames(struct sock *sk)
1643{ 1645{
@@ -1652,3 +1654,4 @@ void ip6_flush_pending_frames(struct sock *sk)
1652 1654
1653 ip6_cork_release(inet_sk(sk), inet6_sk(sk)); 1655 ip6_cork_release(inet_sk(sk), inet6_sk(sk));
1654} 1656}
1657EXPORT_SYMBOL_GPL(ip6_flush_pending_frames);