Hi,

All of these suggested solutions seem OK if one were looking for the most
disruptive
way to solve the problem.  Tossing iana-if-types and starting over would
achieve that result.

First, this is a server capabilities problem, so it is related to the
implementation, not the schema.

Second, the if-types that are allowed at any given moment can be specific
to the implementation
and the interface name.

I think this is the 3rd time I have suggested an RPC to solve the actual
probem:

  rpc get-allowed-if-types {
    description
      "Retrieve the interface types allowed by the server.";
    input {
      leaf name {
         type if:interface-ref;
         description
            "If present, the server will return allowed interface types for
this interface name only.
             If not present, then the server will return all supported
interface types.";
       }
     }
     output {
         leaf-list type {
            type identityref {
               base interface-type;
            }
            description
              "Specifies a supported interface type";
        }
    }
 }


Andy


On Fri, Apr 6, 2018 at 6:55 AM, Robert Wilton <rwil...@cisco.com> wrote:

> At the moment, I would say that the vast majority of the definitions in
> IANA.yang are just noise because they refer to definitions that are
> obsolete.  Our OS seems to use only 10% of the 287+ defined IANA types, and
> that 10% includes technologies such as frame relay, serial, atm, that very
> much seem to be on their way out.
>
> Using hierarchical identities and interface properties seems like a
> reasonable solution to me (e.g. as described in
> draft-wilton-netmod-interface-properties-00).  E.g. so rather than having
> configuration with a direct when statement on a specific list of interface
> types, instead the when statement can depend on the appropriate interface
> properties.
>
> I also like Lada's suggestion of trying to spread out the IANA definitions
> to the modules that are defining the technology.  So, if a device
> implements support for PPP configuration/operational state then it would
> also naturally define any PPP related interface identities at the same time.
>
> If a vendor wants to define their own flavour of Ethernet interface then
> they can do so in their vendor specific module without requiring all
> tooling to become aware of it, and allowing the existing Ethernet
> configuration to work as normal.
>
>
>
> On 06/04/2018 13:01, Ladislav Lhotka wrote:
>
>> On Fri, 2018-04-06 at 13:36 +0200, Juergen Schoenwaelder wrote:
>>
>>> On Fri, Apr 06, 2018 at 10:51:48AM +0200, Ladislav Lhotka wrote:
>>>
>>>> Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de> writes:
>>>>
>>>> If we would have a mechanism to deviate an identityref to a subset of
>>>>> identity values supported by an implementation, we would have solved a
>>>>> more generic problem. Yes, the IANA list could be 'nicer' but it will
>>>>> never be 'nice'.
>>>>>
>>>> Three mechanisms can be used for this:
>>>>
>>>> - splitting the identities into separate modules
>>>>
>>> Whatever module organization you come up with, it won't work for all
>>> implementations.
>>>
>> Yes, getting the root of this structure right is perhaps somewhat tricky,
> but I don't think that it needs to be all encompassing, or perfect.
>
> - using features
>>>>
>>> Making every identity a feature will turn the feature system upside
>>> down. This is similar to making every leaf a feature.
>>>
>>> - using deviations (even though vendors frown on them)
>>>>
>>> If my implementation only supports A and B and C, then a deviation may
>>> state exactly that and the problem is solved. Hoping that my specific
>>>
>> In fact, deviations cannot delete identity values because they aren't
>> schema
>> nodes, so they are of no use.
>>
>> combination of A and B and C matches a set of modules or some set of
>>> features is in my view an illusion.
>>>
>> An implementation that supports, say, a given type of tunnel interface
>> will
>> implement the module that covers this tunnel type. If the identity for
>> this
>> tunnel interface type is defined in the same module, then all is good. I
>> don't
>> get why this should be an illusion. On the contrary, I think it is the
>> cleanest
>> available solution to this conformance specification problem.
>>
>> Vendors not shipping proper deviations are essentially telling their
>>> customers that they have not yet understood model driven management.
>>> We need to change the mindset here instead of polluting our data
>>> models with hundreds or thousands of fine grained 'features'.
>>>
>> I agree that zillions of features aren't nice but it seems to be the only
>> solution that we currently have for modules of the iana-if-type style.
>>
>> Having an bulky set of identity values, most of which are of no interest,
>> is IMO
>> much worse and could also be a security issue if implementors aren't
>> careful
>> enough.
>>
> I'm not sure there is a security concern here, but a long list where most
> of the values are cruft doesn't really seem to help anyone.  It also makes
> it harder to know which is the right type to use.  E.g. will everyone know
> that they should use "ethernetCsmacd" rather than "gigabitEthernet" for an
> optical GE interface that doesn't actually use CSMA/CD ...
>
> Thanks,
> Rob
>
>
>
>> Lada
>>
>> /js
>>>
>>>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>
_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to