33 #ifndef LWIP_HDR_DHCP_H 34 #define LWIP_HDR_DHCP_H 48 #define DHCP_COARSE_TIMER_SECS 60 50 #define DHCP_COARSE_TIMER_MSECS (DHCP_COARSE_TIMER_SECS * 1000UL) 52 #define DHCP_FINE_TIMER_MSECS 500 54 #define DHCP_CHADDR_LEN 16U 55 #define DHCP_SNAME_LEN 64U 56 #define DHCP_FILE_LEN 128U 65 struct dhcp_msg *msg_in;
70 #if LWIP_DHCP_AUTOIP_COOP 71 u8_t autoip_coop_state;
73 u8_t subnet_mask_given;
76 struct dhcp_msg *msg_out;
77 u16_t options_out_len;
78 u16_t request_timeout;
86 ip4_addr_t offered_ip_addr;
87 ip4_addr_t offered_sn_mask;
88 ip4_addr_t offered_gw_addr;
90 u32_t offered_t0_lease;
91 u32_t offered_t1_renew;
92 u32_t offered_t2_rebind;
93 #if LWIP_DHCP_BOOTP_FILE 95 char boot_file_name[DHCP_FILE_LEN];
100 #ifdef PACK_STRUCT_USE_INCLUDES 122 #define DHCP_MIN_OPTIONS_LEN 68U 124 #if ((defined(DHCP_OPTIONS_LEN)) && (DHCP_OPTIONS_LEN < DHCP_MIN_OPTIONS_LEN)) 125 # undef DHCP_OPTIONS_LEN 128 #if (!defined(DHCP_OPTIONS_LEN)) 130 # define DHCP_OPTIONS_LEN DHCP_MIN_OPTIONS_LEN 135 #ifdef PACK_STRUCT_USE_INCLUDES 139 void dhcp_set_struct(
struct netif *
netif,
struct dhcp *dhcp);
141 #define dhcp_remove_struct(netif) do { (netif)->dhcp = NULL; } while(0) 154 void dhcp_network_changed(
struct netif *
netif);
157 #if DHCP_DOES_ARP_CHECK 158 void dhcp_arp_reply(
struct netif *
netif,
const ip4_addr_t *addr);
165 void dhcp_coarse_tmr(
void);
167 void dhcp_fine_tmr(
void);
170 #define DHCP_OP_OFS 0 171 #define DHCP_HTYPE_OFS 1 172 #define DHCP_HLEN_OFS 2 173 #define DHCP_HOPS_OFS 3 174 #define DHCP_XID_OFS 4 175 #define DHCP_SECS_OFS 8 176 #define DHCP_FLAGS_OFS 10 177 #define DHCP_CIADDR_OFS 12 178 #define DHCP_YIADDR_OFS 16 179 #define DHCP_SIADDR_OFS 20 180 #define DHCP_GIADDR_OFS 24 181 #define DHCP_CHADDR_OFS 28 182 #define DHCP_SNAME_OFS 44 183 #define DHCP_FILE_OFS 108 184 #define DHCP_MSG_LEN 236 186 #define DHCP_COOKIE_OFS DHCP_MSG_LEN 187 #define DHCP_OPTIONS_OFS (DHCP_MSG_LEN + 4) 189 #define DHCP_CLIENT_PORT 68 190 #define DHCP_SERVER_PORT 67 193 #define DHCP_STATE_OFF 0 194 #define DHCP_STATE_REQUESTING 1 195 #define DHCP_STATE_INIT 2 196 #define DHCP_STATE_REBOOTING 3 197 #define DHCP_STATE_REBINDING 4 198 #define DHCP_STATE_RENEWING 5 199 #define DHCP_STATE_SELECTING 6 200 #define DHCP_STATE_INFORMING 7 201 #define DHCP_STATE_CHECKING 8 203 #define DHCP_STATE_BOUND 10 205 #define DHCP_STATE_BACKING_OFF 12 208 #define DHCP_AUTOIP_COOP_STATE_OFF 0 209 #define DHCP_AUTOIP_COOP_STATE_ON 1 211 #define DHCP_BOOTREQUEST 1 212 #define DHCP_BOOTREPLY 2 215 #define DHCP_DISCOVER 1 217 #define DHCP_REQUEST 3 218 #define DHCP_DECLINE 4 221 #define DHCP_RELEASE 7 222 #define DHCP_INFORM 8 225 #define DHCP_HTYPE_ETH 1 227 #define DHCP_MAGIC_COOKIE 0x63825363UL 232 #define DHCP_OPTION_PAD 0 233 #define DHCP_OPTION_SUBNET_MASK 1 234 #define DHCP_OPTION_ROUTER 3 235 #define DHCP_OPTION_DNS_SERVER 6 236 #define DHCP_OPTION_HOSTNAME 12 237 #define DHCP_OPTION_IP_TTL 23 238 #define DHCP_OPTION_MTU 26 239 #define DHCP_OPTION_BROADCAST 28 240 #define DHCP_OPTION_TCP_TTL 37 241 #define DHCP_OPTION_NTP 42 242 #define DHCP_OPTION_END 255 245 #define DHCP_OPTION_REQUESTED_IP 50 246 #define DHCP_OPTION_LEASE_TIME 51 247 #define DHCP_OPTION_OVERLOAD 52 249 #define DHCP_OPTION_MESSAGE_TYPE 53 250 #define DHCP_OPTION_MESSAGE_TYPE_LEN 1 252 #define DHCP_OPTION_SERVER_ID 54 253 #define DHCP_OPTION_PARAMETER_REQUEST_LIST 55 255 #define DHCP_OPTION_MAX_MSG_SIZE 57 256 #define DHCP_OPTION_MAX_MSG_SIZE_LEN 2 258 #define DHCP_OPTION_T1 58 259 #define DHCP_OPTION_T2 59 260 #define DHCP_OPTION_US 60 261 #define DHCP_OPTION_CLIENT_ID 61 262 #define DHCP_OPTION_TFTP_SERVERNAME 66 263 #define DHCP_OPTION_BOOTFILE 67 266 #define DHCP_OVERLOAD_NONE 0 267 #define DHCP_OVERLOAD_FILE 1 268 #define DHCP_OVERLOAD_SNAME 2 269 #define DHCP_OVERLOAD_SNAME_FILE 3 271 #if LWIP_DHCP_GET_NTP_SRV 275 extern void dhcp_set_ntp_servers(
u8_t num_ntp_servers,
const ip4_addr_t* ntp_server_addrs);
#define PACK_STRUCT_STRUCT
#define PACK_STRUCT_FLD_8(x)
#define PACK_STRUCT_FIELD(x)
#define PACK_STRUCT_FLD_S(x)
#define PACK_STRUCT_BEGIN