dhcpserver.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef __DHCPS_H__
  2. #define __DHCPS_H__
  3. typedef struct dhcps_state{
  4. sint16_t state;
  5. } dhcps_state;
  6. // ����dhcpclient�Զ����һ��DHCP msg�ṹ��
  7. typedef struct dhcps_msg {
  8. uint8_t op, htype, hlen, hops;
  9. uint8_t xid[4];
  10. uint16_t secs, flags;
  11. uint8_t ciaddr[4];
  12. uint8_t yiaddr[4];
  13. uint8_t siaddr[4];
  14. uint8_t giaddr[4];
  15. uint8_t chaddr[16];
  16. uint8_t sname[64];
  17. uint8_t file[128];
  18. uint8_t options[312];
  19. }dhcps_msg;
  20. #ifndef LWIP_OPEN_SRC
  21. struct dhcps_lease {
  22. uint32 start_ip;
  23. uint32 end_ip;
  24. };
  25. #endif
  26. struct dhcps_pool{
  27. struct ip_addr ip;
  28. uint8 mac[6];
  29. uint32 lease_timer;
  30. };
  31. typedef struct _list_node{
  32. void *pnode;
  33. struct _list_node *pnext;
  34. }list_node;
  35. #define DHCPS_LEASE_TIMER 0x05A0
  36. #define DHCPS_MAX_LEASE 0x64
  37. #define BOOTP_BROADCAST 0x8000
  38. #define DHCP_REQUEST 1
  39. #define DHCP_REPLY 2
  40. #define DHCP_HTYPE_ETHERNET 1
  41. #define DHCP_HLEN_ETHERNET 6
  42. #define DHCP_MSG_LEN 236
  43. #define DHCPS_SERVER_PORT 67
  44. #define DHCPS_CLIENT_PORT 68
  45. #define DHCPDISCOVER 1
  46. #define DHCPOFFER 2
  47. #define DHCPREQUEST 3
  48. #define DHCPDECLINE 4
  49. #define DHCPACK 5
  50. #define DHCPNAK 6
  51. #define DHCPRELEASE 7
  52. #define DHCP_OPTION_SUBNET_MASK 1
  53. #define DHCP_OPTION_ROUTER 3
  54. #define DHCP_OPTION_DNS_SERVER 6
  55. #define DHCP_OPTION_REQ_IPADDR 50
  56. #define DHCP_OPTION_LEASE_TIME 51
  57. #define DHCP_OPTION_MSG_TYPE 53
  58. #define DHCP_OPTION_SERVER_ID 54
  59. #define DHCP_OPTION_INTERFACE_MTU 26
  60. #define DHCP_OPTION_PERFORM_ROUTER_DISCOVERY 31
  61. #define DHCP_OPTION_BROADCAST_ADDRESS 28
  62. #define DHCP_OPTION_REQ_LIST 55
  63. #define DHCP_OPTION_END 255
  64. //#define USE_CLASS_B_NET 1
  65. #define DHCPS_DEBUG 0
  66. #define DHCPS_STATE_OFFER 1
  67. #define DHCPS_STATE_DECLINE 2
  68. #define DHCPS_STATE_ACK 3
  69. #define DHCPS_STATE_NAK 4
  70. #define DHCPS_STATE_IDLE 5
  71. void dhcps_start(struct ip_info *info);
  72. void dhcps_stop(void);
  73. #endif