Re: [Dime] [dime] #32: Sequence-Number Time-Stamp values within OC-OLR

Steve Donovan <srdonovan@usdonovans.com> Thu, 06 February 2014 15:49 UTC

Return-Path: <srdonovan@usdonovans.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 BE8471A0177 for <dime@ietfa.amsl.com>; Thu, 6 Feb 2014 07:49:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.919
X-Spam-Level:
X-Spam-Status: No, score=-0.919 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_FONT_FACE_BAD=0.981, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
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 7kLV9urhPSXi for <dime@ietfa.amsl.com>; Thu, 6 Feb 2014 07:49:35 -0800 (PST)
Received: from biz131.inmotionhosting.com (biz131.inmotionhosting.com [66.117.0.129]) by ietfa.amsl.com (Postfix) with ESMTP id 420381A01E1 for <dime@ietf.org>; Thu, 6 Feb 2014 07:49:34 -0800 (PST)
Received: from [137.254.4.55] (port=52164 helo=SDmac.local) by biz131.inmotionhosting.com with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (Exim 4.82) (envelope-from <srdonovan@usdonovans.com>) id 1WBRCl-0007qv-DU for dime@ietf.org; Thu, 06 Feb 2014 07:49:32 -0800
Message-ID: <52F3AF0D.3050306@usdonovans.com>
Date: Thu, 06 Feb 2014 09:49:33 -0600
From: Steve Donovan <srdonovan@usdonovans.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Thunderbird/24.2.0
MIME-Version: 1.0
To: dime@ietf.org
References: <066.f8b7ffcffcd55b9e56fa2bfc281d4649@trac.tools.ietf.org> <29423_1391537999_52F12F4F_29423_3802_1_6B7134B31289DC4FAF731D844122B36E47772A@PEXCVZYM13.corporate.adroot.infra.ftgroup> <A9CA33BB78081F478946E4F34BF9AAA014D62A4B@xmb-rcd-x10.cisco.com> <52F24BC0.6070600@usdonovans.com> <29564_1391614624_52F25AA0_29564_1057_1_6B7134B31289DC4FAF731D844122B36E487344@PEXCVZYM13.corporate.adroot.infra.ftgroup> <2ACDC7E8-A46D-4618-92CE-B793AF3A8F75@nostrum.com> <29459_1391615624_52F25E88_29459_734_1_6B7134B31289DC4FAF731D844122B36E4873CD@PEXCVZYM13.corporate.adroot.infra.ftgroup> <29FCFFE7-64BF-4928-A3DF-F2FC0D1EFBC6@nostrum.com> <5BCBA1FC2B7F0B4C9D935572D9000668151B23D7@DEMUMBX014.nsn-intra.net>
In-Reply-To: <5BCBA1FC2B7F0B4C9D935572D9000668151B23D7@DEMUMBX014.nsn-intra.net>
Content-Type: multipart/alternative; boundary="------------070405090507090307080405"
X-OutGoing-Spam-Status: No, score=-1.9
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - biz131.inmotionhosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - usdonovans.com
X-Get-Message-Sender-Via: biz131.inmotionhosting.com: authenticated_id: srdonovan@usdonovans.com
Subject: Re: [Dime] [dime] #32: Sequence-Number Time-Stamp values within OC-OLR
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: Thu, 06 Feb 2014 15:49:39 -0000

A couple of things -

The requirement is that the sequence number increase monotonically over
time, including over a reboot.  Use of NTP time is one way of doing this
but is not the only way.  Someone could, for instance, use a time stamp
to set the sequence number for the first overload report sent after a
reboot and then increment the sequence number value by one for each
subsequent overload report sent.  This actually has better properties
than an NTP time stamp as it would take much longer to roll over.  One
could also create a global sequence number service that is not tied to
time and have a Diameter server query that global sequence number server
after each reboot.

We also have a duration timer on overload reports.  This gives us one
way to reset.  It should only be required to remember the sequence
number of an active overload report.  Once the overload report expires
there is no reason to remember anything about it and the next overload
report received could, conceivably have any value.

