Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP

Yuval Lifshitz <ylifshitz@sandvine.com> Sun, 12 February 2017 07:19 UTC

Return-Path: <ylifshitz@sandvine.com>
X-Original-To: dime@ietfa.amsl.com
Delivered-To: dime@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B977C1293E8 for <dime@ietfa.amsl.com>; Sat, 11 Feb 2017 23:19:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.255
X-Spam-Level:
X-Spam-Status: No, score=-1.255 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=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 ed5_RUb0lxOE for <dime@ietfa.amsl.com>; Sat, 11 Feb 2017 23:19:22 -0800 (PST)
Received: from mail1.sandvine.com (Mail1.sandvine.com [64.7.137.134]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B83BC12009C for <dime@ietf.org>; Sat, 11 Feb 2017 23:19:21 -0800 (PST)
Received: from WTL-EXCHP-1.sandvine.com ([fe80::ac6b:cc1e:f2ff:93aa]) by wtl-exchp-2.sandvine.com ([::1]) with mapi id 14.03.0319.002; Sun, 12 Feb 2017 02:19:19 -0500
From: Yuval Lifshitz <ylifshitz@sandvine.com>
To: "Gardella, Maryse (Nokia - FR)" <maryse.gardella@nokia.com>, Misha Zaytsev <misha.zaytsev.rus@gmail.com>
Thread-Topic: [Dime] RFC4006bis - Subscription-Id-Extension AVP
Thread-Index: AdJtpzBPVPEgVuSXSxiP12VbbHIMngFfVP8wAO+8a8AAvDx6gAALc80gACEGUwAAEr8egABVjdSAASyr84AACTuYcABI2ngAALbNnfA=
Date: Sun, 12 Feb 2017 07:19:18 +0000
Message-ID: <C43C255C7106314F8D13D03FA20CFE4970038B30@wtl-exchp-1.sandvine.com>
References: <C43C255C7106314F8D13D03FA20CFE497000AF59@wtl-exchp-1.sandvine.com> <HE1PR0701MB28573F830861577D13DBC916FC750@HE1PR0701MB2857.eurprd07.prod.outlook.com> <C43C255C7106314F8D13D03FA20CFE497002AC18@wtl-exchp-1.sandvine.com> <CABPQr243oqJxrC52+FAJUaLv9K2aQEuO0sD8ouD49rr5kXR4xQ@mail.gmail.com> <C43C255C7106314F8D13D03FA20CFE497002D184@wtl-exchp-1.sandvine.com> <CABPQr24Y79vFg=ZW=xAPDi5NgBah2Mk2=ai0GzRg-zA5Z75-Gw@mail.gmail.com> <C43C255C7106314F8D13D03FA20CFE497002DB6B@wtl-exchp-1.sandvine.com> <CABPQr25sj_G-PN6aowSrbGfeYs_Wa-tNtmzsndXA+=Ca4U4qxw@mail.gmail.com> <CABPQr27D=Bga1by0c2+B=x5ZaE_a20GhL=R9h=QYagQE_+Nqqg@mail.gmail.com> <C43C255C7106314F8D13D03FA20CFE49700334DE@wtl-exchp-1.sandvine.com> <HE1PR0701MB2857C1123305ABCF88BD295BFC420@HE1PR0701MB2857.eurprd07.prod.outlook.com>
In-Reply-To: <HE1PR0701MB2857C1123305ABCF88BD295BFC420@HE1PR0701MB2857.eurprd07.prod.outlook.com>
Accept-Language: en-CA, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [192.168.196.10]
x-c2processedorg: b2f06e69-072f-40ee-90c5-80a34e700794
Content-Type: multipart/alternative; boundary="_000_C43C255C7106314F8D13D03FA20CFE4970038B30wtlexchp1sandvi_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dime/EzU41CHMeZ-UHNU_2Fsgb1-DT78>
Cc: "dime@ietf.org" <dime@ietf.org>
Subject: Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP
X-BeenThere: dime@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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: Sun, 12 Feb 2017 07:19:25 -0000

inline

From: Gardella, Maryse (Nokia - FR) [mailto:maryse.gardella@nokia.com]
Sent: Wednesday, February 08, 2017 12:47 PM
To: Yuval Lifshitz; Misha Zaytsev
Cc: dime@ietf.org
Subject: RE: [Dime] RFC4006bis - Subscription-Id-Extension AVP

Hi Yuval,

With the new Subscription-Id-Extension AVP to be marked with the M-bit as a “may”, the way I understand it :
 -  For old types the CC Client would send both Subscription-Id and Subscription-Id-Extension AVPs: Subscription-Id with M-bit set and Subscription-Id-Extension with M-bit cleared, however the behavior for the RFC4006bis CC server when Subscription-Id-Extension is supported is unclear to me)
