From patchwork Tue Oct 10 07:45:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 30025 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 D6D221B24C; Tue, 10 Oct 2017 09:45:19 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40072.outbound.protection.outlook.com [40.107.4.72]) by dpdk.org (Postfix) with ESMTP id DBA511B235 for ; Tue, 10 Oct 2017 09:45:17 +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=w4a5nwc5sJQ8vW9sTQ7+IwS3A0YOVF1TpWyRfMkqqWU=; b=hFjNK+xx2bfI1Ftd9fXbGQOsQUYVbeD866fH9a6O7YKK0Wha33zckJWAMMkq7j0QrRvHor9j914vKAGu/ZYYUxa/F2eIi1Ix5yd32XsPVd4TR6isQ3bAfGQCCLmr9+r04ZHL4G3bojatnLZmYwqMoSKkhacF1X9daIkGDmsYfEg= 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; Tue, 10 Oct 2017 07:45:14 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: shahafs@mellanox.com, yskoh@mellanox.com, ferruh.yigit@intel.com Date: Tue, 10 Oct 2017 10:45:03 +0300 Message-Id: <1507621505-10714-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: LO2P265CA0054.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:60::18) To VI1PR05MB1229.eurprd05.prod.outlook.com (2a01:111:e400:582e::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 65ba243a-476b-46f3-33d9-08d50fb2d8b0 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:vGBI2Y6mnl5bg7tYk/d90+wEFXoprXGDWzqYbpzsbi3T9vT5LmwKrMNm9jSXcxeZyfzi09CC6sFh5M+rf3pdhb99SjID0gRvmkGrVWrvvOjiL1RegTPio78sxq0mOMuxNnP+oRS9P3TKRRt0vPNuSXwOnvGFsasNcxgOLkYjN26n4psSlXlPrf0hBtryIFObpu8h0jbN4TfZHZO0T9m86jfrYI1qhNJ7iC5nYrpTONTWSpFCH6vvuO+VHm+plRYe; 25:8eCOaeerDtDUQonk2f/4MPlO2kCMEbl0xRzVFrCclXnlLhDAxLU2O4Jy/nAuUawg1xKDSF7Om7RGdjhVst6qLjpwRBIznDovdJvoL2V1SzmF1lUqrfgBeQs2Zmg/KCDZes6PF412p3GjfcNOkHbuPAeSiz50ORlgQjOQLAV94u226KiyWB+LVRDYpEGRihuK9+1aBU6SS46EaUqePNwPwt3W4m3zBY9P5Jycpe+quRrY0GnTfxCB4fXsDhxaiySdU745gK9XDcEfVGqVeEyKfErguJGo3LAMsbQqfos07AGaKfQrJn0IGcTgo4vwMbzMgVZKlNOmtfwt0lZ2uYNxxPFPSgvWRpEh/Zoa8xX/PNE=; 31:lyqrEn4btiavPitWwFX/SCIBYzVAS2tk++lj79g1MasQpybh4lxx2//e4VysxlQ/D6NP7s4+X4vSYOvQbk3OFFHXmcxkw5zcv5VN3+bN7vBiMSbJ2HkvmjsARA2o+j07u6Mm1Kgmh5guiVzv6gUodYpIGaUr/ieaEKLWVl//VROba61m6aLjvnHwajiX05thZMK19HBIjuygD+gq+bNSv3d7TgHGychi23xaXW5oylw= X-MS-TrafficTypeDiagnostic: VI1PR05MB1229: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 20:GU8esWVLeCGXgnFnVh4R06y4RW6IlU1QW4czzQTAMOGWVlJiIO4NGSKQa6Fo8rK98OYxxqqARboRSOmkM43hCo07TSUB8LXwfgkHO53IrZh6bVvEji0fSoiLR30zCYcmb7ERF5HTBoTbC4DVQIMd7+Ub8uT83e+G+HD0rwn9OgNcDistjf//Z+ecZzhjERFtGLKqn23x8UHAVUApurKiOhVkV3oSCZSYr1WH0+cy1OMjCFHViFD7o7+0WL6fV3BRiOd6ywG88QMXNbMfVwN5IK6buhjeUkXx/ehCfik0bL1bwyWaM4tZ0PvZ2DXsxUGn3Fry+4fKRmnc/2Ayft0eNDX3kz+d7dLicTugj7F+MwCkJ4HgqAoYgR5mcLGjkuVStj3by+ErsCvJzUDi36qEGJAL0QZZLbCxWjWG4imBz8xapyPddICyLE1p8OO6opptn4uLg/+kcmokP5FBWdb8127RSttBvNlZML5bmMvuxZbSGNb73vIMnqIPUAuump5z; 4:pladlbVrP3ASbQuDJzfKXdsPo8Z7aPkh5ZGPOGlhYZpXYm3EQhuWWklPrLqTkeevE0RmT4z8qHw4qhQDsuQxg+DYdTd263tkV40x8keuzbdesL9atXcwqSpHprxcB6JgbP5iGnc8+YqkFQ3AswNvLloch7bzQVvLiPs3/oj5guRpXkd7VWPo5hzioPRUYgbtlectEySwfp9p1cG8ONGRnvpP39qScrdl32t9ISzsd2Fzosn/+6ZdMrlQcXhGWCfK 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)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(20161123564025)(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: 04569283F9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(39860400002)(199003)(189002)(86362001)(25786009)(2361001)(6666003)(101416001)(6916009)(2950100002)(50466002)(5003940100001)(97736004)(478600001)(50986999)(36756003)(21086003)(76176999)(66066001)(189998001)(48376002)(68736007)(47776003)(5660300001)(16586007)(69596002)(53936002)(7736002)(6116002)(3846002)(33026002)(2906002)(305945005)(8676002)(81166006)(81156014)(8936002)(316002)(50226002)(4326008)(55016002)(2351001)(16526018)(106356001)(33646002)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1229; 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; VI1PR05MB1229; 23:DcxC5SIXShKR63xAq7Zm83ghevAEqzAxAed13LzQM?= NYPZxaEfjj9/Gm87yz3bdCCWDn8cgU9TFvelzrVuClV7pdL8/tIFxLEUZIupZHkyvtRTYMC/9VNiwwA3wKUQRuxVpvN16zcUISF5haBwZ5CsnCx1qRw9yASkGLLZTSHebtsjopK8ysm3/8uSaX0vo9P4z23paPCr6PF2Vjzi5e6WjDdKTxb1r3wdPj4CI0b/5tHJDY122PSXGwHHyUJmxiBiAeygPPUi2fmh7pOu2nEXOUQ/jyQNME8XfTgmN0UwViYYV/DMHNtF2osDn4+/jtNUpEnOFDQS8XKqTWDLxVw7Ibct8vf1D7BSzfFxD5zsjlC1VEDdVii3KJ1tzJGu3q9bN1m/ZXSUnHP6RAoe9ZO7UgEI6hKhN2bdEMkHZNIz/WixFfOP4Uu5s02kgutIFn18iYa1eCqqMwGkHlVRJfwS5ZpkHeEHdHUSfE3sx8ARuSHg99iCqvVNi4nh9fJ6Z6DARwJuD05ngD2K1utIpJIRgDku7MD8VBmUXaTuxi8q6G4QFOQIpfQ8BFeC2Md8hfgArXhB21aDDxmXfp4Dq3m33hwFDbYhS3nuaQdz++yERz9lFRcQ8KwbfpOFbwZKEeK5E6rs+0jzn+MoUeiEFMyWOKF8v51/pLz96wBynuLpw9N4YYRIHz04VDU9nu19Ms2//Pke/nqyNZB20akFrkLbJypo+2EHdsMP7gSC02Zk2ASyDHKJlIylMQZPKt+3dNlKv08FW0tJhScfGiuXnWeEPjH44KPIRuG3OiJozraVloIROxjCZU64xog6pZE/EV3pdRnrzDXEuA7f8qkcRW0A/TZiriillW4gvFLudV0T7VZaSgr4FOTHLgzwsc/wX9TH4+INJRt3kX/imtcap0yDff6sAbmTbPT1qxpXpoiaVJyvEbnfGPp7Ax2Iegsj2K92t0HiAiydR+vgFo1xY8Fw0aPgCtq3Ez28rODuomA7g4SvpjpQOe4B2iolJWp6eS0HRTN25qTd45QmmYl8SDSs+hWCcqdy1iI1ui1vUMn8jWrkz8csxYwTS5CeeINx1uDHAi0Vh4xtkoMItRNYJrgx12JRrUswTcZ6O0Pa0pX6NNnbTfEBioEnh8i8HGSEjvHBVMX9Y0LcTdi8yyuQ+qcZw== X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 6:2VZH4qcdwveeKCSfPnJUrI6WTnStWEKt4/5L1UHNSFpeNhud2wYOLMhPUQGW0tpiwTSctPmh0+R7yqMnXwrYRs3oQOaRlQoyTsPnHLf32Ps5SVGm+y5NzHez1ym0j2M07pfnBU130sAnbBQcQKh+dJPruQGsU/0sTrLVy/48Ev4Va92SyyeJE2HD2dXQYB1DKqeo836hhRCPgNkoGAoQNPR9iJS7drRPJSalKWnYpJGOtwJKX2iDEwVyRjic4pXlzl3DxYQqLeZG/l480SqhtO33/4S3XlOF32GLbjVaEyeeMkSYzVTb8wvEihPcl6fWGmQzZiTJpE6xUREbo4LS0Q==; 5:w89AU7jH/7Xx2ME9sIAE9scte4Jqwz5xVIOVS2mc1GtNNTSN4WcmPdkR4Wmc6SVkj47mN/GTeyiPB9J6PVc0ejIALybFAJeNbDLeXnCW209ZXrVgyXysz5zK/G3k5NOm+ia9hTimQtc8ipqHhC1AyeIRvlPgACeNXMH6M2L48pM=; 24:qAOzBqsaUeREAhiNZbBmEUmg/WivrDZVMcwXdNhOX9jdZy0x7rIsFjhj4NIkWS+vLjDQyFPbkP4LOfZaKSdDpZaStROhLDmsm2I69JjtVz8=; 7:CARTIU+EwphEUrKFP6sQNc5hH0cXzN7ZLOYXb2iRhMAsESwssYv3bd77Uc/R13BCtjCOHFVAgLdQ/2n4Cp45uFns/Drwnm7bkjagK4AzZLk1OFMc7yELS+ulZMx3l51UChcapRm171fWPnicpN+Wd7//4FWlciaq7KUEQ4Y3bX3bi+6SmbsZzrYsoovyroxtWO3HFslKGcha33nK0Q741kU0q56jLWeZviNcZWNCpI0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2017 07:45:14.9002 (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 v8 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 Acked-by: Yongseok Koh --- 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 6538470..ef7283b 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -573,6 +573,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,tx_queue_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 9a59901..dc527dd 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 3c5441e..ea56978 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 8e928da..0b731bb 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 @@ -961,6 +962,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)