Adding ECN observations is on the todo list. Likely using EBPFs.
It would be great if there were a L4S CCA were released in a released
kernel vs build your own.
Then being able to try different marking planes.
Finally, there is --tcp-tx-delay to support testing with different RTTs
as the RTT should impact the ECN control loop's "order." This is better
than netem delays because it's per socket. This is already supported but
does require qdisc of fq (not fq_codel)
Note: I tried to support a dynamic tx delays but that didn't work to
well.
Bob
Hi Bob,
so having iperf2 actually check and report this information, obviously
is the end game here (especially reporting, the DSCP and ECN pattern
send, the patterns recswivec by the other side and what the receiver
saw in the response packets would be really helpful).
But one can use tcpdump as a crude hack to get the desired information:
Here are my GOTO tcpdump invocations for that purpose...
# ECN IPv4/6
tcpdump -i pppoe-wan -v -n '(ip6 and (ip6[0:2] & 0x30) >> 4 != 0)' or
'(ip and (ip[1] & 0x3) != 0)' # NOT Not-ECT
tcpdump -i pppoe-wan -v -n '(ip6 and (ip6[0:2] & 0x30) >> 4 == 1)' or
'(ip and (ip[1] & 0x3) == 1)' # ECT(1)
tcpdump -i pppoe-wan -v -n '(ip6 and (ip6[0:2] & 0x30) >> 4 == 2)' or
'(ip and (ip[1] & 0x3) == 2)' # ECT(0)
tcpdump -i pppoe-wan -v -n '(ip6 and (ip6[0:2] & 0x30) >> 4 == 3)' or
'(ip and (ip[1] & 0x3) == 3)' # CE
# TCP ECN IPv4/6: (for IPv6 see see
https://ask.wireshark.org/question/27153/i-am-trying-to-capture-tcp-syn-on-ipv6-packets-but-i-only-get-ipv4/)
tcpdump -i pppoe-wan -v -n '(tcp[tcpflags] & (tcp-ece|tcp-cwr) != 0)'
or '((ip6[6] = 6) and (ip6[53] & 0xC0 != 0))' # TCP ECN flags, ECN in
action
tcpdump -i pppoe-wan -v -n '(tcp[tcpflags] & tcp-ece != 0)' or
'((ip6[6] = 6) and (ip6[53] & 0x40 != 0))' # TCP ECN flags, ECE:
ECN-Echo (reported as E)
tcpdump -i pppoe-wan -v -n '(tcp[tcpflags] & tcp-cwr != 0)' or
'((ip6[6] = 6) and (ip6[53] & 0x80 != 0))' # TCP ECN flags, CWR:
Congestion Window Reduced (reported as W)
# IPv4/6 everything decimal DSCP 45 0x2D
tcpdump -i pppoe-wan -v -n '(ip and (ip[1] & 0xfc) >> 2 == 0x2D)' or
'(ip6 and (ip6[0:2] & 0xfc0) >> 4 == 0x2D)'
Sure this is not super convenient, but they can help a lot in quick
and dirty debugging...
Note: pppoe-wan is my OpenWrt router's wan interface.
On 9. Mar 2024, at 19:43, rjmcmahon via Nnagain
<[email protected]> wrote:
I should note that I haven't evaluated ECN marks, just that 45 gets
passed to/fro
Bob
[JL] Quite true: each network tends to use DSCP marks on a
private/internal basis and so will bleach the DSCP marks on ingress
from peers. This will, however, change with the upcoming IETF RFC on
Non-Queue-Building (NQB) Per Hop Behavior -
https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-nqb. And I
can
report that we at Comcast now permit DSCP-45 inbound for NQB
packets,
in case developers would like to experiment with this (we just
finished updating router configs last week for residential users on
DOCSIS; FTTP and commercial are still in process).
iperf 2 now supports a --dscp option as a convenience (vs setting the
--tos byte.) I can confirm --dscp 45 is being passed over my xfinity
hop to my linodes (now Akamai) servers in both directions at multiple
colo locations.
The --dscp is in the master branch.
https://sourceforge.net/p/iperf2/code/ci/master/tree/ Older versions
require --tos and setting the byte, e.g. 180
Bob
_______________________________________________
Nnagain mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/nnagain
_______________________________________________
Nnagain mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/nnagain
_______________________________________________
Nnagain mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/nnagain