]> git.decadent.org.uk Git - odhcp6c.git/blobdiff - src/odhcp6c.h
Merge preliminary prefix class support
[odhcp6c.git] / src / odhcp6c.h
index d8a9bffdf80e0040285182cc5de6ab3f0b3d6618..eb76b6b497ecd794d5c68eee1b45e4ab40393c76 100644 (file)
@@ -53,8 +53,10 @@ enum dhcvp6_opt {
        DHCPV6_OPT_SIP_SERVER_A = 22,
        DHCPV6_OPT_AFTR_NAME = 64,
        DHCPV6_OPT_PD_EXCLUDE = 67,
-        /* draft-bhandari-dhc-class-based-prefix */
-       DHCPV6_OPT_PREFIX_CLASS = 200, /* NOT STANDARDIZED! */
+#ifdef EXT_PREFIX_CLASS
+        /* draft-bhandari-dhc-class-based-prefix, not yet standardized */
+       DHCPV6_OPT_PREFIX_CLASS = EXT_PREFIX_CLASS,
+#endif
 };
 
 enum dhcpv6_opt_npt {
@@ -160,6 +162,10 @@ struct dhcpv6_server_cand {
        int16_t preference;
        uint8_t duid_len;
        uint8_t duid[130];
+       void *ia_na;
+       void *ia_pd;
+       size_t ia_na_len;
+       size_t ia_pd_len;
 };
 
 
@@ -213,7 +219,7 @@ struct odhcp6c_entry {
        struct in6_addr target;
        uint32_t valid;
        uint32_t preferred;
-        uint32_t prefix_class;
+       uint16_t class;
 };
 
 
@@ -239,6 +245,7 @@ void odhcp6c_random(void *buf, size_t len);
 void odhcp6c_clear_state(enum odhcp6c_state state);
 void odhcp6c_add_state(enum odhcp6c_state state, const void *data, size_t len);
 size_t odhcp6c_remove_state(enum odhcp6c_state state, size_t offset, size_t len);
+void* odhcp6c_move_state(enum odhcp6c_state state, size_t *len);
 void* odhcp6c_get_state(enum odhcp6c_state state, size_t *len);
 
 // Entry manipulation