[yuval] will add following clarification: “RFC4006bis CC server receiving both Subscription-Id AVP and Subscription-Id-Extension AVP SHOULD ignore the Subscription-Id AVP.” IMO, this would be along the lines if the “robustness principal”

-  For new types the CC Client would send Subscription-Id-Extension AVP with M-bit set, so that RFC4006 and RFC4006bis server can reject by DIAMETER_AVP_UNSUPPORTED (5001) if not supported, would be the best approach.
[yuval] agree, will add clarification to the text

Maryse


From: Yuval Lifshitz [mailto:ylifshitz@sandvine.com]
Sent: lundi 6 février 2017 21:31
To: Misha Zaytsev <misha.zaytsev.rus@gmail.com<mailto:misha.zaytsev.rus@gmail.com>>
Cc: Gardella, Maryse (Nokia - FR) <maryse.gardella@nokia.com<mailto:maryse.gardella@nokia.com>>; dime@ietf.org<mailto:dime@ietf.org>; Yuval Lifshitz <ylifshitz@sandvine.com<mailto:ylifshitz@sandvine.com>>
Subject: RE: [Dime] RFC4006bis - Subscription-Id-Extension AVP

Hi Misha,
RFC6733 gives the “{}” notation just as an example for a required AVP, it does not say it is the only trigger for the missing AVP error. There are AVPs that are marked as optional in ABNF, but are actually required in some cases (e.g. Termination-Cause AVP). Also, note that RFC4006 says:
The Subscription-Id AVP SHOULD be included to identify the
   end user in the credit-control server.

Regardless of that, since it is not strictly defined in the spec I can rephrase my answer as:

“

In a case of a new type of subscription, not covered in RFC4006, the credit-control may send the new AVP with the M-bit set, causing any old server to reply with DIAMETER_AVP_UNSUPPORTED (5001). It may also send the new AVP without the M-bit set, here the server would just ignore the AVP, or, in the case that this AVP is required for its operation, reply with an error message (e.g. DIAMETER_MISSING_AVP)
”

So far, I didn’t think the above clarification needs to be added to the spec, but I can add that if you and Maryse feel that it would make it easier to understand when to set the M-bit for these AVPs.

Yuval

From: Misha Zaytsev [mailto:misha.zaytsev.rus@gmail.com]
Sent: Monday, February 06, 2017 9:36 PM
To: Yuval Lifshitz
Cc: Gardella, Maryse (Nokia - FR); dime@ietf.org<mailto:dime@ietf.org>
Subject: Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP

Hi Yuval,

Just wondering what will be the outcome of this discussion?
Have you concluded how it would be better to handle new future proof AVPs?
If yes, are you going to update the draft with this info included?

Thanks in advance!

/Misha


2017-01-31 23:07 GMT+03:00 Misha Zaytsev <misha.zaytsev.rus@gmail.com<mailto:misha.zaytsev.rus@gmail.com>>:
Hi Yuval,

I almost agree with your explanations that you sent to Maryse, except one bullet:

In a case of a new type of subscription, not covered in RFC4006, it may send the new AVP with the M-bit set, causing any old server to reply with DIAMETER_AVP_UNSUPPORTED (5001). It may also send the new AVP without the M-bit set, here the server would just ignore the AVP, but would probably reply DIAMETER_MISSING_AVP (5005) as it will not have any subscription ID

RFC4006 server should not reply with DIAMETER_MISSING_AVP (5005) result code according to RFC6733, since Subscription-Id AVP is not marked as required in CCR definition:


      A received command that is missing AVPs that are defined as

      required in the commands CCF; examples are AVPs indicated as

      {AVP}.  The receiver issues an answer with the Result-Code set to

      DIAMETER_MISSING_AVP and creates an AVP with the AVP Code and

      other fields set as expected in the missing AVP.  The created AVP

      is then added to the Failed-AVP AVP.



The remaining part is according to the RFC6733 from my point of view.



All in all, to set M-bit or not, depends on what reaction you want to see from RFC4006 server.



/Misha



