summaryrefslogtreecommitdiff
path: root/includes/dhcpd.h
diff options
context:
space:
mode:
authorThomas Markwalder <tmark@isc.org>2017-04-26 14:09:31 -0400
committerThomas Markwalder <tmark@isc.org>2017-04-26 14:09:31 -0400
commit417b7b4a6dfd593a71851f4ff8807089d28d3820 (patch)
tree52eadc9d9c4c012b4db6ad50595172f7ecf6f5a6 /includes/dhcpd.h
parent48ffe4b8d366792e6fbc0eaa7a8dc5be5c469213 (diff)
downloadisc-dhcp-417b7b4a6dfd593a71851f4ff8807089d28d3820.tar.gz
[master] Server now supports EUI-64 based address allocation scheme
Merged rt43927.
Diffstat (limited to 'includes/dhcpd.h')
-rw-r--r--includes/dhcpd.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/includes/dhcpd.h b/includes/dhcpd.h
index ef42f21d..5a3888d5 100644
--- a/includes/dhcpd.h
+++ b/includes/dhcpd.h
@@ -3,7 +3,7 @@
Definitions for dhcpd... */
/*
- * Copyright (c) 2004-2016 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1996-2003 by Internet Software Consortium
*
* Permission to use, copy, modify, and distribute this software for any
@@ -799,6 +799,9 @@ struct lease_state {
#define SV_PREFIX_LEN_MODE 87
#define SV_DHCPV6_SET_TEE_TIMES 88
#define SV_ABANDON_LEASE_TIME 89
+#ifdef EUI_64
+#define SV_USE_EUI_64 90
+#endif
#if !defined (DEFAULT_PING_TIMEOUT)
# define DEFAULT_PING_TIMEOUT 1
@@ -1717,6 +1720,9 @@ struct ipv6_pond {
int logged; /* already logged a message */
isc_uint64_t low_threshold; /* low threshold to restart logging */
int jumbo_range;
+#ifdef EUI_64
+ int use_eui_64; /* use EUI-64 address assignment when true */
+#endif
};
/*
@@ -2900,6 +2906,9 @@ char *piaddrmask(struct iaddr *, struct iaddr *);
char *piaddrcidr(const struct iaddr *, unsigned int);
u_int16_t validate_port(char *);
u_int16_t validate_port_pair(char *);
+#if defined(DHCPv6)
+const char *pin6_addr (const struct in6_addr*);
+#endif
/* dhclient.c */
extern int nowait;
@@ -3748,6 +3757,15 @@ isc_result_t create_lease6(struct ipv6_pool *pool,
unsigned int *attempts,
const struct data_string *uid,
time_t soft_lifetime_end_time);
+#ifdef EUI_64
+int valid_eui_64_duid(const struct data_string* uid, int duid_beg);
+int valid_for_eui_64_pool(struct ipv6_pool*, struct data_string* uid,
+ int duid_beg, struct in6_addr* ia_addr);
+isc_result_t create_lease6_eui_64(struct ipv6_pool *pool,
+ struct iasubopt **addr,
+ const struct data_string *iaid_uid,
+ time_t soft_lifetime_end_time);
+#endif
isc_result_t add_lease6(struct ipv6_pool *pool,
struct iasubopt *lease,
time_t valid_lifetime_end_time);