From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9B686A0567; Tue, 9 Mar 2021 10:01:47 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2403C22A443; Tue, 9 Mar 2021 10:01:47 +0100 (CET) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id C7BCA4069D for ; Tue, 9 Mar 2021 10:01:45 +0100 (CET) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 6ED227F50E; Tue, 9 Mar 2021 12:01:45 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 6ED227F50E DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1615280505; bh=WX85b4Po+mzxwjBxRCPAytAepjmcFyHzZctwMdEZ8zE=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=ng5WbaN+JYPay5BdMk3BOfKwFYgJAJGP86JKUhTs1pIUvcrkV/oeQkCxqZ7gmzX9n V2xRKAvSHzu3q7mfPEwqk3R1hd+zlwci88r+648DLzlpyi4ELTGKHnxQAmUY8OrGsO WO4mNzOPL5UEpiyAS46YwC3uapv8PHpjBb8XrWo8= To: Ori Kam , viacheslavo@nvidia.com, ferruh.yigit@intel.com, thomas@monjalon.net Cc: dev@dpdk.org References: <1614541699-99345-1-git-send-email-orika@nvidia.com> From: Andrew Rybchenko Organization: OKTET Labs Message-ID: <9e1388ac-27f7-aa1b-19e8-6acb6dfc3498@oktetlabs.ru> Date: Tue, 9 Mar 2021 12:01:45 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <1614541699-99345-1-git-send-email-orika@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: Re: [dpdk-dev] [RFC] ethdev: add sanity packet checks 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 2/28/21 10:48 PM, Ori Kam wrote: > Currently, DPDK application can offload the checksum check, > and report it in the mbuf. > > However, this approach doesn't work if the traffic > is offloaded and should not arrive to the application. > > This commit introduces rte flow item that enables > matching on the checksum of the L3 and L4 layers, > in addition to other checks that can determine if > the packet is valid. > some of those tests can be packet len, data len, > unsupported flags, and so on. > > The full check is HW dependent. > > Signed-off-by: Ori Kam In general, I strongly dislike the approach. If such checks are required, it must be done per item basis. I.e. we should add non-header boolean flags to IPv4, TCP, UDP etc items. E.g. struct rte_flow_item_ipv4 {         struct rte_ipv4_hdr hdr; /**< IPv4 header definition. */         bool hdr_checksum_valid; }; Also it will allow to filter by packets with invalid checksum as well and redirect to dedicated Rx path or drop and/or count etc.