* Constants and structures defined by the internet system,
* Per RFC 790, September 1981.
#define IPPROTO_ICMP 1 /* control message protocol */
#define IPPROTO_GGP 2 /* gateway^2 (deprecated) */
#define IPPROTO_TCP 6 /* tcp */
#define IPPROTO_EGP 8 /* exterior gateway protocol */
#define IPPROTO_PUP 12 /* pup */
#define IPPROTO_UDP 17 /* user datagram protocol */
#define IPPROTO_ND 77 /* UNOFFICIAL net disk proto */
#define IPPROTO_RAW 255 /* raw IP packet */
* Port/socket numbers: network standard functions
#define IPPORT_DAYTIME 13
#define IPPORT_NETSTAT 15
#define IPPORT_TIMESERVER 37
#define IPPORT_NAMESERVER 42
* Port/socket numbers: host specific functions
#define IPPORT_TTYLINK 87
#define IPPORT_EXECSERVER 512
#define IPPORT_LOGINSERVER 513
#define IPPORT_CMDSERVER 514
#define IPPORT_EFSSERVER 520
#define IPPORT_BIFFUDP 512
#define IPPORT_WHOSERVER 513
#define IPPORT_ROUTESERVER 520 /* 520+1 also used */
* Ports < IPPORT_RESERVED are reserved for
* privileged processes (e.g. root).
#define IPPORT_RESERVED 1024
#define IMPLINK_LOWEXPER 156
#define IMPLINK_HIGHEXPER 158
* Internet address (old style... should be updated)
struct { u_char s_b1
,s_b2
,s_b3
,s_b4
; } S_un_b
;
struct { u_short s_w1
,s_w2
; } S_un_w
;
#define s_addr S_un.S_addr /* can be used for most tcp & ip code */
#define s_host S_un.S_un_b.s_b2 /* host on imp */
#define s_net S_un.S_un_b.s_b1 /* network */
#define s_imp S_un.S_un_w.s_w2 /* imp */
#define s_impno S_un.S_un_b.s_b4 /* imp # */
#define s_lh S_un.S_un_b.s_b3 /* logical host */
* Definitions of bits in internet address integers.
#define IN_CLASSA(i) ((((long)(i))&0x80000000)==0)
#define IN_CLASSA_NET 0xff000000
#define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST 0x00ffffff
#define IN_CLASSA_MAX 128
#define IN_CLASSB(i) ((((long)(i))&0xc0000000)==0x80000000)
#define IN_CLASSB_NET 0xffff0000
#define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST 0x0000ffff
#define IN_CLASSB_MAX 65536
#define IN_CLASSC(i) ((((long)(i))&0xc0000000)==0xc0000000)
#define IN_CLASSC_NET 0xffffff00
#define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST 0x000000ff
#define INADDR_ANY 0x00000000
* Macros for subnetworks. A subnet is distinguished by
* (1) the network number is a `local' network number, and
* (2) the most significant bit of the host part is set.
* Such addresses include one additional byte in the network number,
* and use one less byte in the host part (i.e., a subnet of a Class A
* network uses the rules for Class B net/host number extraction,
* a Class B subnet is dealt with as if it were a Class C net).
* Subnets of Class C nets are not supported.
#define SUBNETSHIFT 8 /* used to get main net number from subnet */
#define IN_SUBNETA(i) ((((long)(i))&0x80800000)==0x00800000)
#define IN_CLASSA_SUBNET 0xffff0000
#define IN_CLASSA_SUBNSHIFT (IN_CLASSA_NSHIFT - SUBNETSHIFT)
#define IN_CLASSA_SUBHOST 0x0000ffff
#define IN_SUBNETB(i) ((((long)(i))&0xc0008000)==0x80008000)
#define IN_CLASSB_SUBNET 0xffffff00
#define IN_CLASSB_SUBNSHIFT (IN_CLASSB_NSHIFT - SUBNETSHIFT)
#define IN_CLASSA_SUBHOST 0x0000ffff
#define IN_CLASSB_SUBHOST 0x000000ff
* Socket address, internet style.
* Macros for number representation conversion.
extern struct domain inetdomain
;
extern struct protosw inetsw
[];