Subject: Re: Possibility of me mainlining Tehuti Networks 10GbE driver

From: Andy Gospodarek <[email-masked]>
Date: Tue, 12 Nov 2019 11:01:15 -0500

On Fri, Nov 08, 2019 at 02:24:44AM +0000, Nicholas Johnson wrote:
> Hi all,
> 
> To start off, if I am emailing the wrong people, please blame the output 
> of: "scripts/get_maintainer.pl drivers/net/ethernet/tehuti/" and let me 
> know who I should be contacting. Should I add in 
> "[email-masked]"?
> 
> I just discovered that the Tehuti 10GbE networking drivers (required for 
> things such as some AKiTiO Thunderbolt to 10GbE adapters) are not in 
> mainline. I am interested in mainlining it, but need to know how much 
> work it would take and if it will force me to be the maintainer for all 
> eternity.
> 
> The driver, in tn40xx-0.3.6.15-c.tar appears to be available here:
> Link: https://www.akitio.com/faq/341-thunder3-10gbe-adapter-can-i-use-this-network-adapter-on-linux
> Also here:
> Link: https://github.com/acooks/tn40xx-driver
> 
> I see some immediate style problems and indentation issues. I can fix 
> these.
> 
> The current driver only works with Linux v4.19, I believe. There are a 
> small handful of compile errors with v5.4. I can probably fix these.
> 
> However, could somebody please comment on any technical issues that you 
> can see here? How much work do you think I would have to do to mainline 
> this? Would I have to buy such a device for testing? Would I have to buy 
> *all* of the supported devices for testing? Or can other people do that 
> for me?
> 
> I am not keen on having to buy anything without mainline support - it is 
> an instant disqualification of a hardware vendor. It results in a 
> terrible user experience for experienced people (might not be able to 
> use latest kernel which is needed for supporting other things) and is 
> debilitating for people new to Linux who do not how to use the terminal, 
> possibly enough so that they will go back to Windows.
> 
> Andy, what is your relationship to Tehuti Networks? Would you be happy 
> to maintain this if I mainlined it? It says you are maintainer of 
> drivers/net/ethernet/tehuti/ directory. I will not do this if I am 
> expected to maintain it - in no small part because I do not know a lot 
> about it. I will only be modifying what is currently available to make 
> it acceptable for mainline, if possible.

[Nicolas, sorry for the slow response -- I've been AFK for a bit.]

A long time ago, in a galaxy far, far away Tehuti sent me one of their
early 10GbE adapters and asked if I would help them take their driver
upstream.  They provided an out of tree driver as a basis and after a
few revisions David Miller agreed to take this into net-next.  The
driver as it exists today could use lots of work.  There were many items
on my TODO list for it, but I never made the time to clean it up
properly so it could still use some care and feeding.  I just checked my
cache of cards and unfortunately it looks like I do not have any of
these adapters at home any longer.  I may need to check the office to
see if I have one there, but I think chances are slim.

I'd feel better about helping to maintain the driver if there was
hardware available for whoever was doing the work.  It looks like there
are some pretty cheap (sub-200USD) cards available online that use that
chipset.  Frankly, I'd probably also feel better about maintaining it
and updating to all the coolest new features if I didn't currently work
at another hardware vendor, so I need to consider that.

I haven't pulled down their latest driver from github, but I'd be
curious to see how close the hardware drivers appear to be between the
40xx chipset and the original TOE SmartNIC[sic] that is supported
upstream today.  Did you by any chance compare the two?

> Also, license issues - does GPLv2 permit mainlining to happen? I believe 
> the Tehuti driver is available under GPLv2 (correct me if I am wrong).
> 
> Would I need to send patches for this, or for something this size, is it 
> better to send a pull request? If I am going to do patches, I will need 
> to make a gmail account or something, as Outlook messes with the 
> encoding of the things which I send.
> 
> Thanks for any comments on this.
> 
> Kind regards,
> Nicholas Johnson