1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * Types and definitions for AF_INET6 4*f80ad8b4SAndroid Build Coastguard Worker * Linux INET6 implementation 5*f80ad8b4SAndroid Build Coastguard Worker * 6*f80ad8b4SAndroid Build Coastguard Worker * Authors: 7*f80ad8b4SAndroid Build Coastguard Worker * Pedro Roque <[email protected]> 8*f80ad8b4SAndroid Build Coastguard Worker * 9*f80ad8b4SAndroid Build Coastguard Worker * Sources: 10*f80ad8b4SAndroid Build Coastguard Worker * IPv6 Program Interfaces for BSD Systems 11*f80ad8b4SAndroid Build Coastguard Worker * <draft-ietf-ipngwg-bsd-api-05.txt> 12*f80ad8b4SAndroid Build Coastguard Worker * 13*f80ad8b4SAndroid Build Coastguard Worker * Advanced Sockets API for IPv6 14*f80ad8b4SAndroid Build Coastguard Worker * <draft-stevens-advanced-api-00.txt> 15*f80ad8b4SAndroid Build Coastguard Worker * 16*f80ad8b4SAndroid Build Coastguard Worker * This program is free software; you can redistribute it and/or 17*f80ad8b4SAndroid Build Coastguard Worker * modify it under the terms of the GNU General Public License 18*f80ad8b4SAndroid Build Coastguard Worker * as published by the Free Software Foundation; either version 19*f80ad8b4SAndroid Build Coastguard Worker * 2 of the License, or (at your option) any later version. 20*f80ad8b4SAndroid Build Coastguard Worker */ 21*f80ad8b4SAndroid Build Coastguard Worker 22*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_IN6_H 23*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_IN6_H 24*f80ad8b4SAndroid Build Coastguard Worker 25*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 26*f80ad8b4SAndroid Build Coastguard Worker #include <linux/libc-compat.h> 27*f80ad8b4SAndroid Build Coastguard Worker 28*f80ad8b4SAndroid Build Coastguard Worker /* 29*f80ad8b4SAndroid Build Coastguard Worker * IPv6 address structure 30*f80ad8b4SAndroid Build Coastguard Worker */ 31*f80ad8b4SAndroid Build Coastguard Worker 32*f80ad8b4SAndroid Build Coastguard Worker #if __UAPI_DEF_IN6_ADDR 33*f80ad8b4SAndroid Build Coastguard Worker struct in6_addr { 34*f80ad8b4SAndroid Build Coastguard Worker union { 35*f80ad8b4SAndroid Build Coastguard Worker __u8 u6_addr8[16]; 36*f80ad8b4SAndroid Build Coastguard Worker #if __UAPI_DEF_IN6_ADDR_ALT 37*f80ad8b4SAndroid Build Coastguard Worker __be16 u6_addr16[8]; 38*f80ad8b4SAndroid Build Coastguard Worker __be32 u6_addr32[4]; 39*f80ad8b4SAndroid Build Coastguard Worker #endif 40*f80ad8b4SAndroid Build Coastguard Worker } in6_u; 41*f80ad8b4SAndroid Build Coastguard Worker #define s6_addr in6_u.u6_addr8 42*f80ad8b4SAndroid Build Coastguard Worker #if __UAPI_DEF_IN6_ADDR_ALT 43*f80ad8b4SAndroid Build Coastguard Worker #define s6_addr16 in6_u.u6_addr16 44*f80ad8b4SAndroid Build Coastguard Worker #define s6_addr32 in6_u.u6_addr32 45*f80ad8b4SAndroid Build Coastguard Worker #endif 46*f80ad8b4SAndroid Build Coastguard Worker }; 47*f80ad8b4SAndroid Build Coastguard Worker #endif /* __UAPI_DEF_IN6_ADDR */ 48*f80ad8b4SAndroid Build Coastguard Worker 49*f80ad8b4SAndroid Build Coastguard Worker #if __UAPI_DEF_SOCKADDR_IN6 50*f80ad8b4SAndroid Build Coastguard Worker struct sockaddr_in6 { 51*f80ad8b4SAndroid Build Coastguard Worker unsigned short int sin6_family; /* AF_INET6 */ 52*f80ad8b4SAndroid Build Coastguard Worker __be16 sin6_port; /* Transport layer port # */ 53*f80ad8b4SAndroid Build Coastguard Worker __be32 sin6_flowinfo; /* IPv6 flow information */ 54*f80ad8b4SAndroid Build Coastguard Worker struct in6_addr sin6_addr; /* IPv6 address */ 55*f80ad8b4SAndroid Build Coastguard Worker __u32 sin6_scope_id; /* scope id (new in RFC2553) */ 56*f80ad8b4SAndroid Build Coastguard Worker }; 57*f80ad8b4SAndroid Build Coastguard Worker #endif /* __UAPI_DEF_SOCKADDR_IN6 */ 58*f80ad8b4SAndroid Build Coastguard Worker 59*f80ad8b4SAndroid Build Coastguard Worker #if __UAPI_DEF_IPV6_MREQ 60*f80ad8b4SAndroid Build Coastguard Worker struct ipv6_mreq { 61*f80ad8b4SAndroid Build Coastguard Worker /* IPv6 multicast address of group */ 62*f80ad8b4SAndroid Build Coastguard Worker struct in6_addr ipv6mr_multiaddr; 63*f80ad8b4SAndroid Build Coastguard Worker 64*f80ad8b4SAndroid Build Coastguard Worker /* local IPv6 address of interface */ 65*f80ad8b4SAndroid Build Coastguard Worker int ipv6mr_ifindex; 66*f80ad8b4SAndroid Build Coastguard Worker }; 67*f80ad8b4SAndroid Build Coastguard Worker #endif /* __UAPI_DEF_IVP6_MREQ */ 68*f80ad8b4SAndroid Build Coastguard Worker 69*f80ad8b4SAndroid Build Coastguard Worker #define ipv6mr_acaddr ipv6mr_multiaddr 70*f80ad8b4SAndroid Build Coastguard Worker 71*f80ad8b4SAndroid Build Coastguard Worker struct in6_flowlabel_req { 72*f80ad8b4SAndroid Build Coastguard Worker struct in6_addr flr_dst; 73*f80ad8b4SAndroid Build Coastguard Worker __be32 flr_label; 74*f80ad8b4SAndroid Build Coastguard Worker __u8 flr_action; 75*f80ad8b4SAndroid Build Coastguard Worker __u8 flr_share; 76*f80ad8b4SAndroid Build Coastguard Worker __u16 flr_flags; 77*f80ad8b4SAndroid Build Coastguard Worker __u16 flr_expires; 78*f80ad8b4SAndroid Build Coastguard Worker __u16 flr_linger; 79*f80ad8b4SAndroid Build Coastguard Worker __u32 __flr_pad; 80*f80ad8b4SAndroid Build Coastguard Worker /* Options in format of IPV6_PKTOPTIONS */ 81*f80ad8b4SAndroid Build Coastguard Worker }; 82*f80ad8b4SAndroid Build Coastguard Worker 83*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_A_GET 0 84*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_A_PUT 1 85*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_A_RENEW 2 86*f80ad8b4SAndroid Build Coastguard Worker 87*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_F_CREATE 1 88*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_F_EXCL 2 89*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_F_REFLECT 4 90*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_F_REMOTE 8 91*f80ad8b4SAndroid Build Coastguard Worker 92*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_S_NONE 0 93*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_S_EXCL 1 94*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_S_PROCESS 2 95*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_S_USER 3 96*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FL_S_ANY 255 97*f80ad8b4SAndroid Build Coastguard Worker 98*f80ad8b4SAndroid Build Coastguard Worker 99*f80ad8b4SAndroid Build Coastguard Worker /* 100*f80ad8b4SAndroid Build Coastguard Worker * Bitmask constant declarations to help applications select out the 101*f80ad8b4SAndroid Build Coastguard Worker * flow label and priority fields. 102*f80ad8b4SAndroid Build Coastguard Worker * 103*f80ad8b4SAndroid Build Coastguard Worker * Note that this are in host byte order while the flowinfo field of 104*f80ad8b4SAndroid Build Coastguard Worker * sockaddr_in6 is in network byte order. 105*f80ad8b4SAndroid Build Coastguard Worker */ 106*f80ad8b4SAndroid Build Coastguard Worker 107*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FLOWINFO_FLOWLABEL 0x000fffff 108*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FLOWINFO_PRIORITY 0x0ff00000 109*f80ad8b4SAndroid Build Coastguard Worker 110*f80ad8b4SAndroid Build Coastguard Worker /* These definitions are obsolete */ 111*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_UNCHARACTERIZED 0x0000 112*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_FILLER 0x0100 113*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_UNATTENDED 0x0200 114*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_RESERVED1 0x0300 115*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_BULK 0x0400 116*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_RESERVED2 0x0500 117*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_INTERACTIVE 0x0600 118*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_CONTROL 0x0700 119*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_8 0x0800 120*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_9 0x0900 121*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_10 0x0a00 122*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_11 0x0b00 123*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_12 0x0c00 124*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_13 0x0d00 125*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_14 0x0e00 126*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PRIORITY_15 0x0f00 127*f80ad8b4SAndroid Build Coastguard Worker 128*f80ad8b4SAndroid Build Coastguard Worker /* 129*f80ad8b4SAndroid Build Coastguard Worker * IPV6 extension headers 130*f80ad8b4SAndroid Build Coastguard Worker */ 131*f80ad8b4SAndroid Build Coastguard Worker #if __UAPI_DEF_IPPROTO_V6 132*f80ad8b4SAndroid Build Coastguard Worker #define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */ 133*f80ad8b4SAndroid Build Coastguard Worker #define IPPROTO_ROUTING 43 /* IPv6 routing header */ 134*f80ad8b4SAndroid Build Coastguard Worker #define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ 135*f80ad8b4SAndroid Build Coastguard Worker #define IPPROTO_ICMPV6 58 /* ICMPv6 */ 136*f80ad8b4SAndroid Build Coastguard Worker #define IPPROTO_NONE 59 /* IPv6 no next header */ 137*f80ad8b4SAndroid Build Coastguard Worker #define IPPROTO_DSTOPTS 60 /* IPv6 destination options */ 138*f80ad8b4SAndroid Build Coastguard Worker #define IPPROTO_MH 135 /* IPv6 mobility header */ 139*f80ad8b4SAndroid Build Coastguard Worker #endif /* __UAPI_DEF_IPPROTO_V6 */ 140*f80ad8b4SAndroid Build Coastguard Worker 141*f80ad8b4SAndroid Build Coastguard Worker /* 142*f80ad8b4SAndroid Build Coastguard Worker * IPv6 TLV options. 143*f80ad8b4SAndroid Build Coastguard Worker */ 144*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TLV_PAD1 0 145*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TLV_PADN 1 146*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TLV_ROUTERALERT 5 147*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TLV_CALIPSO 7 /* RFC 5570 */ 148*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TLV_IOAM 49 /* RFC 9486 */ 149*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TLV_JUMBO 194 150*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TLV_HAO 201 /* home address option */ 151*f80ad8b4SAndroid Build Coastguard Worker 152*f80ad8b4SAndroid Build Coastguard Worker /* 153*f80ad8b4SAndroid Build Coastguard Worker * IPV6 socket options 154*f80ad8b4SAndroid Build Coastguard Worker */ 155*f80ad8b4SAndroid Build Coastguard Worker #if __UAPI_DEF_IPV6_OPTIONS 156*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_ADDRFORM 1 157*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_2292PKTINFO 2 158*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_2292HOPOPTS 3 159*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_2292DSTOPTS 4 160*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_2292RTHDR 5 161*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_2292PKTOPTIONS 6 162*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_CHECKSUM 7 163*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_2292HOPLIMIT 8 164*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_NEXTHOP 9 165*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_AUTHHDR 10 /* obsolete */ 166*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FLOWINFO 11 167*f80ad8b4SAndroid Build Coastguard Worker 168*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_UNICAST_HOPS 16 169*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_MULTICAST_IF 17 170*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_MULTICAST_HOPS 18 171*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_MULTICAST_LOOP 19 172*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_ADD_MEMBERSHIP 20 173*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_DROP_MEMBERSHIP 21 174*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_ROUTER_ALERT 22 175*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_MTU_DISCOVER 23 176*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_MTU 24 177*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVERR 25 178*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_V6ONLY 26 179*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_JOIN_ANYCAST 27 180*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_LEAVE_ANYCAST 28 181*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_MULTICAST_ALL 29 182*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_ROUTER_ALERT_ISOLATE 30 183*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVERR_RFC4884 31 184*f80ad8b4SAndroid Build Coastguard Worker 185*f80ad8b4SAndroid Build Coastguard Worker /* IPV6_MTU_DISCOVER values */ 186*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PMTUDISC_DONT 0 187*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PMTUDISC_WANT 1 188*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PMTUDISC_DO 2 189*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PMTUDISC_PROBE 3 190*f80ad8b4SAndroid Build Coastguard Worker /* same as IPV6_PMTUDISC_PROBE, provided for symetry with IPv4 191*f80ad8b4SAndroid Build Coastguard Worker * also see comments on IP_PMTUDISC_INTERFACE 192*f80ad8b4SAndroid Build Coastguard Worker */ 193*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PMTUDISC_INTERFACE 4 194*f80ad8b4SAndroid Build Coastguard Worker /* weaker version of IPV6_PMTUDISC_INTERFACE, which allows packets to 195*f80ad8b4SAndroid Build Coastguard Worker * get fragmented if they exceed the interface mtu 196*f80ad8b4SAndroid Build Coastguard Worker */ 197*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PMTUDISC_OMIT 5 198*f80ad8b4SAndroid Build Coastguard Worker 199*f80ad8b4SAndroid Build Coastguard Worker /* Flowlabel */ 200*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FLOWLABEL_MGR 32 201*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FLOWINFO_SEND 33 202*f80ad8b4SAndroid Build Coastguard Worker 203*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_IPSEC_POLICY 34 204*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_XFRM_POLICY 35 205*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_HDRINCL 36 206*f80ad8b4SAndroid Build Coastguard Worker #endif 207*f80ad8b4SAndroid Build Coastguard Worker 208*f80ad8b4SAndroid Build Coastguard Worker /* 209*f80ad8b4SAndroid Build Coastguard Worker * Multicast: 210*f80ad8b4SAndroid Build Coastguard Worker * Following socket options are shared between IPv4 and IPv6. 211*f80ad8b4SAndroid Build Coastguard Worker * 212*f80ad8b4SAndroid Build Coastguard Worker * MCAST_JOIN_GROUP 42 213*f80ad8b4SAndroid Build Coastguard Worker * MCAST_BLOCK_SOURCE 43 214*f80ad8b4SAndroid Build Coastguard Worker * MCAST_UNBLOCK_SOURCE 44 215*f80ad8b4SAndroid Build Coastguard Worker * MCAST_LEAVE_GROUP 45 216*f80ad8b4SAndroid Build Coastguard Worker * MCAST_JOIN_SOURCE_GROUP 46 217*f80ad8b4SAndroid Build Coastguard Worker * MCAST_LEAVE_SOURCE_GROUP 47 218*f80ad8b4SAndroid Build Coastguard Worker * MCAST_MSFILTER 48 219*f80ad8b4SAndroid Build Coastguard Worker */ 220*f80ad8b4SAndroid Build Coastguard Worker 221*f80ad8b4SAndroid Build Coastguard Worker /* 222*f80ad8b4SAndroid Build Coastguard Worker * Advanced API (RFC3542) (1) 223*f80ad8b4SAndroid Build Coastguard Worker * 224*f80ad8b4SAndroid Build Coastguard Worker * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c. 225*f80ad8b4SAndroid Build Coastguard Worker */ 226*f80ad8b4SAndroid Build Coastguard Worker 227*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVPKTINFO 49 228*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PKTINFO 50 229*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVHOPLIMIT 51 230*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_HOPLIMIT 52 231*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVHOPOPTS 53 232*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_HOPOPTS 54 233*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RTHDRDSTOPTS 55 234*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVRTHDR 56 235*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RTHDR 57 236*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVDSTOPTS 58 237*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_DSTOPTS 59 238*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVPATHMTU 60 239*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PATHMTU 61 240*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_DONTFRAG 62 241*f80ad8b4SAndroid Build Coastguard Worker #if 0 /* not yet */ 242*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_USE_MIN_MTU 63 243*f80ad8b4SAndroid Build Coastguard Worker #endif 244*f80ad8b4SAndroid Build Coastguard Worker 245*f80ad8b4SAndroid Build Coastguard Worker /* 246*f80ad8b4SAndroid Build Coastguard Worker * Netfilter (1) 247*f80ad8b4SAndroid Build Coastguard Worker * 248*f80ad8b4SAndroid Build Coastguard Worker * Following socket options are used in ip6_tables; 249*f80ad8b4SAndroid Build Coastguard Worker * see include/linux/netfilter_ipv6/ip6_tables.h. 250*f80ad8b4SAndroid Build Coastguard Worker * 251*f80ad8b4SAndroid Build Coastguard Worker * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO 64 252*f80ad8b4SAndroid Build Coastguard Worker * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES 65 253*f80ad8b4SAndroid Build Coastguard Worker */ 254*f80ad8b4SAndroid Build Coastguard Worker 255*f80ad8b4SAndroid Build Coastguard Worker /* 256*f80ad8b4SAndroid Build Coastguard Worker * Advanced API (RFC3542) (2) 257*f80ad8b4SAndroid Build Coastguard Worker */ 258*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVTCLASS 66 259*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TCLASS 67 260*f80ad8b4SAndroid Build Coastguard Worker 261*f80ad8b4SAndroid Build Coastguard Worker /* 262*f80ad8b4SAndroid Build Coastguard Worker * Netfilter (2) 263*f80ad8b4SAndroid Build Coastguard Worker * 264*f80ad8b4SAndroid Build Coastguard Worker * Following socket options are used in ip6_tables; 265*f80ad8b4SAndroid Build Coastguard Worker * see include/linux/netfilter_ipv6/ip6_tables.h. 266*f80ad8b4SAndroid Build Coastguard Worker * 267*f80ad8b4SAndroid Build Coastguard Worker * IP6T_SO_GET_REVISION_MATCH 68 268*f80ad8b4SAndroid Build Coastguard Worker * IP6T_SO_GET_REVISION_TARGET 69 269*f80ad8b4SAndroid Build Coastguard Worker * IP6T_SO_ORIGINAL_DST 80 270*f80ad8b4SAndroid Build Coastguard Worker */ 271*f80ad8b4SAndroid Build Coastguard Worker 272*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_AUTOFLOWLABEL 70 273*f80ad8b4SAndroid Build Coastguard Worker /* RFC5014: Source address selection */ 274*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_ADDR_PREFERENCES 72 275*f80ad8b4SAndroid Build Coastguard Worker 276*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PREFER_SRC_TMP 0x0001 277*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PREFER_SRC_PUBLIC 0x0002 278*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100 279*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PREFER_SRC_COA 0x0004 280*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PREFER_SRC_HOME 0x0400 281*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PREFER_SRC_CGA 0x0008 282*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_PREFER_SRC_NONCGA 0x0800 283*f80ad8b4SAndroid Build Coastguard Worker 284*f80ad8b4SAndroid Build Coastguard Worker /* RFC5082: Generalized Ttl Security Mechanism */ 285*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_MINHOPCOUNT 73 286*f80ad8b4SAndroid Build Coastguard Worker 287*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_ORIGDSTADDR 74 288*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR 289*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_TRANSPARENT 75 290*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_UNICAST_IF 76 291*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_RECVFRAGSIZE 77 292*f80ad8b4SAndroid Build Coastguard Worker #define IPV6_FREEBIND 78 293*f80ad8b4SAndroid Build Coastguard Worker 294*f80ad8b4SAndroid Build Coastguard Worker /* 295*f80ad8b4SAndroid Build Coastguard Worker * Multicast Routing: 296*f80ad8b4SAndroid Build Coastguard Worker * see include/uapi/linux/mroute6.h. 297*f80ad8b4SAndroid Build Coastguard Worker * 298*f80ad8b4SAndroid Build Coastguard Worker * MRT6_BASE 200 299*f80ad8b4SAndroid Build Coastguard Worker * ... 300*f80ad8b4SAndroid Build Coastguard Worker * MRT6_MAX 301*f80ad8b4SAndroid Build Coastguard Worker */ 302*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_IN6_H */ 303