[NNagain] Flash priority
rjmcmahon
rjmcmahon at rjmcmahon.com
Sat Mar 9 17:36:55 EST 2024
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
>> <nnagain at lists.bufferbloat.net> 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
>>> Nnagain at lists.bufferbloat.net
>>> https://lists.bufferbloat.net/listinfo/nnagain
>> _______________________________________________
>> Nnagain mailing list
>> Nnagain at lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/nnagain
More information about the Nnagain
mailing list