summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe
diff options
context:
space:
mode:
authorMichael Brown2013-12-05 04:18:59 +0100
committerMichael Brown2013-12-05 04:18:59 +0100
commit8aab959bed7d75b5a1ae037babfdde92c1818d31 (patch)
tree2ad7788d97af9beeb25a90e19daec46bff5b1c07 /src/include/ipxe
parent[linux] Provide access to SMBIOS via /dev/mem (diff)
downloadipxe-8aab959bed7d75b5a1ae037babfdde92c1818d31.tar.gz
ipxe-8aab959bed7d75b5a1ae037babfdde92c1818d31.tar.xz
ipxe-8aab959bed7d75b5a1ae037babfdde92c1818d31.zip
[dhcpv6] Use DUID-UUID form of client DUID
Use the system UUID to generate the client DUID-UUID as per RFC 6355. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe')
-rw-r--r--src/include/ipxe/dhcpv6.h15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/include/ipxe/dhcpv6.h b/src/include/ipxe/dhcpv6.h
index 70cccf0ba..57758e516 100644
--- a/src/include/ipxe/dhcpv6.h
+++ b/src/include/ipxe/dhcpv6.h
@@ -11,6 +11,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <stdint.h>
#include <ipxe/in.h>
+#include <ipxe/uuid.h>
/** DHCPv6 server port */
#define DHCPV6_SERVER_PORT 547
@@ -31,18 +32,16 @@ struct dhcpv6_option {
uint8_t data[0];
} __attribute__ (( packed ));
-/** DHCP unique identifier based on link-layer address (DUID-LL) */
-struct dhcpv6_duid_ll {
+/** DHCP unique identifier based on UUID (DUID-UUID) */
+struct dhcpv6_duid_uuid {
/** Type */
uint16_t type;
- /** Hardware type */
- uint16_t htype;
- /** Link-layer address */
- uint8_t ll_addr[0];
+ /** UUID */
+ union uuid uuid;
} __attribute__ (( packed ));
-/** DHCP unique identifier based on link-layer address (DUID-LL) */
-#define DHCPV6_DUID_LL 3
+/** DHCP unique identifier based on UUID (DUID-UUID) */
+#define DHCPV6_DUID_UUID 4
/** DHCPv6 client or server identifier option */
struct dhcpv6_duid_option {