2005-04-17 02:20:36 +04:00
# ifndef _TRANSP_V6_H
# define _TRANSP_V6_H
# include <net/checksum.h>
2013-06-02 11:04:26 +04: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-17 02:20:36 +04:00
2011-03-13 00:22:43 +03:00
struct flowi6 ;
2005-04-17 02:20:36 +04:00
2011-03-31 05:57:33 +04:00
/* extension headers */
2013-06-02 11:04:26 +04:00
int ipv6_exthdrs_init ( void ) ;
void ipv6_exthdrs_exit ( void ) ;
int ipv6_frag_init ( void ) ;
void ipv6_frag_exit ( void ) ;
2005-04-17 02:20:36 +04:00
/* transport protocols */
2013-06-02 11:04:26 +04: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 19:05:47 +04:00
2013-06-02 11:04:26 +04:00
int udpv6_connect ( struct sock * sk , struct sockaddr * uaddr , int addr_len ) ;
2013-05-31 19:05:47 +04:00
2014-01-20 06:43:08 +04: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 19:05:47 +04:00
2013-06-02 11:04:26 +04:00
int ip6_datagram_send_ctl ( struct net * net , struct sock * sk , struct msghdr * msg ,
2016-05-03 07:40:07 +03:00
struct flowi6 * fl6 , struct ipcm6_cookie * ipc6 ,
2016-04-03 06:08:11 +03:00
struct sockcm_cookie * sockc ) ;
2005-04-17 02:20:36 +04:00
2013-06-02 11:04:26 +04:00
void ip6_dgram_sock_seq_show ( struct seq_file * seq , struct sock * sp ,
__u16 srcp , __u16 destp , int bucket ) ;
2013-05-31 19:05:48 +04:00
2013-06-02 11:04:26 +04:00
# define LOOPBACK4_IPV6 cpu_to_be32(0x7f000006)
2005-04-17 02:20:36 +04:00
2013-06-02 11:04:26 +04:00
/* address family specific functions */
2009-09-01 23:25:04 +04:00
extern const struct inet_connection_sock_af_ops ipv4_specific ;
2005-04-17 02:20:36 +04:00
2013-06-02 11:04:26 +04:00
void inet6_destroy_sock ( struct sock * sk ) ;
2005-04-17 02:20:36 +04:00
2013-06-02 11:04:26 +04: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 19:05:48 +04:00
2005-04-17 02:20:36 +04:00
# endif