DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Thomas Monjalon <thomas@monjalon.net>,
	Michael Lilja <ml@napatech.com>,
	dev@dpdk.org, Finn Christensen <fc@napatech.com>,
	techboard@dpdk.org
Subject: Re: [dpdk-dev] [dpdk-techboard]  Napatech pmd
Date: Wed, 10 Jan 2018 07:28:15 -0500	[thread overview]
Message-ID: <20180110122815.GA17772@hmswarspite.think-freely.org> (raw)
In-Reply-To: <20180110102106.GB6388@bricha3-MOBL3.ger.corp.intel.com>

On Wed, Jan 10, 2018 at 10:21:06AM +0000, Bruce Richardson wrote:
> On Tue, Jan 09, 2018 at 07:24:45PM -0500, Neil Horman wrote:
> > On Tue, Jan 09, 2018 at 01:21:29PM -0800, Stephen Hemminger wrote:
> > > On Tue, 09 Jan 2018 21:36:03 +0100 Thomas Monjalon
> > > <thomas@monjalon.net> wrote:
> > > 
> > > > 09/01/2018 21:20, Neil Horman:
> > > > > On Tue, Jan 09, 2018 at 07:57:50PM +0000, Michael Lilja wrote:  
> > > > > > > On Mon, Jan 08, 2018 at 04:15:47PM +0100, Thomas Monjalon
> > > > > > > wrote:  
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > 08/01/2018 14:08, Finn Christensen:  
> > > > > > > > > Hi Thomas,
> > > > > > > > >
> > > > > > > > > Thanks for bringing this discussion up again.
> > > > > > > > >
> > > > > > > > > The Napatech PMD is build on top of our proprietary
> > > > > > > > > driver. The  
> > > > > > > reason is basically that we utilize many years of driver
> > > > > > > development and thus reuses the FPGA controlling code in the
> > > > > > > DPDK PMD. The Napatech driver suite is still closed source.  
> > > > > > > > > The current NTNIC PMD dynamically links a Napatech
> > > > > > > > > proprietary  
> > > > > > > NTAPI library to control the FPGA on our NICs.  
> > > > > > > > >
> > > > > > > > > We did think of the PMD as being our responsibility to
> > > > > > > > > keep updated  
> > > > > > > towards the Napatech NIC communication, and that we would be
> > > > > > > engaged and asked to modify accordingly if changes in DPDK
> > > > > > > required that (maintainer). Furthermore, the PMD compiles
> > > > > > > with no issues, when NTNIC is enabled.  
> > > > > > > > > We have plans to write a stand-alone PMD, but this is
> > > > > > > > > not a small task  
> > > > > > > to do, therefore we haven't got to that yet.  
> > > > > > > >
> > > > > > > > This standalone PMD would be open and BSD licensed?
> > > > > > > >  
> > > > > > > > > If the DPDK community would accept the dynamic linking
> > > > > > > > > to a  
> > > > > > > proprietary library, from inside our PMD, then it would be
> > > > > > > great.  
> > > > > > > >
> > > > > > > > Dynamic linking is OK.  I think we can accept such PMD at
> > > > > > > > the condition that we can build it, meaning we can easily
> > > > > > > > download the build dependencies for free.
> > > > > > > >  
> > > > > > > > > Let me know what you think. Or maybe you have ideas to
> > > > > > > > > what else  
> > > > > > > we could do to make it upstream.  
> > > > > > > >
> > > > > > > > My thinking is to allow every hardware to have a good DPDK
> > > > > > > > support.  Every step in this direction is a progress.
> > > > > > > >  
> > > > > > >
> > > > > > > I have to ask the question:  Why not open source your FPGA
> > > > > > > code?  That would make all of this a non issue.
> > > > > > >
> > > > > > > While I knows it to various degrees been done in the past, I
> > > > > > > really don't like the idea of including drivers (even open
> > > > > > > source drivers), if they have dependencies on closed source
> > > > > > > software.  It means that we as a community assume some level
> > > > > > > of responsibility for that pmd, but have no ability to make
> > > > > > > fixes to that pmd without accepting your license terms.  I
> > > > > > > understand that you are saying you currently have
> > > > > > > responsibility for it as the license owner, but if that
> > > > > > > chages in the future, the PMD has no use to the community.
> > > > > > > It would be preferable if access to controlling the hardware
> > > > > > > was just free of a proprietary license.  Then you wouldn't
> > > > > > > have to write a stand alone pmd.
> > > > > > >
> > > > > > > Neil  
> > > > > > I understand your concern, but it is quite normal that BSP
> > > > > > (Board Support Package) is binary and has an API that is BSD
> > > > > > licensed. The Napatech Suite is basically a BSP. The API that
> > > > > > will be used in the PMD is a BSD licensed API and so will the
> > > > > > PMD be. If you understand the API you will be able to control
> > > > > > the hardware and thereby also be able to change the DPDK
> > > > > > driver. The API is public available and so is the BSP binary
> > > > > > package. A good analogy is how Android does open source
> > > > > > develop for Quallcomm based HW boards, where the Quallcomm
> > > > > > firmware is proprietary. Any user can download full Android
> > > > > > stack and BSP packages free of charge to do Android
> > > > > > development.
> > > > > > 
> > > > > > /Michael
> > > > > >   
> > > > > You can couch it any way you like, but regardless of how you
> > > > > want to view the proprietary part of this system, the hardware
> > > > > is being used as a NIC in the DPDK, and for that purpose you
> > > > > need a driver.  As you currently have it architected, the driver
> > > > > (open source or not), is useless without the binary portion
> > > > > underneath it, and so is useless to any user without agreeing to
> > > > > your license terms.  Pert of the benefit of open source software
> > > > > is that users can continue to modify/enchance/maintain the
> > > > > software powering your hardware after you decide to stop
> > > > > supporting it.  And so I'm not comfortable with accepting code
> > > > > that doesn't allow this community to do that.
> > > > > 
> > > > > Neil  
> > > > 
> > > > How different is it of having a proprietary firmware?
> > > > 
> > > > I think it is better for the Napatech users to have this PMD
> > > > supported upstream.  If it is too complicate to maintain and not
> > > > supported by Napatech, we are free to drop it.
> > > > 
> > > > Adding the technical board Cc.
> > > 
> > > 
> > > Agree with Thomas.  "Bad breath is better than no breath at all"
> > > 
> > I understand your intent here, but in fairness, theres a position
> > between bad and no breath, metaphorically - that is to say,
> > maintaining the driver out of tree.
> > 
> > > Though I suspect that DPDK linked to proprietary code is going to
> > > unmaintainable across releases, and very hard to debug problems. 
> > > 
> > My point exactly, this PMD will receive exactly no testing from anyone
> > in the community as they won't accept the license terms of the binary
> > blob underneath it, and so this driver will likely see almost exactly
> > the same level of support as it would were it maintained out of tree.
> > 
> I wonder is this really an issue? For many NIC drivers, now many
> community users actively test (not just use in their app, but test a
> full range of functions) the driver, apart from the maintainers from the
> NIC vendors? [Thinking here especially of the less commonly used ones].
> 
> So long as there is active maintenance of the driver by the vendor, I
> don't think there is a problem. Once code is unmaintained, it *is* a
> problem, whether the underlying requirements are proprietary or not - 
> just look at Xen support in DPDK! In my view, by accepting a driver
> with a proprietary dependency, the only thing we are lacking is the
> ability for someone else to step up to maintain the driver should the
> original vendor drop out. Given our difficulty in finding maintainers
> for things, I wouldn't view that as a major loss.
> 
I can see I'm in the minority on this issue, and thats fine, Just please
understand that, in my experience, this has never gone well in the past in any
community I have participated in.

