From patchwork Tue Oct 3 11:00:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 29528 X-Patchwork-Delegate: ferruh.yigit@amd.com 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 82EF01B325; Tue, 3 Oct 2017 13:00:44 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40043.outbound.protection.outlook.com [40.107.4.43]) by dpdk.org (Postfix) with ESMTP id 299AB1B323 for ; Tue, 3 Oct 2017 13:00:43 +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=hXaKnOe10hCynG5tw4dG10kto+Hzm/JcVmPOMb//hI0=; b=QtYZSNlbzFj8NlC6Vg7ghYF2Lnuu51GpBHMgAQBnLXZZ99DhYQYuuq9NwR69Uge/cuFhQRvh7QMOpmF14vlR1BF/UMvIzfNJWuJz5d1bfXnwiXG9wkKai2V9EKaBHR9BEISR6Ui/2/aXNsOsxc419sBiAOKzjZqTsNZETP1VhiQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM2PR05MB1220.eurprd05.prod.outlook.com (2a01:111:e400:8450::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 3 Oct 2017 11:00:40 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: yskoh@mellanox.com, shahafs@mellanox.com, ferruh.yigit@intel.com Date: Tue, 3 Oct 2017 14:00:27 +0300 Message-Id: <1507028429-23944-1-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506617303-32509-1-git-send-email-rasland@mellanox.com> References: <1506617303-32509-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: AM5PR0602CA0002.eurprd06.prod.outlook.com (2603:10a6:203:a3::12) To AM2PR05MB1220.eurprd05.prod.outlook.com (2a01:111:e400:8450::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 309b42e3-064e-4555-42a0-08d50a4dfce0 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:AM2PR05MB1220; X-Microsoft-Exchange-Diagnostics: 1; AM2PR05MB1220; 3:CkjBWCiGD/hyDBrrmOvjTERUhTf8DdXGHl485F9ACMufwwqapKB5Or+tHadvuadPFTjA6OUpgr7PHemJIagHKXlBLBtRd7lcr7W2zHCZhkiLG/uDaw5AUIAd4agsAzGczt3TX+uxU8O0IT+Ixm8C1vd8eFpzGqRzSNXPdr7Pph1j3miVe840LAwuu5tiDemV+irS88f9nzC1yj5rudCIM4g7UABD7laR7QouIVuuMOgXlftHOGspd3cdYOwqBPau; 25:oiBEJ+SD101dDxT4zZEsre/9qqHEoUgbTr2LRETXNjdE6KLni8ABMER/FW5RdWF7QilT/WQsr0iVNdFhqwOAa8WLSBfNsom1GAa8uUU9GBAsQtZAwLhGWmCB/6LI7c3I+K9vGd7Wc+m+sDeGixbLm4o/1rtLXQX73kVtapUXtjASM4i+K/J9PVuAMvn/qYdC/C//+qvSqfglKK6OpexK8jtGc/cGDBM2y+VqKRlvihnYOwy2evmE+vowLo5so9iRJM3Y9fPZNeqwzBSwCvc6RIYH4Cldt0POYMXIbKzQ0RfZq3BLT+Muh3e9LAXy8ydjJgFwYJ2wI4VyNSqrTOv4uhr15rTGBp8inXpJoRfZ/m0=; 31:UnpmykTg8LBV40jUarU0r1UToXDsVhwUPmHRPkzDRkjjZMQqHLAZwhaXON1+PJ0UEKZDc4CVyYvzK+eMGHGo1Om25GoZQiD//OrPk1JSqZAFa4JotmiZl1ggN43/NyhwjvIAYfM4+wp3xewfeGlnWr8YDG7IzFjxw0O3ikdsg9ufUQn4rqIlVLpwYtgJNPSRYYCUGWbbXvrNnO8SydEMNDdDAY55yFTmNBEP3TA6TsQ= X-MS-TrafficTypeDiagnostic: AM2PR05MB1220: X-Microsoft-Exchange-Diagnostics: 1; AM2PR05MB1220; 20:aw9skEH/fuk1RIETDwlO9TDMgVH6UM9sALZg8ZvTlA+Xv8/L20+urWlUCNngRSaNOBYwBYJ65P+Zu2DW4kHTu5V1ERxy+Go8h8p3uWGMgEqwml84t/lXN9xK+7mN6BFZgQZiPCfKm9+Gm1R0ynOj2MGCP4Oe5Gee519lBKkvet3FSuXGL/9fFW9DzwFf6lz8YqZJ7vsOmozfK5K5cKnR9+jr+PHFq4KGanHkc13wouPF0zsR9U6yWyXs/EPZys9opDv5eX/IUxVf5SMNgDhzaQk0uQhsBby52p/EKyYmAdImzlExlER/BVJSN6wboSgIkmHiXD+D1SBoyMmUKdbzq46I4CPO69X4kaV4K++PSfKajr4ru1QKE1w29aq/E6X5c1WFcTSUX9KTn5tkydk3AXfAln4qAV+24Q0cck6azg6jHK0GDp9U/KKcwyXFIdEUSsBajYc4IfvedN3foV4sYWBWnWQcJw5KQ7cg/mmwrN7zn+OlLX2lXlFJTbCDt/uT; 4:LqxQVvih/xWhG5ZYAatw/rYrbRUMbdk7sUh05iWoHYRMiY0l1hs46vgwIfvwG2SB2i6g8fUyP7C5uykU7NW1QLvPdbrjLEmmb938KwlSOQJum974gbtTeBYdGzoDJXte//hG/TpKeE4iSps1CfWzM2ali8EzlzxSRegNBMdhU7FrnFs6ZvlXLIdufg97lNU9ozrS7K6ub4l1OIva/Ebg1JCyFOKExw7BOr8U5I6sdopE9KYHgH6nj8puOrhzqM+/ 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)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123558100)(20161123564025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM2PR05MB1220; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM2PR05MB1220; X-Forefront-PRVS: 044968D9E1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(39860400002)(199003)(189002)(101416001)(97736004)(36756003)(4326008)(2351001)(2361001)(106356001)(48376002)(33646002)(6116002)(3846002)(6306002)(53376002)(2950100002)(76176999)(53936002)(55016002)(47776003)(50986999)(50466002)(66066001)(6666003)(6916009)(105586002)(305945005)(68736007)(5660300001)(5003940100001)(7736002)(966005)(16586007)(2906002)(8936002)(189998001)(81156014)(8676002)(69596002)(316002)(21086003)(33026002)(81166006)(50226002)(86362001)(478600001)(16526017)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR05MB1220; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM2PR05MB1220; 23:SezBqQ3a/X0/MXwwbKKFDHMXaJ/WBzk005098wTv2?= KtpTHLIrtbCQ/UFBRtn0zOt7345A583FTG9F/axeGeeDGQZELFuimSjC612hZnh8fmgbkdGgGb6J/lmPyHrctneisVWD9SRG9K/R+9Lus/eaW2e+afj/bFRM3NyCfx/jHVKkbwLEVw3w5ZzSoxUal9X60WpNl1Pa2mB2HhV1zmDU+4qzjjrPw1FuD2pRikzyshULOIHcXmVR6O7gISeSsrDC1LsKsDVTiFWurXzjuzgMPpr9VLdY/DhdLzzF+UJGAe9oFNopLaR4ycT5HniQplRcvx8BrI3f+KDXybU2YgYDa8M0QTeHoTR6e+ev+tOFlBfndoBwX3qllD6c09N96o+VateJFdp7t4ebvWeNxlfhSp4YQ5QrbzzkvbqsEK3c5eOiijGTtXS3gQkCqGrkbEv9JyTSIubPULyKFu5FJaCqJjp04KNL29/to1NqM4CH5Bh5JvXNE6iwj9v+re1zpIHVR/rsYO6S6gMkQo1zTl4V5jT7MT7VKD3bTy8qX0GwR+EJrq9aOIhJL4NjAhqdhFK1gQef9EhYXWZrWhKmKj1CgF74gQGdATXHkppJktDwEi1VM0aUR2nQp7fqbX2adNhbk7OUT/t6/bPeOUHQ7VmHcgbQCIfJVfOsJZD39WlM+OeCNpc6Amqpd0I/R5EF9+cGGcpUbjvA+pTZ4/eEqJQqFH5moVMsNH7cfmQN7CaI0hBYiV/oSZ1dRSJ6MwEtcsOCx4xPKafIT2LSxl8dnsdsVwKKEj1fJHs5ehAYEApbo0HfEBvrLp4CoV0Of7vV/smvsnucWhfWphXBAfyhOHyklNGOrn4MVD2/CCGRPG/ab6jLKNz6WTZoKddngHPfXhJGIulRlKWHV/JfGi4S0rEXo86IgKfDvMd5ztUkV1vfjjt0vVmsiXTMqz87nhYsczbZxdkPOyKKPEK2Z4H98Tv9TLf+HQWq6fXx/wgOc7x3Ic9x7owoVJViCygHVqAMsXBa4yGypi7hN5ZGbL8i7oZlW6xZunXMbz/6ShhAwNvn7NUE+5yxdoR9/GZnDZzqNU3uYv/0A1WAP5pT4sOh+NIXfKbQfZUhgJYRq6q5IU97JZ1MATHQhr90/RwRBPyJYY4J6aC5CGvWbXAbY2J8y/WExtVm7PEWoD5mo+BiIM2dVAU6/Ugc2ElVqMyz1eFRnFA X-Microsoft-Exchange-Diagnostics: 1; AM2PR05MB1220; 6:DcAL3FgijZyaLBkNzbpBmx5mmkj2wNS2HcBq8byBKxkUuD4A/OW1rvnXcJi3n3AhBZnuTwvFcUcf04jDDTlmySMgE3tL11OH/7/09geEdvWGbPl6tRAG1vOO6wdF3Gqp8qsZj0UPvRsTp8A39FFgnDwupUH3VDDBTBdoZbHTJg9Q1X1AKNjhPckJa1OuHFvbTqc1U834AgnOphnBDgeSU5ONbKPjA9Aw9qLCUERtpvGxA6S0CaUJG/Stcnsq273PCF6vyEf/qOTWJpPL25924pQCzPjw/SLwrjsi79GpPQ/Bc3kfFutu6m1PKmrbkSJEtIkkClSVYu7+VjqpFb38mw==; 5:cKy4MHoXHIr0nIOQr+GxchQjFSkGF97WLI1DKhGuvCKsaunCnJ39LI0vikL/rfGw8G/TN0nEWzVKT5km5X0PIsgb+/NnRVYJ9d5fRG2a4MjprGjbBx1SWnu92Dcgumwk3+dyIcskyU3ZAUESebCx0RKuoVLY8EYwPl9FckGKACE=; 24:rwCH68blt8bbGJXDSVN2cxRMJPKISqNLF9Jg31VujxaVG7jHK8jf7Y1cgsPY7KzRXnjyFFQHjhGvoyJK6ec4+4HtX/oyAExvblO2WjdkjBQ=; 7:95mOLdHg83oq542CTIQyBX9QXaTrNTLdeVXmmGFqpgJtxk6QkS9SZqAkhkuaG7XJYb/JTxxhISalOfdrYY4XljcNUyCit7zeTGadDL0Bd3y+vbRdHVAn2uEgGOTWornnJVSLubjbNvfjslJO56gZNO8v/V/rrIyHcNsURJBNFiLIfFkhyeW4OyvGV3OSbw+z86pX16Fl+J23MbiVu6W8zfI0ElgBbncfuG9D0/x5rxo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2017 11:00:40.7545 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR05MB1220 Subject: [dpdk-dev] [PATCH v6 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 Reviewed-By: Shahaf Shuler --- This patch should be applied after after this series: http://dpdk.org/dev/patchwork/patch/29368/ Changes in v6: - Rebased properly on top of the mentioned patch series. - Documentation update --- doc/guides/nics/features.rst | 11 +++++++++++ lib/librte_ether/rte_ethdev.c | 6 ++++++ lib/librte_ether/rte_ethdev.h | 2 ++ 3 files changed, 19 insertions(+) diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index 4e68144..e03e6d6 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -567,6 +567,17 @@ Supports L4 checksum offload. * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_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``. +* **[provides] mbuf**: ``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 e02d578..8bb9a6a 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -369,6 +369,7 @@ struct rte_eth_rxmode { hw_strip_crc : 1, /**< Enable CRC stripping by hardware. */ enable_scatter : 1, /**< Enable scatter packets rx handler */ enable_lro : 1, /**< Enable LRO */ + hw_timestamp : 1, /**< Enable HW timestamp */ /** * When set the offload bitfield should be ignored. * Instead per-port Rx offloads should be set on offloads @@ -940,6 +941,7 @@ struct rte_eth_conf { #define DEV_RX_OFFLOAD_JUMBO_FRAME 0x00000800 #define DEV_RX_OFFLOAD_CRC_STRIP 0x00001000 #define DEV_RX_OFFLOAD_SCATTER 0x00002000 +#define DEV_RX_OFFLOAD_TIMESTAMP 0x00004000 #define DEV_RX_OFFLOAD_CHECKSUM (DEV_RX_OFFLOAD_IPV4_CKSUM | \ DEV_RX_OFFLOAD_UDP_CKSUM | \ DEV_RX_OFFLOAD_TCP_CKSUM)