From nobody Tue Dec 16 13:08:54 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1611577687; cv=none; d=zohomail.com; s=zohoarc; b=TjoUj2D01unDamtqvz0pfIHgNNbZYxKhwMhwhak/jfnwNtWvWKCc6T2YZdn6Jad5HxJ4Iy1CXKPg5VihJ8Lm1B9FYXFJmQcQT3yvD09/gdzNaRk/OWfk8CnhqK/pqRWwPlc97f65951wMsORGSegtKUoFYaZ0r7mbpL1zB9WhQc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1611577687; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=u2G89Z36/wSDze7ulXLsFFw66Wxg90K6z0OfUh+k1qY=; b=UJDUTyo1qnTPWm1Ape3jXQGeK8jbVfNblS8LDVoDZBTvN5q/Hi7N8t82PfQ0ML7rDZbwc+Cdpz0w7BDYfX3XY6ugKGhPDROP0ZAAcLBiTe6cXAhPRy+fU2Z2BoFRZDH+GqHYl4XNCVGGV9y3+MzgRf5MujTdA+UnnOPRdujAcpU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1611577687636298.8357632080141; Mon, 25 Jan 2021 04:28:07 -0800 (PST) Received: from localhost ([::1]:49390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l40yU-0007Z3-J8 for importer@patchew.org; Mon, 25 Jan 2021 07:28:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52958) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l40u0-00031J-Mq for qemu-devel@nongnu.org; Mon, 25 Jan 2021 07:23:28 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:37684) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l40tt-0007tR-Ts for qemu-devel@nongnu.org; Mon, 25 Jan 2021 07:23:28 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-550-Hf2P1JsPPLGNPWl_f-kxCg-1; Mon, 25 Jan 2021 07:23:17 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C17B5100558A; Mon, 25 Jan 2021 12:23:15 +0000 (UTC) Received: from jason-ThinkPad-T430s.redhat.com (ovpn-12-126.pek2.redhat.com [10.72.12.126]) by smtp.corp.redhat.com (Postfix) with ESMTP id D2C6419C44; Mon, 25 Jan 2021 12:23:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1611577401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=u2G89Z36/wSDze7ulXLsFFw66Wxg90K6z0OfUh+k1qY=; b=SopUM0Tyz+1ehRqy0na6vvllVnAnwF4DcQdLJ2CT6bxYuVrqg+pjwVje3MIz+8qPA+JcaW QQAouyNN0aPsap8oh7r4droiFsOsZsbgUcJjrNYUGprCJHN7qHCDkPqr8rjTKBuNu4cqAy 5mb4d+0WlfPkXG3RKY1IXTb9/E9fKLI= X-MC-Unique: Hf2P1JsPPLGNPWl_f-kxCg-1 From: Jason Wang To: qemu-devel@nongnu.org, peter.maydell@linaro.org Subject: [RESEND PULL 2/4] net: checksum: Skip fragmented IP packets Date: Mon, 25 Jan 2021 20:23:05 +0800 Message-Id: <1611577387-4296-3-git-send-email-jasowang@redhat.com> In-Reply-To: <1611577387-4296-1-git-send-email-jasowang@redhat.com> References: <1611577387-4296-1-git-send-email-jasowang@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=jasowang@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.255, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jason Wang , Bin Meng , Markus Carlstedt Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Markus Carlstedt To calculate the TCP/UDP checksum we need the whole datagram. Unless the hardware has some logic to collect all fragments before sending the whole datagram first, it can only be done by the network stack, which is normally the case for the NICs we have seen so far. Skip these fragmented IP packets to avoid checksum corruption. Signed-off-by: Markus Carlstedt Signed-off-by: Bin Meng Signed-off-by: Jason Wang --- net/checksum.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/checksum.c b/net/checksum.c index aaa4000..5cb8b2c 100644 --- a/net/checksum.c +++ b/net/checksum.c @@ -106,6 +106,10 @@ void net_checksum_calculate(uint8_t *data, int length) return; /* not IPv4 */ } =20 + if (IP4_IS_FRAGMENT(ip)) { + return; /* a fragmented IP packet */ + } + ip_len =3D lduw_be_p(&ip->ip_len); =20 /* Last, check that we have enough data for the all IP frame */ --=20 2.7.4