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

Re: few quick comments on notification-07



Andy Bierman <ietf@andybierman.com> wrote:
> Martin Bjorklund wrote:
> > Andy Bierman <ietf@andybierman.com> wrote:
> >>> So what's your suggestion?  Do you agree that this is a problem?
> >>>
> >> yes.
> >> A giant red flag goes up when I see massive implementation complexity
> >> for a loosely defined standard, since this always leads to interoperability
> >> problems.
> >>
> >>> I don't think this is a CLR - if the type is 'any', we do
> >>> delete/replace/create on the entire thing.   One alternative would be
> >>> to not allow 'any', which in this case means remove namedProfiles.
> >> The concern I have is that the protocol defines the edit-config operations
> >> and it doesn't say in RFC 4741 that if the agent identifies a sub-node
> >> within the configuration contents of type 'any', then all 'operation'
> >> attribute declarations within that subtree will be ignored, and a 'replace'
> >> operation will be performed on the node of type 'any' instead.
> >>
> >> This is a hack, not a CLR.
> > 
> > The idea was that the agent would just *allow* these operations, not
> > silently convert a delete into a replace.  So if it receives a
> > 'operation' attribute somewhere within the 'filter', it would raise an
> > error.
> > 
> > I think this is a clean way to handle 'any'.
> 
> So an operation-not-supported error gets returned instead?

I'm not sure that's the correct error code.  Compare with this case.
Suppose a 'service' has two keys, 'ip' and 'port'.  What error message
do you get if you send:

   <service nc:operation="create">
     <ip>10.0.0.1</ip>
     <port nc:operation="delete">80</port>
     ...
   </service>

> The actual edit-operation in effect at any node depends on
> the operation attribute(s) and the default-operation parameter.
> The default is 'merge'.  So a merge on type 'any' can silently
> turn into a 'replace' instead?

In the same way as merge "silently turns into a replace" on an
integer:

   <ifMtu nc:operation="merge">1500</ifMtu>

vs.

   <ifMtu nc:operation="replace">1500</ifMtu>



> I think the specification of this clean way to handle 'any'
> needs much more thought around the corner-cases.

Well, it's not even written down, so you're probably right.  We
currently do not support 'any' in this way, but this is the way I've
planned to support it.

> >> This is an important issue because these named profiles are
> >> mandatory-to-implement.  They are completely redundant as well.
> >> There are no interoperability problems possible when type 'any'
> >> is passed as an RPC parameter, but this is not true for the
> >> edit-config operation on configuration data of type 'any'.
> >>
> >> We have nothing in SMIv2 like type 'any'.
> >> IMO, it is an extremely bad idea to use this data type
> >> in a NETCONF configuration database.  All data should
> >> be named and strongly typed instead.  This is a case where
> >> the protocol WG is getting into data modeling issues it
> >> doesn't fully understand.
> > 
> > I agree, but I can see that it is useful in some circumstances,
> > e.g. a logging mib is much easier to define with an 'any' type.
> 
> Yes, but that is monitoring data that is not affected by edit-config.
> I should of said "writable data".  This is not a problem for read-only data.

Ok.


/martin

--
to unsubscribe send a message to netconf-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/netconf/>