Annotation of lucent/sys/src/boot/pc/ip.h, revision 1.1.1.1

1.1       root        1: typedef struct Udphdr Udphdr;
                      2: struct Udphdr
                      3: {
                      4:        uchar   d[6];           /* Ethernet destination */
                      5:        uchar   s[6];           /* Ethernet source */
                      6:        uchar   type[2];        /* Ethernet packet type */
                      7: 
                      8:        uchar   vihl;           /* Version and header length */
                      9:        uchar   tos;            /* Type of service */
                     10:        uchar   length[2];      /* packet length */
                     11:        uchar   id[2];          /* Identification */
                     12:        uchar   frag[2];        /* Fragment information */
                     13: 
                     14:        /* Udp pseudo ip really starts here */
                     15:        uchar   ttl;    
                     16:        uchar   udpproto;       /* Protocol */
                     17:        uchar   udpplen[2];     /* Header plus data length */
                     18:        uchar   udpsrc[4];      /* Ip source */
                     19:        uchar   udpdst[4];      /* Ip destination */
                     20:        uchar   udpsport[2];    /* Source port */
                     21:        uchar   udpdport[2];    /* Destination port */
                     22:        uchar   udplen[2];      /* data length */
                     23:        uchar   udpcksum[2];    /* Checksum */
                     24: };
                     25: 
                     26: typedef struct Etherhdr Etherhdr;
                     27: struct Etherhdr
                     28: {
                     29:        uchar   d[6];
                     30:        uchar   s[6];
                     31:        uchar   type[2];
                     32: 
                     33:        /* Now we have the ip fields */
                     34:        uchar   vihl;           /* Version and header length */
                     35:        uchar   tos;            /* Type of service */
                     36:        uchar   length[2];      /* packet length */
                     37:        uchar   id[2];          /* Identification */
                     38:        uchar   frag[2];        /* Fragment information */
                     39:        uchar   ttl;            /* Time to live */
                     40:        uchar   proto;          /* Protocol */
                     41:        uchar   cksum[2];       /* Header checksum */
                     42:        uchar   src[4];         /* Ip source */
                     43:        uchar   dst[4];         /* Ip destination */
                     44: };
                     45: 
                     46: enum
                     47: {
                     48:        IP_VER          = 0x40,
                     49:        IP_HLEN         = 0x05,                 
                     50:        UDP_EHSIZE      = 22,
                     51:        UDP_PHDRSIZE    = 12,
                     52:        UDP_HDRSIZE     = 20,
                     53:        ETHER_HDR       = 14,
                     54:        IP_UDPPROTO     = 17,
                     55:        ET_IP           = 0x800,
                     56:        Bcastip         = 0xffffffff,
                     57:        BPportsrc       = 68,
                     58:        BPportdst       = 67,
                     59:        TFTPport        = 69,
                     60:        Timeout         = 5000, /* milliseconds */
                     61:        Bootrequest     = 1,
                     62:        Bootreply       = 2,
                     63:        Tftp_READ       = 1,
                     64:        Tftp_WRITE      = 2,
                     65:        Tftp_DATA       = 3,
                     66:        Tftp_ACK        = 4,
                     67:        Tftp_ERROR      = 5,
                     68:        Segsize         = 512,
                     69:        TFTPSZ          = Segsize+10,
                     70: };
                     71: 
                     72: typedef struct Bootp Bootp;
                     73: struct Bootp
                     74: {
                     75:        uchar   op;             /* opcode */
                     76:        uchar   htype;          /* hardware type */
                     77:        uchar   hlen;           /* hardware address len */
                     78:        uchar   hops;           /* hops */
                     79:        uchar   xid[4];         /* a random number */
                     80:        uchar   secs[2];        /* elapsed snce client started booting */
                     81:        uchar   pad[2];
                     82:        uchar   ciaddr[4];      /* client IP address (client tells server) */
                     83:        uchar   yiaddr[4];      /* client IP address (server tells client) */
                     84:        uchar   siaddr[4];      /* server IP address */
                     85:        uchar   giaddr[4];      /* gateway IP address */
                     86:        uchar   chaddr[16];     /* client hardware address */
                     87:        char    sname[64];      /* server host name (optional) */
                     88:        char    file[128];      /* boot file name */
                     89:        char    vend[128];      /* vendor-specific goo */
                     90: };
                     91: 
                     92: typedef struct Netaddr Netaddr;
                     93: struct Netaddr
                     94: {
                     95:        ulong   ip;
                     96:        ushort  port;
                     97:        char    ea[6];
                     98: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.