[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nested operation attribute interoperability
Andy Bierman <ietf@andybierman.com> wrote:
> Hi,
>
> I am trying to create an matrix to help me optimize code
> related to the processing of the nested operation attribute.
> It would be nice if vendors handled this in an interoperable manner.
Absolutely.
> I try to follow the Postel Principle and not generate any
> errors unless it is mandatory. I use containers to make
> it easy to apply a 'delete' operation to an entire table,
> as well as easier access control configuration.
>
> At any given point in a <config> subtree, there is a 'parent'
> edit operation and a potentially different 'child' edit op.
> Obviously the parent edit-op has precedence. The start state
> is allowed to be 'none', but once the operation is set, it can
> never go back to 'none'.
>
> This table shows each parent --> child edit-op transition,
> and whether it is valid or an error. My question to the WG
> is whether this table is correct or not:
>
> child -> create merge replace delete
> parent
> |
>
> none V V V V
>
> create x V-1 V-1 E-1
>
> merge V-3 x V V-3
>
> replace V-3 V x V-3
>
> delete E-1 V-2 V-2 x
Our table is a bit different, and I think the reason is b/c you have a
different meaning of the operation 'replace' than us (and others such
as juniper). This has been discussed before (see the thread "Second
Example in section 7.2 of netconf-proto"). Your 'replace' is more of
a 'merge'. Personally I think it is even more important to have an
interopable interpretation of the meaning of these operations.
Anyway, this would be our table, differencies to yours are marked with
(*):
child -> create merge replace delete
parent
|
none V V V V
create x V-1 E-1(*) E-1
merge V-3 x V-4(*) V-3
replace E-1(*) V x E-1(*)
delete E-1 V-2 E-1(*) x
> Notes:
>
> V: valid, no errors or warnings
>
> V-1: valid, but create has precedence.
> Only merge-with-nothing or replace-nothing scenarios are valid.
>
> V-2: valid, but has no effect because delete has precedence
>
> V-3: valid, but create or delete rules now in affect for next child
>
> E-1: 'bad-attribute' or 'operation-failed' error (not sure which)
> Requirements for create and delete cannot both be met
> in the same subtree, regardless of the data model
>
> x: no edit-op change
V-4: valid, but replace rule now in affect for next child
For errors (E-1), we use 'bad-attribute'. (currently with error-type
'application', which I think might be wrong, it should probably be
'protocol'. Deciding correct error-type is sometimes tricky...)
/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/>