Bob,

In this text:


   On average, a tunnel egress

   SHOULD approximately preserve the number of CE-marked and ECT(1)-marked 
octets arriving and leaving ...

I understand the rationale for CE-marked octets, but what’s the rationale for 
ECT(1)-marked octets?

Thanks, --David

From: Bob Briscoe <[email protected]>
Sent: Monday, July 8, 2019 8:28 AM
To: Joe Touch; Black, David
Cc: [email protected]; tsvwg
Subject: Re: [tsvwg] [Int-area] 2nd TSVWG WGLC on ecn-encap-guidelines and 
rfc6040-update-shim drafts, closes 6 May 2019


[EXTERNAL EMAIL]
Joe,

Following up my email to you in May quoted further down, you made me realize 
that RFC6040 did not address what to do with ECN during fragmentation and 
reassembly. So I've added the following to my local copy of 
draft-ietf-tsvwg-rfc6040-update-shim (to be posted later today), which recently 
went through TSVWG last call, and will imminently be last called on various 
int-area lists, I believe.

These are quite significant updates to outer fragment processing at the tunnel 
egress. But, given something has to be said, I can't think of a better way (see 
the original quoted email about why the logical OR of the ECN codepoints as 
defined in RFC3168 is no longer sufficient - and it's no simpler anyway).

