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 EFEBBA0542; Thu, 27 Oct 2022 01:23:02 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 981D640E50; Thu, 27 Oct 2022 01:23:02 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id A1DD840A7E for ; Thu, 27 Oct 2022 01:23:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666826580; x=1698362580; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=pPfftQWo9SyND3E8KJOphgdyB1CxEtD7jJHiw3zLQ3I=; b=AmPXBLQmAeW0rlFlWn5E3pFhebJqc5R/HsIcYhRaTNnM8nfhxXMlhEDG 5D4RJ1TdheWTfwd1cRFueSkBcMJH0DIL+3vsfpYnjIg9szHjBG0Z8/vI0 HiyGF1yTJQkHV9dCZDNc2voFAvopjoOaj1ThWSJmLTnyF5PSLKA2H6khV ZXKpMj48LoQMCOJUpUfZnnrnaiLsA6mUdUPjLVFaNREQt4PnyJtn788uj qoPswoh78Pu+hSbDWoqN5TNrx9GCUsYtLMO8Y91f+4VR+rtvt7JYuvhz1 9J3Ci9DtJIEy1xzGhbcuJlKhotKQJl1YMBzZ9xC4AloM5jzpW/NnRrOfx Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10512"; a="334709596" X-IronPort-AV: E=Sophos;i="5.95,215,1661842800"; d="scan'208";a="334709596" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2022 16:22:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10512"; a="721446920" X-IronPort-AV: E=Sophos;i="5.95,215,1661842800"; d="scan'208";a="721446920" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by FMSMGA003.fm.intel.com with ESMTP; 26 Oct 2022 16:22:59 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 26 Oct 2022 16:22:59 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.2375.31 via Frontend Transport; Wed, 26 Oct 2022 16:22:59 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 26 Oct 2022 16:22:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jN1PMuiujAnqLUlfdYUXh3KR+J8psFzDYIf+/4KoXSQqclfTI6IWsiSyYhhiqEV0ITN+SqSGc3KKyQVUTyTFxHrQHNEbv95pA4QP8B7xIFr5TqOvKGfc5kO5c2d3QzNC1Ivwf8tPoLCXD5AvDmu6hJ8fFZgxmPZm6RDPzZySEwv+OA2fMdkTS9xvRMv3kML+RgSJpVBG6VnRUhw1ihStmy7PSA1n9UQoyr14FlLwYtO+Tj8lXTci61eCcaE7IViupFxF+2n/4w/SMWsESYhrN9NqehEss5KmJyax6ApKmEhS3q6NOyUgTeRvzvVijsnsz3dyTlRuJJU/SwX8HLrWyA== 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=czAOQ8px5PdcjggpnahePMSwcJf7BAyH77mhOjCiXuY=; b=GkGGyexqX2tIYhWAIIGnoJAt7cmOoNWwLFkwC0EyqGXVzDw6UhQYLmzfNQoFyV3FUPUs4bSM7eugbN3P15Z/ukHcAc34H2hkBNogp9WECk3zOSyeLDWvIO507DrPr8qt8kfzm4v1+VLkOvR7E7kKldVbWZGdRgFO3OiQtJ9HqNOcDPV+OD/2iXNcMrcXlUzzuGAH14h7i2Y1DYKG5jZg7xxiE1osboNZO4M1RPo14o1nevdOOu9nJ75s70KkbCMB1oWt0zpcjRLoYHOWnp9rAsrblQf+56M0Zpg5tzQTsgwSvuGpq26PkQ4GpMZsBZcpVSl6gW0fewVPIdQdlCpsGA== 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 BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by MN2PR11MB4728.namprd11.prod.outlook.com (2603:10b6:208:261::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.28; Wed, 26 Oct 2022 23:22:56 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::e6be:3feb:17fd:bdcf%7]) with mapi id 15.20.5746.028; Wed, 26 Oct 2022 23:22:56 +0000 From: "Chautru, Nicolas" To: John Miller CC: "dev@dpdk.org" , "ed.czeck@atomicrules.com" , Shepard Siegel , Maxime Coquelin Subject: RE: [PATCH 11/14] baseband/ark: introduce ark baseband driver custom functions Thread-Topic: [PATCH 11/14] baseband/ark: introduce ark baseband driver custom functions Thread-Index: AQHY6XOxrIl/hvyH7ki6cBKh4hvmu64hTZiA Date: Wed, 26 Oct 2022 23:22:56 +0000 Message-ID: References: <20221026194613.1008232-1-john.miller@atomicrules.com> <20221026194613.1008232-11-john.miller@atomicrules.com> In-Reply-To: <20221026194613.1008232-11-john.miller@atomicrules.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 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: BY5PR11MB4451:EE_|MN2PR11MB4728:EE_ x-ms-office365-filtering-correlation-id: 9ab251bc-6d60-4232-d874-08dab7a90398 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FURQy//xHA9Ynpy96IMxcQ2x+9DOTJ5UX/wJKotm4YT4jDb4fRFdFbTWfFh9ogYRwoJVtYiCGlcqxNL3wxswlhwfA96HYkfxARAuxML6H9o3eCOK7zYl2lSdi3H1ze0rWZ37hU9Mj1QbCY6epPA4sYbSYo78U9LE7NKdcFC4SUAO35EBQnyWDzFPcSFCNk+Sa5j4QU0Ab5xKw7qh9tjFDKOJpOo6znkRuJqDIafWZznz58sYhFWF6EFRyg2ympiTdlmc+f9BP2J4Wa5/AQ9ovEwNhr86/JReMi7iW6ihbHuN0bBrqXDodTGZhaUKNv55n9VhUh9MU2a5B0UbR0ON7nhL++sYBp8aS2kHnw8kNc4JiObIUNA7/lVjS0gItfO+N7RJTVcfqJGdZ3xZPVYQX2KwBOTrqjHAxNyxYnw/akcDPAJ9kvVcoJkA5e6LDL1gPOptbF6hbqP4EJiSKwv6MF+vcwr84ZBmOrwd3EQa8E9yT2eopYBcspwxEcdk1Xc6b1WqQiPh07dnhWVQkcrNcVfoxmvdLAPTtccXWkc6JaiBbYm1eo/Q6nWT05KD6rTVZbcVQU8pf23lDNAVGfyrrZt/aY1V+tNwjVkwK07HxTUjQmRA+TajTWInZ/bkoYFnqku8NtVAFdGBFypvPZ58G7WMvoAHgmyKEZxp0FXhMNupP59Z7uSEUHABkXYFtvwziuG+qn4dkDK7LsYp4ONG5hhnYdBzheqmQpc0xlcnriw32TwdNUOvAh2j4NXSwk36uG9XNXg5JPcQn1LurANeIw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(376002)(366004)(136003)(39860400002)(396003)(346002)(451199015)(4326008)(478600001)(66946007)(41300700001)(5660300002)(54906003)(33656002)(6916009)(66446008)(316002)(8936002)(64756008)(8676002)(66476007)(66556008)(52536014)(71200400001)(38070700005)(83380400001)(122000001)(82960400001)(6506007)(53546011)(7696005)(86362001)(26005)(186003)(55016003)(9686003)(2906002)(76116006)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?AZcmmupSCVv2FiXfmfge7xp+13Xjd5KVFRsiOtbzSn04ZvCRV7Egs5BGU7h+?= =?us-ascii?Q?qK+a75vmyOI+vQ0u86+L/KMTgtnsnO8ayOY3h2dOLsFU9SLbfsqoYTFLvBdI?= =?us-ascii?Q?5txfvoQHRh7L95TamOg8uPTT3UIhPUGkmg8Sb9PWW3Z+B2NoysSfP4h/aRLM?= =?us-ascii?Q?n1MCj25QXFzUEw7jciYqTY/l10wYPCORYLEMMcyIC4YMo9XBHZj+2N+GvNDj?= =?us-ascii?Q?/vfYLxZu3EFNrbmjBLoz3P3Jw0Z5FY5v1AppghMjJe0H9hXqPSVCdSCRUQsd?= =?us-ascii?Q?02RRWar21meiK/q672IGZPdUDl9pcZ0WTk/IHT8b9XSxBO2eh72EeOTjUGsH?= =?us-ascii?Q?jpLvWnL6Ux1xCAcGBuq2k9dR+LAcPqU5FvgwrEC+Y9ahxoyQ1bZNVKNC6i3M?= =?us-ascii?Q?QPc7LuNaJrwh4Y6RnS1nC+MD5+Tz4NxTTvgivn4l8BS5p+0DahY4E9/hXJd9?= =?us-ascii?Q?014AiFm1URXgez3HUpZT0gK8Knx4GTAA+gX7+dGcP9z+/AyWzUaN0i/mwS/S?= =?us-ascii?Q?rbapHoWWHDRhyCk+og+hqASm7x6FmVJ7RtYuz0wWSXR1UgDwPeqJiaIFTqJx?= =?us-ascii?Q?aukeW2T+TvZ+0qJGtQcpNpyFyoHHIvRjXcg922Ia8NWtRkzS4vUuEhu+O1Yk?= =?us-ascii?Q?IdcMyJig2ag2+tcc6s7W19hT/2jqsSLMWaRFpfmenRmv+OLo3E5hEqsWSMeP?= =?us-ascii?Q?nNFM/8b5QMxxihnG9Lup7309aoYSVSDtSdfwHTrQw6n/sU50nIU0gtuCsgcR?= =?us-ascii?Q?SrDBObejNVhCx3pkNxFST4tvBHdmChodYSDp8a68fFjqIuBlV5sq9kvsJqkF?= =?us-ascii?Q?7FfLFyvbgNLtqKGMoLyHBxSIkoysdX90z7UMXRX2BXsHZc4mt7GDemyTiqcN?= =?us-ascii?Q?76NNQxQ2SfxYaPNGXYA97uvFHJPU7DUQDevjDq+2IYSSMwCZaVUGiH58XuG9?= =?us-ascii?Q?ttu+two2nr4EsoqbdmbM623/Rnb7/iNPaFSMV795gm0WXJZ2dE1JqfVRiHIm?= =?us-ascii?Q?329cwJfi8+yVrbeg/iiPFQCa7n1MPSinCYxHoMk0pf46OV4IQJhr6OGhMOUL?= =?us-ascii?Q?+a6E+k8Dfnrxijxr9HXzBUnk3+2F0uNvrNAVGkhxm44LmcExFuL9zRJ6YzvI?= =?us-ascii?Q?QPSMrlgZI/5fvJMnhpJjbFQT6x9uJ2rp6OGyPx9/j76/SJlyOOF3QRIO+6yj?= =?us-ascii?Q?4///OX7ljLUxe1ZCh5LnbDGsr9SjEqXqhzKFm7YlooL5pkwsaKy3V2rO8EAw?= =?us-ascii?Q?67whMAvUyzX3JXirXnfwMFUhMecBUl3Sw9rzKk6hA7y3gEfL5Ydpq2WVD16X?= =?us-ascii?Q?LhWpdAZk8Ffxm8odLfn4Hs0N5EAqnkNex4gIaxXGN26dR22J1t1aFwWgjNkM?= =?us-ascii?Q?XGmcfYPyrIEr0ibgmQhuKCeN0ymqhOaC9oye2+sIWAo4nmKcqVcHc7uiR+zP?= =?us-ascii?Q?y3wo7sFA4X7Fkis0I2fVRgTtEtN1KBgqtcHsZajidR3YVfc0GrW7FNK+GpvI?= =?us-ascii?Q?M3Xj0nUQsmqxmoH0C158znzkoMNEQ9QAb1phyjyQL/r8j6KvrVNVthVnLYk4?= =?us-ascii?Q?89bo28k6a4oDk78GdUGPGhGaGqXf6Z8bR+QL9UWH?= 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ab251bc-6d60-4232-d874-08dab7a90398 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Oct 2022 23:22:56.3894 (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: HOXZ6LSu9pPcnsuenDUHw7QLdLUp4h17c+gFjU1GhI/WQLPVCioG9ur4tlehOls0yKfUpiLVSZolmlObuc+fJMydvzswpbVis4kNrm7ukDU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4728 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 Hi John,=20 > -----Original Message----- > From: John Miller > Sent: Wednesday, October 26, 2022 12:46 PM > To: Chautru, Nicolas > Cc: dev@dpdk.org; ed.czeck@atomicrules.com; Shepard Siegel > ; John Miller > > Subject: [PATCH 11/14] baseband/ark: introduce ark baseband driver custom > functions >=20 > This patch introduces the Arkville baseband device driver custom function= s. >=20 > Signed-off-by: John Miller > --- > drivers/baseband/ark/ark_bbdev_custom.c | 201 ++++++++++++++++++++++++ > drivers/baseband/ark/ark_bbdev_custom.h | 30 ++++ > 2 files changed, 231 insertions(+) > create mode 100644 drivers/baseband/ark/ark_bbdev_custom.c > create mode 100644 drivers/baseband/ark/ark_bbdev_custom.h >=20 > diff --git a/drivers/baseband/ark/ark_bbdev_custom.c > b/drivers/baseband/ark/ark_bbdev_custom.c > new file mode 100644 > index 0000000000..6b1553abe1 > --- /dev/null > +++ b/drivers/baseband/ark/ark_bbdev_custom.c > @@ -0,0 +1,201 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2016-2021 Atomic Rules LLC */ > + > +#include > +#include > + > +#include > +#include /* For debug */ > + > + > +#include "ark_bbdev_common.h" > +#include "ark_bbdev_custom.h" > + > +/* It is expected that functions in this file will be modified based on > + * specifics of the FPGA hardware beyond the core Arkville > + * components. > + */ > + > +/* bytyes must be range of 0 to 20 */ > +static inline > +uint8_t ark_bb_cvt_bytes_meta_cnt(size_t bytes) { > + return (bytes + 3) / 8; > +} > + > +void > +ark_bbdev_info_get(struct rte_bbdev *dev, > + struct rte_bbdev_driver_info *dev_info) { > + struct ark_bbdevice *ark_bb =3D dev->data->dev_private; > + In your documentation in first commit you mentioned this * Support for LDPC encode and decode operations. * Support for Turbo encode and decode operations. But I only see LDPC below. More generally not really matching the doc I thi= nk. Good to have the code and docs in same commits for that reason.=20 > + static const struct rte_bbdev_op_cap bbdev_capabilities[] =3D { > + { > + .type =3D RTE_BBDEV_OP_LDPC_DEC, > + .cap.ldpc_dec =3D { > + .capability_flags =3D > + RTE_BBDEV_LDPC_CRC_24B_ATTACH > | > + RTE_BBDEV_LDPC_RATE_MATCH, It doesn't look right Basically there se flags are not for LDPC_DEC but for the encoder There is no HARQ combine etc? I would have expected scatter gather here as well based on your documentati= on > + .num_buffers_src =3D > + > RTE_BBDEV_LDPC_MAX_CODE_BLOCKS, > + .num_buffers_hard_out =3D > + > RTE_BBDEV_LDPC_MAX_CODE_BLOCKS > + } > + }, > + { > + .type =3D RTE_BBDEV_OP_LDPC_ENC, > + .cap.ldpc_enc =3D { > + .capability_flags =3D > + RTE_BBDEV_LDPC_CRC_24B_ATTACH > | > + RTE_BBDEV_LDPC_RATE_MATCH, > + .num_buffers_src =3D > + > RTE_BBDEV_LDPC_MAX_CODE_BLOCKS, > + .num_buffers_dst =3D > + > RTE_BBDEV_LDPC_MAX_CODE_BLOCKS > + } > + }, > + RTE_BBDEV_END_OF_CAPABILITIES_LIST(), > + }; > + > + static struct rte_bbdev_queue_conf default_queue_conf =3D { > + .queue_size =3D RTE_BBDEV_QUEUE_SIZE_LIMIT, > + }; > + > + default_queue_conf.socket =3D dev->data->socket_id; > + > + dev_info->driver_name =3D RTE_STR(DRIVER_NAME); > + dev_info->max_num_queues =3D ark_bb->max_nb_queues; > + dev_info->queue_size_lim =3D RTE_BBDEV_QUEUE_SIZE_LIMIT; > + dev_info->hardware_accelerated =3D true; > + dev_info->max_dl_queue_priority =3D 0; > + dev_info->max_ul_queue_priority =3D 0; > + dev_info->default_queue_conf =3D default_queue_conf; > + dev_info->capabilities =3D bbdev_capabilities; > + dev_info->cpu_flag_reqs =3D NULL; > + dev_info->min_alignment =3D 4; Is there really a 4 Bytes alignment requirement per code blocks? That sound= s extremely cumbersome, is that what you really mean? > + > +} > + > +/* Structure defining layout of the ldpc command struct */ struct > +ark_bb_ldpc_enc_meta { > + uint16_t header; > + uint8_t rv_index:2, > + basegraph:1, > + code_block_mode:1, > + rfu_71_68:4; What is this? Just curious.=20 > + > + uint8_t q_m; > + uint32_t e_ea; > + uint32_t eb; > + uint8_t c; > + uint8_t cab; > + uint16_t n_cb; > + uint16_t pad; > + uint16_t trailer; > +} __rte_packed; > + > +/* The size must be less then 20 Bytes */ static_assert(sizeof(struct > +ark_bb_ldpc_enc_meta) <=3D 20, "struct size"); > + > +/* Custom operation on equeue ldpc operation */ Typo enqueue > +/* Do these function need queue number? */ Who is the question for? Through bbdev api the queue index is expected, and= from your documentation I believe you support multiple queues.=20 > +/* Maximum of 20 bytes */ > +int > +ark_bb_user_enqueue_ldpc_enc(struct rte_bbdev_enc_op *enc_op, > + uint32_t *meta, uint8_t *meta_cnt) { > + struct rte_bbdev_op_ldpc_enc *ldpc_enc_op =3D &enc_op->ldpc_enc; > + struct ark_bb_ldpc_enc_meta *src =3D (struct ark_bb_ldpc_enc_meta > +*)meta; > + > + src->header =3D 0x4321; /* For testings */ > + src->trailer =3D 0xFEDC; > + > + src->rv_index =3D ldpc_enc_op->rv_index; > + src->basegraph =3D ldpc_enc_op->basegraph; > + src->code_block_mode =3D ldpc_enc_op->code_block_mode; > + > + src->q_m =3D ldpc_enc_op->q_m; > + src->e_ea =3D 0xABCD; > + src->eb =3D ldpc_enc_op->tb_params.eb; > + src->c =3D ldpc_enc_op->tb_params.c; > + src->cab =3D ldpc_enc_op->tb_params.cab; > + > + src->n_cb =3D 0; > + > + meta[0] =3D 0x11111110; > + meta[1] =3D 0x22222220; > + meta[2] =3D 0x33333330; > + meta[3] =3D 0x44444440; > + meta[4] =3D 0x55555550; Should these be defined separately? > + > + *meta_cnt =3D ark_bb_cvt_bytes_meta_cnt( > + sizeof(struct ark_bb_ldpc_enc_meta)); > + return 0; > +} > + > +/* Custom operation on dequeue ldpc operation */ int > +ark_bb_user_dequeue_ldpc_enc(struct rte_bbdev_enc_op *enc_op, > + const uint32_t *usermeta) > +{ > + static int dump; /* =3D 0 */ > + /* Just compare with what was sent? */ > + uint32_t meta_in[5] =3D {0}; > + uint8_t meta_cnt; > + > + ark_bb_user_enqueue_ldpc_enc(enc_op, meta_in, &meta_cnt); > + if (memcmp(usermeta, meta_in, 3 + (meta_cnt * 8))) { > + fprintf(stderr, > + "------------------------------------------\n"); > + rte_hexdump(stdout, "meta difference for lpdc_enc IN", > + meta_in, 20); > + rte_hexdump(stdout, "meta difference for lpdc_enc OUT", > + usermeta, 20); > + } else if (dump) { > + rte_hexdump(stdout, "DUMP lpdc_enc IN", usermeta, 20); > + dump--; > + } > + > + return 0; > +} > + > + > +/* Turbo op call backs for user meta data */ int > +ark_bb_user_enqueue_ldpc_dec(struct rte_bbdev_dec_op *enc_op, > + uint32_t *meta, uint8_t *meta_cnt) { > + RTE_SET_USED(enc_op); Is the implementation missing? The enc_op should be called differently.=20 > + meta[0] =3D 0xF1111110; > + meta[1] =3D 0xF2222220; > + meta[2] =3D 0xF3333330; > + meta[3] =3D 0xF4444440; > + meta[4] =3D 0xF5555550; > + > + *meta_cnt =3D ark_bb_cvt_bytes_meta_cnt(20); > + return 0; > +} > + > +int ark_bb_user_dequeue_ldpc_dec(struct rte_bbdev_dec_op *enc_op, > + const uint32_t *usermeta) > +{ > + RTE_SET_USED(enc_op); > + static int dump; /* =3D 0 */ > + /* Just compare with what was sent? */ That looks like still testcode isn't it? Doing some loopback.=20 > + uint32_t meta_in[5] =3D {0}; > + uint8_t meta_cnt; > + > + ark_bb_user_enqueue_ldpc_dec(enc_op, meta_in, &meta_cnt); > + if (memcmp(usermeta, meta_in, 3 + (meta_cnt * 8))) { > + fprintf(stderr, > + "------------------------------------------\n"); > + rte_hexdump(stdout, "meta difference for lpdc_enc IN", > + meta_in, 20); > + rte_hexdump(stdout, "meta difference for lpdc_enc OUT", > + usermeta, 20); > + } else if (dump) { > + rte_hexdump(stdout, "DUMP lpdc_enc IN", usermeta, 20); > + dump--; > + } > + return 0; > +} > diff --git a/drivers/baseband/ark/ark_bbdev_custom.h > b/drivers/baseband/ark/ark_bbdev_custom.h > new file mode 100644 > index 0000000000..32a2ef6bb6 > --- /dev/null > +++ b/drivers/baseband/ark/ark_bbdev_custom.h > @@ -0,0 +1,30 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2016-2021 Atomic Rules LLC */ > + > +#ifndef _ARK_BBDEV_CUSTOM_H_ > +#define _ARK_BBDEV_CUSTOM_H_ > + > +#include > + > +/* Forward declarations */ > +struct rte_bbdev; > +struct rte_bbdev_driver_info; > +struct rte_bbdev_enc_op; > +struct rte_bbdev_dec_op; > +struct rte_mbuf; > + > +void ark_bbdev_info_get(struct rte_bbdev *dev, > + struct rte_bbdev_driver_info *dev_info); > + > +int ark_bb_user_enqueue_ldpc_dec(struct rte_bbdev_dec_op *enc_op, > + uint32_t *meta, uint8_t *meta_cnt); int > +ark_bb_user_dequeue_ldpc_dec(struct rte_bbdev_dec_op *enc_op, > + const uint32_t *usermeta); > + > +int ark_bb_user_enqueue_ldpc_enc(struct rte_bbdev_enc_op *enc_op, > + uint32_t *meta, uint8_t *meta_cnt); int > +ark_bb_user_dequeue_ldpc_enc(struct rte_bbdev_enc_op *enc_op, > + const uint32_t *usermeta); > + > +#endif > -- > 2.25.1