|
@@ -536,7 +536,8 @@ int sctp_packet_transmit(struct sctp_packet *packet)
|
|
* by CRC32-C as described in <draft-ietf-tsvwg-sctpcsum-02.txt>.
|
|
* by CRC32-C as described in <draft-ietf-tsvwg-sctpcsum-02.txt>.
|
|
*/
|
|
*/
|
|
if (!sctp_checksum_disable) {
|
|
if (!sctp_checksum_disable) {
|
|
- if (!(dst->dev->features & NETIF_F_SCTP_CSUM)) {
|
|
|
|
|
|
+ if (!(dst->dev->features & NETIF_F_SCTP_CSUM) ||
|
|
|
|
+ (dst_xfrm(dst) != NULL) || packet->ipfragok) {
|
|
__u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
|
|
__u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
|
|
|
|
|
|
/* 3) Put the resultant value into the checksum field in the
|
|
/* 3) Put the resultant value into the checksum field in the
|