[dpdk-dev] [PATCH v4 1/8] bbdev: add network order data capability

Chautru, Nicolas nicolas.chautru at intel.com
Wed Apr 28 17:19:33 CEST 2021


Hi Hemant, 

As mentioned earlier I have no problem adding such an option in the API, but that would still be a late API change (arguably too tight for 21.05 so that everyone has time to comment back). 
Based on description below this should not be an operation specific flag (again see my previous comment, not dynamic nor tied to operation type).
This can be done by adding a bool big_endianess to the `struct rte_bbdev_driver_info` as suggested earlier. This would be set in each PMD accordingly to their expectation/design. This can be used then in bbdev-test and application to ensure the data is present with the correct assumption. 
Any concern with that approach? Please check that you can run successfully the existing unit-test with such a set of changes for your device. 

Nic


> -----Original Message-----
> From: Hemant Agrawal <hemant.agrawal at oss.nxp.com>
> Sent: Wednesday, April 28, 2021 6:35 AM
> To: Dave Burley <dave.burley at accelercomm.com>; Hemant Agrawal
> <hemant.agrawal at nxp.com>; dev at dpdk.org; gakhil at marvell.com; Chautru,
> Nicolas <nicolas.chautru at intel.com>
> Cc: david.marchand at redhat.com
> Subject: Re: [dpdk-dev] [PATCH v4 1/8] bbdev: add network order data
> capability
> 
> Hi,
> 
>      My mail with photo snippets were rejected by dpdk mailing list. So, just
> sending the summary of it.
> 
>      My understanding is that in ORAN, typically network order is used
> between CU-DU or DU-RU communication. In FAPI interface as well, both LE
> and BE are allowed types, however few places do explicitly state BE type.
> 
>     Our customers/partners are typically using BE and LA12xx is configured to
> process BE data.
> 
> Regards,
> 
> Hemant
> 
> 
> On 4/26/2021 10:31 PM, Dave Burley wrote:
> > Hi Hemant
> >
> > Can I ask what the usage case is for
> RTE_BBDEV_LDPC_ENC_NETWORK_ORDER/RTE_BBDEV_LDPC_DEC_NETWO
> RK_ORDER ?
> >
> > Thanks
> >
> > Dave
> >
> >
> >
> > ________________________________
> > From: dev <dev-bounces at dpdk.org> on behalf of Hemant Agrawal
> > <hemant.agrawal at nxp.com>
> > Sent: 24 April 2021 11:36
> > To: dev at dpdk.org <dev at dpdk.org>; gakhil at marvell.com
> > <gakhil at marvell.com>; nicolas.chautru at intel.com
> > <nicolas.chautru at intel.com>
> > Cc: david.marchand at redhat.com <david.marchand at redhat.com>;
> Hemant
> > Agrawal <hemant.agrawal at nxp.com>
> > Subject: [dpdk-dev] [PATCH v4 1/8] bbdev: add network order data
> > capability
> >
> > CAUTION: This email originated from outside of the organization. Do not
> click links or open attachments unless you recognize the sender and know
> the content is safe.
> >
> > This patch intoduces a new capability of the bbdev device to process
> > the LDPC data in network byte order.
> >
> > Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
> > ---
> >   doc/guides/bbdevs/features/default.ini | 1 +
> >   doc/guides/prog_guide/bbdev.rst        | 6 ++++++
> >   lib/bbdev/rte_bbdev_op.h               | 8 ++++++--
> >   3 files changed, 13 insertions(+), 2 deletions(-)
> >
> > diff --git a/doc/guides/bbdevs/features/default.ini
> > b/doc/guides/bbdevs/features/default.ini
> > index 5fe267a625..e5da644099 100644
> > --- a/doc/guides/bbdevs/features/default.ini
> > +++ b/doc/guides/bbdevs/features/default.ini
> > @@ -14,3 +14,4 @@ LLR/HARQ Compression   =
> >   External DDR Access    =
> >   HW Accelerated         =
> >   BBDEV API              =
> > +Network Order Data     =
> > diff --git a/doc/guides/prog_guide/bbdev.rst
> > b/doc/guides/prog_guide/bbdev.rst index 6b2bd54e1a..89a86d10fb
> 100644
> > --- a/doc/guides/prog_guide/bbdev.rst
> > +++ b/doc/guides/prog_guide/bbdev.rst
> > @@ -747,6 +747,9 @@ given below.
> >   |RTE_BBDEV_LDPC_ENC_CONCATENATION                                    |
> >   | Set if a device supports concatenation of non byte aligned output  |
> >
> > +--------------------------------------------------------------------+
> > +|RTE_BBDEV_LDPC_ENC_NETWORK_ORDER                                    |
> > +| Set if a device supports network order data processing             |
> > ++--------------------------------------------------------------------+
> >
> >   The structure passed for each LDPC encode operation is given below,
> >   with the operation flags forming a bitmask in the ``op_flags`` field.
> > @@ -942,6 +945,9 @@ given below.
> >   |RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK                        |
> >   | Set if a device supports loopback access to HARQ internal memory   |
> >
> > +--------------------------------------------------------------------+
> > +|RTE_BBDEV_LDPC_DEC_NETWORK_ORDER                                    |
> > +| Set if a device supports network order data processing             |
> > ++--------------------------------------------------------------------+
> >
> >   The structure passed for each LDPC decode operation is given below,
> >   with the operation flags forming a bitmask in the ``op_flags`` field.
> > diff --git a/lib/bbdev/rte_bbdev_op.h b/lib/bbdev/rte_bbdev_op.h index
> > f946842727..8fab617768 100644
> > --- a/lib/bbdev/rte_bbdev_op.h
> > +++ b/lib/bbdev/rte_bbdev_op.h
> > @@ -186,7 +186,9 @@ enum rte_bbdev_op_ldpcdec_flag_bitmasks {
> >           *  for HARQ memory. If not set, it is assumed the filler bits are not
> >           *  in HARQ memory and handled directly by the LDPC decoder.
> >           */
> > -       RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS = (1ULL << 18)
> > +       RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS = (1ULL <<
> 18),
> > +       /** Set if a device supports network order data processing */
> > +       RTE_BBDEV_LDPC_DEC_NETWORK_ORDER = (1ULL << 19)
> >   };
> >
> >   /** Flags for LDPC encoder operation and capability structure */ @@
> > -206,7 +208,9 @@ enum rte_bbdev_op_ldpcenc_flag_bitmasks {
> >          /** Set if a device supports scatter-gather functionality. */
> >          RTE_BBDEV_LDPC_ENC_SCATTER_GATHER = (1ULL << 6),
> >          /** Set if a device supports concatenation of non byte aligned output
> */
> > -       RTE_BBDEV_LDPC_ENC_CONCATENATION = (1ULL << 7)
> > +       RTE_BBDEV_LDPC_ENC_CONCATENATION = (1ULL << 7),
> > +       /** Set if a device supports network order data processing */
> > +       RTE_BBDEV_LDPC_ENC_NETWORK_ORDER = (1ULL << 8)
> >   };
> >
> >   /** Flags for the Code Block/Transport block mode  */
> > --
> > 2.17.1
> >


More information about the dev mailing list