From patchwork Mon Oct 2 14:01: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: 29478 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 2415A1B22C; Mon, 2 Oct 2017 16:01:22 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10051.outbound.protection.outlook.com [40.107.1.51]) by dpdk.org (Postfix) with ESMTP id 54D3B1B21F for ; Mon, 2 Oct 2017 16:01:20 +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=pwG5//ZnI1+8jCjW8nFfAoHqj+EBq4fxboAFr1vjBpQ=; b=Fe7UN9lqlbv8ROn6Jks2jo3OVV+I5GQLjlW6S6rsbwN1DE6frhxFS/4Yaf/Mj/dwCEX2g8FNh1FwQ+Cn2tqU5QwTGy+7AajMeWqh3xm9nvPxODee7U1sI7ARep24lbUz75nUToFMkoeZG3hylhuOMkRzu6uX9gMnd+bM3dZxvPU= 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; Mon, 2 Oct 2017 14:01:16 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: yskoh@mellanox.com, shahafs@mellanox.com Date: Mon, 2 Oct 2017 17:01:03 +0300 Message-Id: <1506952864-27839-2-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1506952864-27839-1-git-send-email-rasland@mellanox.com> References: <1503560793-21597-1-git-send-email-rasland@mellanox.com> <1506952864-27839-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR0302CA0024.eurprd03.prod.outlook.com (2603:10a6:800:e9::34) To VI1PR05MB1229.eurprd05.prod.outlook.com (2a01:111:e400:582e::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5e7503bc-57ba-4bf5-a522-08d5099e0d14 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:8Hgf8aqk3EUpZPWIGkgBUZCuNmztbqIuD3aNNVxJVPKAlGXRUO/fxXdFhobFfuFIzl2yvzNnMbW1aiMdS+ThD5z1uPtp18Ja6b6esto2s8rw4U9gRKf8ECSmNxkSCWZVTy3DJge5GV/uJjkhCwxwUGDSLMWtAY8mgHTGkprgRhVpH3ryMeJIV6TUCtcmCSD6iuhXEPdIDrFZHm2z24yQIW9HLak8NeFiaWc3+8IMumnaL3vClJIHB4Nyq5x0t97z; 25:f3vVZTfU8a4q+UPWsATlcwyinJXfBsY2T9/qjsQ0dtPO3KbbOYgyhjJ6uwkR2UtnLv9NB9yrz0Hs/9leJFrfe3Au7ECAAoJBblQvMeh8PF96vbLeIYNenv7OfpZvu+WX5DBAXK55cTWvW0n4ZLwfWSL1ND3VliExGglhrCZiasH28pInxmpItzYqvuLAns6b69q02rwEFSWu8IQrJEv5kfV/rZ4tKcoaBwLD2hZk1L7jvmIo3bp3h7Xfwb4UqqlHyn7YoE9jqVS/zgPHAZeKc/vZKgBK9/zTguumcG4rpjFhUhAsEwsW6/IzoO5hWp6fuhdZ5W3zcZU9CmR2Cc4tJw==; 31:poY6mqw0XYKlpdk4Ob8Sit2gPzLpvX+icHrHivjac4P9M0evZ1S9Z51HMt6lduOY/sze8BiAflmrz/gtKeNM+wzDVr2q4RFQ07hlWKGKamUbML7YsE/r7Oak/7QQ8GJ0eL6/qbE+XtICpP4eQQcsTA3FqFtr068rUz/clT3ZTHByJeiouseQxG3ZJGG6nvXZrQ8J7Ro7MzopWvE+j696tEAFidge++ZxBvJ0cE2q5yo= X-MS-TrafficTypeDiagnostic: VI1PR05MB1229: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 20:4PpRw3LwkIFwJfwAmsG3aAuIm3kk8D7vPgWsCqantmYIqUAQ2iQ+MwbQt0y80pUhL5IP4DzORDmesn3JFQviAWePyLFqDnnFmMk4ubXCJSgO7HfLVzQFKkjOtl485qT+cnXN9rcVJD2lKeiYBEO2PsjKnUACjkIsNDaTaHCuwxF7Or4IbkRVLn3Pk+fwpcM9YPQdkmjy8tSgF1gSsMccR+zjH6/DcA3QisHhvXYji907JMjz+9H9MMzhL5zaeZpyN8xEHC6IIRxN15rs37e93ohZqGM0V9z8Mk074orEaCs5VyoOrmAfT293RV5PNzY0hS/zNDA+Jho7ummanfKHavYCn5L5ezERI7YaPUn+cYKDko9+nxjnOahpldI/jhuEkyvYoMhZWa4atcDupcBCLeSgU5ipplnyLxpQdd9Vbjhvs9ELynr2VksTxg4z9qb27l3BNNKsIYGiNEZeM5rP0cUTy5RELQ/dbzabSxR4nBBl6zpVzqFiSGtMaUjZg8fK; 4:RzYiRGz+cRkohtk+lAY7qTf3Y3rTgXHQ7fPgKW0XP9yR7TmmpwJPoZr5bP/VTTY/yer6vZ1OUn9n0FIqycAp/JpVyuchv487A2At/sc4QS3TdoCNzuw92straiZeVVt9P8+uHCj1QuRaJ7vMTG9nx6AkrgqleenRNgj5MAFR8Q9E7fQx3CdHv6Otx7Gu+C/Qv3VFqrAIC7diIM5bjAz/QPO0vCsRo4tCogJckWbcdKHdLzinFBpVlE6UrkTPYYcB 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)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(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: 0448A97BF2 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(199003)(189002)(47776003)(21086003)(101416001)(33646002)(189998001)(478600001)(4326008)(76176999)(50986999)(5660300001)(53936002)(5003940100001)(55016002)(6916009)(16586007)(2950100002)(6116002)(3846002)(305945005)(6666003)(69596002)(68736007)(16526017)(316002)(107886003)(36756003)(8936002)(2351001)(7736002)(105586002)(8676002)(2906002)(50466002)(575784001)(48376002)(81166006)(81156014)(25786009)(106356001)(86362001)(50226002)(97736004)(33026002)(66066001)(2361001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1229; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:3; 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:ttG9cxJUIDFmvYAUTdhduziaiFiGRo1OiHPIlq98w?= SYaIg9Zs4QWBDAyqbq56OmUsdw9AT9mWS75tUpD3xqlo6JUhfWrFefgF30A9TXATG5FjXDxB1HE2zdD4yumqaXjAl52cpF1VKqQQBqO1t22cAsGFlWrxvu/YljAqjvnCGYBAR8gRra2Bya7EHQmUBwE6423vbD+3VkIV/2b2X5XuOiHoeoIF+B1MDSnamtiS0/DUJiU4m1zJUo5N4C4paFgInW7l51fD42IFb9c/o+is12vg8UJ3YiEPtQ5th4RukT0EUK+y2F96LxEUHojurKTSgl/83sEFIOLEWLgeDpdRp0XfPioJveP+XLsEFtYJnnl3aRKPJpMZa8dwMjc3rTw/Z7gFhPgFmxG/YJq6yiIsihOioAK5a2MNUdIbJCIbtysyvrhV8zBdKQq5BIRkAexJJla0k0ShfaJHlMoTAhG+cVwjOhzlQ4YG/jn8gBIhOa5eJvrIo6lTsexl4+oghOYhz5TgafwSocBMUKbLMKLBvdBlPzQfZSQBKd+3U4qu+s0xDHL62DIGI32dJNh9KbekDjBBOeezwMavi9HsAJvJyvJ+CPhCyk+2NQPh3pVyu95Jwm5yqVCP2gzJfeRQ0j7Tu92lyuZb9U7LxQiHkgPRWbhpo83xFldOXrmlDMsFjN5fg5O+pnZr11MP5soH9M2S3K8QE+BqPm1dlUagRmMI14plMVgiff5HCDRcXGkBJzQhNVaD5F07OCUcFgEr6mOywOTDS34lkKvyvJrJhSg8y3aZzz3cKppdvZFQbxmOUx4u3dHJwd+ngL+iCHWs1/mCmolz7rA2HjjI78iJF5EQdxoCyCPhfvfXods/Ob1CJm7OPgraV1AM/IxioSQhADP1ofYwCeTBi2yn2/T/eJiMPZZhT8NCWKp4vcJhfTu8NJAsy7itkKeLUc5k8a1RmmS+kG2lIvws5ORTm2Skys6xhmOzWxN5zlXzWpNy+NgUn6n+YgqBiF8KsjnPXBWXEhYQZk8DWO61XAQ5x1JCKKj4nhTIV95dw2ABdXNZ5EczAsdeHucpKa3tEEO0KcUo3dluk195wACZ1c+aKG067x8Bu+hln7GT7UaemaOZ63EhdFfWon5uMqSr+yXnztbvLEc2Vr7c6OsGNLMQXH+aR9owvbrUhRi/vCIxygtH2bnCNFyts+JyEq/GsKlLoMAQp/p X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 6:o3XQz1sbh9kmji4SnHfwzkUvbXhklTP92r7sSLnyI2FdGlLdxqLzaAup3yY5f7zsba5/nDTIWdAW8jTU54ni2HbiHWUgiM89bCaUsaYZFhOcgPylvYcmEVVB3v4gQWQJ6YYV9TJugr0gv9qswOBRbJdjswZpfGLznlRVL0bzhkbRrAVAv1IguB5rPs5dTG8CgsY5yPxo7Y7sQBd8uLoV0QsDi26g4XxcbQ+HrRspOfQ5ImY6QO4qlwKgAU7Hox0vq2UtL26mY7j7f2wpJ8g0CLvPNuBWClm2XRLNoVe+ee2wHue4dmiPbyWESW2fJN8P9wKJLFFvCT0ERKszXRGfcw==; 5:riqmF+niZ4bxywadka8h1o8ZUVJ/xFE/n95DmJwO6dIBpx5l9wKKaYxK8K9mp2Pp+NXHS5papm7pBrVW7NRx8WfyO92I/ioljh48BWiDg9NO33VU1n6RAi/4Bi1uJ/lFQwyWPpDXPSAjs1oDdtEoNA==; 24:S7FN2cHVtATIRlilZzrcVlrb5bFGqnyS19cOWpNDH+biqBu7YobYv1pjsbiT2Zqn0WbKAoXhojdyUH6HoZ1QKsQbL+4txjZCJ1LWLbPfEdk=; 7:ijlKKX8xbgfmWaTajwGoGuODwipNFfLB/TtjYBDPQdezzA9RuVqAT8iiuCsbnumu6YlHlMW4OY/fGELMgCzmO/IoGGY96G97j0dapLIoQDed3l27DSUKJvtqIPSM0n0Ct17brc7cwU74iGiN1OK4mlrTvhhUS7Lj+lnFLlAsMj3FxKCY5DKH62jqWZGxrJLHxRbClLkJ2/amHM5AR/H4ChFj5QXQu02yC4mTNTZhunM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2017 14:01:16.6264 (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 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 = {