From patchwork Mon Oct 2 14:01:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 29477 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 014FD1B225; Mon, 2 Oct 2017 16:01:21 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10055.outbound.protection.outlook.com [40.107.1.55]) by dpdk.org (Postfix) with ESMTP id 6BB431B21F for ; Mon, 2 Oct 2017 16:01:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Yc8q3j6GceraT0vujJAHf99WDkwR0qJp9rYhTvsxrqo=; b=oQGvqCOtqzOuyyOpyDUjZsLyrPDJyFWJoSPzIhaYRp/0wcMq+fCPNhOfsvAA2oCd+FPaJXmGLEtkZNSK0bzmCwMehZp4pc5L0Q14A3p7D7PUeSMLXRBjslBr//ilTy5qxggANzB6Fk1R2A9hicdMgC02L0y7lVxySjOxX5Rj+7g= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by VI1PR05MB1229.eurprd05.prod.outlook.com (2a01:111:e400:582e::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Mon, 2 Oct 2017 14:01:15 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: yskoh@mellanox.com, shahafs@mellanox.com Date: Mon, 2 Oct 2017 17:01:02 +0300 Message-Id: <1506952864-27839-1-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1503560793-21597-1-git-send-email-rasland@mellanox.com> References: <1503560793-21597-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR0302CA0024.eurprd03.prod.outlook.com (2603:10a6:800:e9::34) To VI1PR05MB1229.eurprd05.prod.outlook.com (2a01:111:e400:582e::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3c3c69b9-cb8d-490e-d34b-08d5099e0c80 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:VI1PR05MB1229; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 3:aoftJbH/3qS7aYt1soJN01RPO04K8FNbDtf92ocE4j2rvm0emprEFeahrIYIzzc1M7Wh0a/S65Mn1m8lRDI+g5JMODOKCezQEsIs3NqDG9cjGUGYbaAT+/VbHwfS2c7Udh8n2EA47jUTHPwRD4FOaU2PDnxnZzmm4ipl765QDl8VmHv6+NOW9NkXOW4vs77zS8FgyalaVBdACuJMvxcPIF42lMrg/LMJDJWhmPcWcppx07UxQTkbH6lKkkfM0Jrc; 25:GWJX2zDKFanCjiyd3sPlrR+FumGEi+n5mafUxF67Owcym7b550u23WDy7okN1mVPjemdIIMuLxTADAoIOq8prhYRv02LjqMn2H/VkgAM9gEfOH0i+mlc3g9v/e81912eR+kn6HmCvq3LGwfBH+lcOjpR6X72stQWBg4WK3aM/7TDiucuaARXHAp+Psto+wyaUqXRqsrmDmGS2jRhyHgaKpclkkXXiYOFHRVbVW1VhJn2TZ3i9mKRlQ8+jAh2cVuqiPtPfsWy71meAYl9hYXEP5zElvA6JgJVPUd7DUO+CufN9Fky0XXcrZW8m4BjmyBssV7GxOgCeWXJeP0l+Imtrw==; 31:9dQCUZ9rIM8fmpWrn5LjfnS0w0B0D/JeyfMBqVhvFMNNf2YFeCPo8Zd6+nTrn/FVfsaCtVjK7F0/fnXFOddeBS0oKeiyZ3y8l3PXEwqRbBuG6VOnR7oCIhKNyrCO5FzOq23efEB9itguBqrbhIRt0GS68TpBba+gxYgW1AiK2C2RVVkdWq3z4LHC38SwWqYY2qJZdbd2Y4VvdZsYyL0f8WX5D3kCLjPHp16mD+zsXi4= X-MS-TrafficTypeDiagnostic: VI1PR05MB1229: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 20:+vLKeBkXzGM3dxtIiQJQBJYjMTWdmBOF2ifi8BbWcLSQbSYfn2CK6AGdj3IpgA70hzi1JenViaV3X6aFBGHIBucUc3M5bfQ7ZNoQh5D2F56fIfW1CRleLTk+5uCNycS3X8NL5Z8jxPMMO1i7a0do47Ad7l8WzeiFp6eEWyvl1+ZWC6Et0AxJd0yQGhGlOXp2Z9RXEUvPSFIO9O8Yu0B4Utl4W+C2ejkkhlI8BkARTrP649hjLPFJoeNxHbccW1LWUXdtwFlCxkLYyaSckHj6aiuaIU6NNS0RCdCZMYvsQR07EIH+PbV8cmSKnKGdrPN1rMAOIMkK20FMN7/voX+/evG/y+65O12J6Mpk+hudAc5TxT3BzLSDjGJrYLVNPvkocoqQ90ErDd5zjtKpRTvbPGOem771Mwjblz3EW6IFJObqlPhLrwM64NgKVtu19gBDIViIYLRNIjzAGuWDBBHz09cUu3W02vflnBY381EDbiTzsJ41fTuilwVZPvcQK2b4; 4:SQjZ8t2/JEOaAxLHFOnFx9LIhD6jzg14AXnp7TEef575zBrrJdoAN0rqpup+95itvnSHfDemH+zeW7hPpK2tQEY3ykpVot2uwt2Ybo0k9BqPZKwevnF7UxdxVOUuOG+JxOyqlYFTqM+dIGSYeqxLKaYsnYykiatAPLybAibxjYRXO/1qlYMFOcZ7KXrC5hyQBT5BA68ROcnKJsDECvOt1aF1E/zP3b/RnJxVxq4N7BASZRnvtO7TmJAHEKyn+CD8 X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR05MB1229; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR05MB1229; X-Forefront-PRVS: 0448A97BF2 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(199003)(189002)(47776003)(21086003)(101416001)(33646002)(189998001)(478600001)(4326008)(76176999)(50986999)(5660300001)(53936002)(5003940100001)(966005)(55016002)(6306002)(6916009)(16586007)(2950100002)(6116002)(3846002)(305945005)(6666003)(53376002)(69596002)(68736007)(16526017)(316002)(107886003)(36756003)(8936002)(2351001)(7736002)(105586002)(8676002)(2906002)(50466002)(575784001)(48376002)(81166006)(81156014)(25786009)(106356001)(86362001)(50226002)(97736004)(33026002)(66066001)(2361001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1229; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:3; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR05MB1229; 23:zX6+ebehEeSjFoRjyObG2MiJaNHP7MQk4l6wTYKB9?= WIirGOlFtotpK93q3gQSsb8Wq7l3YAKhrcQn15jAkt+i0jnXaXlJn0lPk80+BnZ0zzpF365nEKdJD+ASuM51E0cq49NH0FlHxZXA0Bys+dA6NRSG4mzAUQB/MVUbqLR2CTQ1f55l7zz9Aiix8V5ApMofQeYn/o3/Nu40l3bLgz9hJlrGvMin7AqhXsB6VDOmE/pSxzcACUm57DmjKRpS5J8NekmhICUrtssG8wHuMDonzmz/saIWnlQ33dMVyHndIofXr9Saf9KeF7NUd3tVpgta8fnp02Dr9k/lPYQLvo7QiPCE9WeL7Qh/VHMJiR2EU4zAXBrQdz5pTaM2wNA0v34diUKz3RLsyk8GHttSgYv6JLfz+D/xl3f3nWoWbsNw4gc+xG6f3zUKZ6waMN5yakhbsIzB7+kxEd2zfZiKSH0rpEkaXjj80Eq/88vFEuiXTlGZTmXMsKvqPiGPurgdrD5+cY5DRlWjMx5+AJiwcCuwDNsL5zuYvFsDXsqpoSkegwhLgUd+TaVUkj4qkLq53I0Kie+FaEG/skpWFWYOuf0PQE1Z+IgztQos1v6yuDcrDuurxmFOuLcWjkviKKd5hHZsepyvu7xaGAOPk4R3JT7PbUPJPa4/YVDstZdzev47ieGObYE1j6wi3K3HPI/GsGTOqpZbig1k8SDfxa3egF6GMIS4aZJ689wSrM9IfaWp4VURMKqFsyV3qFtmn24aZeMsCQ1uT3etRm95gUZDwGxDsVAq4pJmYtTfDVYv0crUIuWIy3zz2i1yra/wgeIFjO2D87kCocUHvV3uDK/px7IRs6qxkOe2OM3uUNWp3jUx3QJCAdcrzf2X5MjwvQ4C+RMb8sc5C8zKdpWJcBKvVfvNH66CIisLZuWEoUuiTVF36bHrzKm+xlSscIB/HTzbb3G3dROoxCtN7Gv9s3gJXlIFFBUGjTdQipdyhNVHucoLPQjy5C+/7FCd+QMt7886SSPaaCB73PEqgr6RTPOslqdQNQLnSRgEeS4dpmsMalZrZRLxASiBSSIWnweRcKPY0/mLQaA0jfx7lb5SP3MoY28mALvhVg99MP27CZmnSP/ydv7MvNBPxv4XHVpO/Tr2K0mN5SkP2espv+QpFn22dPJQss7R9y+ma/4HfxNg00vmtsFZKGp9UyM9af1zWVlxDg3Y1+FH0lWAEOv5nryTA4uPmr0nyL6SzjVn6dAnfcG+qw= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 6:YscZD2RVLKadWNiE1Th6ND6VDRaQJNyWQplRPPz464TBPwZsJwo9cWkEsqiyj9vjml/6w9lYLSMm749k4tGbgYxlnPNhFmCIOsonw96fJLugmqO0Qxyo48cmA0ZnhQd4/av5IPddnG3tbbEQizIe/jz4ZF0ll4fh/D/r+5ZOKN89YP7S0EYbjUs/JLijOLUrg3l7gE+FD7eSsrlaqEGl1dwAZRsfoZoqB5K/fwKD1/Vql+xd94SF6wBiyIDWgHR9kHnirF1ixnFMr4UHE2lamzoUFH20jCEwqrdlHB3EYQK6fxHUfIlKBh2JY9kZiP9/LRAOcD0p+jXyJtmSci4Pqg==; 5:lR/Q9eiXZ0UBd3r7fZ6OPFXGUDBUGgGQUfqUjXls3uZWbG7l9BaHFs/QnlDlPkpqru2DjwEFXhe/AisMPi4nnh9RNovyOI12QpLYyBftRobWjjUDWs15NzXeHN5xLLQKs1MWByot5TfWBt2FZbjIFA==; 24:4kdCMSdrixpxrysJnGuxBH6Y61+v6fGIAmQokzboVXhc6xmpKXnUTeoJkhjYxk8Qk03KyzbfbLsii0AmrKZj7VTRAlIspg90KDUnigrX5pk=; 7:bHBrsDJyd1h8HZwYPxvBF7TfedEov6Kyox4xQmWn19zDIrs+jRBkpgPZMUmam5JRH9lRCLH6duOvyEYksE6p87FIUXk3oNdgzvUsTpETVzr7XDIyvdv57YhxxeNE7yUl8iFDoePutNh0XJnQSFU1A6L0znqBkC8xeNgZ13Cw5W90x1BUatr9CVSqSmzi/lbGJRQ+yPXOs5D2fjLyjKB31aay1U6xqHgAUu0tHyX9xpA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2017 14:01:15.6576 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1229 Subject: [dpdk-dev] [PATCH 1/3] ethdev: add Rx HW timestamp capability 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" Add a new offload capability flag for Rx HW timestamp and enabling/disabling this via rte_eth_rxmode. Signed-off-by: Raslan Darawsheh Acked-by: Yongseok Koh --- This patch should be applied after after this series: http://dpdk.org/dev/patchwork/patch/29368/ --- doc/guides/nics/features.rst | 11 +++++++++++ lib/librte_ether/rte_ethdev.c | 6 ++++++ lib/librte_ether/rte_ethdev.h | 5 ++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index ba0d19f..fbdd6eb 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -566,6 +566,17 @@ Supports L4 checksum offload. * **[provides] rte_eth_dev_info**: ``rx_offload_capa:DEV_RX_OFFLOAD_UDP_CKSUM,DEV_RX_OFFLOAD_TCP_CKSUM``, ``tx_offload_capa:DEV_TX_OFFLOAD_UDP_CKSUM,DEV_TX_OFFLOAD_TCP_CKSUM,DEV_TX_OFFLOAD_SCTP_CKSUM``. +.. _nic_features_hw_timestamp: + +Timestamp offload +----------------- + +Supports Timestamp. + +* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_TIMESTAMP``. +* **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_TIMESTAMP``. + ``mbuf.timestamp``. + **[provides] rte_eth_dev_info**: ``rx_offload_capa:DEV_RX_OFFLOAD_TIMESTAMP`` .. _nic_features_macsec_offload: diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 9b73d23..c5c5164 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -715,6 +715,8 @@ rte_eth_convert_rx_offload_bitfield(const struct rte_eth_rxmode *rxmode, offloads |= DEV_RX_OFFLOAD_SCATTER; if (rxmode->enable_lro == 1) offloads |= DEV_RX_OFFLOAD_TCP_LRO; + if (rxmode->hw_timestamp == 1) + offloads |= DEV_RX_OFFLOAD_TIMESTAMP; *rx_offloads = offloads; } @@ -763,6 +765,10 @@ rte_eth_convert_rx_offloads(const uint64_t rx_offloads, rxmode->enable_lro = 1; else rxmode->enable_lro = 0; + if (rx_offloads & DEV_RX_OFFLOAD_TIMESTAMP) + rxmode->hw_timestamp = 1; + else + rxmode->hw_timestamp = 0; } int diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index ffd2ee5..bd63730 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -368,7 +368,8 @@ struct rte_eth_rxmode { jumbo_frame : 1, /**< Jumbo Frame Receipt enable. */ hw_strip_crc : 1, /**< Enable CRC stripping by hardware. */ enable_scatter : 1, /**< Enable scatter packets rx handler */ - enable_lro : 1; /**< Enable LRO */ + enable_lro : 1, /**< Enable LRO */ + hw_timestamp : 1; /**< Enable HW timestamp */ }; /** @@ -924,6 +925,8 @@ struct rte_eth_conf { #define DEV_RX_OFFLOAD_QINQ_STRIP 0x00000020 #define DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM 0x00000040 #define DEV_RX_OFFLOAD_MACSEC_STRIP 0x00000080 +#define DEV_RX_OFFLOAD_TIMESTAMP 0x00000100 +/**< Device delivers timestamp of packet arrival. */ /** * TX offload capabilities of a device.