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
next prev 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: linkBe 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.