2005-04-16 15:20:36 -07:00
# ifndef _TRANSP_V6_H
# define _TRANSP_V6_H
# include <net/checksum.h>
2013-06-02 07:04:26 +00:00
/* IPv6 transport protocols */
extern struct proto rawv6_prot ;
extern struct proto udpv6_prot ;
extern struct proto udplitev6_prot ;
extern struct proto tcpv6_prot ;
extern struct proto pingv6_prot ;
2005-04-16 15:20:36 -07:00
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 */
2013-06-02 07:04:26 +00:00
int ipv6_exthdrs_init ( void ) ;
void ipv6_exthdrs_exit ( void ) ;
int ipv6_frag_init ( void ) ;
void ipv6_frag_exit ( void ) ;
2005-04-16 15:20:36 -07:00
/* transport protocols */
2013-06-02 07:04:26 +00:00
int pingv6_init ( void ) ;
void pingv6_exit ( void ) ;
int rawv6_init ( void ) ;
void rawv6_exit ( void ) ;
int udpv6_init ( void ) ;
void udpv6_exit ( void ) ;
int udplitev6_init ( void ) ;
void udplitev6_exit ( void ) ;
int tcpv6_init ( void ) ;
void tcpv6_exit ( void ) ;
2013-05-31 15:05:47 +00:00
2013-06-02 07:04:26 +00:00
int udpv6_connect ( struct sock * sk , struct sockaddr * uaddr , int addr_len ) ;
2013-05-31 15:05:47 +00:00
2014-01-20 03:43:08 +01:00
/* this does all the common and the specific ctl work */
void ip6_datagram_recv_ctl ( struct sock * sk , struct msghdr * msg ,
struct sk_buff * skb ) ;
void ip6_datagram_recv_common_ctl ( struct sock * sk , struct msghdr * msg ,
struct sk_buff * skb ) ;
void ip6_datagram_recv_specific_ctl ( struct sock * sk , struct msghdr * msg ,
struct sk_buff * skb ) ;
2013-05-31 15:05:47 +00:00
2013-06-02 07:04:26 +00:00
int ip6_datagram_send_ctl ( struct net * net , struct sock * sk , struct msghdr * msg ,
2016-05-02 21:40:07 -07:00
struct flowi6 * fl6 , struct ipcm6_cookie * ipc6 ,
2016-04-02 23:08:11 -04:00
struct sockcm_cookie * sockc ) ;
2005-04-16 15:20:36 -07:00
2013-06-02 07:04:26 +00:00
void ip6_dgram_sock_seq_show ( struct seq_file * seq , struct sock * sp ,
__u16 srcp , __u16 destp , int bucket ) ;
2013-05-31 15:05:48 +00:00
2013-06-02 07:04:26 +00:00
# define LOOPBACK4_IPV6 cpu_to_be32(0x7f000006)
2005-04-16 15:20:36 -07:00
2013-06-02 07:04:26 +00: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
2013-06-02 07:04:26 +00:00
void inet6_destroy_sock ( struct sock * sk ) ;
2005-04-16 15:20:36 -07:00
2013-06-02 07:04:26 +00:00
# define IPV6_SEQ_DGRAM_HEADER \
" sl " \
" local_address " \
" remote_address " \
" st tx_queue rx_queue tr tm->when retrnsmt " \
" uid timeout inode ref pointer drops \n "
2013-05-31 15:05:48 +00:00
2005-04-16 15:20:36 -07:00
# endif