[dhcp] Use correct DHCP options on EFI systems
See RFC 4578 for details. Signed-off-by: Joshua Oreman <oremanj@rwcr.net> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
8a16fd05dc
commit
6514d6430d
|
@ -295,6 +295,7 @@ endif
|
|||
# Include architecture-specific include path
|
||||
ifdef ARCH
|
||||
INCDIRS += arch/$(ARCH)/include
|
||||
INCDIRS += arch/$(ARCH)/include/$(PLATFORM)
|
||||
endif
|
||||
|
||||
###############################################################################
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright (C) 2010 VMware, Inc. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef _DHCP_ARCH_H
|
||||
#define _DHCP_ARCH_H
|
||||
|
||||
/** @file
|
||||
*
|
||||
* Architecture-specific DHCP options
|
||||
*/
|
||||
|
||||
FILE_LICENCE ( GPL2_OR_LATER );
|
||||
|
||||
#include <ipxe/dhcp.h>
|
||||
|
||||
#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', '6', ':', \
|
||||
'U', 'N', 'D', 'I', ':', '0', '0', '3', '0', '1', '0' )
|
||||
|
||||
#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 6 )
|
||||
|
||||
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 3, 10 /* v3.10 */ )
|
||||
|
||||
#endif
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright (C) 2010 VMware, Inc. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef _DHCP_ARCH_H
|
||||
#define _DHCP_ARCH_H
|
||||
|
||||
/** @file
|
||||
*
|
||||
* Architecture-specific DHCP options
|
||||
*/
|
||||
|
||||
FILE_LICENCE ( GPL2_OR_LATER );
|
||||
|
||||
#include <ipxe/dhcp.h>
|
||||
|
||||
#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', '0', ':', \
|
||||
'U', 'N', 'D', 'I', ':', '0', '0', '2', '0', '0', '1' )
|
||||
|
||||
#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 0 )
|
||||
|
||||
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 2, 1 /* v2.1 */ )
|
||||
|
||||
#endif
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright (C) 2010 VMware, Inc. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef _DHCP_ARCH_H
|
||||
#define _DHCP_ARCH_H
|
||||
|
||||
/** @file
|
||||
*
|
||||
* Architecture-specific DHCP options
|
||||
*/
|
||||
|
||||
FILE_LICENCE ( GPL2_OR_LATER );
|
||||
|
||||
#include <ipxe/dhcp.h>
|
||||
|
||||
#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', ':', \
|
||||
'U', 'N', 'D', 'I', ':', '0', '0', '3', '0', '1', '0' )
|
||||
|
||||
#define DHCP_ARCH_CLIENT_ARCHITECTURE DHCP_WORD ( 7 )
|
||||
|
||||
#define DHCP_ARCH_CLIENT_NDI DHCP_OPTION ( 1 /* UNDI */ , 3, 10 /* v3.10 */ )
|
||||
|
||||
#endif
|
|
@ -40,6 +40,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
|||
#include <ipxe/dhcp.h>
|
||||
#include <ipxe/dhcpopts.h>
|
||||
#include <ipxe/dhcppkt.h>
|
||||
#include <ipxe/dhcp_arch.h>
|
||||
#include <ipxe/features.h>
|
||||
|
||||
/** @file
|
||||
|
@ -74,14 +75,10 @@ static uint8_t dhcp_request_options_data[] = {
|
|||
DHCP_MESSAGE_TYPE, DHCP_BYTE ( 0 ),
|
||||
DHCP_MAX_MESSAGE_SIZE,
|
||||
DHCP_WORD ( ETH_MAX_MTU - 20 /* IP header */ - 8 /* UDP header */ ),
|
||||
DHCP_CLIENT_ARCHITECTURE, DHCP_WORD ( 0 ),
|
||||
DHCP_CLIENT_NDI, DHCP_OPTION ( 1 /* UNDI */ , 2, 1 /* v2.1 */ ),
|
||||
DHCP_VENDOR_CLASS_ID,
|
||||
DHCP_STRING ( 'P', 'X', 'E', 'C', 'l', 'i', 'e', 'n', 't', ':',
|
||||
'A', 'r', 'c', 'h', ':', '0', '0', '0', '0', '0', ':',
|
||||
'U', 'N', 'D', 'I', ':', '0', '0', '2', '0', '0', '1' ),
|
||||
DHCP_USER_CLASS_ID,
|
||||
DHCP_STRING ( 'g', 'P', 'X', 'E' ),
|
||||
DHCP_CLIENT_ARCHITECTURE, DHCP_ARCH_CLIENT_ARCHITECTURE,
|
||||
DHCP_CLIENT_NDI, DHCP_ARCH_CLIENT_NDI,
|
||||
DHCP_VENDOR_CLASS_ID, DHCP_ARCH_VENDOR_CLASS_ID,
|
||||
DHCP_USER_CLASS_ID, DHCP_STRING ( 'i', 'P', 'X', 'E' ),
|
||||
DHCP_PARAMETER_REQUEST_LIST,
|
||||
DHCP_OPTION ( DHCP_SUBNET_MASK, DHCP_ROUTERS, DHCP_DNS_SERVERS,
|
||||
DHCP_LOG_SERVERS, DHCP_HOST_NAME, DHCP_DOMAIN_NAME,
|
||||
|
|
Reference in New Issue