Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of WIZnetInterface by
Diff: Socket/DHCPClient.h
- Revision:
- 35:fe3028eda085
- Parent:
- 0:6f28332c466f
- Child:
- 36:0ba2e8d5274a
diff -r 7d44648ec5f2 -r fe3028eda085 Socket/DHCPClient.h
--- a/Socket/DHCPClient.h Mon Oct 09 19:58:19 2017 +0200
+++ b/Socket/DHCPClient.h Tue Oct 10 20:56:13 2017 +0200
@@ -11,6 +11,9 @@
#define DHCP_OFFSET_OPTIONS 240
#define DHCP_MAX_PACKET_SIZE 600
+#define DHCP_SERVER_PORT 67
+#define DHCP_CLIENT_PORT 68
+
// DHCP Message Type
#define DHCPDISCOVER 1
#define DHCPOFFER 2
@@ -20,17 +23,76 @@
#define DHCPNAK 6
#define DHCPRELEASE 7
#define DHCPINFORM 8
+#define DHCP_MAGIC_COOKIE 0x63825363
+#define OPT_PAD 0
+#define OPT_SUBNET_MASK 1
+#define OPT_TIME_OFFSET 2
+#define OPT_ROUTER 3
+#define OPT_TIME_SERVER 4
+#define OPT_IEN116_NAME_SERVER 5
+#define OPT_DNS 6
+#define OPT_LOG_SERVER 7
+#define OPT_COOKIE_SERVER 8
+#define OPT_LPR_SERVER 9
+#define OPT_IMPRESS_SERVER 10
+#define OPT_RESOURCE_LOC_SERVER 11
+#define OPT_HOSTNAME 12
+#define OPT_BOOTFILE_SIZE 13
+#define OPT_MERIT_DUMP 14
+#define OPT_DOMAIN_NAME 15
+#define OPT_SWAP_SERVER 16
+#define OPT_ROOT_PATH 17
+#define OPT_EXTENSIONS_PATH 18
+#define OPT_IP_FORWARDING 19
+#define OPT_NONLOCAL_SOURCE_ROUTING 20
+#define OPT_POLICY_FILTER 21
+#define OPT_MAX_DATAGRAM_REASS 22
+#define OPT_DEFAULT_IP_TTL 23
+#define OPT_PATH_MTU_AGING_TIMEOUT 24
+#define OPT_PATH_MTU_PLATEAU_TABLE 25
+#define OPT_INTERFACE_MTU 26
+#define OPT_ALL_SUBNETS_ARE_LOCAL 27
+#define OPT_BROADCAST_ADDR 28
+#define OPT_STATIC_ROUTE 33
+#define OPT_VENDOR 43
+#define OPT_NETBIOS_NAME_SERVER 44
+#define OPT_NETBIOS_DATA_DIST 45
+#define OPT_NETBIOS_NODE_TYPE 46
+#define OPT_NETBIOS_SCOPE 47
+#define OPT_IP_ADDR_REQ 50
+#define OPT_ADDR_LEASE_TIME 51
+#define OPT_DHCP_MESSAGE 53
+#define OPT_SERVER_IDENT 54
+#define OPT_PARAMETER_REQ 55
+#define OPT_RENEWAL_TIME 58
+#define OPT_REBINDING_TIME 59
+#define OPT_CLIENT_IDENT 61
+#define OPT_TFTP_SERVER_NAME 66
+#define OPT_BOOTFILE_NAME 67
+#define OPT_LDAP_URL 95 /* from draft RFC */
+#define OPT_DOMAIN_SEARCH 119 /* from draft RFC 3397 */
+
+/* site specific options */
+#define SITE_HD 252
+#define SITE_BF 253
+#define SITE_SA 254
+#define OPT_END 255
class DHCPClient {
public:
DHCPClient();
+ ~DHCPClient();
int setup(int timeout_ms = 15*1000);
uint8_t chaddr[6]; // MAC
uint8_t yiaddr[4]; // IP
+ uint8_t siaddr[4]; // DHCP server
uint8_t dnsaddr[4]; // DNS
uint8_t gateway[4];
uint8_t netmask[4];
- uint8_t siaddr[4];
+ uint8_t timesrv[4];
+ uint8_t leaseTime[4];
+ char *domainName;
+
private:
int discover();
int request();
