@@ -769,12 +769,14 @@ CxPlatFramingWriteHeaders(
769
769
IPv4 -> HeaderChecksum = 0 ;
770
770
CxPlatDpRawTxSetL3ChecksumOffload (SendData );
771
771
} else {
772
+ * ((volatile uint16_t * )(& IPv4 -> HeaderChecksum )) = 0 ;
772
773
IPv4 -> HeaderChecksum = ~CxPlatFramingChecksum ((uint8_t * )IPv4 , sizeof (IPV4_HEADER ), 0 );
773
774
}
774
775
EthType = ETHERNET_TYPE_IPV4 ;
775
776
Ethernet = (ETHERNET_HEADER * )(((uint8_t * )IPv4 ) - sizeof (ETHERNET_HEADER ));
776
777
IpHeaderLen = sizeof (IPV4_HEADER );
777
778
if (Route -> UseQTIP ) {
779
+ * ((volatile uint16_t * )(& TCP -> Checksum )) = 0 ;
778
780
TCP -> Checksum =
779
781
CxPlatFramingTransportChecksum (
780
782
IPv4 -> Source , IPv4 -> Destination ,
@@ -783,6 +785,7 @@ CxPlatFramingWriteHeaders(
783
785
(uint8_t * )TCP , sizeof (TCP_HEADER ) + Buffer -> Length ,
784
786
SkipTransportLayerXsum );
785
787
} else {
788
+ * ((volatile uint16_t * )(& UDP -> Checksum )) = 0 ;
786
789
UDP -> Checksum =
787
790
CxPlatFramingTransportChecksum (
788
791
IPv4 -> Source , IPv4 -> Destination ,
@@ -827,6 +830,7 @@ CxPlatFramingWriteHeaders(
827
830
Ethernet = (ETHERNET_HEADER * )(((uint8_t * )IPv6 ) - sizeof (ETHERNET_HEADER ));
828
831
IpHeaderLen = sizeof (IPV6_HEADER );
829
832
if (Route -> UseQTIP ) {
833
+ * ((volatile uint16_t * )(& TCP -> Checksum )) = 0 ;
830
834
TCP -> Checksum =
831
835
CxPlatFramingTransportChecksum (
832
836
IPv6 -> Source , IPv6 -> Destination ,
@@ -835,6 +839,7 @@ CxPlatFramingWriteHeaders(
835
839
(uint8_t * )TCP , sizeof (TCP_HEADER ) + Buffer -> Length ,
836
840
SkipTransportLayerXsum );
837
841
} else {
842
+ * ((volatile uint16_t * )(& UDP -> Checksum )) = 0 ;
838
843
UDP -> Checksum =
839
844
CxPlatFramingTransportChecksum (
840
845
IPv6 -> Source , IPv6 -> Destination ,
0 commit comments