From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5B03AA0521; Tue, 3 Nov 2020 15:11:18 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D3E69CB01; Tue, 3 Nov 2020 15:09:54 +0100 (CET) Received: from wnew1-smtp.messagingengine.com (wnew1-smtp.messagingengine.com [64.147.123.26]) by dpdk.org (Postfix) with ESMTP id 2B994CADB for ; Tue, 3 Nov 2020 15:09:52 +0100 (CET) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailnew.west.internal (Postfix) with ESMTP id 678838E1; Tue, 3 Nov 2020 09:09:50 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Tue, 03 Nov 2020 09:09:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=vdA6ovYm1n+Yx fdg/EKTDdjJWOR3/R6hlj+s41cUV/A=; b=KGaEW2/7PqaGmI0dQIJIn1rXg4eOn RafdW2rrSo/6XgFV6bNEb2FSSGEk11qwC5ujagw7bUv1Iakpn17439GIKEvOorou VvK/ZG174q61nzh0vGuk/T+JPk27ixta/pvM2NsvuoKk3oKcMgTJ8TOpMYUN6kul Stb28pSU8+NvOiO/kc1kDC4KsO2AMkMYnT/ZXmXvdQn92HpDbMNKEjdXss2rpvRg AGvYnb+JfB/3AjQiNQ0sFzixlZkOnnR2+Vinon7p0zmpjQAcFah7NtVgUXff2Opv ajGgQ/FgQiyG7haUY71lwd2LOrENiTSFRYUuioZVLyb2JR3YP7Y+oY+JA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=vdA6ovYm1n+Yxfdg/EKTDdjJWOR3/R6hlj+s41cUV/A=; b=i37rKdR4 hSDfSskiaA0dWHTl6ZTnonCNSpPYHcPgLaBL9RwjDkUQV6PhCwewGQec5cKH2z07 8EP8M6YX8OPADdDLZuh3jcThKDvWbtwYN3Dm4hbhWrTCdKL7Jp7lPMLx4/ZjXgWk L9g6FbGOxwbSh60nCNn9AUftayiV2FwjsIapAwTREgY8Ls72viKMYSBcdooARZFZ 4nAOBHbTY0RpA0/kV0JoBl6be+r1qG5jtZ5BOsDi1zRrSKuxFktfN66PKg4eTftR q/2aW4r9BBSgu4xq+R25fzgQ6DXNqUvEauY0i6/YMAvKME5EqszFP3V4Ragg09Gl WIOlek3eC7yRBw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedruddtfedgheekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecugg ftrfgrthhtvghrnhepvdehgfeivdejgedtveehfefhteelfefgieevgfffveefjeegtdfg uedthedtgeevnecukfhppeejjedrudefgedrvddtfedrudekgeenucevlhhushhtvghruf hiiigvpedvnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghl ohhnrdhnvght X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 9CCCE3280064; Tue, 3 Nov 2020 09:09:48 -0500 (EST) From: Thomas Monjalon To: dev@dpdk.org Cc: ferruh.yigit@intel.com, david.marchand@redhat.com, bruce.richardson@intel.com, olivier.matz@6wind.com, andrew.rybchenko@oktetlabs.ru, jerinj@marvell.com, viacheslavo@nvidia.com, Shepard Siegel , Ed Czeck , John Miller Date: Tue, 3 Nov 2020 15:09:19 +0100 Message-Id: <20201103140931.488700-5-thomas@monjalon.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201103140931.488700-1-thomas@monjalon.net> References: <20201029092751.3837177-1-thomas@monjalon.net> <20201103140931.488700-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v5 04/16] net/ark: switch Rx timestamp to dynamic mbuf field X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" The mbuf timestamp is moved to a dynamic field in order to allow removal of the deprecated static field. The related dynamic mbuf flag is set, although was missing previously. The timestamp is set if configured for at least one device. Signed-off-by: Thomas Monjalon Acked-by: David Marchand --- drivers/net/ark/ark_ethdev.c | 17 +++++++++++++++++ drivers/net/ark/ark_ethdev_rx.c | 7 ++++++- drivers/net/ark/ark_ethdev_rx.h | 2 ++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c index fa343999a1..a658993512 100644 --- a/drivers/net/ark/ark_ethdev.c +++ b/drivers/net/ark/ark_ethdev.c @@ -79,6 +79,9 @@ static int eth_ark_set_mtu(struct rte_eth_dev *dev, uint16_t size); #define ARK_TX_MAX_QUEUE (4096 * 4) #define ARK_TX_MIN_QUEUE (256) +uint64_t ark_timestamp_rx_dynflag; +int ark_timestamp_dynfield_offset = -1; + int rte_pmd_ark_rx_userdata_dynfield_offset = -1; int rte_pmd_ark_tx_userdata_dynfield_offset = -1; @@ -552,6 +555,18 @@ static int eth_ark_dev_configure(struct rte_eth_dev *dev) { struct ark_adapter *ark = dev->data->dev_private; + int ret; + + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_TIMESTAMP) { + ret = rte_mbuf_dyn_rx_timestamp_register( + &ark_timestamp_dynfield_offset, + &ark_timestamp_rx_dynflag); + if (ret != 0) { + ARK_PMD_LOG(ERR, + "Failed to register Rx timestamp field/flag\n"); + return -rte_errno; + } + } eth_ark_dev_set_link_up(dev); if (ark->user_ext.dev_configure) @@ -782,6 +797,8 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev, ETH_LINK_SPEED_50G | ETH_LINK_SPEED_100G); + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_TIMESTAMP; + return 0; } diff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c index c24cc00e2f..d29d3db783 100644 --- a/drivers/net/ark/ark_ethdev_rx.c +++ b/drivers/net/ark/ark_ethdev_rx.c @@ -272,7 +272,12 @@ eth_ark_recv_pkts(void *rx_queue, mbuf->port = meta->port; mbuf->pkt_len = meta->pkt_len; mbuf->data_len = meta->pkt_len; - mbuf->timestamp = meta->timestamp; + /* set timestamp if enabled at least on one device */ + if (ark_timestamp_rx_dynflag > 0) { + *RTE_MBUF_DYNFIELD(mbuf, ark_timestamp_dynfield_offset, + rte_mbuf_timestamp_t *) = meta->timestamp; + mbuf->ol_flags |= ark_timestamp_rx_dynflag; + } rte_pmd_ark_mbuf_rx_userdata_set(mbuf, meta->user_data); if (ARK_DEBUG_CORE) { /* debug sanity checks */ diff --git a/drivers/net/ark/ark_ethdev_rx.h b/drivers/net/ark/ark_ethdev_rx.h index 0fdd29b1ab..001fa9bdfa 100644 --- a/drivers/net/ark/ark_ethdev_rx.h +++ b/drivers/net/ark/ark_ethdev_rx.h @@ -11,6 +11,8 @@ #include #include +extern uint64_t ark_timestamp_rx_dynflag; +extern int ark_timestamp_dynfield_offset; int eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, -- 2.28.0