xref: /csrg-svn/sys/netinet/ip.h (revision 4498)
1*4498Swnj /* ip.h 1.1 81/10/14 */
2*4498Swnj struct ip {                     /* ip leader */
3*4498Swnj 	unsigned char ip_hl:4,          /* header length */
4*4498Swnj 		ip_v:4;                 /* version */
5*4498Swnj 	unsigned char ip_tos;           /* type of service */
6*4498Swnj #define ip_mff ip_tos                   /* more fragments flag (input) */
7*4498Swnj 	unsigned short ip_len;          /* total length */
8*4498Swnj 	unsigned short ip_id;           /* identification */
9*4498Swnj 	unsigned short ip_off;          /* fragment offset field */
10*4498Swnj #define ip_df 0x4000                    /* dont fragment flag */
11*4498Swnj #define ip_mf 0x2000                    /* more fragments flag (output) */
12*4498Swnj 	unsigned char ip_ttl;           /* time to live */
13*4498Swnj 	unsigned char ip_p;             /* protocol */
14*4498Swnj 	unsigned short ip_sum;          /* checksum */
15*4498Swnj #define ip_end ip_sum                   /* fragment end */
16*4498Swnj 	union {
17*4498Swnj 		struct socket ip_s;     /* source address */
18*4498Swnj 		struct ip *ip_nxt;      /* ->next fragment */
19*4498Swnj 	} I_sun;
20*4498Swnj #define ip_src  I_sun.ip_s
21*4498Swnj #define ip_next I_sun.ip_nxt
22*4498Swnj 	union {
23*4498Swnj 		struct socket ip_d;     /* destination address */
24*4498Swnj 		struct ip *ip_prv;      /* ->prev fragment */
25*4498Swnj 	} I_dun;
26*4498Swnj #define ip_dst  I_dun.ip_d
27*4498Swnj #define ip_prev I_dun.ip_prv
28*4498Swnj };
29*4498Swnj 
30*4498Swnj struct ipq {                    /* ip reass.q header */
31*4498Swnj 	struct ip iqx;                  /* dummy ip element for top of list */
32*4498Swnj 	struct ipq *iq_next;            /* -> next chain on q */
33*4498Swnj 	struct ipq *iq_prev;            /* -> prev chain on q */
34*4498Swnj 	struct ip iqh;                  /* fragment header */
35*4498Swnj };
36*4498Swnj 
37*4498Swnj #define IPVERSION 4             /* internet protocol version number */
38*4498Swnj #define IPLOLINK 155            /* internet link numbers */
39*4498Swnj #define IPHILINK 158
40*4498Swnj #define IPLINK IPLOLINK
41*4498Swnj #define MAXTTL 255              /* maximum time to live (seconds) */
42*4498Swnj 
43