[3/3] app/testpmd: compact RSS flow type output in port info
Checks
Commit Message
In port info command output, 'show port info all', supported RSS flow
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.
Compacting the supported RSS flow type output by printing 6 (hardcoded
value) items per line, instead of one per line. Output becomes as
following:
Supported RSS offload flow types:
ipv4 ipv4-frag ipv4-tcp ipv4-udp ipv4-sctp ipv4-other
ipv6 ipv6-frag ipv6-tcp ipv6-udp ipv6-sctp ipv6-other
l2-payload ipv6-ex ipv6-tcp-ex ipv6-udp-ex port vxlan
geneve nvgre mpls
Signed-off-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
---
app/test-pmd/config.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
Comments
On 5/25/22 20:37, Ferruh Yigit wrote:
> In port info command output, 'show port info all', supported RSS flow
> 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.
>
> Compacting the supported RSS flow type output by printing 6 (hardcoded
> value) items per line, instead of one per line. Output becomes as
> following:
>
> Supported RSS offload flow types:
> ipv4 ipv4-frag ipv4-tcp ipv4-udp ipv4-sctp ipv4-other
> ipv6 ipv6-frag ipv6-tcp ipv6-udp ipv6-sctp ipv6-other
> l2-payload ipv6-ex ipv6-tcp-ex ipv6-udp-ex port vxlan
> geneve nvgre mpls
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
> ---
> app/test-pmd/config.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index 47de5b6d9458..5496ccd7f8ad 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -805,6 +805,7 @@ port_infos_display(portid_t port_id)
> else {
> uint64_t rss_types = dev_info.flow_type_rss_offloads;
> uint16_t i;
> + uint16_t len = 0;
>
> printf("Supported RSS offload flow types:\n");
> for (i = 0; rss_types != 0; i++) {
> @@ -813,12 +814,21 @@ port_infos_display(portid_t port_id)
> const char *p = rsstype_to_str(rss_type);
>
> if (p)
> - printf(" %s\n", p);
> + printf(" %s", p);
> else
> - printf(" user defined 0x%"PRIx64"\n", rss_type);
> + printf(" user defined 0x%"PRIx64, rss_type);
> +
> + len++;
> + /* wrap on every 6 items */
> + if (len == 6) {
Variable name 'len' is misleading here since the first idea is
like length, not a number of items.
Also 6 sounds to be to much in the worst case scenario with 6
user defined types. Each uses at least 18 chars. So, 18 * 6 = 108.
May be printing algorithm should be a bit more sophisticated and
really track line length.
> + printf("\n");
> + len = 0;
> + }
> }
> rss_types >>= 1;
> }
> + if (len)
> + printf("\n");
> }
>
> printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize);
在 2022/6/1 0:35, Andrew Rybchenko 写道:
> On 5/25/22 20:37, Ferruh Yigit wrote:
>> In port info command output, 'show port info all', supported RSS flow
>> 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.
>>
>> Compacting the supported RSS flow type output by printing 6 (hardcoded
>> value) items per line, instead of one per line. Output becomes as
>> following:
>>
>> Supported RSS offload flow types:
>> ipv4 ipv4-frag ipv4-tcp ipv4-udp ipv4-sctp ipv4-other
>> ipv6 ipv6-frag ipv6-tcp ipv6-udp ipv6-sctp ipv6-other
>> l2-payload ipv6-ex ipv6-tcp-ex ipv6-udp-ex port vxlan
>> geneve nvgre mpls
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
>> ---
>> app/test-pmd/config.c | 14 ++++++++++++--
>> 1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
>> index 47de5b6d9458..5496ccd7f8ad 100644
>> --- a/app/test-pmd/config.c
>> +++ b/app/test-pmd/config.c
>> @@ -805,6 +805,7 @@ port_infos_display(portid_t port_id)
>> else {
>> uint64_t rss_types = dev_info.flow_type_rss_offloads;
>> uint16_t i;
>> + uint16_t len = 0;
>> printf("Supported RSS offload flow types:\n");
>> for (i = 0; rss_types != 0; i++) {
>> @@ -813,12 +814,21 @@ port_infos_display(portid_t port_id)
>> const char *p = rsstype_to_str(rss_type);
>> if (p)
>> - printf(" %s\n", p);
>> + printf(" %s", p);
>> else
>> - printf(" user defined 0x%"PRIx64"\n", rss_type);
>> + printf(" user defined 0x%"PRIx64, rss_type);
>> +
>> + len++;
>> + /* wrap on every 6 items */
>> + if (len == 6) {
>
> Variable name 'len' is misleading here since the first idea is
> like length, not a number of items.
>
> Also 6 sounds to be to much in the worst case scenario with 6
> user defined types. Each uses at least 18 chars. So, 18 * 6 = 108.
> May be printing algorithm should be a bit more sophisticated and
> really track line length.
ok. I will fix it in my set.
>
>> + printf("\n");
>> + len = 0;
>> + }
>> }
>> rss_types >>= 1;
>> }
>> + if (len)
>> + printf("\n");
>> }
>> printf("Minimum size of RX buffer: %u\n",
>> dev_info.min_rx_bufsize);
>
> .
@@ -805,6 +805,7 @@ port_infos_display(portid_t port_id)
else {
uint64_t rss_types = dev_info.flow_type_rss_offloads;
uint16_t i;
+ uint16_t len = 0;
printf("Supported RSS offload flow types:\n");
for (i = 0; rss_types != 0; i++) {
@@ -813,12 +814,21 @@ port_infos_display(portid_t port_id)
const char *p = rsstype_to_str(rss_type);
if (p)
- printf(" %s\n", p);
+ printf(" %s", p);
else
- printf(" user defined 0x%"PRIx64"\n", rss_type);
+ printf(" user defined 0x%"PRIx64, rss_type);
+
+ len++;
+ /* wrap on every 6 items */
+ if (len == 6) {
+ printf("\n");
+ len = 0;
+ }
}
rss_types >>= 1;
}
+ if (len)
+ printf("\n");
}
printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize);