Re: [alto] Unified properties salient design points

Kai Gao <gaok12@mails.tsinghua.edu.cn> Thu, 30 March 2017 19:24 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 AB3F312778D for <alto@ietfa.amsl.com>; Thu, 30 Mar 2017 12:24:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.233
X-Spam-Level:
X-Spam-Status: No, score=-1.233 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_SOFTFAIL=0.665] autolearn=no 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 Ix66XT16CK9M for <alto@ietfa.amsl.com>; Thu, 30 Mar 2017 12:24:04 -0700 (PDT)
Received: from hwp1.icoremail.net (hwp1.icoremail.net [202.66.31.34]) by ietfa.amsl.com (Postfix) with SMTP id 417D81267BB for <alto@ietf.org>; Thu, 30 Mar 2017 12:24:04 -0700 (PDT)
Received: from [172.27.167.117] (unknown [130.132.173.39]) by app1 (Coremail) with SMTP id CsxvpgDX+TgOV91YlGsEAA--.239S2; Fri, 31 Mar 2017 03:05:52 +0800 (CST)
To: Shawn Lin <x.shawn.lin@gmail.com>, "Y. Richard Yang" <yry@cs.yale.edu>
References: <CANUuoLrQvgLPH91Trts0-vTCaqStypW6AN3m+OXrrhX44cvD1A@mail.gmail.com> <CA+oaSDpp=iTyQKJzBYy7x1ndJjepovCEid+AUQ02KGe-FHioEA@mail.gmail.com>
Cc: IETF ALTO <alto@ietf.org>
From: Kai Gao <gaok12@mails.tsinghua.edu.cn>
Message-ID: <47502c54-80ed-1c7c-022b-4b0e83d92b5f@mails.tsinghua.edu.cn>
Date: Thu, 30 Mar 2017 15:05:49 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CA+oaSDpp=iTyQKJzBYy7x1ndJjepovCEid+AUQ02KGe-FHioEA@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------B37C1B63CF8868633045D835"
X-CM-TRANSID: CsxvpgDX+TgOV91YlGsEAA--.239S2
X-Coremail-Antispam: 1UD129KBjvJXoW3XFy5Gw4UXrW3Cry5Ar48Crg_yoW7ZF45pF 4fWF4DKrWUJ3WxG3ykCr18ua4FvF95JrW5Jr15Cr12qayDXr1DXF12ka1rZFyUur4Syry5 XF42gF18Jw4UAaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUU92b7Iv0xC_Cr1lb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j 6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV Cq3wAac4AC62xK8xCEY4vEwIxC4wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40Eb7x2 x7xS6r1j6r4UMc02F40Ew4AK048IF2xKxVWUJVW8JwAv7VC0I7IYx2IY67AKxVWUJVWUGw Av7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcVAKI48JMx8G jcxK6IxK0xIIj40E5I8CrwCYjI0SjxkI62AI1cAE67vIY487MxkIecxEwVCI4VWrMxAIw2 8IcxkI7VAKI48JMI8I3I0E5I8CrVAFwI0_JrI_JrWlx2IqxVCjr7xvwVAFwI0_JrI_JrWl x4CE17CEb7AF67AKxVWUXVWUAwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r 1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_WFyU JVCq3wCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYx BIdaVFxhVjvjDU0xZFpf9x0UUjR4UUUUUU=
X-CM-SenderInfo: 5jdryi2s6ptxtovo32xlqjx3vdohv3gofq/
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/d7_jDw0iau59R9Hv-mcRgwmWzio>
Subject: Re: [alto] Unified properties salient design points
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 30 Mar 2017 19:24:08 -0000

Hi all,

Shawn has raised an important issue that in a single unified property 
map, suggesting that entities of ALL "domain-types" MUST contain ALL 
types declared in "prop-types".

Regarding D3 in Richard's original post about "addressing" in different 
domains, one possibility is to define a global addressing for all domain 
types. For example, per-resource domain such as PID can have addresses 
like "PID:${network-map-id}.${PID}" while dynamic queries can also have 
addresses like "ane:${query-id}:${ane-id}" or even 
"ane:${pv-service-id}.${query-id}.${ane-id}.

Meanwhile, it seems reasonable that this unified property map should 
include corresponding network maps or cost services in "uses" field of 
its IRD entry.

Universal addressing assumes users can make queries on any property 
type, which may make optimization impossible if user only requires a 
subset of prop types.

Regards,
Kai


