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 9C33442363; Thu, 12 Oct 2023 18:49:43 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1BCDD402E1; Thu, 12 Oct 2023 18:49:43 +0200 (CEST) Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by mails.dpdk.org (Postfix) with ESMTP id 57ADD4029F for ; Thu, 12 Oct 2023 18:49:41 +0200 (CEST) Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-69101022969so1064657b3a.3 for ; Thu, 12 Oct 2023 09:49:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1697129380; x=1697734180; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=Z66ci/OrFIea5mEY4rYg0hU1X/vch2Xi6CmPkdLLvGI=; b=tKBTQiEG5cQoOSNTukQFU1s0uadz7G65EirUzpHdor8x3tKGxWEZH5Tzpf8NNYrI4/ cyyfxH6IlTkt11RhLEpcTGIPgbX+eav3gINBTEMg8wetMm+6qlYcb0P31PGtKA05MNmW F+XLd94gUzfVpOPGv10XYmYxDSRQDLDFSrBgo8fuGQaN2mBT4PnrH/f56zQDedwSHq5s HqOoGDQpnCjtqniJKFsT67LQLSjj+vyF0MKSMvl+IaCf+fQBvIokL/UkD+DXv9m7CafD Z2dnkBOmlQ0BcGRJgbZHiY7KkhYlohiOArXAPHqScEmsceWOu+6BeSqMkSrCHDRQBS6T Y7AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697129380; x=1697734180; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Z66ci/OrFIea5mEY4rYg0hU1X/vch2Xi6CmPkdLLvGI=; b=iRp3nfaQVoqpQtrdsvO/4Ta0hV9VvEKX8j9w7jtED7LWxVGamqkvc3jB+Xb2XeddHV Bn4wPbILk2RasldUvFiepyhWoe3yFE+DGyxXgTbRKy3UhKUIZpwy3GyxFpLunj3yJvzq obxTSUErRapuOepsuD+fNZYUzItBmnwIyX4PdAN8nDRe2dlBeUscmp0PMB2Y9+mpIihI aFlKDJ/vUHPqQ6tcYr9gDtFMGZ/3qwzh15s6b7Z1mGPqzSJ0g3YWCueYkTu1rUvikcQB 28wAWQ9riMa56OScygLGfjcqZfNi3zZxJwONVUt1qyuBa4rNigPY0qDDn+WroMJPbiFS lVCQ== X-Gm-Message-State: AOJu0YxK4/03WBM4r5BjfUHHjWrT4pxfmAGvUZcnSKkoohoztRBU+hyw m9cPOOQ6a0axD4pa7lyRuy+FIQ== X-Google-Smtp-Source: AGHT+IH9GfBMcJDzclLpzYUeCXlIsr7gc1GyckdZ6XAxB8Yeogwk2u3p6qJIJ27nG5VOzd3YezFnDg== X-Received: by 2002:a05:6a00:b84:b0:68c:49e4:bd71 with SMTP id g4-20020a056a000b8400b0068c49e4bd71mr28163258pfj.34.1697129380307; Thu, 12 Oct 2023 09:49:40 -0700 (PDT) Received: from hermes.local (204-195-126-68.wavecable.com. [204.195.126.68]) by smtp.gmail.com with ESMTPSA id u22-20020a62ed16000000b00690fe1c928csm12283207pfh.147.2023.10.12.09.49.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Oct 2023 09:49:40 -0700 (PDT) Date: Thu, 12 Oct 2023 09:49:38 -0700 From: Stephen Hemminger To: Jie Hai Cc: , , , Subject: Re: [PATCH v5 00/40] support setting and querying RSS algorithms Message-ID: <20231012094938.730182a2@hermes.local> In-Reply-To: <20231011092805.693171-1-haijie1@huawei.com> References: <20230908080030.3837515-1-haijie1@huawei.com> <20231011092805.693171-1-haijie1@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit 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 On Wed, 11 Oct 2023 17:27:25 +0800 Jie Hai wrote: > This patchset is to support setting and querying RSS algorithms. > > -- > v5: > 1. rewrite some comments. > 2. check RSS algorithm for drivers supporting RSS. > 3. change field "func" of rss_conf to "algorithm". > 4. fix commit log for [PATCH v4 4/7]. > 5. add Acked-by Reshma Pattan. > 6. add symmetric_toeplitz_sort for showing. > 7. change "hf" to "hash function" for showing. > > v4: > 1. recomment some definitions related to RSS. > 2. allocate static memory for rss_key instead of dynamic. > 3. use array of strings to get the name of rss algorithm. > 4. add display of rss algorithm with testpmd. > > v3: > 1. fix commit log for PATCH [1/5]. > 2. make RSS ABI changes description to start the actual text at the margin. > 3. move defnition of enum rte_eth_hash_function to rte_ethdev.h. > 4. fix some comment codes. > > v2: > 1. return error if "func" is invalid. > 2. modify the comments of the "func" field. > 3. modify commit log of patch [3/5]. > 4. use malloc instead of rte_malloc. > 5. adjust display format of RSS info. > 6. remove the string display of rss_hf. > > Huisong Li (1): > net/hns3: support setting and querying RSS hash function > > Jie Hai (39): > ethdev: overwrite some comment related to RSS > ethdev: support setting and querying RSS algorithm > net/atlantic: check RSS hash algorithms > net/axgbe: check RSS hash algorithms > net/bnx2x: check RSS hash algorithms > net/bnxt: check RSS hash algorithms > net/bonding: check RSS hash algorithms > net/cnxk: check RSS hash algorithms > net/cpfl: check RSS hash algorithms > net/cxgbe: check RSS hash algorithms > net/dpaa: check RSS hash algorithms > net/dpaa2: check RSS hash algorithms > net/ena: check RSS hash algorithms > net/enic: check RSS hash algorithms > net/fm10k: check RSS hash algorithms > net/hinic: check RSS hash algorithms > net/i40e: check RSS hash algorithms > net/iavf: check RSS hash algorithms > net/ice: check RSS hash algorithms > net/idpf: check RSS hash algorithms > net/igc: check RSS hash algorithms > net/ionic: check RSS hash algorithms > net/ixgbe: check RSS hash algorithms > net/mana: check RSS hash algorithms > net/mlx5: check RSS hash algorithms > net/mvpp2: check RSS hash algorithms > net/netvsc: check RSS hash algorithms > net/ngbe: : check RSS hash algorithms > net/nfp: check RSS hash algorithms > net/null: check RSS hash algorithms > net/qede: check RSS hash algorithms > net/sfc: check RSS hash algorithms > net/tap: check RSS hash algorithms > net/thunderx: check RSS hash algorithms > net/txgbe: check RSS hash algorithms > app/proc-info: fix never show RSS info > app/proc-info: adjust the display format of RSS info > app/proc-info: support querying RSS hash algorithm > app/testpmd: add RSS hash algorithms display > > app/proc-info/main.c | 32 ++++++++++----- > app/test-pmd/cmdline.c | 29 ++++++++++--- > app/test-pmd/config.c | 38 ++++++++--------- > app/test-pmd/testpmd.h | 2 +- > doc/guides/rel_notes/release_23_11.rst | 2 + > drivers/net/atlantic/atl_ethdev.c | 2 + > drivers/net/axgbe/axgbe_ethdev.c | 9 +++++ > drivers/net/bnx2x/bnx2x_ethdev.c | 4 ++ > drivers/net/bnxt/bnxt_ethdev.c | 6 +++ > drivers/net/bonding/rte_eth_bond_pmd.c | 6 +++ > drivers/net/cnxk/cnxk_ethdev.c | 5 +++ > drivers/net/cnxk/cnxk_ethdev_ops.c | 3 ++ > drivers/net/cpfl/cpfl_ethdev.c | 6 +++ > drivers/net/cxgbe/cxgbe_ethdev.c | 9 ++++- > drivers/net/dpaa/dpaa_ethdev.c | 7 ++++ > drivers/net/dpaa2/dpaa2_ethdev.c | 7 ++++ > drivers/net/ena/ena_rss.c | 3 ++ > drivers/net/enic/enic_ethdev.c | 1 + > drivers/net/enic/enic_main.c | 3 ++ > drivers/net/fm10k/fm10k_ethdev.c | 9 ++++- > drivers/net/hinic/hinic_pmd_ethdev.c | 3 ++ > drivers/net/hinic/hinic_pmd_rx.c | 3 ++ > drivers/net/hns3/hns3_rss.c | 47 ++++++++++++--------- > drivers/net/i40e/i40e_ethdev.c | 7 ++++ > drivers/net/iavf/iavf_ethdev.c | 6 +++ > drivers/net/ice/ice_dcf.c | 3 ++ > drivers/net/ice/ice_dcf_ethdev.c | 3 ++ > drivers/net/ice/ice_ethdev.c | 7 ++++ > drivers/net/idpf/idpf_ethdev.c | 6 +++ > drivers/net/igc/igc_ethdev.c | 4 ++ > drivers/net/igc/igc_txrx.c | 5 +++ > drivers/net/ionic/ionic_ethdev.c | 6 +++ > drivers/net/ixgbe/ixgbe_ethdev.c | 12 +++++- > drivers/net/ixgbe/ixgbe_rxtx.c | 4 ++ > drivers/net/mana/mana.c | 11 ++++- > drivers/net/mlx5/mlx5_ethdev.c | 4 ++ > drivers/net/mlx5/mlx5_rss.c | 3 +- > drivers/net/mvpp2/mrvl_ethdev.c | 3 ++ > drivers/net/netvsc/hn_ethdev.c | 6 +++ > drivers/net/nfp/nfp_common.c | 9 ++++- > drivers/net/ngbe/ngbe_ethdev.c | 6 ++- > drivers/net/ngbe/ngbe_rxtx.c | 3 ++ > drivers/net/null/rte_eth_null.c | 8 ++++ > drivers/net/qede/qede_ethdev.c | 9 ++++- > drivers/net/sfc/sfc_ethdev.c | 3 ++ > drivers/net/sfc/sfc_rx.c | 3 ++ > drivers/net/tap/rte_eth_tap.c | 8 ++++ > drivers/net/thunderx/nicvf_ethdev.c | 10 ++++- > drivers/net/txgbe/txgbe_ethdev.c | 7 +++- > drivers/net/txgbe/txgbe_ethdev_vf.c | 7 +++- > drivers/net/txgbe/txgbe_rxtx.c | 3 ++ > lib/ethdev/rte_ethdev.c | 17 ++++++++ > lib/ethdev/rte_ethdev.h | 56 +++++++++++++++++++------- > lib/ethdev/rte_flow.c | 1 - > lib/ethdev/rte_flow.h | 25 +----------- > 55 files changed, 395 insertions(+), 106 deletions(-) > In future, it would be good to report the hash algorithm in the PCAPNG output from dumpcap. The current code always reports it as Toeplitz. One issue is that the PCAPNG standard: https://www.ietf.org/staging/draft-tuexen-opsawg-pcapng-02.html#name-enhanced-packet-block Only has values for a few types: epb_hash: The epb_hash option contains a hash of the packet. The first octet specifies the hashing algorithm, while the following octets contain the actual hash, whose size depends on the hashing algorithm, and hence from the value in the first octet. The hashing algorithm can be: 2s complement (algorithm octet = 0, size = XXX), XOR (algorithm octet = 1, size=XXX), CRC32 (algorithm octet = 2, size = 4), MD-5 (algorithm octet = 3, size = 16), SHA-1 (algorithm octet = 4, size = 20), Toeplitz (algorithm octet = 5, size = 4). The hash covers only the packet, not the header added by the capture driver: this gives the possibility to calculate it inside the network card. The hash allows easier comparison/merging of different capture files, and reliable data transfer between the data acquisition system and the capture library. I added the Toeplitz one when pcapng was being managed via github. Now that it is more in IETF/RFC standard process adding new values probably would take more effort.