RE: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking
> -Original Message- > From: Amir Levy [mailto:amir.jer.l...@intel.com] > Sent: Wednesday, September 28, 2016 9:44 AM > To: gre...@linuxfoundation.org > Cc: andreas.noe...@gmail.com; bhelg...@google.com; cor...@lwn.net; > linux-ker...@vger.kernel.org; linux-...@vger.kernel.org; > net...@vger.kernel.org; linux-doc@vger.kernel.org; Limonciello, Mario > <mario_limoncie...@dell.com>; thunderbolt-li...@intel.com; > mika.westerb...@intel.com; tomas.wink...@intel.com; > xiong.y.zh...@intel.com; Amir Levy <amir.jer.l...@intel.com> > Subject: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) > Networking > > This driver enables Thunderbolt Networking on non-Apple platforms > running Linux. > > Thunderbolt Networking provides peer-to-peer connections to transfer > files between computers, perform PC migrations, and/or set up small > workgroups with shared storage. > > This is a virtual connection that emulates an Ethernet adapter that > enables Ethernet networking with the benefit of Thunderbolt superfast > medium capability. > > Thunderbolt Networking enables two hosts and several devices that > have a Thunderbolt controller to be connected together in a linear > (Daisy chain) series from a single port. > > Thunderbolt Networking for Linux is compatible with Thunderbolt > Networking on systems running macOS or Windows and also supports > Thunderbolt generation 2 and 3 controllers. > > Note that all pre-existing Thunderbolt generation 3 features, such as > USB, Display and other Thunderbolt device connectivity will continue > to function exactly as they did prior to enabling Thunderbolt Networking. > > Code and Software Specifications: > This kernel code creates a virtual ethernet device for computer to > computer communication over a Thunderbolt cable. > The new driver is a separate driver to the existing Thunderbolt driver. > It is designed to work on systems running Linux that > interface with Intel Connection Manager (ICM) firmware based > Thunderbolt controllers that support Thunderbolt Networking. > The kernel code operates in coordination with the Thunderbolt user- > space daemon to implement full Thunderbolt networking functionality. > > Hardware Specifications: > Thunderbolt Hardware specs have not yet been published but are used > where necessary for register definitions. > > Changes since v7: > - Removed debug prints > - Edited error prints > - Edited copyright notice > - Changed the Kconfig patch to be after the code changes > > These patches were pushed to GitHub where they can be reviewed more > comfortably with green/red highlighting: > https://github.com/01org/thunderbolt-software-kernel-tree > > Daemon code: > https://github.com/01org/thunderbolt-software-daemon > > For reference, here's a link to version 6: > [v7]: https://lkml.org/lkml/2016/9/27/244 > > Amir Levy (8): > thunderbolt: Macro rename > thunderbolt: Updating the register definitions > thunderbolt: Communication with the ICM (firmware) > thunderbolt: Networking state machine > thunderbolt: Networking transmit and receive > thunderbolt: Kconfig for Thunderbolt Networking > thunderbolt: Networking doc > thunderbolt: Adding maintainer entry > > Documentation/00-INDEX |2 + > Documentation/thunderbolt/networking.txt | 132 ++ > MAINTAINERS |8 +- > drivers/thunderbolt/Kconfig | 27 +- > drivers/thunderbolt/Makefile |3 +- > drivers/thunderbolt/icm/Makefile |2 + > drivers/thunderbolt/icm/icm_nhi.c| 1514 > drivers/thunderbolt/icm/icm_nhi.h| 82 ++ > drivers/thunderbolt/icm/net.c| 2254 > ++ > drivers/thunderbolt/icm/net.h| 287 > drivers/thunderbolt/nhi_regs.h | 115 +- > 11 files changed, 4417 insertions(+), 9 deletions(-) > create mode 100644 Documentation/thunderbolt/networking.txt > create mode 100644 drivers/thunderbolt/icm/Makefile > create mode 100644 drivers/thunderbolt/icm/icm_nhi.c > create mode 100644 drivers/thunderbolt/icm/icm_nhi.h > create mode 100644 drivers/thunderbolt/icm/net.c > create mode 100644 drivers/thunderbolt/icm/net.h > > -- > 2.7.4 Hi Amir, I've tested your v8 series on Dell hardware with Thunderbolt Controllers again between a Linux and Windows box. Functionally it's working well. Tested-By: Mario Limonciello <mario.limoncie...@dell.com> Andreas, Following the history of this thread, I believe Greg was still looking for an ack from you that Amir is using the interface properly. Thanks, -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking
On Fri, Sep 30, 2016 at 08:37:36AM +, Levy, Amir (Jer) wrote: > On Fri, Sep 30 2016, 09:40 AM, David Miller wrote: > > From: Greg KH> > Date: Fri, 30 Sep 2016 08:30:05 +0200 > > > > > On Fri, Sep 30, 2016 at 01:55:55AM -0400, David Miller wrote: > > >> From: Amir Levy > > >> Date: Wed, 28 Sep 2016 17:44:22 +0300 > > >> > > >> > This driver enables Thunderbolt Networking on non-Apple platforms > > >> > running Linux. > > >> > > >> Greg, any idea where this should get merged once fully vetted? I can > > >> take it through the net-next tree, but I'm fine with another more > > >> appropriate tree taking it as well. > > > > > > I am supposed to be taking thunderbolt patches, but if this really is > > > a network driver, it should go under drivers/net/ somewhere. It needs > > > more review though, it's not ready to go through anyone's tree just > > > yet :) > > > > > > I'll let the thunderbolt maintainer go through it first before asking > > > for a netdev review. > > > > Ok, thanks Greg. > > Greg, David, > Andreas replied to similar request on patch v6: > "This driver is independent from mine. It uses an interface provided > by the firmware which is not present on Apple hardware and with which > I am not familiar (also it does networking, not pci with which I am > also not familiar). So I cannot comment on the driver itself. I don't > mind a second driver, if that is what you are asking." Yes, but I still need an ack from the thunderbolt maintainer that you aren't doing anything foolish with that interface before I can take the code. > Note that Thunderbolt Networking is the first feature we would like to > submit, but the next features aren't related to network, but more to > Thunderbolt functionality. If this really is a real network device, it should probably live in drivers/net/ like other network drivers. > This is the reason I created the directory thunderbolt/icm, since the > next features requires ICM to be enabled as well. As long as you have ICM split out so that other drivers can use it, it should be fine, no matter where in the tree it lives, right? > I also followed the firewire as example that includes net.c (in > drivers/firewire directory) along with other firewire functionality. That's the old-style of placing files. We have moved the USB network drivers out of drivers/usb/ a while ago. The current thought is to group drivers of specific types, not busses, together wherever possible, as that is usually the majority of the logic in the driver (i.e. a USB network driver has more network-driver specific logic than USB-specific logic.) Hope this helps explain things. I'll get to your patches next week, they are in my queue at the moment, but have conferences to deal with at the moment. Don't let my delay stop you from working on further "ICM" drivers if needed, you can always send new series of patches that build on this one when you have it ready. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking
On Fri, Sep 30 2016, 09:40 AM, David Miller wrote: > From: Greg KH> Date: Fri, 30 Sep 2016 08:30:05 +0200 > > > On Fri, Sep 30, 2016 at 01:55:55AM -0400, David Miller wrote: > >> From: Amir Levy > >> Date: Wed, 28 Sep 2016 17:44:22 +0300 > >> > >> > This driver enables Thunderbolt Networking on non-Apple platforms > >> > running Linux. > >> > >> Greg, any idea where this should get merged once fully vetted? I can > >> take it through the net-next tree, but I'm fine with another more > >> appropriate tree taking it as well. > > > > I am supposed to be taking thunderbolt patches, but if this really is > > a network driver, it should go under drivers/net/ somewhere. It needs > > more review though, it's not ready to go through anyone's tree just > > yet :) > > > > I'll let the thunderbolt maintainer go through it first before asking > > for a netdev review. > > Ok, thanks Greg. Greg, David, Andreas replied to similar request on patch v6: "This driver is independent from mine. It uses an interface provided by the firmware which is not present on Apple hardware and with which I am not familiar (also it does networking, not pci with which I am also not familiar). So I cannot comment on the driver itself. I don't mind a second driver, if that is what you are asking." Note that Thunderbolt Networking is the first feature we would like to submit, but the next features aren't related to network, but more to Thunderbolt functionality. This is the reason I created the directory thunderbolt/icm, since the next features requires ICM to be enabled as well. I also followed the firewire as example that includes net.c (in drivers/firewire directory) along with other firewire functionality. Thanks, Amir -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking
On Fri, Sep 30, 2016 at 01:55:55AM -0400, David Miller wrote: > From: Amir Levy> Date: Wed, 28 Sep 2016 17:44:22 +0300 > > > This driver enables Thunderbolt Networking on non-Apple platforms > > running Linux. > > Greg, any idea where this should get merged once fully vetted? I can > take it through the net-next tree, but I'm fine with another more > appropriate tree taking it as well. I am supposed to be taking thunderbolt patches, but if this really is a network driver, it should go under drivers/net/ somewhere. It needs more review though, it's not ready to go through anyone's tree just yet :) I'll let the thunderbolt maintainer go through it first before asking for a netdev review. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking
From: Amir LevyDate: Wed, 28 Sep 2016 17:44:22 +0300 > This driver enables Thunderbolt Networking on non-Apple platforms > running Linux. Greg, any idea where this should get merged once fully vetted? I can take it through the net-next tree, but I'm fine with another more appropriate tree taking it as well. Thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking
This driver enables Thunderbolt Networking on non-Apple platforms running Linux. Thunderbolt Networking provides peer-to-peer connections to transfer files between computers, perform PC migrations, and/or set up small workgroups with shared storage. This is a virtual connection that emulates an Ethernet adapter that enables Ethernet networking with the benefit of Thunderbolt superfast medium capability. Thunderbolt Networking enables two hosts and several devices that have a Thunderbolt controller to be connected together in a linear (Daisy chain) series from a single port. Thunderbolt Networking for Linux is compatible with Thunderbolt Networking on systems running macOS or Windows and also supports Thunderbolt generation 2 and 3 controllers. Note that all pre-existing Thunderbolt generation 3 features, such as USB, Display and other Thunderbolt device connectivity will continue to function exactly as they did prior to enabling Thunderbolt Networking. Code and Software Specifications: This kernel code creates a virtual ethernet device for computer to computer communication over a Thunderbolt cable. The new driver is a separate driver to the existing Thunderbolt driver. It is designed to work on systems running Linux that interface with Intel Connection Manager (ICM) firmware based Thunderbolt controllers that support Thunderbolt Networking. The kernel code operates in coordination with the Thunderbolt user- space daemon to implement full Thunderbolt networking functionality. Hardware Specifications: Thunderbolt Hardware specs have not yet been published but are used where necessary for register definitions. Changes since v7: - Removed debug prints - Edited error prints - Edited copyright notice - Changed the Kconfig patch to be after the code changes These patches were pushed to GitHub where they can be reviewed more comfortably with green/red highlighting: https://github.com/01org/thunderbolt-software-kernel-tree Daemon code: https://github.com/01org/thunderbolt-software-daemon For reference, here's a link to version 6: [v7]: https://lkml.org/lkml/2016/9/27/244 Amir Levy (8): thunderbolt: Macro rename thunderbolt: Updating the register definitions thunderbolt: Communication with the ICM (firmware) thunderbolt: Networking state machine thunderbolt: Networking transmit and receive thunderbolt: Kconfig for Thunderbolt Networking thunderbolt: Networking doc thunderbolt: Adding maintainer entry Documentation/00-INDEX |2 + Documentation/thunderbolt/networking.txt | 132 ++ MAINTAINERS |8 +- drivers/thunderbolt/Kconfig | 27 +- drivers/thunderbolt/Makefile |3 +- drivers/thunderbolt/icm/Makefile |2 + drivers/thunderbolt/icm/icm_nhi.c| 1514 drivers/thunderbolt/icm/icm_nhi.h| 82 ++ drivers/thunderbolt/icm/net.c| 2254 ++ drivers/thunderbolt/icm/net.h| 287 drivers/thunderbolt/nhi_regs.h | 115 +- 11 files changed, 4417 insertions(+), 9 deletions(-) create mode 100644 Documentation/thunderbolt/networking.txt create mode 100644 drivers/thunderbolt/icm/Makefile create mode 100644 drivers/thunderbolt/icm/icm_nhi.c create mode 100644 drivers/thunderbolt/icm/icm_nhi.h create mode 100644 drivers/thunderbolt/icm/net.c create mode 100644 drivers/thunderbolt/icm/net.h -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html