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 35E4E42BA3; Fri, 26 May 2023 05:52:35 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CA47F40A89; Fri, 26 May 2023 05:52:34 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 9842F40A87 for ; Fri, 26 May 2023 05:52:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685073152; x=1716609152; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=9kF4YDxuPAU72dMGJQoFv7s9XyFSXt/NJSwPR+CvUsQ=; b=i0T+G1elXnkdl9LMWi0dFbIbK9emUlACd0DDAISrg35pWdY8dpPUdjoy A2XkYYycX/2YyJVwP2Z9jAB7olg7x/SNsNqJjaXf07zzgYb+GujGvXipK bEbYBt+U8gX5oKu+ED+O5U/C9X4/OOPfqgMIqdnDIUVJOm+38nT6kmhby tJSeTJlFy+5slbG1iEucBpCPNInn3VhULAfp2cvjb/yoMvwLVrmw/GekT 2xtPFcxtekBIeCnR6qgzbpkFnPAYWYXYA5/RyyhWQ3NFoIs1ZiavP0d9K gEnTeTZvv7IPmVrOiAFVAE9MvNSWcj6qfSuPFwYxt+Pkt2Eq2ZDRgfSU/ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10721"; a="417590047" X-IronPort-AV: E=Sophos;i="6.00,193,1681196400"; d="scan'208";a="417590047" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 May 2023 20:52:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10721"; a="951731805" X-IronPort-AV: E=Sophos;i="6.00,193,1681196400"; d="scan'208";a="951731805" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga006.fm.intel.com with ESMTP; 25 May 2023 20:52:31 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 25 May 2023 20:52:30 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 25 May 2023 20:52:30 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.40) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 25 May 2023 20:52:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F/guxUK+rN2hljZxPMPG9RmEhgmHlpEIufLLYwRAPiDe+4dYo3NSm2nG4+2bHG3dDnxJqL9/Ab3gfHMBkcnqfLABFDEqyo/UbG/9qbk2ihQZ9f4mVaJi6CtCFJFD1y51DwMUatpHSBItDNHOO/O3fQss/7ltxs/p91AyH5K/AwWCy7JTJuFQCrP834Yd7usENg2YtgK/E/dxplYZ3Kebbqh0DowTZRrR179nGCviJYhR85WXOeJt6nYhyZNGRLuzouXU/j6Meg/3L0tRJJmuklA0Z6zrtiDO6qKknmrPPpfJNWJEDwT9G/63EDAXQ52pdZnx6bxw4A+yf/888fBFew== 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=gaDFH17oatTSQyzhvl8d/8wD926HVqP+jMkwiX/AVt4=; b=ZWuhz9kkIjr6L5BpCLKC70UoxDvKYaRyniotVzxScEcZ6lL4+rvnw8B9o1s5oyrWZ6LYD8cn1I5He1GPYV6Q99eo4veWPaD3p4JtO4kc5GWqI9mCfucvZqXj9cvVlFWYThlBFVkIyvH3Dh9T8lioiLNCskCBMV3U/eZYdG+TfHWU3wXC+pz+LW3/J5JXD/ZdB3hEQJGee3wNHzD+onbh4MaLkUas5wCLVocOTreDiDmk+oEb+YyktqrXOW1R7cPbZlytWcF4NZslR5n2NJJqYY+Gp/wWEeRwHJlMK32qGEh4BZZFdLa86KRYC5coHvoLAsvCymEdcIsqBCe/b8OUlg== 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 LV2PR11MB5997.namprd11.prod.outlook.com (2603:10b6:408:17f::10) by SJ0PR11MB5070.namprd11.prod.outlook.com (2603:10b6:a03:2d5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.18; Fri, 26 May 2023 03:52:28 +0000 Received: from LV2PR11MB5997.namprd11.prod.outlook.com ([fe80::a1be:2406:376c:612a]) by LV2PR11MB5997.namprd11.prod.outlook.com ([fe80::a1be:2406:376c:612a%7]) with mapi id 15.20.6433.018; Fri, 26 May 2023 03:52:28 +0000 From: "Xing, Beilei" To: "Wu, Jingjing" CC: "dev@dpdk.org" , "Liu, Mingxia" , "Wang, Xiao W" Subject: RE: [PATCH v3 05/10] net/cpfl: support hairpin queue setup and release Thread-Topic: [PATCH v3 05/10] net/cpfl: support hairpin queue setup and release Thread-Index: AQHZiidMhq0HtLdoZEu6gYKtZQyH3a9qZhwAgAGO82A= Date: Fri, 26 May 2023 03:52:28 +0000 Message-ID: References: <20230519051055.106893-1-beilei.xing@intel.com> <20230519073116.56749-1-beilei.xing@intel.com> <20230519073116.56749-6-beilei.xing@intel.com> In-Reply-To: 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: LV2PR11MB5997:EE_|SJ0PR11MB5070:EE_ x-ms-office365-filtering-correlation-id: 94b1ed88-ef67-4e9b-ba81-08db5d9c9ffe x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IdBjveb7Frzli7Ojh5zS2gQlyaer1BTplQB+s6QyyquZE8b1+MmvJN1kLKA2Ck125a2+8t1yNN54OY/Zv16GsHtYKfFucF6qq8eolrSvJ3Bncpw/JmFE79R7euq7CKIa3SRMc5xGvowh/1I+41dya9siTo8LaRSp6rFYBdcNa2ZicLyGjf/KsINBtgCVt9txcvmpX+28R1Sv9+9Lih5g5uIGid/DISGo+hB5WzCDsOhCiKRx/DT+ZLUzcaD40XDvFRrFbZW2pqw/tKrJposHMO0cS1hqEhVXr69a4VkRE0o7oEnIi2jZXULi8h1zDdK1lwkt9IeZ+87WUTTIISo/FpOJDD675NO0yy4WoMNb7iGTr5Cg8tz9uis/4njT4JQKg/6TFopCX3hHIvN1s9G2fcEretsBjjrFpWb3PbRFJCxeF+Zonhm8ikX1fabonR3P7uQlrrsuVoUlRyYzgAe00lbS3tUHGEqWDClfYfZ+OSTk6pX0gr9EaRXPYs5wWDlVpWguLQugbpMrU9dTr7OEBpMaCcpTvGORp01wdUTbT1mZLiFYCi+T9FtbvVnhUBQPrAtD/FwwejMQ4nMZ6yG3RzlhlNwP6TDeCJ4nCCdpywNnsZPPL4ehqGg2txUVbt4d x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:LV2PR11MB5997.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(39860400002)(366004)(346002)(376002)(136003)(396003)(451199021)(52536014)(316002)(122000001)(71200400001)(26005)(6506007)(82960400001)(53546011)(9686003)(4326008)(6636002)(107886003)(66946007)(76116006)(64756008)(66556008)(66476007)(66446008)(38100700002)(55016003)(5660300002)(33656002)(41300700001)(6862004)(8676002)(8936002)(7696005)(83380400001)(86362001)(478600001)(54906003)(186003)(2906002)(38070700005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?bV3A53tOsba2UFuDJySRPUE0Hseigv0+jU8VJsuI7lMEQjD74yqFkPJm8srM?= =?us-ascii?Q?dgYS0wHY19Xi1VU5L+Z2/7OvZVuzSjhqFZGfd4SA2oAWaYatT9FahPTNRfgf?= =?us-ascii?Q?EPC/YkxneUoQb0of+l2Y4lOIgIrwGqaCGe9gLi9H3aIXCVza4vOU7VL65Vo8?= =?us-ascii?Q?FCiAvV0wUghR4j7v/CPggLG5EwRfaUE/l71JyEBF6kO1+qm94/GVL01o5z0b?= =?us-ascii?Q?7bwAR/NfEUZS0lwfCmi3xtRWQcF50jzrSp7gaTDWNRWPmc6s3qKhXS0nI8+B?= =?us-ascii?Q?tghCwX9civpZC6sQucp407xgTT6v4heYjodSPUDGHzthjODA/fOwykLoMkDw?= =?us-ascii?Q?PAGYGErAW14MGIw4MJ6bWbsqtjyaxR3fylXPcClrCllxvAXB69ONW4yfliLu?= =?us-ascii?Q?kdLGmW6MxEpEtJ2GQd7DgMv/8Reje1tG0RMIKChcgFQpIZFizBZcLDsLCmip?= =?us-ascii?Q?JKp/1gjjM7+ma+1TM9Vmy57EfSQbkR4UFzjouG4c//xKPLOLgM34SRSldWfY?= =?us-ascii?Q?IXbgiB88vAGUiCZ4tEqllyJNtX9kka/NnrjvkCljNS90351Gqg5jiLwB4GXh?= =?us-ascii?Q?juYAlKfUTZBRzXaIbvLU2itvTW1/FZiDqXO6JZvvZZkJMoVzqNn+PKtm/Y72?= =?us-ascii?Q?webABOkOJ4TAmWEJ4geWwW1RfjvAuqoYOTkC0ThNIn2GEEuRHWIMdJz9Rl0O?= =?us-ascii?Q?xHL3C/kbI/8lqVkdvDSb59gxYJqvLczoOHpsKmJWmVDRPBH+Y958ErS79c03?= =?us-ascii?Q?XYngs81kv5WjrOJffFItbi72eMhOUfuWlgv9rOI2F89SSl17lVJimD+BUVeu?= =?us-ascii?Q?3iIXrZEX69h03Lt2stYDBLIb5GxZAWxix1iFjvyqjz1XubMCL/emEWQP7aLJ?= =?us-ascii?Q?nQvrvZgJGkItN3vY0yKCse0dTZo8IEmOzZ6AIEyiuQ08p+xDLiHE9pwoN5PB?= =?us-ascii?Q?+RWUJdG06G3ZB6Lngdkt55stR+O/1CsOQ7b+jnueIJ4t6FA0HssYDaxxYXj9?= =?us-ascii?Q?0ndPbEYD5ywnMQC/F4vhjgPH4uLZLCMRRylHTScYlR0495375K8EoS3NhtQm?= =?us-ascii?Q?gibt6Wc3N90jhx/KHOgF+P1gevZe5H2Y1h+I4MMmjO2uEl+k5uqd1OYCKGhM?= =?us-ascii?Q?aJz4PEaFAhkkw4RC3KM6/Rtw1AT2A6LohEAaIkxi9OKIQKX8ERhDpxlXOdu5?= =?us-ascii?Q?xcMUqFXWPnFDnjqd6hKBO2fJ6jzuELvIc/3cdyy/b0Xzdvj9/q+h3O8UZ+za?= =?us-ascii?Q?MLaJr91Tq/6P2jszhVF7iT4QuQ7OoniHP88EqbMQ0Bqubl27V7iDZjD8MQdP?= =?us-ascii?Q?Px5w6RbVpLrqZJbhX1V212a8ORn76wf8hhT6O3/qPxsmIOwqVHMGyTfZPffA?= =?us-ascii?Q?zKVRMeNsmLolmnyeGiLertbf6rxZQClGdAXAbnEwIWpJ6Ue5LE10M29bgwGg?= =?us-ascii?Q?kI5iQLMcyqG7URM9tsdKbD+IhrKlvD8UAAEoYELafR3zT+BT/QS6hDc5PmcM?= =?us-ascii?Q?k1arFHd6GmMuTGv4t+7pQpgJKUdwrkBfddqm63cTJznhtzGOy/tLUwPeJwzU?= =?us-ascii?Q?hLMe6++znWY0eYg/0lFSJ2N6oNNro3pUpysNxMbx?= 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: LV2PR11MB5997.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94b1ed88-ef67-4e9b-ba81-08db5d9c9ffe X-MS-Exchange-CrossTenant-originalarrivaltime: 26 May 2023 03:52:28.3098 (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: sumC0onwrbyBgjawRypCiQFW00BTGRNUBIVCwwL9kUdb2Up07RWrYJJmdp3tiGiDFkEc2ELNMg6ROQZ3MOgP5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5070 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: Wu, Jingjing > Sent: Thursday, May 25, 2023 11:59 AM > To: Xing, Beilei > Cc: dev@dpdk.org; Liu, Mingxia ; Wang, Xiao W > > Subject: RE: [PATCH v3 05/10] net/cpfl: support hairpin queue setup and > release >=20 > > > > +static int > > +cpfl_rx_hairpin_bufq_setup(struct rte_eth_dev *dev, struct idpf_rx_que= ue > *bufq, > > + uint16_t logic_qid, uint16_t nb_desc) { > > + struct cpfl_vport *cpfl_vport =3D > > + (struct cpfl_vport *)dev->data->dev_private; > > + struct idpf_vport *vport =3D &cpfl_vport->base; > > + struct idpf_adapter *adapter =3D vport->adapter; > > + struct rte_mempool *mp; > > + char pool_name[RTE_MEMPOOL_NAMESIZE]; > > + > > + mp =3D cpfl_vport->p2p_mp; > > + if (!mp) { > > + snprintf(pool_name, RTE_MEMPOOL_NAMESIZE, > "p2p_mb_pool_%u", > > + dev->data->port_id); > > + mp =3D rte_pktmbuf_pool_create(pool_name, > CPFL_P2P_NB_MBUF, > > CPFL_P2P_CACHE_SIZE, > > + 0, CPFL_P2P_MBUF_SIZE, dev- > >device- > > >numa_node); > > + if (!mp) { > > + PMD_INIT_LOG(ERR, "Failed to allocate mbuf pool for > p2p"); > > + return -ENOMEM; > > + } > > + cpfl_vport->p2p_mp =3D mp; > > + } > > + > > + bufq->mp =3D mp; > > + bufq->nb_rx_desc =3D nb_desc; > > + bufq->queue_id =3D cpfl_hw_qid_get(cpfl_vport- > > >p2p_q_chunks_info.rx_buf_start_qid, logic_qid); > > + bufq->port_id =3D dev->data->port_id; > > + bufq->adapter =3D adapter; > > + bufq->rx_buf_len =3D CPFL_P2P_MBUF_SIZE - > RTE_PKTMBUF_HEADROOM; > > + > > + bufq->sw_ring =3D rte_zmalloc("sw ring", > > + sizeof(struct rte_mbuf *) * nb_desc, > > + RTE_CACHE_LINE_SIZE); >=20 > Is sw_ring required in p2p case? It has been never used right? > Please also check the sw_ring in tx queue. Yes, it should be removed. >=20 > > + if (!bufq->sw_ring) { > > + PMD_INIT_LOG(ERR, "Failed to allocate memory for SW ring"); > > + return -ENOMEM; > > + } > > + > > + bufq->q_set =3D true; > > + bufq->ops =3D &def_rxq_ops; > > + > > + return 0; > > +} > > + > > +int > > +cpfl_rx_hairpin_queue_setup(struct rte_eth_dev *dev, uint16_t queue_id= x, > > + uint16_t nb_desc, > > + const struct rte_eth_hairpin_conf *conf) { > > + struct cpfl_vport *cpfl_vport =3D (struct cpfl_vport *)dev->data- > >dev_private; > > + struct idpf_vport *vport =3D &cpfl_vport->base; > > + struct idpf_adapter *adapter_base =3D vport->adapter; > > + uint16_t logic_qid =3D cpfl_vport->nb_p2p_rxq; > > + struct cpfl_rxq_hairpin_info *hairpin_info; > > + struct cpfl_rx_queue *cpfl_rxq; > > + struct idpf_rx_queue *bufq1 =3D NULL; > > + struct idpf_rx_queue *rxq; > > + uint16_t peer_port, peer_q; > > + uint16_t qid; > > + int ret; > > + > > + if (vport->rxq_model =3D=3D VIRTCHNL2_QUEUE_MODEL_SINGLE) { > > + PMD_INIT_LOG(ERR, "Only spilt queue model supports hairpin > queue."); > > + return -EINVAL; > > + } > > + > > + if (conf->peer_count !=3D 1) { > > + PMD_INIT_LOG(ERR, "Can't support Rx hairpin queue peer > count %d", > > conf->peer_count); > > + return -EINVAL; > > + } > > + > > + peer_port =3D conf->peers[0].port; > > + peer_q =3D conf->peers[0].queue; > > + > > + if (nb_desc % CPFL_ALIGN_RING_DESC !=3D 0 || > > + nb_desc > CPFL_MAX_RING_DESC || > > + nb_desc < CPFL_MIN_RING_DESC) { > > + PMD_INIT_LOG(ERR, "Number (%u) of receive descriptors is > invalid", > > nb_desc); > > + return -EINVAL; > > + } > > + > > + /* Free memory if needed */ > > + if (dev->data->rx_queues[queue_idx]) { > > + cpfl_rx_queue_release(dev->data->rx_queues[queue_idx]); > > + dev->data->rx_queues[queue_idx] =3D NULL; > > + } > > + > > + /* Setup Rx description queue */ > > + cpfl_rxq =3D rte_zmalloc_socket("cpfl hairpin rxq", > > + sizeof(struct cpfl_rx_queue), > > + RTE_CACHE_LINE_SIZE, > > + SOCKET_ID_ANY); > > + if (!cpfl_rxq) { > > + PMD_INIT_LOG(ERR, "Failed to allocate memory for rx queue > data > > structure"); > > + return -ENOMEM; > > + } > > + > > + rxq =3D &cpfl_rxq->base; > > + hairpin_info =3D &cpfl_rxq->hairpin_info; > > + rxq->nb_rx_desc =3D nb_desc * 2; > > + rxq->queue_id =3D > > +cpfl_hw_qid_get(cpfl_vport->p2p_q_chunks_info.rx_start_qid, > > logic_qid); > > + rxq->port_id =3D dev->data->port_id; > > + rxq->adapter =3D adapter_base; > > + rxq->rx_buf_len =3D CPFL_P2P_MBUF_SIZE - > RTE_PKTMBUF_HEADROOM; > > + hairpin_info->hairpin_q =3D true; > > + hairpin_info->peer_txp =3D peer_port; > > + hairpin_info->peer_txq_id =3D peer_q; > > + > > + if (conf->manual_bind !=3D 0) > > + cpfl_vport->p2p_manual_bind =3D true; > > + else > > + cpfl_vport->p2p_manual_bind =3D false; > > + > > + /* setup 1 Rx buffer queue for the 1st hairpin rxq */ > > + if (logic_qid =3D=3D 0) { > > + bufq1 =3D rte_zmalloc_socket("hairpin rx bufq1", > > + sizeof(struct idpf_rx_queue), > > + RTE_CACHE_LINE_SIZE, > > + SOCKET_ID_ANY); > > + if (!bufq1) { > > + PMD_INIT_LOG(ERR, "Failed to allocate memory for > hairpin Rx > > buffer queue 1."); > > + ret =3D -ENOMEM; > > + goto err_alloc_bufq1; > > + } > > + qid =3D 2 * logic_qid; >=20 > Inside the brace ( if (logic_qid=3D0) {} ), the logic_qid should be zero,= right? What > is the purpose of doing qid =3D 2* logic_qid? The if condition should be refined. >=20 > > + ret =3D cpfl_rx_hairpin_bufq_setup(dev, bufq1, qid, nb_desc); > > + if (ret) { > > + PMD_INIT_LOG(ERR, "Failed to setup hairpin Rx buffer > queue 1"); > > + ret =3D -EINVAL; > > + goto err_setup_bufq1; > > + } > > + cpfl_vport->p2p_rx_bufq =3D bufq1; > > + } > > + > > + rxq->bufq1 =3D cpfl_vport->p2p_rx_bufq; > > + rxq->bufq2 =3D NULL; > > + >=20 > cpfl_vport->p2p_rx_bufq is allocated in this function. But haven't seen w= here it > will be released. It will be released in cpfl_rx_queue_release function. > And in cpfl_rx_hairpin_bufq_reset the rxq->bufq1 will be assigned to NULL= . > Will queue release miss this? >=20 > > + cpfl_vport->nb_p2p_rxq++; > > + rxq->q_set =3D true; > > + dev->data->rx_queues[queue_idx] =3D cpfl_rxq; > > + > > + return 0; > > + > > +err_setup_bufq1: > > + rte_free(bufq1); > > +err_alloc_bufq1: > > + rte_free(rxq); > > + > > + return ret; > > +} > > +