From patchwork Tue Oct 10 14:37:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 30070 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 25D0A1B318; Tue, 10 Oct 2017 16:37:27 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20064.outbound.protection.outlook.com [40.107.2.64]) by dpdk.org (Postfix) with ESMTP id 79ACD1B315 for ; Tue, 10 Oct 2017 16:37:22 +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=ndOMXL3J/8Pp+gkKVtUE1V+zNJveYlxfL39ptg65PVE=; b=umLeVypG0naM+lRcHWzieWD7Df6oXGXXWGJ9RryIY95jg2c3ElRdp9y1oW2EOqe0G2V5068KdGcMu/7laxr2RmWAY0MtZJwK8KXeN9Cm6Pm6g/CArgs7h8qKoO8ayy0B/nirNfCgcKbe6soEzOPMcGrmB3XHGsBewveepUB5Bas= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by DB5PR05MB1223.eurprd05.prod.outlook.com (2a01:111:e400:5139::28) 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 14:37:19 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: shahafs@mellanox.com, yskoh@mellanox.com, ferruh.yigit@intel.com Date: Tue, 10 Oct 2017 17:37:06 +0300 Message-Id: <1507646227-12338-2-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507646227-12338-1-git-send-email-rasland@mellanox.com> References: <1507028429-23944-3-git-send-email-rasland@mellanox.com> <1507646227-12338-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR0501CA0040.eurprd05.prod.outlook.com (2603:10a6:800:60::26) To DB5PR05MB1223.eurprd05.prod.outlook.com (2a01:111:e400:5139::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 241f3fb4-6fa1-48b2-7670-08d50fec69d2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:DB5PR05MB1223; X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1223; 3:kwPQLHphMaVjEZnEzST4TrwNB6lDKeecd4LZ5/eRBYaOwlzQT5kNANI4xLfs8S6aHFx7FcKxWzeCXrrgAmTzqTcMbAS3R0xqO17/BGmSKumkATys01JVUl4Yl4K6EM3EhTsO96x1yeM/N1cU2q+iUVF/8L6Nj3Zivw/M4JhRMdIzoqXA+aYlZEK/x1PXPmcCecs+QulxcbbG0e5Ax8ctDzjIqONttJXw3Qu856WTZ50QGmT/NCq0ryVWVG31XDZp; 25:4I50ULyhc+kFRun8e/PZvfTq5mLkYqQ72xMIBsdTbtGXqTLMFpvPEVsKP4JLsy7ms/wYgUW+g4X6b+GwFgP0SOBhoyYcz5VrfAyuvJQM9Hq+XSMXlYe4qAdtmeNFMB+cdQ5eebZ9zPa4TgGxo4PmAqpVnN1H2FMDnvN4C+2fazx0nGc7vBDBthevIF1LHLKxS1I94WFrlyJcDl7vjSKE4P1Vr77jnGtro4YR821m9nXQOWaZPPj1p85JaEv9gZXViPzq+vIyz7a/25uVFZJn6MBDaPj/G2g+Xj+uA1XxRY0+qJPv3JlA2OloMm3ZBSbOSY2jEQBSIlIlHvZN6vgTd9pJm1iP+2ssFZRwdPCNaB4=; 31:wlYK/7AVBhnhCIjocb2QidVPqA2C3LCeVlpsgnTBtoxyTUw4jUUSoHh3OP3ZXPAzV5mjfcB3mTVD6N1CF3BqkL+spyzQeoKRKB6u89ASTBlLjFk14wOqANo+DMboFugiCvo+kH7zR8Y3+T/NHaYwqug40J9gPyRDILEhB4DlIB51ko5fGvZMX/CKe4fhc1cKP0t5d7YsWlINy0WQUmLITNQCi0ds69Rn3h3IqNmu8ZE= X-MS-TrafficTypeDiagnostic: DB5PR05MB1223: X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1223; 20:XSjCIXYQMgD7ch6ITILpFMqBsaecI7pHKe7G71b4+9OhoDiH1mNzTbd62WDxM8WvFTv03HSFgrhTEJ877d/VY5h/hJntqTtbOMA2nceLd/l7C6yq7DfL3dz8mnJFDs8vWrBRr/Eu1z4TZluV5cK8mGGEHwqxeCMZAvkHRj+cM9bkSOwBonNd+rpMyV8FN99pOnhsAkBsuMUNTwWRFF0gTnnu3Yx5HAa4n8PPgzvZfscHr977Vz7cwLVlOrd6jUgqnDC1WbQFG6I3kHMddo3QNSgLXFTecf1js5+ZkvQoKi5mn5GFH1irXZZP6GJOoCR0220emcYdR1hBIy+0XWFmwk29cUGWVPgPKd+HiZzltZgXXjGuxwVQtO6+h/1D2nxfKFRNiLBvdSC8v39FPqh54DYppTuKwT4QCFtiehyz6Ce2+ai7aKs7lcSsaeWLDj26uAqiII+eCiAjbMo10EdpicgII0ZwJ9L06WDUz9vlRCZ5GcqPuv4H+wu88/8kvO1E; 4:laHnaZu/QAntDatDeg89mH62VBs/7iCiidkoJuAHbL4MHc6aHFJGlv/9X+AdTGYoWQevtYslzSU6VG0PSYIV028z9XKEyK394Vb43fu4MWlt3KXXBuPvHyRjZVr7FkTa7vmwXbcYNCKzOtugf3VX7pYiXsM1wW1CHKOtRCuEfIgDqFGxyb2urxH2jI8/CQG9nNAcIrZk/BBtUfK41zw6nO54ukx71SN8d+hLoCMHppdXtmIZXJztDqU0KojPqui6 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)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB5PR05MB1223; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB5PR05MB1223; X-Forefront-PRVS: 04569283F9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(189002)(199003)(33026002)(76176999)(21086003)(36756003)(25786009)(101416001)(6666003)(47776003)(86362001)(316002)(2950100002)(50466002)(575784001)(16586007)(3846002)(16526018)(6116002)(6916009)(48376002)(5660300001)(50986999)(55016002)(189998001)(305945005)(7736002)(5003940100001)(97736004)(53936002)(2906002)(66066001)(2361001)(69596002)(50226002)(2351001)(33646002)(68736007)(106356001)(478600001)(81156014)(8936002)(8676002)(4326008)(81166006)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR05MB1223; 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; DB5PR05MB1223; 23:nZxlyY63lyG46Si0eyzxbAAc0jvCRXOUkegCYUvqS?= Nv+anrOcpv5n/vKAM0IUSpimNRh1Rr/kT+RDHtRSxFDKmt7EXj7nILJCi0bck5CYsWo8HYu7QhIupfS+sfwgTktHnusxqJCzkhkSk3X+Jad7CINvWM6KoQy8w3hNh4vtGR4zQggjWekUjMAwz/qb7icdEXkd+5pYo7yDBaeSXD1Eg5wLktB/yHYWVxihC5pOZTz/hVJvmircJ/bZxXi2qqeL3nBIdq3xDjYCQzgfnfT5jHZ6ytlWud55UHRt6m6CawEdtDR/zK+qUJEOKKY2ZlDwtRSrdy6fOID6SHfVKGqj01GTa16pw3y9jrNg1H3bF7fZJ94zOmfAtHk+cpeI71WOZxUHA6ZQ6ts4h6pON/1WLANCNptKBuzs72qBqO72fBS5f62iQ5nlosRkWAH2tZs/FMvwesY43m2ZOa9SFbu9sxCv/U/fCAtt6tH+VcpEXXiZ08wrYSMMD8mi07/IFaUbzkh0f2Gmg5PHiENW0U28al/A/sJnleIx8IIMsgr/vDuM17wgSn6ippLPqBsNdtzzZq/oGK7gVPlwFWgCItTUyIV7UGqvWU9U3xOpdY18kRTjM6r8dqhTKB29ls4Aj5PvkNwFo4Rs74rr8LAvDvC1yzb45y2NG1UeUR5jM0vTOBj/efunvEPBhTsUALLXcobANL7QkoxY680T5G6bxhv87btxSpEiogtKVj1Q62wrM9DV5eQScgqH3Dpwm/OZrpJHlVh6XDBW9nLPs2yHgRDyiBubnG7aaAVgX5Qo3HtvJEAg12DhN9UsDMZ0nnKxyPczTvG71z9zynVA4YdKVYixAlDVIbyXKc3MAQtIqKZqQHMbaCX048FEov1Xqtxh4mr8ojr0pNNk+WucMTe9QpubKoZIXNjV9mIFHdvd1pxUbDcgdsXQTCjw9gXhPDjhMC8bg2JAGOW97L+Ey98OATyuTDhOjkJt1cJqe6Tmm5YGccp3SGQ7KHY02E0oNbc50zaTN/h5vl+kMCU5VfL79KeIJLeHW/cQtvA75EIVsauT98hHuDVc4KueA08Wlxw9X+POggteKrW0xYosJNEqfWsWJNzRAAi44An5JWexZZd+rBZOSB0g6YuVh2T6DB1fKRT4fGOUa/I1l/+JnogeEt5TopWshr+ebQ+iB+K0iXL2+E= X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1223; 6:u/XDj/ybPBNMByI1USxUQxD+2UZSWCR6eR/YVea8XdOL7mYSBuUwm/djbhG5CEKkWZhmQpT8e/kgz3xNdes2hjLPWsl6/RnzzAnVk4fs6dmT2iAZNUFSNoT2ku5v+RxF7WBTdHCBeE29+GF8Z8x+6ZPUyk5NWlvBLrDUYyeREvdNz9dNYcis/T3727Mo0E/GtNHNOLWwm1qNPQDTcLjvHIyxRsQNFhM14s9CA8agP3Gdd3NvVcuQUZ2HYrhQG04wzNdm2/lz2beWPtvFNqcLidr2F2sO7iBiU3/DE6Uqn9aDyxpBqU3dbIWwctgJZJzlO525h4LMnEXP1UqjOqk6qA==; 5:HWQeHZse3rVBu6C/4BQdJK4S+UTkRdM80WAKDg5o5APMOzaleaCYcB1PFPLMEk8WNPl5q41cS6AACsmM8KmnZrbS4dTcZAaBrkyVbj9oJXrUN6dZnaQJ4Qu4QUBpgQlwP6m8RTWT3qrczpkb+F119A==; 24:7xwhvNTbRfmyrXmTUbl/mjz0RxTKUPFzJSL+YM0QOQeEXuACDMdaohl0FId5djOJZR3/1716yOtuVlZj0cWG1Ivyeo5vUfVxO2MX8naRy5I=; 7:GmtCdx6pojma1t9oezvw1BntJQCLHJ4gG5oeBWGzfUkPqoIXSqKTexaJTg0ZLdSY8PVvdejWY5FCTzDMruh/wTk5DjCdaEf9lmjKPMFpwBq9chMxY9Rjq/yZqRK4Tg1sEDb2rOPpUDGtjq0tuTNvPGhFYhpTBRDedrOeXgWyfJWDCYjtw8TZS2LVDZU6bLpqQscQNpBHvacJum4SLOItv+YRv1s0CdXVzDvpaXcghFM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2017 14:37:19.5673 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR05MB1223 Subject: [dpdk-dev] [PATCH v9 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 8dc5c85..50744cb 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -693,7 +693,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" @@ -1614,6 +1614,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; @@ -1682,7 +1691,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, @@ -1691,7 +1700,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 ecd5166..7ff0bb2 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -607,6 +607,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 72ff971..5d64f0d 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"); @@ -605,6 +606,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 }, @@ -903,6 +905,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 57df014..2a27f72 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 667c228..1b1d75f 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -343,6 +343,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 = {