5.  ECN Propagation and Fragmentation/Reassembly



   The following requirements update RFC6040, which omitted handling of

   the ECN field during fragmentation or reassembly.  These changes

   might alter how many ECN-marked packets are propagated by a tunnel

   that fragments packets, but this would not raise any backward

   compatibility issues:



   If a tunnel ingress fragments a packet, it MUST set the outer ECN

   field of all the fragments to the same value as it would have set if

   it had not fragmented the packet.



   As a tunnel egress reassembles sets of outer fragments

   [I-D.ietf-intarea-tunnels] into packets, it SHOULD propagate CE

   markings on the basis that a congestion indication on a packet

   applies to all the octets in the packet.  On average, a tunnel egress

   SHOULD approximately preserve the number of CE-marked and ECT(1)-

   marked octets arriving and leaving (counting the size of inner

   headers, but not encapsulating headers that are being stripped).

   This process proceeds irrespective of the addresses on the inner

   headers.



   Even if only enough incoming CE-marked octets have arrived for part

   of the departing packet, the next departing packet SHOULD be

   immediately CE-marked.  This ensures that CE-markings are propagated

   immediately, rather than held back waiting for more incoming CE-

   marked octets.  Once there are no outstanding CE-marked octets, if

   only enough incoming ECT(1)-marked octets have arrived for part of

   the departing packet, the next departing packet SHOULD be immediately

   marked ECT(1).



   For instance, an algorithm for marking departing packets could

   maintain a pair of counters, the first representing the balance of

   arriving CE-marked octets minus departing CE-marked octets and the

   second representing a similar balance of ECT(1)-marked octets.  The

   algorithm:



   o  adds the size of every CE-marked or ECT(1)-marked packet that

      arrives to the appropriate counter;



   o  if the CE counter is positive, it CE-marks the next packet to

      depart and subtracts its size from the CE counter;



   o  if the CE counter is negative but the ECT(1) counter is positive,

      it marks the next packet to depart as ECT(1) and subtracts its

      size from the ECT((1) counter;



   o  (the previous two steps will often leave a negative remainder in

      the counters, which is deliberate);



   o  if neither counter is positive, it marks the next packet to depart

      as ECT(0);



   o  until all the fragments of a packet have arrived, it does not

      commit any updates to the counters so that, if reassembly fails

      and the partly reassembled packet has to be discarded, none of the

      discarded fragments will have updated any of the counters.



   During reassembly of outer fragments [I-D.ietf-intarea-tunnels], if

   the ECN fields of the outer headers being reassembled into a single

   packet consist of a mixture of Not-ECT and other ECN codepoints, the

   packet MUST be discarded.



   A tunnel end-point that claims to support the present specification

   MUST NOT use an approach that results in a significantly different

   ECN-marking outcome to that defined by the "SHOULD" statements

   throughout this section.  "SHOULD" is only used to allow similar

   perhaps more efficient approaches that result in approximately the

   same outcome.




Bob
On 16/05/2019 22:14, Bob Briscoe wrote:
Joe,

Sorry I missed this posting at the time (my mail filters moved both 
cross-postings into my int-area box which I check only rarely).

On 27/04/2019 18:13, Joe Touch wrote:
Cross-posting to let both communities know:

- it would be useful for these documents to address how fragmentation and 
reassembly affects these signals
              (esp. if reassembling fragments with different ECN values)

[BB] This is addressed by the re-framing 
section<https://tools.ietf.org/html/draft-ietf-tsvwg-ecn-encap-guidelines-12#section-4.6>
 in ecn-encap-guidelines, altho it doesn't give examples of what might have 
caused frame boundary misalignment, so fragmentation is not specifically 
mentioned. I think I will add an explicit mention of fragmentation (if only so 
a search finds that section).

Actually I've realized that this highlights an inconsistency between the advice 
on ECN and fragment reassembly in RFC3168 and in ecn-encap-guidelines.:

  *   RFC3168 requires that the ECN marking of a reassembled packet is the 
logical OR of the ECN marks on the fragments,
  *   whereas ecn-encap-guidelines recommends marking the same number of 
outgoing as incoming octets when reassembling L2 frames or tunnelled packets 
with different boundaries - using a simple counter to track the balance.
In fact, it was the review of RFC3168 by me and Jon Crowcroft back in 2001 that 
originally raised the question of how to handle reassembly of ECN-marked 
fragments<https://tools.ietf.org/html/draft-ietf-tsvwg-ecn-ip-00#section-11>. 
I'll quote a passage from the review, which I think justifies the 
recommendation in ecn-encap-guidelines to count marked bytes, rather than use 
the logical OR of RFC3168:

To use the logical OR of the marking of all fragments might be a pragmatic

solution, particularly for congestion control protocols like TCP where one

loss per round trip is treated identically to many. However, it is becoming

more common to see large numbers of packets per round trip time as data

rates increase while packet sizes and the speed of light haven't increased

for many years. Therefore it is to be expected that newer congestion

control protocols might take more accurate account of the number of packets

marked in a round trip. Hence, the inaccuracy of a logical OR during

re-assembly at the IP layer is best avoided.
I'm not too worried about the inaccuracy of using a logical OR, but I think it 
best to recommend more accurate and no less costly counting. The only 
justification for the logical OR was that TCP only reacted to one ECN mark per 
RTT. But that is changing now, and the behaviour of one transport should not be 
embedded in lower layers anyway.


- it would be useful for these documents to consider draft-ietf-intarea-tunnels 
(which relates to the above) and its discussion on many of the protocols cited
I can't find anything in draft-ietf-intarea-tunnels that ought to be cited from 
ecn-encap-guidelines or rfc6040-update-shim. Did you have something specific in 
mind?

I do want to raise a question about the following sentence, which precedes the 
mention of ECN:

   There are exceptions to this rule that are explicitly intended to

   relay signals from inside the tunnel to the network outside the

   tunnel, typically relevant only when the tunnel network N and the

   outer network M use the same network.
Was that last word meant to say "network protocol"?

Then, if that is what you meant, I would disagree. Many different network 
protocols include concepts similar to Diffserv and/or ECN (e.g. IEEE802.1p, 
MPLS and TRILL support both, etc), and there's rarely a reason /not/ to 
propagate the concept between different network protocols when they encapsulate 
each other, even tho it's not always straightforward to do so.



Bob


Bob

Joe


On Apr 26, 2019, at 1:50 PM, Black, David 
<[email protected]<mailto:[email protected]>> wrote:

This may be of interest to INT folks who are interested in tunnels and 
encapsulations.

Comments by the WGLC deadline are encouraged, but comments after the deadline 
are ok, as they’d have to be dealt with anyway at IETF Last Call.

Thanks, --David

From: tsvwg <[email protected]<mailto:[email protected]>> On Behalf 
Of Black, David
Sent: Wednesday, April 17, 2019 2:51 PM
To: [email protected]<mailto:[email protected]>
Subject: [tsvwg] 2nd WGLC on ecn-encap-guidelines and rfc6040-update-shim 
drafts, closes 6 May 2019

[EXTERNAL EMAIL]
This email announces a 2nd TSVWG Working Group Last Call (WGLC) on two drafts:

[1] Guidelines for Adding Congestion Notification to Protocols that
                             Encapsulate IP
                draft-ietf-tsvwg-ecn-encap-guidelines-12
https://datatracker.ietf.org/doc/draft-ietf-tsvwg-ecn-encap-guidelines/
This draft is intended to become a Best Current Practice RFC

[2] Propagating Explicit Congestion Notification Across IP Tunnel Headers
                          Separated by a Shim
                 draft-ietf-tsvwg-rfc6040update-shim-08
https://datatracker.ietf.org/doc/draft-ietf-tsvwg-rfc6040update-shim/
This draft is intended to become a Proposed Standard RFC.

This WGLC will run through the end of the day on Monday, May 6, 2019.

Comments should be sent to the [email protected]<mailto:[email protected]> list, 
although purely
editorial comments may be sent directly to the author. Please cc: the
WG chairs at [email protected]<mailto:[email protected]>  if you would 
like the chairs to
track such editorial comments as part of the WGLC process.

No IPR disclosures have been submitted directly on either draft

Thanks,
David, Gorry and Wes
(TSVWG Co-Chairs)

_______________________________________________
Int-area mailing list
[email protected]<mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/int-area




--

________________________________________________________________

Bob Briscoe                               http://bobbriscoe.net/



--

________________________________________________________________

Bob Briscoe                               http://bobbriscoe.net/
_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area

Reply via email to