Re: [PATCH v5] app/testpmd: supported offload capabilities query
From: Yang, Qiming <hidden>
Date: 2017-01-13 09:40:29
Hi, Pablo -----Original Message----- From: De Lara Guarch, Pablo Sent: Friday, January 13, 2017 4:43 PM To: Yang, Qiming <redacted>; dev@dpdk.org Cc: Yang, Qiming <redacted> Subject: RE: [dpdk-dev] [PATCH v5] app/testpmd: supported offload capabilities query Hi Qiming,
quoted hunk ↗ jump to hunk
-----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Qiming Yang Sent: Thursday, January 12, 2017 3:26 AM To: dev@dpdk.org Cc: Yang, Qiming Subject: [dpdk-dev] [PATCH v5] app/testpmd: supported offload capabilities query Add two new commands "show port cap <port>" and "show port cap all"to diaplay what offload capabilities supported in ports. It will not only display all the capabilities of the port, but also the enabling condition for each capability in the running time. Signed-off-by: Qiming Yang <redacted> Acked-by: Jingjing Wu <redacted> Acked-by: Beilei Xing <redacted> --- v2 changes: * fixed the output style as Ferruh's patch show and add some description in docs for new functions. v3 changes: * add new command in cmd_help_long_parsed. v4 changes: * use 'cap' instead of 'capa'. v5 changes: * rebased, fixed the inappropriate expression and adjusted the output order. --- --- app/test-pmd/cmdline.c | 17 ++- app/test-pmd/config.c | 175 ++++++++++++++++++++++++++++ app/test-pmd/testpmd.h | 1 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 12 +- 4 files changed, 195 insertions(+), 10 deletions(-)diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index4e8b0d8..6fa1783 100644--- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c
...
cmdline_parse_token_string_t cmd_showportall_show = @@ -5821,13
+5824,14 @@ cmdline_parse_token_string_t cmd_showportall_port =
TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, port,
"port"); cmdline_parse_token_string_t cmd_showportall_what =
TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, what,
-
"info#stats#xstats#fdir#stat_qmap#dcb_tc");
+
"info#stats#xstats#fdir#stat_qmap#dcb_tc#cap");
cmdline_parse_token_string_t cmd_showportall_all =
TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, all, "all");
cmdline_parse_inst_t cmd_showportall = {
.f = cmd_showportall_parsed,
.data = NULL,
- .help_str = "show|clear port
info|stats|xstats|fdir|stat_qmap|dcb_tc all",
+ .help_str = "show|clear port"Missing space after "port"
quoted hunk ↗ jump to hunk
+ "info|stats|xstats|fdir|stat_qmap|dcb_tc|cap all", .tokens = { (void *)&cmd_showportall_show, (void *)&cmd_showportall_port,@@ -5867,6 +5871,8 @@ static void cmd_showport_parsed(void*parsed_result, nic_stats_mapping_display(res->portnum); else if (!strcmp(res->what, "dcb_tc")) port_dcb_info_display(res->portnum); + else if (!strcmp(res->what, "cap")) + port_offload_cap_display(res->portnum); } cmdline_parse_token_string_t cmd_showport_show = @@ -5876,14 +5882,15@@ cmdline_parse_token_string_t cmd_showport_port = TOKEN_STRING_INITIALIZER(struct cmd_showport_result, port, "port");cmdline_parse_token_string_t cmd_showport_what = TOKEN_STRING_INITIALIZER(struct cmd_showport_result, what, - "info#stats#xstats#fdir#stat_qmap#dcb_tc"); + "info#stats#xstats#fdir#stat_qmap#dcb_tc#cap"); cmdline_parse_token_num_t cmd_showport_portnum = TOKEN_NUM_INITIALIZER(struct cmd_showport_result, portnum, UINT8); cmdline_parse_inst_t cmd_showport = { .f = cmd_showport_parsed, .data = NULL, - .help_str = "show|clear port info|stats|xstats|fdir|stat_qmap|dcb_tc " + .help_str = "show|clear port"
Missing space after "port". Also, add a tab in the following line to be consistent with the help_str of the next command.
quoted hunk ↗ jump to hunk
+ "info|stats|xstats|fdir|stat_qmap|dcb_tc|cap " "<port_id>", .tokens = { (void *)&cmd_showport_show,diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index617e6d4..8a2ef56 100644--- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c
...
+
+ if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TCP_CKSUM) {
+ printf("RX TCP checksum: ");
+ if (dev->data->dev_conf.rxmode.hw_ip_checksum)
+ printf("on\n");
+ else
+ printf("off\n");
+ }
+
+ if (dev_info.rx_offload_capa &
DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM)
+ printf("RX Outer IPv4 checksum: ");Missing on/off? Qiming: I didn't find any switch for this feature in DPDK now. I'll fix the format problem. Thank you.
+
+ if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TCP_LRO) {
+ printf("Large receive offload: ");
+ if (dev->data->dev_conf.rxmode.enable_lro)
+ printf("on\n");
+ else
+ printf("off\n");
+ }Thanks for this nice patch. Pablo