The requirement we need is similar to the session-id in the base
Diameter specification.  The wording there is -- "The Session-Id MUST be
globally and eternally unique".  We just need eternally as the spacial
differentiation is based on the context of the message carrying the
overload report.

It would be perfectly valid for the DOIC draft to suggest the use of NTP
timestamps to populate the sequence number but it should be worded in a
similar fashion as the Diameter base RFC -- The Session-Id includes a
mandatory portion and an implementation-defined portion; a recommended
format for the implementation-defined portion is outlined below..."

Steve

On 2/6/14 7:12 AM, Wiehe, Ulrich (NSN - DE/Munich) wrote:
> I cannot understand what is the problem with mandating timestamp.
> But I can see interoperability problems with the current definition:
>
> Assume the sender sends sequence numbers
> 1, 1, ... 1, 2, 2, ... 2, 3, 3, 3,  ... 3, 4, 4, ... 4, 5,.... 
> but the receicer for any reason receives 
> 1, 1, ... 1, 2, 2, ... 2, 3, 30000, 3,  ... 3, 4, 4, ... 4, 5,.... 
> The receiver would accept
> 1, 1, ... 1, 2, 2, ... 2, 3, 30000
> and then silently discards
> 3,  ... 3, 4, 4, ... 4, 5,....  4, 5, .... 
> with no way to come back to sync.
>
> Are we sure that this cannot happen?
>
> Mandating timestamp for sequence number generation at the sender and plausibility checking (i.e. received value must be between stored value and time of reception) for the receiver may not be the only way to solve the problem. But in the moment I don't see another way.
>
> Ulrich
>
>
> -----Original Message-----
> From: DiME [mailto:dime-bounces@ietf.org] On Behalf Of ext Ben Campbell
> Sent: Wednesday, February 05, 2014 4:57 PM
> To: ext lionel.morand@orange.com
> Cc: dime@ietf.org
> Subject: Re: [Dime] [dime] #32: Sequence-Number Time-Stamp values within OC-OLR
>
> My point is, we have an interop requirement that the sequence number always increases over time scope. We do not have the interop requirement that the sequence number be implemented as a time stamp. A time stamp is probably a good way to  meet the interop requirements, but it is not, in itself, an interop requirement.
>
> On Feb 5, 2014, at 9:53 AM, <lionel.morand@orange.com> <lionel.morand@orange.com> wrote:
>
>> Not sure to understand: if there is a kind of "interop requirement", it is a case for a "MUST".
>> We are not violating anything.
>>
>> Reporting and reacting nodes will just rely on the Diameter interfaces to know how to handle the received sequence-number. So any MUST on the format of the sequence-number is acceptable if it avoids interop issues.
>>
>> -----Message d'origine-----
>> De : Ben Campbell [mailto:ben@nostrum.com] 
>> Envoyé : mercredi 5 février 2014 16:47
>> À : MORAND Lionel IMT/OLN
>> Cc : Steve Donovan; dime@ietf.org
>> Objet : Re: [Dime] [dime] #32: Sequence-Number Time-Stamp values within OC-OLR
>>
>> I concur with Steve on this one. Using a time stamp is a good way to meet the requirements, but it's not our job to normatively state an implementation. In fact, it violates an RFC 2119 "MUST" level requirement to do so. Section 6 of 2119 includes the following:
>>
>> "In particular, [normative requirements] MUST only be used where it is
>>   actually required for interoperation or to limit behavior which has
>>   potential for causing harm (e.g., limiting retransmisssions)  "
>>
>> The only appropriate reason to require a timestamp would be if we expected peers to interpret the field as a point in time. OTOH, it would be perfectly reasonable to state the actual interop requirements, then add a non-normative (probably indented) paragraph suggesting that a timestamp is a good way to do this.
>>
>> On Feb 5, 2014, at 9:37 AM, lionel.morand@orange.com wrote:
>>
>>> I think the out-of-sync failover described by Ulrich is a good use case to mandate a specific semantic.
>>>
>>> Is there any specific NOT to mandate the use of NTP timestamps if it is a simple way to solve the possible issues and please everyone?
>>>
>>> Lionel
>>>
>>> De : DiME [mailto:dime-bounces@ietf.org] De la part de Steve Donovan
>>> Envoyé : mercredi 5 février 2014 15:34
>>> À : dime@ietf.org
>>> Objet : Re: [Dime] [dime] #32: Sequence-Number Time-Stamp values within OC-OLR
>>>
>>> How the sequence number is implemented is an implementation decision.  There is no reason to mandate that is be an NTP timestamp.  That should be included only as one way of addressing the requirement.
>>>
>>> Steve
>>>
>>> On 2/4/14 10:27 PM, Nirav Salot (nsalot) wrote:
>>> I also agree.
>>>
>>> Regards,
>>> Nirav.
>>>
>>> -----Original Message-----
>>> From: DiME [mailto:dime-bounces@ietf.org] On Behalf Of lionel.morand@orange.com
>>> Sent: Tuesday, February 04, 2014 11:50 PM
>>> To: dime@ietf.org
>>> Subject: Re: [Dime] [dime] #32: Sequence-Number Time-Stamp values within OC-OLR
>>>
>>> The existing wording seems actually fuzzy.
>>> If it is "like an NTP timestamp", be proud and say it loud!
>>>
>>> In summary: ok with the proposal if it clarifies this handling of this sequence-number.
>>>
>>> Lionel
>>>
>>> -----Message d'origine-----
>>> De : dime issue tracker [mailto:trac+dime@trac.tools.ietf.org]
>>> Envoyé : mardi 4 février 2014 09:50
>>> À : MORAND Lionel IMT/OLN
>>> Cc : dime@ietf.org
>>> Objet : [dime] #32: Sequence-Number Time-Stamp values within OC-OLR
>>>
>>> #32: Sequence-Number Time-Stamp values within OC-OLR
>>>
>>> The -01 draft says in clause 4.4:
>>>    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 (neglecting the fact that the contents of the AVP
>>>    is a 64-bit NTP timestamp [RFC5905]).  The sequence number is only
>>>    required to be unique between two overload control endpoints.
>>>    Sequence numbers are treated in uni-directional manner, i.e. two
>>>    sequence numbers on each direction between two endpoints are not
>>>    related or correlated.
>>>
>>>    When generating sequence numbers, the new sequence number MUST be
>>>    greater than any sequence number previously seen between two
>>>    endpoints within a time window that tolerates the wraparound of the
>>>    NTP timestamp (i.e. approximately 68 years).
>>>
>>>
>>> With this mechanism it is difficult to get back to sync once you are out  of sync (for whatever reason).
>>> It is proposed to mandate that the Sequence Number is a real 64-bit NTP  timestamp (RFC5905) indicating the point in time when the OLR was created,  and to mandate that  OLRs with a time stamp higher than time of reception  must be ignored by the reacting node.
>>>
>>>
>>> _________________________________________________________________________________________________________________________
>>>
>>> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
>>> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
>>> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
>>> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
>>>
>>> This message and its attachments may contain confidential or privileged information that may be protected by law;
>>> they should not be distributed, used or copied without authorisation.
>>> If you have received this email in error, please notify the sender and delete this message and its attachments.
>>> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
>>> Thank you.
>>>
>>> _______________________________________________
>>> DiME mailing list
>>> DiME@ietf.org
>>> https://www.ietf.org/mailman/listinfo/dime
>>
>> _________________________________________________________________________________________________________________________
>>
>> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
>> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
>> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
>> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
>>
>> This message and its attachments may contain confidential or privileged information that may be protected by law;
>> they should not be distributed, used or copied without authorisation.
>> If you have received this email in error, please notify the sender and delete this message and its attachments.
>> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
>> Thank you.
>>
>> _______________________________________________
>> 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
>