From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40079.outbound.protection.outlook.com [40.107.4.79]) by dpdk.org (Postfix) with ESMTP id CFA4A1B235 for ; Tue, 10 Oct 2017 09:45:18 +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=qjLdJRq5LhHHmVLBdVEtHFZFQ3PEKmF/+jKKuFOKMxmswAWpUu0gbgrOf6ZmuIpP3kHg+4dN5eEaxz/LxAz2qBUVcRKQOzY0t+et1FxchZpkB7LBjARgyuzm2uXki1HSK5F2vNoCH64090FIXJvsjwJNBH8Kyeljv2FZZ8BVLgc= 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; Tue, 10 Oct 2017 07:45:16 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: shahafs@mellanox.com, yskoh@mellanox.com, ferruh.yigit@intel.com Date: Tue, 10 Oct 2017 10:45:04 +0300 Message-Id: <1507621505-10714-2-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507621505-10714-1-git-send-email-rasland@mellanox.com> References: <1507028429-23944-3-git-send-email-rasland@mellanox.com> <1507621505-10714-1-git-send-email-rasland@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: LO2P265CA0054.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:60::18) To VI1PR05MB1229.eurprd05.prod.outlook.com (2a01:111:e400:582e::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 626c6144-81c5-4cae-52a7-08d50fb2d971 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:3SRgoUQRYYQ9PEgmJpg3R37jHNPcquh78cziaEYy2Wx+jfmleOB1mwfupdvLV2DJUSBDFu4529vul4Tnjbic+pEWdXydmbEXOPBLc6H1JCxAZRYchs5LLKNxGzlDLMQ/dn4+Et1rxQb3zI0/mi62qmLm5wGSvCM3UxsDZVp8s6tgxkzZW1Dsi5fe1FCz5FMmeqQMW0m3czLUk9ltpxvBx/xyNpMvTSiTDvIaJCweNW0Rqvrl4D7n9d71qDoXZYT3; 25:m0RJyWv+UpEJxH3uz2X70cVu9xWi2qTcVyFbKi8ac1Oif3h5irbgS54qo2nP1wB4yLv3786YJuLyn7dRSk/aw+DgbYgPdCYlcGzwHdZA9yrKdIfMD9DCAoUAiQItX1sri6uiYxNWbdiR8+whgzrvUkq/m5ZqwKxe6TaHuw/ud1PIrpYRLyEZeq78bOX/78t83zisIUVEkZ9euyWgKmKIPNI0Q3Qwfq8KxaqP1OFRop7sJ/ff/JXzSZcrgtywEvgA9KZ0c4CFqOx7NhlZ/sJ+aR7gqL0d1ftQ6Ei+CIBNUZt4GY7sbv9lgD0ZjXlE0LCv+fTFhoSt55xpCgTAxHu7lOpE6agXKBWBJmVEuUs5q/4=; 31:v4zEfIVlsSjbHDpsLGFFVmwoCuSby8g7gp+O6pKAmSTulf7rGsyN20MiWtvM78/2j7HxXlB3i7eyhz1kj62KxAD77xzW06bU5O4PnlGz/lnJSBLCSELZXNiOXbVl4eIWNp2l3BgPiC43esLpcqNjH5HThEPPGjHnp7ISfjsuSK7eoDMmzCODVAtZ4CDUvqMEvKuHLvLkYFcbErMtNbS7jd06k31VWObEWUL9wXQR3gg= X-MS-TrafficTypeDiagnostic: VI1PR05MB1229: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 20:jGDAV+oZhenzHbSEZG7Hz1l80ipxUsMhTAr5Dsee3iMOVWKcV1PgJ2a5zfo3lMAr82cG8l8fo+VPNlAWFzuD7+W+qu7N+UxF4OtDBrapN1xeAy2dYson2B4qsZBa6LewxH2W41QuOklqR3UTc8gEiChx3heTm5mA/217o25A4CZyLjEkuawZx/fHXLpefgdqsR9n6kP7x7zF20nf77KspM7l6VpW2DaMiAhnp8wcysRDfGhQ3rHCdLH2Tm6A6tBPd17jwSA9/5FXnbFmo8p1SZTUZcqc+msuKeKLZ0P6rxh5mWnLyyj9cWDOIHykJbLpcd8I8ZmFxyKbE9oUPaLHgIXJwHBRNw/+MVAZ9Zfkr0DozIqdOGj7QtqJHGYQ7Wp6lQapAwtrrVpFunk8BssMjtDpKsCaOo826BwT55yg8faiwFYwRadoaM3+/Efqf7hsLj5XcqS9b3W3Ny4qZmA9CuNuZ4yDKAxnPivonR+hsq4LEXaN/leegkwq1kAwKJn5; 4:E3N1+thIaTOD+2ItSaK4XtM6y9Dk1zrNh2auamAR2Ipslney1h/tWwNQbIs+YwEWP3mVZhDijt0FEMPmcXa11Z+/Giksx6v+zMI6Y0KzyCawCWnu/+uuXmpEuP6PCEBHbNMynpYYOKjFb/AcS9v1n3rm9ZbpAl5de8Plso4o8fsz7egmH3nkORhkdU/tMerjX1rklCKmVG1I5k9jGu7hS4TBesVPvmptahFbtHzd+FWQ57Fw6CWXb4fJNwRg3t1d 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)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(20161123564025)(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: 04569283F9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(39860400002)(199003)(189002)(86362001)(25786009)(2361001)(6666003)(101416001)(6916009)(2950100002)(50466002)(5003940100001)(97736004)(478600001)(50986999)(36756003)(21086003)(76176999)(66066001)(189998001)(48376002)(68736007)(47776003)(5660300001)(16586007)(69596002)(53936002)(7736002)(6116002)(3846002)(33026002)(2906002)(305945005)(8676002)(81166006)(81156014)(8936002)(316002)(50226002)(4326008)(55016002)(575784001)(2351001)(16526018)(106356001)(33646002)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1229; 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; VI1PR05MB1229; 23:ToMxWuF/SVdwftVq0kBZOTcHqv5bm5fcypw9Ll5DW?= =?us-ascii?Q?fiy4Rnn1tayJUMl0PzTPxvLZzyiEMPQ3EtxrC2yyAL+PgcdCA8ykqGav3tVr?= =?us-ascii?Q?+Bd8xLuSSKokZ9AjWtjCxEdZZp5cG+9NeyexBkFkqcNTDS804xgFEVe5NNOA?= =?us-ascii?Q?Q6cQbr7/ixb2J4mnOoG73RIqxSO8QJ5Oi2ly3zXOuLcsHQWQMe/pyrMu3HE8?= =?us-ascii?Q?GZ4+gQT/uvTDfset5s1aXsIn9hIWEubb/99cFyu5Ggb1a8nRm1Qy0tLWkuuG?= =?us-ascii?Q?skpNq2avI82JwumjfulX+g3B99udQig3ZIrM9ARW6cCjIAuPcigtD+I8u0zy?= =?us-ascii?Q?2KUPEvg2ynEEWKaQ+b9SOgcONTQ+CcNt5c5YEQGP/8ufZniTqnqmkRQtPsUl?= =?us-ascii?Q?jEtqnpodaaE0Qp+qiGw6nf3XJpPDbBpqgmcE2VLcqy9rYVlTOqsZLe0o9MoE?= =?us-ascii?Q?otSL7LY+I8CZamH2QicB2KRHeBS4/XaddM2maXAqFhn+h2rbgIOhbYIzGslr?= =?us-ascii?Q?Y+3Y+UR7BLkwL48A4lpb04uOeMNrxPDMnDP8q9HFfqyu38pQ974OA+MUyeON?= =?us-ascii?Q?oHxsdiOwEErsflwT+VHW2MpkL642j4g5uC0RK04jBdgBHwdYbgG+VPOyxNAU?= =?us-ascii?Q?loBI+RYX5p22aeuY/oP0DWooacQRlzVkn58ieTSoVqhwwQ4jp3gt/PvQt/rm?= =?us-ascii?Q?cYjrKn5ef82c3zoL90V2q+nJOsoMh5Fje5f/BOxFMkiT6k287CYumYWOIsdb?= =?us-ascii?Q?WL3aK55v/G5whBZvRF/I0+igMJLjRWdFm68rxOFO3FCNh4Diui06+PrCtnJv?= =?us-ascii?Q?DfRqdFludXtJZmUZvGEhqjVZYYdKcRN7s11BQYJtXaMTyGWKksxN70Thsapf?= =?us-ascii?Q?aAlkb8US5vLX/Bh6nGL8rGXuoYCAvVS+gVmGxmHKyc0iENs5jyfrBBvY2r+x?= =?us-ascii?Q?+5CzIuZ7PUXnfToVHSn/xVJmQ6wSFKmWTDBwwyPjlNQUMHrVIvLR8OHM4u55?= =?us-ascii?Q?WUt3LwqZdmrP3CkpVQjWXzRG+d0MIchaUclU/xqOMVkxD5OXUON7fyP8KiNE?= =?us-ascii?Q?IcbeOe9Q/w6QwGXKurcjPlBdNQTDL6WNGdbVCr0/An7RNEuXlBBAe0uocWxQ?= =?us-ascii?Q?Oiq+NSnMrbJUKsZ+tIELJvxT4QF1Lu8NPOq/98L14+a8IcDIPB1oJPKklNKk?= =?us-ascii?Q?lH/KoqBWv9JNzM=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1229; 6:6JQ4yOcWdVjVzgemm/23E4SIOqJHIHiXcHEWMvwfId3PyBWRfSLU5PvfGSHLPsDmSRtuh2pLPe5vYwgZzdBqBGgCMUQLiwpN6s7EUu8bL06cowkIm6Vcl153n8YDBJCJ+ettF8QiWKouKbC/eNvhwmtHLNOaUqoYYRRgJvtoUPjKEMGZJpacvZBo7bMlQUxzHuklryj2gJK5+2RDbnfDieFihVUMYGSGPSgu05SDAt4HGEeo1pi9nuGg1vJvI6IW2FMp3z+rcgkGGsTPXhRcA/UgkL8NHE8NeGe14cPgbhnpR2FKf7tq1ikOzJIgpnqjFDuc+FuqKBfWcrsoePbBew==; 5:NlSQmZ0THGYmROHFUqOSoe7JdiEe/VyXGb6YiabMDi+PTletxXpkfS/79zSU/RD4W99xmI2OoEWFGuVxssZxEuHZUS0tCt2r+Ux/j4FYJPxWlwPRpjQMqNTMdYcOrYAD4UvPCoCdfi77Y7bwjXLeODOlqbyMbG83jAntpm5qY6g=; 24:QmmOI5gX33nditvAHXLQvxRjpE99vZ6OrDVQDt1OrakA33azv9t0N2girsxtlEqqxctVGiMDLtSq+0HF4pXNLVcGUhQKYJtrpYzyimM6QKA=; 7:VDR9I+Qn4OWLsxqE3JISWY3dLSAlmfBzFI2a/T1j36dwtlzmzvIQiGJVdnoFACSOiMRCQjyyrPpaOhGFnvHyZrwdKM1Ke4qV51j6am06keyH4YUKJcv92+qk9AvtGF7zDIcUdRSslRrKfPlXpDkLcEFmcLxxmdDOyUOmkOvX/vvtVCa8ED968Ro0iCiXn+YorA1tNUDtytC8bhGncrV+Mxn8Udjtl/HbODBrmrV52yw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2017 07:45:16.1658 (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 v8 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: , X-List-Received-Date: Tue, 10 Oct 2017 07:45:19 -0000 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 = { -- 2.7.4