Hi Qiming, > -----Original Message----- > From: dev [mailto:dev-boun...@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 <qiming.y...@intel.com> > Acked-by: Jingjing Wu <jingjing...@intel.com> > Acked-by: Beilei Xing <beilei.x...@intel.com> > --- > 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 > index 4e8b0d8..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" > + "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. > + "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 > index 617e6d4..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? > + > + 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