xref: /aosp_15_r20/external/openthread/third_party/tcplp/bsdtcp/ip.h (revision cfb92d1480a9e65faed56933e9c12405f45898b4)
1*cfb92d14SAndroid Build Coastguard Worker /*-
2*cfb92d14SAndroid Build Coastguard Worker  * Copyright (c) 1982, 1986, 1993
3*cfb92d14SAndroid Build Coastguard Worker  *	The Regents of the University of California.
4*cfb92d14SAndroid Build Coastguard Worker  * All rights reserved.
5*cfb92d14SAndroid Build Coastguard Worker  *
6*cfb92d14SAndroid Build Coastguard Worker  * Redistribution and use in source and binary forms, with or without
7*cfb92d14SAndroid Build Coastguard Worker  * modification, are permitted provided that the following conditions
8*cfb92d14SAndroid Build Coastguard Worker  * are met:
9*cfb92d14SAndroid Build Coastguard Worker  * 1. Redistributions of source code must retain the above copyright
10*cfb92d14SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer.
11*cfb92d14SAndroid Build Coastguard Worker  * 2. Redistributions in binary form must reproduce the above copyright
12*cfb92d14SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer in the
13*cfb92d14SAndroid Build Coastguard Worker  *    documentation and/or other materials provided with the distribution.
14*cfb92d14SAndroid Build Coastguard Worker  * 4. Neither the name of the University nor the names of its contributors
15*cfb92d14SAndroid Build Coastguard Worker  *    may be used to endorse or promote products derived from this software
16*cfb92d14SAndroid Build Coastguard Worker  *    without specific prior written permission.
17*cfb92d14SAndroid Build Coastguard Worker  *
18*cfb92d14SAndroid Build Coastguard Worker  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19*cfb92d14SAndroid Build Coastguard Worker  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20*cfb92d14SAndroid Build Coastguard Worker  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21*cfb92d14SAndroid Build Coastguard Worker  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22*cfb92d14SAndroid Build Coastguard Worker  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23*cfb92d14SAndroid Build Coastguard Worker  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24*cfb92d14SAndroid Build Coastguard Worker  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25*cfb92d14SAndroid Build Coastguard Worker  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26*cfb92d14SAndroid Build Coastguard Worker  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27*cfb92d14SAndroid Build Coastguard Worker  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28*cfb92d14SAndroid Build Coastguard Worker  * SUCH DAMAGE.
29*cfb92d14SAndroid Build Coastguard Worker  *
30*cfb92d14SAndroid Build Coastguard Worker  *	@(#)ip.h	8.2 (Berkeley) 6/1/94
31*cfb92d14SAndroid Build Coastguard Worker  * $FreeBSD$
32*cfb92d14SAndroid Build Coastguard Worker  */
33*cfb92d14SAndroid Build Coastguard Worker 
34*cfb92d14SAndroid Build Coastguard Worker #ifndef TCPLP_NETINET_IP_H_
35*cfb92d14SAndroid Build Coastguard Worker #define TCPLP_NETINET_IP_H_
36*cfb92d14SAndroid Build Coastguard Worker 
37*cfb92d14SAndroid Build Coastguard Worker #define	IP_MAXPACKET	65535		/* maximum packet size */
38*cfb92d14SAndroid Build Coastguard Worker 
39*cfb92d14SAndroid Build Coastguard Worker /*
40*cfb92d14SAndroid Build Coastguard Worker  * Definitions for IP type of service (ip_tos).
41*cfb92d14SAndroid Build Coastguard Worker  */
42*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_LOWDELAY		0x10
43*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_THROUGHPUT	0x08
44*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_RELIABILITY	0x04
45*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_MINCOST		0x02
46*cfb92d14SAndroid Build Coastguard Worker 
47*cfb92d14SAndroid Build Coastguard Worker /*
48*cfb92d14SAndroid Build Coastguard Worker  * Definitions for IP precedence (also in ip_tos) (deprecated).
49*cfb92d14SAndroid Build Coastguard Worker  */
50*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_NETCONTROL		IPTOS_DSCP_CS7
51*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_INTERNETCONTROL	IPTOS_DSCP_CS6
52*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_CRITIC_ECP		IPTOS_DSCP_CS5
53*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_FLASHOVERRIDE	IPTOS_DSCP_CS4
54*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_FLASH		IPTOS_DSCP_CS3
55*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_IMMEDIATE		IPTOS_DSCP_CS2
56*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_PRIORITY		IPTOS_DSCP_CS1
57*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_PREC_ROUTINE		IPTOS_DSCP_CS0
58*cfb92d14SAndroid Build Coastguard Worker 
59*cfb92d14SAndroid Build Coastguard Worker /*
60*cfb92d14SAndroid Build Coastguard Worker  * Definitions for DiffServ Codepoints as per RFC2474 and RFC5865.
61*cfb92d14SAndroid Build Coastguard Worker  */
62*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS0		0x00
63*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS1		0x20
64*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF11		0x28
65*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF12		0x30
66*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF13		0x38
67*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS2		0x40
68*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF21		0x48
69*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF22		0x50
70*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF23		0x58
71*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS3		0x60
72*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF31		0x68
73*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF32		0x70
74*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF33		0x78
75*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS4		0x80
76*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF41		0x88
77*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF42		0x90
78*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_AF43		0x98
79*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS5		0xa0
80*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_VA		0xb0
81*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_EF		0xb8
82*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS6		0xc0
83*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_DSCP_CS7		0xe0
84*cfb92d14SAndroid Build Coastguard Worker 
85*cfb92d14SAndroid Build Coastguard Worker /*
86*cfb92d14SAndroid Build Coastguard Worker  * ECN (Explicit Congestion Notification) codepoints in RFC3168 mapped to the
87*cfb92d14SAndroid Build Coastguard Worker  * lower 2 bits of the TOS field.
88*cfb92d14SAndroid Build Coastguard Worker  */
89*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_ECN_NOTECT	0x00	/* not-ECT */
90*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_ECN_ECT1		0x01	/* ECN-capable transport (1) */
91*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_ECN_ECT0		0x02	/* ECN-capable transport (0) */
92*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_ECN_CE		0x03	/* congestion experienced */
93*cfb92d14SAndroid Build Coastguard Worker #define	IPTOS_ECN_MASK		0x03	/* ECN field mask */
94*cfb92d14SAndroid Build Coastguard Worker 
95*cfb92d14SAndroid Build Coastguard Worker /*
96*cfb92d14SAndroid Build Coastguard Worker  * Definitions for options.
97*cfb92d14SAndroid Build Coastguard Worker  */
98*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_COPIED(o)		((o)&0x80)
99*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_CLASS(o)		((o)&0x60)
100*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_NUMBER(o)		((o)&0x1f)
101*cfb92d14SAndroid Build Coastguard Worker 
102*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_CONTROL		0x00
103*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_RESERVED1		0x20
104*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_DEBMEAS		0x40
105*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_RESERVED2		0x60
106*cfb92d14SAndroid Build Coastguard Worker 
107*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_EOL		0		/* end of option list */
108*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_NOP		1		/* no operation */
109*cfb92d14SAndroid Build Coastguard Worker 
110*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_RR		7		/* record packet route */
111*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_TS		68		/* timestamp */
112*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECURITY		130		/* provide s,c,h,tcc */
113*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_LSRR		131		/* loose source route */
114*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_ESO		133		/* extended security */
115*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_CIPSO		134		/* commerical security */
116*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SATID		136		/* satnet id */
117*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SSRR		137		/* strict source route */
118*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_RA		148		/* router alert */
119*cfb92d14SAndroid Build Coastguard Worker 
120*cfb92d14SAndroid Build Coastguard Worker /*
121*cfb92d14SAndroid Build Coastguard Worker  * Offsets to fields in options other than EOL and NOP.
122*cfb92d14SAndroid Build Coastguard Worker  */
123*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_OPTVAL		0		/* option ID */
124*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_OLEN		1		/* option length */
125*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_OFFSET		2		/* offset within option */
126*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_MINOFF		4		/* min value of above */
127*cfb92d14SAndroid Build Coastguard Worker 
128*cfb92d14SAndroid Build Coastguard Worker /* Flag bits for ipt_flg. */
129*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_TS_TSONLY		0		/* timestamps only */
130*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_TS_TSANDADDR	1		/* timestamps and addresses */
131*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_TS_PRESPEC	3		/* specified modules only */
132*cfb92d14SAndroid Build Coastguard Worker 
133*cfb92d14SAndroid Build Coastguard Worker /* Bits for security (not byte swapped). */
134*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECUR_UNCLASS	0x0000
135*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECUR_CONFID	0xf135
136*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECUR_EFTO	0x789a
137*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECUR_MMMM	0xbc4d
138*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECUR_RESTR	0xaf13
139*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECUR_SECRET	0xd788
140*cfb92d14SAndroid Build Coastguard Worker #define	IPOPT_SECUR_TOPSECRET	0x6bc5
141*cfb92d14SAndroid Build Coastguard Worker 
142*cfb92d14SAndroid Build Coastguard Worker /*
143*cfb92d14SAndroid Build Coastguard Worker  * Internet implementation parameters.
144*cfb92d14SAndroid Build Coastguard Worker  */
145*cfb92d14SAndroid Build Coastguard Worker #define	MAXTTL		255		/* maximum time to live (seconds) */
146*cfb92d14SAndroid Build Coastguard Worker #define	IPDEFTTL	64		/* default ttl, from RFC 1340 */
147*cfb92d14SAndroid Build Coastguard Worker #define	IPFRAGTTL	60		/* time to live for frags, slowhz */
148*cfb92d14SAndroid Build Coastguard Worker #define	IPTTLDEC	1		/* subtracted when forwarding */
149*cfb92d14SAndroid Build Coastguard Worker #define	IP_MSS		576		/* default maximum segment size */
150*cfb92d14SAndroid Build Coastguard Worker 
151*cfb92d14SAndroid Build Coastguard Worker #endif
152