[alto] ALTO O&M data model: IANA related data types

Jensen Zhang <jingxuan.n.zhang@gmail.com> Tue, 13 September 2022 13:03 UTC

Return-Path: <jingxuan.n.zhang@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 40606C14CE3A for <alto@ietfa.amsl.com>; Tue, 13 Sep 2022 06:03:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TxIJuROHZQad for <alto@ietfa.amsl.com>; Tue, 13 Sep 2022 06:03:22 -0700 (PDT)
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DB25EC14F720 for <alto@ietf.org>; Tue, 13 Sep 2022 06:03:21 -0700 (PDT)
Received: by mail-wr1-x42a.google.com with SMTP id bz13so20706295wrb.2 for <alto@ietf.org>; Tue, 13 Sep 2022 06:03:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=j8xEbO5IsQK88gqdQnSaw9bI7ARU5r10TTr0tyiILbQ=; b=azP+XdUScN+EIvlnmSw2pfiqXVYgqMaZ0cBzM5r5FWMRoIBYwrLG+zwfNBypTNkVb9 vo4EoPdIKRPPGP2/JxP8v8/RAjPhkTKA+KEqUABC+TaEqG6VkJ4cywDaiRAosEt4Z3rF G3fdf758RNMajxXOL/kquWAusODSkeDacj0+xC76lfgjYjorkfvun4wCIlmh9lnnYk07 GC0atdNAUhzyFV/qvmm81+kWSC/yS4uEVsw0F/mJvLbEPbLl32Gz+1EMsxvubi/Akaho 0igOkyYb6eUwUiuZecuShQvA+8KDMvdzoKGi2Wjk5B/MFsDiwjtFgZwHTsOnhWm2uz3K z2pQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=j8xEbO5IsQK88gqdQnSaw9bI7ARU5r10TTr0tyiILbQ=; b=jl/nSachrHtBSI0+5Yx7FzFBJN8kdOJtTUvlNRKwfsHmM0MYxeBobg9GYCjrawN7QX vUrIpaGA3X9coWbG/pHRxWj/aQDSJ+aN3tyqQHXqUnnRJAijhGnmdPYmrI3sN6Vrd5C2 gPABHKCEFN0wb+G4vPE+yeCaCRZU+lD260j/2v/S/DO0UJbQLZRGsdTE7p4lwm41UxBw Nnvi87kcC4cjBEECyPBN+2W2eonYqPzC5Eet9tLLT2L+8p61TCqSmxxLff8YLgCe0EUa pd3lG660mMjhdr0mapFNc913smWA+vO41BwwbVgFG78bKCgQ0C88fvnQ92xwTHTniCgv Zwtw==
X-Gm-Message-State: ACgBeo0HS0D98UGdAxEZIJSKO/7tP85vIQ0Al/L8w1lFCUFcxJ1uUU3X UW6RE5YYclbn+hqlvNk+P1511fKqXs4nlzst71XGmmUGszo=
X-Google-Smtp-Source: AA6agR5TSavlmYO0dL04YU6l1I+DC0qc+oJQ9XK3lud6Owa/quP9XUY+Xt85vZl6KSFE008gFH5XV/epCbeHb29EHwI=
X-Received: by 2002:a5d:4571:0:b0:22a:bc4c:3c24 with SMTP id a17-20020a5d4571000000b0022abc4c3c24mr2692278wrc.254.1663074200131; Tue, 13 Sep 2022 06:03:20 -0700 (PDT)
MIME-Version: 1.0
References: <86f4a82bf14249d4b15aecada3235cbd@huawei.com> <CAAbpuypSiTHQcUN9v=854robis7Fs_PZnekqYtfR=RvpKr0AOg@mail.gmail.com> <6cb0dc60.fa82.18313108e4e.Coremail.kaigao@scu.edu.cn>
In-Reply-To: <6cb0dc60.fa82.18313108e4e.Coremail.kaigao@scu.edu.cn>
From: Jensen Zhang <jingxuan.n.zhang@gmail.com>
Date: Tue, 13 Sep 2022 21:03:07 +0800
Message-ID: <CAAbpuypVAH9XMHWFJ5mqBPty==WC_=_jj7Fp3TnADtO+_G2HXw@mail.gmail.com>
To: Kai Gao <kaigao@scu.edu.cn>
Cc: Qin Wu <bill.wu@huawei.com>, IETF ALTO <alto@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000ef25cb05e88ea2aa"
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/S10Ua4tvVhPGu6FFJhbhDGBbPXs>
Subject: [alto] ALTO O&M data model: IANA related data types
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.39
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: Tue, 13 Sep 2022 13:03:24 -0000

Hi Kai,

Many thanks for sharing your thoughts. I separate this discussion into an
individual thread so that we can focus on this specific issue without
broadcasting to discussions of other issues.

See my comments below.

On Tue, Sep 6, 2022 at 9:49 PM <kaigao@scu.edu.cn> wrote:

