Re: [Dime] Fwd: New Version Notification for draft-donovan-doic-agent-cases-00.txt

"Wiehe, Ulrich (NSN - DE/Munich)" <ulrich.wiehe@nsn.com> Fri, 11 July 2014 12:03 UTC

Return-Path: <ulrich.wiehe@nsn.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 058261B2878 for <dime@ietfa.amsl.com>; Fri, 11 Jul 2014 05:03:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.901
X-Spam-Level:
X-Spam-Status: No, score=-6.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham
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 JaiO7oqMd8RK for <dime@ietfa.amsl.com>; Fri, 11 Jul 2014 05:03:26 -0700 (PDT)
Received: from demumfd001.nsn-inter.net (demumfd001.nsn-inter.net [93.183.12.32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 065AA1B2877 for <dime@ietf.org>; Fri, 11 Jul 2014 05:03:25 -0700 (PDT)
Received: from demuprx016.emea.nsn-intra.net ([10.150.129.55]) by demumfd001.nsn-inter.net (8.14.3/8.14.3) with ESMTP id s6BC3N7t008164 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Fri, 11 Jul 2014 12:03:23 GMT
Received: from DEMUHTC003.nsn-intra.net ([10.159.42.34]) by demuprx016.emea.nsn-intra.net (8.12.11.20060308/8.12.11) with ESMTP id s6BC3Kj5005807 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 11 Jul 2014 14:03:22 +0200
Received: from DEMUHTC007.nsn-intra.net (10.159.42.38) by DEMUHTC003.nsn-intra.net (10.159.42.34) with Microsoft SMTP Server (TLS) id 14.3.181.6; Fri, 11 Jul 2014 14:03:20 +0200
Received: from DEMUMBX014.nsn-intra.net ([169.254.14.37]) by DEMUHTC007.nsn-intra.net ([10.159.42.38]) with mapi id 14.03.0181.006; Fri, 11 Jul 2014 14:03:20 +0200
From: "Wiehe, Ulrich (NSN - DE/Munich)" <ulrich.wiehe@nsn.com>
To: ext Steve Donovan <srdonovan@usdonovans.com>, "dime@ietf.org" <dime@ietf.org>
Thread-Topic: [Dime] Fwd: New Version Notification for draft-donovan-doic-agent-cases-00.txt
Thread-Index: AQHPmIoin2/POQT9m0ympVT5CI4JSZuabRIw
Date: Fri, 11 Jul 2014 12:03:19 +0000
Message-ID: <5BCBA1FC2B7F0B4C9D935572D9000668151F77ED@DEMUMBX014.nsn-intra.net>
References: <20140703161711.24974.27021.idtracker@ietfa.amsl.com> <53B85695.2010208@usdonovans.com>
In-Reply-To: <53B85695.2010208@usdonovans.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.159.42.106]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-purgate-type: clean
X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de
X-purgate: clean
X-purgate: This mail is considered clean (visit http://www.eleven.de for further information)
X-purgate-size: 19250
X-purgate-ID: 151667::1405080203-000005B1-8C6F3D19/0/0
Archived-At: http://mailarchive.ietf.org/arch/msg/dime/FpfQmQXE1AC3u1OYFvr3L93MQWw
Cc: "Rauschenbach, Uwe (NSN - DE/Munich)" <uwe.rauschenbach@nsn.com>
Subject: Re: [Dime] Fwd: New Version Notification for draft-donovan-doic-agent-cases-00.txt
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: Fri, 11 Jul 2014 12:03:31 -0000

Steve,

Here are my comments:

1. Abstract 2nd sentence:
The sentence should read: "A DOIC node is a Diameter node that in a given context may act as a reporting node or a reacting node."
This is to align your definition "Any Diameter node that supports DOIC is a DOIC node" (see 1. Introduction, last paragraph) with our common understanding of the "end-to-end concept" which allows a DOIC node sitting between a supporting client and a supporting server to be transparent.

2. clause 1.1 Terminology and Abbreviations, Abating node:
The definition should read: "A reacting node that locally performs overload abatement (i.e. throttling or diversion but not delegation)."

3. lots of colons missing in clause 1.1

4. clause 1.1 Terminology and Abbreviations, Overload Abatement:
The definition should read: "...... Overload abatement actions may involve local traffic reduction, or delegation of actions towards the client (Delegation). Local traffic reduction can be achieved by either rejecting a request (Throttling) or by routing a request to a different destination (Diversion)."

5. clause 1.1 Terminology and Abbreviations, Diversion:
I propose to add the following clarification:
Diversion is specific to agents that perform server selection for realm-routed requests.

6. clause 1.1 Terminology and Abbreviations:
I propose to also define what Delegation is: 
"Delegation: Overload abatement through the delegation of action (Throttling) to a further downstream reacting node. Delegation is specific to agents that perform server selection for realm-routed requests, and is typically done when the agent detects that all available servers have requested load reduction, i.e. when receiving an answer message in response to a (not throttled) request that was forwarded to a selected server which in the answer reports an update of its overload information."

7. clause 2 Deployment Architectures
There are many more architectures and scenarios which cannot all be covered separately. I therefore propose to focus on general principles that DOIC agents must follow independent from architecture and scenario. These principles are:

A) When an agent receives a host-routed request that contains an OC-S-F AVP, it takes no DOIC-specific action, i.e. it forwards the request to the next hop without removing, modifying or inserting OC AVPs; also no DOIC specific action is performed when receiving the corresponding answer. The agent may however store OLR information received in the answer for potential later use if it supports the features associated with the OLR.

B) When an agent receives a host-routed request that does not contain an OC-S-F AVP, it performs throttling according to a previously receive host-type OLR (if any).If the request survives (or no throttling was performed because no host-type OLR matched), the agent inserts an OC-S-F AVP and sends the request to the next hop. When receiving the corresponding answer, the agent checks whether it contains an OLR update and if so replaces the stored info (if any) with the updated info. In any case the agent removes the OLR from the answer before sending it to the previous hop.

