2016-10-21 15:08:25

by Mario Limonciello

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

> -----Original Message-----
> From: Amir Levy [mailto:[email protected]]
> Sent: Wednesday, September 28, 2016 9:44 AM
> To: [email protected]
> Cc: [email protected]; [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected]; Limonciello, Mario
> <[email protected]>; [email protected];
> [email protected]; [email protected];
> [email protected]; Amir Levy <[email protected]>
> 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 <[email protected]>

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,


2016-10-27 15:51:29

by Andreas Noever

[permalink] [raw]
Subject: Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking

On Fri, Oct 21, 2016 at 4:57 PM, <[email protected]> wrote:
>> -----Original Message-----
>> From: Amir Levy [mailto:[email protected]]
>> Sent: Wednesday, September 28, 2016 9:44 AM
>> To: [email protected]
>> Cc: [email protected]; [email protected]; [email protected];
>> [email protected]; [email protected];
>> [email protected]; [email protected]; Limonciello, Mario
>> <[email protected]>; [email protected];
>> [email protected]; [email protected];
>> [email protected]; Amir Levy <[email protected]>
>> 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 <[email protected]>
>
> 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,

That I don't know, but this driver does the inverse dmi_match of the
current apple driver (dmi_match(DMI_BOARD_VENDOR, "Apple Inc.")), and
therefore there should be no interaction between the two.

Acked-by: Andreas Noever <[email protected]>

Cheers,
Andreas