Re: [netmod] I-D Action: draft-ietf-netmod-sub-intf-vlan-model-01.txt

Robert Wilton <rwilton@cisco.com> Fri, 16 June 2017 13:51 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 4655E1294E1 for <netmod@ietfa.amsl.com>; Fri, 16 Jun 2017 06:51:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.503
X-Spam-Level:
X-Spam-Status: No, score=-14.503 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, 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 SkAkxI2w-Ylk for <netmod@ietfa.amsl.com>; Fri, 16 Jun 2017 06:51:17 -0700 (PDT)
Received: from aer-iport-1.cisco.com (aer-iport-1.cisco.com [173.38.203.51]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E07F71294C8 for <netmod@ietf.org>; Fri, 16 Jun 2017 06:51:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4441; q=dns/txt; s=iport; t=1497621077; x=1498830677; h=subject:to:references:from:message-id:date:mime-version: in-reply-to:content-transfer-encoding; bh=8/wQFi8rkYGu4S/gIbgN+TKh/iU5IxYATzsTbMkJtwA=; b=JYhRvLFy5bwafFU+Jhqgt8TauhQtH4eMASwK0iiMYFh3acR9vHp9z5aX NNQFT9QeQNJaBJ/8JpbvD9t88/eGSGcIlqwzOnu3uWTQQU1KE1S7dDvTs xIAZ0VEhC1PsUU6filJmvYC51rjZPcUH/4mjMfHqtYZHNQshDMy8X7g+z c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0D0AADo4UNZ/xbLJq1TCRsBAQEDAQEBCQEBAZNKc5EIlgeCEYYkAoMnGAECAQEBAQEBAWsohRgBAQEBAgEnETYbCxguVwYBDAgBAReKCQirKzqLRQEBAQEBAQEBAgEBAQEBASKGY4FgK4J4hEOGGgEEnleTWoIIiRKGdIkegyWIQx84gQowIQgbFUmHED+HSCuCEgEBAQ
X-IronPort-AV: E=Sophos;i="5.39,347,1493683200"; d="scan'208";a="695189739"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jun 2017 13:51:12 +0000
Received: from [10.63.23.55] (dhcp-ensft1-uk-vla370-10-63-23-55.cisco.com [10.63.23.55]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id v5GDpCTH012221; Fri, 16 Jun 2017 13:51:12 GMT
To: Vladimir Vassilev <vladimir@transpacket.com>, netmod@ietf.org
References: <148943391240.20421.7015046968650807465@ietfa.amsl.com> <d8118ca7-92f7-ce53-50a0-fd1a15181e4b@transpacket.com> <fa2f21bb-e23f-d0a2-1b95-64419e177419@cisco.com> <d5a325d0-7b4b-ee31-d82c-818368c70776@transpacket.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <038cc4dc-0e54-9ef0-3a64-8e8fa9cf8ca8@cisco.com>
Date: Fri, 16 Jun 2017 14:51:13 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <d5a325d0-7b4b-ee31-d82c-818368c70776@transpacket.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/HzB9GQwI8wrLr0sf_FDwsj0Zlbk>
Subject: Re: [netmod] I-D Action: draft-ietf-netmod-sub-intf-vlan-model-01.txt
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: Fri, 16 Jun 2017 13:51:19 -0000

On 16/06/2017 12:42, Vladimir Vassilev wrote:
> On 06/15/2017 06:18 PM, Robert Wilton wrote:
>
>> Hi Vladimir,
>>
>> Thanks for raising this.
>>
>>
>> On 15/06/2017 12:59, Vladimir Vassilev wrote:
>>> Hello,
>>>
>>> There is a problem with a mutually exclusive 'when' statements for 
>>> the /interfaces/inteface/encapsulation container in 
>>> ietf-interfaces-common@2017-03-13.yang 
>>> (draft-ietf-netmod-intf-ext-yang-04) and 
>>> ietf-if-l3-vlan@2017-03-13.yang  models causing error with our 
>>> validation tools.
>>>
>>> As defined in ietf-interfaces-common@2017-03-13.yang:
>>>
>>> ...
>>>
>>>     container encapsulation {
>>>       when
>>>         "derived-from-or-self(../if:type,
>>>                               'ianaift:ethernetCsmacd') or
>>>          derived-from-or-self(../if:type,
>>>                               'ianaift:ieee8023adLag') or
>>>          derived-from-or-self(../if:type, 'ianaift:pos') or
>>>          derived-from-or-self(../if:type,
>>>                               'ianaift:atmSubInterface') or
>>>          derived-from-or-self(../if:type, 'ethSubInterface')" {
>>>
>>> ...
>>>
>>> and here augmented in ietf-if-l3-vlan@2017-03-13.yang:
>>>
>>>   augment "/if:interfaces/if:interface/if-cmn:encapsulation/" +
>>>           "if-cmn:encaps-type" {
>>>     when "../if:type = 'ianaift:l2vlan' and
>>>           derived-from-or-self(../if-cmn:forwarding-mode,
>>>                                'if-cmn:network-layer')" {
>>>
>>> Short term fix I use is to add "or derived-from-or-self(../if:type, 
>>> 'ianaift:l2vlan')" to the ietf-interfaces-common definition.
>> I suspect that probably the reverse fix is probably better.
>>
>> I.e. add derived-from-or-self(../if:type, 'ethSubInterface' to the 
>> encapsulation when statement replacing the l2vlan, since 
>> ethSubInterface derived from l2vlan anyway.
>>
>> Thanks,
>> Rob
> The "TODO" text you have placed in 
> ietf-interfaces-common@2017-03-13.yang under the when statement "TODO 
> - Should we introduce an abstract type to make this extensible to new 
> interface types, or vendor specific interface types?" for me is a hint 
> that a better long term solution is under consideration (replacing the 
> list of technology specific references).
Yes, my original idea was to define more types like "ethSubInterface" 
that derive from base iftypes like l2vlan. However, this doesn't actual 
solve my goal of allowing the models to be more extensible, and instead 
I think that the solution might almost be the reverse.

We could define some property identities like:
  - sub-interface,
  - ethernet-like,
  - point-to-point,
  - multicast/broadcast,
  - physical,
  - virtual

We would then update iana-if-type.yang to also derive from these new 
property identities, which is a backwards compatible change.

So, for example, in the other discussion about interface statistics, the 
broadcast/multicast counters could be conditional as to whether the 
iftype inherits the multicast/broadcast property.

>
>
> My understanding is that only the subset of all sub-interfaces based 
> on encapsulation will have encapsulation container. Identity derived 
> from sub-interface -> encapsulation-sub-interface could be the 
> abstract type, right?
I was thinking that every sub-interface would probably always need an 
encapsulation, because it necessary to know how to demultiplex packets 
from the parent interface to the child.

>
> Examples of practical use of the sub-interface abstraction and 
> /interfaces/interface/encapsulation for the most common cases (e.g. 
> l2vlan bridge configuration) is something that should be presented. If 
> not as part of the draft on the mailing list as proof of concept.
I will add examples to the draft, and updated before the next IETF. 
Others have raised this as well.

>
> IMO ietf-flexible-encapsulation@2017-03-13.yang and 
> ietf-if-l3-vlan@2017-03-13.yang along with the 
> /interfaces/interface/encapsulation container definition can be merged 
> into single module called ietf-sub-intf-vlan.yang where the 
> encapsulation-sub-interface identity and the encapsulation container 
> are defined.
I'll think this over.  I wanted to enable maximum flexibility as to what 
devices implement, although of course feature keywords is also an option.

Thanks,
Rob


>
> Vladimir
>
> .
>