From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id ACF8AEF36F8 for ; Mon, 9 Mar 2026 07:47:52 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CC645402E2; Mon, 9 Mar 2026 08:47:45 +0100 (CET) Received: from 2.mo15.mail-out.ovh.net (2.mo15.mail-out.ovh.net [5.135.90.179]) by mails.dpdk.org (Postfix) with ESMTP id A99B0402D3; Fri, 6 Mar 2026 10:20:35 +0100 (CET) Received: from DAGFR7EX1.OVH.local (unknown [10.110.0.38]) by mo15.mail-out.ovh.net (Postfix) with ESMTPS id 4fS18z38mWz3wnm; Fri, 6 Mar 2026 09:20:35 +0000 (UTC) Received: from laptop1704918.desk.int.gns.ovh.net (109.190.254.56) by DAGFR7EX1.OVH.local (172.16.2.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Fri, 6 Mar 2026 10:20:35 +0100 From: Xavier Guillaume To: CC: , Xavier Guillaume , Subject: [PATCH v1 1/3] net/af_packet: fix MTU set data size calculation Date: Fri, 6 Mar 2026 10:20:11 +0100 Message-ID: <20260306092013.2205076-2-xavier.guillaume@ovhcloud.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260306092013.2205076-1-xavier.guillaume@ovhcloud.com> References: <20260306092013.2205076-1-xavier.guillaume@ovhcloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [109.190.254.56] X-ClientProxiedBy: CAS1.OVH.local (172.16.1.1) To DAGFR7EX1.OVH.local (172.16.2.20) X-OVH-CORPLIMIT-SKIP: true x-ovh-tracer-id: 11268850694662336881 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: dmFkZTFh2na8x+FrMpf+EgdYNge5r9uU32ke3iCP3EMXSFIoZiTre7rOZ/BWKW9uA07tfM07psGiPYyolTGbuk4HuGhYH9Yv887NykBIT4jL52wsAZZvQ02AlBBroQRMjfgWQhIP/nqOusNmxHuYQBlcZQWzNCkECe0BGeltl1mawXW5DcfyquxN17rV4LCad1QYGlozPEdm4tHQ2fvwKCvNZMA6gWiiPJjL3dhy2M/DNpT0ELXD2CDEV0AZBRBBnjVegFp7omvHx+1G9OgU8LEwmnF1KpkSoDRUBhejmzqn/Q+df97ukiujgOuiKx2eKmZCaR2sQRKtyk0gzVjsWqZ8WVAtE+XRDDxqk7magmykrf8z+hzuPJMjfGQZwc8gE1Kn1L0ifhrJMakW9Qm97qPai+ceFZLkjZGyZTFCj6Je8DEjcn0aaFSCLh4rFhG12L8TV4c/Xl07k9aY27Wcqe5m/j0nUlp+fqZL+avKlR8hKYneOhp9NFZ8uShPux2kZxD/ftB34+nzvEPtXLCigkl6eHyQ3incc6AwUiSTHmcl8wFF5P00h+a5bo5JLaZoyrz1+EtvhFVWAyuNBicv0HiDSvLKBPBznZVjXPhdK4irz/ik48JLT5hu9odTOdSy8QYUNVOq6aLj928N6/W/aCHi9dXkZ6gtvBThxN9c8KU0AkPGhw DKIM-Signature: a=rsa-sha256; bh=fG5zSILIBKer+isDgKUubVt0gqC2KM7+Mt3hO877aUU=; c=relaxed/relaxed; d=ovhcloud.com; h=From; s=mailout; t=1772788835; v=1; b=cJS6Ux30MLOYEM1pssbBqegNoChCVE/yddSuVMNPx9LIOULizx8A78jmFHgj5d5QZblJPDym UcASbKbz0xLEgfRE90zTpS2HnybESa4hnvriOg3ognrw/cUy6tkiax8lZvW4s6OIilB0bLfZFmD FjhP9ZolLoVzExyWxGmCTJ+4= X-Mailman-Approved-At: Mon, 09 Mar 2026 08:47:43 +0100 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: xavier.guillaume@ovhcloud.com Errors-To: dev-bounces@dpdk.org The data_size in eth_dev_mtu_set() is calculated as: tp_frame_size - TPACKET2_HDRLEN Since TPACKET2_HDRLEN is defined as: TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll) it includes sizeof(struct sockaddr_ll), but the actual packet data in the TPACKET ring starts at TPACKET_ALIGN(sizeof(struct tpacket2_hdr)). The sockaddr_ll does not consume frame data space. This makes the current formula 20 bytes too restrictive, matching neither the RX queue setup nor the TX queue init path, which both correctly use: tp_frame_size - TPACKET2_HDRLEN + sizeof(struct sockaddr_ll) Fix the calculation to be consistent and accept all valid MTU values. Fixes: 8020573894a8 ("net/af_packet: fix setting MTU decrements sockaddr twice") Cc: stable@dpdk.org Signed-off-by: Xavier Guillaume --- drivers/net/af_packet/rte_eth_af_packet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index c0ba3381ea..bfa68297a6 100644 --- a/drivers/net/af_packet/rte_eth_af_packet.c +++ b/drivers/net/af_packet/rte_eth_af_packet.c @@ -612,7 +612,7 @@ eth_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) int ret; int s; unsigned int data_size = internals->req.tp_frame_size - - TPACKET2_HDRLEN; + TPACKET2_HDRLEN + sizeof(struct sockaddr_ll); if (mtu > data_size) return -EINVAL; -- 2.34.1