'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '6', ':', \
'U', 'N', 'D', 'I', ':', '0', '0', '3', '0', '1', '0' )
-#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 6 )
+#define DHCP_ARCH_CLIENT_ARCHITECTURE \
+ DHCP_WORD ( DHCP_CLIENT_ARCHITECTURE_IA32 )
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 3, 10 /* v3.10 */ )
'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '0', ':', \
'U', 'N', 'D', 'I', ':', '0', '0', '2', '0', '0', '1' )
-#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 0 )
+#define DHCP_ARCH_CLIENT_ARCHITECTURE \
+ DHCP_WORD ( DHCP_CLIENT_ARCHITECTURE_X86 )
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 2, 1 /* v2.1 */ )
#define DHCP_ARCH_VENDOR_CLASS_ID \
DHCP_STRING ( 'P', 'X', 'E', 'C', 'l', 'i', 'e', 'n', 't', ':', \
- 'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '7', ':', \
+ 'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '9', ':', \
'U', 'N', 'D', 'I', ':', '0', '0', '3', '0', '1', '0' )
-#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 7 )
+#define DHCP_ARCH_CLIENT_ARCHITECTURE \
+ DHCP_WORD ( DHCP_CLIENT_ARCHITECTURE_X86_64 )
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 3, 10 /* v3.10 */ )
/** Client system architecture */
#define DHCP_CLIENT_ARCHITECTURE 93
+/** DHCP client architecture */
+struct dhcp_client_architecture {
+ uint16_t arch;
+} __attribute__ (( packed ));
+
+/** DHCP client architecture values
+ *
+ * These are defined by the PXE specification and redefined by
+ * RFC4578.
+ */
+enum dhcp_client_architecture_values {
+ /** Intel x86 PC */
+ DHCP_CLIENT_ARCHITECTURE_X86 = 0x0000,
+ /** NEC/PC98 */
+ DHCP_CLIENT_ARCHITECTURE_PC98 = 0x0001,
+ /** EFI Itanium */
+ DHCP_CLIENT_ARCHITECTURE_IA64 = 0x0002,
+ /** DEC Alpha */
+ DHCP_CLIENT_ARCHITECTURE_ALPHA = 0x0003,
+ /** Arc x86 */
+ DHCP_CLIENT_ARCHITECTURE_ARCX86 = 0x0004,
+ /** Intel Lean Client */
+ DHCP_CLIENT_ARCHITECTURE_LC = 0x0005,
+ /** EFI IA32 */
+ DHCP_CLIENT_ARCHITECTURE_IA32 = 0x0006,
+ /** EFI BC */
+ DHCP_CLIENT_ARCHITECTURE_EFI = 0x0007,
+ /** EFI Xscale */
+ DHCP_CLIENT_ARCHITECTURE_XSCALE = 0x0008,
+ /** EFI x86-64 */
+ DHCP_CLIENT_ARCHITECTURE_X86_64 = 0x0009,
+};
+
/** Client network device interface */
#define DHCP_CLIENT_NDI 94