[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:
@ -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));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user