Re: [netmod] ACL draft defines ether-type as a string

Robert Wilton <rwilton@cisco.com> Wed, 19 July 2017 06:37 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE4E812ECCB for <netmod@ietfa.amsl.com>; Tue, 18 Jul 2017 23:37:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.502
X-Spam-Level:
X-Spam-Status: No, score=-14.502 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 thGjh4MPgBVV for <netmod@ietfa.amsl.com>; Tue, 18 Jul 2017 23:37:11 -0700 (PDT)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DF7BD12ECB3 for <netmod@ietf.org>; Tue, 18 Jul 2017 23:37:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5141; q=dns/txt; s=iport; t=1500446231; x=1501655831; h=subject:to:references:from:message-id:date:mime-version: in-reply-to:content-transfer-encoding; bh=+BW1F71MmgfGxLWwsvGuQRvy55EkfbN/U8goMKmyEKk=; b=dEqiCSNoFG/IoHyf/XTPz6vthz7DUOlLZRKVxKDv3KE9by3u7LwtLNSO H0MtgcTBEkGrDftyp7IVOPHg2oebKNE/kuhT1uvDPkeGRb7Bz7J8k/H35 xpHJ+krWXRYUPXN2tY0Xxyq7zVe6kJXgd+inA+zvi+21L+OMfNuGKxUH7 o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CMAAA5/W5Z/xbLJq1cGQEBAQEBAQEBAQEBBwEBAQEBhD6BFI4Lc5B4iC6NVoIRIQ2ESk8ChBUYAQIBAQEBAQEBayiFGAEBAQEDAQEhFTYbCxEBAwEBAQICIwMCAiEGHwMGCAYBDAYCAQGKEwMVEK85giaHMQ2DRgEBAQEBAQEBAQEBAQEBAQEBAQEBARgFgQuCHYNNggyCeYJXgX0JgyCCYQEEl0OHODuHS4NKhBKEcIsuhwGMCnCIXh84gQoxIQgbFUmHGD42AYYVgj0BAQE
X-IronPort-AV: E=Sophos;i="5.40,380,1496102400"; d="scan'208";a="656179637"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Jul 2017 06:37:06 +0000
Received: from [10.61.102.237] (dhcp-10-61-102-237.cisco.com [10.61.102.237]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id v6J6b6aR005772; Wed, 19 Jul 2017 06:37:06 GMT
To: Alex Campbell <Alex.Campbell@Aviatnet.com>, Mahesh Jethanandani <mjethanandani@gmail.com>, NetMod WG <netmod@ietf.org>
References: <EC54089C-E8CD-4F7A-9B93-7FB228A66074@gmail.com> <1500416980342.21019@Aviatnet.com> <20170719055038.GA19325@elstar.local>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <07ee9a53-bed7-00a2-9cfa-604eef5c0f7b@cisco.com>
Date: Wed, 19 Jul 2017 08:37:06 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <20170719055038.GA19325@elstar.local>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/8Rro1fEW7cOKQbqEd7Fpi4ENi1Q>
Subject: Re: [netmod] ACL draft defines ether-type as a string
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jul 2017 06:37:13 -0000

I like the union approach.

I'm not sure that we really want IEEE to have to define an enum entry 
for every possible Ethertype value.   This just means that 
implementations probably ends up with another large mapping table where 
99% of it is just noise.  So I would suggest that 'named ethertypes' are 
restricted to the set of current ones in standard use that people care 
about, and allow vendors to request that their specific ones be added if 
required.

+1 to the description describing the canonical format.

Thanks,
Rob


On 19/07/2017 07:50, Juergen Schoenwaelder wrote:
> It may even mean that they plan to change ether-type-0xXXXX to foo
> once 0xXXXX is allocated to foo, which would be a problem. It seems
> a union of a uint16 and an enum can be more robust.
>
>   type union {
>     type uint16;
>     type enumeration {
>       enum ipv4 {
>         value 0x0800;
>         description
>           "Internet Protocol version 4 (IPv4)";
>         reference
>           "RFC 791: Internet Protocol"
>       }
>     }
>   }
>
> A caveat is that the canonical representation of a uint16 is decimal
> (and YANG today has no way to control that), which may be a bit
> inconvenient here. Perhaps the description clause should overwrite
> this. There is probably also a need to remember implementors that the
> canonical representation of the union retains the notation, that is,
> if I write a numeric value (i.e., if I write '0x800' I get back the
> numeric value 2048 but if I write the enum value 'ipv4' I get back the
> enum 'ipv4' and not a numeric value.
>
> I have also found a definition in [1] that uses a string with a
> pattern to match a different notation for ether type numeric values.
>
>    typedef ethertype-type {
>      type string {
>        pattern '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}';
>      }
>      description
>        "The EtherType value represented in the canonical order defined
>      	by IEEE 802. The canonical representation uses uppercase
>      	characters.";
>      reference
>        "IEEE 802-2014 Clause 9.2";
>    }
>
> While this may be more compliant to IEEE 802-2014 Clause 9.2, having
> some type that easily resolves to a number may be more desirable in
> practice.
>
> [1] https://github.com/YangModels/yang/blob/master/standard/ieee/802.1/draft/ieee802-dot1q-types.yang
>
> /js
>
> PS: Writing definitions for seemingly simple types can be fun.
>
> On Tue, Jul 18, 2017 at 10:29:40PM +0000, Alex Campbell wrote:
>> Doesn't this mean that if a new protocol is defined, then it won't be usable in ACLs until the server's data model is upgraded? (And with many devices, that is quite likely never)
>>
>>
>> ________________________________
>> From: netmod <netmod-bounces@ietf.org> on behalf of Mahesh Jethanandani <mjethanandani@gmail.com>
>> Sent: Tuesday, 18 July 2017 6:21 p.m.
>> To: NetMod WG
>> Subject: [netmod] ACL draft defines ether-type as a string
>>
>> The issue of ether-type defined as a string was discussed with participants from IEEE in IETF. It was generally agreed that since ether-types are well known values, and centrally managed, that they be defined as enumerations. There was some clarification sought by IEEE on which values need to be published. It was suggested that ether-types that are either private or do not have a protocol identified would be named as ether-type-0xXXXX where 0xXXXX represents the value assigned. All the remaining ether-types will be defined as enums with the well known names.
>>
>> As far as the impact of that on the ACL draft is concerned, it will be to remove all local definitions for ether-type from the draft, such as the one below and instead use the definition from IEEE, whenever that is done. It does however put a dependency on the IEEE model.
>>
>>
>>      leaf ether-type {
>>        type string {
>>          pattern '[0-9a-fA-F]{4}';
>>        }
>>        description
>>          "The Ethernet Type (or Length) value represented
>>           in the canonical order defined by IEEE 802.
>>           The canonical representation uses lowercase
>>           characters.
>>
>>           Note: This is not the most ideal way to define
>>           ether-types. Ether-types are well known types
>>           and are registered with RAC in IEEE. So they
>>           should well defined types with values. For now
>>           this model is defining it as a string.
>>
>>
>>           There is a note out to IEEE that needs to be
>>           turned into a liaison statement asking them to
>>           define all ether-types for the industry to use.";
>>        reference
>>          "IEEE 802-2014 Clause 9.2";
>>      }
>>      reference
>>        "IEEE 802: IEEE Standard for Local and Metropolitan
>>         Area Networks: Overview and Architecture.";
>>    }
>>
>> Mahesh Jethanandani
>> mjethanandani@gmail.com<mailto:mjethanandani@gmail.com>
>>
>>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>