4 #ifndef __LWIP_DHCP_H__ 5 #define __LWIP_DHCP_H__ 19 #define DHCP_COARSE_TIMER_SECS 60 21 #define DHCP_COARSE_TIMER_MSECS (DHCP_COARSE_TIMER_SECS * 1000UL) 23 #define DHCP_FINE_TIMER_MSECS 500 25 #define DHCP_CHADDR_LEN 16U 26 #define DHCP_SNAME_LEN 64U 27 #define DHCP_FILE_LEN 128U 36 struct dhcp_msg *msg_in;
41 #if LWIP_DHCP_AUTOIP_COOP 42 u8_t autoip_coop_state;
44 u8_t subnet_mask_given;
47 struct dhcp_msg *msg_out;
48 u16_t options_out_len;
49 u16_t request_timeout;
57 u32_t offered_t0_lease;
58 u32_t offered_t1_renew;
59 u32_t offered_t2_rebind;
62 #define LWIP_DHCP_BOOTP_FILE 0 63 #if LWIP_DHCP_BOOTP_FILE 65 char boot_file_name[DHCP_FILE_LEN];
70 #ifdef PACK_STRUCT_USE_INCLUDES 71 # include "arch/bpstruct.h" 92 #define DHCP_MIN_OPTIONS_LEN 68U 94 #if ((defined(DHCP_OPTIONS_LEN)) && (DHCP_OPTIONS_LEN < DHCP_MIN_OPTIONS_LEN)) 95 # undef DHCP_OPTIONS_LEN 98 #if (!defined(DHCP_OPTIONS_LEN)) 100 # define DHCP_OPTIONS_LEN DHCP_MIN_OPTIONS_LEN 105 #ifdef PACK_STRUCT_USE_INCLUDES 106 # include "arch/epstruct.h" 109 void dhcp_set_struct(
struct netif *
netif,
struct dhcp *dhcp);
111 #define dhcp_remove_struct(netif) do { (netif)->dhcp = NULL; } while(0) 124 void dhcp_network_changed(
struct netif *
netif);
127 #if DHCP_DOES_ARP_CHECK 132 void dhcp_coarse_tmr(
void);
134 void dhcp_fine_tmr(
void);
137 #define DHCP_OP_OFS 0 138 #define DHCP_HTYPE_OFS 1 139 #define DHCP_HLEN_OFS 2 140 #define DHCP_HOPS_OFS 3 141 #define DHCP_XID_OFS 4 142 #define DHCP_SECS_OFS 8 143 #define DHCP_FLAGS_OFS 10 144 #define DHCP_CIADDR_OFS 12 145 #define DHCP_YIADDR_OFS 16 146 #define DHCP_SIADDR_OFS 20 147 #define DHCP_GIADDR_OFS 24 148 #define DHCP_CHADDR_OFS 28 149 #define DHCP_SNAME_OFS 44 150 #define DHCP_FILE_OFS 108 151 #define DHCP_MSG_LEN 236 153 #define DHCP_COOKIE_OFS DHCP_MSG_LEN 154 #define DHCP_OPTIONS_OFS (DHCP_MSG_LEN + 4) 156 #define DHCP_CLIENT_PORT 68 157 #define DHCP_SERVER_PORT 67 161 #define DHCP_REQUESTING 1 163 #define DHCP_REBOOTING 3 164 #define DHCP_REBINDING 4 165 #define DHCP_RENEWING 5 166 #define DHCP_SELECTING 6 167 #define DHCP_INFORMING 7 168 #define DHCP_CHECKING 8 169 #define DHCP_PERMANENT 9 170 #define DHCP_BOUND 10 172 #define DHCP_BACKING_OFF 12 175 #define DHCP_AUTOIP_COOP_STATE_OFF 0 176 #define DHCP_AUTOIP_COOP_STATE_ON 1 178 #define DHCP_BOOTREQUEST 1 179 #define DHCP_BOOTREPLY 2 182 #define DHCP_DISCOVER 1 184 #define DHCP_REQUEST 3 185 #define DHCP_DECLINE 4 188 #define DHCP_RELEASE 7 189 #define DHCP_INFORM 8 192 #define DHCP_HTYPE_ETH 1 194 #define DHCP_MAGIC_COOKIE 0x63825363UL 199 #define DHCP_OPTION_PAD 0 200 #define DHCP_OPTION_SUBNET_MASK 1 201 #define DHCP_OPTION_ROUTER 3 202 #define DHCP_OPTION_DNS_SERVER 6 203 #define DHCP_OPTION_HOSTNAME 12 204 #define DHCP_OPTION_IP_TTL 23 205 #define DHCP_OPTION_MTU 26 206 #define DHCP_OPTION_BROADCAST 28 207 #define DHCP_OPTION_TCP_TTL 37 208 #define DHCP_OPTION_END 255 211 #define DHCP_OPTION_DOMAIN_NAME 15 212 #define DHCP_OPTION_PRD 31 213 #define DHCP_OPTION_STATIC_ROUTER 33 214 #define DHCP_OPTION_VSN 43 215 #define DHCP_OPTION_NB_TINS 44 216 #define DHCP_OPTION_NB_TINT 46 217 #define DHCP_OPTION_NB_TIS 47 218 #define DHCP_OPTION_CLASSLESS_STATIC_ROUTER 121 220 #define DHCP_OPTION_REQUESTED_IP 50 221 #define DHCP_OPTION_LEASE_TIME 51 222 #define DHCP_OPTION_OVERLOAD 52 224 #define DHCP_OPTION_MESSAGE_TYPE 53 225 #define DHCP_OPTION_MESSAGE_TYPE_LEN 1 227 #define DHCP_OPTION_SERVER_ID 54 228 #define DHCP_OPTION_PARAMETER_REQUEST_LIST 55 230 #define DHCP_OPTION_MAX_MSG_SIZE 57 231 #define DHCP_OPTION_MAX_MSG_SIZE_LEN 2 233 #define DHCP_OPTION_T1 58 234 #define DHCP_OPTION_T2 59 235 #define DHCP_OPTION_US 60 236 #define DHCP_OPTION_CLIENT_ID 61 237 #define DHCP_OPTION_TFTP_SERVERNAME 66 238 #define DHCP_OPTION_BOOTFILE 67 241 #define DHCP_OVERLOAD_NONE 0 242 #define DHCP_OVERLOAD_FILE 1 243 #define DHCP_OVERLOAD_SNAME 2 244 #define DHCP_OVERLOAD_SNAME_FILE 3
#define PACK_STRUCT_STRUCT
typedefPACK_STRUCT_END struct ip_addr ip_addr_t
#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_FIELD(x)