Re: [Dime] Proposed REQ 35 Text

Andrew Booth <lists.abooth@gmail.com> Thu, 28 March 2013 19:18 UTC

Return-Path: <lists.abooth@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 60E1121F9049 for <dime@ietfa.amsl.com>; Thu, 28 Mar 2013 12:18:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.599
X-Spam-Level:
X-Spam-Status: No, score=-4.599 tagged_above=-999 required=5 tests=[AWL=1.000, BAYES_00=-2.599, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bIbmwC2AJZdh for <dime@ietfa.amsl.com>; Thu, 28 Mar 2013 12:18:55 -0700 (PDT)
Received: from mail-qa0-f50.google.com (mail-qa0-f50.google.com [209.85.216.50]) by ietfa.amsl.com (Postfix) with ESMTP id 00FF821F9042 for <dime@ietf.org>; Thu, 28 Mar 2013 12:18:54 -0700 (PDT)
Received: by mail-qa0-f50.google.com with SMTP id bv4so72835qab.16 for <dime@ietf.org>; Thu, 28 Mar 2013 12:18:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:content-transfer-encoding; bh=lWeYaEj8x4kMhgxMQhK/HXe5d3wZ2/QzrsCUp9VDQOA=; b=p6rbQCbGdQ0S3NMadehe8xtSWjl25fvQtJYwyOUr6DJlD5jpN+02nKDJ2zbrBkrpmC G+KnK30wCGChg/jtrazSwF+mC8CvZ7XK9mSWZP7vTM6Yb1X8NfN8g9UvZBL6NlWIBqK3 hKQb9tpSpxvCyM7QObBunq5POxCtbUfkqtB3bMHAAEKUdPaMy8qPslUjqXQYXsgzyH5Z rPDy+KL8qlUCriTi6HPU1BsiLk5jgVVo3LK6HCiaL798ea+IX6r3VmHvf0qjJ5mC7B+8 0F8KRD2jfwTpDnXn2sCrvlb7BH+oL9wXXm4ox1PZ9rqk2TOMnqdWt2+jgOgzEkg21ifG 8iqg==
MIME-Version: 1.0
X-Received: by 10.224.117.72 with SMTP id p8mr627345qaq.5.1364498334418; Thu, 28 Mar 2013 12:18:54 -0700 (PDT)
Received: by 10.49.63.163 with HTTP; Thu, 28 Mar 2013 12:18:54 -0700 (PDT)
In-Reply-To: <A5D93B46-679E-4DAA-A9FB-0766E0E136A7@nostrum.com>
References: <E11F7859-5062-4FF4-A731-4E5B6E2826C9@nostrum.com> <CAFMnvyLm+V_LZ2wivW__Si0Yn_XgNJRYUk6w32NWto5T5hkp7g@mail.gmail.com> <A5D93B46-679E-4DAA-A9FB-0766E0E136A7@nostrum.com>
Date: Thu, 28 Mar 2013 15:18:54 -0400
Message-ID: <CAFMnvy+jGrxFMji3azHwZ60wahEBOkaEXGjhMPSmnq4jdU6Q1g@mail.gmail.com>
From: Andrew Booth <lists.abooth@gmail.com>
To: Ben Campbell <ben@nostrum.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: "dime@ietf.org" <dime@ietf.org>
Subject: Re: [Dime] Proposed REQ 35 Text
X-BeenThere: dime@ietf.org
X-Mailman-Version: 2.1.12
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, 28 Mar 2013 19:18:56 -0000

Hi Ben,

Thanks for the comments and clarifications.

I'm still a little uncomfortable with the idea that a MUST is just a
strong SHOULD, but I'll extrapolate from your comments: no matter
whether we put SHOULD or MUST, the working group can override it
anyway, so maybe it doesn't make much difference as long as the intent
is clear.

So the remaining comment is one more try at improved clarity.

I'm not sure that a MUST with an open ended limitation (without any
guidance on why that limitation is there) is any clearer than an
unqualified SHOULD.
So, if the idea is that the working groups work isn't done until REQ
35 is solved, but that some parts of the solution might require extra
work (e2e or some other idea), or could maybe even be deferred,
perhaps it is clearer to simply make that objective explicit?

For your consideration:

   ALT REQ 35:  The mechanism SHOULD provide a method for exchanging
            overload and load information between elements that are
            connected by intermediaries that do not support the
            mechanism.
            If a mechanism cannot immediately meet this requirement for
            technical reasons, or because the full solution depends on an
            unfinished prerequisite work, then the mechanism MUST
            describe its limitations related to this requirement and
the technical
            reasons why it was unable to meet this requirement fully.
            If the mechanism has substantial limitations with respect
to this requirement,
            it should convincingly describes why it should be possible
for the mechanism
            to operate in parallel with some future mechanism that completely
            meets this requirement, and the remaining work SHOULD be scheduled.

Thoughts?
Andrew