> Hi Jensen, Qin and all,
>
>
> Thanks for the discussion. Please see my comments inline.
>
>
> Best,
>
> Kai
>
> -----Original Messages-----
> *From:*"Jensen Zhang" <jingxuan.n.zhang@gmail.com>
> *Sent Time:*2022-09-06 21:13:01 (Tuesday)
> *To:* "Qin Wu" <bill.wu@huawei.com>
> *Cc:* "IETF ALTO" <alto@ietf.org>
> *Subject:* Re: [alto] Open discussions of ALTO O&M data model
>
> Hi Qin,
>
> Sorry for my late reply. See my comments inline.
>
>
> On Sun, Aug 21, 2022 at 8:44 AM Qin Wu <bill.wu@huawei.com> wrote:
>
>> Hi, Jensen:
>>
>> Thank for summarizing the discussion in last IETF meeting, please see my
>> comments inline.
>>
>>
>>
>> *发件人:* alto [mailto:alto-bounces@ietf.org] *代表 *Jensen Zhang
>> *发送时间:* 2022年8月16日 21:04
>> *收件人:* IETF ALTO <alto@ietf.org>
>> *主题:* [alto] Open discussions of ALTO O&M data model
>>
>>
>>
>> Hi ALTOers,
>>
>> >From the WG session in IETF 114, we had a lot of discussions about the
>> open issues for ALTO O&M. Authors appreciate all the comments and are
>> working on the next revision.
>>
>> We quickly summarize the major debates and are willing to have more
>> discussions to move this work forward. To be more efficient, we may
>> separate the discussions to different threads later.
>>
>> 1. How to handle data types defined by IANA registries
>>
>> There are actually two arguments:
>>
>> 1.a. Which statement is better used to define the IANA-related data types
>> (e.g., cost modes, cost metrics)? Two options: enumeration typedef or
>> identity
>>
>> The main limitation of the enumeration is the extensibility. As ALTO may
>> have multiple ongoing extensions, it will be required to add new private
>> values for existing data types for experimenting purpose. Identity is
>> better choice to support this.
>>
>> 1.b. Whether put the data type definitions to an IANA-maintained YANG
>> module
>>
>> >From the guidelines provided by Med (
>> https://datatracker.ietf.org/doc/html/draft-boucadair-netmod-iana-registries-03),
>> IANA-maintained module is RECOMMENDED.
>> *[Qin Wu] *If you chose to use identity data type, I think it is not
>> necessary for you to use IANA maintained YANG module, IANA maintained YANG
>> module allows you later on make update to the data type if needed.
>>
>> *If you don’t expect to have frequent changes to the data types, It looks
>> identity is best option but not necessary to create IANA maintained module.*
>>
>> *Otherwise, it seems overdesign to me.*
>>
>
> From my understanding, identity is to allow non-standard YANG modules to
> add new values to the registry. IANA maintained module is to allow IANA to
> keep the registry updated by standard YANG modules. So I don't think
> creating IANA maintained module is overdesign.
> I think the point to use the IANA maintained module is that updates to the
> data types defined by IANA registry would be more frequent than updates to
> the OAM YANG module.
> But let's see how other ALTOers will react.
>
>
>
> I remember that we had some discussion on this issue during IETF 114. The
> idea of using identity instead of enum is to enable new values to be used
> without breaking other packages that depend on the module that defines the
> enum.
>
>
> However, it may be possible that IANA manages not one but multiple
> modules. Then new extensions can be added as individual modules and
> packages.
>
>
> An example can be seen below:
>
>
> Before module2 is being standardized:
>
> - module1 is a standard module managed by IANA
>
> - module2 is a private module with some extensions
>
>
> module1 (iana-alto-base-xxx)        module2 (private-alto-ext-xxx)
>
>    |                                                 |
>
>    |----------------------------------------\        |
>
>    v                                        v        v
>
> alto-server1                              alto-server-2
>
>
> After:
>
> - module1 is a standard module managed by IANA
> - module2 becomes a standard module managed by IANA
>
>
>
> module1 (iana-alto-base-xxx)        module2 (iana-alto-ext-xxx)
>
>    |                                                 |
>
>    |----------------------------------------\        |
>
>    v                                        v        v
>
> alto-server1                              alto-server-2
>
>
> Then module1 is untouched and alto-server1 can continue to work without
> the need to update its own dependency. If alto-server1 wants to support the
> extension, it can add module2 to its dependencies.
>
If iana-alto-ext-xxx is optional, I think it is OK. But if it is mandatory,
I think it should be merged into iana-alto-base-xxx to guarantee
consistency between alto-server-1 and alto-server-2.

I think the main benefit of using the IANA-maintained YANG module is that
the upstream YANG module does not need to be updated if only data types
defined by the IANA-maintained module are updated.

The setting would be as follows:

In the beginning,

module1 (iana-alto-types@2022-07-11.yang)
    |
    v
module0 (ietf-alto@2022-07-11.yang)
    |
    v
alto-server-1

When some new experimental extension introduces new values to
IANA-maintained data types:

module1 (iana-alto-types@2022-07-11.yang)
    |------------------- module2 (private-alto-types-ext.yang)
    v
module0 (ietf-alto@2022-07-11.yang)
    |
    v
alto-server-1

After a while, the extension becomes standard:

module1 (iana-alto-types@2022-09-13.yang) <-- new revision
    |
    v
module0 (ietf-alto@2022-07-11.yang)
    |
    v
alto-server-1

As you can see, module0 has no need to update.

Cheers,
Jensen