%ifndef _ASM_BITS_IN_INC_
%define _ASM_BITS_IN_INC_
; Options for use with `getsockopt' and `setsockopt' at the IP level.
; The first word in the comment at the right is the data type used;
; "bool" means a boolean value stored in an `int'.
%define IP_OPTIONS 4 ; ip_opts; IP per-packet options.
%define IP_HDRINCL 3 ; int; Header is included with data.
%define IP_TOS 1 ; int; IP type of service and precedence.
%define IP_TTL 2 ; int; IP time to live.
%define IP_RECVOPTS 6 ; bool; Receive all IP options w/datagram.
; For BSD compatibility.
%define IP_RECVRETOPTS IP_RETOPTS ; bool; Receive IP options for response.
%define IP_RETOPTS 7 ; ip_opts; Set/get IP per-packet options.
%define IP_MULTICAST_IF 32 ; in_addr; set/get IP multicast i/f
%define IP_MULTICAST_TTL 33 ; u_char; set/get IP multicast ttl
%define IP_MULTICAST_LOOP 34 ; i_char; set/get IP multicast loopback
%define IP_ADD_MEMBERSHIP 35 ; ip_mreq; add an IP group membership
%define IP_DROP_MEMBERSHIP 36 ; ip_mreq; drop an IP group membership
%define IP_UNBLOCK_SOURCE 37 ; ip_mreq_source: unblock data from source
%define IP_BLOCK_SOURCE 38 ; ip_mreq_source: block data from source
%define IP_ADD_SOURCE_MEMBERSHIP 39 ; ip_mreq_source: join source group
%define IP_DROP_SOURCE_MEMBERSHIP 40 ; ip_mreq_source: leave source group
%define IP_MSFILTER 41
%ifdef __USE_MISC
%define MCAST_JOIN_GROUP 42 ; group_req: join any-source group
%define MCAST_BLOCK_SOURCE 43 ; group_source_req: block from given group
%define MCAST_UNBLOCK_SOURCE 44 ; group_source_req: unblock from given group
%define MCAST_LEAVE_GROUP 45 ; group_req: leave any-source group
%define MCAST_JOIN_SOURCE_GROUP 46 ; group_source_req: join source-spec gr
%define MCAST_LEAVE_SOURCE_GROUP 47 ; group_source_req: leave source-spec gr
%define MCAST_MSFILTER 48
%define IP_MULTICAST_ALL 49
%define IP_UNICAST_IF 50
%define MCAST_EXCLUDE 0
%define MCAST_INCLUDE 1
%endif
%define IP_ROUTER_ALERT 5 ; bool
%define IP_PKTINFO 8 ; bool
%define IP_PKTOPTIONS 9
%define IP_PMTUDISC 10 ; obsolete name?
%define IP_MTU_DISCOVER 10 ; int; see below
%define IP_RECVERR 11 ; bool
%define IP_RECVTTL 12 ; bool
%define IP_RECVTOS 13 ; bool
%define IP_MTU 14 ; int
%define IP_FREEBIND 15
%define IP_IPSEC_POLICY 16
%define IP_XFRM_POLICY 17
%define IP_PASSSEC 18
%define IP_TRANSPARENT 19
%define IP_MULTICAST_ALL 49 ; bool
; TProxy original addresses
%define IP_ORIGDSTADDR 20
%define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
%define IP_MINTTL 21
%define IP_NODEFRAG 22
%define IP_CHECKSUM 23
%define IP_BIND_ADDRESS_NO_PORT 24
; IP_MTU_DISCOVER arguments.
%define IP_PMTUDISC_DONT 0 ; Never send DF frames.
%define IP_PMTUDISC_WANT 1 ; Use per route hints.
%define IP_PMTUDISC_DO 2 ; Always DF.
%define IP_PMTUDISC_PROBE 3 ; Ignore dst pmtu.
; Always use interface mtu (ignores dst pmtu) but don't set DF flag.
; Also incoming ICMP frag_needed notifications will be ignored on
; this socket to prevent accepting spoofed ones.
%define IP_PMTUDISC_INTERFACE 4
; Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented.
%define IP_PMTUDISC_OMIT 5
%define IP_MULTICAST_IF 32
%define IP_MULTICAST_TTL 33
%define IP_MULTICAST_LOOP 34
%define IP_ADD_MEMBERSHIP 35
%define IP_DROP_MEMBERSHIP 36
%define IP_UNBLOCK_SOURCE 37
%define IP_BLOCK_SOURCE 38
%define IP_ADD_SOURCE_MEMBERSHIP 39
%define IP_DROP_SOURCE_MEMBERSHIP 40
%define IP_MSFILTER 41
%define IP_MULTICAST_ALL 49
%define IP_UNICAST_IF 50
; To select the IP level.
%define SOL_IP 0
%define IP_DEFAULT_MULTICAST_TTL 1
%define IP_DEFAULT_MULTICAST_LOOP 1
%define IP_MAX_MEMBERSHIPS 20
;%ifdef __USE_MISC
;; Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
;; The `ip_dst' field is used for the first-hop gateway when using a
;; source route (this gets put into the header proper).
;struct ip_opts
;{
; struct in_addr ip_dst; ; First hop; zero without source route.
; char ip_opts[40]; ; Actually variable in size.
;};
;; Like `struct ip_mreq' but including interface specification by index.
;struct ip_mreqn
;{
; struct in_addr imr_multiaddr; ; IP multicast address of group
; struct in_addr imr_address; ; local IP address of interface
; int imr_ifindex; ; Interface index
;};
;; Structure used for IP_PKTINFO.
;struct in_pktinfo
;{
; int ipi_ifindex; ; Interface index
; struct in_addr ipi_spec_dst; ; Routing destination address
; struct in_addr ipi_addr; ; Header destination address
;};
;%endif
; Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
; The first word in the comment at the right is the data type used;
; "bool" means a boolean value stored in an `int'.
%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 SCM_SRCRT IPV6_RXSRCRT
%define IPV6_NEXTHOP 9
%define IPV6_AUTHHDR 10
%define IPV6_UNICAST_HOPS 16
%define IPV6_MULTICAST_IF 17
%define IPV6_MULTICAST_HOPS 18
%define IPV6_MULTICAST_LOOP 19
%define IPV6_JOIN_GROUP 20
%define IPV6_LEAVE_GROUP 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
%define IPV6_IPSEC_POLICY 34
%define IPV6_XFRM_POLICY 35
%endif ; _ASM_BITS_IN_INC_