X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FNetwork%2FIp4Dxe%2FIp4Impl.h;h=ddca6ce897f6ecdee0e46d1af6ec2b50893bf473;hb=3028d73e5a4073841fdfc94b1e984c92e8e8fa7a;hp=7a7ad9d785a15d05cd9213c5e5c384cce255a58e;hpb=ac6c3d90edebf1499dac8f4d3c99e94d197ad45e;p=mirror_edk2.git diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h index 7a7ad9d785..ddca6ce897 100644 --- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h +++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.h @@ -1,7 +1,7 @@ /** @file Ip4 internal functions and type defintions. - -Copyright (c) 2005 - 2016, Intel Corporation. All rights reserved.
+ +Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.
(C) Copyright 2015 Hewlett-Packard Development Company, L.P.
This program and the accompanying materials @@ -64,12 +64,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. // // The state of IP4 protocol. It starts from UNCONFIGED. if it is // successfully configured, it goes to CONFIGED. if configure NULL -// is called, it becomes UNCONFIGED again. If (partly) destroyed, it -// becomes DESTROY. +// is called, it becomes UNCONFIGED again. // #define IP4_STATE_UNCONFIGED 0 #define IP4_STATE_CONFIGED 1 -#define IP4_STATE_DESTROY 2 // // The state of IP4 service. It starts from UNSTARTED. It transits @@ -136,6 +134,8 @@ struct _IP4_PROTOCOL { EFI_HANDLE Handle; INTN State; + BOOLEAN InDestroy; + IP4_SERVICE *Service; LIST_ENTRY Link; // Link to all the IP protocol from the service @@ -206,13 +206,13 @@ struct _IP4_SERVICE { EFI_SIMPLE_NETWORK_MODE SnpMode; EFI_EVENT Timer; - + EFI_EVENT ReconfigCheckTimer; EFI_EVENT ReconfigEvent; BOOLEAN Reconfig; // - // Underlying media present status. + // Underlying media present status. // BOOLEAN MediaPresent; @@ -334,10 +334,9 @@ Ip4Groups ( ); /** - The heart beat timer of IP4 service instance. It times out - all of its IP4 children's received-but-not-delivered and - transmitted-but-not-recycle packets, and provides time input - for its IGMP protocol. + This heart beat timer of IP4 service instance times out all of its IP4 children's + received-but-not-delivered and transmitted-but-not-recycle packets, and provides + time input for its IGMP protocol. @param[in] Event The IP4 service instance's heart beat timer. @param[in] Context The IP4 service instance. @@ -350,6 +349,25 @@ Ip4TimerTicking ( IN VOID *Context ); +/** + This dedicated timer is used to poll underlying network media status. In case + of cable swap or wireless network switch, a new round auto configuration will + be initiated. The timer will signal the IP4 to run DHCP configuration again. + IP4 driver will free old IP address related resource, such as route table and + Interface, then initiate a DHCP process to acquire new IP, eventually create + route table for new IP address. + + @param[in] Event The IP4 service instance's heart beat timer. + @param[in] Context The IP4 service instance. + +**/ +VOID +EFIAPI +Ip4TimerReconfigChecking ( + IN EFI_EVENT Event, + IN VOID *Context + ); + /** Decrease the life of the transmitted packets. If it is decreased to zero, cancel the packet. This function is