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

Re: Some additional obscure questions...Forward Refs



At 2/3/2003:03:35 PM, David T. Perkins wrote:

Hi Dave,

>I think you are trying to change the point,

You're right -- in an attempt to learn something
from you (and anyone else who cares to comment --
so I've modified the Subject header to reflect the
current focus.

>which is that examples to demonstrate conformance are more powerful
>when they check all aspects of the conformance instead of the trivial
>case.

True...but examples which demonstrate arcane scenarios
and/or non-standard/non-required features might contribute
more to confusion than to elucidation.

>Of course,
>examples to "teach" about functionality would be written differently.
>And examples to show common practice would be different.

True.

>On the forward reference issue....
>First, forward references are a feature of ASN.1, and one that is
>carried forward to the MIB module language.

Where is the requirement in the SMI to support forward references?

>(And yes, supporting or not supporting forward references makes a BIG
>difference in MIB compiler design, including data structures and error
>detection and reporting!)

Yes, supporting fwd refs complicates those aspects significantly.
Hence, one would want to be certain that doing so is required
by the applicable standards.

>Second, someone would have to do all the work to determine if
>eliminating all forward references would create an undue hardship
>on writing (and reading) MIB modules.

Are you suggesting none of the MIBs with fwd refs can be
compiled by any of the MIB compilers that don't support
fwd refs?  Or, would you say that those MIBs can normally
be compiled by such compilers with relatively modest editing
to the MIB source file?  Answering "yes" to the first question
seems impossible, given existence proofs.  Answering "yes" to
the second question indicates clearly that fwd refs are not
required in practice.

>There is one place (not in the imports) that MIB compilers not
>supporting forward references results in pretty ugly MIB module
>specification. That is the OID value that is used for the value
>of a MODULE-IDENTITY construct.

Given some standard root starting point(s) -- which we have --
there is no MODULE-IDENTITY value that could not be specified
directly as a successor to an IMPORTed value, I believe.  Am
I wrong about that?  Furthermore, IMHO, every MODULE-IDENTITY
value *ought* to be so constructed...first as a matter of
good design and second as a requirement (since I am currently
unaware of the SMI requirement to support fwd refs).

As I said, I suspect I'll learn something from this thread!
(And thanks for taking the time.)

Cheers,

BobN
- - - - -
>At 02:18 PM 2/3/2003 -0500, Bob Natale wrote:
>>Hi Dave,
>>
>>>It is a "better example", not a better "coding convention". It is
>>>a better example because it makes a forward reference to parentOfA.
>>>A MIB compiler that didn't support forward references would
>>>support the first example, but not the second. Thus, the second
>>>example tells us more about the capabilities of the MIB compiler
>>>than the first.
>>
>>Ok.  But if including the forward reference
>>is not a better coding convention, why should
>>a MIB compiler support it?
>>
>>IMHO:  One cannot reasonably say that writing
>>the example below that avoids the fwd ref is
>>more difficult than the one that avails itself
>>of the fwd ref, so ease of use is not the reason.
>>And, for conceivable examples where it might be
>>"easier" to construct a MIB with such fwd refs
>>(than building the supporting base beforehand),
>>from the perspective of coherency of overall
>>MIB design, it seems that fwd refs (1) are not
>>necessary and (2) lead to design complexity
>>(of the ugly kind) with ancillary negative
>>impacts on other aspects of the overall mgmt
>>infrastructure.
>>
>>So, why would you (the general "you") want to
>>see fwd ref support in a MIB compiler?
>>
>>Thanks,
>>
>>BobN
>>- - - - -
>>>At 03:12 AM 1/31/2003 -0500, Bob Natale wrote:
>>>>At 1/31/2003:12:50 AM, David T. Perkins wrote:
>>>>
>>>>Hi Dave,
>>>>
>>>>>> ...
>>>>>>   AnotherModule DEFINITIONS ::=
>>>>>>   BEGIN
>>>>>>      IMPORTS
>>>>>>         parentOfA FROM NON-AMBIGUOUS-MIB
>>>>>>         a FROM M1 { parentOfA 1 }
>>>>>>         a FROM M2 { parentOfA 2 }
>>>>>       ...
>>>>>    END
>>>>>
>>>>>or better yet...
>>>>>   AnotherModule DEFINITIONS ::=
>>>>>   BEGIN
>>>>>      IMPORTS
>>>>>         a FROM M1 { parentOfA 1 }  -- a forward reference
>>>>>         a FROM M2 { parentOfA 2 }
>>>>>         parentOfA FROM NON-AMBIGUOUS-MIB
>>>>>       ...
>>>>>   END
>>>>
>>>>Why do you consider the second form better
>>>>than the first?
>>>>
>>>>Cheers,
>>>>
>>>>BobN 
>Regards,
>/david t. perkins