Module Name:    src
Committed By:   christos
Date:           Sun Jul 24 18:06:08 UTC 2011

Modified Files:
        src/sys/netinet: ip.h

Log Message:
Fill in missing IPTOS defines (from Linux/OpenBSD)


To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/netinet/ip.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/ip.h
diff -u src/sys/netinet/ip.h:1.31 src/sys/netinet/ip.h:1.32
--- src/sys/netinet/ip.h:1.31	Tue Dec 25 13:33:46 2007
+++ src/sys/netinet/ip.h	Sun Jul 24 14:06:08 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip.h,v 1.31 2007/12/25 18:33:46 perry Exp $	*/
+/*	$NetBSD: ip.h,v 1.32 2011/07/24 18:06:08 christos Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -73,13 +73,75 @@
 /*
  * Definitions for IP type of service (ip_tos)
  */
+
+/*
+ * Definitions for DiffServ Codepoints as per RFC2474
+ */
+#define	IPTOS_DSCP_CS0		0x00
+#define	IPTOS_DSCP_CS1		0x20
+#define	IPTOS_DSCP_AF11		0x28
+#define	IPTOS_DSCP_AF12		0x30
+#define	IPTOS_DSCP_AF13		0x38
+#define	IPTOS_DSCP_CS2		0x40
+#define	IPTOS_DSCP_AF21		0x48
+#define	IPTOS_DSCP_AF22		0x50
+#define	IPTOS_DSCP_AF23		0x58
+#define	IPTOS_DSCP_CS3		0x60
+#define	IPTOS_DSCP_AF31		0x68
+#define	IPTOS_DSCP_AF32		0x70
+#define	IPTOS_DSCP_AF33		0x78
+#define	IPTOS_DSCP_CS4		0x80
+#define	IPTOS_DSCP_AF41		0x88
+#define	IPTOS_DSCP_AF42		0x90
+#define	IPTOS_DSCP_AF43		0x98
+#define	IPTOS_DSCP_CS5		0xa0
+#define	IPTOS_DSCP_EF		0xb8
+#define	IPTOS_DSCP_CS6		0xc0
+#define	IPTOS_DSCP_CS7		0xe0
+
+/*
+ * Definitions for DiffServ Class Selector Codepoints
+ */
+#define	IPTOS_CLASS_CS0		0x00
+#define	IPTOS_CLASS_CS1		0x20
+#define	IPTOS_CLASS_CS2		0x40
+#define	IPTOS_CLASS_CS3		0x60
+#define	IPTOS_CLASS_CS4		0x80
+#define	IPTOS_CLASS_CS5		0xa0
+#define	IPTOS_CLASS_CS6		0xc0
+#define	IPTOS_CLASS_CS7		0xe0
+#define	IPTOS_CLASS_DEFAULT	IPTOS_CLASS_CS0
+#define	IPTOS_CLASS_MASK	0xe0
+#define	IPTOS_CLASS(cs)		((cs) & IPTOS_CLASS_MASK)
+#define	IPTOS_DSCP_MASK		0xfc
+#define	IPTOS_DSCP(cp)		((cp) & IPTOS_DSCP_MASK)
+
+/*
+ * ECN (Explicit Congestion Notification) codepoints in RFC3168
+ * mapped to the lower 2 bits of the TOS field.
+ */
+#define	IPTOS_ECN_NOTECT	0x00	/* not-ECT */
+#define	IPTOS_ECN_ECT1		0x01	/* ECN-capable transport (1) */
+#define	IPTOS_ECN_ECT0		0x02	/* ECN-capable transport (0) */
+#define	IPTOS_ECN_CE		0x03	/* congestion experienced */
+#define	IPTOS_ECN_MASK		0x03	/* ECN field mask */
+#define	IPTOS_ECN(cn)		((cn) & IPTOS_ECN_MASK)
+#define	IPTOS_ECN_NOT_ECT	0x00
+
+/*
+ * Definitions for IP type of service per RFC1349 (ip_tos)
+ * DEPRECATED
+ */
 #define	IPTOS_LOWDELAY		0x10
 #define	IPTOS_THROUGHPUT	0x08
 #define	IPTOS_RELIABILITY	0x04
-/*	IPTOS_LOWCOST		0x02 XXX */
+#define	IPTOS_MINCOST		0x02
+/* ECN RFC3168 obsoletes RFC2481, and these will be deprecated soon. */
+#define	IPTOS_CE		0x01	/* congestion experienced */
+#define	IPTOS_ECT		0x02	/* ECN-capable transport */
 
 /*
- * Definitions for IP precedence (also in ip_tos) (hopefully unused)
+ * Definitions for IP precedence per RFC1195 (also in ip_tos) (hopefully unused)
  */
 #define	IPTOS_PREC_NETCONTROL		0xe0
 #define	IPTOS_PREC_INTERNETCONTROL	0xc0
@@ -91,16 +153,6 @@
 #define	IPTOS_PREC_ROUTINE		0x00
 
 /*
- * ECN (Explicit Congestion Notification) codepoints in RFC3168
- * mapped to the lower 2 bits of the TOS field.
- */
-#define	IPTOS_ECN_NOTECT	0x00	/* not-ECT */
-#define	IPTOS_ECN_ECT1		0x01	/* ECN-capable transport (1) */
-#define	IPTOS_ECN_ECT0		0x02	/* ECN-capable transport (0) */
-#define	IPTOS_ECN_CE		0x03	/* congestion experienced */
-#define	IPTOS_ECN_MASK		0x03	/* ECN field mask */
-
-/*
  * Definitions for options.
  */
 #define	IPOPT_COPIED(o)		((o)&0x80)
@@ -191,4 +243,3 @@
 	u_int16_t	ippseudo_len;	/* protocol length */
 } __packed;
 #endif /* !_NETINET_IP_H_ */
-

Reply via email to