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

Yuval Lifshitz <ylifshitz@sandvine.com> Mon, 30 January 2017 08:29 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 40A5E12997F for <dime@ietfa.amsl.com>; Mon, 30 Jan 2017 00:29:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.452
X-Spam-Level:
X-Spam-Status: No, score=-4.452 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.199, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=ham 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 gVlyBMTU7_q7 for <dime@ietfa.amsl.com>; Mon, 30 Jan 2017 00:29:24 -0800 (PST)
Received: from mail1.sandvine.com (mail1.sandvine.com [64.7.137.165]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 30AD91298BA for <dime@ietf.org>; Mon, 30 Jan 2017 00:29:24 -0800 (PST)
Received: from BLR-EXCHP-2.sandvine.com (192.168.196.172) by WTL-EXCHP-3.sandvine.com (192.168.196.177) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 30 Jan 2017 03:29:22 -0500
Received: from WTL-EXCHP-1.sandvine.com ([fe80::ac6b:cc1e:f2ff:93aa]) by blr-exchp-2.sandvine.com ([::1]) with mapi id 14.03.0319.002; Mon, 30 Jan 2017 03:29:22 -0500
From: Yuval Lifshitz <ylifshitz@sandvine.com>
To: Misha Zaytsev <misha.zaytsev.rus@gmail.com>
Thread-Topic: [Dime] RFC4006bis - Subscription-Id-Extension AVP
Thread-Index: AdJtpzBPVPEgVuSXSxiP12VbbHIMngFfVP8wAO+8a8AAvDx6gAALc80gACEGUwAAEr8egA==
Date: Mon, 30 Jan 2017 08:29:21 +0000
Message-ID: <C43C255C7106314F8D13D03FA20CFE497002DB6B@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>
In-Reply-To: <CABPQr24Y79vFg=ZW=xAPDi5NgBah2Mk2=ai0GzRg-zA5Z75-Gw@mail.gmail.com>
Accept-Language: en-CA, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [192.168.142.6]
x-c2processedorg: b2f06e69-072f-40ee-90c5-80a34e700794
Content-Type: multipart/alternative; boundary="_000_C43C255C7106314F8D13D03FA20CFE497002DB6Bwtlexchp1sandvi_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dime/VpVz76rBhgbzJm5A2bcYRIeGAgo>
Cc: "dime@ietf.org" <dime@ietf.org>, "Gardella, Maryse (Nokia - FR)" <maryse.gardella@nokia.com>
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: Mon, 30 Jan 2017 08:29:26 -0000

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]
Sent: Sunday, January 29, 2017 8:21 PM
To: Yuval Lifshitz
Cc: Gardella, Maryse (Nokia - FR); 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