struct config {
bool legacy;
+ bool main_dhcpv4;
char *dhcp_cb;
char *dhcp_statefile;
int log_level;
bool always_rewrite_dns;
bool ra_not_onlink;
bool ra_advrouter;
+ bool ra_useleasetime;
bool no_dynamic_dhcp;
+ // RA
int learn_routes;
int default_router;
int managed;
int route_preference;
int ra_maxinterval;
+ int ra_mininterval;
+ int ra_lifetime;
// DHCPv4
struct in_addr dhcpv4_start;
uint8_t *search;
size_t search_len;
+ // DHCPV6
void *dhcpv6_raw;
size_t dhcpv6_raw_len;
+ bool dhcpv6_assignall;
char *upstream;
size_t upstream_len;
const struct interface *iface);
ssize_t odhcpd_get_interface_addresses(int ifindex,
struct odhcpd_ipaddr *addrs, size_t cnt);
-int odhcpd_get_linklocal_interface_address(int ifindex, struct in6_addr *lladdr);
+int odhcpd_get_interface_dns_addr(const struct interface *iface,
+ struct in6_addr *addr);
struct interface* odhcpd_get_interface_by_name(const char *name);
int odhcpd_get_interface_config(const char *ifname, const char *what);
int odhcpd_get_mac(const struct interface *iface, uint8_t mac[6]);
int config_parse_interface(void *data, size_t len, const char *iname, bool overwrite);
+void ndp_handle_addr6_dump(void);
+void ndp_rqs_addr6_dump(void);
+
#ifdef WITH_UBUS
int init_ubus(void);
const char* ubus_get_ifname(const char *name);
// Exported module initializers
int init_router(void);
int init_dhcpv6(void);
+#ifdef DHCPV4_SUPPORT
int init_dhcpv4(void);
+#endif
int init_ndp(void);
int setup_router_interface(struct interface *iface, bool enable);
int setup_dhcpv6_interface(struct interface *iface, bool enable);
int setup_ndp_interface(struct interface *iface, bool enable);
+#ifdef DHCPV4_SUPPORT
int setup_dhcpv4_interface(struct interface *iface, bool enable);
+#endif
void odhcpd_reload(void);