From patchwork Mon Oct 2 14:50:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 29481 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 EDBE21B24A; Mon, 2 Oct 2017 16:50:58 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0067.outbound.protection.outlook.com [104.47.2.67]) by dpdk.org (Postfix) with ESMTP id 9631A1B23E for ; Mon, 2 Oct 2017 16:50:55 +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=cXo0qdUkrrTwGV1X0ZO4wi6TtK7OST+vg807fVGIsa8=; b=RUGV1cpU7KlJi4YyJcQaXxfb7ywyG4n5iBjWhKcMdjNytTgirdbHUNKKJYQGYWjYZnAF7MwrckjNOma8K6xru8YlSkfl+lrxlATe8DBPtbic2tDXOiQGwEkgl4NJ52e1wXz3wafNiG6k25apCyVb7k+JPYMIy1NZo8SEa+a8jyA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM2PR05MB1217.eurprd05.prod.outlook.com (2a01:111:e400:8450::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Mon, 2 Oct 2017 14:50:53 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: yskoh@mellanox.com, shahafs@mellanox.com Date: Mon, 2 Oct 2017 17:50:40 +0300 Message-Id: <1506955841-19683-2-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506955841-19683-1-git-send-email-rasland@mellanox.com> References: <1506617303-32509-1-git-send-email-rasland@mellanox.com> <1506955841-19683-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: DB6PR0801CA0051.eurprd08.prod.outlook.com (2603:10a6:4:2b::19) To AM2PR05MB1217.eurprd05.prod.outlook.com (2a01:111:e400:8450::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ed2fd65b-0d99-4955-80ca-08d509a4fba5 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:AM2PR05MB1217; X-Microsoft-Exchange-Diagnostics: 1; AM2PR05MB1217; 3:/4C7c9xji1TbUjEb2Ia76xPzJCw+a3DFPEu6HsFvAWZw2QaMHT9BZcyUQFeBBPzCprRK0r77VzREdjDPqi9FzgwMWjyo8jbIoMzBg+CluciiC03/7eW4NZPByw9bUsvnvFPOLE8p7xqxq5lTLVn0gZGtWHhF5W2pqgLeVFeCLnI6P/M+4EgTbGotJjVidGq178hW0Dpb2/nJuoP+uP5kUxtMIYIC9xJbuE2UrRcYtYaXtW4AHMJfSCXC6a1MfoZt; 25:UkxLpVBULdh7PzdVEVQpH8AQ2h3I0CU60Lckv57Pp3kTg7hounez7ska+fjvWCu/GGn++1yHEylKKy8MWMc9C1fwDx5BIPUd1nq7AafOI5Aj4qxpwtC8iIMY3qOWhYJ2DWlLvAGPRMjvAb6xG0o9LW40ztfQ1bmp9JJo4QjYP/F/ib1HfLu/c0JAHihVd9bAY/bT9yRW5jeePzZVHIc6dk+b1e5Mcwba38Z/zRxJ0ThZBfmPca50RSmJrIr+m3ao+flbyUMtjJhlerBVj5xhGa1NVEiDVtlGvrI9aHTpl/JuJquNouDiJBet+lvv17h0DV+3Niz1vHFT2bDCrML/Ag==; 31:t9cgb3hdxp9pt3PO/U1RO3BgpUb6AdTvW8QyzKQQgdxxWSW7dVzRwuDdoLGQ4OBCr3jyseWI9m00f76ZbgyxCJvAJRTbCElNnuW4cOFk6n0yLf+s56yTllr2ZilJauSfPjairsZ65oFP/3vswkKZPkhC6tsp9LnAtNUKg1ssoDgUTN+fROwuP64gd9FNI3PeKSiFLfhsxlx3vpIxcILbtoOW6szElmS2x23Y2SxqSxc= X-MS-TrafficTypeDiagnostic: AM2PR05MB1217: X-Microsoft-Exchange-Diagnostics: 1; AM2PR05MB1217; 20:AsbGqbUYVWrDsup3869Eg3O0JOhhd7kPRiUSymJtRxkrgKIahDx6UHdIt/EaqOWOz3D8Y9Uq6/FGXdyQ946Uqjonwh/EYO5rAASstvP3s9d9PAKm91K8rmf6410/NdqwUsyaECEV/AWSVBtMF/A1OsF1NgPo7bQJCu76p+Q91q1ofP+W9yUn96WdXQalr9aM4w89S4WlVhBg1r10lw7ued9C9O2Pgaa66H60oJy0CtR+KGcnXVCWAU+20t2nxMbnjhOQilnmys57ggHy2rbU2ixLNQLW8+LO1dtk+N/fgjKtjTOAqegMfnwC7sTXvqS/Ww3990YG8wod3DkJw4bNfiyaX2beFWqzsntELAOygYG8he4Hy+Zke6PpJEGUrH5O3TYd8KDJArkkiaceLFiJ/hkhlbs7ntDeySKn0KbEDPX6/l18uewVQi1VDFgFAzBotnF6QkrcmsLmVPuGFXJJ0cYp9xfR1cArogSN2mqZ8Dj3pFKUH9Oay35GkK0tNLfw; 4:J7TCBGScPhlQaYIZ3vg6s5EmJLSKKBPA9XvSbcNL0clUVSlvmTnuh148gU/g7t1g1DjRoOeAFFsO9xEOwxlgHW/iIkDAc0YdNIFZgvn6fuGz6Rh4wr3Hy4CSKLDAVZBUeO0N4l+v5DNMTC0hkHyYuROH4iHgiI1JORF7x5CjbkiY6TDnVxuYd3X7UyN/EWGHd/OpnkzPNBV9UVeG5dEOfKvbFVRcMsdKAIkyIMxp75IyKjEiDhb9+FCgQ5HRNB+R 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)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM2PR05MB1217; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM2PR05MB1217; X-Forefront-PRVS: 0448A97BF2 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(199003)(189002)(5003940100001)(5660300001)(6666003)(478600001)(50466002)(97736004)(4326008)(55016002)(53936002)(16586007)(21086003)(316002)(48376002)(36756003)(33026002)(6116002)(3846002)(16526017)(8936002)(7736002)(47776003)(50226002)(66066001)(105586002)(2906002)(305945005)(107886003)(81156014)(2950100002)(81166006)(25786009)(8676002)(106356001)(68736007)(101416001)(69596002)(50986999)(2361001)(6916009)(76176999)(575784001)(189998001)(86362001)(2351001)(33646002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR05MB1217; 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; AM2PR05MB1217; 23:AT9MtRmrzkkFOaBstOrefaNKXfSmprjYnNlG7OtEo?= Lo+RLM4WlZ+XpChQD+wA/T3cgwAOGD5KS5cthWTNSFtebf0bf46MD73LCu/X3u5MwapbxDPI7Re4GtsFV177lFpuAqsY3D7ixmqZevkM1cKx+DGMQ00GTYuxNIBZqVgHMt90qArPL1wgDdqG4t3KqoHIlj5JfhKnm0wgjnDMLiNBHNFjt82J1jC5Qvp+j/dvuum6jyiQ40Uxi+GePtLCjFlNzPesYc+fAUWFMfasXVcR4SzCwXxhvW8oMlANBMb86Xkb1sskaJambQ6j9JshAhzSdCRO6wDy0VJdEn8/0UrGhL/rZvoMpLAsJOK3DbtFq3lJtAVx48PRbqmBOInfNn6T3CW8uijPNTka3iuqTBCVeWj4bd4Az6eD+uJJhi2H7XdUD6Ew4vjDErR0km3Mj1WUXSc7DmGiuYloICQC/0gaHK2Hor9/3eUD2gzmbx8NTHH0OOyGbp8MbrbCIwhQ8cAyp7I4msdCq2i8W1O0G/SAj6miVAO30gflk0h2yRRYBmYu9zEWdHxZw/zvAcU3KjdWxSfsJ05VIIitvb6pNyNzFxHtjaQIS5VkjXIYEGJadS0WuwjxJdTaSprtEE2IYmODo18939tMraICql2XW7s7Nm9PzvScf9WFIOzT5TupZIWXjbDs679dxequOqhX30BuoH9+Cu+0KS8bjUR14hRRqvqJ3mUwEtBpNH8nY/pEu7Sy7Z/kLwn5KDGkRkZeSRCPnhc0O3Sq3VCktREhhV9KkWSW5IJ+0FySe7ub23Kt2L/nukhF7HeAuzuqwAXsOAeWJUTj9JuVerEDg6aKRd4rfq4jhYWMZvhNGSv7egtIKVQCeX0ReTshrwxc2Env6ZIVJOE/5Fvr37yaAbjuHreGpiMimPfV+wr4QT24LWc4WackVW+sVK5TUrqvqhzUpM3zuCfbym9XxVdvfVJ7RQ3yARVwyVL2Z1EbXG3hBsvdsDgGsWHIzcYbTGIs8qnS8XvSX3EHH4m0+6G7yHfOVITWXIJnkQMXJbalC9r6iqasxoIVp3BCT8JyuxyEYUm1xu7VDLWkWlFGzcAin91ftC9iXOUcy2ghSGW1i4bwZKiEa07pIjb9f4szSkDYMQnNnd/+sAYbPs3B4DdJTh7LP8QEbAT+3EuXM0SM2tkkC3f2EsZDIjeVjQCU+3vQ1Xg+Bt9 X-Microsoft-Exchange-Diagnostics: 1; AM2PR05MB1217; 6:j5mnVCerzxTVmZTqGqh2syLQsC0/aeM/DGI3OliZ5HsU0vYaZa94/GX+sl6JZl7JR3hJemrfZGbTLEAhQtl3ZKa26YtoT7O2v6JJpZCkb1vDLIuGqCST8Znd5v3bUM1Ye+eJCG+d+rS7eIGRYD6rRSEhI937EG4/9YY63yyO0g3miwOGtbnfvPa2vsbtTzJjfTcN3tfbeQwJ8XLAKVpbFAf+rOqgHbpb4lWkjlxF8zCxo10xiLaeEx3q1MfEfL8OzNq8M0YS/fi+gVtwLJhpRsURUgAWtjxOHNgICi4LRMKsze7fgfDWQ9jM8OWwpxJFyh65/nxyn3C5FGzkDhF0VA==; 5:v4mMlQTUUFuWpVDtidO20ytOewf50Juhc0LqmwRuXNWQHtPwLNY5J9y0zfi67kXY6iuJLgihtctTsq8Ea71jw+JD0tGjcdx45KaHF6HzjtWwV/mjeOkK3Jj7sxwc1h98mo+lM+klpI6TjYxE6beS5w==; 24:GbEgLeGsjZjYS86bKk/lhmRm3oShlKgH9WYR+PFenreCSIc5S13T09DqM6/uv0R1jdDA0d50bjM/TAj3pCrMDFTz7Zjl86IJ+ImslXJTz1k=; 7:Ry4vAk2xgckZT5wynnoMVpfJ4guPdHhsJzFrI7CrdQSQQzDMYkTjAZRFG5srmhJazDABSNyyr6IaRmTtPhaGiZf4uMNwhQSgvymvHgrfdsB/F2SYD5tIEXemeIAIR+THoL41z5DRXsPc0hZK1RchV2hngUDzB27sXyMtwMqGtRg21HsIDlXySYvU6L6yHjaWm050iWgWWXZjzZxFP9UZU8K5FEN+izeqeyWuHxHld0Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2017 14:50:53.7132 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR05MB1217 Subject: [dpdk-dev] [PATCH 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 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 = {