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
>
next prev parent 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).