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

Misha Zaytsev <misha.zaytsev.rus@gmail.com> Mon, 20 February 2017 09:23 UTC

Return-Path: <misha.zaytsev.rus@gmail.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 B8633120726 for <dime@ietfa.amsl.com>; Mon, 20 Feb 2017 01:23:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 U00MVc-QBDzA for <dime@ietfa.amsl.com>; Mon, 20 Feb 2017 01:23:46 -0800 (PST)
Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E8FC8128B38 for <dime@ietf.org>; Mon, 20 Feb 2017 01:23:45 -0800 (PST)
Received: by mail-lf0-x230.google.com with SMTP id b80so10019646lfe.3 for <dime@ietf.org>; Mon, 20 Feb 2017 01:23:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vvvCk8Xz2gleQ+mnJBaABqhw+4VVPJ/wDDkvQs9RIQ0=; b=BiSlnNR0H8Njg1fYrKNGvC0pD8AClWS3W33hib6A9dHoaLDiMNFjyyHsVIWOHhASMT yQB/fl141Jlq9RajbLLiyzYqFmsxvhlV8vu/fJWczqC79/BFH9U680FQTpacmcK//543 UDlm95t6higfB5kMYVemspI5G3BryLjOWzNlwBTINPqWl6rjj0OqJ2UjK8U5nDpuIhH8 Df20cyTybguMYuFhQtO35A7CE67kYdcVEiu5EBlXZuQ3yaeTqMp2cRo3w4vNs5swaA9H NIIa9Fjj8slj5YfGndp9uEgADKHwRr/G9kyUYYGxYo5JnCQf1ON41LL73sSBJjUIvhQX pOoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vvvCk8Xz2gleQ+mnJBaABqhw+4VVPJ/wDDkvQs9RIQ0=; b=Hk15Iq6R73mIgAQM2kncHelyhk8yx8wdBRb9FShJM9gpAlHcgOt2/YkZgF0nKjToM6 b2gxMqH7ViHsy3hULqWy+NlRLCN16hkvAmnVYQy9EHkcRAOicC9AoW512b0f5GnjHO2Z WudhpLxRkqQOiA5k/2scUBux2+jy+1do6rd4IiiJxQgCtuuPXAmPkr4otWLGDLO82KHd iLwAQEmHeUNzaRKDj4lcm0SCryWFBmg78VR1m7k+IiEGffilJCDrfYU5jP5HXrRlQD00 CUimCO4jUUi1JaaSR4cUXxlLrm+RhQsxTpDZebgXCzWtsjBNUtF2GnoATAfyFw4FyqR2 SDXA==
X-Gm-Message-State: AMke39kawCEXSr3nls55fGVOeYvSWtRrUddjUUEsjZtJhW7WVXH3MtNLKHuw5/bjDMAUO07Y7r0pguxfSATFCA==
X-Received: by 10.46.20.20 with SMTP id u20mr5337916ljd.61.1487582623782; Mon, 20 Feb 2017 01:23:43 -0800 (PST)
MIME-Version: 1.0
Received: by 10.25.92.1 with HTTP; Mon, 20 Feb 2017 01:23:42 -0800 (PST)
In-Reply-To: <CABPQr25UjoCehDCN7uhZKEDMYcQnDodm40US6c=dRtkRkUMBUw@mail.gmail.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> <C43C255C7106314F8D13D03FA20CFE4970038B30@wtl-exchp-1.sandvine.com> <HE1PR0701MB28578B05AAA4390541E22F54FC590@HE1PR0701MB2857.eurprd07.prod.outlook.com> <C43C255C7106314F8D13D03FA20CFE497003A6FE@wtl-exchp-1.sandvine.com> <C43C255C7106314F8D13D03FA20CFE497003F238@wtl-exchp-1.sandvine.com> <HE1PR0701MB285704FE40A25057A8921300FC5A0@HE1PR0701MB2857.eurprd07.prod.outlook.com> <CABPQr250Kj02_DvMvwjou0LqtQX5RyO6ceUVs-c_kksmQZDgDA@mail.gmail.com> <C43C255C7106314F8D13D03FA20CFE497003FA03@wtl-exchp-1.sandvine.com> <CABPQr26eMg=zgaU+J4xgc==JX+CNW=8XOUO1uLN+FBHknV7pow@mail.gmail.com> <C43C255C7106314F8D13D03FA20CFE4970041192@wtl-exchp-1.sandvine.com> <CABPQr27QoMeCZP1ZDKPzXvBx5+a1XkBMNBchb+4dsF17i+fk5g@mail.gmail.com> <C43C255C7106314F8D13D03FA20CFE497004130B@wtl-exchp-1.sandvine.com> <CABPQr260AzHA8KEgFZb2MQ5d65Q_azDwtS0KSsFh28BwCkG4Lw@mail.gmail.com> <CABPQr25UjoCehDCN7uhZKEDMYcQnDodm40US6c=dRtkRkUMBUw@mail.gmail.com>
From: Misha Zaytsev <misha.zaytsev.rus@gmail.com>
Date: Mon, 20 Feb 2017 12:23:42 +0300
Message-ID: <CABPQr25wGZHe+qcXN35YDRo=xHhGLmBUWkY_PtDeSEysdKBC=g@mail.gmail.com>
To: Yuval Lifshitz <ylifshitz@sandvine.com>
Content-Type: multipart/alternative; boundary="f403045fc172dd5fa70548f2d1ab"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dime/LeHuz02qLftFpiYsHuiKKcX5s84>
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, 20 Feb 2017 09:23:53 -0000

