111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_IN6_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_IN6_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct in6_addr
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert {
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 u6_addr8[16];
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 u6_addr16[8];
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 u6_addr32[4];
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } in6_u;
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s6_addr in6_u.u6_addr8
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s6_addr16 in6_u.u6_addr16
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s6_addr32 in6_u.u6_addr32
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct sockaddr_in6 {
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short int sin6_family;
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 sin6_port;
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 sin6_flowinfo;
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct in6_addr sin6_addr;
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 sin6_scope_id;
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct ipv6_mreq {
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct in6_addr ipv6mr_multiaddr;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ipv6mr_ifindex;
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ipv6mr_acaddr ipv6mr_multiaddr
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct in6_flowlabel_req
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct in6_addr flr_dst;
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flr_label;
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 flr_action;
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 flr_share;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 flr_flags;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 flr_expires;
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 flr_linger;
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 __flr_pad;
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_A_GET 0
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_A_PUT 1
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_A_RENEW 2
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_F_CREATE 1
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_F_EXCL 2
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_S_NONE 0
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_S_EXCL 1
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_S_PROCESS 2
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_S_USER 3
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FL_S_ANY 255
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FLOWINFO_PRIORITY 0x0ff00000
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_FILLER 0x0100
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_UNATTENDED 0x0200
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_RESERVED1 0x0300
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_BULK 0x0400
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_RESERVED2 0x0500
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_INTERACTIVE 0x0600
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_CONTROL 0x0700
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_8 0x0800
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_9 0x0900
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_10 0x0a00
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_11 0x0b00
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_12 0x0c00
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_13 0x0d00
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_14 0x0e00
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PRIORITY_15 0x0f00
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPPROTO_HOPOPTS 0
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPPROTO_ROUTING 43
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPPROTO_FRAGMENT 44
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPPROTO_ICMPV6 58
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPPROTO_NONE 59
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPPROTO_DSTOPTS 60
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_TLV_PAD0 0
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_TLV_PADN 1
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_TLV_ROUTERALERT 5
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_TLV_JUMBO 194
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_ADDRFORM 1
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_2292PKTINFO 2
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_2292HOPOPTS 3
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_2292DSTOPTS 4
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_2292RTHDR 5
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_2292PKTOPTIONS 6
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_CHECKSUM 7
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_2292HOPLIMIT 8
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_NEXTHOP 9
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_AUTHHDR 10
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FLOWINFO 11
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_UNICAST_HOPS 16
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_MULTICAST_IF 17
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_MULTICAST_HOPS 18
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_MULTICAST_LOOP 19
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_ADD_MEMBERSHIP 20
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_DROP_MEMBERSHIP 21
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_ROUTER_ALERT 22
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_MTU_DISCOVER 23
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_MTU 24
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RECVERR 25
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_V6ONLY 26
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_JOIN_ANYCAST 27
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_LEAVE_ANYCAST 28
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PMTUDISC_DONT 0
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PMTUDISC_WANT 1
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PMTUDISC_DO 2
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FLOWLABEL_MGR 32
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_FLOWINFO_SEND 33
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_IPSEC_POLICY 34
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_XFRM_POLICY 35
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RECVPKTINFO 49
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_PKTINFO 50
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RECVHOPLIMIT 51
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_HOPLIMIT 52
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RECVHOPOPTS 53
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_HOPOPTS 54
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RTHDRDSTOPTS 55
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RECVRTHDR 56
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RTHDR 57
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RECVDSTOPTS 58
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_DSTOPTS 59
15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_RECVTCLASS 66
15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define IPV6_TCLASS 67
15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
159