MedmodulePkg: Refine codes related to Dhcpv4 and Dhcpv6 configuration.
Add a new head file Dhcp.h in Mde/Include/IndustryStandard, normalize the universal option numbers and other network number tags. Cc: Sriram Subramanian <sriram-s@hpe.com> Cc: Ye Ting <ting.ye@intel.com> Cc: Fu Siyuan <siyuan.fu@intel.com> Cc: Wu Jiaxin <jiaxin.wu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Zhang Lubo <lubo.zhang@intel.com> Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
To validate, parse and process the DHCP options.
|
||||
|
||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -19,112 +19,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
/// DHCP option tags (types)
|
||||
///
|
||||
|
||||
//
|
||||
// RFC1497 vendor extensions
|
||||
//
|
||||
#define DHCP_TAG_PAD 0 // Pad Option
|
||||
#define DHCP_TAG_EOP 255 // End Option
|
||||
#define DHCP_TAG_NETMASK 1 // Subnet Mask
|
||||
#define DHCP_TAG_TIME_OFFSET 2 // Time Offset from UTC
|
||||
#define DHCP_TAG_ROUTER 3 // Router option,
|
||||
#define DHCP_TAG_TIME_SERVER 4 // Time Server
|
||||
#define DHCP_TAG_NAME_SERVER 5 // Name Server
|
||||
#define DHCP_TAG_DNS_SERVER 6 // Domain Name Server
|
||||
#define DHCP_TAG_LOG_SERVER 7 // Log Server
|
||||
#define DHCP_TAG_COOKIE_SERVER 8 // Cookie Server
|
||||
#define DHCP_TAG_LPR_SERVER 9 // LPR Print Server
|
||||
#define DHCP_TAG_IMPRESS_SERVER 10 // Impress Server
|
||||
#define DHCP_TAG_RL_SERVER 11 // Resource Location Server
|
||||
#define DHCP_TAG_HOSTNAME 12 // Host Name
|
||||
#define DHCP_TAG_BOOTFILE_LEN 13 // Boot File Size
|
||||
#define DHCP_TAG_DUMP 14 // Merit Dump File
|
||||
#define DHCP_TAG_DOMAINNAME 15 // Domain Name
|
||||
#define DHCP_TAG_SWAP_SERVER 16 // Swap Server
|
||||
#define DHCP_TAG_ROOTPATH 17 // Root path
|
||||
#define DHCP_TAG_EXTEND_PATH 18 // Extensions Path
|
||||
|
||||
//
|
||||
// IP Layer Parameters per Host
|
||||
//
|
||||
#define DHCP_TAG_IPFORWARD 19 // IP Forwarding Enable/Disable
|
||||
#define DHCP_TAG_NONLOCAL_SRR 20 // on-Local Source Routing Enable/Disable
|
||||
#define DHCP_TAG_POLICY_SRR 21 // Policy Filter
|
||||
#define DHCP_TAG_EMTU 22 // Maximum Datagram Reassembly Size
|
||||
#define DHCP_TAG_TTL 23 // Default IP Time-to-live
|
||||
#define DHCP_TAG_PATHMTU_AGE 24 // Path MTU Aging Timeout
|
||||
#define DHCP_TAG_PATHMTU_PLATEAU 25 // Path MTU Plateau Table
|
||||
|
||||
//
|
||||
// IP Layer Parameters per Interface
|
||||
//
|
||||
#define DHCP_TAG_IFMTU 26 // Interface MTU
|
||||
#define DHCP_TAG_SUBNET_LOCAL 27 // All Subnets are Local
|
||||
#define DHCP_TAG_BROADCAST 28 // Broadcast Address
|
||||
#define DHCP_TAG_DISCOVER_MASK 29 // Perform Mask Discovery
|
||||
#define DHCP_TAG_SUPPLY_MASK 30 // Mask Supplier
|
||||
#define DHCP_TAG_DISCOVER_ROUTE 31 // Perform Router Discovery
|
||||
#define DHCP_TAG_ROUTER_SOLICIT 32 // Router Solicitation Address
|
||||
#define DHCP_TAG_STATIC_ROUTE 33 // Static Route
|
||||
|
||||
//
|
||||
// Link Layer Parameters per Interface
|
||||
//
|
||||
#define DHCP_TAG_TRAILER 34 // Trailer Encapsulation
|
||||
#define DHCP_TAG_ARPAGE 35 // ARP Cache Timeout
|
||||
#define DHCP_TAG_ETHER_ENCAP 36 // Ethernet Encapsulation
|
||||
|
||||
//
|
||||
// TCP Parameters
|
||||
//
|
||||
#define DHCP_TAG_TCP_TTL 37 // TCP Default TTL
|
||||
#define DHCP_TAG_KEEP_INTERVAL 38 // TCP Keepalive Interval
|
||||
#define DHCP_TAG_KEEP_GARBAGE 39 // TCP Keepalive Garbage
|
||||
|
||||
//
|
||||
// Application and Service Parameters
|
||||
//
|
||||
#define DHCP_TAG_NIS_DOMAIN 40 // Network Information Service Domain
|
||||
#define DHCP_TAG_NIS_SERVER 41 // Network Information Servers
|
||||
#define DHCP_TAG_NTP_SERVER 42 // Network Time Protocol Servers
|
||||
#define DHCP_TAG_VENDOR 43 // Vendor Specific Information
|
||||
#define DHCP_TAG_NBNS 44 // NetBIOS over TCP/IP Name Server
|
||||
#define DHCP_TAG_NBDD 45 // NetBIOS Datagram Distribution Server
|
||||
#define DHCP_TAG_NBTYPE 46 // NetBIOS over TCP/IP Node Type
|
||||
#define DHCP_TAG_NBSCOPE 47 // NetBIOS over TCP/IP Scope
|
||||
#define DHCP_TAG_XFONT 48 // X Window System Font Server
|
||||
#define DHCP_TAG_XDM 49 // X Window System Display Manager
|
||||
#define DHCP_TAG_NISPLUS 64 // Network Information Service+ Domain
|
||||
#define DHCP_TAG_NISPLUS_SERVER 65 // Network Information Service+ Servers
|
||||
#define DHCP_TAG_MOBILEIP 68 // Mobile IP Home Agent
|
||||
#define DHCP_TAG_SMTP 69 // Simple Mail Transport Protocol Server
|
||||
#define DHCP_TAG_POP3 70 // Post Office Protocol (POP3) Server
|
||||
#define DHCP_TAG_NNTP 71 // Network News Transport Protocol Server
|
||||
#define DHCP_TAG_WWW 72 // Default World Wide Web (WWW) Server
|
||||
#define DHCP_TAG_FINGER 73 // Default Finger Server
|
||||
#define DHCP_TAG_IRC 74 // Default Internet Relay Chat (IRC) Server
|
||||
#define DHCP_TAG_STTALK 75 // StreetTalk Server
|
||||
#define DHCP_TAG_STDA 76 // StreetTalk Directory Assistance Server
|
||||
#define DHCP_TAG_CLASSLESS_ROUTE 121 // Classless Route
|
||||
|
||||
//
|
||||
// DHCP Extensions
|
||||
//
|
||||
#define DHCP_TAG_REQUEST_IP 50 // Requested IP Address
|
||||
#define DHCP_TAG_LEASE 51 // IP Address Lease Time
|
||||
#define DHCP_TAG_OVERLOAD 52 // Option Overload
|
||||
#define DHCP_TAG_TFTP 66 // TFTP server name
|
||||
#define DHCP_TAG_BOOTFILE 67 // Bootfile name
|
||||
#define DHCP_TAG_TYPE 53 // DHCP Message Type
|
||||
#define DHCP_TAG_SERVER_ID 54 // Server Identifier
|
||||
#define DHCP_TAG_PARA_LIST 55 // Parameter Request List
|
||||
#define DHCP_TAG_MESSAGE 56 // Message
|
||||
#define DHCP_TAG_MAXMSG 57 // Maximum DHCP Message Size
|
||||
#define DHCP_TAG_T1 58 // Renewal (T1) Time Value
|
||||
#define DHCP_TAG_T2 59 // Rebinding (T2) Time Value
|
||||
#define DHCP_TAG_VENDOR_CLASS 60 // Vendor class identifier
|
||||
#define DHCP_TAG_CLIENT_ID 61 // Client-identifier
|
||||
|
||||
|
||||
#define DHCP_OPTION_MAGIC 0x63538263 // Network byte order
|
||||
#define DHCP_MAX_OPTIONS 256
|
||||
|
||||
@@ -176,18 +70,18 @@ typedef struct {
|
||||
/// classless route, who can parse the DHCP offer to get them.
|
||||
///
|
||||
typedef struct {
|
||||
IP4_ADDR NetMask; // DHCP_TAG_NETMASK
|
||||
IP4_ADDR Router; // DHCP_TAG_ROUTER, only the first router is used
|
||||
IP4_ADDR NetMask; // DHCP4_TAG_NETMASK
|
||||
IP4_ADDR Router; // DHCP4_TAG_ROUTER, only the first router is used
|
||||
|
||||
//
|
||||
// DHCP specific options
|
||||
//
|
||||
UINT8 DhcpType; // DHCP_TAG_TYPE
|
||||
UINT8 Overload; // DHCP_TAG_OVERLOAD
|
||||
IP4_ADDR ServerId; // DHCP_TAG_SERVER_ID
|
||||
UINT32 Lease; // DHCP_TAG_LEASE
|
||||
UINT32 T1; // DHCP_TAG_T1
|
||||
UINT32 T2; // DHCP_TAG_T2
|
||||
UINT8 DhcpType; // DHCP4_TAG_MSG_TYPE
|
||||
UINT8 Overload; // DHCP4_TAG_OVERLOAD
|
||||
IP4_ADDR ServerId; // DHCP4_TAG_SERVER_ID
|
||||
UINT32 Lease; // DHCP4_TAG_LEASE
|
||||
UINT32 T1; // DHCP4_TAG_T1
|
||||
UINT32 T2; // DHCP4_TAG_T2
|
||||
} DHCP_PARAMETER;
|
||||
|
||||
///
|
||||
|
Reference in New Issue
Block a user