On 03/30/2017 11:22 AM, Shawn Lin wrote:
> Hi Richard and all,
>
> I have some thoughts about capabilities definition in property map. 
> Currently, the capabilities is defined like this:
>
>
>     object {
>         DomainName domain-types<1..*>;
>         PropertyName prop-types<1..*>;
>     } PropertyMapCapabilities
>
>
> It looks all good for IRD example in 7.3 in [EPM] because “ipv4” and 
> “ipv6” are all belong to Internet Address Domain. But I think this 
> capabilities definition does not expose the relationship between 
> domain types and property types. Different domain types may have 
> different set of property types and a same property name in different 
> domain type may have different meanings (section 2.5 in [EPM]).
>
>
> Let us consider the following example, a client receives a IRD 
> information from a ALTO server,
>
>     “my-property-map”: {
>         …
>         “capabilities”: {
>             “domain-types”: [ “ipv4”, “pid” ],
>             “prop-types” : [ “country”, “state”,
>     “property-only-for-domain-type-pid”]
>        }
>         …
>     }
>
> and this client may construct its filter property map request like 
> below since it does not know property “property-only-for-pid” is only 
> for domain type pid.
>
>     {
>         “entities”: [ “ipv4:192.0.2.0/26 <http://192.0.2.0/26>”,
>     “ipv4:192.0.2.0/28 <http://192.0.2.0/28>” ],
>         “properties”: [ “property-only-for-domain-type-pid”]
>
>     }
>
> Responses of this request will be always empty, while this client 
> never knows that it construct a meaningless request.
>
> One potential solution is that we can define capabilities as a map, 
> domain -> {properties}.
>
>     object {
>         DomainName domain-types<1..*>;
>         DomainPropertyTypes domain-prop-types<1..*>;
>     } PropertyMapCapabilities
>     object {
>          [JSONString domain-type];
>          PropertyName prop-types<1..*>;
>     } DomainPropertyTypes;
>
> The IRD information in above example can be modified like this:
>
>     “my-property-map”: {
>         …
>         “capabilities”: {
>             “domain-types”: [ “ipv4”, “pid” ],
>             “prop-types” : [
>                 [“country”, “state”],  // ipv4->{properties}
>                 [“country”, “state”, “pid-specified-property”]]    //
>     pid->{properties}
>        }
>         …
>     }
>
>
> With additional information of the relationship between domain types 
> and properties types, the client will not send meaningless request any 
> more. :)
>
> Bests,
> Shawn Lin
>
> [EPM] 
> https://datatracker.ietf.org/doc/html/draft-roome-alto-unified-props-new 
> <https://datatracker.ietf.org/doc/html/draft-roome-alto-unified-props-new>
>
> On Wed, Mar 29, 2017 at 4:21 AM, Y. Richard Yang <yry@cs.yale.edu 
> <mailto:yry@cs.yale.edu>> wrote:
>
>     Dear all,
>
>     As multiple discussions, we feel that the unified properties draft
>     (), although not a working group draft, can be an important piece
>     to help finish several remaining working items.
>
>     For those who are not tracking the document, the design might
>     appear to be simple: it is after all just a simple key-value map.
>     When conducting a real design, many issues, many quite general,
>     however, appear. Hence the design can benefit from good feedback
>     from the good talents of this group. The objective of this email
>     is to make clear the salient points of the current design. We will
>     go over and discuss them Friday during the WG session.
>
>     D1. The goal is to provide properties to entities.
>
>     D2. Each entity must have an entity name to be identified. An
>     entity name is a typed (domained) string, in a format of
>     <domain>:<name>, e.g., "ipv4:192.1.1.1", "pid:myid1",
>     "ane:myane111". The <domain> provides essentially the type of the
>     name.
>
>     D3. There are essentially three types of domains: global,
>     per-resource, per-query (dynamic):
>
>     D3.1 ipv4 and ipv6 are global, in that they are not dependent on
>     particular resources;
>
>     D3.2 pid depends on a particular network map resource;
>
>     D3.3 ane (abstract network element) may depend on a particular
>     query of an ALTO resource. So far we cannot handle such case well.
>     There can be multiple design options, but each adds more complexity.
>
>     D4. Aggregation of entities is allowed, to improve scalability.
>     Hence, an entity name may be either an individual entity or a set.
>     An example is an IP prefix.
>
>     D4.1 An implication of 4. is that we need to handle property
>     inheritance. Multi-inheritance is tricky, as OOP multi-inheritance
>     demonstrated. So far longest prefix matching (LPM) avoids the
>     problem. But we need to decide if we want to have a spec on future
>     design of this aspect.
>
>     D5. Property names are in a global namespace, to enforce global,
>     consistent usage of property names.
>
>     It is not a long list but contains many interesting design points.
>
>     Looking forward to good discussions soon!
>
>     Richard
>
>
>
>     _______________________________________________
>     alto mailing list
>     alto@ietf.org <mailto:alto@ietf.org>
>     https://www.ietf.org/mailman/listinfo/alto
>     <https://www.ietf.org/mailman/listinfo/alto>
>
>
>
>
> _______________________________________________
> alto mailing list
> alto@ietf.org
> https://www.ietf.org/mailman/listinfo/alto