2005-04-16 15:20:36 -07:00
# ifndef _TRANSP_V6_H
# define _TRANSP_V6_H
# include <net/checksum.h>
/*
* IPv6 transport protocols
*/
extern struct proto rawv6_prot ;
extern struct proto udpv6_prot ;
2006-11-27 11:10:57 -08:00
extern struct proto udplitev6_prot ;
2005-04-16 15:20:36 -07:00
extern struct proto tcpv6_prot ;
2011-03-12 16:22:43 -05:00
struct flowi6 ;
2005-04-16 15:20:36 -07:00
2011-03-30 22:57:33 -03:00
/* extension headers */
2007-12-11 02:23:54 -08:00
extern int ipv6_exthdrs_init ( void ) ;
extern void ipv6_exthdrs_exit ( void ) ;
2007-12-11 02:24:29 -08:00
extern int ipv6_frag_init ( void ) ;
extern void ipv6_frag_exit ( void ) ;
2005-04-16 15:20:36 -07:00
/* transport protocols */
2007-12-11 02:25:35 -08:00
extern int rawv6_init ( void ) ;
extern void rawv6_exit ( void ) ;
extern int udpv6_init ( void ) ;
extern void udpv6_exit ( void ) ;
extern int udplitev6_init ( void ) ;
extern void udplitev6_exit ( void ) ;
extern int tcpv6_init ( void ) ;
extern void tcpv6_exit ( void ) ;
2005-04-16 15:20:36 -07:00
extern int udpv6_connect ( struct sock * sk ,
struct sockaddr * uaddr ,
int addr_len ) ;
extern int datagram_recv_ctl ( struct sock * sk ,
struct msghdr * msg ,
struct sk_buff * skb ) ;
2008-06-04 13:02:49 +09:00
extern int datagram_send_ctl ( struct net * net ,
2011-08-28 12:35:31 +00:00
struct sock * sk ,
2008-06-04 13:02:49 +09:00
struct msghdr * msg ,
2011-03-12 16:22:43 -05:00
struct flowi6 * fl6 ,
2005-04-16 15:20:36 -07:00
struct ipv6_txoptions * opt ,
2010-04-23 11:26:08 +00:00
int * hlimit , int * tclass ,
int * dontfrag ) ;
2005-04-16 15:20:36 -07:00
2009-02-14 22:58:35 -08:00
# define LOOPBACK4_IPV6 cpu_to_be32(0x7f000006)
2005-04-16 15:20:36 -07:00
/*
* address family specific functions
*/
2009-09-01 19:25:04 +00:00
extern const struct inet_connection_sock_af_ops ipv4_specific ;
2005-04-16 15:20:36 -07:00
2008-06-14 17:04:49 -07:00
extern void inet6_destroy_sock ( struct sock * sk ) ;
2005-04-16 15:20:36 -07:00
# endif