Re: [Dime] OC-Supported Feature AVP

Steve Donovan <srdonovan@usdonovans.com> Mon, 16 December 2013 12:59 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 8F4511AE308 for <dime@ietfa.amsl.com>; Mon, 16 Dec 2013 04:59:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.12
X-Spam-Level:
X-Spam-Status: No, score=-1.12 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_NEUTRAL=0.779] 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 kabcJWseIJMB for <dime@ietfa.amsl.com>; Mon, 16 Dec 2013 04:59:52 -0800 (PST)
Received: from biz131.inmotionhosting.com (biz131.inmotionhosting.com [173.247.247.114]) by ietfa.amsl.com (Postfix) with ESMTP id 29F791ADF9F for <dime@ietf.org>; Mon, 16 Dec 2013 04:59:52 -0800 (PST)
Received: from cpe-76-187-100-94.tx.res.rr.com ([76.187.100.94]:61939 helo=SDmac.local) by biz131.inmotionhosting.com with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (Exim 4.80.1) (envelope-from <srdonovan@usdonovans.com>) id 1VsXm1-0007Wv-GW for dime@ietf.org; Mon, 16 Dec 2013 04:59:51 -0800
Message-ID: <52AEF944.6030108@usdonovans.com>
Date: Mon, 16 Dec 2013 06:59:48 -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: <E194C2E18676714DACA9C3A2516265D201CB53EA@FR712WXCHMBA12.zeu.alcatel-lucent.com>
In-Reply-To: <E194C2E18676714DACA9C3A2516265D201CB53EA@FR712WXCHMBA12.zeu.alcatel-lucent.com>
Content-Type: multipart/alternative; boundary="------------020608050401070706000604"
X-OutGoing-Spam-Status: No, score=-2.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] OC-Supported Feature AVP
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: Mon, 16 Dec 2013 12:59:55 -0000

JJacques,

See my responses inline.

Regards,

Steve

