diff options
author | qouyang <qouyang@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-11-17 07:57:02 +0000 |
---|---|---|
committer | qouyang <qouyang@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-11-17 07:57:02 +0000 |
commit | a09ee46d9a258ef08a931c0d412c62c98dbdb8aa (patch) | |
tree | 8b9959d9660777df1906095eb59591bc5ab7b9ac /MdeModulePkg | |
parent | 169fa210310f7d518c1c432fe7acdc4e47c207ec (diff) | |
download | edk2-platforms-a09ee46d9a258ef08a931c0d412c62c98dbdb8aa.tar.xz |
Updated the IpIoLiband and the change includes:
1) Add one structure member – IpHdrLen in the EFI_NET_SESSION_DATA data structure.
2) Pass IP header length to upper-layer through this new member. The length of IP header will be used for ICMP6 packet generation in upper-layer.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9437 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg')
-rw-r--r-- | MdeModulePkg/Include/Library/IpIoLib.h | 5 | ||||
-rw-r--r-- | MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/MdeModulePkg/Include/Library/IpIoLib.h b/MdeModulePkg/Include/Library/IpIoLib.h index e079fe1f79..000e815809 100644 --- a/MdeModulePkg/Include/Library/IpIoLib.h +++ b/MdeModulePkg/Include/Library/IpIoLib.h @@ -160,6 +160,11 @@ typedef struct _EFI_NET_SESSION_DATA { EFI_IP_ADDRESS Source; ///< Source IP of the received packet
EFI_IP_ADDRESS Dest; ///< Destination IP of the received packet
IP_IO_IP_HEADER IpHdr; ///< IP header of the received packet
+ UINT32 IpHdrLen; ///< IP header length of the received packet.
+ ///< For IPv6, it includes the IP6 header
+ ///< length and extension header length. For
+ ///< IPv4, it includes the IP4 header length
+ ///< and options length.
UINT8 IpVersion; ///< The IP version of the received packet
} EFI_NET_SESSION_DATA;
diff --git a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c index c94a79c4dc..4df49a5e7b 100644 --- a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c +++ b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c @@ -1057,6 +1057,7 @@ IpIoListenHandlerDpc ( Session.Source.Addr[0] = EFI_IP4 (RxData->Ip4RxData.Header->SourceAddress);
Session.Dest.Addr[0] = EFI_IP4 (RxData->Ip4RxData.Header->DestinationAddress);
Session.IpHdr.Ip4Hdr = RxData->Ip4RxData.Header;
+ Session.IpHdrLen = RxData->Ip4RxData.HeaderLength;
Session.IpVersion = IP_VERSION_4;
} else {
@@ -1093,6 +1094,7 @@ IpIoListenHandlerDpc ( sizeof(EFI_IPv6_ADDRESS)
);
Session.IpHdr.Ip6Hdr = RxData->Ip6RxData.Header;
+ Session.IpHdrLen = RxData->Ip6RxData.HeaderLength;
Session.IpVersion = IP_VERSION_6;
}
|