Neil

> Regards,
> /Bruce
> 

  reply	other threads:[~2018-01-10 12:29 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-08 13:08 [dpdk-dev] " Finn Christensen
2018-01-08 15:15 ` Thomas Monjalon
2018-01-08 15:31   ` Stephen Hemminger
2018-01-09 10:43   ` Finn Christensen
2018-01-09 18:50   ` Neil Horman
2018-01-09 19:57     ` Michael Lilja
2018-01-09 20:20       ` Neil Horman
2018-01-09 20:36         ` Thomas Monjalon
2018-01-09 21:21           ` [dpdk-dev] [dpdk-techboard] " Stephen Hemminger
2018-01-10  0:24             ` Neil Horman
2018-01-10 10:21               ` Bruce Richardson
2018-01-10 12:28                 ` Neil Horman [this message]
2018-01-10  0:19           ` [dpdk-dev] " Neil Horman
2018-01-10  0:25             ` Thomas Monjalon
2020-03-31 11:25 ` Thomas Monjalon
2020-03-31 12:17   ` Neil Horman
2020-03-31 12:29     ` Thomas Monjalon
2020-03-31 12:39       ` Michael Lilja
2020-03-31 12:45         ` Thomas Monjalon
2020-03-31 13:08           ` Michael Lilja
2020-03-31 14:58         ` Stephen Hemminger
2020-03-31 19:51           ` Neil Horman
2020-03-31 19:59             ` Thomas Monjalon
2020-04-01 12:40               ` Neil Horman
2020-03-31 19:56       ` Neil Horman
2020-03-31 20:07         ` Thomas Monjalon
2020-04-01 12:49           ` Neil Horman
2020-04-17  2:54           ` Neil Horman
2020-04-17  4:38             ` Michael Lilja
2020-04-19 21:16               ` Neil Horman
2020-04-20  5:05                 ` Michael Lilja
2020-12-11  8:36                   ` Thomas Monjalon
2020-12-11  8:41                     ` Michael Lilja

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180110122815.GA17772@hmswarspite.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=fc@napatech.com \
    --cc=ml@napatech.com \
    --cc=stephen@networkplumber.org \
    --cc=techboard@dpdk.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).