C) When an agent that is not configured to perform server selection for realm-routed requests receives a realm-routed request that contains an OC-S-F AVP, it takes no DOIC-specific action, i.e. it forwards the request to the next hop without removing, modifying or inserting OC AVPs; also no DOIC specific action is performed when receiving the corresponding answer. The agent may however store OLR information received in the answer for potential later use if it supports the features associated with the OLR.

D) When an agent that is not configured to perform server selection for realm-routed requests receives a realm-routed request that does not contain an OC-S-F AVP, it performs throttling according to a previously receive realm-type OLR (if any).If the request survives (or no throttling was performed because no realm-type OLR matched), the agent inserts an OC-S-F AVP and sends the request to the next hop. When receiving the corresponding answer, the agent checks whether it contains an OLR update and if so replaces the stored info (if any) with the updated info. In any case the agent removes the OLR from the answer before sending it to the previous hop.

E) When an agent that is configured to perform server selection for realm-routed requests receives a realm-routed request that contains an OC-S-F AVP, it performs server selection, adds the Destination-Host AVP with the value identifying the selected server to the request (this need not be done when the selected server is an immediate peer), replaces the received OC-S-F AVP with its own OC-S-F AVP in the request and forwards the request to the next hop. When receiving the corresponding answer the agent checks whether it contains an OLR update and if so replaces the stored info (if any) with the updated info, calculates an (aggregated) realm-type OLR that fits to the supported features as received in the request. In any case the agent replaces the OC-S-F in the answer with its own OC-S-F (indicating the selected algorithm), removes the OC-OLR from the answer and adds its own calculated aggregated realm-type OLR (if any) to the answer before sending it to the previous hop.

F) When an agent that is configured to perform server selection for realm-routed requests receives a realm-routed request that does not contain an OC-S-F AVP, logically a combination of case D) followed by case E) is performed.

8. clause 3. Diameter Routing, 3rd paragraph:
Should read: "In general, throttling (Section 4) is the only local abatement technique that works for host-routed requests. Diversion (Section 4) is typically not possible, since only a single TS can handle any given host-routed request."

9. clause 3. Diameter Routing, last sentence:
Should read: "Since realm-routed requests are not bound to a particular TS, it is often possible for the node that selects the server to divert a number of them to other servers that are less overloaded."

10. clause 4. Overload Abatement Methods, 4th word:
Should read "server". Agent overload is out of scope.

11. clause 4. Overload Abatement Method, 7th paragraph:
Diversion (which is limited to realm-routed requests) can only occur at the Diameter Node that performs the server selection. Topology knowledge is not needed. Overload state knowledge actually is pushed further down the chain. The node can control how the received realm-routed request is routed upstream by inserting a Destination-Host AVP. 

12. clause 4. Overload Abatement Methods, last paragraph:
"lease" should read "least"

13. clause 5. DOIC Use Cases:
I have lots of detailed comments which I can share in a separate mail. The essence is that all the use cases described should follow the general principles A to F outlined above. It may be worth to totally rewrite this clause to illustrate the general principles A to F.

14. clause 6.1. General Recommendation, last paragraph:
This is not strictly required. Multiple occurrences of OC-OLR could be regarded an an optimization. But then there are issues: when there are two OLRs in one answer, e.g. one realm-type OLR for loss and one host-type OLR for rate, we would also need two OC-S-F AVPs: one indicating that loss is selected, and one indicating that rate is selected. But this seems to be contradicting information.

15. clause 6.2.1 Capabilities Exchange Behaviours, 3rd paragraph:
Should read: "An agent may act as a reporting node on behalf of a non-supporting TS, or as reacting node on behalf of a non-supporting TC.[Section 5.3]". I'm not sure whether we should cover the first case. At least it should be limited to architectures where the agent (acting as reporting node on behalf of the non supporting server) and the (non supporting) server are immediate peers and the server has no other immediate peers, so that the two nodes can be regarded a single supporting server.

