From mboxrd@z Thu Jan 1 00:00:00 1970 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) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Oct 2017 17:24:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,475,1500966000"; d="scan'208";a="906429706" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.241.224.245]) ([10.241.224.245]) by FMSMGA003.fm.intel.com with ESMTP; 03 Oct 2017 17:24:27 -0700 To: Tomasz Duszynski , dev@dpdk.org Cc: mw@semihalf.com, dima@marvell.com, nsamsono@marvell.com, Jianbo.liu@linaro.org, Jacek Siuda 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> From: Ferruh Yigit Message-ID: Date: Wed, 4 Oct 2017 01:24:27 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <1507031500-11473-3-git-send-email-tdu@semihalf.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v3 2/4] net/mrvl: add mrvl net pmd driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Oct 2017 00:24:30 -0000 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? <....>