From patchwork Sun Oct 8 08:24: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: 29880 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 6D63C199AE; Sun, 8 Oct 2017 10:24:42 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0051.outbound.protection.outlook.com [104.47.0.51]) by dpdk.org (Postfix) with ESMTP id 09076199A9 for ; Sun, 8 Oct 2017 10:24:41 +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=wgIn/zHpKSP9v4lNT4IPCPruxJRJsQztwV8ayKlixBI=; b=RFBWVXRHw4iLyFBBLm0UDuP1T389K/z6+dFQcv8E2HrLcgNOlNvmsFfoLVJuFpVIaUDMzHvq29RAy/vKHoKSCePy3AJ/kP8L0tvw9elcWDZEU+/4d/AxzhHaZ05VXGGh0dl3Y2yler1y6Aq9Mbvv/VF9u6fhYqfDUyZouT4p1DE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by VI1PR05MB1230.eurprd05.prod.outlook.com (2a01:111:e400:582e::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sun, 8 Oct 2017 08:24:38 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: shahafs@mellanox.com, yskoh@mellanox.com, ferruh.yigit@intel.com Date: Sun, 8 Oct 2017 11:24:27 +0300 Message-Id: <1507451069-29590-1-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507028429-23944-3-git-send-email-rasland@mellanox.com> References: <1507028429-23944-3-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR0701CA0065.eurprd07.prod.outlook.com (2603:10a6:800:5f::27) To VI1PR05MB1230.eurprd05.prod.outlook.com (2a01:111:e400:582e::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d7979819-b44c-4104-2bbf-08d50e260451 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:VI1PR05MB1230; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1230; 3:s7V1HeSefm8ZLY4lmhn46sYjr9UE/SqGUVNe9NAA3h1DcRneJTQjRz8l02yP67HqGjX3cEO0NBi3rMLMWmyK+745yajOt9Kjwh4KD3V7klEt7qugRJ3dzo0bPreBSfXu3OYs9n7JB/bEVtK+pJ+pA/N8dImn2ekYiGM107yf5p/n6tNZjJj/KtcveSsNta6x530/xLsoBtHqPAQy+t12PKKhq5DbUbroHFQjL06XzqsslIFjff66Lc9PUNOpsf9H; 25:w/a32+1Iuduxnt55FoYV4ITDF2q/XIM/c/OMnWH/76URf6eVERY0fT94qx22KBOmEZ5pPSW+TY7JIZZJbivG0O+ejblYitEREloevBCE65y5Sg6kvRYeCBMUsmGJDaLLlIUpbm9+/xnuuI8Pnz2vZaflmlTPPBG2ilLLH4QnVdjD6/mkxe5g2sY7rYmmFxS8rJhcjWKC+5/NdgqwqMCheMTwrVgjE2YJl8UiL+kjZkvVrFHGTGE9MvMSWhqD6C64J6gLQWbM6F4HAYzaKXMdlA9idDWDwfPIFQ1wN6750QhttdXsYcjxLmJj4DaUmEAfSr++OUuhjMqe+Q6rSsKRJQ==; 31:b2rx840hT/7oCNEv105fmdLaLIqHAZJ13wj1Gxncbjw7HXnNNVzvzjhy1dQKOzJJgAEntmGHxc9ju+TfHKXr4bW4uECf5us7ZoETpbPnaRIrUtX9x5B7W9bm7xKZyfKu8s1OZMZqbInFa/CKhLvaWf1pC/aQcsgvL3rvwOy2cWSzX23CZ+C0yUoRtcwITtWQVjXlLrBqrdsNN96GaBFeOFehQNgQbJSLC3TItjqMLg0= X-MS-TrafficTypeDiagnostic: VI1PR05MB1230: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1230; 20:E1yT//MstS03wJcqhuY8Z3OOnIR2U8uxwE6ACaUPWx5hVSwoYwGLp5WqjFgL2W6eIiUXAJKJoXq0XUobH3jgevg3k5KOAZu634lbrcDfigooKaZ1CYbH+muIjgLUm6w1Qqqv7CFBzMSUC+u7DXWO0TuZA3pBojWjVKSQXUQzFTQpHOtoVuZCph599M21rkfQkdd837kpavIbLdokCnYEEaUEKDIlhD0/fPbsVh04/P7NHejhem2lq92L0Q8cCUoBHb6ukc6JyvqdPzQ+Z29kl/ZvXj5Ai3z8sSJb0kckkSoTznlRFsDZUfhtZBhtv/US2TcyYUW+UXocWO2f1uDCG6zkKbcwcIwPxY7c1bkhPoE8zUF44fM7QGDkZD+BrHY4YJz4qkQDqN0/q3JlJ9rOnYr8gGwyLtfxS2VD81yI0JNIBOrsbSVA4ZyniPhonT5y9WHrEcPdB9jWzq5t/+iXSJ2cNf1XgObBLHfWAjtQK/bd7ADpyZKxFlgPV4HAVSrp; 4:vlrMnyJmKlQ9CbDdwdgv8xJtzmxBXDUhAm2oSrUQd4YBPAeEHM1kOEMKEpQ4uRlT3HpLPOdK1U+Y4clYvi+gMube5bvAwTwMwprVPKdnKQASp5sKi/h5yHhD7xxDrbd7v2KYvCk/ulx2ZujyeoepZRO4pqL83YJOtv4xcJsyw/5CEcDxFWr8ezLuOq8eeMiCtXY5szWr/zi+z8p80dsR//YpwrKm7LR+CeXw6CEipMl3mbwZFM6xcNeqkGH4KPyx 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)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123560025)(20161123558100)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR05MB1230; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR05MB1230; X-Forefront-PRVS: 0454444834 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(39860400002)(376002)(189002)(199003)(6666003)(50986999)(68736007)(50466002)(47776003)(66066001)(55016002)(76176999)(101416001)(97736004)(478600001)(2950100002)(5660300001)(6916009)(48376002)(16586007)(316002)(69596002)(16526018)(21086003)(36756003)(305945005)(7736002)(50226002)(86362001)(2906002)(25786009)(5003940100001)(189998001)(53936002)(33026002)(106356001)(6116002)(3846002)(2351001)(4326008)(105586002)(2361001)(8936002)(81166006)(81156014)(33646002)(8676002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1230; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A: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; VI1PR05MB1230; 23:zXnpFlnuObKKkW5i2GLgUHeAhEd8IE+duqOwDVmY0?= qldy8Cqv4QBF+C4LcJyHEdG4Hk3e9WkdUuztmX8QK4Z4RIXuHPHCQNzzILH1kCix38h51xqBW3imWcxb695TurDhYbrPrZ5ACXkF0QNJc9pF1dfRelgSo9LroiL5QBd1n275vCRDTJAczfSNEvnYr1k+J+fAf6M2R06PiWnYH0K8zDu1X7WEZUoSyhsZzSqfNGre+A9YSHatB00/22KOOl018FdpXWWh7/9qHGb88igY64Zyzai8gkAvynoRLxSi+6hrlM0/u2vSTKiFda8FUG7F2QcBa0C+V+lNnHyFtXmr9rZHd+8Zqo44Kosl5oU+CH0iEPPi/mT/jLIQBoSDhRTBZeGIy2w79iFM0FibzguVSQyKYabl3OQTaBQBy1uFW4MAhywK3ONuMjzUiX6/OnagIrLm3e0gDrClSPqGEjwx/TPT5FccW8AHusm9iYifywMGbuYoZqegn/EgcEAV/fpnCTVlIH51Tu8mVbS/P9CtKK+qd/eWTf+kk9NSbZnSTPIdg4ErZ2+Ms3e9hA1aj55gMTa0wTTMV6X+qIauyl0ACn8sE7h/232HLnpfIIy4BgZ0+pmBUC63xnfey3S0v3aic/ABV8XNQQY6OS2fsgUrc08YwGTpg+cnnC18M2XRojDY2J12iK6fpp2IW2IqUnhQ2nDWVapmdT9+1a6TeJEoI94Uiy8BLQZMBkESPhEQBE52RkbglaN4X/J2AUA66UrvgBp2qRKoRbgFNhyVcsNx29aWFE/Ai3DJBQbP1r56z5EpzJrI7PDkarJZmtX3rumdAkipqExgu3wv0CTmMUD2yyEQTZXl1uSQZLcn12c/EzoqtD6AtG5Kj2Zy0FMngnmjv4i2f/B1wr+rEfVah9k2FnU8GVIgHmM6fY2SKOBAJsfafrtP/lMaj3+WS1sj1iF5+H8MHk3lDBnA3RZOuNAnyMIyjyeKE7PX948rMAy1ZhOBNBjTN5FwDXxnCoi6YcE+XUUJqGQ0vM0miiurvfyr8CK4CMISfsEtsR8x9e5O5vrMTeJfmdWzRjFJIH+WDzokZikjRo+Ez99RRNR+4sPwZwPkOo4YyLQlsUKJioo1gTsMSADxOjOgtBqKKdR8rW4Bi6gHsqNTI08UX6pdt+YrA== X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1230; 6:UO7WqXHphSUzzF8D98SZMBGiNTrGZDZbLC1Ood5+IteYHLtsWxo9biTSPHI5Za6URpV4YnV7EcuhV2aUCLtXJSB9BSpVrstp+Ru6VfNYE2J4nR894CyIDyRwi3Cd2R/Z8T0FbRAWsCud9AAU0yF/fiRmxCeaCzw2KKCLEI14FIxRB/uOa2TdBmRdlvJPi8AWOlfjEUEbSsHznGChP3vn1Kv6VfpV3MYDA75k6f4VvmBEveWBC174Z9PJRfE/rmofv1kW3tyGFH+3z1ItdEfG5Zg1I1ilYRus/LZgwTLQiYrJrwXQw/+Gx+7bFHH+u7TfSx1gXoRXjlc/F/y3qQgKXw==; 5:QGF5P/Oj35pyvrxl1f33W0G4fojQGCwyLQhfb9JgoLFKprV4175L5hgq/uc5cEE5TUhVAAYhES2aST3+dqzI/egbSkriK9E7NTH7+/4AWWfqTtlQgFQUuBbBDNupLd6DGEpnF40+TMaOBuLoimQtIg==; 24:k8dIG3rrYXHdCchJtcr0TZSZPrDPUP0XTfyiTFv1QmSr9QB34ZPOB5yUiEhwtTmeai60aiBi1r+CGWU15ZbQAjQJ5zwgXbo1oNRKPaY5xjU=; 7:uXJPs2aIIHDv+7Re5z5vdHETy+6cm9L20VJ4y9ncvu0xONYR8bzcgwLf9vaLCH/yBiBQE4WRQpNxqhfZJoTI/k8RKw9pSdf4/KP8wumgNfxBbP3E/AObiBQ5I0TKQBrclCMGxMbQYpyqjT+4PGf/oRlOG5CDuDYzOTskvDK+354Apw6L6sK3/qwmWodw+8pKyOvxd5F0CiocP+fje97FwCLu1A6a7WgraExMWdYPzfc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2017 08:24:38.0049 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1230 Subject: [dpdk-dev] [PATCH v7 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 --- Changes in v7: - Updated features.rst to use both rx_offload_capa,rx_queue_offload_capa - Updated default.ini to have Timestamp offload --- doc/guides/nics/features.rst | 11 +++++++++++ doc/guides/nics/features/default.ini | 1 + lib/librte_ether/rte_ethdev.c | 6 ++++++ lib/librte_ether/rte_ethdev.h | 2 ++ 4 files changed, 20 insertions(+) diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index 4e68144..1d691b9 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,rx_queue_offload_capa: DEV_RX_OFFLOAD_TIMESTAMP``. .. _nic_features_macsec_offload: diff --git a/doc/guides/nics/features/default.ini b/doc/guides/nics/features/default.ini index 5424306..f9a1e6b 100644 --- a/doc/guides/nics/features/default.ini +++ b/doc/guides/nics/features/default.ini @@ -48,6 +48,7 @@ VLAN offload = QinQ offload = L3 checksum offload = L4 checksum offload = +Timestamp offload = MACsec offload = Inner L3 checksum = Inner L4 checksum = 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)