On Wed, Mar 27, 2013 at 2:13 PM, Ben Campbell <ben@nostrum.com> wrote:
> Hi. Comments inline:
>
> On Mar 27, 2013, at 10:01 AM, Andrew Booth <lists.abooth@gmail.com> wrote:
>
>> Hi Ben,
>>
>> If we don't find a solution that supports REQ 35, I would prefer to
>> have a 95% solution now than scrap such a solution because it fails
>> the MUST of REQ 35.  Hence, I prefer that REQ 35 be a SHOULD.
>>
>
> I don't think that means we have to scrap a 95% solution. (Unless we have an alternate 100% solution, in which case a SHOULD and MUST would would have the same effect.)
>
> My personal opinion would be that a MUST means the working group's job isn't done until it either meets the requirement, or determines that the requirement was not reasonably feasible. The former could be accomplished with a 100% solution, or a 95% solution with an additional mechanism designed to solve just this requirement. In the same circumstances, a SHOULD would make it easier to just take the 95% solution and stop.
>
>> There is nothing to prevent multiple different implementations from
>> being standardized (well, other than the difficulty getting WG
>> cycles).  I don't see that all of them need to have full support for
>> REQ 35.  That opens the door for other approaches to be proposed once
>> end-to-end security in Diameter is standardized.
>
> Agreed. The "not reasonably feasible" bit in my previous comment could also mean "not reasonably feasible _now_". As a purely hypothetical example, if the security issues turn out to be the main thing to block Req 34, iIt might make sense to make sure the chosen solution doesn't prevent Req 35 from being solved in some future update once the e2e security work is complete, or at least stabile.
>
>>
>> There is also nothing that prevents interested parties that want
>> support for REQ 35 to propose a solution that supports it, and to
>> defend that solution compared to others.
>>
>> If I recall correctly, the desire to make this a MUST came from an
>> implementer that wanted to be able to signal handsets about the
>> congestion.  Is that the motivating statement?  If so, is it worth
>> taking a closer look at the motivating case to see what information
>> they really require (is it full information? or will partial
>> information do?), and whether it should have this much impact on the
>> potential solutions?
>> At first glance, signaling handsets about congestion sounds like a
>> (potentially useful) optimization, but does not sound to me as
>> important as protecting core network resources (by having some working
>> implementation of overload control).  Maybe I'm misunderstanding the
>> motivating case or it's importance, I'm willing to be convinced.
>
> I don't think that's the main case. The use case I think the most people care about is the situation where you have a non-supporting agent between islands of overload-control. For example, an IPX provider sitting between operators doesn't support overload control, but the operators still need to share overload information.
>
> There are certainly people that care about the use case you describe--but I think any solution to that use case would also solve the one you mention. It's the special case where _none_ of the agents support overload control.
>
>
> [...]
>
>>>
>>>
>>> Here's a proposed alternative for changing it to a MUST:
>>>
>>> The mechanism MUST provide a method for exchanging overload and load
>>> information between elements that are connected by intermediaries that do
>>> not support the mechanism. The mechanism MAY place limitations on the nature
>>> of the non-supporting intermediaries that may be traversed.
>>
>> Is there any limit to the limitations?  Currently loophole: a
>> mechanism can limit the non-supporting intermediaries to the empty
>> set, and we're back to REQ 35 being a SHOULD.
>> Is this extra text intended to allow for a new application id (hence
>> limiting proxies that have not been upgraded to support the
>> mechanism)?
>
> I think the "limitation" is an assumption of reasonable behavior on the part of the working group :-) This isn't a contract; it's a general agreement as to what we are working on.  Creating limitations rule out all possible intermediaries would not fit my idea of a reasonable interpretation. In general, making "letter of the rule" interpretations that don't fit the clear "spirit of the rule" doesn't seem like reasonable working group behavior.
>
> The sort of limitations we are likely to run up against are things like " can't cross a agent that does topology hiding". The reason we don't enumerate the limitations now is because we won't know what they are until we do the actual mechanism engineering. I could _hypothetically_ imagine things like "can't cross an agent that uses dynamic peer discovery" might pop up.
>
>> Is this extra text intended to allow for REQ 35 through "trusted"
>> intermediaries, hence working around the end-to-end security
>> requirement (this sounds dodgy to me)?
>
> I assume you are talking about the "nothing in this requirement..." paragraph. That's indented to show that it is intended as explanatory text, not normative text. The idea is not to allow or prohibit any particular security approach in advance, and to point out that accepting unauthenticated/unauthorized congestion information would violate the existing requirements about not adding new vulnerabilities.
>
> It's up to the working group to decide what security approach is "good enough". I personally have my doubts that simply assuming intermediaries are "trusted" is an adequate approach--but I'm happy to defer that argument for now. (I know there are strong opinions on both sides) We might end up requiring the e2e security work. We might end up with some other special-purpose authz/n solution no one has thought of yet.
>
>>
>> Thanks,
>> Andrew
>>
>>>
>>> Nothing in this requirement should be construed to relax the
>>> security-related requirements elsewhere in this document, in particular REQs
>>> 28, 30, and 31. Maliciously constructed overload information can potentially
>>> shut down a Diameter network; it's critical that a node be able to confirm
>>> that received information came unaltered from an authorized source, whether
>>> the information comes from an immediate peer or crosses an intermediary.
>>>
>