xref: /original-bsd/sys/netinet/in_local.h (revision e21485a6)
1 /*	in_local.h	4.2	83/03/13	*/
2 
3 /*
4  * Internet definitions and variables
5  * specific to installation at Berkeley.
6  */
7 
8 /*
9  * Local subnetwork address mapping.
10  * The standard scheme is:
11  *	internet address = network.local-part
12  * where
13  *	network is between 8 and 34 bits
14  *	local-part is between 8 and 24 bits
15  *
16  * This is modified by interpreting network as 32 bits
17  * and local-part as something between 8 and 23 bits
18  * depending on the high bit in the local-part.  When
19  * the high bit in the local-part is a 1, the upper byte
20  * is interpreted as a local network extension, and used
21  * as the high byte in the network (extending it to 32 bits).
22  * The additional 8 bits of network number are administered
23  * locally and are not visible outside Berkeley, since
24  * they're part of the local-part.
25  */
26 /* network mappings */
27 #define	CLASSA_LOCALNETMAP(n, in) \
28 	(in) & 0x800000 ? (n) | (((in) & 0xef0000) << 8) : (n)
29 #define	CLASSB_LOCALNETMAP(n, in) \
30 	(in) & 0x8000 ? (n) | (((in) & 0xef00) << 16) : (n)
31 #define	CLASSC_LOCALNETMAP(n, in)	(n)
32 
33 /* local-part mappings */
34 #define	CLASSA_LOCALHOSTMAP(h, in) \
35 	(in) & 0x800000 ? (h) & ~0xef0000 : (h)
36 #define	CLASSB_LOCALHOSTMAP(h, in) \
37 	(in) & 0x8000 ? (h) & ~0xef00 : (h)
38 #define	CLASSC_LOCALHOSTMAP(h, in)	(h)
39