|
| 1 | +#ifndef __DHCPS_H__ |
| 2 | +#define __DHCPS_H__ |
| 3 | + |
| 4 | +#define USE_DNS |
| 5 | + |
| 6 | +typedef struct dhcps_state{ |
| 7 | + sint16_t state; |
| 8 | +} dhcps_state; |
| 9 | + |
| 10 | +// ����dhcpclient�Զ����һ��DHCP msg�ṹ�� |
| 11 | +typedef struct dhcps_msg { |
| 12 | + uint8_t op, htype, hlen, hops; |
| 13 | + uint8_t xid[4]; |
| 14 | + uint16_t secs, flags; |
| 15 | + uint8_t ciaddr[4]; |
| 16 | + uint8_t yiaddr[4]; |
| 17 | + uint8_t siaddr[4]; |
| 18 | + uint8_t giaddr[4]; |
| 19 | + uint8_t chaddr[16]; |
| 20 | + uint8_t sname[64]; |
| 21 | + uint8_t file[128]; |
| 22 | + uint8_t options[312]; |
| 23 | +}dhcps_msg; |
| 24 | + |
| 25 | +#ifndef LWIP_OPEN_SRC |
| 26 | +struct dhcps_lease { |
| 27 | + struct ip_addr start_ip; |
| 28 | + struct ip_addr end_ip; |
| 29 | +}; |
| 30 | + |
| 31 | +enum dhcps_offer_option{ |
| 32 | + OFFER_START = 0x00, |
| 33 | + OFFER_ROUTER = 0x01, |
| 34 | + OFFER_END |
| 35 | +}; |
| 36 | +#endif |
| 37 | + |
| 38 | +struct dhcps_pool{ |
| 39 | + struct ip_addr ip; |
| 40 | + uint8 mac[6]; |
| 41 | + uint32 lease_timer; |
| 42 | +}; |
| 43 | + |
| 44 | +typedef struct _list_node{ |
| 45 | + void *pnode; |
| 46 | + struct _list_node *pnext; |
| 47 | +}list_node; |
| 48 | + |
| 49 | +#define DHCPS_LEASE_TIMER 0x05A0 |
| 50 | +#define DHCPS_MAX_LEASE 0x64 |
| 51 | +#define BOOTP_BROADCAST 0x8000 |
| 52 | + |
| 53 | +#define DHCP_REQUEST 1 |
| 54 | +#define DHCP_REPLY 2 |
| 55 | +#define DHCP_HTYPE_ETHERNET 1 |
| 56 | +#define DHCP_HLEN_ETHERNET 6 |
| 57 | +#define DHCP_MSG_LEN 236 |
| 58 | + |
| 59 | +#define DHCPS_SERVER_PORT 67 |
| 60 | +#define DHCPS_CLIENT_PORT 68 |
| 61 | + |
| 62 | +#define DHCPDISCOVER 1 |
| 63 | +#define DHCPOFFER 2 |
| 64 | +#define DHCPREQUEST 3 |
| 65 | +#define DHCPDECLINE 4 |
| 66 | +#define DHCPACK 5 |
| 67 | +#define DHCPNAK 6 |
| 68 | +#define DHCPRELEASE 7 |
| 69 | + |
| 70 | +#define DHCP_OPTION_SUBNET_MASK 1 |
| 71 | +#define DHCP_OPTION_ROUTER 3 |
| 72 | +#define DHCP_OPTION_DNS_SERVER 6 |
| 73 | +#define DHCP_OPTION_REQ_IPADDR 50 |
| 74 | +#define DHCP_OPTION_LEASE_TIME 51 |
| 75 | +#define DHCP_OPTION_MSG_TYPE 53 |
| 76 | +#define DHCP_OPTION_SERVER_ID 54 |
| 77 | +#define DHCP_OPTION_INTERFACE_MTU 26 |
| 78 | +#define DHCP_OPTION_PERFORM_ROUTER_DISCOVERY 31 |
| 79 | +#define DHCP_OPTION_BROADCAST_ADDRESS 28 |
| 80 | +#define DHCP_OPTION_REQ_LIST 55 |
| 81 | +#define DHCP_OPTION_END 255 |
| 82 | + |
| 83 | +//#define USE_CLASS_B_NET 1 |
| 84 | +#define DHCPS_DEBUG 0 |
| 85 | +#define MAX_STATION_NUM 8 |
| 86 | + |
| 87 | +#define DHCPS_STATE_OFFER 1 |
| 88 | +#define DHCPS_STATE_DECLINE 2 |
| 89 | +#define DHCPS_STATE_ACK 3 |
| 90 | +#define DHCPS_STATE_NAK 4 |
| 91 | +#define DHCPS_STATE_IDLE 5 |
| 92 | + |
| 93 | +#define dhcps_router_enabled(offer) ((offer & OFFER_ROUTER) != 0) |
| 94 | + |
| 95 | +void dhcps_start(struct ip_info *info); |
| 96 | +void dhcps_stop(void); |
| 97 | + |
| 98 | +#endif |
| 99 | + |
0 commit comments