summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-09-29 13:59:46 +0300
committerHanoh Haim <hhaim@cisco.com>2016-09-29 16:50:29 +0300
commit4f91be3fe9e751b8f264efe989f367976f3349ad (patch)
treef295eab6694730061fafd75e101ce4c2a41ae89c /src/common
parent2c57dd9251934cc41852152fd5f3e809ec785a28 (diff)
Add FE Instruction to fix TCP/UDP Payload checksum using hardware offload engine
Diffstat (limited to 'src/common')
-rwxr-xr-xsrc/common/Network/Packet/IPHeader.h9
-rwxr-xr-xsrc/common/Network/Packet/TcpHeader.h4
-rwxr-xr-xsrc/common/Network/Packet/UdpHeader.h7
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();
////////////////////////////////////////////////////////////////////////////////////////