@@ -410,8 +410,8 @@ func checksumValid(pkt []byte, iphLen, proto uint8, isV6 bool) bool {
410
410
addrSize = 16
411
411
}
412
412
lenForPseudo := uint16 (len (pkt ) - int (iphLen ))
413
- cSum := pseudoHeaderChecksum (proto , pkt [srcAddrAt :srcAddrAt + addrSize ], pkt [srcAddrAt + addrSize :srcAddrAt + addrSize * 2 ], lenForPseudo )
414
- return ^ checksum (pkt [iphLen :], cSum ) == 0
413
+ cSum := PseudoHeaderChecksum (proto , pkt [srcAddrAt :srcAddrAt + addrSize ], pkt [srcAddrAt + addrSize :srcAddrAt + addrSize * 2 ], lenForPseudo )
414
+ return ^ Checksum (pkt [iphLen :], cSum ) == 0
415
415
}
416
416
417
417
// coalesceResult represents the result of attempting to coalesce two TCP
@@ -659,7 +659,7 @@ func applyTCPCoalesceAccounting(bufs [][]byte, offset int, table *tcpGROTable) e
659
659
hdr .gsoType = unix .VIRTIO_NET_HDR_GSO_TCPV4
660
660
pkt [10 ], pkt [11 ] = 0 , 0
661
661
binary .BigEndian .PutUint16 (pkt [2 :], uint16 (len (pkt ))) // set new total length
662
- iphCSum := ^ checksum (pkt [:item .iphLen ], 0 ) // compute IPv4 header checksum
662
+ iphCSum := ^ Checksum (pkt [:item .iphLen ], 0 ) // compute IPv4 header checksum
663
663
binary .BigEndian .PutUint16 (pkt [10 :], iphCSum ) // set IPv4 header checksum field
664
664
}
665
665
err := hdr .encode (bufs [item .bufsIndex ][offset - virtioNetHdrLen :])
@@ -679,8 +679,8 @@ func applyTCPCoalesceAccounting(bufs [][]byte, offset int, table *tcpGROTable) e
679
679
srcAddrAt := offset + addrOffset
680
680
srcAddr := bufs [item .bufsIndex ][srcAddrAt : srcAddrAt + addrLen ]
681
681
dstAddr := bufs [item .bufsIndex ][srcAddrAt + addrLen : srcAddrAt + addrLen * 2 ]
682
- psum := pseudoHeaderChecksum (unix .IPPROTO_TCP , srcAddr , dstAddr , uint16 (len (pkt )- int (item .iphLen )))
683
- binary .BigEndian .PutUint16 (pkt [hdr .csumStart + hdr .csumOffset :], checksum ([]byte {}, psum ))
682
+ psum := PseudoHeaderChecksum (unix .IPPROTO_TCP , srcAddr , dstAddr , uint16 (len (pkt )- int (item .iphLen )))
683
+ binary .BigEndian .PutUint16 (pkt [hdr .csumStart + hdr .csumOffset :], Checksum ([]byte {}, psum ))
684
684
} else {
685
685
hdr := virtioNetHdr {}
686
686
err := hdr .encode (bufs [item .bufsIndex ][offset - virtioNetHdrLen :])
@@ -716,7 +716,7 @@ func applyUDPCoalesceAccounting(bufs [][]byte, offset int, table *udpGROTable) e
716
716
} else {
717
717
pkt [10 ], pkt [11 ] = 0 , 0
718
718
binary .BigEndian .PutUint16 (pkt [2 :], uint16 (len (pkt ))) // set new total length
719
- iphCSum := ^ checksum (pkt [:item .iphLen ], 0 ) // compute IPv4 header checksum
719
+ iphCSum := ^ Checksum (pkt [:item .iphLen ], 0 ) // compute IPv4 header checksum
720
720
binary .BigEndian .PutUint16 (pkt [10 :], iphCSum ) // set IPv4 header checksum field
721
721
}
722
722
err := hdr .encode (bufs [item .bufsIndex ][offset - virtioNetHdrLen :])
@@ -739,8 +739,8 @@ func applyUDPCoalesceAccounting(bufs [][]byte, offset int, table *udpGROTable) e
739
739
srcAddrAt := offset + addrOffset
740
740
srcAddr := bufs [item .bufsIndex ][srcAddrAt : srcAddrAt + addrLen ]
741
741
dstAddr := bufs [item .bufsIndex ][srcAddrAt + addrLen : srcAddrAt + addrLen * 2 ]
742
- psum := pseudoHeaderChecksum (unix .IPPROTO_UDP , srcAddr , dstAddr , uint16 (len (pkt )- int (item .iphLen )))
743
- binary .BigEndian .PutUint16 (pkt [hdr .csumStart + hdr .csumOffset :], checksum ([]byte {}, psum ))
742
+ psum := PseudoHeaderChecksum (unix .IPPROTO_UDP , srcAddr , dstAddr , uint16 (len (pkt )- int (item .iphLen )))
743
+ binary .BigEndian .PutUint16 (pkt [hdr .csumStart + hdr .csumOffset :], Checksum ([]byte {}, psum ))
744
744
} else {
745
745
hdr := virtioNetHdr {}
746
746
err := hdr .encode (bufs [item .bufsIndex ][offset - virtioNetHdrLen :])
0 commit comments