Re: [Dime] Conclusion for Sequence Numbers - was Re: OVLI: comments to 4.3

Jouni Korhonen <jouni.nospam@gmail.com> Tue, 10 December 2013 07:28 UTC

Return-Path: <jouni.nospam@gmail.com>
X-Original-To: dime@ietfa.amsl.com
Delivered-To: dime@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 04C401ADEA1 for <dime@ietfa.amsl.com>; Mon, 9 Dec 2013 23:28:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0PttJqpjeBgN for <dime@ietfa.amsl.com>; Mon, 9 Dec 2013 23:28:20 -0800 (PST)
Received: from mail-bk0-x229.google.com (mail-bk0-x229.google.com [IPv6:2a00:1450:4008:c01::229]) by ietfa.amsl.com (Postfix) with ESMTP id 7E5251ADDAF for <dime@ietf.org>; Mon, 9 Dec 2013 23:28:20 -0800 (PST)
Received: by mail-bk0-f41.google.com with SMTP id v15so1795450bkz.14 for <dime@ietf.org>; Mon, 09 Dec 2013 23:28:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to; bh=NFtZsOlX3CVGla/7kU10xhHRPBXbmBuVStf0Fu8BjzQ=; b=SOLWkPIPPfxhgONC45V4ozro45A8vDnqueBbdEjyiE5mEsdYgH6Mqu+nnsGQHMM367 kc4ibP9xqvPUAL9S1Sn2Nmk0NR1UBOOWTTL749nohbcKR7ifKs8Psjzn3noVQQWJJw5/ 2VP2JEeQrynCrja5n+PC3/PXperUg1KKsf9YFeE+YqFRhAaCoUweEyZNy3WzDIWJlGLB Yb9FJ53ckLzyJt+RnntMyXmRjHszMBcRn6VJIQkwMULHeSXr4+mpUJad/giTMQi4kD3l JZXDodJ5E1Q1aHTRTjdq4PaDS7cyyOF7/qvNLzSNUbA1zP6Mcz1W+wmICA0xrROZjzBD EXsA==
X-Received: by 10.204.231.207 with SMTP id jr15mr87516bkb.92.1386660494875; Mon, 09 Dec 2013 23:28:14 -0800 (PST)
Received: from ?IPv6:2001:6e8:480:60:20b9:7452:797c:e240? ([2001:6e8:480:60:20b9:7452:797c:e240]) by mx.google.com with ESMTPSA id sx5sm10722201bkb.0.2013.12.09.23.28.10 for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 09 Dec 2013 23:28:10 -0800 (PST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: Jouni Korhonen <jouni.nospam@gmail.com>
In-Reply-To: <7475B713-1104-4791-96B1-CE97632A0D69@nostrum.com>
Date: Tue, 10 Dec 2013 09:28:09 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <B81C3281-95F9-4F28-8662-2E20A6AE96A1@gmail.com>
References: <5BCBA1FC2B7F0B4C9D935572D90006681519DB1B@DEMUMBX014.nsn-intra.net> <C66C8914-AA7A-47F5-8EA4-7B0ECEDA5368@gmail.com> <52A5E902.20605@usdonovans.com> <7475B713-1104-4791-96B1-CE97632A0D69@nostrum.com>
To: Ben Campbell <ben@nostrum.com>, "dime@ietf.org list" <dime@ietf.org>, Steve Donovan <srdonovan@usdonovans.com>
X-Mailer: Apple Mail (2.1510)
Subject: Re: [Dime] Conclusion for Sequence Numbers - was Re: OVLI: comments to 4.3
X-BeenThere: dime@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Diameter Maintanence and Extentions Working Group <dime.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dime>, <mailto:dime-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dime/>
List-Post: <mailto:dime@ietf.org>
List-Help: <mailto:dime-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dime>, <mailto:dime-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Dec 2013 07:28:23 -0000

Fine.. lets define then the sequence number semantics. Basic
unsigned integer math. The text proposal is the following:

4.4.  OC-Sequence-Number AVP

   The OC-Sequence-Number AVP (AVP code TBD3) is type of Unsigned64.
   Its usage in the context of the overload control is described in
   Sections 4.1 and 4.3.

   From the functionality point of view, the OC-Sequence-Number AVP
   MUST be used as a non-volatile increasing counter between two
   overload control endpoints.  The sequence number is only required
   to be unique between two overload control endpoints and does not
   need to be monotonically increasing.

   When comparing two sequence numbers, the new sequence number MUST
   be greater or equal than the old sequence number within a window
   that is half of the size of the maximum sequence number. This
   allows a simple handling of the sequence number overflow using
   unsigned integer arithmeticf:

     #define WINDOW 0x8000000000000000ULL
 
     bool verify_seqnum( uint64_t newsn, uint64_t oldsn ) {
         if (newsn - oldsn <= WINDOW)
             // newsn >= oldsn
             return true;   
         } else
             // outside window or newsn < oldsn
             return false;  
         }
     }



