TuyaOS
dhcpserver.h
1
6#ifndef __DHCPS_H__
7#define __DHCPS_H__
8
9#include "lwip/ip_addr.h"
10
11#ifndef bool
12#define bool char
13#endif
14
15#ifndef false
16#define false 0
17#endif
18
19#ifndef true
20#define true 1
21#endif
22
23typedef struct dhcps_state{
24 s16_t state;
26
27typedef struct dhcps_msg {
28 u8_t op, htype, hlen, hops;
29 u8_t xid[4];
30 u16_t secs, flags;
31 u8_t ciaddr[4];
32 u8_t yiaddr[4];
33 u8_t siaddr[4];
34 u8_t giaddr[4];
35 u8_t chaddr[16];
36 u8_t sname[64];
37 u8_t file[128];
38 u8_t options[312];
40
41/* Defined in esp_misc.h */
42typedef struct {
43 bool enable;
44 ip4_addr_t start_ip;
45 ip4_addr_t end_ip;
47
48enum dhcps_offer_option{
49 OFFER_START = 0x00,
50 OFFER_ROUTER = 0x01,
51 OFFER_DNS = 0x02,
52 OFFER_END
53};
54
55#define DHCPS_COARSE_TIMER_SECS 1
56#define DHCPS_MAX_LEASE 0x64
57#define DHCPS_LEASE_TIME_DEF (120)
58//#define DHCPS_LEASE_UNIT CONFIG_LWIP_DHCPS_LEASE_UNIT
59#define DHCPS_LEASE_UNIT 60
60
62 ip4_addr_t ip;
63 u8_t mac[6];
64 u32_t lease_timer;
65};
66
67typedef u32_t dhcps_time_t;
68typedef u8_t dhcps_offer_t;
69
70typedef struct {
71 dhcps_offer_t dhcps_offer;
72 dhcps_offer_t dhcps_dns;
73 dhcps_time_t dhcps_time;
74 dhcps_lease_t dhcps_poll;
76
77typedef void (*dhcps_cb_t)(u8_t client_ip[4]);
78
79static inline bool dhcps_router_enabled (dhcps_offer_t offer)
80{
81 return (offer & OFFER_ROUTER) != 0;
82}
83
84static inline bool dhcps_dns_enabled (dhcps_offer_t offer)
85{
86 return (offer & OFFER_DNS) != 0;
87}
88
89void dhcps_start(struct netif *netif, ip4_addr_t ip);
90void dhcps_stop(struct netif *netif);
91void *dhcps_option_info(u8_t op_id, u32_t opt_len);
92void dhcps_set_option_info(u8_t op_id, void *opt_info, u32_t opt_len);
93bool dhcp_search_ip_on_mac(u8_t *mac, ip4_addr_t *ip);
94void dhcps_dns_setserver(const ip_addr_t *dnsserver);
95ip4_addr_t dhcps_dns_getserver(void);
96void dhcps_set_new_lease_cb(dhcps_cb_t cb);
97
98#endif
Definition: dhcpserver.h:42
Definition: dhcpserver.h:27
Definition: dhcpserver.h:70
Definition: dhcpserver.h:61
Definition: dhcpserver.h:23
Definition: netif.h:260