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 4AD7642C34; Mon, 5 Jun 2023 10:35:42 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C436B40A7F; Mon, 5 Jun 2023 10:35:41 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id C3ED64003C for ; Mon, 5 Jun 2023 10:35:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685954140; x=1717490140; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=lHryc8Hh12AMLkuFOMbS76EQwEV9vrWTpOZJtzRx3iQ=; b=MUdV27rP92/NuuSmJR/fijtSmjLtFP9xsx0kCJJ9T7IVPWnjQ5zI37qC jdVE6jofavMO/4IG/sqGo9x4KteYbixNrMi0aVt16gftbhRiDbpeqojNk PXQL9M87vTDhOTlw2GG7nRl4xAvFIkOdCe4YtqZw9phq6m7ESsz71UaO4 ttFRtfUzQGTvh5qyFueEQLgYuwPLyTYwup7wjr9nfbsG66Zzxq31PShVv oHfNCUldnPeWjzZuWNLxsBQQ5yvRbfX7BhVeYuotfBvtMiOALOgcI6WoV fXxQ2QAlNMYqSqw1mpwphxc9LxnB0dMZk8tsoGtA5bauybq9cwzPIdcc+ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10731"; a="335930027" X-IronPort-AV: E=Sophos;i="6.00,217,1681196400"; d="scan'208";a="335930027" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jun 2023 01:35:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10731"; a="882821152" X-IronPort-AV: E=Sophos;i="6.00,217,1681196400"; d="scan'208";a="882821152" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga005.jf.intel.com with ESMTP; 05 Jun 2023 01:35:36 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 5 Jun 2023 01:35:36 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Mon, 5 Jun 2023 01:35:36 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Mon, 5 Jun 2023 01:35:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LjIzyAK+XDcbKnWq8wU/LA1sU4WsG5u22DWeh5ByqoGg9WnomrvyRxOCysmYZjMhG1WxRgtzT2spPM1YdL7xb3YeiRGPBeo45hj7wqo9PRxvNjYsHXCD1MAWJOHYZ/nVLnsUfXCttD88JiMQCywG+JF6LM9MTc+eKIZDv7kAowNLkSXKLbYZ3VflriEf1X6MD2Ep0J9bOsPhY4VjQ9eTUpTsk02A4DEK9q/RULv/Vf8gUKiBjd942DDK7i/8Dm1ECDBQudo6nMgzTdwAhsKDy1Bub6iSxcbCVW0gwNOPIxG1kEgqPSYqtRgdoPBPl99/rXhkzWHCklX47+fDT21DDw== 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=5uIspTy4CAuQhNaAjWFVNyCquGPnsq1HYuiO7vXOp80=; b=eWxVzZKydYcgILxJeERfzwNFJtKCOxbgBj/mfGHAh61hemjX5ElWmjjddtptXQBYsh84AqnWwxF2uV0v56kdNchrmW3eksuCYP5/uThh5gPJVsgx+O2cKkBYDrxZvWF78rcY1zwqasTVGF7BOkQwFzqHHrdxRvVriIZuq2uXCP+Z7I50iaEOKrqZKugpMqymLJSL8etk6zkS8hLzntA1ppK3k3AiGoWbgo3RgDVzGXxJzWjwuXuVgbPfJUNUSPmp+ylws00OTVV7zC7Aix764ThBH5aNzL2BHX/Q7dvLLO2hy1NPQRPdUfw8SjfifRpE/dgkTjaBoB5Agr8/EIeKXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW3PR11MB4587.namprd11.prod.outlook.com (2603:10b6:303:58::7) by DM4PR11MB5391.namprd11.prod.outlook.com (2603:10b6:5:396::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.32; Mon, 5 Jun 2023 08:35:33 +0000 Received: from MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::b0b4:54a8:ce87:883c]) by MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::b0b4:54a8:ce87:883c%6]) with mapi id 15.20.6455.030; Mon, 5 Jun 2023 08:35:33 +0000 From: "Wu, Jingjing" To: "Xing, Beilei" CC: "dev@dpdk.org" , "Liu, Mingxia" Subject: RE: [PATCH v8 03/14] net/cpfl: add haipin queue group during vport init Thread-Topic: [PATCH v8 03/14] net/cpfl: add haipin queue group during vport init Thread-Index: AQHZl3jiPSDkhxtOoUOzaKWZw2fWS6974c5g Date: Mon, 5 Jun 2023 08:35:33 +0000 Message-ID: References: <20230531130450.26380-1-beilei.xing@intel.com> <20230605061724.88130-1-beilei.xing@intel.com> <20230605061724.88130-4-beilei.xing@intel.com> In-Reply-To: <20230605061724.88130-4-beilei.xing@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW3PR11MB4587:EE_|DM4PR11MB5391:EE_ x-ms-office365-filtering-correlation-id: 251fe7ce-8790-4fd6-6e7b-08db659fd3e9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vwkAzdUgMTlU9yipMlsGgpi/bJmUaiUUqPMFA3st8bfvFTYa2L9Seq0w26qctwiWvfHnamOTFyzNqHkAqZUuKsD9awFvQPC11tGakkeW7FvzpVkiizoAK56xfgLY/LwKvQnglxKtH6jZ+ZrH3GBcFbsXeNCdbUD4sDZwgbnM4uH0vMwnAVhrAsL9sMPA0UgFzbJwqMLT+8ahcnk6EY/WL6pHupCXSTXJFA9UJZx2j7keVoQ5c/6CiAk1Kyn2E2FF+t34e/LlhAeyjbcjBCDMehSZSpWyyx8w9A+ktS0XcBLgmI271erIbPZoNwQx03HEUFtZLrVH5ZcI0NYR+IPyjV0zE2sYESzH5p7YhlCsl/ecGinTK81chMEJUc3gCzFHwN1e6CH5obtyi6NdaZo9qfzAubnEwxJYTJY6/NfpflFK1PePvpE1CwaFPKp831CYnND3D+qp6jBIC6jqnrx395zjaC5QI6AtjEhhCfE0Ns2DkEi8Xso/djuTizUag62Nzf9wGEDwLgf31/Obs45sILRjTDb0sii3SUuoL+B4ABvz9y+rsDyJiIl2YyUApwpWT8ze2n3fdIXJYgRZtRDEwjAeZlx3JJFRbAyp7OLROfh9psSZzdcL0n0RyNorIylw x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW3PR11MB4587.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(376002)(396003)(366004)(39860400002)(346002)(451199021)(38070700005)(2906002)(86362001)(33656002)(5660300002)(52536014)(55016003)(83380400001)(71200400001)(7696005)(186003)(26005)(6506007)(107886003)(53546011)(9686003)(82960400001)(478600001)(54906003)(76116006)(66446008)(122000001)(316002)(38100700002)(66476007)(64756008)(6636002)(4326008)(66946007)(66556008)(41300700001)(8936002)(6862004)(8676002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?49V5c79qZ/zxgwzTfwuK41avmbDEn1j14M/ElwfHS4+kxgl7FiD77a1VYYif?= =?us-ascii?Q?oQLfB+GIX8f/T9RuzRxeZsuCPj96JG3/j1aHIeK05FB3PB7RcAitnbFSRF45?= =?us-ascii?Q?lACd9sYk24X+ncemmQYdNRyXdRZgDBISTxdQTLBny73D0+DFuJevpcHIkjMj?= =?us-ascii?Q?BBzoNEMCf75mx1TPEGDGRjyydH8RcbHNoLhCllGe3Dd55N/GA72y/Iz0ckfj?= =?us-ascii?Q?67EylpkwaAN/zGQKNo3ZQI2j9lYpP/QfHnFZn2frXT5Ce0bhTXpUx9EkXkRW?= =?us-ascii?Q?6WTP1jOutSwCb0vHvej4Tk19K0ZyD5CujfkzIoqnHO68pvLPn4BIX3c2tafo?= =?us-ascii?Q?+OlFSXklfYIRmvCW5GJZtwex01avAt1pGXPwiLUrzY3SXbOzR4SExrZd98WF?= =?us-ascii?Q?ISuPfFenKsoV1iMjTI7WY5skazJkVMMdaseDtlj65QA9UgUuVOZT3vqEdePX?= =?us-ascii?Q?Ey/b5qzKM4sOqHJWEv/c4mu5US+/D3cZh9W28pHvs4kqhLNzD7eT3eTqgi9e?= =?us-ascii?Q?wGbvKRpF9hklVrh6ZeXAuCfpIA1g6tltUXdymNppLYUw+AQkmLpMPOh06D6V?= =?us-ascii?Q?ZAKuf12BMiob1HLkvRsgcbyBV/4VKPUP+gDoVs2SBnG+BB+G4vmH50VWmzMI?= =?us-ascii?Q?GvjSQd95eGAu/VW5x7IZiDj2NW9TU9nP1T14XXyxVtzF14n2OV3djOIZjjmW?= =?us-ascii?Q?bRaUDs1L67AeI64M5bYHRdEIPnuHCSkTX+KFVtpupzl0ZSanwrzACisPTWuH?= =?us-ascii?Q?uzPDFLXfh2AtOZlD+Cqa1zQqESCu5lfsDv66Ryf6YdlySnPlapc4cnJoHZ2Z?= =?us-ascii?Q?U+/pFfA5mwRkaKdYG2qIRkSNf71VnVT4MUuKOQJvwIsgIzSFsb0R1HicHp8r?= =?us-ascii?Q?dMV+QYdtjvdluIzCIL8EK8TruZomXqSPuf269HbHZWEDEOb9Z2a1ZzPvWMtH?= =?us-ascii?Q?ryPaqLzUDWc+k/C1e2umBR263b3IR2aormYAdKO0rfePUAqqXAQ/yg4QJgVg?= =?us-ascii?Q?mj83v3dBfuyOAIFGw+MdsOUlGvSAc0FFaSFPhmSdKPL36d41v5LGjsCNpaxt?= =?us-ascii?Q?iuwbHd0r3Pha0U5otrPli2PhVZeN/JaQ6IsZos5pLbzXia01ZTrnz2efsKmi?= =?us-ascii?Q?70htsvArBehbuNOk2gVVDoDlgVNpdtv8mCk+Rbabf/gNnoJzxfX5/6braKRD?= =?us-ascii?Q?16HdGDDuipmlOceEXEV87qTluVWIoDeqDyLyk4Vye+QDx6Mi3eRU/bNw38/7?= =?us-ascii?Q?UYcbW2XIV38CQvRVlWuULHKGIXyuSu71UN/Y6XOwRoTLg8ol8HQ7ggTrXdKI?= =?us-ascii?Q?i5U6hI0WScvCx6fAExBsVNy5x8GQzhdqJHcPtXgm5w0lV2u0jR2QxqJEm/92?= =?us-ascii?Q?m6G8coawkjtKaAb5s/tNPyMGesADy7RSgQFubzRrSRe9EjtYRCf+3WCcqcB7?= =?us-ascii?Q?3Ri7W3nQwFDHArmmfIjaMXg+NIDFG+vCVKDuWKjwZb5isQLMPVHbxj47dasW?= =?us-ascii?Q?84VV9v1ZFlGQe39fh39OnQOEKPhZXnuF/AktgJ3jkziMc7gQ4ijyQf08wr+u?= =?us-ascii?Q?FH0l5Yc/DbocZMs38PyTGcaJpcCZYphewf7MOC3p?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW3PR11MB4587.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 251fe7ce-8790-4fd6-6e7b-08db659fd3e9 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2023 08:35:33.2486 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gXWQU5UnGMMvWf5enHOTlLBuuTr4S2nL1cxL4OcZn2IpNIu53NDFZvJcaloyQF7UIGhEXgl6Dk8ndgsNu1EA/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5391 X-OriginatorOrg: intel.com 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 > -----Original Message----- > From: Xing, Beilei > Sent: Monday, June 5, 2023 2:17 PM > To: Wu, Jingjing > Cc: dev@dpdk.org; Liu, Mingxia ; Xing, Beilei > > Subject: [PATCH v8 03/14] net/cpfl: add haipin queue group during vport i= nit >=20 > From: Beilei Xing >=20 > This patch adds haipin queue group during vport init. >=20 > Signed-off-by: Mingxia Liu > Signed-off-by: Beilei Xing > --- > drivers/net/cpfl/cpfl_ethdev.c | 133 +++++++++++++++++++++++++++++++++ > drivers/net/cpfl/cpfl_ethdev.h | 18 +++++ > drivers/net/cpfl/cpfl_rxtx.h | 7 ++ > 3 files changed, 158 insertions(+) >=20 > diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethde= v.c > index e587155db6..c1273a7478 100644 > --- a/drivers/net/cpfl/cpfl_ethdev.c > +++ b/drivers/net/cpfl/cpfl_ethdev.c > @@ -840,6 +840,20 @@ cpfl_dev_stop(struct rte_eth_dev *dev) > return 0; > } >=20 > +static int > +cpfl_p2p_queue_grps_del(struct idpf_vport *vport) > +{ > + struct virtchnl2_queue_group_id qg_ids[CPFL_P2P_NB_QUEUE_GRPS] =3D {0}; > + int ret =3D 0; > + > + qg_ids[0].queue_group_id =3D CPFL_P2P_QUEUE_GRP_ID; > + qg_ids[0].queue_group_type =3D VIRTCHNL2_QUEUE_GROUP_P2P; > + ret =3D idpf_vc_queue_grps_del(vport, CPFL_P2P_NB_QUEUE_GRPS, qg_ids); > + if (ret) > + PMD_DRV_LOG(ERR, "Failed to delete p2p queue groups"); > + return ret; > +} > + > static int > cpfl_dev_close(struct rte_eth_dev *dev) > { > @@ -848,7 +862,12 @@ cpfl_dev_close(struct rte_eth_dev *dev) > struct cpfl_adapter_ext *adapter =3D CPFL_ADAPTER_TO_EXT(vport->adapter= ); >=20 > cpfl_dev_stop(dev); > + > + if (!adapter->base.is_rx_singleq && !adapter->base.is_tx_singleq) > + cpfl_p2p_queue_grps_del(vport); > + > idpf_vport_deinit(vport); > + rte_free(cpfl_vport->p2p_q_chunks_info); >=20 > adapter->cur_vports &=3D ~RTE_BIT32(vport->devarg_id); > adapter->cur_vport_nb--; > @@ -1284,6 +1303,96 @@ cpfl_vport_idx_alloc(struct cpfl_adapter_ext *adap= ter) > return vport_idx; > } >=20 > +static int > +cpfl_p2p_q_grps_add(struct idpf_vport *vport, > + struct virtchnl2_add_queue_groups *p2p_queue_grps_info, > + uint8_t *p2p_q_vc_out_info) > +{ > + int ret; > + > + p2p_queue_grps_info->vport_id =3D vport->vport_id; > + p2p_queue_grps_info->qg_info.num_queue_groups =3D > CPFL_P2P_NB_QUEUE_GRPS; > + p2p_queue_grps_info->qg_info.groups[0].num_rx_q =3D > CPFL_MAX_P2P_NB_QUEUES; > + p2p_queue_grps_info->qg_info.groups[0].num_rx_bufq =3D > CPFL_P2P_NB_RX_BUFQ; > + p2p_queue_grps_info->qg_info.groups[0].num_tx_q =3D > CPFL_MAX_P2P_NB_QUEUES; > + p2p_queue_grps_info->qg_info.groups[0].num_tx_complq =3D > CPFL_P2P_NB_TX_COMPLQ; > + p2p_queue_grps_info->qg_info.groups[0].qg_id.queue_group_id =3D > CPFL_P2P_QUEUE_GRP_ID; > + p2p_queue_grps_info->qg_info.groups[0].qg_id.queue_group_type =3D > VIRTCHNL2_QUEUE_GROUP_P2P; > + p2p_queue_grps_info->qg_info.groups[0].rx_q_grp_info.rss_lut_size =3D 0= ; > + p2p_queue_grps_info->qg_info.groups[0].tx_q_grp_info.tx_tc =3D 0; > + p2p_queue_grps_info->qg_info.groups[0].tx_q_grp_info.priority =3D 0; > + p2p_queue_grps_info->qg_info.groups[0].tx_q_grp_info.is_sp =3D 0; > + p2p_queue_grps_info->qg_info.groups[0].tx_q_grp_info.pir_weight =3D 0; > + > + ret =3D idpf_vc_queue_grps_add(vport, p2p_queue_grps_info, > p2p_q_vc_out_info); > + if (ret !=3D 0) { > + PMD_DRV_LOG(ERR, "Failed to add p2p queue groups."); > + return ret; > + } > + > + return ret; > +} > + > +static int > +cpfl_p2p_queue_info_init(struct cpfl_vport *cpfl_vport, > + struct virtchnl2_add_queue_groups *p2p_q_vc_out_info) > +{ > + struct p2p_queue_chunks_info *p2p_q_chunks_info =3D cpfl_vport- > >p2p_q_chunks_info; > + struct virtchnl2_queue_reg_chunks *vc_chunks_out; > + int i, type; > + > + if (p2p_q_vc_out_info->qg_info.groups[0].qg_id.queue_group_type !=3D > + VIRTCHNL2_QUEUE_GROUP_P2P) { > + PMD_DRV_LOG(ERR, "Add queue group response mismatch."); > + return -EINVAL; > + } > + > + vc_chunks_out =3D &p2p_q_vc_out_info->qg_info.groups[0].chunks; > + > + for (i =3D 0; i < vc_chunks_out->num_chunks; i++) { > + type =3D vc_chunks_out->chunks[i].type; > + switch (type) { > + case VIRTCHNL2_QUEUE_TYPE_TX: > + p2p_q_chunks_info->tx_start_qid =3D > + vc_chunks_out->chunks[i].start_queue_id; > + p2p_q_chunks_info->tx_qtail_start =3D > + vc_chunks_out->chunks[i].qtail_reg_start; > + p2p_q_chunks_info->tx_qtail_spacing =3D > + vc_chunks_out->chunks[i].qtail_reg_spacing; > + break; > + case VIRTCHNL2_QUEUE_TYPE_RX: > + p2p_q_chunks_info->rx_start_qid =3D > + vc_chunks_out->chunks[i].start_queue_id; > + p2p_q_chunks_info->rx_qtail_start =3D > + vc_chunks_out->chunks[i].qtail_reg_start; > + p2p_q_chunks_info->rx_qtail_spacing =3D > + vc_chunks_out->chunks[i].qtail_reg_spacing; > + break; > + case VIRTCHNL2_QUEUE_TYPE_TX_COMPLETION: > + p2p_q_chunks_info->tx_compl_start_qid =3D > + vc_chunks_out->chunks[i].start_queue_id; > + p2p_q_chunks_info->tx_compl_qtail_start =3D > + vc_chunks_out->chunks[i].qtail_reg_start; > + p2p_q_chunks_info->tx_compl_qtail_spacing =3D > + vc_chunks_out->chunks[i].qtail_reg_spacing; > + break; > + case VIRTCHNL2_QUEUE_TYPE_RX_BUFFER: > + p2p_q_chunks_info->rx_buf_start_qid =3D > + vc_chunks_out->chunks[i].start_queue_id; > + p2p_q_chunks_info->rx_buf_qtail_start =3D > + vc_chunks_out->chunks[i].qtail_reg_start; > + p2p_q_chunks_info->rx_buf_qtail_spacing =3D > + vc_chunks_out->chunks[i].qtail_reg_spacing; > + break; > + default: > + PMD_DRV_LOG(ERR, "Unsupported queue type"); > + break; > + } > + } > + > + return 0; > +} > + > static int > cpfl_dev_vport_init(struct rte_eth_dev *dev, void *init_params) > { > @@ -1293,6 +1402,8 @@ cpfl_dev_vport_init(struct rte_eth_dev *dev, void > *init_params) > struct cpfl_adapter_ext *adapter =3D param->adapter; > /* for sending create vport virtchnl msg prepare */ > struct virtchnl2_create_vport create_vport_info; > + struct virtchnl2_add_queue_groups p2p_queue_grps_info; > + uint8_t p2p_q_vc_out_info[IDPF_DFLT_MBX_BUF_SIZE] =3D {0}; > int ret =3D 0; >=20 > dev->dev_ops =3D &cpfl_eth_dev_ops; > @@ -1327,6 +1438,28 @@ cpfl_dev_vport_init(struct rte_eth_dev *dev, void > *init_params) > rte_ether_addr_copy((struct rte_ether_addr *)vport->default_mac_addr, > &dev->data->mac_addrs[0]); >=20 > + if (!adapter->base.is_rx_singleq && !adapter->base.is_tx_singleq) { > + memset(&p2p_queue_grps_info, 0, sizeof(p2p_queue_grps_info)); > + ret =3D cpfl_p2p_q_grps_add(vport, &p2p_queue_grps_info, > p2p_q_vc_out_info); > + if (ret !=3D 0) { > + PMD_INIT_LOG(ERR, "Failed to add p2p queue group."); > + return 0; > + } > + cpfl_vport->p2p_q_chunks_info =3D rte_zmalloc(NULL, > + sizeof(struct p2p_queue_chunks_info), > 0); > + if (cpfl_vport->p2p_q_chunks_info =3D=3D NULL) { > + PMD_INIT_LOG(ERR, "Failed to allocate p2p queue info."); > + cpfl_p2p_queue_grps_del(vport); > + return 0; > + } > + ret =3D cpfl_p2p_queue_info_init(cpfl_vport, > + (struct virtchnl2_add_queue_groups > *)p2p_q_vc_out_info); > + if (ret !=3D 0) { > + PMD_INIT_LOG(ERR, "Failed to init p2p queue info."); > + cpfl_p2p_queue_grps_del(vport); Forgot to free p2p_q_chunks_info? And better to use WARNING, as it is not returned with negative value.