From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BBC59A0093; Sat, 25 Jun 2022 04:14:08 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ADFAF40694; Sat, 25 Jun 2022 04:14:08 +0200 (CEST) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 9357B400EF for ; Sat, 25 Jun 2022 04:14:05 +0200 (CEST) Received: from dggemv711-chm.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4LVHWp1KD6zSh9P; Sat, 25 Jun 2022 10:10:30 +0800 (CST) Received: from kwepemm600004.china.huawei.com (7.193.23.242) by dggemv711-chm.china.huawei.com (10.1.198.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Sat, 25 Jun 2022 10:13:56 +0800 Received: from [10.67.103.231] (10.67.103.231) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Sat, 25 Jun 2022 10:13:55 +0800 Message-ID: Date: Sat, 25 Jun 2022 10:13:55 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH V5 5/7] app/testpmd: compact RSS types output in some commands To: Ferruh Yigit , , , CC: , , , References: <20220429102445.23711-1-lihuisong@huawei.com> <20220624072401.21839-1-lihuisong@huawei.com> <20220624072401.21839-6-lihuisong@huawei.com> From: "lihuisong (C)" In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.103.231] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600004.china.huawei.com (7.193.23.242) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 在 2022/6/24 22:04, Ferruh Yigit 写道: > On 6/24/2022 8:23 AM, Huisong Li wrote: >> CAUTION: This message has originated from an External Source. Please >> use proper judgment and caution when opening attachments, clicking >> links, or responding to this email. >> >> >> From: Ferruh Yigit >> >> In port info command output, 'show port info all', supported RSS offload >> types printed one type per line, and although this information is not >> most important part of the command it takes big part of the command >> output. >> >> In port RSS hash and flow RSS command output, 'show port 0 rss-hash', >> and 'flow query 0 0 rss', all enabled RSS types are printed on one line. >> If there are many types, the print will be very long. >> >> Compacting these RSS offloads and types output by fixing the length >> of the >> character string printed on each line, instead of one per line or one >> line. >> Output becomes as following: >> >> Supported RSS offload flow types: >>    ipv4-frag  ipv4-tcp  ipv4-udp  ipv4-sctp  ipv4-other >>    ipv6-frag  ipv6-tcp  ipv6-udp  ipv6-sctp  ipv6-other >>    l4-dst-only  l4-src-only  l3-dst-only  l3-src-only >> >> Signed-off-by: Ferruh Yigit >> Signed-off-by: Huisong Li >> --- >>   app/test-pmd/config.c  | 68 +++++++++++++++++++++++++++++++----------- >>   app/test-pmd/testpmd.h |  2 ++ >>   2 files changed, 52 insertions(+), 18 deletions(-) >> >> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c >> index a0a5f12c71..b3cb68003c 100644 >> --- a/app/test-pmd/config.c >> +++ b/app/test-pmd/config.c >> @@ -699,6 +699,38 @@ rsstypes_to_str(uint64_t rss_type) >>          return NULL; >>   } >> >> +static void >> +rss_offload_types_display(uint64_t offload_types, uint16_t >> char_num_per_line) >> +{ >> +       uint16_t unknown_offload_str_len; >> +       uint16_t total_len = 0; >> +       uint16_t str_len = 0; >> +       uint64_t rss_offload; >> +       uint16_t i; >> + >> +       for (i = 0; i < sizeof(offload_types) * CHAR_BIT; i++) { >> +               rss_offload = RTE_BIT64(i); >> +               if ((offload_types & rss_offload) != 0) { >> +                       const char *p = rsstypes_to_str(rss_offload); >> + >> +                       unknown_offload_str_len = >> +                               strlen("unknown_offload(BIT())") + (i >> / 10 + 1); >> +                       str_len = p ? strlen(p) : >> unknown_offload_str_len; >> +                       str_len += 2; /* add two spaces */ >> +                       if (total_len + str_len >= char_num_per_line) { >> +                               total_len = 0; >> +                               printf("\n"); >> +                       } >> + >> +                       if (p) >> +                               printf("  %s", p); >> +                       else >> +                               printf(" unknown_offload(BIT(%u))", i); >> +                       total_len += str_len; >> +               } >> +       } >> +} >> + >>   void >>   port_infos_display(portid_t port_id) >>   { >> @@ -803,21 +835,10 @@ port_infos_display(portid_t port_id) >>          if (!dev_info.flow_type_rss_offloads) >>                  printf("No RSS offload flow type is supported.\n"); >>          else { >> -               uint64_t rss_offload_types = >> dev_info.flow_type_rss_offloads; >> -               uint16_t i; >> - >>                  printf("Supported RSS offload flow types:\n"); >> -               for (i = 0; i < sizeof(rss_offload_types) * CHAR_BIT; >> i++) { >> -                       uint64_t rss_offload = RTE_BIT64(i); >> -                       if ((rss_offload_types & rss_offload) != 0) { >> -                               const char *p = >> rsstypes_to_str(rss_offload); >> -                               if (p) >> -                                       printf("  %s\n", p); >> -                               else >> -                                       printf(" >> unknown_offload(BIT(%u))\n", >> -                                              i); >> -                       } >> -               } >> + rss_offload_types_display(dev_info.flow_type_rss_offloads, >> + TESTPMD_RSS_TYPES_CHAR_NUM_PER_LINE); >> +               printf("\n"); > > Why 'rss_types_display()' is not reused, but new function > 'rss_offload_types_display()' created? As mentioned in the 1/7 patch reply, there are different purposes. > .