Re: [alto] Path vector to support application traffic capacity region design

Gao Kai <gaok12@mails.tsinghua.edu.cn> Fri, 08 July 2016 02:36 UTC

Return-Path: <gaok12@mails.tsinghua.edu.cn>
X-Original-To: alto@ietfa.amsl.com
Delivered-To: alto@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 97B3A12D5C5 for <alto@ietfa.amsl.com>; Thu, 7 Jul 2016 19:36:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.317
X-Spam-Level:
X-Spam-Status: No, score=-3.317 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-1.426, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_MIME_MALF=0.01] 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 8kDakPRu2BtQ for <alto@ietfa.amsl.com>; Thu, 7 Jul 2016 19:36:30 -0700 (PDT)
Received: from tsinghua.edu.cn (smtp36.tsinghua.edu.cn [166.111.204.60]) by ietfa.amsl.com (Postfix) with ESMTP id 8CD4D12D799 for <alto@ietf.org>; Thu, 7 Jul 2016 19:35:49 -0700 (PDT)
Received: from [101.5.179.86] (unknown [101.5.179.86]) by app2 (Coremail) with SMTP id C8xvpgBHKY5zEX9XBFFWAA--.41214S3; Fri, 08 Jul 2016 10:35:31 +0800 (CST)
To: "Y. Richard Yang" <yry@cs.yale.edu>, IETF ALTO <alto@ietf.org>
References: <CANUuoLp5hGqZ5ZE0mts6m2PjK=JZvnuxHFzR_=jwzNpijjYppg@mail.gmail.com>
From: Gao Kai <gaok12@mails.tsinghua.edu.cn>
X-Enigmail-Draft-Status: N1110
Message-ID: <577F1173.1050704@mails.tsinghua.edu.cn>
Date: Fri, 08 Jul 2016 10:35:31 +0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0
MIME-Version: 1.0
In-Reply-To: <CANUuoLp5hGqZ5ZE0mts6m2PjK=JZvnuxHFzR_=jwzNpijjYppg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------030208010206010608050705"
X-CM-TRANSID: C8xvpgBHKY5zEX9XBFFWAA--.41214S3
X-Coremail-Antispam: 1UD129KBjvJXoWxurykXFWfJF4xuF45KFW5trb_yoW5KrykpF 4agr47Gwn5twn7C3Z5Za18XF1Fv34SyrZxGws8tr15Ca98GrykWF1Sk3WYgFy7uryfJrZ5 twn8KFnxAw4qyaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUgKb7Iv0xC_tr1lb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_GcCE 3s1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s 1lnxkEFVAIw20F6cxK64vIFxWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAv7VC0I7IYx2IY 67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y4 8IcVAKI48JMx8GjcxK6IxK0xIIj40E5I8CrwCYjI0SjxkI62AI1cAE67vIY487MxAIw28I cxkI7VAKI48JMI8I3I0E5I8CrVAFwI0_JrI_JrWlx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4 CE17CEb7AF67AKxVWUXVWUAwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1x MIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_WFyUJV Cq3wCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYxBI daVFxhVjvjDU0xZFpf9x0UUjRP7UUUUU=
X-CM-SenderInfo: 5jdryi2s6ptxtovo32xlqjx3vdohv3gofq/
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/fHc-0wmiB8xT9eOyfZuUkhtbCns>
Subject: Re: [alto] Path vector to support application traffic capacity region design
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/alto/>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Jul 2016 02:36:33 -0000

Hi Richard and all,

Please see my comments inline.

Regards,
Kai

On 08/07/16 05:50, Y. Richard Yang wrote:
> Dear all,
>
> We have made an initial design of the path vector design to support
> the key application capacity region use case. 
>
> Below is a list of key design reasoning:
> - Current cost map and endpoint cost service is designed for the
> setting of alternative flows, in that it asks for the cost of each
> flow alone, but the capacity region is for concurrent flows. Hence, we
> need a new request parameter to denote the new semantics---we could
> use a new cost mode, but using a new design can be cleaner.
>
> - We want to support both endpoints and network maps (PIDs), when
> querying capacity regions. Hence, the query, as an example
> possibility, is:
>
>   POST /capacityregion/lookup HTTP/1.1
>   Host: alto.example.com <http://alto.example.com>
>   Content-Length: TBD
>   Content-Type: application/alto-flowparams+json
>   Accept: application/alto-costmap+json,application/alto-error+json
>
>   {
>     "cost-type" : {"cost-mode": "path-vector",
>                          "cost-metric": "bandwidth"
>     },
>     "flows" : [
>       {"src": "ipv4:192.0.2.2", "dst": "ipv4:192.0.2.89"},
>       {"src": "ipv4:192.0.2.2", "dst": "ipv4:198.51.100.34"},
>       {"src": "ipv4:192.0.2.2", "dst": "ipv4:203.0.113.45"},
>       {"src": "ipv4:192.0.2.3", "dst": "ipv4:203.0.113.45"}
>     ]
>   }
>
> A possible encoding of response is:
>
>   HTTP/1.1 200 OK
>   Content-Length: TBA
>   Content-Type: application/alto-costmap+json
>
>   {
>       "dependent-vtags" : [    // defines the resource id providing nep
>         { "resource-id": "my-nep-map",
>           "tag": "3ee2cb7e8d63d9fab71b9b34cbf764436315542e"
>         }
>       ],
>
>       "meta" : {
>        "vtag" : {
>            "resource-id": "my-costmap",
>            "tag": "c0ce023b8678a7b9ec00324673b98e54656d1f6d"
>         }
>       "cost-type" : {"cost-mode": "path-vector",
>                      "cost-metric": "bandwidth"
>     },
>
>     "cost-map" : {
>       "ipv4:192.0.2.2": { 
>                 "ipv4:192.0.2.89":    ["ne56"], 
>                 "ipv4:198.51.100.34": ["ne56", "ne57"], 
>                 "ipv4:203.0.113.45":  ["ne57"]
>       },
>       "ipv4:192.0.2.3": { 
>                 "ipv4:203.0.113.45":  ["ne57"]
>       }
>     }    
>   }
>
> The remaining issue is how to obtain the properties of the abstract
> network elements. For this, we propose to use the unified properties
> design:
> https://tools.ietf.org/html/draft-roome-alto-unified-props-00
That doesn't seem like a good idea.

First, the "network elements" are very likely to be request-specific,
e.g., the element IDs are meaningful only for the given request while
the unified property service is using a global namespace.
Even if we can live with globally unique element IDs, ALTO clients may
query the properties of network elements from different queries.  That
can be quite confusing so we'd probably have to make it clear that this
must not be done.  And the whole thing can lead to extra complexities to
understand and implement the service.

Second, using a second query may lead to inconsistency, even though the
failure scenario may not be a big deal if the clients are not using
incremental updates.  However, it does require extra storage on the
server to store the data when the clients are making one-shot queries. 
Of course, for the targeted scenario where flows have large volumes,
one-shot queries are definitely not encouraged.

One options, of course, is to encode the elements in the response. 
However, if UPS is desired, I suggest using a query-specific one instead
of a global one, like the stream control URI used in the SSE draft.
> Any comments?
>
> Cheers,
> Richard
>
>
> _______________________________________________
> alto mailing list
> alto@ietf.org
> https://www.ietf.org/mailman/listinfo/alto