]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Dhcp6Dxe/Dhcp6Impl.h
NetworkPkg: Clean up source files
[mirror_edk2.git] / NetworkPkg / Dhcp6Dxe / Dhcp6Impl.h
index 71b16b19199b59ce63bbd12b879fcb79c16f20c4..f21b79668a8b0caf105d4301e9c8c3d42681f467 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Dhcp6 internal data structure and definition declaration.\r
 \r
 /** @file\r
   Dhcp6 internal data structure and definition declaration.\r
 \r
-  Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -19,6 +19,8 @@
 \r
 #include <Uefi.h>\r
 \r
 \r
 #include <Uefi.h>\r
 \r
+#include <IndustryStandard/Dhcp.h>\r
+\r
 #include <Protocol/Dhcp6.h>\r
 #include <Protocol/Udp6.h>\r
 #include <Protocol/Ip6Config.h>\r
 #include <Protocol/Dhcp6.h>\r
 #include <Protocol/Udp6.h>\r
 #include <Protocol/Ip6Config.h>\r
@@ -35,6 +37,7 @@
 #include <Library/BaseLib.h>\r
 #include <Library/NetLib.h>\r
 #include <Library/PrintLib.h>\r
 #include <Library/BaseLib.h>\r
 #include <Library/NetLib.h>\r
 #include <Library/PrintLib.h>\r
+#include <Guid/ZeroGuid.h>\r
 \r
 \r
 typedef struct _DHCP6_IA_CB    DHCP6_IA_CB;\r
 \r
 \r
 typedef struct _DHCP6_IA_CB    DHCP6_IA_CB;\r
@@ -50,66 +53,6 @@ typedef struct _DHCP6_INSTANCE DHCP6_INSTANCE;
 #define DHCP6_SERVICE_SIGNATURE   SIGNATURE_32 ('D', 'H', '6', 'S')\r
 #define DHCP6_INSTANCE_SIGNATURE  SIGNATURE_32 ('D', 'H', '6', 'I')\r
 \r
 #define DHCP6_SERVICE_SIGNATURE   SIGNATURE_32 ('D', 'H', '6', 'S')\r
 #define DHCP6_INSTANCE_SIGNATURE  SIGNATURE_32 ('D', 'H', '6', 'I')\r
 \r
-//\r
-// Transmit parameters of solicit message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_SOL_MAX_DELAY       1\r
-#define DHCP6_SOL_IRT             1\r
-#define DHCP6_SOL_MRC             0\r
-#define DHCP6_SOL_MRT             120\r
-#define DHCP6_SOL_MRD             0\r
-//\r
-// Transmit parameters of request message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_REQ_IRT             1\r
-#define DHCP6_REQ_MRC             10\r
-#define DHCP6_REQ_MRT             30\r
-#define DHCP6_REQ_MRD             0\r
-//\r
-// Transmit parameters of confirm message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_CNF_MAX_DELAY       1\r
-#define DHCP6_CNF_IRT             1\r
-#define DHCP6_CNF_MRC             0\r
-#define DHCP6_CNF_MRT             4\r
-#define DHCP6_CNF_MRD             10\r
-//\r
-// Transmit parameters of renew message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_REN_IRT             10\r
-#define DHCP6_REN_MRC             0\r
-#define DHCP6_REN_MRT             600\r
-#define DHCP6_REN_MRD             0\r
-//\r
-// Transmit parameters of rebind message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_REB_IRT             10\r
-#define DHCP6_REB_MRC             0\r
-#define DHCP6_REB_MRT             600\r
-#define DHCP6_REB_MRD             0\r
-//\r
-// Transmit parameters of information request message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_INF_MAX_DELAY       1\r
-#define DHCP6_INF_IRT             1\r
-#define DHCP6_INF_MRC             0\r
-#define DHCP6_INF_MRT             120\r
-#define DHCP6_INF_MRD             0\r
-//\r
-// Transmit parameters of release message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_REL_IRT             1\r
-#define DHCP6_REL_MRC             5\r
-#define DHCP6_REL_MRT             0\r
-#define DHCP6_REL_MRD             0\r
-//\r
-// Transmit parameters of decline message, refers to section-5.5 of rfc-3315.\r
-//\r
-#define DHCP6_DEC_IRT             1\r
-#define DHCP6_DEC_MRC             5\r
-#define DHCP6_DEC_MRT             0\r
-#define DHCP6_DEC_MRD             0\r
-\r
 #define DHCP6_PACKET_ALL          0\r
 #define DHCP6_PACKET_STATEFUL     1\r
 #define DHCP6_PACKET_STATELESS    2\r
 #define DHCP6_PACKET_ALL          0\r
 #define DHCP6_PACKET_STATEFUL     1\r
 #define DHCP6_PACKET_STATELESS    2\r
@@ -119,6 +62,8 @@ typedef struct _DHCP6_INSTANCE DHCP6_INSTANCE;
 #define DHCP6_PORT_CLIENT         546\r
 #define DHCP6_PORT_SERVER         547\r
 \r
 #define DHCP6_PORT_CLIENT         546\r
 #define DHCP6_PORT_SERVER         547\r
 \r
+#define DHCP_CHECK_MEDIA_WAITING_TIME    EFI_TIMER_PERIOD_SECONDS(20)\r
+\r
 #define DHCP6_INSTANCE_FROM_THIS(Instance) CR ((Instance), DHCP6_INSTANCE, Dhcp6, DHCP6_INSTANCE_SIGNATURE)\r
 #define DHCP6_SERVICE_FROM_THIS(Service)   CR ((Service), DHCP6_SERVICE, ServiceBinding, DHCP6_SERVICE_SIGNATURE)\r
 \r
 #define DHCP6_INSTANCE_FROM_THIS(Instance) CR ((Instance), DHCP6_INSTANCE, Dhcp6, DHCP6_INSTANCE_SIGNATURE)\r
 #define DHCP6_SERVICE_FROM_THIS(Service)   CR ((Service), DHCP6_SERVICE, ServiceBinding, DHCP6_SERVICE_SIGNATURE)\r
 \r
@@ -126,70 +71,6 @@ extern EFI_IPv6_ADDRESS           mAllDhcpRelayAndServersAddress;
 extern EFI_IPv6_ADDRESS           mAllDhcpServersAddress;\r
 extern EFI_DHCP6_PROTOCOL         gDhcp6ProtocolTemplate;\r
 \r
 extern EFI_IPv6_ADDRESS           mAllDhcpServersAddress;\r
 extern EFI_DHCP6_PROTOCOL         gDhcp6ProtocolTemplate;\r
 \r
-//\r
-// Enumeration of Dhcp6 message type, refers to section-5.3 of rfc-3315.\r
-//\r
-typedef enum {\r
-  Dhcp6MsgSolicit               = 1,\r
-  Dhcp6MsgAdvertise             = 2,\r
-  Dhcp6MsgRequest               = 3,\r
-  Dhcp6MsgConfirm               = 4,\r
-  Dhcp6MsgRenew                 = 5,\r
-  Dhcp6MsgRebind                = 6,\r
-  Dhcp6MsgReply                 = 7,\r
-  Dhcp6MsgRelease               = 8,\r
-  Dhcp6MsgDecline               = 9,\r
-  Dhcp6MsgReconfigure           = 10,\r
-  Dhcp6MsgInfoRequest           = 11\r
-} DHCP6_MSG_TYPE;\r
-\r
-//\r
-// Enumeration of option code in Dhcp6 packet, refers to section-24.3 of rfc-3315.\r
-//\r
-typedef enum {\r
-  Dhcp6OptClientId              = 1,\r
-  Dhcp6OptServerId              = 2,\r
-  Dhcp6OptIana                  = 3,\r
-  Dhcp6OptIata                  = 4,\r
-  Dhcp6OptIaAddr                = 5,\r
-  Dhcp6OptRequestOption         = 6,\r
-  Dhcp6OptPreference            = 7,\r
-  Dhcp6OptElapsedTime           = 8,\r
-  Dhcp6OptReplayMessage         = 9,\r
-  Dhcp6OptAuthentication        = 11,\r
-  Dhcp6OptServerUnicast         = 12,\r
-  Dhcp6OptStatusCode            = 13,\r
-  Dhcp6OptRapidCommit           = 14,\r
-  Dhcp6OptUserClass             = 15,\r
-  Dhcp6OptVendorClass           = 16,\r
-  Dhcp6OptVendorInfo            = 17,\r
-  Dhcp6OptInterfaceId           = 18,\r
-  Dhcp6OptReconfigMessage       = 19,\r
-  Dhcp6OptReconfigureAccept     = 20\r
-} DHCP6_OPT_CODE;\r
-\r
-//\r
-// Enumeration of status code recorded by IANA, refers to section-24.4 of rfc-3315.\r
-//\r
-typedef enum {\r
-  Dhcp6StsSuccess               = 0,\r
-  Dhcp6StsUnspecFail            = 1,\r
-  Dhcp6StsNoAddrsAvail          = 2,\r
-  Dhcp6StsNoBinding             = 3,\r
-  Dhcp6StsNotOnLink             = 4,\r
-  Dhcp6StsUseMulticast          = 5\r
-} DHCP6_STS_CODE;\r
-\r
-//\r
-// Enumeration of Duid type recorded by IANA, refers to section-24.5 of rfc-3315.\r
-//\r
-typedef enum {\r
-  Dhcp6DuidTypeLlt              = 1,\r
-  Dhcp6DuidTypeEn               = 2,\r
-  Dhcp6DuidTypeLl               = 3,\r
-  Dhcp6DuidTypeUuid             = 4\r
-} DHCP6_DUID_TYPE;\r
-\r
 //\r
 // Control block for each IA.\r
 //\r
 //\r
 // Control block for each IA.\r
 //\r
@@ -249,6 +130,10 @@ struct _DHCP6_INSTANCE {
   volatile EFI_STATUS           UdpSts;\r
   BOOLEAN                       InDestroy;\r
   BOOLEAN                       MediaPresent;\r
   volatile EFI_STATUS           UdpSts;\r
   BOOLEAN                       InDestroy;\r
   BOOLEAN                       MediaPresent;\r
+  //\r
+  // StartTime is used to calculate the 'elapsed-time' option. Refer to RFC3315,\r
+  // the elapsed-time is amount of time since the client began its current DHCP transaction.\r
+  //\r
   UINT64                        StartTime;\r
 };\r
 \r
   UINT64                        StartTime;\r
 };\r
 \r