Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1420092
| From | Henrik Austad <henrik@austad.us> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [very-RFC 0/8] TSN driver for the kernel |
| Date | 2016-06-12 01:00 +0200 |
| Message-ID | <rJ02K-yf-17@gated-at.bofh.it> (permalink) |
| References | <rIZJn-rN-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Sun, Jun 12, 2016 at 12:22:13AM +0200, Henrik Austad wrote: > Hi all Sorry.. I somehow managed to mess up the address to netdev, so if you feel like replying to this, use this as it has the correct netdev-address. again, sorry > (series based on v4.7-rc2) > > This is a *very* early RFC for a TSN-driver in the kernel. It has been > floating around in my repo for a while and I would appreciate some > feedback on the overall design to avoid doing some major blunders. > > TSN: Time Sensitive Networking, formely known as AVB (Audio/Video > Bridging). > > There are at least one AVB-driver (the AV-part of TSN) in the kernel > already, however this driver aims to solve a wider scope as TSN can do > much more than just audio. A very basic ALSA-driver is added to the end > that allows you to play music between 2 machines using aplay in one end > and arecord | aplay on the other (some fiddling required) We have plans > for doing the same for v4l2 eventually (but there are other fishes to > fry first). The same goes for a TSN_SOCK type approach as well. > > TSN is all about providing infrastructure. Allthough there are a few > very interesting uses for TSN (reliable, deterministic network for audio > and video), once you have that reliable link, you can do a lot more. > > Some notes on the design: > > The driver is directed via ConfigFS as we need userspace to handle > stream-reservation (MSRP), discovery and enumeration (IEEE 1722.1) and > whatever other management is needed. Once we have all the required > attributes, we can create link using mkdir, and use write() to set the > attributes. Once ready, specify the 'shim' (basically a thin wrapper > between TSN and another subsystem) and we start pushing out frames. > > The network part: it ties directly into the rx-handler for receive and > writes skb's using netdev_start_xmit(). This could probably be > improved. 2 new fields in netdev_ops have been introduced, and the Intel > igb-driver has been updated (as this is available as a PCI-e card). The > igb-driver works-ish > > > What remains > - tie to (g)PTP properly, currently using ktime_get() for presentation > time > - get time from shim into TSN and vice versa > - let shim create/manage buffer > > Henrik Austad (8): > TSN: add documentation > TSN: Add the standard formerly known as AVB to the kernel > Adding TSN-driver to Intel I210 controller > Add TSN header for the driver > Add TSN machinery to drive the traffic from a shim over the network > Add TSN event-tracing > AVB ALSA - Add ALSA shim for TSN > MAINTAINERS: add TSN/AVB-entries > > Documentation/TSN/tsn.txt | 147 +++++ > MAINTAINERS | 14 + > drivers/media/Kconfig | 15 + > drivers/media/Makefile | 3 +- > drivers/media/avb/Makefile | 5 + > drivers/media/avb/avb_alsa.c | 742 +++++++++++++++++++++++ > drivers/media/avb/tsn_iec61883.h | 124 ++++ > drivers/net/ethernet/intel/Kconfig | 18 + > drivers/net/ethernet/intel/igb/Makefile | 2 +- > drivers/net/ethernet/intel/igb/igb.h | 19 + > drivers/net/ethernet/intel/igb/igb_main.c | 10 +- > drivers/net/ethernet/intel/igb/igb_tsn.c | 396 ++++++++++++ > include/linux/netdevice.h | 32 + > include/linux/tsn.h | 806 ++++++++++++++++++++++++ > include/trace/events/tsn.h | 349 +++++++++++ > net/Kconfig | 1 + > net/Makefile | 1 + > net/tsn/Kconfig | 32 + > net/tsn/Makefile | 6 + > net/tsn/tsn_configfs.c | 623 +++++++++++++++++++ > net/tsn/tsn_core.c | 975 ++++++++++++++++++++++++++++++ > net/tsn/tsn_header.c | 203 +++++++ > net/tsn/tsn_internal.h | 383 ++++++++++++ > net/tsn/tsn_net.c | 403 ++++++++++++ > 24 files changed, 5306 insertions(+), 3 deletions(-) > create mode 100644 Documentation/TSN/tsn.txt > create mode 100644 drivers/media/avb/Makefile > create mode 100644 drivers/media/avb/avb_alsa.c > create mode 100644 drivers/media/avb/tsn_iec61883.h > create mode 100644 drivers/net/ethernet/intel/igb/igb_tsn.c > create mode 100644 include/linux/tsn.h > create mode 100644 include/trace/events/tsn.h > create mode 100644 net/tsn/Kconfig > create mode 100644 net/tsn/Makefile > create mode 100644 net/tsn/tsn_configfs.c > create mode 100644 net/tsn/tsn_core.c > create mode 100644 net/tsn/tsn_header.c > create mode 100644 net/tsn/tsn_internal.h > create mode 100644 net/tsn/tsn_net.c > > -- > 2.7.4 -- Henrik Austad
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[very-RFC 0/8] TSN driver for the kernel Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
[very-RFC 2/8] TSN: Add the standard formerly known as AVB to the kernel Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
Re: [very-RFC 2/8] TSN: Add the standard formerly known as AVB to the kernel David Miller <davem@davemloft.net> - 2016-06-12 01:00 +0200
Re: [very-RFC 2/8] TSN: Add the standard formerly known as AVB to the kernel Henrik Austad <henrik@austad.us> - 2016-06-12 01:00 +0200
[very-RFC 7/8] AVB ALSA - Add ALSA shim for TSN Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
[very-RFC 1/8] TSN: add documentation Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
Re: [very-RFC 1/8] TSN: add documentation David Miller <davem@davemloft.net> - 2016-06-12 00:40 +0200
Re: [very-RFC 1/8] TSN: add documentation Henrik Austad <henrik@austad.us> - 2016-06-12 00:50 +0200
Re: [very-RFC 1/8] TSN: add documentation David Miller <davem@davemloft.net> - 2016-06-12 00:50 +0200
Re: [very-RFC 1/8] TSN: add documentation Henrik Austad <henrik@austad.us> - 2016-06-12 01:00 +0200
Re: [very-RFC 1/8] TSN: add documentation Henrik Austad <henrik@austad.us> - 2016-06-12 01:00 +0200
[very-RFC 8/8] MAINTAINERS: add TSN/AVB-entries Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
[very-RFC 6/8] Add TSN event-tracing Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
[very-RFC 4/8] Add TSN header for the driver Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
Re: [very-RFC 4/8] Add TSN header for the driver Henrik Austad <henrik@austad.us> - 2016-06-12 01:00 +0200
Re: [very-RFC 4/8] Add TSN header for the driver Henrik Austad <henrik@austad.us> - 2016-06-12 01:00 +0200
[very-RFC 3/8] Adding TSN-driver to Intel I210 controller Henrik Austad <henrik@austad.us> - 2016-06-12 00:40 +0200
Re: [very-RFC 3/8] Adding TSN-driver to Intel I210 controller Henrik Austad <henrik@austad.us> - 2016-06-12 01:00 +0200
Re: [very-RFC 0/8] TSN driver for the kernel Henrik Austad <henrik@austad.us> - 2016-06-12 01:00 +0200
Re: [very-RFC 5/8] Add TSN machinery to drive the traffic from a shim over the network Joe Perches <joe@perches.com> - 2016-06-12 09:40 +0200
Re: [very-RFC 5/8] Add TSN machinery to drive the traffic from a shim over the network Henrik Austad <henrik@austad.us> - 2016-06-12 10:40 +0200
csiph-web