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 01E1542BF0; Wed, 31 May 2023 12:53:45 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DFB1E427E9; Wed, 31 May 2023 12:53:44 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 64E9D40A82 for ; Wed, 31 May 2023 12:53:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685530415; x=1717066415; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=bj9wcvMIKZtqgpErIW9i9O1g9Ao+1irSGxkb1wKADXQ=; b=KlqYZ+289b1J3MxFWfmApR8LljiF/wHT+B7F+xmnffFpSWeWFg88BB1d 2ZK3MGquZEpXGcg/RRd20nm9hUfSZuEaNgm1gjMmyK/aWYIduM8r/xJMD m7ZR77oUibY619u1ivz2GEMPEeXEOEmFbfXeX8YGd00ZB6GiHUIjoKvAI /cR2+IguuxtSCuGstUVHOaWem1nWg73+6wXdL4DNAggbni/GiUVi28UbZ akQ+l3KOwgUXlbXQnrOg6zt4cFJYAUrZRfRHXAkR1dY50cTQx7lokFIbp QBmQvL7uF9VmHJ/fdO4ne2JZoz1OEWhG3MQnI+n10u4c5QDCBsvMlkWtE w==; X-IronPort-AV: E=McAfee;i="6600,9927,10726"; a="335547676" X-IronPort-AV: E=Sophos;i="6.00,205,1681196400"; d="scan'208";a="335547676" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2023 03:53:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10726"; a="710023092" X-IronPort-AV: E=Sophos;i="6.00,205,1681196400"; d="scan'208";a="710023092" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga007.fm.intel.com with ESMTP; 31 May 2023 03:53:21 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 31 May 2023 03:53:20 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 31 May 2023 03:53:20 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 31 May 2023 03:53:20 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 31 May 2023 03:53:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lRJYyukVQqJyBfrSn21C5JBOqkBtyUCfKZQbPHzISRyEgyySv91J4S5kmGM/adxVH0Q3AufqDogI1xqHts5etB6fRYb3SASty7NWJlnLvF99vOlzgxL6+9Fj9oIhWj9U74UK75wOt/x8S54mkQoNxQ0oRHXcGfs2TVS2l7Cp9xjXopLjKYVq7gle06vlJoiK2TjhEd283Dav/INUSz88lz+wYrgysvXmtzIWgecM6N21WSkLsm8NgTQIiwVE4nvHK/sptfQ3GagjYo5ISK6r8eSnfm8+h7bYOv9E2f2VgTgxMhFXaGwzvO7o4hqTnfJQHsUP8lmKUf9NH1GoXUXTyw== 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=B/tRjhFx13uhYPAujBA5bys7pv+pNiaFrz83njD58Zg=; b=XhOQojTow/uQuJZtMkGM5sh9jrVRG1hy6Q6mjQhJ4pv/Z70oGh3oD1P/3fNt4MXQamqgHaBsEw3G0s5BVP16q7C9I1FlGrmhYdImD3am6FyLjVB6LnvRQzW0ac3CTn2xWFCzOiUtknoWhnONS3KSlaG8E/8BZrzK+nv29BTpHd9/an56mXxhEjAytdmouDYCpGTC5YDaspeEtKGIH5hIUxtjOrEd8pVNr/P35kXgSYYhZ4e2IPtoHJ5hw/WQu0pwQmQgbVk7EpX+pc3i4IYUPZuNNtTQxG8RhJQPrT5hUHljCfjnwnMEG48s/I2H0S4OO56wjgeUEcSYRBUTAOynvA== 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 SJ2PR11MB7670.namprd11.prod.outlook.com (2603:10b6:a03:4c3::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.21; Wed, 31 May 2023 10:53:17 +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.024; Wed, 31 May 2023 10:53:17 +0000 From: "Xing, Beilei" To: "Liu, Mingxia" , "Wu, Jingjing" CC: "dev@dpdk.org" , "Wang, Xiao W" Subject: RE: [PATCH v4 05/13] net/cpfl: support hairpin queue setup and release Thread-Topic: [PATCH v4 05/13] net/cpfl: support hairpin queue setup and release Thread-Index: AQHZj6h25cdx1c/nBkWu0/MP4cDeMK9yHTKAgAAGRYCAAhkewA== Date: Wed, 31 May 2023 10:53:16 +0000 Message-ID: References: <20230519073116.56749-1-beilei.xing@intel.com> <20230526073850.101079-1-beilei.xing@intel.com> <20230526073850.101079-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_|SJ2PR11MB7670:EE_ x-ms-office365-filtering-correlation-id: a1d7a3cc-1e12-4855-54cf-08db61c53d4a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WKfvcz1jrTgXAVVh5hJRyIRQwbejs0pSuhXdb6+FN6X9e37rdARZFnuRhISD9foRg8RByvQGORZBk4i1kJAXh6f079yrIvYSC2y5x4fjlo1NkBR3YfMpWFJ+knZLjJLvWEcClm04PCOP9AWJO17r/iLM6iv3TNOswQyO2PBMfOQ8EZ1HCXvLBUecQISgg9DI1k4R0MATTQgys56SycdDbEvFeNHMrXmM1aJznMDkiXA7SoluOMX8PHTh84KZU96+VCSn6IV/WtGErrmf5j44x2sVEYK2DQflopH5zA45SxMJ7XKWtwApfFtu5GNvJj2bf1Hr3bwFaRCDLGqF13+ahK2570Z5twG3vbG16T3k+Wqm5FJLxH1rQCq+572QTuqC5INPYQcsKhdhUdLryBR7GpJBBSRJSDQJpZ35BrdTG8dy2LRmgzF3vunN8RMLQhRK67sBpT1wwnlKJ/hnPOK9A//4bLoxxnn7zfTh41Ok6sgWorPJT0b5nPKxRVc5XHo1Lhysoz9gI7UGveIPwthlfVIZo8OHtuF5Xx/CkQOlqRgDl8uaaBAL1oH23K0ATJdZR1hwHsmXRi+9lDx6N2jmCH2/p8ZWlqAEvD5ttqkIJbQIUQw5KYqaX3ZWh+zhxobk 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)(366004)(396003)(376002)(346002)(39860400002)(136003)(451199021)(38070700005)(83380400001)(2906002)(186003)(38100700002)(82960400001)(122000001)(55016003)(8936002)(4326008)(478600001)(8676002)(86362001)(52536014)(66946007)(66556008)(6636002)(76116006)(66446008)(64756008)(5660300002)(53546011)(66476007)(41300700001)(7696005)(71200400001)(316002)(26005)(110136005)(54906003)(9686003)(6506007)(107886003)(33656002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?NTk5V09tNk1ONWQzOVhQYXlrZnY4NTE3UVpXNGJ1RmVWSEhnTzRWZzMr?= =?iso-2022-jp?B?dWUreTNWbWIyNkFvLzBxTU1UMUtHamRNMjNjb2xmOVRqOVpNeVMxbE5l?= =?iso-2022-jp?B?NHlyQURHRWVQQWhIZmxpRU9YQWxqenRLR1FvNDVobm43Y0ZhLzEraVBT?= =?iso-2022-jp?B?WjNWR0ZScjBQY2E1dTVDL1padW01UmV6UnF2ZFR1NEJJR0dNOGJSYnZN?= =?iso-2022-jp?B?NzBtZ1g1b1ZVZlNPSkpON0Jud25ZbHVTdmVlNldRUlBCdFhYd3VLTlh1?= =?iso-2022-jp?B?aUVmakR6bEd1S0dOQS93aDRrQktBcW1QVk1UVlM2WWRETmIwdmE0TGN5?= =?iso-2022-jp?B?VWh5UDhlejlEQkRvZnpJVXBvaEd6eVMwdXJHajRhekNmdXBWa2FHbG5n?= =?iso-2022-jp?B?K1VNK0EvQlRzR0tIcnBCWmR0a01pV1dob1JFeW9JZFhvVDd6NU91VVhn?= =?iso-2022-jp?B?RDY5aWpRd2tFOHhvVUhxdU0wTmRscVhPSTZ5ZlBTZ0VoTEtOaCswcG1n?= =?iso-2022-jp?B?enZtV0syNkdCL3lkWUdBaUZBdy91U2QrQlcrUE9FdVN2NG9tUW16Y1JL?= =?iso-2022-jp?B?b2RER0hqZ2VrME9hdXg3SnFYK0RWUnlWR3dkODQ4M2FqTUpVZVMvU1h0?= =?iso-2022-jp?B?dlZpNFNyV2ZnZ3g2am9zUDRaU3hHUVkyVXdvd0FsbnFidzlrUjI5U2tV?= =?iso-2022-jp?B?N2JxcHRQeG15N2wyR3c4bGRJcEtXVkxMTDIvUlljb0FzaStLRzdNNCtr?= =?iso-2022-jp?B?YjNabjh0ZkpKSUlScGYvZDhvRm9YZ3NnYnB3bFU0dnZBM0RCL0VRcGFQ?= =?iso-2022-jp?B?UUpFOHFIMkhBTHBIYkJMSVIvNHJsaEh1c3JBYUt1eEIvUEdBZGt3K1Nu?= =?iso-2022-jp?B?M1BWUXIxb2ZLc3RqbFpZamxkS293R0R3emdxYlVZSS85YThmaFduS2cv?= =?iso-2022-jp?B?aFNYK2FsYVpQWVhXNjg3dm84T2Q4SWplbk9LRGRtNDVZZ21CSVZCQ2dm?= =?iso-2022-jp?B?SGl5cW5DQ3JOdU1HeGtweEFMZjV4VHIrajd3NCtUV3FkRGhldGVKSnJJ?= =?iso-2022-jp?B?WnUzRkQ2OW84RjRHZkI0bndzUlNGVjB6TWpRNGJPMTJsYm1oNHhTcHRC?= =?iso-2022-jp?B?RGc1YWZuajhwd3hUbjBrd1Z6QlFHMjY0U2tSbFlQNXBqVzJGTlBnQk93?= =?iso-2022-jp?B?Qml0Z1ZkdVhRSkdxQ0g3Z0c2MkNDR3ZZU2RHTkpBaGtZV3ZIS1dxeXA5?= =?iso-2022-jp?B?WFpobERobytyQnlCTDdtaXpKRm84dkVXbU1icEo0ZGllVC80WEFWWUR3?= =?iso-2022-jp?B?SEMzTXl6Z1NZdnJPU0xEdmlpRFJmMGtMNWpyTHpsZnBSOEJVV2NVVG9r?= =?iso-2022-jp?B?N0dhUmhqbGJvVnFLWng1YjltRTB2SnljT2NsUTNiU29CUTNFeW1YZ2dV?= =?iso-2022-jp?B?WTdLZmtsK05oVmplUmdHZFNCcjFBQ1BtNlZGNlo0MUxqUFlJK1U5cGVm?= =?iso-2022-jp?B?MVEzYnl4eG1rRDYyVU5ia1g2UFhYeVlPK1JlQnVEc284TFVzbGVFSTRW?= =?iso-2022-jp?B?N0xGbGdDNkxYUERBa2lXcFZTNEtkdFJSeWpqczNuSm9nam9SbnUvZExN?= =?iso-2022-jp?B?UFk1RDlxQ2sra1JEMlFzZXR5bXhwVUczbURmY3c4cnVYcURSbUNETVJi?= =?iso-2022-jp?B?SHlIVkRyYm92YWRhOXg1amxWMkl6ZHBHU2FnaEdWSFVHYTlNbmZVQ0pU?= =?iso-2022-jp?B?ekgyTjFzaWk5T2tDZE5WT0tVenlTcVQrNVRYQ2QxZkYwV2dmZTNTZVFD?= =?iso-2022-jp?B?RGw4b28rK1liR05rYjdZZ21JM2d3UURpZ01SS1FaWFhIQXdRSmN2cEJw?= =?iso-2022-jp?B?cC93RUVYelQ3Um9VQXRxTWRxdGZoOFdZUWZXenB1eWFNNnZJS2F0cHVD?= =?iso-2022-jp?B?Ri9mR2w3Ly83ZGkvQm05NmdjL0c0bk0za3BJeUZobEt2UDFrZkVkOEU5?= =?iso-2022-jp?B?dU9XbHozbys5bWdkTmRsL2dFWisxWjBqL2RhOHBRek8rSUJYcTVDNzJC?= =?iso-2022-jp?B?b2RrOUh3VmxoenoweEUrMDRwczJjUlhYT2xHcjIwOStDQ3FqMnhvTFdH?= =?iso-2022-jp?B?V1IxVkMxRU9CZm04QVB3dGpQM2NsVzRweEwwRjZjM2ZuSmxnL1E5alh0?= =?iso-2022-jp?B?Q2VLeXBKRWhrQWVlVUpkRWVGMHY0R1V2MHJqRmczR2I0OUJwcjhoNUtL?= =?iso-2022-jp?B?N0ZBUnNReStrRDgwbEsyZ0dLS3UwN1drS2EyMEdyZzE0RG1KV05nMW5u?= =?iso-2022-jp?B?TlVheQ==?= Content-Type: text/plain; charset="iso-2022-jp" 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: a1d7a3cc-1e12-4855-54cf-08db61c53d4a X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2023 10:53:16.7246 (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: OPKVfGkEf1iLHvp3PlzeBxbtycs7/hrG4TJNS99NpS6eZSNVKD6/zztZPLJARHVZXyR2k2Bx0BdPadqAdQLcQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB7670 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: Liu, Mingxia > Sent: Tuesday, May 30, 2023 10:50 AM > To: Xing, Beilei ; Wu, Jingjing > Cc: dev@dpdk.org; Wang, Xiao W > Subject: RE: [PATCH v4 05/13] net/cpfl: support hairpin queue setup and > release >=20 >=20 >=20 > > -----Original Message----- > > From: Liu, Mingxia > > Sent: Tuesday, May 30, 2023 10:27 AM > > To: Xing, Beilei ; Wu, Jingjing > > > > Cc: dev@dpdk.org; Wang, Xiao W > > Subject: RE: [PATCH v4 05/13] net/cpfl: support hairpin queue setup > > and release > > > > > > > > > -----Original Message----- > > > From: Xing, Beilei > > > Sent: Friday, May 26, 2023 3:39 PM > > > To: Wu, Jingjing > > > Cc: dev@dpdk.org; Liu, Mingxia ; Xing, Beilei > > > ; Wang, Xiao W > > > Subject: [PATCH v4 05/13] net/cpfl: support hairpin queue setup and > > > release > > > > > > From: Beilei Xing > > > > > > Support hairpin Rx/Tx queue setup and release. > > > > > > Signed-off-by: Xiao Wang > > > Signed-off-by: Mingxia Liu > > > Signed-off-by: Beilei Xing > > > --- > > > drivers/net/cpfl/cpfl_ethdev.c | 6 + > > > drivers/net/cpfl/cpfl_ethdev.h | 11 + > > > drivers/net/cpfl/cpfl_rxtx.c | 353 ++++++++++++++++++++++= +- > > > drivers/net/cpfl/cpfl_rxtx.h | 36 +++ > > > drivers/net/cpfl/cpfl_rxtx_vec_common.h | 4 + > > > 5 files changed, 409 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/net/cpfl/cpfl_ethdev.c > > > b/drivers/net/cpfl/cpfl_ethdev.c index > > > 40b4515539..b17c538ec2 100644 > > > --- a/drivers/net/cpfl/cpfl_ethdev.c > > > +++ b/drivers/net/cpfl/cpfl_ethdev.c > > > @@ -879,6 +879,10 @@ cpfl_dev_close(struct rte_eth_dev *dev) > > > struct cpfl_adapter_ext *adapter =3D CPFL_ADAPTER_TO_EXT(vport- > > > >adapter); > > > > > > cpfl_dev_stop(dev); > > > + if (cpfl_vport->p2p_mp) { > > > + rte_mempool_free(cpfl_vport->p2p_mp); > > > + cpfl_vport->p2p_mp =3D NULL; > > > + } > > > > > > if (!adapter->base.is_rx_singleq && !adapter->base.is_tx_singleq) > > > cpfl_p2p_queue_grps_del(vport); > > > @@ -922,6 +926,8 @@ static const struct eth_dev_ops cpfl_eth_dev_ops = =3D > { > > > .xstats_get_names =3D cpfl_dev_xstats_get_names, > > > .xstats_reset =3D cpfl_dev_xstats_reset, > > > .hairpin_cap_get =3D cpfl_hairpin_cap_get, > > > + .rx_hairpin_queue_setup =3D > cpfl_rx_hairpin_queue_setup, > > > + .tx_hairpin_queue_setup =3D > cpfl_tx_hairpin_queue_setup, > > > }; > > > > > > +int > > > +cpfl_rx_hairpin_queue_setup(struct rte_eth_dev *dev, uint16_t queue_= idx, > > > + 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; > > > + > > > + if (cpfl_vport->p2p_rx_bufq =3D=3D NULL) { > > > + 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; > > > + 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; > > > + > > > + 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); > > [Liu, Mingxia] Here should free cpfl_rxq, right=1B$B!)=1B(B Thanks for the comments, all err process are refined in new version.