> On 5. Sep 2023, at 09:34, Francois-Xavier Le Bail <devel.fx.leb...@orange.fr> 
> wrote:
> 
> On 29/08/2023 16:34, Scheffenegger, Richard via tcpdump-workers wrote:
>> And some initial discussions which aren't yet reflected on the mailing list:
>> 
>> -----Original Message-----
>> From: Scheffenegger, Richard 
>> Sent: Freitag, 18. August 2023 14:01
>> To: Francois-Xavier Le Bail <devel.fx.leb...@orange.fr>; 
>> tcpdump-workers@lists.tcpdump.org
>> Cc: Denis Ovsienko <de...@ovsienko.info>; Guy Harris <ghar...@sonic.net>; 
>> [...] ; Michael Richardson <m...@sandelman.ca>; [...]
>> Subject: RE: Accurate ECN support in tcpdump/libpcap
>> 
>> (Adding everyone who has participated in the discussion so far, since it 
>> seems that tcpdump-workers mailman is not working, as well as a number of 
>> additional recent committers and participants)
> 
> [...]
> 
>> I do not think there is ambiguity here.
> 
> Hi Richard,
> 
> I think there's an ambiguity here.
> Using "A" as the new TCP flag for tcpdump is a mistake because it sounds like 
> "ACK" (even if tcpdump prints "." for "ACK").
> Thus my proposal to use "N", last letter of "Accurate ECN", as already 
> suggested in some PR comments and a previous message.
> Mnemonic: "Accurate EC[N]" or "[N]ew TCP scheme/mechanism".
> Alternatives:
> - "M" from "[M]ore Accurate Explicit Congestion Notification", from your 
> draft title.
> - "G" from "TCP Pra[G]ue", perhaps less mnemonic.
> 
>> Tcpdump - any every tool afterwards - has been using "." for ACKs.
> 
> This is incorrect. Wireshark, for example, does not use "." for ACKs.
> 
>> "N" had been in (very rare) use for the NS bit (RFC3540), which is now 
>> obsolete 
>> (https://datatracker.ietf.org/doc/status-change-ecn-signaling-with-nonces-to-historic/).
>>  While this is the same bit (and arguably, the authors of RFC3540 could have 
>> made more effort to get that bit adopted in tooling back in 2001-2003), the 
>> semantics are dramatically different than the current use.
>> 
>> "A" has never been in use before, as a single character abbreviation,
> 
> This is incorrect. Wireshark uses "A" for "ACK".
> (e.g. TCP Flags: ····C··A··S·)
> ------------------------^
It uses A for ACK and AE:
https://gitlab.com/wireshark/wireshark/-/blob/master/epan/dissectors/packet-tcp.c#L854
But this notation is used in a position dependent way.

Best regards
Michael
> 
>> and is in use for the last 2+ years in other tooling around packet mangling, 
>> tracing, decoding and forging such as wireshark and packetdrill...
>> (and yes, I did let the ball drop with tcpdump for a couple months, when all 
>> the other tools were updated reflecting the "A" char change there, which was 
>> completely uncontentious in those communities).
> 
> s/for a couple months/for 2 years and half/
> Your Proposal to packetdrill: Jan 18, 2020. Your PR to tcpdump: Jul 27, 2022. 
> Denis questions: Oct 23, 2022. No answer until Jul 23, 2023.
> 
>> I suspect it would create more confusion, if tcpdump was using a different 
>> mapping, than other tools
> 
> There are already some different mapping between, for example, Wireshark and 
> tcpdump:
> ACK: "." for tcpdump, "A" for Wireshark.
> CWR: "W" for tcpdump, "C" for Wireshark.
Wireshark uses the first character...

Best regards
Michael
> 
> If you think this is a problem for the new flag, have you considered 
> modifying the two tools you mention with two small patches?
> 
> Wireshark, for example, prints "AE" without -V, e.g. "[SYN, ECE, CWR, AE]". 
> No "A" alone here.
> And the only place where the new "A" appears is with -V:
> TCP Flags: ···ACE····S·
> --------------^
> It appears with:
>  "...1 .... .... = Accurate ECN: Set"
> 
> If it's a problem, it could easily be changed to e.g. "N", with a little 
> patch.
> 
> Same for packetdrill.
> 
>> (just like with the "." for Ack, which is in common use throughout those 
>> very same tools).
> 
> And again « the "." for Ack » is not used by Wireshark, one of « those very 
> same tools ».
> 
>> Another interesting aspect which I would be keen on learning, if per-session 
>> stateful decoding is something that the tcpdump community would entertain. 
>> Once the AccECN handshake (in a SYN) was seen, subsequently the AE, ECE and 
>> CWR bits together form the ACE counter. In packetdrill and also wireshark 
>> this gets then decoded numerically (0..7) instead of having one character 
>> per bit...
> 
> This per-session stateful session decoding could be examined later...
> 
>> Best regards,
>>  Richard
> 
> Best regards,
> François
> 
>> 
>> -----Original Message-----
>> From: Francois-Xavier Le Bail <devel.fx.leb...@orange.fr> 
>> Sent: Freitag, 18. August 2023 13:20
>> To: Scheffenegger, Richard <richard.scheffeneg...@netapp.com>; 
>> tcpdump-workers@lists.tcpdump.org
>> Subject: Re: Accurate ECN support in tcpdump/libpcap
>> 
>> NetApp Security WARNING: This is an external email. Do not click links or 
>> open attachments unless you recognize the sender and know the content is 
>> safe.
>> 
>> On 18/08/2023 09:55, Scheffenegger, Richard wrote:
>>> Hi,
>>> 
>>> I’ve been asked to reach out to this mailing list, to gather some feedback 
>>> around the support for tcpdump to properly decode the upcoming (WGLC) 
>>> Accurate ECN signalling enhancement, which is part of the L4S (low loss, 
>>> low latency, scalable) effort, ultimately culminating in a variant of TCP 
>>> called TCP Prague:
>>> 
>>> Here is the change to tcpdump – adding the additional “A” TCP header flag 
>>> bit; Since the ACK bit has traditionally been mapped to “.”, and the 
>>> refurbished former Nonce bit #9 in the 12-bit TCP header flags field has 
>>> been named “AE” (Accurate ecn Enable), the code changes to other tools such 
>>> as Wireshark and Packetdrill are using the mapping to the character “A” (or 
>>> decode Accurate ECN stateful into the ACE counter value of 0..7)
>> Hi,
>> 
>> Even if tcpdump prints the "ACK" flag with a ".", "A" is ambiguous precisely 
>> because of "ACK".
>> We should use "N" for the new flag, last letter of "Accurate ECN", to avoid 
>> this ambiguity, as already suggested in a PR comment.
> _______________________________________________
> tcpdump-workers mailing list -- tcpdump-workers@lists.tcpdump.org
> To unsubscribe send an email to tcpdump-workers-le...@lists.tcpdump.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s


_______________________________________________
tcpdump-workers mailing list -- tcpdump-workers@lists.tcpdump.org
To unsubscribe send an email to tcpdump-workers-le...@lists.tcpdump.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to