2005-04-17 02:20:36 +04:00
# ifndef _TRANSP_V6_H
# define _TRANSP_V6_H
# include <net/checksum.h>
/*
* IPv6 transport protocols
*/
# ifdef __KERNEL__
extern struct proto rawv6_prot ;
extern struct proto udpv6_prot ;
2006-11-27 22:10:57 +03:00
extern struct proto udplitev6_prot ;
2005-04-17 02:20:36 +04:00
extern struct proto tcpv6_prot ;
struct flowi ;
/* extention headers */
2007-12-11 13:23:54 +03:00
extern int ipv6_exthdrs_init ( void ) ;
extern void ipv6_exthdrs_exit ( void ) ;
2007-12-11 13:24:29 +03:00
extern int ipv6_frag_init ( void ) ;
extern void ipv6_frag_exit ( void ) ;
2005-04-17 02:20:36 +04:00
/* transport protocols */
2007-12-11 13:25:35 +03: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-17 02:20:36 +04: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 08:02:49 +04:00
extern int datagram_send_ctl ( struct net * net ,
struct msghdr * msg ,
2005-04-17 02:20:36 +04:00
struct flowi * fl ,
struct ipv6_txoptions * opt ,
2005-09-08 05:19:03 +04:00
int * hlimit , int * tclass ) ;
2005-04-17 02:20:36 +04:00
# define LOOPBACK4_IPV6 __constant_htonl(0x7f000006)
/*
* address family specific functions
*/
2005-12-14 10:15:52 +03:00
extern struct inet_connection_sock_af_ops ipv4_specific ;
2005-04-17 02:20:36 +04:00
2008-06-15 04:04:49 +04:00
extern void inet6_destroy_sock ( struct sock * sk ) ;
2005-04-17 02:20:36 +04:00
# endif
# endif