bootp.h
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:2k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. /*************************************************/
  2. /* Center for Information Technology Integration */
  3. /*           The University of Michigan          */
  4. /*                    Ann Arbor                  */
  5. /*                                               */
  6. /* Dedicated to the public domain.               */
  7. /* Send questions to info@citi.umich.edu         */
  8. /*                                               */
  9. /* BOOTP is documented in RFC 951 and RFC 1048   */
  10. /*************************************************/
  11. #ifndef BOOTREQUEST
  12. #ifndef _MBUF_H
  13. #include "mbuf.h"
  14. #endif
  15. #ifndef _SOCKET_H
  16. #include "socket.h"
  17. #endif
  18. #ifndef _IP_H
  19. #include "ip.h"
  20. #endif
  21. struct bootp {
  22. uint8 op; /* packet opcode type */
  23. uint8 htype; /* hardware addr type */
  24. uint8 hlen; /* hardware addr length */
  25. uint8 hops; /* gateway hops */
  26. int32 xid; /* transaction ID */
  27. uint16 secs; /* seconds since boot began */
  28. uint16 unused;
  29. struct in_addr ciaddr; /* client IP address */
  30. struct in_addr yiaddr; /* 'your' IP address */
  31. struct in_addr siaddr; /* server IP address */
  32. struct in_addr giaddr; /* gateway IP address */
  33. uint8 chaddr[16]; /* client hardware address */
  34. char sname[64]; /* server host name */
  35. char file[128]; /* boot file name */
  36. uint8 vend[64]; /* vendor-specific area */
  37. };
  38. /*
  39.  * UDP port numbers, server and client.
  40.  */
  41. #define IPPORT_BOOTPS 67
  42. #define IPPORT_BOOTPC 68
  43. #define BOOTREQUEST 1
  44. #define BOOTREPLY 2
  45. #define BOOTP_PAD 0
  46. #define BOOTP_SUBNET 1
  47. #define BOOTP_GATEWAY 3
  48. #define BOOTP_DNS 6
  49. #define BOOTP_HOSTNAME 12
  50. #define BOOTP_END 0xff
  51. /*
  52.  * "vendor" data permitted for Stanford boot clients.
  53.  */
  54. struct vend {
  55. uint8  v_magic[4];     /* magic number */
  56.         unsigned long  v_flags;        /* flags/opcodes, etc. */
  57.         uint8  v_unused[56];   /* currently unused */
  58. };
  59. #define VM_STANFORD     "STAN"  /* v_magic for Stanford */
  60. /* v_flags values */
  61. #define VF_PCBOOT       1       /* an IBMPC or Mac wants environment info */
  62. #define VF_HELP         2       /* help me, I'm not registered */
  63. extern int WantBootp;
  64. extern char bp_ascii[];
  65. void bootp_print_packet(struct bootp *bp);
  66. int bootp_validPacket(struct ip *ip,struct mbuf *bp);
  67. #endif