[Change summary]:

1. Update NetLib to a combined NetLib support dual network stack:
1) Add Network Debug facility for IPv4 stack.
2) Extend the library APIs to support IPv6 stack:
   a. NetIp6IsUnspecifiedAddr
   b. NetIp6IsLinkLocalAddr   
   c. NetIp6IsNetEqual
   d. NetLibCreateIPv6DPathNode.
   e. NetIp6PseudoHeadChecksum
   f. NetIp6IsValidUnicast
3) Update the structure definitions:
   a. Update NET_BUF to add EFI_IP6_HEADER and EFI_UDP_HEADER
   b. Add NET_IP6_PSEUDO_HDR
4) Update Ip4IsUnicast to NetIp4IsUnicast

2. Update the impacted modules to adopt the combined NetLib.

3. Clean up coding style errors in all network drivers and libraries.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9391 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
tye
2009-11-04 08:18:34 +00:00
parent 7be273b7f5
commit f6b7393ceb
54 changed files with 1603 additions and 809 deletions

View File

@ -1803,3 +1803,41 @@ NetPseudoHeadChecksum (
return NetblockChecksum ((UINT8 *) &Hdr, sizeof (Hdr));
}
/**
Compute the checksum for TCP6/UDP6 pseudo header.
Src and Dst are in network byte order, and Len is in host byte order.
@param[in] Src The source address of the packet.
@param[in] Dst The destination address of the packet.
@param[in] NextHeader The protocol type of the packet.
@param[in] Len The length of the packet.
@return The computed checksum.
**/
UINT16
NetIp6PseudoHeadChecksum (
IN EFI_IPv6_ADDRESS *Src,
IN EFI_IPv6_ADDRESS *Dst,
IN UINT8 NextHeader,
IN UINT32 Len
)
{
NET_IP6_PSEUDO_HDR Hdr;
//
// Zero the memory to relieve align problems
//
ZeroMem (&Hdr, sizeof (Hdr));
IP6_COPY_ADDRESS (&Hdr.SrcIp, Src);
IP6_COPY_ADDRESS (&Hdr.DstIp, Dst);
Hdr.NextHeader = NextHeader;
Hdr.Len = HTONL (Len);
return NetblockChecksum ((UINT8 *) &Hdr, sizeof (Hdr));
}