Hi Yuval,

Here is my version of the Subscription-Id-Extension:

8.58.  Subscription-Id-Extension AVP



The Subscription-Id-Extension AVP (AVP Code TBD7) is used to identify the
end user's subscription and is of type Grouped.  The
Subscription-Id-Extension AVP contains an included AVP holding the
subscription identifier itself.  The type of this included AVP indicates
the type of the subscription identifier. The existing identifier types are
listed in the Subscription-Id-Type AVP. For each existing identifier type
there is a separate sub-AVP corresponding to it. If a new identifier type
is required a corresponding new sub-AVP SHOULD be defined.


If a full backward compatibility with [RFC4006] is required, then
Subscription-Id
AVP MUST be used to carry out the identifier type. While
Subscription-Id-Extension
AVP MUST be used only for newly defined identifier types.


If a full backward compatibility with [RFC4006] is not required, then
Subscription-Id-Extension
AVP MAY be used to carry out the existing identifier types. In this case,
Subscription-Id-Extension AVP MAY be sent together with Subscription-Id
AVP. If Subscription-Id-Extension AVP M-bit is set, an RFC4006 credit
control server MUST reply with DIAMETER_AVP_UNSUPPORTED. RFC4006bis credit
control server SHOULD prioritize the handling of Subscription-Id-Extension
AVP over Subscription-Id AVP and ignore Subscription-Id AVP if present.

Exactly one sub-AVP MUST be included inside the Subscription-Id-Extension
AVP.



It is defined as follows (per the grouped-avp-def of [RFC6733]):



         Subscription-Id-Extension ::= < AVP Header: TBD7 >

                             [ Subscription-Id-E164 ]

                             [ Subscription-Id-IMSI ]

                             [ Subscription-Id-SIP-URI ]

                             [ Subscription-Id-NAI ]

                             [ Subscription-Id-Private ]

                            *[ AVP ]


Best regards

/Misha

2017-02-20 10:59 GMT+03:00 Misha Zaytsev <misha.zaytsev.rus@gmail.com>:

