From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH v3 2/4] net/mrvl: add mrvl net pmd driver Date: Wed, 4 Oct 2017 01:24:27 +0100 Message-ID: References: <1506594158-15721-2-git-send-email-tdu@semihalf.com> <1507031500-11473-1-git-send-email-tdu@semihalf.com> <1507031500-11473-3-git-send-email-tdu@semihalf.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: mw@semihalf.com, dima@marvell.com, nsamsono@marvell.com, Jianbo.liu@linaro.org, Jacek Siuda To: Tomasz Duszynski , dev@dpdk.org Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id F057C1B387 for ; Wed, 4 Oct 2017 02:24:29 +0200 (CEST) In-Reply-To: <1507031500-11473-3-git-send-email-tdu@semihalf.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 10/3/2017 12:51 PM, Tomasz Duszynski wrote: > Add support for the Marvell PPv2 (Packet Processor v2) 1/10 Gbps adapter. > Driver is based on external, publicly available, light-weight Marvell > MUSDK library that provides access to network packet processor. > > Driver comes with support for the following features: > > * Speed capabilities > * Link status > * Queue start/stop > * MTU update > * Jumbo frame > * Promiscuous mode > * Allmulticast mode > * Unicast MAC filter > * Multicast MAC filter > * RSS hash > * VLAN filter > * CRC offload > * L3 checksum offload > * L4 checksum offload > * Packet type parsing > * Basic stats > * Stats per queue I have more detailed comments but in high level, what do you think splitting this patch into three patches: - Skeleton - Add Rx/Tx support - Add features, like MTU update or Promiscuous etc.. support > > Driver was engineered cooperatively by Semihalf and Marvell teams. > > Semihalf: > Jacek Siuda > Tomasz Duszynski > > Marvell: > Dmitri Epshtein > Natalie Samsonov > > Signed-off-by: Jacek Siuda > Signed-off-by: Tomasz Duszynski <...> > +static struct rte_vdev_driver pmd_mrvl_drv = { > + .probe = rte_pmd_mrvl_probe, > + .remove = rte_pmd_mrvl_remove, > +}; > + > +RTE_PMD_REGISTER_VDEV(net_mrvl, pmd_mrvl_drv); Please help me understand. This driver implemented as virtual driver, because: With the help of custom kernel modules, musdk library already provides userspace datapath support. This PMD is an interface to musdk library. Is this correct? If so, just thinking loud: - Why not implement this PMD directly on top of kernel interface, removing musdk layer completely? - How big problem that this PMD depends on custom kernel code? - How library and custom kernel code delivered? For which platforms? <....>