16. clause 6.2.1 Capabilities Exchange Behaviours, 4th paragraph:
To add some clarificatios this should read:
"An agent that acts as a reacting node must include an OC-Supported-Features in each Diameter request that it forwards in that role. If the inbound request included an OC-Supported-Features AVP, the agent may copy its content to the one in the outbound request (this is the case where the request is a) host-routed or b) realm-routed and the agent is not configured to perform server selection), or may replace the contents indicating the DOIC capabilities of the agent itself (this is the case where the request is realm routed and the agent is configured to perform server selection). If an inbound request does not contain an OC-Supported-Features AVP, the agent must insert one into the outbound request, indicating the DOIC capabilities of the agent itself."

17. clause 6.2.1 Capabilities Exchange Behaviours, last paragraph:
Should read: "An agent that does not support the DOIC mechanism is likely to forward an OC-Supported-Features AVP without modification. A DOIC node must be able to tell between an OC-Supported-Features AVP that was inserted by a node within a trusted domain, and one inserted by a node within a non-trusted domain.[Section 5.4]". This is because the reporting node (if it sends an OLR within an answer) sends it's OLR to the node that has inserted the OC-S-F AVP to the request.

18. clause 6.2.2 Overload Report Behaviours, 1st sentence, the part in brackets:
I do not agree; when passing through, the responsibility is at the source, not at the relay. The sentence should read: "When a DOIC-supporting relay inserts or replaces an OC-Supported-Features AVP, it becomes responsible for ensuring that any OLRs it receives from upstream nodes are honored."

19. clause 6.2.2 Overload Report Behaviours, 2nd sentence:
If the abatement is not "Diversion" and "Delegation" is possible, "Delegation" rather than "Throttling" must be done.

20. clause 6.2.2 Overload Report Behaviours, 2nd paragraph, last sentence:
I do not agree. See also comment 11. Diversion is limited to realm-routed requests and can only be performed by nodes that do the server selection. These nodes can convert the realm-routed request to a host-routed request.

21. clause 6.2.2 Overload Report Behaviours, 3rd paragraph, last sentence:
Modifying OLRs must follow strict rules. We either have
a) one DOIC association betwee reacting node and reporting node where all agents in between are transparent and do not modify OC-xxx AVPs, or 
b) two independent DOIC associations, one between reacting node and agent (acting as reporting node) and one between the same agent (now acting as reacting node) and reporting node. Here the agent removes the received host-type OLR and inserts its own aggregated realm-type OLR. I would not call this a modification but a replacement. Modifications other than this may not be a good idea.

22. clause 6.2.2 Overload Report Behaviours, last but one paragraph:
It is the other way round:
An agent shall not throttle traffic locally when it has already sent (or will soon send) an OLR downstream (i.e. when it can or already has delegated the abatement). When receiving a xxR that contains an OC-S-F AVP (and the xxR matches an OLR) the agent can almost safely assume that this request survived an ongoing throttling downstream. The principle is that throttling should be done as close as possible to the client.

Regards,
Ulrich


From: DiME [mailto:dime-bounces@ietf.org] On Behalf Of ext Steve Donovan
Sent: Saturday, July 05, 2014 9:49 PM
To: dime@ietf.org
Subject: [Dime] Fwd: New Version Notification for draft-donovan-doic-agent-cases-00.txt

All,

The below referenced draft focuses on a number of DOIC deployment scenarios involving agents.  The goal of this draft is to identify any new DOIC behaviors required to address these deployment scenarios.  

This directly addresses open issues #25, #27, #60 and #61 while indirectly addressing other open issues.

Regards,

Steve

-------- Original Message -------- 
Subject: 
New Version Notification for draft-donovan-doic-agent-cases-00.txt
Date: 
Thu, 03 Jul 2014 09:17:11 -0700
From: 
internet-drafts@ietf.org
To: 
Ben Campbell <ben@nostrum.com>, "Steve Donovan" <srdonovan@usdonovans.com>, Steve Donovan <srdonovan@usdonovans.com>, "Ben Campbell" <ben@nostrum.com>

A new version of I-D, draft-donovan-doic-agent-cases-00.txt
has been successfully submitted by Steve Donovan and posted to the
IETF repository.

Name:		draft-donovan-doic-agent-cases
Revision:	00
Title:		Analysis of Agent Use Cases for Diameter Overload Information Conveyance (DOIC)
Document date:	2014-07-03
Group:		Individual Submission
Pages:		34
URL:            http://www.ietf.org/internet-drafts/draft-donovan-doic-agent-cases-00.txt
Status:         https://datatracker.ietf.org/doc/draft-donovan-doic-agent-cases/
Htmlized:       http://tools.ietf.org/html/draft-donovan-doic-agent-cases-00


Abstract:
   The Diameter Overload Information Conveyance (DOIC) solution
   describes a mechanism for exchanging information about Diameter
   Overload among Diameter nodes.  A DOIC node is a Diameter node that
   acts as either a reporting node are a reacting node.  A reporting
   node originates overload reports, requesting reacting nodes to reduce
   the amount of traffic sent.  DOIC allows Diameter agents to act as
   reporting nodes, reacting nodes, or both, but does not describe agent
   behavior.  This document explores several use cases for agents to
   participate in overload control, and makes recommendations for
   certain agent behaviors to be added to DOIC.

                                                                                  


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat