All of lore.kernel.org
 help / color / mirror / Atom feed
From: Henrik Austad <henrik@austad.us>
To: John Fastabend <john.fastabend@gmail.com>
Cc: Richard Cochran <richardcochran@gmail.com>,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
	alsa-devel@vger.kernel.org, netdev@vger.kernel.org,
	henrik@austad.us, Arnd Bergmann <arnd@linaro.org>
Subject: Re: [very-RFC 0/8] TSN driver for the kernel
Date: Tue, 14 Jun 2016 10:35:55 +0200	[thread overview]
Message-ID: <20160614083555.GA21689@sisyphus.home.austad.us> (raw)
In-Reply-To: <575ED7BC.4000803@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2507 bytes --]

On Mon, Jun 13, 2016 at 08:56:44AM -0700, John Fastabend wrote:
> On 16-06-13 04:47 AM, Richard Cochran wrote:
> > [...]
> > Here is what is missing to support audio TSN:
> > 
> > * User Space
> > 
> > 1. A proper userland stack for AVDECC, MAAP, FQTSS, and so on.  The
> >    OpenAVB project does not offer much beyond simple examples.
> > 
> > 2. A user space audio application that puts it all together, making
> >    use of the services in #1, the linuxptp gPTP service, the ALSA
> >    services, and the network connections.  This program will have all
> >    the knowledge about packet formats, AV encodings, and the local HW
> >    capabilities.  This program cannot yet be written, as we still need
> >    some kernel work in the audio and networking subsystems.
> > 
> > * Kernel Space
> > 
> > 1. Providing frames with a future transmit time.  For normal sockets,
> >    this can be in the CMESG data.  For mmap'ed buffers, we will need a
> >    new format.  (I think Arnd is working on a new layout.)
> > 
> > 2. Time based qdisc for transmitted frames.  For MACs that support
> >    this (like the i210), we only have to place the frame into the
> >    correct queue.  For normal HW, we want to be able to reserve a time
> >    window in which non-TSN frames are blocked.  This is some work, but
> >    in the end it should be a generic solution that not only works
> >    "perfectly" with TSN HW but also provides best effort service using
> >    any NIC.
> > 
> 
> When I looked at this awhile ago I convinced myself that it could fit
> fairly well into the DCB stack (DCB is also part of 802.1Q). A lot of
> the traffic class to queue mappings and priories could be handled here.
> It might be worth taking a look at ./net/sched/mqprio.c and ./net/dcb/.

Interesting, I'll have a look at dcb and mqprio, I'm not familiar with 
those systems. Thanks for pointing those out!

I hope that the complexity doesn't run crazy though, TSN is not aimed at 
datacentra, a lot of the endpoints are going to be embedded devices, 
introducing a massive stack for handling every eventuality in 802.1q is 
going to be counter productive.

> Unfortunately I didn't get too far along but we probably don't want
> another mechanism to map hw queues/tcs/etc if the existing interfaces
> work or can be extended to support this.

Sure, I get that, as long as the complexity for setting up a link doesn't 
go through the roof :)

Thanks!

-- 
Henrik Austad

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Henrik Austad <henrik@austad.us>
To: alsa-devel@alsa-project.org
Cc: netdev@vger.kernel.org,
	Richard Cochran <richardcochran@gmail.com>,
	henrik@austad.us, linux-kernel@vger.kernel.org,
	Arnd Bergmann <arnd@linaro.org>,
	alsa-devel@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [alsa-devel] [very-RFC 0/8] TSN driver for the kernel
Date: Tue, 14 Jun 2016 10:35:55 +0200	[thread overview]
Message-ID: <20160614083555.GA21689@sisyphus.home.austad.us> (raw)
In-Reply-To: <575ED7BC.4000803@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 2507 bytes --]

On Mon, Jun 13, 2016 at 08:56:44AM -0700, John Fastabend wrote:
> On 16-06-13 04:47 AM, Richard Cochran wrote:
> > [...]
> > Here is what is missing to support audio TSN:
> > 
> > * User Space
> > 
> > 1. A proper userland stack for AVDECC, MAAP, FQTSS, and so on.  The
> >    OpenAVB project does not offer much beyond simple examples.
> > 
> > 2. A user space audio application that puts it all together, making
> >    use of the services in #1, the linuxptp gPTP service, the ALSA
> >    services, and the network connections.  This program will have all
> >    the knowledge about packet formats, AV encodings, and the local HW
> >    capabilities.  This program cannot yet be written, as we still need
> >    some kernel work in the audio and networking subsystems.
> > 
> > * Kernel Space
> > 
> > 1. Providing frames with a future transmit time.  For normal sockets,
> >    this can be in the CMESG data.  For mmap'ed buffers, we will need a
> >    new format.  (I think Arnd is working on a new layout.)
> > 
> > 2. Time based qdisc for transmitted frames.  For MACs that support
> >    this (like the i210), we only have to place the frame into the
> >    correct queue.  For normal HW, we want to be able to reserve a time
> >    window in which non-TSN frames are blocked.  This is some work, but
> >    in the end it should be a generic solution that not only works
> >    "perfectly" with TSN HW but also provides best effort service using
> >    any NIC.
> > 
> 
> When I looked at this awhile ago I convinced myself that it could fit
> fairly well into the DCB stack (DCB is also part of 802.1Q). A lot of
> the traffic class to queue mappings and priories could be handled here.
> It might be worth taking a look at ./net/sched/mqprio.c and ./net/dcb/.

