ivers (since not all drivers are for device) and
> fix up references.
>
> RFC v0.1 -> RFC v1:
> - also add .txt suffix to the files which are missing it (Quentin)
>
> Signed-off-by: Jakub Kicinski
> Reviewed-by: Quentin Monnet
Looks good to me!
Acked-by: Henrik Austad
t; - Deadline aware qdisc to handle e.g. A/V streams. Applications are aware
>of time constraints and provide the packet deadline. qdisc has admission
>control. This can be a simple first comes, first served scheduler or
>something like EDF which allows optimized utilization. The qdisc sets
>the TX time depending on the deadline and feeds into the root.
As a small nitpick, it would make more sense to do a laxity-approach here,
both for explicit mode and deadline-mode. We know the size of the frame to
send, we know the outgoing rate, so keep a ready-queue sorted based on
laxity
laxity = absolute_deadline - (size / outgoing_rate)
Also, given that we use a *single* tx-queue for time-triggered
transmission, this boils down to a uniprocessor equivalent and we have a
lot of func real-time scheduling academia to draw from.
This could then probably handle both of the above (Direct + deadline), but
that's implementatino specific I guess.
> - FIFO/PRIO/XXX for general traffic. Applications do not know anything
>about timing constraints. These qdiscs obviously have neither admission
>control nor do they set a TX time. The root qdisc just pulls from there
>when the assigned time slot is due or if it (optionally) decides to use
>underutilized time slots from other classes.
>
> - Add your favourite scheduling mode(s).
Just give it sub-qdiscs and offload enqueue/dequeue to those I suppose.
--
Henrik Austad
signature.asc
Description: PGP signature
On Thu, Mar 08, 2018 at 10:06:46AM -0800, Jesus Sanchez-Palencia wrote:
> Hi,
>
>
> On 03/08/2018 06:09 AM, Henrik Austad wrote:
>
> (...)
>
> >
> > A lot of new knobs, I see the need, I would've like to have fewer, but
> > you've documented
On Tue, Mar 06, 2018 at 05:12:12PM -0800, Jesus Sanchez-Palencia wrote:
> This series is the v3 of the Time based packet transmission RFC, which was
> originally proposed by Richard Cochran (v1: https://lwn.net/Articles/733962/ )
> and further developed by us with the addition of the tbs qdisc
> (v
So slightly higer variance in rate when doing SW, which is as expected.
I plan to run this through some more tests tomorrow and measure variance on the
receiver etc, I'll keep you posted on my findings.
Feel free to add a tested-by though
Tested-by: Henrik Austad
and a Vehemently-supp
. Miller
Signed-off-by: Henrik Austad
---
net/core/dev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/core/dev.c b/net/core/dev.c
index fcddccb..d2b20e7 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2040,6 +2040,7 @@ int netdev_txq_to_tc(struct net_device *dev, unsigned int
On Wed, Oct 11, 2017 at 05:54:48PM -0700, Vinicius Costa Gomes wrote:
> This adds support for offloading the CBS algorithm to the controller,
> if supported. Drivers wanting to support CBS offload must implement
> the .ndo_setup_tc callback and handle the TC_SETUP_CBS (introduced
> here) type.
Thi
(!nest)
> + goto nla_put_failure;
> +
> + opt.hicredit = q->hicredit;
> + opt.locredit = q->locredit;
> + opt.sendslope = q->sendslope;
> + opt.idleslope = q->idleslope;
> + opt.offload = 0;
> +
> + if (nla_put(skb, TCA_CBS_PARMS, sizeof(opt), &opt))
> + goto nla_put_failure;
> +
> + return nla_nest_end(skb, nest);
> +
> +nla_put_failure:
> + nla_nest_cancel(skb, nest);
> + return -1;
> +}
> +
> +static struct Qdisc_ops cbs_qdisc_ops __read_mostly = {
> + .id = "cbs",
> + .priv_size = sizeof(struct cbs_sched_data),
> + .enqueue= cbs_enqueue,
> + .dequeue= cbs_dequeue,
> + .peek = qdisc_peek_dequeued,
> + .init = cbs_init,
> + .reset = qdisc_reset_queue,
> + .destroy= cbs_destroy,
> + .change = cbs_change,
> + .dump = cbs_dump,
> + .owner = THIS_MODULE,
> +};
> +
> +static int __init cbs_module_init(void)
> +{
> + return register_qdisc(&cbs_qdisc_ops);
> +}
> +
> +static void __exit cbs_module_exit(void)
> +{
> + unregister_qdisc(&cbs_qdisc_ops);
> +}
> +module_init(cbs_module_init)
> +module_exit(cbs_module_exit)
> +MODULE_LICENSE("GPL");
> --
> 2.14.2
>
--
Henrik Austad
signature.asc
Description: PGP signature
Hi all,
On Tue, Sep 19, 2017 at 07:22:44AM +0200, Richard Cochran wrote:
> On Mon, Sep 18, 2017 at 04:06:28PM -0700, Vinicius Costa Gomes wrote:
> > That's the point, the application does not need to know that, and asking
> > that would be stupid.
>
> On the contrary, this information is essentia
pps send to the same Tx-queue with the same priority, would
it not make sense to just do FIFO? For all practical purposes, they have
the same importance (same SO_PRIORITY, same SO_TXTIME). If the priority
differs, then they would be directed to different queues, where one queue
will take presedence anyway.
How far into the future would it make sense to schedule packets anyway?
I'll have a look at the other series you just posted!
--
Henrik Austad
signature.asc
Description: PGP signature
walker->count++;
> + }
> +}
> +
> +static const struct Qdisc_class_ops cbs_class_ops = {
> + .graft = cbs_graft,
> + .leaf = cbs_leaf,
> + .find = cbs_find,
> + .delete = cbs_delete,
> + .walk = cbs_walk,
> + .dump = cbs_dump_class,
> +};
> +
> +static struct Qdisc_ops cbs_qdisc_ops __read_mostly = {
> + .next = NULL,
> + .cl_ops = &cbs_class_ops,
> + .id = "cbs",
> + .priv_size = sizeof(struct cbs_sched_data),
> + .enqueue= cbs_enqueue,
> + .dequeue= cbs_dequeue,
> + .peek = qdisc_peek_dequeued,
> + .init = cbs_init,
> + .reset = cbs_reset,
> + .destroy= cbs_destroy,
> + .change = cbs_change,
> + .dump = cbs_dump,
> + .owner = THIS_MODULE,
> +};
> +
> +static int __init cbs_module_init(void)
> +{
> + return register_qdisc(&cbs_qdisc_ops);
> +}
> +
> +static void __exit cbs_module_exit(void)
> +{
> + unregister_qdisc(&cbs_qdisc_ops);
> +}
> +module_init(cbs_module_init)
> +module_exit(cbs_module_exit)
> +MODULE_LICENSE("GPL");
> --
> 2.14.1
>
--
Henrik Austad
signature.asc
Description: PGP signature
On Thu, Sep 07, 2017 at 07:58:53PM +, Guedes, Andre wrote:
> Hi Henrik,
>
> Thanks for your feedback! I'll address some of your comments below.
>
> On Thu, 2017-09-07 at 07:34 +0200, Henrik Austad wrote:
> > > As for the shapers config interface:
On Thu, Sep 07, 2017 at 05:53:15PM +0200, Richard Cochran wrote:
> On Thu, Sep 07, 2017 at 05:27:51PM +0200, Henrik Austad wrote:
> > On Thu, Sep 07, 2017 at 02:40:18PM +0200, Richard Cochran wrote:
> > And if you want to this driver to act as a bridge, how do you accomodate
> &
On Thu, Sep 07, 2017 at 02:40:18PM +0200, Richard Cochran wrote:
> On Thu, Sep 07, 2017 at 07:34:11AM +0200, Henrik Austad wrote:
> > Also, does this mean that when you create the qdisc, you have locked the
> > bandwidth for the scheduler? Meaning, if I later want to add another
ents below
> As part of this work, we've assessed previous public discussions related to
> TSN
> enabling: patches from Henrik Austad (Cisco), the presentation from Eric Mann
> at Linux Plumbers 2012, patches from Gangfeng Huang (National Instruments) and
> the current st
teration,
that would be the ravb-driver (which is an AVB capable NIC), but it does
not include much in the way of AVB-support *In* kernel. Sorry about that!
Since then, the iMX7 from NXP has arrived, and this also has HW-support for
TSN, but not in the kernel AFAICT.
So, the next issue I plan to tackle, is how I do buffers, the current
approach where tsn_core allocates memory is on its way out and I'll let the
shim (which means alsa/v4l2) will provide a buffer. Then I'll start looking
at qdisc.
Thanks!
--
Henrik Austad
signature.asc
Description: Digital signature
ding a
compressed video format" and then the shim/tsn_core will ship out the
frames over the network - and then you need to set TSN_CVF as subtype in
each header.
That does not that mean you should do H.264 encode/decode *in* the kernel
Perhaps this is better placed in include/uapi/tsn.h so that userspace and
kernel share the same header?
--
Henrik Austad
signature.asc
Description: PGP signature
On Fri, Dec 16, 2016 at 01:20:57PM -0500, David Miller wrote:
> From: Greg
> Date: Fri, 16 Dec 2016 10:12:44 -0800
>
> > On Fri, 2016-12-16 at 18:59 +0100, hen...@austad.us wrote:
> >> From: Henrik Austad
> >>
> >>
> >> The driver is d
Or do I
also need to run phc2sys in order to sync the system-time to PTP-time? Note
that this is for outgoing traffic, Rx should perhaps use the timestamp
in skb.
Hooking into ktime_get() instead of directly to the PTP-subsystem (if that
is even possible) makes it a lot easier to debug when running this in a VM
as it doesn't *have* to use PTP-time when I'm crashing a new kernel :)
Thanks!
--
Henrik Austad
signature.asc
Description: Digital signature
ounds
like it is doable to achieve something useful.
Looks like I will be looking into what to put in the .trigger-handler in
the ALSA shim and experimenting with this to see how it make sense to
connect it from the TSN-stream.
Thanks!
--
Henrik Austad
signature.asc
Description: Digital signature
On Sun, Jun 19, 2016 at 11:45:47PM +0900, Takashi Sakamoto wrote:
> (remove C.C. to lkml. This is not so major feature.)
>
> On Jun 19 2916 07:45, Henrik Austad wrote:
> >snip
> >
> >802.1Q gives you low latency through the network, but more importantly, no
> >
On Sun, Jun 19, 2016 at 11:46:29AM +0200, Richard Cochran wrote:
> On Sun, Jun 19, 2016 at 12:45:50AM +0200, Henrik Austad wrote:
> > edit: this turned out to be a somewhat lengthy answer. I have tried to
> > shorten it down somewhere. it is getting late and I'm
send just enough data, and that is why the gPTP domain is so important.
802.1Q gives you low latency through the network, but more importantly, no
dropped frames. gPTP gives you a central reference to time.
> [1] [alsa-lib][PATCH 0/9 v3] ctl: add APIs for control element set
> http://mailman.alsa-project.org/pipermail/alsa-devel/2016-June/109274.html
> [2] IEEE 1722-2011
> http://ieeexplore.ieee.org/servlet/opac?punumber=5764873
> [3] 5.5 Timing and Synchronization
> op. cit.
> [4] 1394 Open Host Controller Interface Specification
> http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/ohci_11.pdf
I hope this cleared some of the questions
--
Henrik Austad
signature.asc
Description: Digital signature
On Wed, Jun 15, 2016 at 01:49:08PM +0200, Richard Cochran wrote:
> Now that I understand better...
>
> On Sun, Jun 12, 2016 at 01:01:35AM +0200, Henrik Austad wrote:
> > Userspace is supposed to reserve bandwidth, find StreamID etc.
> >
> > To use as a Talker:
>
On Wed, Jun 15, 2016 at 09:04:41AM +0200, Richard Cochran wrote:
> On Tue, Jun 14, 2016 at 10:38:10PM +0200, Henrik Austad wrote:
> > Whereas I want to do
> >
> > aplay some_song.wav
>
> Can you please explain how your patches accomplish this?
In short:
modprobe
On Tue, Jun 14, 2016 at 08:26:15PM +0200, Richard Cochran wrote:
> On Tue, Jun 14, 2016 at 11:30:00AM +0200, Henrik Austad wrote:
> > So loop data from kernel -> userspace -> kernelspace and finally back to
> > userspace and the media application?
>
> Huh? I wonder wh
On Mon, Jun 13, 2016 at 09:32:10PM +0200, Richard Cochran wrote:
> On Mon, Jun 13, 2016 at 03:00:59PM +0200, Henrik Austad wrote:
> > On Mon, Jun 13, 2016 at 01:47:13PM +0200, Richard Cochran wrote:
> > > Which driver is that?
> >
> > drivers/net/ethernet/renesas/
&g
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
signature.asc
Description: Digital signature
On Mon, Jun 13, 2016 at 01:47:13PM +0200, Richard Cochran wrote:
> Henrik,
Hi Richard,
> On Sun, Jun 12, 2016 at 01:01:28AM +0200, Henrik Austad wrote:
> > There are at least one AVB-driver (the AV-part of TSN) in the kernel
> > already,
>
> Which driver is that?
driv
On Sun, Jun 12, 2016 at 10:22:01PM -0400, Steven Rostedt wrote:
> On Sun, 12 Jun 2016 23:25:10 +0200
> Henrik Austad wrote:
>
> > > > +#include
> > > > +#include
> > > > +/* #include */
> > > > +
> > > > +/* FIXME: update t
On Sun, Jun 12, 2016 at 07:43:34PM +0900, Takashi Sakamoto wrote:
> On Jun 12 2016 17:31, Henrik Austad wrote:
> > On Sun, Jun 12, 2016 at 01:30:24PM +0900, Takashi Sakamoto wrote:
> >> On Jun 12 2016 12:38, Takashi Sakamoto wrote:
> >>> In your patcset, there's
On Sun, Jun 12, 2016 at 12:58:03PM -0400, Steven Rostedt wrote:
> On Sun, 12 Jun 2016 01:01:34 +0200
> Henrik Austad wrote:
>
> > From: Henrik Austad
> >
> > This needs refactoring and should be updated to use TRACE_CLASS, but for
> > now it provides a fair d
sn_buffer_write_net() and tsn_buffer_read_net()
> are involved in this discussion. You can see ALSA developers' struggle
> in USB audio device class drivers and (of cource) IEC 61883-1/6 drivers.)
Ah, good point. Any particular parts of the USB-subsystem I should start
looking a
lications.
> https://github.com/takaswie/alsa-firewire-report
Thanks, I'll dig into that, much appreciated
> (But I confirm that the report includes my misunderstandings in clause
> 3.4 and 6.2. need more time...)
ok, good to know
Thank you for your input, very much appreicated!
--
Henrik Austad
signature.asc
Description: Digital signature
From: Henrik Austad
This needs refactoring and should be updated to use TRACE_CLASS, but for
now it provides a fair debug-window into TSN.
Cc: "David S. Miller"
Cc: Steven Rostedt (maintainer:TRACING)
Cc: Ingo Molnar (maintainer:TRACING)
Signed-off-by: Henrik Austad
---
inc
er is *not* stable, it is still a work in
progress.
Cc: Jeff Kirsher
Cc: intel-wired-...@lists.osuosl.org
Cc: "David S. Miller"
Signed-off-by: Henrik Austad
---
drivers/net/ethernet/intel/Kconfig| 18 ++
drivers/net/ethernet/intel/igb/Makefile | 2 +-
drivers/net/ethe
that the core TSN driver can
use this when configuring a new NIC or setting up a new link.
Cc: "David S. Miller"
Signed-off-by: Henrik Austad
---
include/linux/netdevice.h | 32
net/Kconfig | 1 +
net/tsn/Kconfig
orks-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-
From: Henrik Austad
This defines the general TSN headers for network packets, the
shim-interface and the central 'tsn_list' structure.
Cc: "David S. Miller"
Signed-off-by: Henrik Austad
---
include/linux/tsn.h | 806
From: Henrik Austad
This exposes a *very* rudimentary and simplistic ALSA driver that hooks
into TSN to create a device for userspace.
It currently only supports 44.1/48kHz sampling, 2ch, S16_LE
Userspace is supposed to reserve bandwidth, find StreamID etc.
To use as a Talker:
mkdir /config
From: Henrik Austad
In short summary:
* tsn_core.c is the main driver of tsn, all new links go through
here and all data to/form the shims are handled here
core also manages the shim-interface.
* tsn_configfs.c is the API to userspace. TSN is driven from userspace
and a link is created
From: Henrik Austad
Describe the overall design behind the TSN standard, the TSN-driver,
requirements to userspace and new functionality introduced.
Cc: "David S. Miller"
Signed-off-by: Henrik Austad
---
Documentation/TSN/tsn.txt | 147
From: Henrik Austad
Not sure how relevant this is other than making a point about
maintaining it.
Signed-off-by: Henrik Austad
---
MAINTAINERS | 14 ++
1 file changed, 14 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index ed42cb6..ef5d926 100644
--- a/MAINTAINERS
+++ b
Clearing up netdev-typo
-H
On Sun, Jun 12, 2016 at 12:22:17AM +0200, Henrik Austad wrote:
> From: Henrik Austad
>
> This defines the general TSN headers for network packets, the
> shim-interface and the central 'tsn_list' structure.
>
> Cc: "David S. Miller
clearing up netdev-typo
-H
On Sun, Jun 12, 2016 at 12:22:18AM +0200, Henrik Austad wrote:
> From: Henrik Austad
>
> In short summary:
>
> * tsn_core.c is the main driver of tsn, all new links go through
> here and all data to/form the shims are handled here
> core
clearing up netdev-typo
-H
On Sun, Jun 12, 2016 at 12:22:16AM +0200, Henrik Austad wrote:
> This adds support for loading the igb.ko module with tsn
> capabilities. This requires a 2-step approach. First enabling TSN in
> .config, then load the module with use_tsn=1.
>
> Once ena
clearing up netdev-typo
On Sun, Jun 12, 2016 at 12:22:15AM +0200, Henrik Austad wrote:
> TSN provides a mechanism to create reliable, jitter-free, low latency
> guaranteed bandwidth links over a local network. It does this by
> reserving a path through the network. Support for TSN must
On Sun, Jun 12, 2016 at 12:22:14AM +0200, Henrik Austad wrote:
> From: Henrik Austad
Clearing up the netdev-typo
>
> Describe the overall design behind the TSN standard, the TSN-driver,
> requirements to userspace and new functionality introduced.
>
> Cc: "David S. M
On Sat, Jun 11, 2016 at 03:49:42PM -0700, David Miller wrote:
> From: Henrik Austad
> Date: Sun, 12 Jun 2016 00:47:28 +0200
>
> > What would be the best approach? Resend series to netdev@vger? I don't want
> > to spam too many lists either.
>
> Resend to all t
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* e
ld be the best approach? Resend series to netdev@vger? I don't want
to spam too many lists either.
--
Henrik Austad
signature.asc
Description: Digital signature
/ethertype/eth.txt
This is a respin of a previous patch ("ether: add AVB frame type
ETH_P_AVB")
CC: "David S. Miller"
CC: netdev@vger.kernel.org
CC: linux-...@vger.kernel.org
CC: linux-ker...@vger.kernel.org
Signed-off-by: Henrik Austad
---
include/uapi/linux/if_ether.h | 1
52 matches
Mail list logo