ssize_t managed_size;
struct ustream_fd managed_sock;
+ uint32_t leasetime;
+ unsigned int flags;
+
uint8_t clid_len;
uint8_t clid_data[];
};
struct in6_addr addr;
};
-
+typedef void (*dhcpv6_binding_cb_handler_t)(struct in6_addr *addr, int prefix,
+ uint32_t pref, uint32_t valid,
+ void *arg);
#define dhcpv6_for_each_option(start, end, otype, olen, odata)\
for (uint8_t *_o = (uint8_t*)(start); _o + 4 <= (end) &&\
const struct sockaddr_in6 *addr, const void *data, const uint8_t *end);
int dhcpv6_ia_init(void);
int setup_dhcpv6_ia_interface(struct interface *iface, bool enable);
+void dhcpv6_enum_ia_addrs(struct interface *iface, struct dhcpv6_assignment *c, time_t now,
+ dhcpv6_binding_cb_handler_t func, void *arg);
void dhcpv6_write_statefile(void);
void dhcpv6_ia_preupdate(struct interface *iface);
void dhcpv6_ia_postupdate(struct interface *iface, time_t now);