[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Examples of ASN.1 for SMIng.txt




>>>>> Alessandro Triglia writes:

Alessandro> One important point to note about the facilities present
Alessandro> in current ASN.1 is that *every* aspect of the syntax is
Alessandro> now rigorously defined, whereas the form of ASN.1 that has
Alessandro> been used in SMI relied upon an old macro facility that
Alessandro> was flawed.  As a consequence, there are more kinds of
Alessandro> inconsistencies that a generic syntax checker can detect
Alessandro> now in an ASN.1-based SMIng module, than there were for a
Alessandro> SMI module.

Todays ASN.1 might be better than the old ASN.1. But still, a generic
tool can only check ASN.1 and not the SMIng based on ASN.1

>>  The SMI is its own little language with its own syntax and
>> semantic constraints.

Alessandro> True for the semantics, not necessarily true for the
Alessandro> syntax. In our proposal, the syntax is completely and
Alessandro> rigorously defined in ASN.1 in the I-D. As a consequence,
Alessandro> MIB writers could avail themselves of the full power of
Alessandro> the ASN.1 standard notation for defining
Alessandro> arbitrarily-complex data structures (which doesn't seem to
Alessandro> be questioned). This would enable them to create MIBs
Alessandro> containing structures and arrays within structures,
Alessandro> unions, optional components, and so on, with the ability
Alessandro> to express sophisticated constraints on the components and
Alessandro> between two or more components.

There is always a border line where the "rigorously" defines ends.
Your ID contains constructions such as

    SMICharacterString ::= UTF8String(SIZE(0..65535))
        (CONSTRAINED BY {--Not all characters are allowed--})

    Float32 ::= REAL
        (CONSTRAINED BY {-- Encodable in 4 octets --})

which I doubt a generic tool understands. There are also things like
linkages between statements which you can't express in ASN.1.

: If the entity class of an entity instance is an array type without
: an INDEXING-ATTRIBUTES parameter, the table is not indexed. Such a
: table must be linked to another table by means of the BASE-ENTITY-
: INSTANCE and RELATIONSHIP parameters.

Thus, I have some problems with strong claims such as "completely and
rigorously defined".

Alessandro> This is also true of any other SMIng proposals, and any
Alessandro> new languages that they define. The ASN.1 proposal doesn't
Alessandro> need any special infrastructure in itself. Of course, if
Alessandro> an implementor chooses to buy an ASN.1 toolkit, he must
Alessandro> write his code against the toolkit API. Otherwise, he is
Alessandro> free to write a compiler from scratch.

Your ID does not point out which subset of ASN.1 I need to implement
in order to get SMIng. Or is the proposal that I have to have full
ASN.1 support? If that is your proposal, please explain how that maps
to protocols such as SNMP or COPS-PR.

/js

-- 
Juergen Schoenwaelder      Technical University Braunschweig
<schoenw@ibr.cs.tu-bs.de>  Dept. Operating Systems & Computer Networks
Phone: +49 531 391 3289    Muehlenpfordtstr. 23, 38106 Braunschweig, Germany
Fax:   +49 531 391 5936    <http://www.ibr.cs.tu-bs.de/~schoenw/>