Re: [alto] Unified properties salient design points

Shawn Lin <x.shawn.lin@gmail.com> Thu, 30 March 2017 15:23 UTC

Return-Path: <x.shawn.lin@gmail.com>
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 05E591296C8 for <alto@ietfa.amsl.com>; Thu, 30 Mar 2017 08:23:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 VxBO_HZaN0oh for <alto@ietfa.amsl.com>; Thu, 30 Mar 2017 08:22:57 -0700 (PDT)
Received: from mail-wr0-x22d.google.com (mail-wr0-x22d.google.com [IPv6:2a00:1450:400c:c0c::22d]) (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 D3CCF127419 for <alto@ietf.org>; Thu, 30 Mar 2017 08:22:56 -0700 (PDT)
Received: by mail-wr0-x22d.google.com with SMTP id w43so65112499wrb.0 for <alto@ietf.org>; Thu, 30 Mar 2017 08:22:56 -0700 (PDT)
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=3LCu7QSMA+Juq7GsJvEYruVu15P0waquU3V4DslM9ng=; b=cTvtLGcAlslToyMMx201Uk4Wtxzo1Q/3V2OruoILxEw4p9GLaugKn4FsY6deY8E9SV FFtifxVbB0qS/y75Us/YxOTZ7imQtbskUFPWJZR4lYoBm2xJ9cwBp5tvOZWxG49HRWvP SPw8AcW4dL9fEx9lUDTqoNyXdOaNGZN0rVaVqMePqa+5WB2HORLsE4EKDhLPbm97ZOnh kTSR/oNla0O5Jo5SYGTWdQa5a79z0vvNSOeoO/oDCQp2TRNOaJ4ckaeeqEi2Ajoh9odi FG9y3W7eXdM/OMMzfxG/0qXiWboT80s1FVD+E17GjsoCw56TQJsT+ZAT/mBb1INsKvKW 8vmQ==
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=3LCu7QSMA+Juq7GsJvEYruVu15P0waquU3V4DslM9ng=; b=Zi4j1ywo5iBB+cez/lUmFbnK5W9YJNeCv2j+j+u4KgYOpSyF9l3Rk7l0GqImj+igKw m1TLv66x0bbr8G0rbXkBeqbLFhS9FLF2R5mHUWMOot+mEY6JS9z4LnlKhdWj4/RgZPTy dJpqWOZrtDVO6R4w4G+112JJ0sfK2wzqBcVagSsYRchCeg+YjOFieUnrlBS1kSJPkn84 Qwiag5CU1Q8Zu0O2O/WqObHGLvqaltrrXmq4MEAlymVz914W1RwLcUp9vWMLes1/QC1Y 3TjXpvhSI6oQvt0liTuRj88BwXQrsq7HXfIqITlUtTrfyEZKLdXBcQCWtCaPmh3Lsa78 3y3w==
X-Gm-Message-State: AFeK/H39/KrbqOJnQ7UwdskVECPx5Zuuwp+wFBVa55S2JlIFSEKPVwVczUM5wqrXj9TvxJJyBENLxhJqYkP5Hw==
X-Received: by 10.28.45.214 with SMTP id t205mr964051wmt.15.1490887375333; Thu, 30 Mar 2017 08:22:55 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.145.99 with HTTP; Thu, 30 Mar 2017 08:22:54 -0700 (PDT)
In-Reply-To: <CANUuoLrQvgLPH91Trts0-vTCaqStypW6AN3m+OXrrhX44cvD1A@mail.gmail.com>
References: <CANUuoLrQvgLPH91Trts0-vTCaqStypW6AN3m+OXrrhX44cvD1A@mail.gmail.com>
From: Shawn Lin <x.shawn.lin@gmail.com>
Date: Thu, 30 Mar 2017 23:22:54 +0800
Message-ID: <CA+oaSDpp=iTyQKJzBYy7x1ndJjepovCEid+AUQ02KGe-FHioEA@mail.gmail.com>
To: "Y. Richard Yang" <yry@cs.yale.edu>
Cc: IETF ALTO <alto@ietf.org>
Content-Type: multipart/alternative; boundary="001a1142321c682d1b054bf444b9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/3lu8Z9tXJlqK2DyCwg47Hopi-TM>
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 15:23:00 -0000

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”, “ipv4: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

On Wed, Mar 29, 2017 at 4:21 AM, Y. Richard Yang <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
> https://www.ietf.org/mailman/listinfo/alto
>
>