The above should even work is someone shovels NTP times into
sequence numbers with a blind typecasting.

- Jouni

On Dec 10, 2013, at 12:34 AM, Ben Campbell <ben@nostrum.com> wrote:

> 
> On Dec 9, 2013, at 10:00 AM, Steve Donovan <srdonovan@usdonovans.com> wrote:
> 
>> Jouni,
>> 
>> I propose that we keep the name OC-Sequence-Number but that we use the Time type for OC-Sequence-Number.  It is misleading and potentially confusing to call it OC-Time-Stamp.  
>> 
> 
> I could live with that, although I would rather just define the expected properties of the sequence number, and leave the implementation up to the implementor. I assume your reasoning for not calling it a timestamp is that you do not want people to try to use it as a time base reference. If so, then we don't require any connection to a clock. We just need it to be monotonically increasing.
> 
>> We might consider expanding on the format of the AVP to make it something like Session-ID, where it is a concatenation of the Diameter-ID of the generating node and a timestamp.  This might help the reacting node keep track of which sequence number it has received.
>> 
> 
> Do we need a uniqueness across multiple nodes property? If so, why?
> 
>> Steve
>> 
>> On 12/9/13 5:37 AM, Jouni Korhonen wrote:
>>> Folks
>>> 
>>> Could we conclude on the sequence number vs. time stamp vs. something else?
>>> We got more important places to spend our energy than this ;)
>>> 
>>> My proposal is the following (based on the original pre-00 design):
>>> 
>>> o We change the OC-Sequence-Number to OC-Time-Stamp in all occurrences
>>>  in the -01.
>>> o We use RFC6733 Time type for the OC-Time-Stamp. RFC6733 gives us
>>>  already exact definition how to handle the AVP.
>>> o Define that the OC-Time-Stamp is the time of the creation of the 
>>>  "original" AVP within whose context the time stamp is present.
>>> o The OC-Time-Stamp AVP uniqueness is still considered to be in scope
>>>  of the communicating endpoints.
>>> o The time stamp can be used to quickly determine if the content of
>>>  the encapsulating AVP context has changed (among other properties).
>>>  This would be useful specifically in the future when the encapsulating
>>>  grouped AVPs  grow in size and functionality.
>>> 
>>> 
>>> - Jouni
>>> 
>>> _______________________________________________
>>> DiME mailing list
>>> 
>>> DiME@ietf.org
>>> https://www.ietf.org/mailman/listinfo/dime
>>> 
>>> 
>>> 
>> 
>> _______________________________________________
>> DiME mailing list
>> DiME@ietf.org
>> https://www.ietf.org/mailman/listinfo/dime
> 
> _______________________________________________
> DiME mailing list
> DiME@ietf.org
> https://www.ietf.org/mailman/listinfo/dime