1. Mark the network volatile variables as deprecated in code comments and remove related code to set/get these variable.

2. Remove the GetTime() call when receiving Udp4/6 packets.
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye, Ting <ting.ye@intel.com>
Reviewed-by: Wu, Jiaxin <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15497 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Fu Siyuan
2014-05-07 06:17:31 +00:00
committed by sfu5
parent 5966402ed5
commit d551cc64cd
33 changed files with 87 additions and 1366 deletions

View File

@@ -1,7 +1,7 @@
/** @file
The implementation of common functions shared by IP6 driver.
Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2014, 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
@@ -650,146 +650,6 @@ Ip6GetMulticastMac (
return Mnp->McastIpToMac (Mnp, TRUE, &EfiIp, Mac);
}
/**
Set the Ip6 variable data.
@param[in] IpSb Points to an IP6 service binding instance.
@retval EFI_OUT_OF_RESOURCES There are not enough resources to set the variable.
@retval other Set variable failed.
**/
EFI_STATUS
Ip6SetVariableData (
IN IP6_SERVICE *IpSb
)
{
UINT32 NumConfiguredInstance;
LIST_ENTRY *Entry;
UINTN VariableDataSize;
EFI_IP6_VARIABLE_DATA *Ip6VariableData;
EFI_IP6_ADDRESS_PAIR *Ip6AddressPair;
IP6_PROTOCOL *IpInstance;
CHAR16 *NewMacString;
EFI_STATUS Status;
NumConfiguredInstance = 0;
//
// Go through the children list to count the configured children.
//
NET_LIST_FOR_EACH (Entry, &IpSb->Children) {
IpInstance = NET_LIST_USER_STRUCT_S (Entry, IP6_PROTOCOL, Link, IP6_PROTOCOL_SIGNATURE);
if (IpInstance->State == IP6_STATE_CONFIGED) {
NumConfiguredInstance++;
}
}
//
// Calculate the size of the Ip6VariableData. As there may be no IP child,
// we should add extra buffer for the address paris only if the number of configured
// children is more than 1.
//
VariableDataSize = sizeof (EFI_IP6_VARIABLE_DATA);
if (NumConfiguredInstance > 1) {
VariableDataSize += sizeof (EFI_IP6_ADDRESS_PAIR) * (NumConfiguredInstance - 1);
}
Ip6VariableData = AllocatePool (VariableDataSize);
if (Ip6VariableData == NULL) {
return EFI_OUT_OF_RESOURCES;
}
Ip6VariableData->DriverHandle = IpSb->Image;
Ip6VariableData->AddressCount = NumConfiguredInstance;
Ip6AddressPair = &Ip6VariableData->AddressPairs[0];
//
// Go through the children list to fill the configured children's address pairs.
//
NET_LIST_FOR_EACH (Entry, &IpSb->Children) {
IpInstance = NET_LIST_USER_STRUCT_S (Entry, IP6_PROTOCOL, Link, IP6_PROTOCOL_SIGNATURE);
if (IpInstance->State == IP6_STATE_CONFIGED) {
Ip6AddressPair->InstanceHandle = IpInstance->Handle;
Ip6AddressPair->PrefixLength = IpInstance->PrefixLength;
IP6_COPY_ADDRESS (&Ip6AddressPair->Ip6Address, &IpInstance->ConfigData.StationAddress);
Ip6AddressPair++;
}
}
//
// Get the mac string.
//
Status = NetLibGetMacString (IpSb->Controller, IpSb->Image, &NewMacString);
if (EFI_ERROR (Status)) {
goto Exit;
}
if (IpSb->MacString != NULL) {
//
// The variable is set already, we're going to update it.
//
if (StrCmp (IpSb->MacString, NewMacString) != 0) {
//
// The mac address is changed, delete the previous variable first.
//
gRT->SetVariable (
IpSb->MacString,
&gEfiIp6ServiceBindingProtocolGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS,
0,
NULL
);
}
FreePool (IpSb->MacString);
}
IpSb->MacString = NewMacString;
Status = gRT->SetVariable (
IpSb->MacString,
&gEfiIp6ServiceBindingProtocolGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS,
VariableDataSize,
(VOID *) Ip6VariableData
);
Exit:
FreePool (Ip6VariableData);
return Status;
}
/**
Clear the variable and free the resource.
@param[in] IpSb Ip6 service binding instance.
**/
VOID
Ip6ClearVariableData (
IN IP6_SERVICE *IpSb
)
{
ASSERT (IpSb->MacString != NULL);
gRT->SetVariable (
IpSb->MacString,
&gEfiIp6ServiceBindingProtocolGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS,
0,
NULL
);
FreePool (IpSb->MacString);
IpSb->MacString = NULL;
}
/**
Convert the multibyte field in IP header's byter order.
In spite of its name, it can also be used to convert from