diff options
Diffstat (limited to 'include/linux/in6.h')
| -rw-r--r-- | include/linux/in6.h | 258 | 
1 files changed, 1 insertions, 257 deletions
diff --git a/include/linux/in6.h b/include/linux/in6.h index cba469ba11a..9e2ae26fb59 100644 --- a/include/linux/in6.h +++ b/include/linux/in6.h @@ -17,32 +17,11 @@   *      as published by the Free Software Foundation; either version   *      2 of the License, or (at your option) any later version.   */ -  #ifndef _LINUX_IN6_H  #define _LINUX_IN6_H -#include <linux/types.h> - -/* - *	IPv6 address structure - */ - -struct in6_addr { -	union { -		__u8		u6_addr8[16]; -		__be16		u6_addr16[8]; -		__be32		u6_addr32[4]; -	} in6_u; -#define s6_addr			in6_u.u6_addr8 -#define s6_addr16		in6_u.u6_addr16 -#define s6_addr32		in6_u.u6_addr32 -}; +#include <uapi/linux/in6.h> -/* IPv6 Wildcard Address (::) and Loopback Address (::1) defined in RFC2553 - * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined - * in network byte order, not in host byte order as are the IPv4 equivalents - */ -#ifdef __KERNEL__  extern const struct in6_addr in6addr_any;  #define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }  extern const struct in6_addr in6addr_loopback; @@ -54,238 +33,3 @@ extern const struct in6_addr in6addr_linklocal_allrouters;  #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \  		{ { { 0xff,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2 } } }  #endif - -struct sockaddr_in6 { -	unsigned short int	sin6_family;    /* AF_INET6 */ -	__be16			sin6_port;      /* Transport layer port # */ -	__be32			sin6_flowinfo;  /* IPv6 flow information */ -	struct in6_addr		sin6_addr;      /* IPv6 address */ -	__u32			sin6_scope_id;  /* scope id (new in RFC2553) */ -}; - -struct ipv6_mreq { -	/* IPv6 multicast address of group */ -	struct in6_addr ipv6mr_multiaddr; - -	/* local IPv6 address of interface */ -	int		ipv6mr_ifindex; -}; - -#define ipv6mr_acaddr	ipv6mr_multiaddr - -struct in6_flowlabel_req { -	struct in6_addr	flr_dst; -	__be32	flr_label; -	__u8	flr_action; -	__u8	flr_share; -	__u16	flr_flags; -	__u16 	flr_expires; -	__u16	flr_linger; -	__u32	__flr_pad; -	/* Options in format of IPV6_PKTOPTIONS */ -}; - -#define IPV6_FL_A_GET	0 -#define IPV6_FL_A_PUT	1 -#define IPV6_FL_A_RENEW	2 - -#define IPV6_FL_F_CREATE	1 -#define IPV6_FL_F_EXCL		2 - -#define IPV6_FL_S_NONE		0 -#define IPV6_FL_S_EXCL		1 -#define IPV6_FL_S_PROCESS	2 -#define IPV6_FL_S_USER		3 -#define IPV6_FL_S_ANY		255 - - -/* - *	Bitmask constant declarations to help applications select out the  - *	flow label and priority fields. - * - *	Note that this are in host byte order while the flowinfo field of - *	sockaddr_in6 is in network byte order. - */ - -#define IPV6_FLOWINFO_FLOWLABEL		0x000fffff -#define IPV6_FLOWINFO_PRIORITY		0x0ff00000 - -/* These definitions are obsolete */ -#define IPV6_PRIORITY_UNCHARACTERIZED	0x0000 -#define IPV6_PRIORITY_FILLER		0x0100 -#define IPV6_PRIORITY_UNATTENDED	0x0200 -#define IPV6_PRIORITY_RESERVED1		0x0300 -#define IPV6_PRIORITY_BULK		0x0400 -#define IPV6_PRIORITY_RESERVED2		0x0500 -#define IPV6_PRIORITY_INTERACTIVE	0x0600 -#define IPV6_PRIORITY_CONTROL		0x0700 -#define IPV6_PRIORITY_8			0x0800 -#define IPV6_PRIORITY_9			0x0900 -#define IPV6_PRIORITY_10		0x0a00 -#define IPV6_PRIORITY_11		0x0b00 -#define IPV6_PRIORITY_12		0x0c00 -#define IPV6_PRIORITY_13		0x0d00 -#define IPV6_PRIORITY_14		0x0e00 -#define IPV6_PRIORITY_15		0x0f00 - -/* - *	IPV6 extension headers - */ -#define IPPROTO_HOPOPTS		0	/* IPv6 hop-by-hop options	*/ -#define IPPROTO_ROUTING		43	/* IPv6 routing header		*/ -#define IPPROTO_FRAGMENT	44	/* IPv6 fragmentation header	*/ -#define IPPROTO_ICMPV6		58	/* ICMPv6			*/ -#define IPPROTO_NONE		59	/* IPv6 no next header		*/ -#define IPPROTO_DSTOPTS		60	/* IPv6 destination options	*/ -#define IPPROTO_MH		135	/* IPv6 mobility header		*/ - -/* - *	IPv6 TLV options. - */ -#define IPV6_TLV_PAD1		0 -#define IPV6_TLV_PADN		1 -#define IPV6_TLV_ROUTERALERT	5 -#define IPV6_TLV_JUMBO		194 -#define IPV6_TLV_HAO		201	/* home address option */ - -/* - *	IPV6 socket options - */ - -#define IPV6_ADDRFORM		1 -#define IPV6_2292PKTINFO	2 -#define IPV6_2292HOPOPTS	3 -#define IPV6_2292DSTOPTS	4 -#define IPV6_2292RTHDR		5 -#define IPV6_2292PKTOPTIONS	6 -#define IPV6_CHECKSUM		7 -#define IPV6_2292HOPLIMIT	8 -#define IPV6_NEXTHOP		9 -#define IPV6_AUTHHDR		10	/* obsolete */ -#define IPV6_FLOWINFO		11 - -#define IPV6_UNICAST_HOPS	16 -#define IPV6_MULTICAST_IF	17 -#define IPV6_MULTICAST_HOPS	18 -#define IPV6_MULTICAST_LOOP	19 -#define IPV6_ADD_MEMBERSHIP	20 -#define IPV6_DROP_MEMBERSHIP	21 -#define IPV6_ROUTER_ALERT	22 -#define IPV6_MTU_DISCOVER	23 -#define IPV6_MTU		24 -#define IPV6_RECVERR		25 -#define IPV6_V6ONLY		26 -#define IPV6_JOIN_ANYCAST	27 -#define IPV6_LEAVE_ANYCAST	28 - -/* IPV6_MTU_DISCOVER values */ -#define IPV6_PMTUDISC_DONT		0 -#define IPV6_PMTUDISC_WANT		1 -#define IPV6_PMTUDISC_DO		2 -#define IPV6_PMTUDISC_PROBE		3 - -/* Flowlabel */ -#define IPV6_FLOWLABEL_MGR	32 -#define IPV6_FLOWINFO_SEND	33 - -#define IPV6_IPSEC_POLICY	34 -#define IPV6_XFRM_POLICY	35 - -/* - * Multicast: - * Following socket options are shared between IPv4 and IPv6. - * - * MCAST_JOIN_GROUP		42 - * MCAST_BLOCK_SOURCE		43 - * MCAST_UNBLOCK_SOURCE		44 - * MCAST_LEAVE_GROUP		45 - * MCAST_JOIN_SOURCE_GROUP	46 - * MCAST_LEAVE_SOURCE_GROUP	47 - * MCAST_MSFILTER		48 - */ - -/* - * Advanced API (RFC3542) (1) - * - * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c. - */ - -#define IPV6_RECVPKTINFO	49 -#define IPV6_PKTINFO		50 -#define IPV6_RECVHOPLIMIT	51 -#define IPV6_HOPLIMIT		52 -#define IPV6_RECVHOPOPTS	53 -#define IPV6_HOPOPTS		54 -#define IPV6_RTHDRDSTOPTS	55 -#define IPV6_RECVRTHDR		56 -#define IPV6_RTHDR		57 -#define IPV6_RECVDSTOPTS	58 -#define IPV6_DSTOPTS		59 -#define IPV6_RECVPATHMTU	60 -#define IPV6_PATHMTU		61 -#define IPV6_DONTFRAG		62 -#if 0	/* not yet */ -#define IPV6_USE_MIN_MTU	63 -#endif - -/* - * Netfilter (1) - * - * Following socket options are used in ip6_tables; - * see include/linux/netfilter_ipv6/ip6_tables.h. - * - * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO		64 - * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES	65 - */ - -/* - * Advanced API (RFC3542) (2) - */ -#define IPV6_RECVTCLASS		66 -#define IPV6_TCLASS		67 - -/* - * Netfilter (2) - * - * Following socket options are used in ip6_tables; - * see include/linux/netfilter_ipv6/ip6_tables.h. - * - * IP6T_SO_GET_REVISION_MATCH	68 - * IP6T_SO_GET_REVISION_TARGET	69 - */ - -/* RFC5014: Source address selection */ -#define IPV6_ADDR_PREFERENCES	72 - -#define IPV6_PREFER_SRC_TMP		0x0001 -#define IPV6_PREFER_SRC_PUBLIC		0x0002 -#define IPV6_PREFER_SRC_PUBTMP_DEFAULT	0x0100 -#define IPV6_PREFER_SRC_COA		0x0004 -#define IPV6_PREFER_SRC_HOME		0x0400 -#define IPV6_PREFER_SRC_CGA		0x0008 -#define IPV6_PREFER_SRC_NONCGA		0x0800 - -/* RFC5082: Generalized Ttl Security Mechanism */ -#define IPV6_MINHOPCOUNT		73 - -#define IPV6_ORIGDSTADDR        74 -#define IPV6_RECVORIGDSTADDR    IPV6_ORIGDSTADDR -#define IPV6_TRANSPARENT        75 -#define IPV6_UNICAST_IF         76 - -/* - * Multicast Routing: - * see include/linux/mroute6.h. - * - * MRT6_INIT			200 - * MRT6_DONE			201 - * MRT6_ADD_MIF			202 - * MRT6_DEL_MIF			203 - * MRT6_ADD_MFC			204 - * MRT6_DEL_MFC			205 - * MRT6_VERSION			206 - * MRT6_ASSERT			207 - * MRT6_PIM			208 - * (reserved)			209 - */ -#endif  |