From patchwork Thu Sep 28 16:48:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 29366 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 65B301B1BF; Thu, 28 Sep 2017 18:48:41 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0045.outbound.protection.outlook.com [104.47.0.45]) by dpdk.org (Postfix) with ESMTP id 2AA2E1B1AF for ; Thu, 28 Sep 2017 18:48:37 +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=rlHS3dw5mlAbaI0ipC3DZHsH3PSQpLg24NIdFhdGxH4=; b=izr6j/MLSk4g8B5OOZm04PVuJpiWJuzcDFeFk2y9aLmWdWCsHUw7aVvLlgRRWr4kLygxmKuRNmGt++jaAZPQadLJxyyvO6vjq1paxe+TxXe9m50Wuw56QlbDxT4xjqmPe+FunTG/7FSgUEZ/DlXZh9RDhW+gjkfskSUXG0P2XuQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by VI1PR05MB1232.eurprd05.prod.outlook.com (2a01:111:e400:582e::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 28 Sep 2017 16:48:35 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: yskoh@mellanox.com Date: Thu, 28 Sep 2017 19:48:22 +0300 Message-Id: <1506617303-32509-2-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: <1503560793-21597-1-git-send-email-rasland@mellanox.com> <1506617303-32509-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: AM5PR0602CA0015.eurprd06.prod.outlook.com (2603:10a6:203:a3::25) To VI1PR05MB1232.eurprd05.prod.outlook.com (2a01:111:e400:582e::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1ed32871-9ecf-412d-a6c2-08d50690c303 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:VI1PR05MB1232; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1232; 3:aiWPDb0WoOjj8cwZ1xJfuD1tNqEiGETa9Zwc5Sm69EPD8tbMc0TVqHhEbe0jc/YVpFPAMvo+RMCi/yeRSg6jCCWBSfFRgliRFU8j1vlnLseg4WGzF/loiuf1/13aXhnFqS94bau/zAtgMDnejHWBiK8R8rcxa+pUp9I5f6PExfTAXp4a6wjPqjiNHn+s9F5GzpkFx1F+5L+CB5svFGB6T8qVv+0Sy3AbCJXMmpzG2vMn/J+S+4IALiyixoJW53ru; 25:N/WX/dMCIUD3xGKpFDatkqLz9tZNIAj0rxT103KSNmNnp3Egwysacv0cRm332B7M6pL+61xR3ZlqHOCYGDcDJzhJzmRKM8dVeOZVWNaZjaRYbV34USMI9H268XUyOkViDKRYX5zbH6o5q/6UPK0d/YbfXkYPsve+9iswuJUKwxq/lK+TlhP7ggyWg+jKTZMM76Gqm+a777JVv61vfN133yNK6NLN13NMcvwSFwB05/DuR/U9d3N7cb2ACrMaDMSkh3w3N5T1RFipXfEqli5hiKBZQM6sKSkLbpkBoP/r8sgDHR6N1D03l0p+Tx1Hv0aqUne+yAh4BcvDNB8Z5qbs0g==; 31:zRYFeoeHpYbBwYG2GgGU9ue4nHcuvfhtvubXt7vHKbFldE8qTCwT3omYmy5ks+m46HS3b8kqBtvUj/D8cUJ6KNTZlOOVsfnVhhfaNowbHFkTVD9u5Rb0IvQKSLmcK0uFxx7vL6D+rjgJcy5t7OSeiv6euynsM+KDGeovmwmA8Y3ojPHRr5HtvG9lS1HTWv9P4iZfC+N9y59BE4qriS3ivaDfLMu81ynkhD57grmkhqc= X-MS-TrafficTypeDiagnostic: VI1PR05MB1232: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1232; 20:RN4LVpvN6XWADlPL7zDlMoDpQBSSWEerrC7XEstjgwWRLvVAlj/Bnt90XYb9Z8vOcBItr6Bm97byIhT8ehhJtC0u+6NoGMs0oizrKRhsjXY+gVFB+ZYk21ht2+BSYKbAsIbQ3k2Myuonf/Q5tz5ElfhpWNumj2DHofeWH1aL5MzzVW0EuVGTWOwMlaABJj5JTqCT0hoe9sExUoY9v5q+ofhf1NCTLcFfEGfbbFvOXqLI9F+5P0E+1EM/+wYr71QAFVgps2c5l4RomiKGTrDT4Ig3jMO0E52mL9BFiLb3oZ+jT8e9wye+RwfkVpuElLpaVF4w6bdud104V1sdt5e/v/dAw7rbQ0rhHEV3TSG1hyNJrpBoehi1ag9N5cramVRCyMgmnqmA4w1qgs+y9URxC0+iVfhUxM9LrxsV21rec0oZjC/vayUeBdQM8JpSOksBB9FT9OwtnNDAGKZ5kaVnDAJd0iv4qA6LkNqxXKeyfasiUpaWWFKKxGEYPPMCdm4N; 4:9VTTQGqygPgUNBqIt+yp6VJ+uWeh2/UmYeI3pcM2B4OsIcH6NESqoUq0azBessv5UYBluBZqI8DU2LpOnNaOMCauT/xCPwZR18dNCDsJxROsBj9IazPo9tfjLUxe1ZAN3ydo3qI3JOro51z1pI/ARlkXtysJ7Wh76WwCEB09GfTuDLXhnFRKuDJIog61/GyEGUjwjefxNHGVHn7tToMTEhYM0y92ZdYccBHrRl718aHPv7AkfU0dtDy5TJrcYmiG 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)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123560025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR05MB1232; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR05MB1232; X-Forefront-PRVS: 0444EB1997 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(189002)(199003)(5003940100001)(106356001)(50986999)(105586002)(6666003)(107886003)(81156014)(36756003)(50226002)(68736007)(2950100002)(33646002)(8936002)(8676002)(2351001)(6916009)(2361001)(6116002)(3846002)(478600001)(101416001)(189998001)(53936002)(86362001)(4326008)(76176999)(50466002)(5660300001)(97736004)(7736002)(47776003)(33026002)(81166006)(69596002)(2906002)(48376002)(21086003)(305945005)(16526017)(66066001)(16586007)(55016002)(25786009)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1232; 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; VI1PR05MB1232; 23:SmEDS2GS13Xu4hv7GSS1RiKKCokrHbjn9EZNsJxbN?= 1ek3rZTr67OdFAHSFWleKTqY4jeb9CvNttKZL6iACkywV4HoOm2rytP3GC8IixNbdyPiDwKHKH/rxokf2p+Y15/MI4Qn+ryhGgGBIeGze6RsiI5S6IiCrVWIr+NrjMc8digoeNK4nAncXBBN0mHlwhQbOLSaDBGIB2zD3ICbSrUItIiJbKV6CZa7Drl1rt4Iln/yf7nqVYXXOcOYsWf4r0w3+G7xzIrYP7NC+USTY0wynzhNALHlJb0hDHrrEgbgRlO7v1eadVqDf+FXnzMY7xWVFJ5+NytJen62QGwzWnxEb6h6RYOdOStYfH+YZhIqFNbWcJ3qECDOQBReI4c46OpkJZvRwW+vGf+Y/MayP0BqSzDPJk/+ENmQLUmc7lcgH3Hkyax389hu1uvAEk6pttZc8jHZLcm/3iKKopaXmmH63npVywDpubF+RdDeAqmvcG5vnbgiv5uKj9G6ugTRAKheLh5DUiFoHbYEdr4IJRHTWhYDiZXW7ezJvnzF8SeC4N7xbC9+Z2etVeejikahzFsgSLQdSpXnlT8g2Nyv/6HyepW1vJVIE+uyo0zF6hQaXaQC3kdVRdkB1Llu8FTPPLYeZtGfJZyVhCWLZ4fjatZPUk6DsosrosdwWoTs/kAVFLwcu9SvLVB+AF3qWCO7seWBlxL/sj01kirRLLmNqcaOc1Fb1TkEiGapIrDEaiWqb79068mpSVAW06dVkmqfDMHd34IwhmBWDorg/4RKVZiEpK4mm3hUxeLEGNyvndBE0wYV9CIRz8wptgb62/AkadS/Hy8UuhxEvbaBknHoyYMNE8YKciTJJSu7AILnI/FE9UKOZvX8qs7VoL8JVeZaxRmXU4ocrzbV9UD05ccnZB9gXf5Puo7vH2suh+3xxs4CeMvV3RjUJtP1OZoAkA1t1to5BVliGtLLqeEcy/PjDnhCYo6g/rrQKs2vvNLBQEhBX8mj84J6ouBne6yPiDbH8uymPJlOC/JCr+EnIZJgpVSfwubKzE8pi+XpSprZNw1dWlT3/vpAf2INhfwnFpmyZknKlMIJ6D8nrFZyUQ0tnRm01U9njrbaXfK2yiSxNIItib39uH04vY1X4F2Kf3biZ2Ig0ia71w1DWqPkDDLSQeLJnWycWWOWaQKoIZlyc3ESeI= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1232; 6:4F+aAEX2DAMAKREThnYlo4garVG23DVCW2ws9QHpQG/t7HHY+xT+688BRKoR4duNOxF4lKb9o6sECX6sz4Y14IuoK9SPySnx2QBjd4hDQE6j9WPEpiaArb+X7zO6pOWFcyBpu0QQxiTkj+fD5bQ7BEdwzgrFfx5IrP6jSpzN0BtUeJRnHBSimO31HCwk/aqgX2EY1Cbk/pjNlvhyE10rg19OjsQ7hbmAw+xOq2joeWwTFyKxsFl1/XglqpI/mmx7awc3E+tDabX6WTJjoKdp/U5yhcoI6CUS1g0sXCD6j3Q8FcmrcfA4IifrYu2DJUPi9t4+0IbC7fFHegwEClSgHA==; 5:xtfI9bDwvmCIoSRNqPqhjb0E8SWAci+xWa2yTlky0dwbPU3l6I629xYBNqXawsa3FkhvkrXmvf3II8nzRQxqbKtUfTayWFxQYmLqa1t3mWoecIQtFUXG2/3Sm2eQ1LIo/XJ58vR3KCDAFW7Q7g8vyg==; 24:DF0Pn2UM2RJvHGB7g4TreivsCtmY46x/Z2j9EzkLjxM6kQYwP1gYeIxX49eccRsTwbWmsQflhloBJELvZMNI2uK4HKqK/vVOtMXfMF83lZw=; 7:ZbiqaCBC4JZB1KHKHk9otGoAhzUGCL3GVZQ+2qf+YFbnI6+scIwhDYyE44XALeF6MeVJrm+GZIBliMjQV8XsiFCxSGqoJQnIZf5AbKaFgulsLsXmPEGLcW6LO2zMpogZORSdWMAauLxF5cdCvblrgQyYw0a9h3CPHgbHVRMVGs25btCe1sLWGFSHp7D9Gf73oJk+qgFtaNkQvjFq8+VuQ4VwpYmkFZvnWk3GVX4jCoQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2017 16:48:35.4803 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1232 Subject: [dpdk-dev] [PATCH v3 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 Acked-by: Yongseok Koh --- 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 0144191..faacd92 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" @@ -1584,6 +1584,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; @@ -1652,7 +1661,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, @@ -1661,7 +1670,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 3ae3e1c..6c644e9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -598,6 +598,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 7d40139..cddbc3f 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 = {