[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Explicit and unique naming of configuration target
At 02:54 PM 5/23/2003, Chen, Weijing wrote:
>Andy Bierman wrote:
>> I agree (and said this before) that the protocol should have
>> distinct create, modify, and delete operations. The issue
>> is how that is done. My concern with putting operations at
>> the attribute level is the extra complexity on the device
>> in supporting unlimited combinations of operations.
>>
>The operation must associate with the most immediate element of intended
>operation to avoid the ambigious. Otherwise even with complex rules
>regarding operation (e.g. "get" apply to last element, or last 3 elements,
>or last 7 elements plus one of left sibling if blabla, etc.), one still have
>cases fall outside the rules.
what's to prevent multiple, possibly conflicting operations
on various elements at various levels of the sub-tree?
>> For example, what if the client was adding an IPv6 address to
>> an interface (but only if it exists), but the interface
>> already had an IPv4 address. The operation succeeds.
>> The device deletes the IPv4 address and replaces it with
>> the IPv6 address. This looks like success to the client,
>> but not to a different client that had previously set up
>> the IPv4 address. You can't just blindly change config
>> without understanding its current state.
>>
>You have a poorly designed XML schema data model then. You should have two
>sub-elements (or two attributes): one for IPv4 address, one for IPv6
>address. Or one sub-element (or one attribute) with union type: choice of
>IPv4 address or IPv6 address. Also the device need to send a update
>notification to second client if second client so concerns about the update
>made by first client.
I disagree. This will be a common schema design, where a <choice>
element (basically a union) is used to allow for different forms
of a basic parameter, such as an IP address.
One could argue that the protocol should force the client
to use a <modify> operation in order to change the address
from a IPv4 variant to an IPv6 variant, instead of a <create>
operation. IMO, either way, the client needs to know the
exact state of the device in order to construct the correct
PDU.
I wouldn't mind operations-as-attributes if there is a way
to constrain it and keep device implementation complexity
low. When I see emails containing suggestions that the
client should be able to mix read operations with write
operations (for arbitrary parameters), or proposals using
nested XPath expressions, I don't get a sense that
constraining complexity is a universally shared goal.
>--
>
>Weijing Chen
Andy
>SBC Laboratories, Inc.
>
>9505 Arboretum Blvd.
>
>Austin, TX 78759
>
>512 372 5710
>
>wchen@tri.sbc.com
>
>
>> -----Original Message-----
>> From: Andy Bierman [mailto:abierman@cisco.com]
>> Sent: Friday, May 23, 2003 11:29 AM
>> To: Glenn Waters
>> Cc: Juergen Schoenwaelder; lmenten@lucent.com; netconf@ops.ietf.org
>> Subject: RE: Explicit and unique naming of configuration target
>>
>> At 06:45 AM 5/23/2003, Glenn Waters wrote:
>>
>> >I also agree with Larry and Jeurgen on this point. The semantics of the
>> protocol need to distinguish between create and modify.
>> >
>> >Andy, with respect to your statement that "the client should know the
>> state of the device" I think that the complexity is much greater than you
>> may think. When you get into systems that programmatically handle the
>> configuration of the device it can be very challenging to know the state
>> of the device; especially when other systems and other humans may be
>> modifying the device at the same time.
>>
>> I agree (and said this before) that the protocol should have
>> distinct create, modify, and delete operations. The issue
>> is how that is done. My concern with putting operations at
>> the attribute level is the extra complexity on the device
>> in supporting unlimited combinations of operations.
>>
>> I am not at all convinced that this proposal to be able
>> to create a sub-element within a parent (but only if
>> the parent exists) removes the need for locking or
>> the need for the client to understand the state of the
>> device before modifying the configuration.
>>
>> For example, what if the client was adding an IPv6 address to
>> an interface (but only if it exists), but the interface
>> already had an IPv4 address. The operation succeeds.
>> The device deletes the IPv4 address and replaces it with
>> the IPv6 address. This looks like success to the client,
>> but not to a different client that had previously set up
>> the IPv4 address. You can't just blindly change config
>> without understanding its current state.
>>
>>
>> >Regards, /gww
>>
>> Andy
>>
>>
>> >> -----Original Message-----
>> >> From: Juergen Schoenwaelder [<mailto:schoenw@ibr.cs.tu-> bs.de>mailto:schoenw@ibr.cs.tu-bs.de]
>> >> Sent: Friday, May 23, 2003 02:59
>> >> To: abierman@cisco.com; lmenten@lucent.com
>> >> Cc: netconf@ops.ietf.org
>> >> Subject: Re: Explicit and unique naming of configuration target
>> >>
>> >>
>> >> >>>>> Andy Bierman writes:
>> >>
>> >> Andy> Why would the client want an MD5 key added to an interface, but
>> >> Andy> not want the interface to be created, if necessary? This seems
>> >> Andy> to be optimizing for a corner-case. The client should check if
>> >> Andy> the interface exists if it's that important. I don't think it's
>> >> Andy> unreasonable for the client to know the state of the device
>> >> Andy> before modifying the device config. I view the 'add MD5 key' as
>> >> Andy> a modify, not an add.
>> >>
>> >> If I understand the discussion, then Larry basically wants to be able
>> >> to make a clear distinction whether an <add-config> requires some base
>> >> instance to exist already (and to fail if it does not) or whether the
>> >> requests also asks the device to create a base instance with default
>> >> settings if it does not exist. I tend to agree that such a distinction
>> >> is important since the effects on the device are quite different.
>> >>
>> >> I also heard Larry saying that he prefers to explicitely select the
>> >> instance(s) an operation is supposed to work on by passing e.g. an
>> >> xpath expression which selects the relevant object instances.
>> >>
>> >> Larry, did I understand you correctly?
>> >>
>> >> /js
>> >>
>> >> --
>> >> Juergen Schoenwaelder International University Bremen
>> >> Phone: +49 421 200 3587 P.O. Box 750 561, 28725 Bremen,
>> Germany
>> >> Fax: +49 421 200 3103 <<http://www.iu-> bremen.de/>http://www.iu-bremen.de/>
>> >>
>> >> --
>> >> 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/>http://ops.ietf.org/lists/netconf/>
>>
>>
>> --
>> 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/>
--
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/>