Interesting, I'll have a look at dcb and mqprio, I'm not familiar with 
those systems. Thanks for pointing those out!

I hope that the complexity doesn't run crazy though, TSN is not aimed at 
datacentra, a lot of the endpoints are going to be embedded devices, 
introducing a massive stack for handling every eventuality in 802.1q is 
going to be counter productive.

> Unfortunately I didn't get too far along but we probably don't want
> another mechanism to map hw queues/tcs/etc if the existing interfaces
> work or can be extended to support this.

Sure, I get that, as long as the complexity for setting up a link doesn't 
go through the roof :)

Thanks!

-- 
Henrik Austad

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2016-06-14  8:36 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-11 23:01 [very-RFC 0/8] TSN driver for the kernel Henrik Austad
2016-06-11 23:01 ` [alsa-devel] " Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 1/8] TSN: add documentation Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 2/8] TSN: Add the standard formerly known as AVB to the kernel Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-11 23:01 ` [very-RFC 3/8] Adding TSN-driver to Intel I210 controller Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-11 23:01 ` [very-RFC 4/8] Add TSN header for the driver Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-11 23:01 ` [very-RFC 5/8] Add TSN machinery to drive the traffic from a shim over the network Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 6/8] Add TSN event-tracing Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-12 16:58   ` Steven Rostedt
2016-06-12 16:58   ` Steven Rostedt
2016-06-12 16:58     ` [alsa-devel] " Steven Rostedt
2016-06-12 21:25     ` Henrik Austad
2016-06-12 21:25     ` Henrik Austad
2016-06-12 21:25       ` [alsa-devel] " Henrik Austad
2016-06-13  2:22       ` Steven Rostedt
2016-06-13  2:22         ` Steven Rostedt
2016-06-13  7:20         ` Henrik Austad
2016-06-13  7:20           ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 7/8] AVB ALSA - Add ALSA shim for TSN Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-15 11:49   ` Richard Cochran
2016-06-15 11:49     ` [alsa-devel] " Richard Cochran
2016-06-15 12:13     ` Henrik Austad
2016-06-15 12:13       ` [alsa-devel] " Henrik Austad
2016-06-15 12:43       ` Richard Cochran
2016-06-15 12:43       ` Richard Cochran
2016-06-15 12:43         ` [alsa-devel] " Richard Cochran
2016-06-15 12:13     ` Henrik Austad
2016-06-15 11:49   ` Richard Cochran
2016-06-11 23:01 ` [very-RFC 8/8] MAINTAINERS: add TSN/AVB-entries Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01   ` [alsa-devel] " Henrik Austad
2016-06-12  3:38 ` [very-RFC 0/8] TSN driver for the kernel Takashi Sakamoto
2016-06-12  3:38   ` Takashi Sakamoto
2016-06-12  4:30   ` Takashi Sakamoto
2016-06-12  8:31     ` Henrik Austad
2016-06-12 10:43       ` Takashi Sakamoto
2016-06-12 22:06         ` Henrik Austad
2016-06-12  8:28   ` Henrik Austad
2016-06-12  8:28     ` Henrik Austad
2016-06-12  9:14     ` Takashi Sakamoto
2016-06-12  9:14       ` Takashi Sakamoto
2016-06-13 11:47 ` Richard Cochran
2016-06-13 11:47   ` [alsa-devel] " Richard Cochran
2016-06-13 13:00   ` Henrik Austad
2016-06-13 13:00     ` [alsa-devel] " Henrik Austad
2016-06-13 19:32     ` Richard Cochran
2016-06-13 19:32     ` Richard Cochran
2016-06-13 19:32       ` [alsa-devel] " Richard Cochran
2016-06-14  9:30       ` Henrik Austad
2016-06-14  9:30       ` Henrik Austad
2016-06-14  9:30         ` [alsa-devel] " Henrik Austad
2016-06-14 18:26         ` Richard Cochran
2016-06-14 18:26           ` [alsa-devel] " Richard Cochran
2016-06-14 20:38           ` Henrik Austad
2016-06-14 20:38           ` Henrik Austad
2016-06-14 20:38             ` [alsa-devel] " Henrik Austad
2016-06-15  7:04             ` Richard Cochran
2016-06-15  7:04               ` [alsa-devel] " Richard Cochran
2016-06-15  7:50               ` Henrik Austad
2016-06-15  7:50                 ` [alsa-devel] " Henrik Austad
2016-06-15  7:50               ` Henrik Austad
2016-06-15 11:41               ` Richard Cochran
2016-06-15 11:41               ` Richard Cochran
2016-06-15 11:41                 ` [alsa-devel] " Richard Cochran
2016-06-15  7:04             ` Richard Cochran
2016-06-15  7:11             ` Richard Cochran
2016-06-15  7:11               ` [alsa-devel] " Richard Cochran
2016-06-15  7:11             ` Richard Cochran
2016-06-14 18:26         ` Richard Cochran
2016-06-13 19:37     ` Richard Cochran
2016-06-13 19:37     ` Richard Cochran
2016-06-13 19:37       ` [alsa-devel] " Richard Cochran
2016-06-13 13:00   ` Henrik Austad
2016-06-13 13:12   ` Arnd Bergmann
2016-06-13 13:12   ` Arnd Bergmann
2016-06-13 13:12     ` [alsa-devel] " Arnd Bergmann
2016-06-13 15:56   ` John Fastabend
2016-06-13 15:56   ` John Fastabend
2016-06-13 15:56     ` [alsa-devel] " John Fastabend
2016-06-14  8:35     ` Henrik Austad
2016-06-14  8:35     ` Henrik Austad [this message]
2016-06-14  8:35       ` [alsa-devel] " Henrik Austad
2016-06-13 19:51   ` Richard Cochran
2016-06-13 19:51     ` [alsa-devel] " Richard Cochran
2016-06-14 11:18     ` One Thousand Gnomes
2016-06-14 11:18       ` [alsa-devel] " One Thousand Gnomes
2016-06-14 17:04       ` Richard Cochran
2016-06-14 17:04         ` [alsa-devel] " Richard Cochran
2016-06-14 17:04       ` Richard Cochran
2016-06-15  3:15       ` Takashi Sakamoto
2016-06-15  8:06         ` Richard Cochran
2016-06-18  5:22           ` Takashi Sakamoto
2016-06-18  5:22             ` Takashi Sakamoto
2016-06-18 22:45             ` Henrik Austad
2016-06-19  9:46               ` Richard Cochran
2016-06-20  8:05                 ` Henrik Austad
2016-06-20  8:05                   ` Henrik Austad
2016-06-19 14:45               ` Takashi Sakamoto
2016-06-20  9:06                 ` Henrik Austad
2016-06-20  9:06                   ` Henrik Austad
2016-06-21  2:22                   ` Takashi Sakamoto
2016-06-21  2:22                     ` Takashi Sakamoto
2016-06-20 11:08               ` [alsa-devel] " Pierre-Louis Bossart
2016-06-20 11:08                 ` Pierre-Louis Bossart
2016-06-20 11:49                 ` [alsa-devel] " Henrik Austad
2016-06-20 11:49                   ` Henrik Austad
2016-06-20 12:18                 ` [alsa-devel] " Richard Cochran
2016-06-20 12:31                   ` Richard Cochran
2016-06-20 15:21                     ` Richard Cochran
2016-06-20 15:21                       ` Richard Cochran
2016-06-21  5:54                       ` [alsa-devel] " Takashi Iwai
2016-06-21  5:54                         ` Takashi Iwai
2016-06-21  6:38                         ` [alsa-devel] " Richard Cochran
2016-06-21  6:38                           ` Richard Cochran
2016-06-21  6:45                           ` [alsa-devel] " Takashi Iwai
2016-06-21  6:45                             ` Takashi Iwai
2016-06-21 17:18                     ` [alsa-devel] " Pierre-Louis Bossart
2016-06-21 17:18                       ` Pierre-Louis Bossart
2016-06-21 17:45                   ` [alsa-devel] " Pierre-Louis Bossart
2016-06-21 19:40                     ` Richard Cochran
2016-06-22 12:36                       ` Pierre-Louis Bossart
2016-06-22 12:36                         ` Pierre-Louis Bossart
2016-06-23 10:38                     ` [alsa-devel] " Henrik Austad
2016-06-23 13:28                       ` Richard Cochran
2016-06-15  3:27       ` Takashi Sakamoto
2016-06-14 11:18     ` One Thousand Gnomes
2016-06-13 19:51   ` Richard Cochran
2016-06-13 11:47 ` Richard Cochran
  -- strict thread matches above, loose matches on Subject: below --
2016-06-11 23:01 Henrik Austad
2016-06-11 22:22 Henrik Austad
2016-06-11 22:49 ` Henrik Austad
2016-06-11 22:49 ` Henrik Austad
2016-06-11 22:22 Henrik Austad

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160614083555.GA21689@sisyphus.home.austad.us \
    --to=henrik@austad.us \
    --cc=alsa-devel@vger.kernel.org \
    --cc=arnd@linaro.org \
    --cc=john.fastabend@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=richardcochran@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.