Re: [conex] WGLC for draft-ietf-conex-abstract-mech-06.txt

Bob Briscoe <bob.briscoe@bt.com> Thu, 13 December 2012 13:25 UTC

Return-Path: <bob.briscoe@bt.com>
X-Original-To: conex@ietfa.amsl.com
Delivered-To: conex@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CE78821F879F for <conex@ietfa.amsl.com>; Thu, 13 Dec 2012 05:25:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.357
X-Spam-Level:
X-Spam-Status: No, score=-3.357 tagged_above=-999 required=5 tests=[AWL=0.241, BAD_CREDIT=0.001, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E0QuQKyVBA0w for <conex@ietfa.amsl.com>; Thu, 13 Dec 2012 05:25:04 -0800 (PST)
Received: from hubrelay-rd.bt.com (hubrelay-rd.bt.com [62.239.224.99]) by ietfa.amsl.com (Postfix) with ESMTP id 773A021F8436 for <conex@ietf.org>; Thu, 13 Dec 2012 05:25:04 -0800 (PST)
Received: from EVMHR01-UKBR.domain1.systemhost.net (193.113.108.40) by EVMHR68-UKRD.bt.com (10.187.101.23) with Microsoft SMTP Server (TLS) id 8.3.279.1; Thu, 13 Dec 2012 13:25:03 +0000
Received: from EPHR02-UKIP.domain1.systemhost.net (147.149.100.81) by EVMHR01-UKBR.domain1.systemhost.net (193.113.108.40) with Microsoft SMTP Server (TLS) id 8.3.279.1; Thu, 13 Dec 2012 13:25:02 +0000
Received: from bagheera.jungle.bt.co.uk (132.146.168.158) by EPHR02-UKIP.domain1.systemhost.net (147.149.100.81) with Microsoft SMTP Server id 14.2.318.4; Thu, 13 Dec 2012 13:24:58 +0000
Received: from MUT.jungle.bt.co.uk ([10.73.33.117]) by bagheera.jungle.bt.co.uk (8.13.5/8.12.8) with ESMTP id qBDDOurW004789; Thu, 13 Dec 2012 13:24:57 GMT
Message-ID: <201212131324.qBDDOurW004789@bagheera.jungle.bt.co.uk>
X-Mailer: QUALCOMM Windows Eudora Version 7.1.0.9
Date: Thu, 13 Dec 2012 13:24:57 +0000
To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
From: Bob Briscoe <bob.briscoe@bt.com>
In-Reply-To: <81564C0D7D4D2A4B9A86C8C7404A13DA059F14@ESESSMB205.ericsson .se>
References: <508630EE.8060305@it.uc3m.es> <9510D26531EF184D9017DF24659BB87F33F3643D42@EMV65-UKRD.domain1.systemhost.net> <9510D26531EF184D9017DF24659BB87F33F3644323@EMV65-UKRD.domain1.systemhost.net> <81564C0D7D4D2A4B9A86C8C7404A13DA04F232@ESESSMB205.ericsson.se> <201212102152.qBALqs50022813@bagheera.jungle.bt.co.uk> <81564C0D7D4D2A4B9A86C8C7404A13DA059F14@ESESSMB205.ericsson.se>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
X-Scanned-By: MIMEDefang 2.56 on 132.146.168.158
Cc: "conex@ietf.org" <conex@ietf.org>
Subject: Re: [conex] WGLC for draft-ietf-conex-abstract-mech-06.txt
X-BeenThere: conex@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Congestion Exposure working group discussion list <conex.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/conex>, <mailto:conex-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/conex>
List-Post: <mailto:conex@ietf.org>
List-Help: <mailto:conex-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/conex>, <mailto:conex-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Dec 2012 13:25:05 -0000

Ingemar,

At 09:46 13/12/2012, Ingemar Johansson S wrote:
> > We should make it clear that the only state that re-creates 
> itself is the flow-
> > ID state, not the credit associated with it. I wrote that 
> sentence (not Matt),
> > and my motivation was to explain that a switch to a different 
> audit wouldn't
> > be catastrophic for the flow. I wasn't trying to claim that it 
> would hand-over
> > without a glitch. The audit would drop some packets, so the flow would send
> > some Re-Echo-Loss, which would establish some credit and the flow could
> > continue.
>[IJ] Hmm, perhaps I did not get that part, what you say is that if 
>the audit drops a packet, that will count as a credit ?.  This 
>credit thing is is still a mystery so I probably need to get this 
>explained better...

OK, I think I promised Marcelo I would write a draft about audit, 
with a couple of example algorithms. I suspect that would help clear 
up many of these questions.

For now, example stateful and stateless audit pseudocode and 
evaluations are here:
<http://www.bobbriscoe.net/pubs.html#refb-dis> (Section 7.6)

Here's an overview:

Very brief (for those who mostly get it already):
----------
The audit function doesn't count its own losses when balancing 
Re-Echo-Loss against Loss, because they are /audit/ losses, not 
congestion losses.

So, if a flow is re-routed to a new audit function that doesn't hold 
any state about this flow, it will start discarding  a low level of 
packets (audit discard). This will trigger the sender to Re-Echo-Loss 
in the next round trip, which will make the flow's audit balance 
positive and stop further audit discards.

So, the flow has naturally created new state at the new audit 
function without the flow explicitly knowing that the burst of loss 
was due to a re-route into a new audit function which caused the 
flow's credit state at the original audit function to be lost.


Brief but fuller explanation:
----------------------------
Re-Echo is always at least a round trip behind (longer for e.g. 
RTCP). The audit function makes the sender responsible for making the 
allowance for its feedback delay, by having to mark sufficient credit 
packets. Then the audit function can just test instantaneous 
negativity, without having to allow for RTT or feedback delays that 
it doesn't know.

I'll assume a stateful audit function (stateless is possible, but it 
has to be less precise). For the duration of a flow, a stateful audit 
function counts bytes of different ConEx markings, and it will start 
dropping packets if
* the balance of (Credit + Re-Echo-ECN  - ECN)  goes negative, or
* the balance of (Credit + Re-Echo-Loss - Loss) goes negative. {See note}

Consider a re-route where a flow is switched to a different stateful 
audit function, and assume the audit functions don't hand-over their state.

* As soon as the flow suffers any loss or ECN in the network, the 
flow will go negative at the new audit function for at least a RTT, 
because it has no credit and no Re-Echo for at least a round trip.
* So audit starts dropping packets (a very small but growing proportion).
* Importantly, the audit doesn't count these discards as loss because 
they are its own /audit/ losses not congestion losses.
* The sender gets the loss feedback from the receiver and sends some 
Re-Echo-Loss markings to balance.
* These make the flow positive at the new audit function, because it 
didn't count its own discards.

So, the flow has naturally created new state at the new audit 
function without explicitly knowing that the burst of loss was due to 
a re-route.


Cheers


Bob

{Note: Let's set aside the question of how an audit function knows 
how much loss an upstream node has done - abstract-mech talks about 
that separately.}


________________________________________________________________
Bob Briscoe,                                BT Innovate & Design