From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bobcat.rjmcmahon.com (bobcat.rjmcmahon.com [45.33.58.123]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id CCDEB3B29D for ; Sat, 9 Mar 2024 17:36:56 -0500 (EST) Received: from mail.rjmcmahon.com (bobcat.rjmcmahon.com [45.33.58.123]) by bobcat.rjmcmahon.com (Postfix) with ESMTPA id DB1CB1B31E; Sat, 9 Mar 2024 14:36:55 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 bobcat.rjmcmahon.com DB1CB1B31E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rjmcmahon.com; s=bobcat; t=1710023815; bh=y67mSY8DvcOG65cesi3XAK492E9klFiXLkdakTHpDSY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=F4JCivrtgLzNocDxzU/8yDIVIrEjeXmp5A+lIhBfi1vhuqfU4QN1GKa2G+uC4bjPn L1cA3KwfVqtb0rB28JF8BSEJtjk9GY6F/tGXp/+7LYGE1hlCEbNlpBzxN9GlBl3sNi +jSVbFily3FG7qnNYanmicY2Yu0odxJ2sRmqSV/E= MIME-Version: 1.0 Date: Sat, 09 Mar 2024 14:36:55 -0800 From: rjmcmahon To: Sebastian Moeller Cc: =?UTF-8?Q?Network_Neutrality_is_back!_Let=C2=B4s_make_the_technical_a?= =?UTF-8?Q?spects_heard_this_time!?= , "Douglas Goncz A.A.S. M.E.T. 1990" In-Reply-To: References: <8op80p47-77p9-p9s3-6o32-7s93o3ssp653@ynat.uz> <636F01F7-54FB-41A6-957F-99D114A72B6A@comcast.com> <917dd3641c98e29c1d259aa32f1c2414@rjmcmahon.com> Message-ID: <40e7a9abfd75b3fd01683c156040daac@rjmcmahon.com> X-Sender: rjmcmahon@rjmcmahon.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [NNagain] Flash priority X-BeenThere: nnagain@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: =?utf-8?q?Network_Neutrality_is_back!_Let=C2=B4s_make_the_technical_aspects_heard_this_time!?= List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Mar 2024 22:36:56 -0000 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 >> 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@lists.bufferbloat.net >>> https://lists.bufferbloat.net/listinfo/nnagain >> _______________________________________________ >> Nnagain mailing list >> Nnagain@lists.bufferbloat.net >> https://lists.bufferbloat.net/listinfo/nnagain