RE: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking

From: Mario.Limonciello
Date: Fri Oct 21 2016 - 11:09:32 EST


> -----Original Message-----
> From: Amir Levy [mailto:amir.jer.levy@xxxxxxxxx]
> Sent: Wednesday, September 28, 2016 9:44 AM
> To: gregkh@xxxxxxxxxxxxxxxxxxx
> Cc: andreas.noever@xxxxxxxxx; bhelgaas@xxxxxxxxxx; corbet@xxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx;
> netdev@xxxxxxxxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx; Limonciello, Mario
> <Mario_Limonciello@xxxxxxxx>; thunderbolt-linux@xxxxxxxxx;
> mika.westerberg@xxxxxxxxx; tomas.winkler@xxxxxxxxx;
> xiong.y.zhang@xxxxxxxxx; Amir Levy <amir.jer.levy@xxxxxxxxx>
> 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.limonciello@xxxxxxxx>

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,