]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Io.c
1. Update the UdpIo to a combined UdpIo to support both v4 and v6 stack.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Dhcp4Dxe / Dhcp4Io.c
index be8ceb045086f737d47466fa154aad463ee2986c..7c1fa4746a7fac43a18b5b09cd51318daf454cbc 100644 (file)
@@ -305,7 +305,7 @@ DhcpComputeLease (
   DHCP driver needs this port to unicast packet to the server\r
   such as DHCP release.\r
 \r
-  @param[in]  UdpIo                 The UDP IO port to configure\r
+  @param[in]  UdpIo                 The UDP IO to configure\r
   @param[in]  Context               Dhcp service instance.\r
 \r
   @retval EFI_SUCCESS           The UDP IO port is successfully configured.\r
@@ -314,7 +314,7 @@ DhcpComputeLease (
 **/\r
 EFI_STATUS\r
 DhcpConfigLeaseIoPort (\r
-  IN UDP_IO_PORT            *UdpIo,\r
+  IN UDP_IO                 *UdpIo,\r
   IN VOID                   *Context\r
   )\r
 {\r
@@ -349,7 +349,7 @@ DhcpConfigLeaseIoPort (
 \r
   ZeroMem (&UdpConfigData.RemoteAddress, sizeof (EFI_IPv4_ADDRESS));\r
 \r
-  Status = UdpIo->Udp->Configure (UdpIo->Udp, &UdpConfigData);\r
+  Status = UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfigData);\r
 \r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
@@ -364,7 +364,7 @@ DhcpConfigLeaseIoPort (
     Ip = HTONL (DhcpSb->Para->Router);\r
     CopyMem (&Gateway, &Ip, sizeof (EFI_IPv4_ADDRESS));\r
 \r
-    UdpIo->Udp->Routes (UdpIo->Udp, FALSE, &Subnet, &Subnet, &Gateway);\r
+    UdpIo->Protocol.Udp4->Routes (UdpIo->Protocol.Udp4, FALSE, &Subnet, &Subnet, &Gateway);\r
   }\r
 \r
   return EFI_SUCCESS;\r
@@ -402,7 +402,7 @@ DhcpLeaseAcquired (
   }\r
 \r
   if (DhcpSb->LeaseIoPort != NULL) {\r
-    UdpIoFreePort (DhcpSb->LeaseIoPort);\r
+    UdpIoFreeIo (DhcpSb->LeaseIoPort);\r
   }\r
 \r
   //\r
@@ -410,10 +410,11 @@ DhcpLeaseAcquired (
   // and transmit unicast packet with it as source address. Don't\r
   // start receive on this port, the queued packet will be timeout.\r
   //\r
-  DhcpSb->LeaseIoPort = UdpIoCreatePort (\r
+  DhcpSb->LeaseIoPort = UdpIoCreateIo (\r
                           DhcpSb->Controller,\r
                           DhcpSb->Image,\r
                           DhcpConfigLeaseIoPort,\r
+                          UDP_IO_UDP4_VERSION,\r
                           DhcpSb\r
                           );\r
 \r
@@ -467,7 +468,7 @@ DhcpCleanLease (
   DhcpSb->ExtraRefresh  = FALSE;\r
 \r
   if (DhcpSb->LeaseIoPort != NULL) {\r
-    UdpIoFreePort (DhcpSb->LeaseIoPort);\r
+    UdpIoFreeIo (DhcpSb->LeaseIoPort);\r
     DhcpSb->LeaseIoPort = NULL;\r
   }\r
 \r
@@ -935,7 +936,7 @@ ON_EXIT:
   state machine.\r
 \r
   @param  UdpPacket             The UDP packets received.\r
-  @param  Points                The local/remote UDP access points\r
+  @param  EndPoint              The local/remote UDP access point\r
   @param  IoStatus              The status of the UDP receive\r
   @param  Context               The opaque parameter to the function.\r
 \r
@@ -943,7 +944,7 @@ ON_EXIT:
 VOID\r
 DhcpInput (\r
   NET_BUF                   *UdpPacket,\r
-  UDP_POINTS                *Points,\r
+  UDP_END_POINT             *EndPoint,\r
   EFI_STATUS                IoStatus,\r
   VOID                      *Context\r
   )\r
@@ -1106,7 +1107,7 @@ DhcpReleasePacket (
   Release the net buffer when packet is sent.\r
 \r
   @param  UdpPacket             The UDP packets received.\r
-  @param  Points                The local/remote UDP access points\r
+  @param  EndPoint              The local/remote UDP access point\r
   @param  IoStatus              The status of the UDP receive\r
   @param  Context               The opaque parameter to the function.\r
 \r
@@ -1114,7 +1115,7 @@ DhcpReleasePacket (
 VOID\r
 DhcpOnPacketSent (\r
   NET_BUF                   *Packet,\r
-  UDP_POINTS                *Points,\r
+  UDP_END_POINT             *EndPoint,\r
   EFI_STATUS                IoStatus,\r
   VOID                      *Context\r
   )\r
@@ -1157,8 +1158,8 @@ DhcpSendMessage (
   EFI_DHCP4_PACKET          *NewPacket;\r
   EFI_DHCP4_HEADER          *Head;\r
   EFI_DHCP4_HEADER          *SeedHead;\r
-  UDP_IO_PORT               *UdpIo;\r
-  UDP_POINTS                EndPoint;\r
+  UDP_IO                    *UdpIo;\r
+  UDP_END_POINT             EndPoint;\r
   NET_BUF                   *Wrap;\r
   NET_FRAGMENT              Frag;\r
   EFI_STATUS                Status;\r
@@ -1363,16 +1364,16 @@ DhcpSendMessage (
   // Broadcast the message, unless we know the server address.\r
   // Use the lease UdpIo port to send the unicast packet.\r
   //\r
-  EndPoint.RemoteAddr = 0xffffffff;\r
-  EndPoint.LocalAddr  = 0;\r
-  EndPoint.RemotePort = DHCP_SERVER_PORT;\r
-  EndPoint.LocalPort  = DHCP_CLIENT_PORT;\r
-  UdpIo               = DhcpSb->UdpIo;\r
+  EndPoint.RemoteAddr.Addr[0] = 0xffffffff;\r
+  EndPoint.LocalAddr.Addr[0]  = 0;\r
+  EndPoint.RemotePort         = DHCP_SERVER_PORT;\r
+  EndPoint.LocalPort          = DHCP_CLIENT_PORT;\r
+  UdpIo                       = DhcpSb->UdpIo;\r
 \r
   if ((DhcpSb->DhcpState == Dhcp4Renewing) || (Type == DHCP_MSG_RELEASE)) {\r
-    EndPoint.RemoteAddr = DhcpSb->ServerAddr;\r
-    EndPoint.LocalAddr  = DhcpSb->ClientAddr;\r
-    UdpIo               = DhcpSb->LeaseIoPort;\r
+    EndPoint.RemoteAddr.Addr[0] = DhcpSb->ServerAddr;\r
+    EndPoint.LocalAddr.Addr[0]  = DhcpSb->ClientAddr;\r
+    UdpIo                       = DhcpSb->LeaseIoPort;\r
   }\r
 \r
   ASSERT (UdpIo != NULL);\r
@@ -1382,7 +1383,7 @@ DhcpSendMessage (
              UdpIo, \r
              Wrap, \r
              &EndPoint, \r
-             0\r
+             NULL\r
              DhcpOnPacketSent, \r
              DhcpSb\r
              );\r
@@ -1411,8 +1412,8 @@ DhcpRetransmit (
   IN DHCP_SERVICE           *DhcpSb\r
   )\r
 {\r
-  UDP_IO_PORT               *UdpIo;\r
-  UDP_POINTS                EndPoint;\r
+  UDP_IO                    *UdpIo;\r
+  UDP_END_POINT             EndPoint;\r
   NET_BUF                   *Wrap;\r
   NET_FRAGMENT              Frag;\r
   EFI_STATUS                Status;\r
@@ -1435,16 +1436,16 @@ DhcpRetransmit (
   //\r
   // Broadcast the message, unless we know the server address.\r
   //\r
-  EndPoint.RemotePort = DHCP_SERVER_PORT;\r
-  EndPoint.LocalPort  = DHCP_CLIENT_PORT;\r
-  EndPoint.RemoteAddr = 0xffffffff;\r
-  EndPoint.LocalAddr  = 0;\r
-  UdpIo               = DhcpSb->UdpIo;\r
+  EndPoint.RemotePort         = DHCP_SERVER_PORT;\r
+  EndPoint.LocalPort          = DHCP_CLIENT_PORT;\r
+  EndPoint.RemoteAddr.Addr[0] = 0xffffffff;\r
+  EndPoint.LocalAddr.Addr[0]  = 0;\r
+  UdpIo                       = DhcpSb->UdpIo;\r
 \r
   if (DhcpSb->DhcpState == Dhcp4Renewing) {\r
-    EndPoint.RemoteAddr = DhcpSb->ServerAddr;\r
-    EndPoint.LocalAddr  = DhcpSb->ClientAddr;\r
-    UdpIo               = DhcpSb->LeaseIoPort;\r
+    EndPoint.RemoteAddr.Addr[0] = DhcpSb->ServerAddr;\r
+    EndPoint.LocalAddr.Addr[0]  = DhcpSb->ClientAddr;\r
+    UdpIo                       = DhcpSb->LeaseIoPort;\r
   }\r
 \r
   ASSERT (UdpIo != NULL);\r
@@ -1454,7 +1455,7 @@ DhcpRetransmit (
              UdpIo,\r
              Wrap,\r
              &EndPoint,\r
-             0,\r
+             NULL,\r
              DhcpOnPacketSent,\r
              DhcpSb\r
              );\r