Hi Lada,

On 08/01/2016 12:30, Ladislav Lhotka wrote:
Robert Wilton <rwil...@cisco.com> writes:

Hi Lada,

I think that requirement 1D is fairly key to what is being asked for
here to allow both the user and system to easily relate between what the
operator desires and what configuration the system is actually using,
In a way, system-controlled interfaces are default entries in the
interface list - and the system can certainly be using interfaces with
no configuration installed by NETCONF/RESTCONF clients.

so I wouldn't be particularly keen on loosening this requirement.
OK, but then IMO this intended-applied dualism is of limited
utility. For many systems or services, asynchronicity is not an option,
or isn't important.
I don't really agree. I think that this is plausibly important to anyone who wants to manage network devices in an automated way.

Today, when a config request has been processed by NETCONF/YANG then it seems that the only thing the server actually promises is that it might apply the configuration at some point in the future. It makes no guarantees as to whether that configuration has or ever will be successfully applied! The expectation is that the operator can infer from the operational state of the system whether the configuration has been applied (which may not always be possible).

Personally, if I was an operator coding to NETCONF/YANG then I would prefer a device that supported the opstate semantics because compliant devices will tell you what configuration that are actually running. This makes it easier to control/manage. I.e. I can easily find out if/when my configuration is applied, and I can easily retrieve any associated operational state. In some cases this may mean that I don't need to check the derived state at all, in other cases it may simplify the checking of the derived state that I need to perform.

Again, regarding sync/async, I would also most likely choose async because I perceive that it is simpler to code in a robust fashion.


For the ACL example:
Would it be feasible to change the ACL module to use a leafref to the
interface name, with the added constraint that you have to at least
configure the existence of an interface before you can have any
configuration referring to it?
Well, yes, that's how it is supposed to be done now - also, for example,
for stacking interfaces as in Appendix B of RFC 7223.

It is not only extra work: the interface list can be locked, so it may
not be possible to immediately create a dummy interface entry and,
consequently, an ACL rule with that interface cannot be configured. In
this sense, using a string rather than a leafref looks like a reasonable
choice.
Locking is presumably specifically related to the config protocol being used. As such I don't think that it should be used as a reason to compromise the structure of data model.

But having looked at the ACL model a bit more closely, and noticing how input_interface is used, then I agree with Martin, I think that it makes sense for the reference to be an interface-state-ref.


As Martin pointed out, with YANG 1.1 it would be possible to refer to an
interface entry in state data from configuration. On the other hand,
with "require-instance false" validation won't detect errors in ACL
configuration such as referring to a non-existent interface.
True, but for this particular scenario, it wouldn't be any different from matching on the wrong IP address (which also can't be validated by the device in question).

Presumably the ACL is still valid even if the input-interface for one ACE doesn't exist. Wouldn't it just mean that one particular ACE entry wouldn't match any packets?

Thanks,
Rob



Lada

Thanks,
Rob


On 07/01/2016 10:20, Ladislav Lhotka wrote:
Hi,

a good use of applied configuration could be to formalize the concept of 
system-controlled entries as defined in RFC 7223, routing-cfg, and probably 
elsewhere, too.

My idea is that system-controlled interfaces or other entries would appear in 
applied configuration, but not in intended configuration until something needs 
to be really configured. We could then permit leafrefs from intended 
configuration to refer to leafs in applied configuration. One case where this 
would be useful is the ACL module, where match conditions refering to 
interfaces currently have to use plain strings as references to interface names.

However, the above idea seems to be at odds with requirement 1D in 
opstate-reqs-02. I wonder: could that requirement be relaxed or removed so that 
the above use case can be supported?

Thanks, Lada
--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C




_______________________________________________
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