2017-01-30 11:29 GMT+03:00 Yuval Lifshitz <ylifshitz@sandvine.com<mailto:ylifshitz@sandvine.com>>:
Hi Misha,
We didn’t consider the option of using a bitmap, but I’m open to this idea. IMO, it would be more difficult managing the addition of new values in the case of a bitmap than in the case of adding new AVPs.  OTOH, adding a bitmap will be less changes to the RFC.
In our proposal the AVPs are marked as optional, and the M-bit *may* be set. I sent an explanation to Maryse on the M-bit – please see below, and let me know if you have comments on that.
As ABNF cannot show the concept of “one and only one AVP” I will update the text to state that explicitly (added: https://github.com/lbertz02/rfc4006bis/issues/18)

Yuval

From: Misha Zaytsev [mailto:misha.zaytsev.rus@gmail.com<mailto:misha.zaytsev.rus@gmail.com>]
Sent: Sunday, January 29, 2017 8:21 PM

To: Yuval Lifshitz
Cc: Gardella, Maryse (Nokia - FR); dime@ietf.org<mailto:dime@ietf.org>
Subject: Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP

Hi Yuval,

Thanks a lot for your clarifications! Now it seems I see your concern.

As I can see the problem is that there is no possibility to extend the defined AVPs of type Enumerated in a backward compatible way. For me it means that all enumerate AVPs defined in RFC4006 (listed in section 12) is a matter of your investigation. Not the grouped ones, but the ones that are used as indicators in these grouped AVPs.

Following the recommendations in https://tools.ietf.org/html/rfc7423#section-5.6 that you pointed out, I think bitmask based AVPs may be a way out in the current situation. Such AVP will be marked as mandatory. While only one bit of this bitmask MUST be set.

 Subscription-Id-Extension ::= < AVP Header: XXX >
                             [ Subscription-Id-Type-Indicator ]
                             [Subscrition-Id-Data]

Have you considered this option? Or probably I'm missing something..

However, if we follow the way you are proposing with several mutually exclusive AVPs, then these AVPs should be marked as not mandatory. While in the description of the appropriate grouped AVP it should be stated that only one of these AVPs MUST be present.

/Misha


2017-01-29 11:29 GMT+03:00 Yuval Lifshitz <ylifshitz@sandvine.com<mailto:ylifshitz@sandvine.com>>:
Hi Misha,
There is nothing “well known” in these issues and I’ll be happy to clarify!

(1) During IETF96 a question came regarding the support of the IMEI user equipment type – currently not one of the enumerated types of the User-Equipment-Info-Type AVP (IMEISV is there but not IMEI). As a result of this discussion, and due to the enum extension limitations (see here: https://tools.ietf.org/html/rfc7423#section-5.6), we were asked to do an analysis on which enumerated AVPs requires extensibility. The results were captured in the following ticket: https://trac.ietf.org/trac/dime/ticket/95
For better clarity I’m posting here the actual analysis of AVPs. Some of them didn’t need to be extensible (in our view), some of them were already extensible and the rest were added to the ticket:

                     AVP  Section
   Attribute Name    Code Defined Data Type
   -----------------------------------------
   CC-Money          413  8.22   Grouped    - not extensible, does not need to be
   Cost-Information  423  8.7    Grouped    - not extensible, does not need to be
   Final-Unit-       430  8.34   Grouped    - not extensible, will be replaced by QoS-Final-Unit-Indication that will be extensible
     Indication
   Granted-Service-  431  8.17   Grouped    - extensible
     Unit
   G-S-U-Pool-       457  8.30   Grouped    - not extensible, does not need to be
     Reference
   Multiple-Services 456  8.16   Grouped    - extensible
    -Credit-Control
   Redirect-Server   434  8.37   Grouped    - not extensible, has a problem similar to equipment type as it contains an enumerated type/value AVPs
   Requested-Service 437  8.18   Grouped    - extensible
     -Unit
   Service-Parameter 440  8.43   Grouped    - not extensible, does not need to be
     -Info
   Subscription-Id   443  8.46   Grouped    - not extensible, has a problem similar to equipment type as it contains an enumerated type/value AVPs
   Unit-Value        445  8.8    Grouped    - not extensible, does not need to be
   Used-Service-Unit 446  8.19   Grouped    - extensible
   User-Equipment    458  8.49   Grouped    - not extensible, will be replaced by an AVP that will be extensible
     -Info

Would appreciate your comments if you think differently about any of the AVPs above, or that we have missed other AVPs that needs to.

(2) E.g adding new subscription ID.

Unlike Subscription-Id-Type AVP which cannot be extended to a new type without a new application ID, a new AVP being proposed in RFC4006bis is:

  Subscription-Id-Extension ::= < AVP Header: XXX >
                             [ Subscription-Id-E164 ]
                             [ Subscription-Id-IMSI ]
                             [ Subscription-Id-SIP-URI ]
                             [ Subscription-Id-NAI ]
                             [ Subscription-Id-Private ]
                           *[ AVP ]

So, in order to add a new type (post RFC4006bis), you would need to submit draft with an AVP definition in it to could be added to the Subscription-Id-Extension as it is extensible.
This new draft would be compliant with RFC4006bis and will therefore not require a new application ID.

Best Regards,

Yuval


From: Misha Zaytsev [mailto:misha.zaytsev.rus@gmail.com<mailto:misha.zaytsev.rus@gmail.com>]
Sent: Saturday, January 28, 2017 11:07 PM
To: Yuval Lifshitz
Cc: Gardella, Maryse (Nokia - FR); dime@ietf.org<mailto:dime@ietf.org>
Subject: Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP

Hi Yuval,

May I ask you several questions to be able to understand the whole situation:

1. Why are you proposing to add new extendable AVPs only for some of the AVPs listed in section 12?
I think the same concern is applicable for all these AVPs, isn't?

2. Could you clarify what official procedure to assign new available values is meant here?
It is not working w/o defining new Application-ID as you mentioned above?


12.16.  Subscription-Id-Type AVP

   As defined in Section 8.47, the Subscription-Id-Type AVP includes
   Enumerated type values 0 - 4.  IANA has created and is maintaining a
   namespace for this AVP.  All remaining values are available for
   assignment by a Designated Expert [RFC2434].

Excuse me in advance if what I'm asking about are well-known things.
But still please clarify them at least for me...

Thanks a lot in advance!

/Misha

2017-01-25 11:29 GMT+03:00 Yuval Lifshitz <ylifshitz@sandvine.com<mailto:ylifshitz@sandvine.com>>:
Hi Maryse,
The idea is the following:
•         If the CC client want to work with RFC4006bis only CC server, and want to make sure that the subscription ID is understood by the server, it may set the M-bit. Any RFC4006 server will reply with DIAMETER_AVP_UNSUPPORTED (5001)
•         If the CC client is not sure whether the CC servers are RFC4006 or RFC4006bis, or have a mix of servers, and want to work with both, it may not set the M-bit
o   In this case it would send both AVPs for the old types, so that the new AVP will be ignored by the RFC4006 servers
o   In a case of a new type of subscription, not covered in RFC4006, it may send the new AVP with the M-bit set, causing any old server to reply with DIAMETER_AVP_UNSUPPORTED (5001). It may also send the new AVP without the M-bit set, here the server would just ignore the AVP, but would probably reply DIAMETER_MISSING_AVP (5005) as it will not have any subscription ID

Yuval

From: Gardella, Maryse (Nokia - FR) [mailto:maryse.gardella@nokia.com<mailto:maryse.gardella@nokia.com>]
Sent: Tuesday, January 24, 2017 5:25 PM
To: Yuval Lifshitz; dime@ietf.org<mailto:dime@ietf.org>
Subject: RE: RFC4006bis - Subscription-Id-Extension AVP

Hi Yuval,

Thanks for continuing on this.
I am not sure to understand the difference between “may” and “must”, since with  “May” we can end having the M-bit set by the RFC4006bis CC client.
I guess from the protocol’s perspective “may” and “must” makes no difference right?

BR
Maryse

From: DiME [mailto:dime-bounces@ietf.org<mailto:dime-bounces@ietf.org>] On Behalf Of Yuval Lifshitz
Sent: vendredi 13 janvier 2017 15:24
To: dime@ietf.org<mailto:dime@ietf.org>
Subject: [ALU] [Dime] RFC4006bis - Subscription-Id-Extension AVP

Hi All,
As part of the RFC4006bis work there are several AVPs that we plan on making future proof (See also: https://trac.ietf.org/trac/dime/ticket/95). For example, Subscription-Id AVP cannot be extended to new types without changing the enumeration in Subscription-Id-Type AVP, which in turn requires a new application ID (something we really want to avoid).
To solve this issue we propose adding a new, extendable AVP. In this example:

Subscription-Id-Extension ::= < AVP Header: XXX >
                             [ Subscription-Id-E164 ]
                             [ Subscription-Id-IMSI ]
                             [ Subscription-Id-SIP-URI ]
                             [ Subscription-Id-NAI ]
                             [ Subscription-Id-Private ]
                            *[ AVP ]

When looking into Subscription-ID-Extension AVP  header flags I ran into a problem. The existing Subscription-ID AVP (and its sub-AVPs) are all marked with the M-bit as a “must”, probably because they hold the subscriber’s name which is critical information.
However, in order for a RFC4006bis CC client to be able to communicate with an RFC4006 CC-server, they will have to be marked as “may”.

Would appreciate your point of view on that topic?

Best Regards,

Yuval


_______________________________________________
DiME mailing list
DiME@ietf.org<mailto:DiME@ietf.org>
https://www.ietf.org/mailman/listinfo/dime