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 <[email protected] <mailto:[email protected]>> 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
    [email protected] <mailto:[email protected]>
    https://www.ietf.org/mailman/listinfo/alto
    <https://www.ietf.org/mailman/listinfo/alto>




_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto

_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto

Reply via email to