Commit a495f8364efe11f4813914b09cf0d026364d6969

Authored by Chris Elston
Committed by David S. Miller
1 parent f9bac8df90

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>

Showing 4 changed files with 9 additions and 0 deletions Side-by-side Diff

... ... @@ -22,6 +22,7 @@
22 22 #include <linux/ipv6.h>
23 23 #include <linux/route.h>
24 24 #include <linux/slab.h>
  25 +#include <linux/export.h>
25 26  
26 27 #include <net/ipv6.h>
27 28 #include <net/ndisc.h>
... ... @@ -202,6 +203,7 @@
202 203 fl6_sock_release(flowlabel);
203 204 return err;
204 205 }
  206 +EXPORT_SYMBOL_GPL(ip6_datagram_connect);
205 207  
206 208 void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
207 209 __be16 port, u32 info, u8 *payload)
... ... @@ -414,6 +416,7 @@
414 416 out:
415 417 return err;
416 418 }
  419 +EXPORT_SYMBOL_GPL(ipv6_recv_error);
417 420  
418 421 /*
419 422 * Handle IPV6_RECVPATHMTU
... ... @@ -868,4 +871,5 @@
868 871 exit_f:
869 872 return err;
870 873 }
  874 +EXPORT_SYMBOL_GPL(datagram_send_ctl);
... ... @@ -883,6 +883,7 @@
883 883  
884 884 return opt;
885 885 }
  886 +EXPORT_SYMBOL_GPL(ipv6_fixup_options);
886 887  
887 888 /**
888 889 * fl6_update_dst - update flowi destination address with info given
net/ipv6/ip6_flowlabel.c
... ... @@ -294,6 +294,7 @@
294 294 opt_space->opt_flen = fopt->opt_flen;
295 295 return opt_space;
296 296 }
  297 +EXPORT_SYMBOL_GPL(fl6_merge_options);
297 298  
298 299 static unsigned long check_linger(unsigned long ttl)
299 300 {
net/ipv6/ip6_output.c
... ... @@ -1535,6 +1535,7 @@
1535 1535 IP6_INC_STATS(sock_net(sk), rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS);
1536 1536 return err;
1537 1537 }
  1538 +EXPORT_SYMBOL_GPL(ip6_append_data);
1538 1539  
1539 1540 static void ip6_cork_release(struct inet_sock *inet, struct ipv6_pinfo *np)
1540 1541 {
... ... @@ -1638,6 +1639,7 @@
1638 1639 IP6_INC_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS);
1639 1640 goto out;
1640 1641 }
  1642 +EXPORT_SYMBOL_GPL(ip6_push_pending_frames);
1641 1643  
1642 1644 void ip6_flush_pending_frames(struct sock *sk)
1643 1645 {
... ... @@ -1652,4 +1654,5 @@
1652 1654  
1653 1655 ip6_cork_release(inet_sk(sk), inet6_sk(sk));
1654 1656 }
  1657 +EXPORT_SYMBOL_GPL(ip6_flush_pending_frames);