Subject: Re: [netmod] identifier length survey

From: Gerhard Muenz <[email-masked]>
Date: Sun, 05 Apr 2009 21:48:18 +0200

Hi Andy,

Andy Bierman wrote:
> So it's OK if I ask the IPFIX WG to
> check the ipfix-psamp data model so
> all identifiers are 8 chars or less?
> 
> If my compliant implementation can pick any identifier
> length to support, then why can't I pick 8? or 1?
> I want the IPFIX WG to ONLY produce standards that
> will work on compliant YANG implementations.

What do you mean by a "compliant YANG implementation"?
Maybe you can give a definition?

I think that compliance is per YANG module. Vendors will implement
specific data models for Netconf that are specified in YANG (e.g., the
one of the IPFIX WG). Then, they will advertise their product like: "my
router/management system supports the IPFIX configuration data model
(RFC XXXX)". They won't say that YANG or whatever language was used in
the implementation process.

> The identifier string is used on-the-wire quite a bit.
> It is used by readers and operators even more.

As I've said already, I'm not at all against recommending a resonable
identifier length.

Gerhard

---

From: Andy Bierman <[email-masked]>
Date: Sun, 05 Apr 2009 12:56:46 -0700

> As I've said already, I'm not at all against recommending a resonable

The standard needs to be clear to implementors
to promote interoperability.  The current sentence is
quite clear to implementors.  I think a section like
C99, 5.2.4.1 is needed for YANG, not just one sentence.

An Informational RFC is not part of any standard.

> Gerhard

Andy

---

From: Gerhard Muenz <[email-masked]>
Date: Sun, 05 Apr 2009 22:21:52 +0200

Hi Andy,

Andy Bierman wrote:
> to promote interoperability.  

Implementors of what? If you implement a specific YANG module, there's
no need for any additional identifier length limitation. It's all in the
module spec.

Probably you think of implementors of tools that translate YANG into
something else, like C99?

> The current sentence is

I do not understand the comparison with C99. Must YANG be directly
translated into C99? If YANG is compared to any programming language, I
would rather choose a current high-level language like Java and Python.
There, you do not find such limitations.

Gerhard

---

From: "Randy Presuhn" <[email-masked]>
Date: Sun, 5 Apr 2009 20:05:03 -0700

Hi -

I find it really hard to believe that folks really mean some of the things
they've been saying in this thread.  As I understand some of the viewpoints,
if we in the IETF develop a standard data model for some class of gizmo,
we'd have no reason to complain about any tool which cannot process
that model because its identifiers are too long, or model elements are too
deeply nested, or because it is in any other regard "too complex".  In short,
model designers will not be able to assume that anything will actually work
in off-the-shelf tools.  This is insane.

The "minimum maximums" from the SNMP SMI were the result of hard-
earned experience in implementation and deployment.  In the absence
of such minimum maximums, vendors *cannot* be relied upon to "do the
right thing".  The pressures to make short cuts or to over-optimize for
specific use cases are just too great, and even rudimentary tool
interoperability suffers as a result.

Randy

---

From: Martin Bjorklund <[email-masked]>
Date: Mon, 06 Apr 2009 10:18:44 +0200 (CEST)

"Randy Presuhn" <[email-masked]> wrote:
> deeply nested, or because it is in any other regard "too complex".

Not even C99 does this.  They say that (sec 5.2.4.1 again):

  The implementation shall be able to translate and execute at least
  one program that contains at least one instance of every one of the
  following limits: [...]

So just b/c a given program meets all those limits, it is not required
that a compliant implementation can "translate and execute" it.

IIRC, there are no limits on e.g. the number of scalar variables in a
SMIv2 module (I guess there's an implicit upper bound b/c of oid size
restrictions, but that's pretty big.)

> In short,

Maybe you are right, but it seems to work fine for programming
languages such as Java, for some aspects if SMIv2, and it seems to
work for XML in general.

/martin