> Subject: Re: [Patch v8 01/18] net/mana: add basic driver with build
> environment and doc
> 
> On 9/8/2022 10:56 PM, lon...@linuxonhyperv.com wrote:
> > From: Long Li <lon...@microsoft.com>
> >
> > MANA is a PCI device. It uses IB verbs to access hardware through the
> > kernel RDMA layer. This patch introduces build environment and basic
> > device probe functions.
> >
> > Signed-off-by: Long Li <lon...@microsoft.com>
> > ---
> > Change log:
> > v2:
> > Fix typos.
> > Make the driver build only on x86-64 and Linux.
> > Remove unused header files.
> > Change port definition to uint16_t or uint8_t (for IB).
> > Use getline() in place of fgets() to read and truncate a line.
> > v3:
> > Add meson build check for required functions from RDMA direct verb
> > header file
> > v4:
> > Remove extra "\n" in logging code.
> > Use "r" in place of "rb" in fopen() to read text files.
> > v7:
> > Remove RTE_ETH_TX_OFFLOAD_TCP_TSO from offload cap.
> > v8:
> > Add clarification on driver args usage to nics guide.
> > Fix coding sytle on function definitions.
> > Use different variable names in MANA_MKSTR.
> > Use MANA_ prefix for all macros.
> > Use RTE_PMD_REGISTER_PCI in place of rte_pci_register.
> > Add .vendor_id = 0 to the end of PCI table.
> > Remove RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS from dev_flags.
> >
> 
> <...>
> 
> > +Prerequisites
> > +-------------
> > +
> > +This driver relies on external libraries and kernel drivers for
> > +resources allocations and initialization. The following dependencies
> > +are not part of DPDK and must be installed separately:
> > +
> > +- **libibverbs** (provided by rdma-core package)
> > +
> > +  User space verbs framework used by librte_net_mana. This library
> > + provides  a generic interface between the kernel and low-level user
> > + space drivers  such as libmana.
> > +
> > +  It allows slow and privileged operations (context initialization,
> > + hardware  resources allocations) to be managed by the kernel and
> > + fast operations to  never leave user space.
> > +
> > +- **libmana** (provided by rdma-core package)
> > +
> > +  Low-level user space driver library for Microsoft Azure Network
> > + Adapter  devices, it is automatically loaded by libibverbs. The
> > + minimal version of  rdma-core with libmana is v43.
> > +
> > +- **Kernel modules**
> > +
> > +  They provide the kernel-side verbs API and low level device drivers
> > + that  manage actual hardware initialization and resources sharing
> > + with user  space processes.
> > +
> > +  Unlike most other PMDs, these modules must remain loaded and bound
> > + to  their devices:
> > +
> > +  - mana: Ethernet device driver that provides kernel network interfaces.
> > +  - mana_ib: InifiniBand device driver.
> > +  - ib_uverbs: user space driver for verbs (entry point for libibverbs).
> > +
> 
> Can you please add minimum required versions of kernel and libibverbs (if it
> applies)?
> 
> <...>
> 
> > +
> > +static struct rte_pci_driver mana_pci_driver = {
> > +   .driver = {
> > +           .name = "net_mana",
> > +   },
> 
> No need to set .driver.name, 'RTE_PMD_REGISTER_PCI' macro below should
> be setting it already, can you please check?
> 
> <...>
> 
> > +#define MANA_DEV_TX_OFFLOAD_SUPPORT ( \
> > +           RTE_ETH_TX_OFFLOAD_MULTI_SEGS | \
> > +           RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | \
> > +           RTE_ETH_TX_OFFLOAD_TCP_CKSUM | \
> > +           RTE_ETH_TX_OFFLOAD_UDP_CKSUM)
> > +
> 
> Can you please add code when they are used, instead of batch adding the
> header, this helps to keep all patches as logical entities.
> 
> This comment is valid for multiple code below.

Sure, will send out updates.

Reply via email to