diff options
author | 2016-09-29 13:59:46 +0300 | |
---|---|---|
committer | 2016-09-29 16:50:29 +0300 | |
commit | 4f91be3fe9e751b8f264efe989f367976f3349ad (patch) | |
tree | f295eab6694730061fafd75e101ce4c2a41ae89c /src/common | |
parent | 2c57dd9251934cc41852152fd5f3e809ec785a28 (diff) |
Add FE Instruction to fix TCP/UDP Payload checksum using hardware offload engine
Diffstat (limited to 'src/common')
-rwxr-xr-x | src/common/Network/Packet/IPHeader.h | 9 | ||||
-rwxr-xr-x | src/common/Network/Packet/TcpHeader.h | 4 | ||||
-rwxr-xr-x | src/common/Network/Packet/UdpHeader.h | 7 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/common/Network/Packet/IPHeader.h b/src/common/Network/Packet/IPHeader.h index dd9f5096..da9ba52c 100755 --- a/src/common/Network/Packet/IPHeader.h +++ b/src/common/Network/Packet/IPHeader.h @@ -142,6 +142,15 @@ public: inline void updateCheckSum (); inline void updateCheckSum2(uint8_t* data1, uint16_t len1, uint8_t* data2 , uint16_t len2); + inline void ClearCheckSum(){ + myChecksum=0; + } + inline void SetCheckSumRaw(uint16_t Checksum){ + + myChecksum = Checksum; + } + + inline void swapSrcDest (); diff --git a/src/common/Network/Packet/TcpHeader.h b/src/common/Network/Packet/TcpHeader.h index 97575a60..38732998 100755 --- a/src/common/Network/Packet/TcpHeader.h +++ b/src/common/Network/Packet/TcpHeader.h @@ -92,6 +92,10 @@ public: void setChecksum (uint16_t); uint16_t getChecksum (); + inline void setChecksumRaw (uint16_t data){ + myChecksum = data; + } + void setUrgentOffset (uint16_t); uint16_t getUrgentOffset (); diff --git a/src/common/Network/Packet/UdpHeader.h b/src/common/Network/Packet/UdpHeader.h index 43d08fe1..67942a1c 100755 --- a/src/common/Network/Packet/UdpHeader.h +++ b/src/common/Network/Packet/UdpHeader.h @@ -20,6 +20,8 @@ limitations under the License. #include "PacketHeaderBase.h" #include "IPHeader.h" +#define UDP_HEADER_LEN 8 + class UDPHeader { @@ -56,6 +58,11 @@ public: inline bool isCheckSumOk(IPHeader *ipHeader); inline uint16_t calcCheckSum(IPHeader *ipHeader); + inline void setChecksumRaw (uint16_t data){ + myChecksum = data; + } + + inline void swapSrcDest(); //////////////////////////////////////////////////////////////////////////////////////// |