home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / tcpdumpb.zip / bootp.h < prev    next >
C/C++ Source or Header  |  1995-05-05  |  4KB  |  110 lines

  1. /* @(#) $Header: bootp.h,v 1.7 95/05/04 17:52:46 mccanne Exp $ (LBL) */
  2. /*
  3.  * Bootstrap Protocol (BOOTP).  RFC951 and RFC1048.
  4.  *
  5.  * This file specifies the "implementation-independent" BOOTP protocol
  6.  * information which is common to both client and server.
  7.  *
  8.  * Copyright 1988 by Carnegie Mellon.
  9.  *
  10.  * Permission to use, copy, modify, and distribute this program for any
  11.  * purpose and without fee is hereby granted, provided that this copyright
  12.  * and permission notice appear on all copies and supporting documentation,
  13.  * the name of Carnegie Mellon not be used in advertising or publicity
  14.  * pertaining to distribution of the program without specific prior
  15.  * permission, and notice be given in supporting documentation that copying
  16.  * and distribution is by permission of Carnegie Mellon and Stanford
  17.  * University.  Carnegie Mellon makes no representations about the
  18.  * suitability of this software for any purpose.  It is provided "as is"
  19.  * without express or implied warranty.
  20.  */
  21.  
  22.  
  23. struct bootp {
  24.     unsigned char    bp_op;        /* packet opcode type */
  25.     unsigned char    bp_htype;    /* hardware addr type */
  26.     unsigned char    bp_hlen;    /* hardware addr length */
  27.     unsigned char    bp_hops;    /* gateway hops */
  28.     u_int32_t    bp_xid;        /* transaction ID */
  29.     unsigned short    bp_secs;    /* seconds since boot began */
  30.     unsigned short    bp_unused;
  31.     struct in_addr    bp_ciaddr;    /* client IP address */
  32.     struct in_addr    bp_yiaddr;    /* 'your' IP address */
  33.     struct in_addr    bp_siaddr;    /* server IP address */
  34.     struct in_addr    bp_giaddr;    /* gateway IP address */
  35.     unsigned char    bp_chaddr[16];    /* client hardware address */
  36.     unsigned char    bp_sname[64];    /* server host name */
  37.     unsigned char    bp_file[128];    /* boot file name */
  38.     unsigned char    bp_vend[64];    /* vendor-specific area */
  39. };
  40.  
  41. /*
  42.  * UDP port numbers, server and client.
  43.  */
  44. #define    IPPORT_BOOTPS        67
  45. #define    IPPORT_BOOTPC        68
  46.  
  47. #define BOOTREPLY        2
  48. #define BOOTREQUEST        1
  49.  
  50.  
  51. /*
  52.  * Vendor magic cookie (v_magic) for CMU
  53.  */
  54. #define VM_CMU        "CMU"
  55.  
  56. /*
  57.  * Vendor magic cookie (v_magic) for RFC1048
  58.  */
  59. #define VM_RFC1048    { 99, 130, 83, 99 }
  60.  
  61.  
  62.  
  63. /*
  64.  * RFC1048 tag values used to specify what information is being supplied in
  65.  * the vendor field of the packet.
  66.  */
  67.  
  68. #define TAG_PAD            ((unsigned char)   0)
  69. #define TAG_SUBNET_MASK        ((unsigned char)   1)
  70. #define TAG_TIME_OFFSET        ((unsigned char)   2)
  71. #define TAG_GATEWAY        ((unsigned char)   3)
  72. #define TAG_TIME_SERVER        ((unsigned char)   4)
  73. #define TAG_NAME_SERVER        ((unsigned char)   5)
  74. #define TAG_DOMAIN_SERVER    ((unsigned char)   6)
  75. #define TAG_LOG_SERVER        ((unsigned char)   7)
  76. #define TAG_COOKIE_SERVER    ((unsigned char)   8)
  77. #define TAG_LPR_SERVER        ((unsigned char)   9)
  78. #define TAG_IMPRESS_SERVER    ((unsigned char)  10)
  79. #define TAG_RLP_SERVER        ((unsigned char)  11)
  80. #define TAG_HOSTNAME        ((unsigned char)  12)
  81. #define TAG_BOOTSIZE        ((unsigned char)  13)
  82. #define TAG_END            ((unsigned char) 255)
  83. /* RFC1497 tags */
  84. #define    TAG_DUMPPATH        ((unsigned char)  14)
  85. #define    TAG_DOMAINNAME        ((unsigned char)  15)
  86. #define    TAG_SWAP_SERVER        ((unsigned char)  16)
  87. #define    TAG_ROOTPATH        ((unsigned char)  17)
  88. #define    TAG_EXTPATH        ((unsigned char)  18)
  89.  
  90.  
  91.  
  92. /*
  93.  * "vendor" data permitted for CMU bootp clients.
  94.  */
  95.  
  96. struct cmu_vend {
  97.     unsigned char    v_magic[4];    /* magic number */
  98.     u_int32_t    v_flags;    /* flags/opcodes, etc. */
  99.     struct in_addr    v_smask;    /* Subnet mask */
  100.     struct in_addr    v_dgate;    /* Default gateway */
  101.     struct in_addr    v_dns1, v_dns2; /* Domain name servers */
  102.     struct in_addr    v_ins1, v_ins2; /* IEN-116 name servers */
  103.     struct in_addr    v_ts1, v_ts2;    /* Time servers */
  104.     unsigned char    v_unused[24];    /* currently unused */
  105. };
  106.  
  107.  
  108. /* v_flags values */
  109. #define VF_SMASK    1    /* Subnet mask field contains valid data */
  110.