t we inlined it for efficiency.
The thing to try might be to copy the relevant code (both the search and the
drop) into the gso-split path and see if anything breaks, and if the
ack-dropping statistics tend to increase.
- Jonathan Morton
___
Cake
correct place to do it, so that the qdisc applies specifically to
traffic coming from the WAN. If you apply it to the LAN egress, it tends to
affect traffic coming through the router from the WiFi or its internal servers,
which is not desirable.
These are all questions we've considered at l
turally max-min fair". TCP Prague will look positively primitive compared
to this - if it works (and it should).
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
;t make the mutex unblock sooner!
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
> On 19 Sep, 2023, at 1:07 am, Jonathan Morton wrote:
>
>> Raspberry Pi 4's just aren't very good at networking because of their I/O
>> architecture on the board, just as they are slow at USB in general. That's
>> why the CM4 is interesting. It'
These days he's developing something new along the same lines.
A simple test using one or more of Flent's standard tests should be enough to
replicate these results, at least approximately. I would also recommend using
ECN, but you should get at least reasonable results without
ng more important, and that is
better served by the *default* settings.
You ran fq_codel at its default settings. These are equivalent to Cake's
default settings, so far as the AQM activity is concerned. I'm just asking for
a like-to-like comparison. You co
) results we ran a while ago.
Note that Cake is actually faster than fq_codel - or rather, Cake's internal
shaper is faster than HTB shaping with an fq_codel leaf queue - and (not shown
here) both are faster on the Pi 4 than on an x86-based APU2.
- Jonathan Morton
___
;s errand. The internal overheads of
the Linux kernel will give you delays of that order already.
At least include a run with Cake similarly on rtt 100ms, which is the default
and what most Internet facing CPE would run. You may well find that throughput
improves significantly.
- Jonatha
of TCP flags
and ECN field values depending on whether RFC-3168 or AccECN is being
attempted. Without AccECN, you won't have functioning L4S on a TCP stream.
But I think it is more likely that it's a misapplied DSCP.
- Jonathan Morton
___
the great things about having it upstreamed.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
; should suffice for this purpose.
Addendum: either this firewall rule should ignore packets that are already
CE-marked, *or* a second firewall rule which *drops* CE-marked packets should
be inserted as well. This avoids erasing congestion information from any
this purpose.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
plementations of COBALT, it also triggers when the sojourn time
reaches 400ms (by default).
Mikrotik - or whoever is responsible for this - needs to fix their crap so that
the ECN field is processed correctly. End of discussion.
- Jonathan Morton
__
ything that screams of being something I should be
aware of?
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
specifically addresses
that phenomenon.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
of (usually) knowing what the dequeue rate is, without having to
estimate it. Without that knowledge, I'm not sure it's profitable to guess -
except to specifically avoid tail *loss*, which is not at all the same as
*marking* the last packet.
- Jonathan Morton
__
ps://lore.kernel.org/all/308c88c6-d465-4d50-8038-416119a35...@gmail.com/
I haven't yet posted a link to the WGLC Objections document. I will if it seem
s necessary to do so.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
oE, but pppoe-vcmux or pppoe-llcsnap? How
>> determine it?
In general, you need to set the framing compensation according to the
bottleneck link. If your wireless link is typically faster than your ADSL
line, then the ADSL is the right focus.
This is probably helpful to most ADSL users
ive to
> each other, and the packet rate drops through the floor until they stop
> having relative motion. And I assume that also applies to time-varying
> path-loss and path-distance (multipath reflections).
So is it time to mount test stations on model r
hat if the dual
modes are working, we probably haven't broken triple-isolate either.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
flow_hash = skb->hash;
> if (host_override) {
> dsthost_hash = host_override - 1;
Good catch - I was going to have to wade in and remind myself how this
lump of code worked. But shouldn't the masking operation be in
brackets, to make the precedence explicit?
- J
can be rather sophisticated.
Increased levels of sophistication in both the AQM and the endpoint's
congestion control algorithm may be used to increase the "network power"
actually obtained. The required level of complexity for each, achieving
reasonably good results, is h
criterion 2 being
false. The number of flows going to even a family household is probably in the
low dozens at best. A control-theory approach can also work here.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
d down quite hard due to
the amount of videoconferencing I'm doing at peak hours this week), it quickly
ends up getting CE marks on almost every data segment. This is actually fine,
since it's then controlled nicely by ack-clocking and FQ.
- Jonathan Morton
___
> On 9 Mar, 2021, at 10:38 pm, Dave Taht wrote:
>
> sudo sysctl -w net.inet.tcp.disable_tcp_heuristics=1
Now that might well be the missing link. I think we missed it before since it
doesn't have "ecn" in its name.
- Jonathan Morton
load protection will
kick in and start dropping a lot of packets. This is also what you'd expect to
see with a well-behaved policer in the same position.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
> On 4 Mar, 2021, at 5:14 am, Dave Taht wrote:
>
> yes, that. can it be made to work with cake?
The README says there is experimental support. I haven't looked at it closely.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferb
the thread or the github right.
This, surely?
https://github.com/rchac/LibreQoS/
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
think HTB is designed with stuff like this in mind, though it uses markedly
inferior shaping algorithms. At this precise moment I'm occupied with the
upcoming IETF (and my current project, Some Congestion Experienced), but there
is a possibility I could adapt some of Cake's technology to a HTB-like
structure, later on.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ch was
very much not the case some years ago). However, there's no tariff at any
convenient level between 1Mbps (poverty tariff) and 50Mbps (probably radio
limited on a single carrier).
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
established that it can sustain 600Mbit through Cake without much CPU load or
added latency. Above that level the characteristics do degrade a bit.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
assive-mode ECN
support as well (ie. will negotiate inbound but not initiate outbound).
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
> On 1 Nov, 2020, at 12:15 pm, Dean Scarff wrote:
>
> Error: NLA_F_NESTED is missing.
Since you're running an up-to-date kernel, you should check you are also
running up-to-date userspace tools. That flag is associated with the interface
between the two.
- J
rk set".
Otherwise, what you see is what you get, and mark N goes into tin N-1.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
value of 0 to fall back to Cake's default Diffserv handling.
None of Cake's tin setups use more than 8 tins, and most use fewer.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
hink five is the right number, and the symmetry argument is
not persuasive. But can we at least agree that Cake's attempt is a step in the
right direction?
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ate.
In the case of Diffserv3, the BK and VO tins both have higher priority than BE
and sum to 5/16ths of the global rate. So with all tins saturated, the BE
traffic gets 11/16ths which is pretty respectable. If the BE and VO traffic
goes away, BK is then able to use all available bandwidth.
offers explicit "low cost"
and "low latency" service for suitably marked traffic, and for everything else
the Best Effort service uses flow and host isolation strategies to maintain
good behaviour. It usually works well.
- Jonathan Morton
that isn't going to be Cake. It'll be a different qdisc which might share
some features and technology with Cake, but definitely arranged in a different
order and with a different focus.
- Jonathan Morton
___
Cake mailing list
Cake@lis
ECN field of the IP header encapsulated within.
The most I would entertain is to incorporate a VLAN tag into the hashes that
Cake uses to distinguish hosts and/or flows. This would account for the case
where two hosts on different VLANs of the same physical network have the same
IP address.
one of the many subtle factors that Codel relies on.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
> On 23 Jun, 2020, at 7:08 pm, Sebastian Moeller wrote:
>
> But I assume that you bound the bursts somehow, do you remember your bust
> sizing method by chance?
It bursts exactly enough to catch up to the schedule. No more, no less -
unless the queue is emptied in the process.
select "satellite" AQM parameters, reducing the
amount of processing needed at that layer.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
id not have
relevant effects in this case, since only one pair of hosts and the Best Effort
DSCP were used in the traffic.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
hrough dup-acks and SACK. I think
you will find that the "aggressive" setting loses some information, and its
performance suffers accordingly in some cases.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
her one will arrive.
I think of it as an optimisation to reduce delay of the information in the ack
stream, not solely as a way to reduce the bandwidth consumed by the ack stream;
the latter is a happy side effect.
- Jonathan Morton
___
Cake mail
o suffer from a small amount of extra
latency, and Cake will isolate their influence from other flows that may be
more sensitive.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
were enqueued some
time ago, and both are already due for delivery very soon.
In general, the second packet is delivered sooner, in place of the first one
that was removed. This means it reduces feedback latency to the (forward path)
sender.
- Jonathan Morton
___
irst packet is
dropped, and the second packet moves to the head of the queue. This process
may repeat several times if there are several consecutive, redundant acks in
the queue.
The important part is the set of rules determining whether the ack is redundant.
- Jonathan Morton
> On 25 Apr, 2020, at 10:09 pm, Dave Taht wrote:
>
>~# tc qdisc add dev eth1 root cake bandwidth 160mbps
For tc, the "mbps" suffix is interpreted as megaBYTES per second. For
megaBITS, use Mbit.
The output and behaviour is consistent with that.
-70Mbps of Best Effort, depending on some short-term
effects.
This assumes that the Diffserv marking actually reaches Cake, of course.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
unt for something.
If you're keeping an eye on the TSVWG list, expect a major bombshell to drop
there in the next few days.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
#x27;re a model for others to follow - but few have.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ck, and thus not
receiving its care. This can be an orders-of-magnitude effect, depending on
just how bloated the underlying hardware is.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
hat's 150 Kbps.
At 20ms it would be 600 Kbps. If that number totals less than the margin
you've left, then the peaks of the AIMD sawtooth should not collect in the dumb
FIFO and will be handled entirely by Cake.
- Jonathan Morton
__
mall number of packets, but these
will all drain out promptly.
For Cake to actually gain control of the bottleneck queue, it needs to *become*
the bottleneck - which, when downstream of the nominal bottleneck, can only be
achieved by shaping to a slower rate. I would try 79
tle better than stock Codel. It's better at handling
unresponsive traffic, in particular.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
s most useful features, beyond what fq_codel already supports, are
actually implied or even done better by the WiFi environment and the mac80211
layer adaptation (particularly airtime fairness).
You can of course attach a Cake instance to the wifi interface as well, if you
have a need to do s
, it's
error-prone to do this manually.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
> On 14 Dec, 2019, at 1:59 pm, Thibaut wrote:
>
> I’m wondering if this could be an “use of uninitialized data” type of bug.
This is why I wouldn't keep working on an old kernel that's full of vendor
patches.
- Jonathan Morton
__
Perhaps it was not actually the code change, but triggering a rebuild of the
module?
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
g to a 5.x series kernel, in which
Cake is an upstream feature. I won't presume to guess how best to achieve that
with your distro.
The good news is that Free.fr is among the relatively few ISPs who have
actively tackled bufferbloat themselves. As a workaround while you sort this
out, yo
p), but it should compile for just about any Linux-supported
CPU. We know it works on ARM, MIPS, PowerPC, AMD64…
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
> On 3 Oct, 2019, at 8:52 pm, Justin Kilpatrick wrote:
>
> I've developed a rough version of this and put it into production Monday.
> After a few tweaks we're seeing a ~10x reduction in the magnitude of latency
> spikes at high usage times.
Sounds promising. Keep i
only slightly more than on
most ADSL lines.
The overhead compensation matters more with small packets than with the larger
ones used for bulk transfers; for the latter, reserving a little more bandwidth
will appear to make everything work. For fibre I would try "ethernet"
usly too high a limit to be completely
safe - even though Cake's AQM action will keep the *average* queue depth well
below that limit.
The correct fix here is not to change the code, but to use the memlimit
parameter to override the default. These unusual configurations, where the
ally 4MB by default. The only way this can be exceeded by more
than one packet (transiently, when a packet is enqueued and Cake has to drop
other packets to make room) is if there's an unaccounted memory leak somewhere.
If you can find such a leak in Cake, we'll fix it. But I think
entirely possible for some memory
management bug to be introduced by a vendor patch, for example.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ly useful than a
static guess. You could deploy a new link with a conservative "guess" of say
10Mbps, and just probe from there.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ing you should be counting on, as it will insert random AQM
marking even when the link is not actually saturated.
You could also set it back to 'internet' and progressively reduce the bandwidth
parameter, making the Cake shaper into the actual bottleneck. This is the
correct
of the dumb hardware. But if
you want to try implementing BQL in the relevant drivers, go ahead.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
fly.
Generally the default 'rtt' of 100ms is suitable for generic Internet paths,
including nearby 10ms hops and 500ms satellite-linked islands. The default 5ms
target actually puts a floor on the minimum effective RTT that the marking
schedule has to cope with. There's also a go
e reverse path and thus makes the behaviour a bit
smoother.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
s it is by default). Then the Bittorrent packets
will still be able to use full bandwidth if it's available, but will be limited
to 1/16th of the total if there is contention.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
is based on. Custom firmware, sticker
over the logo… it works well.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
broken any of the host
> fairness BUT it could do with some more testing, that’s where you come in…
Looks like sound logic, as long as it does actually work. It could be a useful
speedup for those small CPE devices which need NAT and host-fairness wor
ECE and CWR bits in the ack filter, so you may want to ensure this
tweak is also made in your version. This is to improve its behaviour on SCE
traffic. The change should have no effect on non-SCE traffic.
- Jonathan Morton
___
Cake mai
rs for other
> traffic.
Bear in mind that the TOS byte contains ECN as well as DSCP fields, and the
latter is left-justified.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
e on to fiddling with TCP.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
al, or a mixture of aware and ignorant flows
share the queue.
Can't do any of that without a working TCP.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
r the feedback path, we might as
well use that for demo purposes.
I want to be able to demonstrate SCE actually working as designed, in a
single-queue implementation, to answer the main argument that some of the L4S
folks have latched onto. But I don't know how soon we&
cal multiplexing works less well.
Incremental deployability is very important when tackling a project as big as
this. SCE takes it as a central tenet. L4S appears, in practice, to have
overlooked it. That's my objection to L4S.
- Jonathan Morton
__
.c? I
suspect there's a lot of overhead that we have only indirect control over.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
continues.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ld not be very
difficult to implement. Though not described explicitly in the SCE I-D, I'm
working on descriptions of how to do so, which should become additional I-Ds.
We should then be able to write working code and run simulations in ns-3, and
maybe also in Linux.
- Jonath
marks will appear even when there's a lot of
congestion (at high rates, ie. probably every packet that doesn't carry CE), as
well as showing up at low frequency when the level of congestion only warrants
reducing the growth rate. I think the word "Some" is suffici
instead of editing the kernel?
(Also, don't use "datacentre" with bandwidths this low, it doesn't magically do
what you're probably thinking of.)
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
the kitchen
> not the laundry! So how about dyeing, or colouring?
…icing?
https://www.youtube.com/watch?v=ouRcDRpsRsA
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
change would alter that to fairness of
*delivered* traffic. The current setup is arguably more robust against
adversarial traffic, don't you think?
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
eal with the case where inbound packets have
already traversed the bottleneck link *before* Cake gets to choose what to do
with them.
But that shouldn't affect fairness, only total throughput. Fairness is not
handled by the shaper, but by the (very) extended DRR++ algorith
number of dropped packets, and shouldn't change the congestion response.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
So I'm not entirely sure what's happening here, but at least the asymmetry
isn't too bad; it's achieving significantly better host-fairness than a pure
flow-fair system would.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
coming in.
No, it simply counts dropped packets against the shaper, as well as those
actually transmitted. There shouldn't be that many packets being dropped to
make this much of a difference.
- Jonathan Morton
___
Cake mailing list
Cake@li
_flow_count
values must be decremented on the old hosts and incremented on the new ones
*if* the queue is in the bulk set.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
e sparse ones is wrong.
I need to think about this a bit more. But meanwhile, try it with the sum.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ount at all, or only the
bulk one? If the above is corrected, I don't think there are any uses left.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
bly have strict priority over the
global classes but which Should Not be sent over the core network, and Should
be interpreted as Low Priority if encountered by a device not specifically
configured to understand them.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
gress rate on wlan0, if your router's wifi stack is debloated.
- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake
ame way you'd *normally*
write a number down.
The TOS field can sometimes be confusing because the DSCP field is the upper 6
bits and the ECN field the lower 2, and the BSD Sockets API gives you the while
byte to work with while DSCPs are quoted as just their own 6 bits. So you have
to shi
1 - 100 of 451 matches
Mail list logo