On 12/13/13 7:44 AM, TROTTIN, JEAN-JACQUES (JEAN-JACQUES) wrote:
>
> Dear all
>
>  
>
> When analysing the discussion of the sequence number in the
> OC-Supported-Features AVP , it has driven me to some other
> considerations regarding this  feature negotiation that I hereafter
> present:  it is a bit long but it raises  a certain number of
> questions   and then we have to draw some conclusion  and adapt the
> text  of the draft if needed
>
>  
>
> A)     Behaviours for sending the  OC-Supported-Features AVP
>
> Currently there is only one default algorithm. So the use of
>  OC-Supported-Features AVP containing the OC-Feature-Vector is  only
> to indicate the support of DOIC with the default algorithm, given that
> en entity not supporting DOIC will never sends the
> OC-Supported-Features AVP.
>
SRD> OC-Supported-Features is also there for extensibility.  Once we
have rate defined then your statement no longer holds.
>
>  
>
> This AVP in the future  will allow to add new feature/capabilities .
>
>  
>
> This AVP is needed initially to advertise the mutual  capabilities
> between reacting and reporting node  and  when changes occur in the
>  supported  features (eg in general to add a new feature, but may be
> also to remove  one). A sequence number was introduced to manage these
> changes, but this introduction is still under discussion (cf Ulrich's
> mails questioning this point)
>
>  
>
> Then there is the question about when the OC-Supported-Features AVP is
> sent.  The current draft  has related statements in 3.2 and 4.1  :
>
> The several hereafter possible  behaviors are compliant for me with
> 3.2 and 4.1  statements (are you sharing this reading?), we have to
> see if the draft allows all of them or _if additional rules must be 
> fulfilled_:
>
>  
>
> a)      The reacting node sends the OC-Supported-Features AVP in each
> request and the reporting node sends back its own
> OC-Supported-Features AVP in each answer.
>
> b)      The reacting nodes initially sends its  OC-Supported-Features
> AVP, but does not repeat it any more , until a change in the features
> to be advertised  happens or after a node restart
>
> c)       Something intermediate, so when there is a change as in b)
>  plus  a periodic advertisement of the supported features although
> unchanged
>
SRD> I agree that a) does not need to be a MUST.  The requirement is
that the reacting node knows that all reporting nodes have received the
overload capabilities advertisement.  This is difficult in the presence
of agents when using piggybacking. 
>
>  
>
>  
>
> _About a):_
>
> Steve,  and I agree,   indicated that the features are quite stable
> over time, and modifications will appear when a new feature is
> deployed (OAM case); I think  it is also needed at restart.
>
SRD> Whether it needs a restart of a node is an implementation decision. 
>
> So there are very few events over the year where the advertisement is
> actually needed (have you others in mind?) .
>
SRD> There are two needs -- initial advertisment and change of capabilities.
>
> Now my questioning:   why to permanently do such an exchange in each
> request/answer?  I observe that this behavior  is used in 3GPP where
> supported features are advertised in each request/answer, so we can
> apply  the same principle, but I nevertheless raise the question.
>
SRD> I don't know the thought behind 3GPP feature advertisement.  My
reason for thinking it is needed every time is to address Diameter
networks with agents. 
>
>  
>
> About the sequence number:
>
> o   the receiving node has to open the sequence number AVP and checks
> if it has changed, given the value will change only a few times a
> year.  A besides  question,  which value the seq number takes after a
> restart
>
SRD> This needs to be specified.  If we have a time component of the
value then we can be sure that the value will have increased after
restart.  Having a new sequence number with the same report, as would
happen in this case, would not break anything.
>
> o   if we do not use the sequence number, the  receiving node has to
> open the OC-feature-Vector AVP and see if it has changed, so I do not
> see much difference with the above
>
SRD> If the OC-Feature-Vector is the only thing being advertised then
this might be true.  We have already talked about other parameters being
included as part of the advertisement.  This means that the
advertisement could become arbitrarily complex and parsing it every time
when it will change very infrequently will add real cost to the
reporting nodes.
>
> o   the sequence number has the property  to be equal  or to increase
> in order to detect an eventual  change of the order of the messages
> and avoid to come back to a previous value of the feature-vector. But
> further messages will all be with the new feature-vector, so the right
> result. I am not sure that the seq number bring a value for the
> transient period when the supported feature is  modified. So question:
> can we suppress the seq number in this a) behaviour?
>
SRD> No, for the reasons discussed.
>
> In this a ) behaviour, if the OC-Supported-Features AVP is no more
> present in a message (and in later messages) ,  it would  be
> interpreted  that DOIC is no more supported . ( so different from the
> b) or c) case)
>
>    
>
> _About b):_ this is the other extreme use case compared to a).
>
> Here in practice all the messages will not contain an
>  OC-Supported-Features AVP (except in the  rare cases of a change or
> after a restart), So the absence of this AVP in a message  does not
> mean that DOIC is not supported. Capability negotiation  happens once
> and remain valid until a change. At restart or when a change  a
> reacting node sends an OC-Supported-Features AVP in a request, and
> wait for an OC-Supported-Features AVP   in the answer; if nothing, it
> means the reporting node is not supporting DOIC. If the answer is lost
> the reacting node may repeat the request or use another one with its
> OC Supported-feature AVP.
>
SRD> How does a client (reacting node) know that all servers (reporting
nodes) have received the advertisement?
>
>  
>
> If the change occurs in the reporting node, it cannot wait for a
> request coming from the reacting node with an OC Supported-feature
> AVP,  (as it will  never come if no change at the reacting node side),
> so the reporting node should advertise the  OC Supported-feature AVP
> in answers (although the corresponding request do not contain this
> AVP).  I think this behavior is currently allowed by the draft text,
> do you agree?.   To secure a bit more, the reacting node may then
>  send a request with its own OC Supported-feature AVP, acting as an
> acknowledgement to the reporting node. The reporting node may repeat
> if needed  or to be more secure.
>
> There may be some corner cases to investigate more, but I currently
> stop here. 
>
SRD> This seems pretty complex.  Why not just assume a)?
>
>  
>
> In this use case, I do not see a need  for a sequence number .
>
SRD> The need for a sequence number does go away if we can insure a
single handshake between each reacting and reporting node.  We don't
have a mechanism insure this using the piggyback approach.
>
>      
>
> Do you think such an approach is applicable? it will save many checks
> compared to a).
>
>  
>
> _About c):_ it is the same principle as in b) but with some periodic
>  "refresh" that may make the a) approach  still more secure. But not
> sure  it is actually needed.
>
>  
>
> So do you think the draft should  allow these different  behaviors  or
> only mandate one?
>
> Then do you think we need a sequence number for the
> OC-Supported-Features AVP?
>
SRD> As stated above, I think the requirement is that the reacting nodes
MUST have a capability exchange with all reporting nodes.  To achieve
this the reacting node SHOULD send advertisements in all requests. 
>
>  
>
>  
>
> B)      Another point also related to the OC-Supported-Features AVP
> and OC-Feature-Vector:
>
>  
>
> For example a node can use the default mechanism  and in addition
> support extensions (eg the APN or the session group examples). I would
> think extensions should be advertized by the reacting node , otherwise
> the server does not know if it can use an extension or not, and  a
> server should avoid  to send OLRs that the client will not understand
> .    
>
>  So here we may have  a set of extensions compatible with the default
> mechanism
>
>  
>
> The other example is "exclusive" or not compatible features, for
> example Traffic reduction %control  and rate control. I do not
> consider  a reporting node  will  use both with a reacting node. A
> reacting node , even if it supports both does not want to mix
>  throttling based on % traffic and throttling on rate control with the
> same reporting node. But the current  text does not say anything about
> which feature is selected .
>
> I remember that in our initial discussions, the reacting node was
> advertising its features / capabilities and the reporting node was
> selecting the ones it wants to use. Should not we come back to this
> rule? or do you consider that when we will introduce new features , we
> will introduce statements  to indicate rules on their presence in
> OC-Feature-Vector. Personnaly, I think  the advertisement  followed
>  by selection  was a good approach. Views on this?
>
SRD> I think the interactions between features should be addressed in
the extension documents.
>
>  
>
> I have  described this B part  here, as it may have some interaction
> with the  A part.
>
>  
>
> Best regards
>
>  
>
> JJacques
>
>  
>
>  
>
>  
>
>      
>
>  
>
>
>
> _______________________________________________
> DiME mailing list
> DiME@ietf.org
> https://www.ietf.org/mailman/listinfo/dime