From patchwork Sun Oct 8 08:24:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 29881 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 8CCBD1AEF6; Sun, 8 Oct 2017 10:24:43 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0082.outbound.protection.outlook.com [104.47.0.82]) by dpdk.org (Postfix) with ESMTP id C1BCD199A9 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=Ce39xDp5x4H8kPSmW69kHrarItj2bIroUtVCxsuZVJo=; b=UGFFO7ykBBeMdTPP7qLP7pv416Ae9Kjwp0w4C7A+4WzeXa+x6H5VLSN6E4CY42Vb8EYeXoeGJgmIlFmOaadi0v3QwCsHa1KVXFC3p+MvLSPRhvnqlQ2B45+zRF1kSgD8yuSj5Gkr6BUMFqt82/s8jXGcBZ6Uj2JLQ2kcDyIzhXY= 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:39 +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:28 +0300 Message-Id: <1507451069-29590-2-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507451069-29590-1-git-send-email-rasland@mellanox.com> References: <1507028429-23944-3-git-send-email-rasland@mellanox.com> <1507451069-29590-1-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: d15e006c-6d3d-4025-98a6-08d50e260520 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:OwKfMAUvtnmeLUhRtLykdsN/mFrOnqh6HLQBA/PuTL97iPAPb3A9680zIHdTePFOjh9+96wyIwVEtDGtM7npBaqiXWoc4RlXfPcQCkmH+dcduf+txlr+nd+GuVBhTsTsnqDn5x3JAatuj2WqvY7YcXv69gCOx6cILhBhNMPcPGAhe2GV9WP3cnevdSh0pjJQd3zcjNRtbsWjgH7tXgqRnLbRaWdpnZwi+/eOasamDH9G03C6MyItNRAf3HEittJx; 25:oCTN9hiGFLBT71VaiuUVRNN20D+z8LPWw9AKUsfPPv0b2c4bgnCObdzmZG6Sjq1b1awviSiCtGBPxi/6L++chz3D/A2kO+qqPJeXuJdSvar3FzVCNiYTZ71JgkDKI4SDoCybvbrZSk6jSiIt0atq5vc9e7T2j7r9h+8z+8/rc9BPUQUu0UwBJ5PyruopLSjwgGZjZe70wh0xwHfh8RPvD2FBULfCouzsKYm3QeZCS0JmYAj1FqFuotff/+ilWC9HLJlbQHMJQRBAyvHEkPOIKsQ0uzqhhhPtRJmSpuoZm0GLFBHlmUGHTSv4fl/MDBMRcGMhuw+QELw95wb60TSXJg==; 31:k6uE+YvaIOC3HLGIeok2QQ6K6lttKiURMomlyh/IvoRh+4gZeC5VcHNM8vWkAccDiLM0kfvqR0asUcj69ilAyu9RZ2klBRi6QO15Mw0jo2iFrdI+pWuJB9Niix/I2uZ6Jo7o/P+Uy++7iKqmrlDWyi249yhRKLfise4ocNVjZyeDivK6lqIlDmgOrUCles3Rff8Fi1p1LN4X0y987eYh0yV31SQHxr79TC9oLNJyYBg= X-MS-TrafficTypeDiagnostic: VI1PR05MB1230: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1230; 20:dcP8h16E+xfe6eII6r0Vexv+rFlW75XTU9fub+ZbR5IpSUB61iLYK2f2QetU3Fm/380zTf8WfKfjO+nEvf2dngedbP5KfEY1lA0+fRkPK2smdcaS6apVe7zvtpgeZjVoAdG/QltIxzsfsVRtDXmzIy+9sa9b0LnoydvKMZlPxoWHJgt0N1DFLOp03VAlrYvoIx9m3mD1lPm6X0Eg7pmI9d2jmes0tHDxMHbRkW1ShaVFAA5z7CQ7mGZNTvzSCzbwbPiEEpP4PCEpttlEH9q34TFRW7p/r4kh93LiWhMzzh97tvguSuYAv3FcXZKa8WO1vzh8nT8o9wqPufrO5bOd9HfMwIS2JIItecQJmaANDu7mkoHsSECkAbt4mS5Z7HEEBeaXwgeZxWB9NEY7rBIiYcYBnyTBgU6feg/fsrKitzMKwTSTlUshZ2aCoMW628VwxKmx+nnKTdASkp0bIy/kicMh6A+gMK/Y5Ks+r8juudgivWiKP9KUvbaSxTY5HVRj; 4:thdUbS5Y41yq60vGg6CQwGJhonOK4JVgL7lSkX6VkKd0Ko85hAl7zD98Y+Diqsd80LeXKXKZt3D8sMYsQsLu1mJRVB5kMg0EJPdgV3Qt47qiLPGPffrlooWsaH1i01qeGWdJaSVfvPMg2+YRF4kOpzrSP7DYiMxSvsZ5ODeWLc4G8f6CsVBEZYq4y/ZlkegeEqXe8a0sXZvyaeaWiVe1T+1IzQPfA5gZqMxaS7aEfrmljZYtuRaFAHoH/Vej4MYl 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)(575784001)(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:MFciXHdiHCPxJVTpYBGt/wzWSkUDXKoIqWs6GFm92?= JCXhsdY4jcEpQwrlsZGdb8upP0+ArdQ06MojSg4oXlXoF96bNix8Fy52Xt+e++93jdg4pZZcRHkdkEkqyBlOf51npmldLHN7n3V/8cWO2SEMFfOugHzk+E3KHHZxZeAZn6OHpk5iS+WQphSXWu9RMFTtaU/pa2QY6UynWEtahR36hbgjR1Llv73sB2C2YLX82UduXNfCJMag5lUy+gHJXLhcCtIrLqTob3gtzSF6foVYOoJIeGnxd4DFHL7zWbyfX29V3emMs/BWWu1hbqoFmfJ8iZhPl01dCLPZG/IeHlR58dO9Jwl6OvUrdtirJigkSW0rsppB7Z9C3eAyz7p/fG72hQ2PwzF/TMzXR4vMN8j4CkQSWlbC+gU7CJrniBHLJtxmFUzVInmDzgu5GSYNzV+4w9oa3/it0NJAwjJJWNvx0bp2sRTEu3j93bhQrbd6+i/YmhxiK99NdHE0iEnGwOnLk86WgBY3y+oePLTcfGYbCSrgqsE4GqstOn6i9NoSovjsrTBb4MW9dUtyBGlWjuRdFlrsfY4OtewomSj5xSiljhlxqrYhPX5vsB/tAi9+Ko0pTukQCD7z9XwjoYFQ/rFBUgPCGgk9e6krbt3JvvPOxlJ1QLn21hkb9SnxnSFD59f1PNccMFtT1BONfezRnHI+wSOuXFD3an78LnslqgFOBBSCl51xGgYLg0965h9C5+/5RDzSJ2D2cGEW+TVCzluYp0cMMv2NAHTgmLzde26QEVLAOiiqbHBmppmw15aSlHvckiZL5dtj5yoPfLuzYqlZ9IUr2kmwiPeuq6lzw1cKQ9qNSRCHN2YscYrqjsBfm0JwOa2vrKl2pYFmv+c+q7uZa7mi86d7WHEIjQ6PgIyvaIXtlbXbfTNOMLRmVSkQLgn/cmM9QtcpBo/WjDA8dzj8U4p6bS4LWoBeEzQt00GQvZV2cMPTq0ajW4RLDgRkupxXWenXImGBnrq/Q1aIPjJvVmsFPacBLanr3Vy1sKfQxf4ruZSx4WgQM6GOMTi09AJG/9v7woZnJ30uqK9nOzVjYDnwTQXB7qB+E+PSEQvfn1fsbiKfSUQ6nro1UM2cu3O+kHUijVkcLcffKSdzQ7xCBMORz6AdbboInZQ58tdsOLpFza5vAfbH9ZOje48O0o= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1230; 6:lXlIafjxKw711rMJXiNbBzeqrBVEdUuQmXykLc+u4jM9wrILWkqK1OJW0ZohUl7bg0pl+fMcoLNi7FgyNKVoqEErsZTQid55FYWUiSZ6FmfQQ9GxY5unWp/JTlCCfRY5Devsgbtve52wYKqJHUToqmAXEZR9uJ7rXaP9Wk8lQtSJr/QdlYLV2K9TYXORKMz7Vn1sKlCUKGjo5/Gtv/1OP0aRu3LKFIXxI/V4ivC0/snZc9Pls1+gyUkhIX8zj4pnbxJvqGOWL2JqEDQWWYPoup/bmdXuxLULvnhfC1bwLfCbtaXn6Y8/Jmt4wbITJ/49DzAG8Fk1V12RUC2LyRnpaw==; 5:WV4yFIrbYL4xqrZecMxFDJPJVR4DKUgCcXVZIMvk1vVa0X9x/YaN7L6uc3t7iyPXOgf2qbhJuBGCsZO0XsC8gfF/cFnnwHWB/FVe66n5UaB9nfw+j4pck6pbqcmS1ETiPRni7jRw+/POL+D4iCRKOA==; 24:mX1+NWAXRKI9QGnuJlnJi0o0hTfuywESX6ex9fzz0WsUmC+/a7UIQHI7TPr983L0l/XeWUSsLURfqjL/FS79Se5qC64dHCnYzVO6uetJ8SQ=; 7:Db2zTj57SEdVlbguowLbbH1nnh+hw42El0OeUpFD6Vpl/TkHPX4NHu8+lSILW6pAJYuQ94OGMLwgGNiuwNDdw1ubAENeNqPnAlymfQJVpepIbwoju+CLB/h9QGmdEbMJM+KuJuuIKJGinSh5GSg762uDbhc8mMgr2M7JfjYtcIckUPqfoGstSvj8Y+5yT3/2i2BB/Uzz/xyBcWZ16czrzYpzBvDr+8aYhAFqhnXV/7I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2017 08:24:39.3486 (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 2/3] app/testpmd: add Rx HW timestamp 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 enabling/disabling Rx HW timestamp from command line and parameter. Signed-off-by: Raslan Darawsheh --- app/test-pmd/cmdline.c | 15 ++++++++++++--- app/test-pmd/config.c | 8 ++++++++ app/test-pmd/parameters.c | 5 +++++ app/test-pmd/rxonly.c | 2 ++ app/test-pmd/testpmd.c | 1 + 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 4f2d731..80a249e 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -675,7 +675,7 @@ static void cmd_help_long_parsed(void *parsed_result, "port config all max-pkt-len (value)\n" " Set the max packet length.\n\n" - "port config all (crc-strip|scatter|rx-cksum|hw-vlan|hw-vlan-filter|" + "port config all (crc-strip|scatter|rx-cksum|rx-timestamp|hw-vlan|hw-vlan-filter|" "hw-vlan-strip|hw-vlan-extend|drop-en)" " (on|off)\n" " Set crc-strip/scatter/rx-checksum/hardware-vlan/drop_en" @@ -1588,6 +1588,15 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result, printf("Unknown parameter\n"); return; } + } else if (!strcmp(res->name, "rx-timestamp")) { + if (!strcmp(res->value, "on")) + rx_mode.hw_timestamp = 1; + else if (!strcmp(res->value, "off")) + rx_mode.hw_timestamp = 0; + else { + printf("Unknown parameter\n"); + return; + } } else if (!strcmp(res->name, "hw-vlan")) { if (!strcmp(res->value, "on")) { rx_mode.hw_vlan_filter = 1; @@ -1656,7 +1665,7 @@ cmdline_parse_token_string_t cmd_config_rx_mode_flag_all = TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, all, "all"); cmdline_parse_token_string_t cmd_config_rx_mode_flag_name = TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, name, - "crc-strip#scatter#rx-cksum#hw-vlan#" + "crc-strip#scatter#rx-cksum#rx-timestamp#hw-vlan#" "hw-vlan-filter#hw-vlan-strip#hw-vlan-extend"); cmdline_parse_token_string_t cmd_config_rx_mode_flag_value = TOKEN_STRING_INITIALIZER(struct cmd_config_rx_mode_flag, value, @@ -1665,7 +1674,7 @@ cmdline_parse_token_string_t cmd_config_rx_mode_flag_value = cmdline_parse_inst_t cmd_config_rx_mode_flag = { .f = cmd_config_rx_mode_flag_parsed, .data = NULL, - .help_str = "port config all crc-strip|scatter|rx-cksum|hw-vlan|" + .help_str = "port config all crc-strip|scatter|rx-cksum|rx-timestamp|hw-vlan|" "hw-vlan-filter|hw-vlan-strip|hw-vlan-extend on|off", .tokens = { (void *)&cmd_config_rx_mode_flag_port, diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index e8e311c..76addf3 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -600,6 +600,14 @@ port_offload_cap_display(portid_t port_id) printf("off\n"); } + if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TIMESTAMP) { + printf("HW timestamp: "); + if (dev->data->dev_conf.rxmode.hw_timestamp) + printf("on\n"); + else + printf("off\n"); + } + if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_QINQ_INSERT) { printf("Double VLANs insert: "); if (ports[port_id].tx_ol_flags & diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 2f7f70f..602d98d 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -162,6 +162,7 @@ usage(char* progname) printf(" --disable-crc-strip: disable CRC stripping by hardware.\n"); printf(" --enable-lro: enable large receive offload.\n"); printf(" --enable-rx-cksum: enable rx hardware checksum offload.\n"); + printf(" --enable-rx-timestamp: enable rx hardware timestamp offload.\n"); printf(" --disable-hw-vlan: disable hardware vlan.\n"); printf(" --disable-hw-vlan-filter: disable hardware vlan filter.\n"); printf(" --disable-hw-vlan-strip: disable hardware vlan strip.\n"); @@ -601,6 +602,7 @@ launch_args_parse(int argc, char** argv) { "disable-crc-strip", 0, 0, 0 }, { "enable-lro", 0, 0, 0 }, { "enable-rx-cksum", 0, 0, 0 }, + { "enable-rx-timestamp", 0, 0, 0 }, { "enable-scatter", 0, 0, 0 }, { "disable-hw-vlan", 0, 0, 0 }, { "disable-hw-vlan-filter", 0, 0, 0 }, @@ -899,6 +901,9 @@ launch_args_parse(int argc, char** argv) rx_mode.enable_scatter = 1; if (!strcmp(lgopts[opt_idx].name, "enable-rx-cksum")) rx_mode.hw_ip_checksum = 1; + if (!strcmp(lgopts[opt_idx].name, + "enable-rx-timestamp")) + rx_mode.hw_timestamp = 1; if (!strcmp(lgopts[opt_idx].name, "disable-hw-vlan")) { rx_mode.hw_vlan_filter = 0; diff --git a/app/test-pmd/rxonly.c b/app/test-pmd/rxonly.c index 5ef0219..f4d35d7 100644 --- a/app/test-pmd/rxonly.c +++ b/app/test-pmd/rxonly.c @@ -158,6 +158,8 @@ pkt_burst_receive(struct fwd_stream *fs) printf("hash=0x%x ID=0x%x ", mb->hash.fdir.hash, mb->hash.fdir.id); } + if (ol_flags & PKT_RX_TIMESTAMP) + printf(" - timestamp %lu ", mb->timestamp); if (ol_flags & PKT_RX_VLAN_STRIPPED) printf(" - VLAN tci=0x%x", mb->vlan_tci); if (ol_flags & PKT_RX_QINQ_STRIPPED) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 5507c0f..ec29908 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -339,6 +339,7 @@ struct rte_eth_rxmode rx_mode = { .hw_vlan_extend = 0, /**< Extended VLAN disabled. */ .jumbo_frame = 0, /**< Jumbo Frame Support disabled. */ .hw_strip_crc = 1, /**< CRC stripping by hardware enabled. */ + .hw_timestamp = 0, /**< HW timestamp enabled. */ }; struct rte_fdir_conf fdir_conf = {