> Hi All,
>
> Please ignore this mail, it was sent by mistake! Sorry for spamming!
>
> /Misha
>
> 2017-02-20 10:58 GMT+03:00 Misha Zaytsev <misha.zaytsev.rus@gmail.com>:
>
>> Hi Yuval,
>>
>> Here is my version of the Subscription-Id-Extension:
>>
>> 8.58.  Subscription-Id-Extension AVP
>>
>>
>>
>>    The Subscription-Id-Extension AVP (AVP Code TBD7) is used to identify
>>
>>    the end user's subscription and is of type Grouped.  The
>>
>>    Subscription-Id-Extension AVP contains an included AVP holding the
>>
>>    subscription identifier itself.  The type of this included AVP
>>
>>    indicates the type of the subscription identifier. The existing
>> identifier types are listed in the Subscription-Id-Type
>>
>>    AVP.
>>
>>
>>
>> then the credit-control client SHOULD send the information in
>>
>>    the Subscription-Id AVP, in addition to or instead of the
>>
>>    Subscription-Id-Extension AVP.  If the Subscription-Id-Extension is
>> sent alongside
>>
>>    the Subscription-Id AVP, its M-bit SHOULD NOT be set. This is in
>> order
>>
>>    to preserve backward compatibility with credit-control servers that
>> support only RFC4006.
>>
>>    When a credit control server that supports both
>> Subscription-Id-Extension AVP
>>
>>    and Subscription-Id AVP receives both AVPs, it SHOULD ignore the
>> Subscription-Id AVP.
>>
>>    If the type of the identifier is not one of the types listed in the
>> Subscription-Id-Type
>>
>>    AVP, the credit-control client MAY send the Subscription-Id-Extension
>> AVP
>>
>>    with the M-bit set, causing a credit control server that supports
>>
>>    RFC4006 only, to reply with DIAMETER_AVP_UNSUPPORTED. The credit
>>
>>    control client MAY send the Subscription-Id-Extension AVP without the M-bit set,
>>
>>    in this case, an RFC4006 only credit control server, SHOULD ignore the
>>
>>    Subscription-Id-Extension AVP.
>>
>>    Exactly one AVP MUST be included inside the Subscription-Id-Extension
>>
>>    AVP.
>>
>>
>>
>>    It is defined as follows (per the grouped-avp-def of [RFC6733]):
>>
>>
>>
>>          Subscription-Id-Extension ::= < AVP Header: TBD7 >
>>
>>                              [ Subscription-Id-E164 ]
>>
>>                              [ Subscription-Id-IMSI ]
>>
>>                              [ Subscription-Id-SIP-URI ]
>>
>>                              [ Subscription-Id-NAI ]
>>
>>                              [ Subscription-Id-Private ]
>>
>>                             *[ AVP ]
>>
>>
>> 2017-02-19 14:03 GMT+03:00 Yuval Lifshitz <ylifshitz@sandvine.com>:
>>
>>> Hi Misha,
>>>
>>> The spec has to be written in backward compatible manner, but giving the
>>> implementer the freedom on whether to do that or not, would make adoption
>>> of it easier. Note that, in case of DCCA, most actual implementations are
>>> not based directly on it. They are based on 3GPP TS 32.299, which sometimes
>>> modifies the IETF spec, and may decide to treat compatibility differently
>>> (3GPP release a major revision to their spec almost every year).
>>>
>>> Anyway, would appreciate if you send over your description of the AVP.
>>>
>>>
>>>
>>> Best Regards,
>>>
>>>
>>>
>>> Yuval
>>>
>>>
>>>
>>> *From:* Misha Zaytsev [mailto:misha.zaytsev.rus@gmail.com]
>>> *Sent:* Sunday, February 19, 2017 11:38 AM
>>>
>>> *To:* Yuval Lifshitz
>>> *Cc:* Gardella, Maryse (Nokia - FR); dime@ietf.org
>>> *Subject:* Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP
>>>
>>>
>>>
>>> Hi Yuval,
>>>
>>>
>>>
>>> Thanks for the clarifications!
>>>
>>>
>>>
>>> In my head backward compatibility of CC server is a MUST - that's why I
>>> would follow the specified way.
>>>
>>> At least I would keep BC where possible with minimal efforts. In this
>>> particular case keeping BC seems natural for me.
>>>
>>>
>>>
>>> But if new spec has another intention, then you will have to consider
>>> where both legacy and future proof AVPs (carrying old and new types) may be
>>> included in the message.
>>>
>>>
>>>
>>> If you want, I could present my version of new AVP description, but I
>>> think you have all already to do it yourself :)
>>>
>>> Sometimes, I just noticed that it is useful to propose your view, since
>>> the formulations is of a matter or preference.
>>>
>>> In this case I think that only idea may be a matter of discussion (while
>>> it looks we have just come to agreement).
>>>
>>>
>>>
>>> Best regards,
>>>
>>>
>>>
>>> /Misha
>>>
>>>
>>>
>>> 2017-02-19 12:02 GMT+03:00 Yuval Lifshitz <ylifshitz@sandvine.com>:
>>>
>>> Hi Misha,
>>>
>>> If the spec says that the CC client has to send the Subscription-Id AVP
>>> for the existing types and Subscription-Id-Extension AVP for the new types,
>>> then the CC server will have to support both AVPs even if backward
>>> compatibility is not needed.
>>>
>>> Once the new spec is widely adopted, a CC server implementation could
>>> have a configuration parameter indicating that RFC4006-only CC clients are
>>> not supported anymore. In this case the Subscription-Id AVP will not be
>>> needed anymore, since the old types could be sent using the new AVP.
>>>
>>>
>>>
>>> Hope this clarify,
>>>
>>>
>>>
>>> Yuval
>>>
>>>
>>>
>>> *From:* Misha Zaytsev [mailto:misha.zaytsev.rus@gmail.com]
>>> *Sent:* Saturday, February 18, 2017 10:47 AM
>>>
>>>
>>> *To:* Yuval Lifshitz
>>> *Cc:* Gardella, Maryse (Nokia - FR); dime@ietf.org
>>> *Subject:* Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP
>>>
>>>
>>>
>>> Hi Yuval,
>>>
>>>
>>>
>>> Thanks for your comments! But could you clarify this point?
>>>
>>>
>>>
>>> *[yuval] this simplifies the spec, but make it harder to implement. We
>>> should allow implementation of client server that uses the new AVP for the
>>> old types*
>>>
>>>
>>>
>>> What is the reason behind this? Why does it make harder to implement.
>>> Why should we allow to use new AVP for old types if this new AVP is
>>> future proof (for future use)?
>>>
>>>
>>>
>>> Thanks in advance!
>>>
>>>
>>>
>>> /Misha
>>>
>>>
>>>
>>>
>>>
>>> 2017-02-17 16:20 GMT+03:00 Yuval Lifshitz <ylifshitz@sandvine.com>:
>>>
>>> *inline*
>>>
>>>
>>>
>>> *From:* Misha Zaytsev [mailto:misha.zaytsev.rus@gmail.com]
>>> *Sent:* Friday, February 17, 2017 11:13 AM
>>> *To:* Gardella, Maryse (Nokia - FR)
>>> *Cc:* Yuval Lifshitz; dime@ietf.org
>>> *Subject:* Re: [Dime] RFC4006bis - Subscription-Id-Extension AVP
>>>
>>>
>>>
>>> Hi Yuval,
>>>
>>>
>>>
>>> To be honest, I find the Subscription-ID-Extension AVP description is a
>>> bit messy and hard to understand.
>>>
>>>
>>>
>>> Let me formulate the principles I would follow when describing it:
>>>
>>>
>>>
>>> - For old types the legacy Subscription-Id AVP (with M-bit set) SHOULD
>>> be used when communicating with both RFC4006 and/or RFC4006bis server. That
>>> will ensure a backward compatibility.
>>>
>>> *[yuval] this simplifies the spec, but make it harder to implement. We
>>> should allow implementation of client server that uses the new AVP for the
>>> old types*
>>>
>>>
>>>
>>> - For new types the newly defined Subscription-Id-Extension AVP (with
>>> M-bit set) SHOULD be used as a future proof one.
>>>
>>> Thus, only RFC4006bis server will handle this AVP, while the legacy one
>>> will reply with AVP_UNSUPPORTED answer.
>>>
>>> *[yuval] agree*
>>>
>>>
>>>
>>>
>>>
>>> All in all, future proof AVP - for future use, the legacy AVP - to keep
>>> BC.
>>>
>>> This interpretation will avoid any "playing" with M-bit and exclude
>>> potential new and legacy AVPs combinations from consideration.
>>>
>>> *[yuval] same comment as above – this makes it easier to implement*
>>>
>>>
>>>
>>> /Misha
>>>
>>>
>>>
>>>
>>>
>>> 2017-02-16 21:24 GMT+03:00 Gardella, Maryse (Nokia - FR) <
>>> maryse.gardella@nokia.com>:
>>>
>>> Hi Yuval,
>>>
>>>
>>>
>>> I think it is not needed to add text for the server side:  the text
>>> blue highlighted, this should be governed by M-bit Rule
>>>
>>>
>>>
>>> 1)      For
>>>
>>> If the Subscription-Id-Extension is sent alongside
>>>
>>>    the Subscription-Id AVP, its M-bit SHOULD NOT be set.
>>>
>>>       Is it clear that only the Subscription-Id-Extension should not
>>> have the M-bit set?
>>>
>>>
>>>
>>> 2) For new Types my proposal was to always have the M-bit set (I am not
>>> sure we can have scenario with new subscription types which can be handled
>>> by RFC4006 servers)
>>>
>>>
>>>
>>> If the type of the identifier is not one of the types listed in the
>>> Subscription-Id-Type
>>>
>>>    AVP, the credit-control client MAY send the Subscription-Id-Extension
>>> AVP
>>>
>>>    with the M-bit set, causing a credit control server that supports
>>>
>>>    RFC4006 only, to reply with DIAMETER_AVP_UNSUPPORTED. The credit
>>>
>>>    control client MAY send the Subscription-Id-Extension AVP without the M-bit set,
>>>
>>>    in this case, an RFC4006 only credit control server, SHOULD ignore the
>>>
>>>    Subscription-Id-Extension AVP.
>>>
>>>
>>>
>>>   To have:
>>>
>>>
>>>
>>> If the type of the identifier is not one of the types listed in the
>>> Subscription-Id-Type
>>>
>>>    AVP, the credit-control client SHOULD send the
>>> Subscription-Id-Extension AVP
>>>
>>>    with the M-bit set.
>>>
>>>
>>>
>>> 3) I also have an issue with:
>>>
>>>
>>>
>>> Exactly one AVP MUST be included inside the Subscription-Id-Extension
>>>
>>>    AVP.
>>>
>>>   And this is a more general comment to the text: there may be multiple
>>>  *[ Subscription-Id ], therefore more than one AVP can be present in
>>> Subscription-Id-Extension
>>>
>>>
>>>
>>>
>>>
>>> Thanks
>>>
>>> Maryse
>>>
>>>
>>>
>>> *From:* Yuval Lifshitz [mailto:ylifshitz@sandvine.com]
>>> *Sent:* jeudi 16 février 2017 17:41
>>>
>>> *To:* Gardella, Maryse (Nokia - FR) <maryse.gardella@nokia.com>; Misha
>>> Zaytsev <misha.zaytsev.rus@gmail.com>
>>> *Cc:* dime@ietf.org; Yuval Lifshitz <ylifshitz@sandvine.com>
>>> *Subject:* RE: [Dime] RFC4006bis - Subscription-Id-Extension AVP
>>>
>>>
>>>
>>> Any comment on the text below?
>>>
>>> If none, I’ll just move ahead with the changes.
>>>
>>>
>>>
>>> *From:* Yuval Lifshitz
>>> *Sent:* Monday, February 13, 2017 9:03 PM
>>> *To:* Gardella, Maryse (Nokia - FR); Misha Zaytsev
>>> *Cc:* dime@ietf.org; Yuval Lifshitz
>>> *Subject:* RE: [Dime] RFC4006bis - Subscription-Id-Extension AVP
>>>
>>>
>>>
>>> The clarification makes sense. Hopefully the text didn’t became too
>>> cumbersome - please let me know if you think I should remove any of the
>>> text.
>>>
>>> Following modified text includes clarifications on the topic of the
>>> M-bit as well as sending multiple AVPs.
>>>
>>>
>>>
>>> 8.58.  Subscription-Id-Extension AVP
>>>
>>>
>>>
>>>    The Subscription-Id-Extension AVP (AVP Code TBD7) is used to identify
>>>
>>>    the end user's subscription and is of type Grouped.  The
>>>
>>>    Subscription-Id-Extension AVP contains an included AVP holding the
>>>
>>>    subscription identifier itself.  The type of this included AVP
>>>
>>>    indicates the type of the subscription identifier.  If the type of
>>>
>>>    the identifier is one of the types listed in the Subscription-Id-Type
>>>
>>>    AVP, then the credit-control client SHOULD send the information in
>>>
>>>    the Subscription-Id AVP, in addition to or instead of the
>>>
>>>    Subscription-Id-Extension AVP.  If the Subscription-Id-Extension is
>>> sent alongside
>>>
>>>    the Subscription-Id AVP, its M-bit SHOULD NOT be set. This is in
>>> order
>>>
>>>    to preserve backward compatibility with credit-control servers that
>>> support only RFC4006.
>>>
>>>    When a credit control server that supports both
>>> Subscription-Id-Extension AVP
>>>
>>>    and Subscription-Id AVP receives both AVPs, it SHOULD ignore the
>>> Subscription-Id AVP.
>>>
>>>    If the type of the identifier is not one of the types listed in the
>>> Subscription-Id-Type
>>>
>>>    AVP, the credit-control client MAY send the Subscription-Id-Extension
>>> AVP
>>>
>>>    with the M-bit set, causing a credit control server that supports
>>>
>>>    RFC4006 only, to reply with DIAMETER_AVP_UNSUPPORTED. The credit
>>>
>>>    control client MAY send the Subscription-Id-Extension AVP without the M-bit set,
>>>
>>>    in this case, an RFC4006 only credit control server, SHOULD ignore the
>>>
>>>    Subscription-Id-Extension AVP.
>>>
>>>    Exactly one AVP MUST be included inside the Subscription-Id-Extension
>>>
>>>    AVP.
>>>
>>>
>>>
>>>    It is defined as follows (per the grouped-avp-def of [RFC6733]):
>>>
>>>
>>>
>>>          Subscription-Id-Extension ::= < AVP Header: TBD7 >
>>>
>>>                              [ Subscription-Id-E164 ]
>>>
>>>                              [ Subscription-Id-IMSI ]
>>>
>>>                              [ Subscription-Id-SIP-URI ]
>>>
>>>                              [ Subscription-Id-NAI ]
>>>
>>>                              [ Subscription-Id-Private ]
>>>
>>>                             *[ AVP ]
>>>
>>>
>>>
>>>
>>>
>>> *From:* Gardella, Maryse (Nokia - FR) [mailto:maryse.gardella@nokia.com
>>> <maryse.gardella@nokia.com>]
>>> *Sent:* Monday, February 13, 2017 7:19 PM
>>> *To:* Yuval Lifshitz; Misha Zaytsev
>>> *Cc:* dime@ietf.org
>>> *Subject:* RE: [Dime] RFC4006bis - Subscription-Id-Extension AVP
>>>
>>>
>>>
>>> Hi Yuval,
>>>
>>>
>>>
>>> I now realize the problem I have with the behavior for the RFC4006bis CC
>>> server, is more due to missing statements on the RFC4006bis CC client side
>>> (e.g. to allow this “robustness principle”).
>>>
>>> May be adding a clarification that when only old type(s) are needed to
>>> be sent, the CC client should send both: multiple Subscription-Id AVPs and
>>> corresponding multiple entries of Subscription-Id-Extension AVP, so that
>>> the RFC4006bis CC sever can decide to consider Subscription-Id-Extension
>>> AVP only when both are received. Do you think this could be added although
>>> it looks a bit heavy?
>>>
>>>
>>>
>>> BR
>>>
>>> Maryse
>>>
>>>
>>>
>>>
>>>
>>> *From:* Yuval Lifshitz [mailto:ylifshitz@sandvine.com
>>> <ylifshitz@sandvine.com>]
>>> *Sent:* dimanche 12 février 2017 08:19
>>> *To:* Gardella, Maryse (Nokia - FR) <maryse.gardella@nokia.com>; Misha
>>> Zaytsev <misha.zaytsev.rus@gmail.com>
>>> *Cc:* dime@ietf.org; Yuval Lifshitz <ylifshitz@sandvine.com>
>>> *Subject:* RE: [Dime] RFC4006bis - Subscription-Id-Extension AVP
>>>
>>>
>>>
>>> *inline*
>>>
>>>
>>>
>>> *From:* Gardella, Maryse (Nokia - FR) [mailto:maryse.gardella@nokia.com
>>> <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
>>> <ylifshitz@sandvine.com>]
>>> *Sent:* lundi 6 février 2017 21:31
>>> *To:* Misha Zaytsev <misha.zaytsev.rus@gmail.com>
>>> *Cc:* Gardella, Maryse (Nokia - FR) <maryse.gardella@nokia.com>;
>>> dime@ietf.org; Yuval Lifshitz <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
>>> <misha.zaytsev.rus@gmail.com>]
>>> *Sent:* Monday, February 06, 2017 9:36 PM
>>> *To:* Yuval Lifshitz
>>> *Cc:* Gardella, Maryse (Nokia - FR); 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>:
>>>
>>> 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>:
>>>
>>> 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/rf
>>> c4006bis/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>:
>>>
>>> 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/dim
>>> e/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]
>>> Sent: Saturday, January 28, 2017 11:07 PM
>>> To: Yuval Lifshitz
>>> Cc: Gardella, Maryse (Nokia - FR); 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>:
>>> 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]
>>> Sent: Tuesday, January 24, 2017 5:25 PM
>>> To: Yuval Lifshitz; 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] On Behalf Of Yuval Lifshitz
>>> Sent: vendredi 13 janvier 2017 15:24
>>> To: 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
>>> https://www.ietf.org/mailman/listinfo/dime
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>