Re: [netmod] What is the best way to HW identities

Martin Bjorklund <mbj@tail-f.com> Thu, 17 August 2017 11:03 UTC

Return-Path: <mbj@tail-f.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 490B01200B9 for <netmod@ietfa.amsl.com>; Thu, 17 Aug 2017 04:03:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 cSfHB_gVFwjA for <netmod@ietfa.amsl.com>; Thu, 17 Aug 2017 04:03:53 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id E7892124207 for <netmod@ietf.org>; Thu, 17 Aug 2017 04:03:52 -0700 (PDT)
Received: from localhost (unknown [173.38.220.57]) by mail.tail-f.com (Postfix) with ESMTPSA id D34E71AE01AA; Thu, 17 Aug 2017 13:03:51 +0200 (CEST)
Date: Thu, 17 Aug 2017 13:02:22 +0200
Message-Id: <20170817.130222.702011777700824230.mbj@tail-f.com>
To: bart.bogaert@nokia.com
Cc: netmod@ietf.org, joey.boyd@adtran.com, ludwig.pauwels@nokia.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <AM2PR07MB0627F9D2CBD31D40AA6BCC8294830@AM2PR07MB0627.eurprd07.prod.outlook.com>
References: <AM2PR07MB0627F9D2CBD31D40AA6BCC8294830@AM2PR07MB0627.eurprd07.prod.outlook.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/ZMqxeay7z3Vhrd0stu0k-5HUorw>
Subject: Re: [netmod] What is the best way to HW identities
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: Thu, 17 Aug 2017 11:03:55 -0000

Hi,

"Bogaert, Bart (Nokia - BE/Antwerp)" <bart.bogaert@nokia.com> wrote:
> Hello,
> 
>  
> 
> Within BBF we have had a discussion on the use of
> draft-ietf-netmod-entity-03, and we would appreciate to hear the opinion of
> IETF. More specific the discussion is on the use of the leaf 'class' and the
> leaf 'parent-rel-pos'.
> 
>  
> 
> First some BBF context:
> 
> - the systems for which BBF specifies YANG models can be built with various
> 'types of hardware', e.g. as pluggable item (module) it can contain boards
> and it can contain SFP/XFPs. As 'type of port' it can have connectors to
> terminate fastdsl links (supported over copper wires), and it can have
> positions to insert optical fibers (e.g. the position in the SFP in which
> one can plug the optical fiber).
> 
>  
> 
> - in the data model we have the need for some conditional data: e.g. an
> SFP/XFP has some data that is defined in SFF-8472. This data is not
> applicable to boards. Hence we need to distinguish between these 2 types of
> pluggable items. A 2nd example: for the optical fibers terminated by an
> SFP/XFP, we have specific data that is also defined in SFF-8472, e.g. the
> wavelength. This data is not applicable to fastdsl ports. On fastdsl ports
> we have specific data that relates to remote power feeding. Obviously there
> is no power feeding over the optical fiber. There might be other ports with
> (for now) no specific data, e.g. an rj45. Conclusion: need data conditional
> to the port type.
> 
>  
> 
> In draft-ietf-netmod-entity-03 we read
> 
> - "The "class" leaf is a YANG identity that describes the type of the
> hardware.  Vendors are encouraged to either directly use one of the common
> IANA-defined identities, or derive a more specific identity from one of
> them.
> 
>  
> 
> - As description for 'parent-rel-pos': "An indication of the relative
> position of this child component among all its sibling components.  Sibling
> components are defined as components that share the same instance values of
> each of the 'parent' and 'class' nodes.
> 
>  
> 
> Based on what we read in the first bullet a thought was to specialize the
> various hardware-class identities. Examples:
> 
>  
> 
>   identity board {
> 
>     base ianahw:module;
> 
>     description
> 
>       "A board is a special type of module that represents a physical item,
> commonly known as a board or a card.";
> 
>   }
> 
>  
> 
>   identity transceiver {
> 
>     base ianahw:module;
> 
>     description
> 
>       "A transceiver is a special type of module that represents a physical
> item like a pluggable SFP, an SFP+, or an XFP; or a soldered SFF.";
> 
>   }
> 
>  
> 
>   identity transceiver-link {
> 
>     base ianahw:port;
> 
>     description
> 
>       "A transceiver-link is a special type of port that terminates an
> optical fiber.";
> 
>   }
> 
>  
> 
>   identity rj45 {
> 
>     base ianahw:port;
> 
>     description
> 
>       "A RJ45 is a special type of port that terminates an electrical
> Ethernet link.";
> 
>   }
> 
>   identity fastdsl {
> 
>     base ianahw:port;
> 
>     description
> 
>       "A fastdsl is a special type of port that terminates a copper wire
> supporting a FAST or one of the DSL types link.";
> 
>   }
> 
>  
> 
> The intention with this approach: the 'class' leaf is used to distinguish
> between all types of hardware. If hardware specific data is augmented to the
> hardware model, then it is using a 'when' condition referring to the value
> of the leaf 'class'.
> 
>  
> 
> Based on the description of the parent-rel-pos it is understood that the
> value of this leaf is relative to the value of the class, so numbering of
> e.g. the various types of port supported by one board is independent of each
> other.
> 
>  
> 
> Then the worry starts: 
> 
> - some of the BBF members understand this concept of specializing the
> hardware identities and use these values for the leaf class as the way to
> go, and take the impact on the numbering as a given.
> 
>  
> 
> - Others think this impact on the parent-rel-pos is not the intention and
> assume a flat numbering of all childs within a parent

Good point.  In the original model (i.e. the MIB), with fixed values
for the class, having separate numbering schemes for separate classes
makes sense.  For example, if a certain board has a set of ports, some
fans and a power supply, it makes sense that these are numbered
individually.

However, with specialized ports, this may or may not make sense.

It might be possible to define parent-rel-pos in a way that gives the
implementation some flexibility.  For example, all ports could share
the same numbering scheme.  The important thing in the current model
is that there must not exist two components with the same values for
'parent', 'class', and 'parent-rel-pos'.  (strictly speaking, there is
no requirement that the parent-rel-pos is always monotonically
increasing amongst siblings, so maybe this is possible even today)

> , hence do not want to
> use the class leaf for further specialization, hence want to introduce a new
> separate leaf to contain the more detailed information, hence the
> conditional data for the various types of hardware shall be defined with a
> 'when statement' referring to this new separate leaf.
> 
>  
> 
> The feedback we would appreciate from IETF: 
> 
> - did IETF consider the need for additional conditional data?

Yes, the idea was to use the 'class' leaf for this.

> - which approach is the IETF preference?

I would prefer to see if we can find a definition of parent-rel-pos
that makes numbering work better so that the 'class' identity can be
used for specialization.

> - in case the IETF preference is to specialize the hardware identities, does
> IETF think it is worth to standardize them in IANA, or is the preference to
> keep these identities within BBF?

I don't know the answer to this question, but if we want to allow for
standardized sub-classes, we have to create a new IANA registry (or
extend the current one), since the current one only contains the
top-level class (hmm, I just realized that the document needs an
updated IANA considerations section anyway; it needs to mimic RFC
7224 -- probably needs to create a common registry for hardware types
from which the MIB and YANG module can be generated)


/martin