/** @file\r
-\r
-Copyright (c) 2006, Intel Corporation\r
+ Abstract:\r
+ \r
+Copyright (c) 2006, Intel Corporation.<BR>\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
+which accompanies this distribution. The full text of the license may be found at<BR>\r
http://opensource.org/licenses/bsd-license.php\r
\r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-Module Name:\r
-\r
- ArpMain.c\r
-\r
-Abstract:\r
-\r
-\r
**/\r
\r
#include "ArpImpl.h"\r
\r
/**\r
This function is used to assign a station address to the ARP cache for this instance\r
- of the ARP driver. A call to this function with the ConfigData field set to NULL\r
- will reset this ARP instance.\r
+ of the ARP driver. Each ARP instance has one station address. The EFI_ARP_PROTOCOL \r
+ driver will respond to ARP requests that match this registered station address. \r
+ A call to this function with the ConfigData field set to NULL will reset this \r
+ ARP instance.\r
+ \r
+ Once a protocol type and station address have been assigned to this ARP instance, \r
+ all the following ARP functions will use this information. Attempting to change \r
+ the protocol type or station address to a configured ARP instance will result in errors.\r
\r
@param This Pointer to the EFI_ARP_PROTOCOL instance.\r
@param ConfigData Pointer to the EFI_ARP_CONFIG_DATA structure.\r
/**\r
This function is used to insert entries into the ARP cache.\r
\r
+ ARP cache entries are typically inserted and updated by network protocol drivers \r
+ as network traffic is processed. Most ARP cache entries will time out and be \r
+ deleted if the network traffic stops. ARP cache entries that were inserted \r
+ by the Add() function may be static (will not time out) or dynamic (will time out).\r
+ Default ARP cache timeout values are not covered in most network protocol \r
+ specifications (although RFC 1122 comes pretty close) and will only be \r
+ discussed in general in this specification. The timeout values that are \r
+ used in the EFI Sample Implementation should be used only as a guideline. \r
+ Final product implementations of the EFI network stack should be tuned for \r
+ their expected network environments.\r
+ \r
@param This Pointer to the EFI_ARP_PROTOCOL instance.\r
@param DenyFlag Set to TRUE if this entry is a deny entry. Set to\r
FALSE if this entry is a normal entry.\r
/**\r
This function searches the ARP cache for matching entries and allocates a buffer into\r
which those entries are copied.\r
-\r
+ \r
+ The first part of the allocated buffer is EFI_ARP_FIND_DATA, following which \r
+ are protocol address pairs and hardware address pairs.\r
+ When finding a specific protocol address (BySwAddress is TRUE and AddressBuffer \r
+ is not NULL), the ARP cache timeout for the found entry is reset if Refresh is \r
+ set to TRUE. If the found ARP cache entry is a permanent entry, it is not \r
+ affected by Refresh.\r
+ \r
@param This Pointer to the EFI_ARP_PROTOCOL instance.\r
@param BySwAddress Set to TRUE to look for matching software protocol\r
addresses. Set to FALSE to look for matching\r
/**\r
This function aborts the previous ARP request (identified by This, TargetSwAddress\r
and ResolvedEvent) that is issued by EFI_ARP_PROTOCOL.Request().\r
-\r
+ \r
+ If the request is in the internal ARP request queue, the request is aborted \r
+ immediately and its ResolvedEvent is signaled. Only an asynchronous address \r
+ request needs to be canceled. If TargeSwAddress and ResolveEvent are both \r
+ NULL, all the pending asynchronous requests that have been issued by This \r
+ instance will be cancelled and their corresponding events will be signaled.\r
+ \r
@param This Pointer to the EFI_ARP_PROTOCOL instance.\r
@param TargetSwAddress Pointer to the protocol address in previous\r
request session.\r