|
|
1.1 ! root 1: /* ip.h */ ! 2: ! 3: /* DARPA Internet Protocol (IP) Constants and Datagram Format */ ! 4: ! 5: #define IPLEN 4 /* IP address length in bytes (octets) */ ! 6: typedef char IPaddr[IPLEN]; /* DARPA internet address */ ! 7: #define IPTMASK 0300 /* Mask for IP type in top byte of addr */ ! 8: #define IPATYP 0000 /* IP Class A address (1st 2 bits) */ ! 9: #define IPBTYP 0200 /* IP Class B address (1st 2 bits) */ ! 10: #define IPCTYP 0300 /* IP Class C address (1st 2 bits) */ ! 11: #define IPHLEN 20 /* IP datagram header length in bytes */ ! 12: #define IMAXLEN 1200 /* Maximum IP datagram length (Notes: */ ! 13: /* 1) hosts & gateways only required */ ! 14: /* to recognize 576 bytes. 2) must be */ ! 15: /* less than EMAXPAK for our network */ ! 16: /* Assigned Protocol numbers */ ! 17: ! 18: #define IPRO_ICMP 1 /* protocol type for ICMP packets */ ! 19: #define IPRO_UDP 17 /* protocol type for UDP packets */ ! 20: ! 21: struct ip { /* Format of DARPA Internet datagram */ ! 22: char i_verlen; /* IP vers.(0x40) + hdr len in longs (5)*/ ! 23: char i_svctyp; /* service type (0 => normal service) */ ! 24: short i_paclen; /* packet length in octets (bytes) */ ! 25: short i_id; /* datagram id (to help gateways frag.) */ ! 26: short i_fragoff; /* fragment offset (0 for 1st fragment) */ ! 27: char i_tim2liv; /* time to live in gateway hops (10) */ ! 28: char i_proto; /* IP protocol (UDP is assigned 17) */ ! 29: short i_cksum; /* 1s compl. of sum of shorts in header */ ! 30: IPaddr i_src; /* IP address of source */ ! 31: IPaddr i_dest; /* IP address of destination */ ! 32: char i_data[1]; /* IP datagram data area */ ! 33: }; ! 34: ! 35: /* Datagram field constants used by simple IP software */ ! 36: ! 37: #define IVERLEN 0x45 /* current version length field value */ ! 38: #define ISVCTYP '\0' /* service type for normal service */ ! 39: #define IFRAGOFF 0 /* Fragment offset (0 => no fragment) */ ! 40: #define ITIM2LIV 10 /* Initial time-to-live value */ ! 41: ! 42: extern int ipackid; /* Internet datagram id */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.