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 971E742C12; Fri, 2 Jun 2023 22:22:30 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 668D840ED8; Fri, 2 Jun 2023 22:22:30 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2060.outbound.protection.outlook.com [40.107.220.60]) by mails.dpdk.org (Postfix) with ESMTP id 77802406B8; Fri, 2 Jun 2023 22:22:28 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iy6pY7+8B8E7TivwrMeJQeD0rZZ11MbEburNAHO6YnytIvXoT5OwsRzxtuuyuu9Lf2lM8yYC89JzFrAX06DIVC0/NwG8b/CAakO+72I4bPvIsbM5+GSUFo92aWymv4YlMaZWQ3DRKgusjT4/F13kADXsozDurnhQzgsyxaPrxVUGkSSZCBLKDqaJjdnsmVREAaHEvzVb2xw2p5m/3FVknToqOctgjNnUMEdxEKFbYeHrfFXONbWxBxO7Wdy4OEh80v+/1nvues7lmld0Z8jwBpYAqrHM7aKD5buOGEAVN6eaKVwdLURf3DLrT3djdvSxt1h4s1MMMvHeBRG7v+4BIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5c3lQTg0kbPcu0uHRyr+TmdFFGesvAmJ9ZK4yB+dUFI=; b=oDKuXRoJ0ysM318qKqn83zw6LHg6P2H7jx6mfwEE38OyohM4y2+3k2+Dy9hC5KBb3WyqECKNzmg7SMzMtuLtMs+VdU7Bs5ED9nDqKEFg+wbRyq6o9VBATkg7FXmjQANSkIQ99/EIwP6IzP9XPsBvvEh5Jf6prZ0d8/HktDMIKfMae+E4qCROA7W2/DuoQDw9ROeupee1aF8vyKwiQhkLfpOzn2t8bi9CJNFJIURe2FFsrM1CS1M69RAfd9Y+F5mFC74jvH82qyW/AdTzA7yYWPh+wDbaRnge/Vlw87Wr0kJNiSSA0Td5dwK8fNP0oNXDPPwzbgKBUZYAAAYoFlwi1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5c3lQTg0kbPcu0uHRyr+TmdFFGesvAmJ9ZK4yB+dUFI=; b=Z008KtCipdijNQCiAJcUZSbfhBUX/JJRfRBYRjW9BYFKMgWV0DfJQH1rSrPqc7qvEHPHOwxkgI2EXGXV53eP/s/uomfULTNS3jep8oZNe89EkYNhH3kkyakzh3zFGS4yMF4ym0d2SI9756XyyDX98Ne1rWVWsUWYN3CtQ+Jdkx4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by SN7PR12MB8771.namprd12.prod.outlook.com (2603:10b6:806:32a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Fri, 2 Jun 2023 20:22:26 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::7957:641d:6aba:3f9a]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::7957:641d:6aba:3f9a%4]) with mapi id 15.20.6433.022; Fri, 2 Jun 2023 20:22:26 +0000 Message-ID: <915a41a6-936c-9e5c-67d7-f9864ba01863@amd.com> Date: Fri, 2 Jun 2023 21:22:19 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Subject: Re: [PATCH 4/5] app/proc-info: show RSS types with strings Content-Language: en-US To: Dongdong Liu , dev@dpdk.org, thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru, reshma.pattan@intel.com Cc: stable@dpdk.org, yisen.zhuang@huawei.com, Jie Hai , Maryam Tahhan References: <20230315110033.30143-1-liudongdong3@huawei.com> <20230315110033.30143-5-liudongdong3@huawei.com> From: Ferruh Yigit In-Reply-To: <20230315110033.30143-5-liudongdong3@huawei.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0619.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:294::19) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|SN7PR12MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: e0e92663-9bf7-4933-8bb2-08db63a71474 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m6RpxiiX5AVeEtnLRji1XhMgYfL8JYcoSvdhDqmGI+x9QCx6Hcvz47n3DcJKetpfwGqpH4mE9bpjmEHhRGZjJ4EdVc29+ZibzPlQVJqh43F2Ba3JGvBWpbpDGPWrZnDUnZ6YErTQMTHGTcEcbA/b7U8waAKE8Mvjo0/X0ltZVkXIBqOVO9SUbbjS/wS3im2r0c1XXOHSeEFs6qKrg2tzbO652alqlrbJjftFZ57gV/iRrCqSQ5pRvd8QnAfe7NqJn/sH4ma1aTMq7+WeQhpZf9KL4mjIMKrG3GBBFc/Y9FGA+568LoUIBrnFYgJUPu6CrPUR3dlWfCwNr2CAiQ1C0nDdVi3wITTtAtQ+gZbgwJW5JLmO/DYaAERVgVe+Mi0bkGyd1M39T1aM7WQ/0QB2ei6/XobIVS9JeIUKFCkQYb0RQn+wyxXlMkkhGkOpFNWLpTes79/7AwfiGRKud1DDdfEsCWmjOGuFToPl5KK8HKZgCqLexGyKQICP7tOdckqeI6ncnoTyudf1NwAkznwGhE0Dm37MqP3U8AyBhB0IRI5k9j9E3C696tbpmwUrSkPdaxSS/4ShITKiyvqWTV0dw5fkCHQEbs5RRTR4uqTN5Ce8y8tnphTWP0jDzxXj7BCYwxYNCBGgNVZejaXpMnps8g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(376002)(39860400002)(136003)(366004)(346002)(451199021)(31686004)(38100700002)(66946007)(66476007)(2616005)(66556008)(83380400001)(478600001)(86362001)(31696002)(54906003)(4326008)(2906002)(6666004)(316002)(53546011)(6512007)(186003)(26005)(6506007)(6486002)(41300700001)(5660300002)(8676002)(8936002)(44832011)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WVZuOHhsb3ZIY1ZGZTk5djJRS3dWb2luRjgrd1EwWUZpUnZUVXN5TndSQWRr?= =?utf-8?B?QWNGOHFUdWRzdVhjYXpLbUZTc25VTTdTbzNsa0IyMG5CZW9GV2xTSnBPbmpY?= =?utf-8?B?MjJnekVDS1dsaUdybldaSStlL3JjZU1rTWtvMGExcnFVU2tmTlpMU2Y0UDc1?= =?utf-8?B?SHNKQ1krbmYzOUlPNm1CVCtOWDdybW9qWEZVbk5Zdm1NNjJUUkJUdUNxV3Vs?= =?utf-8?B?eSthcksvVnNnQWppcFNjSHFXZTN4OEhiTjhPaUdia3FRUVl2OUhPM25DRUJI?= =?utf-8?B?MWRNY0pQa0hXamhWdFhveVpoYzRUYmN5SjNwZ24rbC9qdUllSk9SeHhIY1N2?= =?utf-8?B?aDNVY3dPc0d4elVwQUxNdUp2aGVTQTlzR2ZlQWxvcmkwSU13OWJUaE94Z1Bu?= =?utf-8?B?eDE2cE5Ec09iMmdRWGphbktRUjE1SjlVUnAwUmlHSUlnZUYyRm52UjBmNjNE?= =?utf-8?B?VHdwTjZSZ2k2UGJCWjZjZHRXK3Z5bUo5ZVFVK25UcmZLQlQyVjRpYUdkQkxj?= =?utf-8?B?K0Z2QVZYeHM2eVpjbXBXT2lUbW5BOEZZQjZua0N6Rm5yVWZaZnhEVS9NdG1a?= =?utf-8?B?OFdqdlRjbzZOR3dGN0p5MmRqbS9kei80L2ljeHF5TGt5V3g2bUtDU2pHSlA5?= =?utf-8?B?U3pkckFxRG1wNWVQeE8yanZpNFY2VTRId2dLY0hIZkpxNElMZUg1LzlJWFlK?= =?utf-8?B?Z1ZkZS81MEJhL1AvZjI5TUlUT3VpSENNbmllVTA2aENmVWFpb0RmZlNyS1Z2?= =?utf-8?B?S2Y3T041T0JYM2daWXJvWXRzcm9EQ2hvbnZvZTZGcmZFN09mNFlKYTI2MVE3?= =?utf-8?B?Yzd6WTQ3V09NcCsxQkJyZ1ltRFQwRzI4bkJjb3lkY2tHQzgwSmJZeGllL055?= =?utf-8?B?b0Z6aDEyWUJLUjNCTUI1SFAxa3JzRWo4USs3YjZFTFFVa0hZTG9sbUZIWXVv?= =?utf-8?B?MStzOXdpMG5odWM2WnJrbW14R1BVM2I5ZmJzMFk1T010TjBxTkZRb1NESFBT?= =?utf-8?B?ZUZUbldvaDFlYytubm9neVQrK0RyQjdFVmJNbE1nZDhqQVFaeHloRWlRekdL?= =?utf-8?B?MGNGQXYxUmk2NStXaEhDYUE2OFozYzVvZ1FMWVZvc0VxYXMyWGZVU3NlU05l?= =?utf-8?B?SzZNMVpORmE4Y05xcTFqRmh1S1JXUkg5TVFFbHVEdWlLSnhNYmhXWkNXTWZQ?= =?utf-8?B?UjgzeWtoOHAvK1JjRXB5ZE8yaGRaUDd1dnJrU2hGV3VhSWM4eHZkMG5ZQWVt?= =?utf-8?B?dFpRdElZSFFWUExudVoraGtBcmZSUVhGUTBDbXBmZHhLcGFFOUZDd3BEVGxQ?= =?utf-8?B?UU9qdnVGV3Vtdk1xQytRTFJxaWdqTHpQdzZtblpUbW41dU9aYk5ud3l1OXUr?= =?utf-8?B?elZGdDRxWjlXa0R1UkZaQnJRYTdBTSt1QWRkNkdYcUhxYVBmejdWMkJKcGNj?= =?utf-8?B?TXlSSisvbGFXdkpvaXFhVmR5dFRyamFQWjg1ZlVma3luc0RNbHZZcXFJWG11?= =?utf-8?B?bWFNbGFJcUhDTjVvdmgwTFNnV3lBWWZWYXc1WG5VWEdLZHF6QVJFaG5XL1o2?= =?utf-8?B?SmhyeFQzNHgydlZWOWxxYzFzb2Z1c1p6YWtmVmcxYjYybGY5ZC9zOXR4MEY4?= =?utf-8?B?SzJkMjR6dDEyYVEyM24wUXFKbUhKazdlZWFGTzc5TnpLY3dVQ0hlYU1MVlVQ?= =?utf-8?B?RkxkRkJkalRuRExCbjIrT3ZVL29ubndZNThCS2JVOUNiYTNseWlCWWZwbTdK?= =?utf-8?B?eE0yOXpsTDQwS3doZDgyMm5qSkJZckwraHhLaEhhR0M2MmlnemhjaTR0Y1pj?= =?utf-8?B?UGxWQ0FGOWpXRVZPaHJmdVlWWUZEdHpyYXF1OWk0aGU0ZldCM3hYS3BtNzNp?= =?utf-8?B?b0U1N3ZacnFqNWVwTnBzNUhNc1V5N29mTGJicEdMWm04dWZleHZob2JaMW5i?= =?utf-8?B?STZNMndQM0c2d0lVYXAvK25GbWNRMzdjL1g3TUsrb0dXdU84blpyMkMvMXVK?= =?utf-8?B?SUpkeFZ3dEp3QjBYdHM3UzFFU095Z2htdU9sZWo0UWU3c1krNFpDTW05NHZI?= =?utf-8?B?N0RVeURtOE42TTBENE96TmNqejZaVFp0OTdVQ3Y4SGhrK1JPdWxzSGtwWnVL?= =?utf-8?Q?ZzToUN/3kqyqWMW/tsAi3MEAs?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0e92663-9bf7-4933-8bb2-08db63a71474 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2023 20:22:26.0172 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IzCZHQbMX6ZnCnPqDT1S5ZWklDOk6v2Obco3H7sOFn/8/9y/SwnNgzdAdrm2AgPQ X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8771 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 On 3/15/2023 11:00 AM, Dongdong Liu wrote: > From: Jie Hai > > show RSS types details and adjust RSS info display format as following: > > - RSS info > -- hf: > ipv4 ipv4-frag ipv4-other ipv6 ipv6-frag ipv6-other > -- key len: 40 > -- key (hex): 6d5a56da255b0ec24167253d43a38fb0d0ca2bcbae7b30b477cb2da38030f20c6a42b73bbeac01fa > > Signed-off-by: Jie Hai > Signed-off-by: Dongdong Liu > --- > app/proc-info/main.c | 120 ++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 113 insertions(+), 7 deletions(-) > > diff --git a/app/proc-info/main.c b/app/proc-info/main.c > index 878ce37e8b..7b6f8f1228 100644 > --- a/app/proc-info/main.c > +++ b/app/proc-info/main.c > @@ -54,6 +54,9 @@ > #define STATS_BDR_STR(w, s) printf("%.*s%s%.*s\n", w, \ > STATS_BDR_FMT, s, w, STATS_BDR_FMT) > > +/* It is used to print the RSS types. */ > +#define RSS_TYPES_CHAR_NUM_PER_LINE 64 > + > /* mask of enabled ports */ > static unsigned long enabled_port_mask; > /* Enable stats. */ > @@ -132,6 +135,76 @@ struct desc_param { > static struct desc_param rx_desc_param; > static struct desc_param tx_desc_param; > > +/* Information for a given RSS type. */ > +struct rss_type_info { > + const char *str; /* Type name. */ > + uint64_t rss_type; /* Type value. */ > +}; > + > +static const struct rss_type_info rss_type_table[] = { > + /* Group types */ > + { "all", RTE_ETH_RSS_ETH | RTE_ETH_RSS_VLAN | RTE_ETH_RSS_IP | RTE_ETH_RSS_TCP | > + RTE_ETH_RSS_UDP | RTE_ETH_RSS_SCTP | RTE_ETH_RSS_L2_PAYLOAD | > + RTE_ETH_RSS_L2TPV3 | RTE_ETH_RSS_ESP | RTE_ETH_RSS_AH | RTE_ETH_RSS_PFCP | > + RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_MPLS | RTE_ETH_RSS_L2TPV2}, > + { "none", 0 }, > + { "ip", RTE_ETH_RSS_IP }, > + { "udp", RTE_ETH_RSS_UDP }, > + { "tcp", RTE_ETH_RSS_TCP }, > + { "sctp", RTE_ETH_RSS_SCTP }, > + { "tunnel", RTE_ETH_RSS_TUNNEL }, > + { "vlan", RTE_ETH_RSS_VLAN }, > + > + /* Individual type */ > + { "ipv4", RTE_ETH_RSS_IPV4 }, > + { "ipv4-frag", RTE_ETH_RSS_FRAG_IPV4 }, > + { "ipv4-tcp", RTE_ETH_RSS_NONFRAG_IPV4_TCP }, > + { "ipv4-udp", RTE_ETH_RSS_NONFRAG_IPV4_UDP }, > + { "ipv4-sctp", RTE_ETH_RSS_NONFRAG_IPV4_SCTP }, > + { "ipv4-other", RTE_ETH_RSS_NONFRAG_IPV4_OTHER }, > + { "ipv6", RTE_ETH_RSS_IPV6 }, > + { "ipv6-frag", RTE_ETH_RSS_FRAG_IPV6 }, > + { "ipv6-tcp", RTE_ETH_RSS_NONFRAG_IPV6_TCP }, > + { "ipv6-udp", RTE_ETH_RSS_NONFRAG_IPV6_UDP }, > + { "ipv6-sctp", RTE_ETH_RSS_NONFRAG_IPV6_SCTP }, > + { "ipv6-other", RTE_ETH_RSS_NONFRAG_IPV6_OTHER }, > + { "l2-payload", RTE_ETH_RSS_L2_PAYLOAD }, > + { "ipv6-ex", RTE_ETH_RSS_IPV6_EX }, > + { "ipv6-tcp-ex", RTE_ETH_RSS_IPV6_TCP_EX }, > + { "ipv6-udp-ex", RTE_ETH_RSS_IPV6_UDP_EX }, > + { "port", RTE_ETH_RSS_PORT }, > + { "vxlan", RTE_ETH_RSS_VXLAN }, > + { "geneve", RTE_ETH_RSS_GENEVE }, > + { "nvgre", RTE_ETH_RSS_NVGRE }, > + { "gtpu", RTE_ETH_RSS_GTPU }, > + { "eth", RTE_ETH_RSS_ETH }, > + { "s-vlan", RTE_ETH_RSS_S_VLAN }, > + { "c-vlan", RTE_ETH_RSS_C_VLAN }, > + { "esp", RTE_ETH_RSS_ESP }, > + { "ah", RTE_ETH_RSS_AH }, > + { "l2tpv3", RTE_ETH_RSS_L2TPV3 }, > + { "pfcp", RTE_ETH_RSS_PFCP }, > + { "pppoe", RTE_ETH_RSS_PPPOE }, > + { "ecpri", RTE_ETH_RSS_ECPRI }, > + { "mpls", RTE_ETH_RSS_MPLS }, > + { "ipv4-chksum", RTE_ETH_RSS_IPV4_CHKSUM }, > + { "l4-chksum", RTE_ETH_RSS_L4_CHKSUM }, > + { "l2tpv2", RTE_ETH_RSS_L2TPV2 }, > + { "l3-pre96", RTE_ETH_RSS_L3_PRE96 }, > + { "l3-pre64", RTE_ETH_RSS_L3_PRE64 }, > + { "l3-pre56", RTE_ETH_RSS_L3_PRE56 }, > + { "l3-pre48", RTE_ETH_RSS_L3_PRE48 }, > + { "l3-pre40", RTE_ETH_RSS_L3_PRE40 }, > + { "l3-pre32", RTE_ETH_RSS_L3_PRE32 }, > + { "l2-dst-only", RTE_ETH_RSS_L2_DST_ONLY }, > + { "l2-src-only", RTE_ETH_RSS_L2_SRC_ONLY }, > + { "l4-dst-only", RTE_ETH_RSS_L4_DST_ONLY }, > + { "l4-src-only", RTE_ETH_RSS_L4_SRC_ONLY }, > + { "l3-dst-only", RTE_ETH_RSS_L3_DST_ONLY }, > + { "l3-src-only", RTE_ETH_RSS_L3_SRC_ONLY }, > + { NULL, 0}, > +}; > + Agree this makes output more user friendly, but this brings something to maintain in the application, and I am almost sure that it will become outdated by time as new RSS types added. One option is to add this as an API in the library, so it will be easier to keep up to date, and use API from here. But not sure if it worths to have new API for this? > /* display usage */ > static void > proc_info_usage(const char *prgname) > @@ -806,6 +879,33 @@ show_offloads(uint64_t offloads, > } > } > > +static void > +show_rss_types(uint64_t rss_types) > +{ > + uint16_t total_len = 0; > + uint16_t str_len; > + uint16_t i; > + > + printf("\t\t"); > + for (i = 0; rss_type_table[i].str != NULL; i++) { > + if (rss_type_table[i].rss_type == 0) > + continue; > + > + if ((rss_type_table[i].rss_type & rss_types) == > + rss_type_table[i].rss_type) { > + /* Contain two spaces */ > + str_len = strlen(rss_type_table[i].str) + 2; > + if (total_len + str_len > RSS_TYPES_CHAR_NUM_PER_LINE) { > + printf("\n\t\t"); > + total_len = 0; > + } > + printf("%s ", rss_type_table[i].str); > + total_len += str_len; > + } > + } > + printf("\n"); > +} > + > static void > show_port(void) > { > @@ -991,13 +1091,19 @@ show_port(void) > rss_conf.rss_key_len = dev_info.hash_key_size; > ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf); > if (ret == 0) { > - printf(" - RSS\n"); > - printf("\t -- RSS len %u key (hex):", > - rss_conf.rss_key_len); > - for (k = 0; k < rss_conf.rss_key_len; k++) > - printf(" %x", rss_conf.rss_key[k]); > - printf("\t -- hf 0x%"PRIx64"\n", > - rss_conf.rss_hf); > + printf(" - RSS info\n"); > + if (rss_conf.rss_hf == 0) { > + printf("\tRSS disabled\n"); > + } else { > + printf("\t -- hf:\n"); > + show_rss_types(rss_conf.rss_hf); > + printf("\t -- key len: %u\n", > + rss_conf.rss_key_len); > + printf("\t -- key (hex): "); > + for (k = 0; k < rss_conf.rss_key_len; k++) > + printf("%02x", rss_conf.rss_key[k]); > + printf("\n"); > + } > } > > rte_free(rss_key);