Subject: Re: [netmod] Management Operations on YANG modelled operational data

From: Kent Watsen <[email-masked]>
Date: Mon, 12 Dec 2016 16:54:31 +0000

Hi Tim,

I don’t understand your problem.  Which parts in the referenced drafts should we look at, or can you provide an example?

Thanks,
Kent

Hi,

I have a general question related to management operations on operational data. The question is intended to be protocol agnostic, since as I understand it, the NETCONF management operations do not apply to data modelled in YANG where config is false. In other words, there is no generic NETCONF RPC that will, for example, delete entries in a table of operational data.

My question arises because we are implementing a feature that is defined using YANG, and has custom NETCONF RPCs whose operations can create, modify and delete rows of a YANG list that has entries that are both config is true and config is false. The rows that are config is false are the only rows that can be affected by the custom NETCONF RPCs; the other rows are affected only by the standard NETCONF management RPCs. However, there is a need for management operations to be able to remove the rows and the operations associated with them for various reasons.

So my question is this: what is the general approach to this problem?

As mentioned above, for NETCONF, I believe the answer is that a custom RPC has to be used. But is this intended to be the case for all protocols that can deal with YANG modelled data?

In case it matters, the specific case I'm dealing with is subscriptions as per https://tools.ietf.org/html/draft-ietf-netconf-rfc5277bis-01 and https://tools.ietf.org/html/draft-ietf-netconf-yang-push-04.

Thanks,

Tim

-- 
Cisco Systems Canada Co.
2000 Innovation Drive
Kanata, ON, Canada, K2K 3E8
Preferences <http://www.cisco.com/offer/subscribe/?sid=000478326>
Unsubscribe <http://www.cisco.com/offer/unsubscribe/?sid=000478327>
Privacy <http://www.cisco.com/web/siteassets/legal/privacy.html>

_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod

---

From: "Tim Jenkins (timjenki)" <[email-masked]>
Date: Mon, 12 Dec 2016 17:43:57 +0000

Hi,

As an example, say a number of subscribers connect in to a system using NETCONF, then issue the <establish-subscription> RPCs as defined by https://tools.ietf.org/html/draft-ietf-netconf-rfc5277bis-01. These appear as entries in the ietf-event-notifications/subscriptions container, which is "config false". They don't appear in the ietf-event-notifications/subscription-config container since they are not configured; they are dynamic.

A network manager is examining the system and observes the subscriptions in the ietf-event-notifications/subscriptions container and decides that some or all of them should be deleted. Since the network manager may be using a tool that uses NETCONF (or perhaps some other tool) to remotely manage the system, what underlying method would be used to delete these subscriptions?

As mentioned below, as far as I can tell, a standard NETCONF management RPC like <edit-config> cannot be directed at these subscriptions since config is false. So I'm trying to understand if there is some other general solution for this type of problem for other protocols, or perhaps even for NETCONF other than a custom RPC such as those already defined for this application specific purpose.

Hope this helps...

Tim

On 2016-12-12, 11:54 AM, "Kent Watsen" <[email-masked]> wrote:

    Hi Tim,

    Thanks,
    Kent

    Hi,

    

    
    Thanks,
    
    Tim

---

From: Kent Watsen <[email-masked]>
Date: Mon, 12 Dec 2016 21:04:17 +0000

Hi Tim,

Thanks for the detailed example.  I’ll be interested to see if anyone else has a better suggestion, but my inclination is to agree with your idea of using an RPC (or action) statement to remove these dynamic entries.  Removing entries with an RPC that were created with an RPC has a nice symmetry to it.  

I’m unsure about your concern for other protocols; presumably all protocols supporting YANG data models would support the RPC/actions statements as well, right?

Thanks,
Kent

Hi,

Hope this helps...

Tim

    Hi Tim,

    Thanks,
    Kent

    Hi,

    

    
    Thanks,
    
    Tim

---

From: "Tim Jenkins (timjenki)" <[email-masked]>
Date: Mon, 12 Dec 2016 21:23:01 +0000

Embedded <<Tim>>.

On 2016-12-12, 4:04 PM, "Kent Watsen" <[email-masked]> wrote:

    Hi Tim,

<<Tim>> In this specific case, yes, and we already have an RPC designed to delete a subscription, but it's intended use is by the entity that established the subscription. So in that sense the symmetry is broken. If we re-use it for management operations, we have some language changes that are needed.

<<Tim>> In general, I would assume yes, but it may be that other protocols have different definitions of what the generic management operations are permitted to do. They may be less strict for example in saying that edit/delete/modify operations cannot touch data that is marked as config false. Presumably there's a greater risk of side effects, but those protocols may choose to allow the operations and let the user beware. Perhaps if I had more history with YANG and NETCONF I would know if the management prohibitions on config false modelled data comes from YANG modelling or if it comes from NETCONF protocol definition, then it would be clearer. Maybe that's the question that I'm actually asking.
    
    Thanks,
    Kent

    Hi,

    
    
    Hope this helps...
    
    Tim

    

        Hi Tim,

        Thanks,
        Kent

        Hi,

        

        
        Thanks,
        
        Tim

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Tue, 13 Dec 2016 00:10:26 +0100

The proper action in this case may be to kill the NETCONF session.

It can be debated whether simply deleting state created by some other
system (the subscription in this case) is a proper management approach
since it may lead to undefined or erratic behaviour of other systems
or to loops where some systems create state that others delete and so
on.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

---

From: Martin Bjorklund <[email-masked]>
Date: Tue, 13 Dec 2016 08:35:50 +0100 (CET)

> or to loops where some systems create state that others delete and so

+1

/martin

---

From: "Eric Voit (evoit)" <[email-masked]>
Date: Tue, 13 Dec 2016 14:08:44 +0000

> From: Juergen Schoenwaelder: Monday, December 12, 2016 6:10 PM
> 
> It can be debated whether simply deleting state created by some other system
> (the subscription in this case) is a proper management approach since it may
> lead to undefined or erratic behaviour of other systems or to loops where some
> systems create state that others delete and so on.

Wouldn't this have implications to I2RS or OpState?   How would an Operator be able to focus only on the subset of dynamic state which is currently impacted?   

An analogy might be someone with phone and faulty video service connected over their broadband connection.  They get on the phone with an operator to troubleshoot their video, but the operator can't reset the video CPE session without taking out the phone service as well.

Eric

> > As an example, say a number of subscribers connect in to a system using
> NETCONF, then issue the <establish-subscription> RPCs as defined by
> https://tools.ietf.org/html/draft-ietf-netconf-rfc5277bis-01. These appear as
> entries in the ietf-event-notifications/subscriptions container, which is "config
> false". They don't appear in the ietf-event-notifications/subscription-config
> container since they are not configured; they are dynamic.
> >
> > A network manager is examining the system and observes the subscriptions in
> the ietf-event-notifications/subscriptions container and decides that some or all
> of them should be deleted. Since the network manager may be using a tool that
> uses NETCONF (or perhaps some other tool) to remotely manage the system,
> what underlying method would be used to delete these subscriptions?
> >
> > As mentioned below, as far as I can tell, a standard NETCONF management
> RPC like <edit-config> cannot be directed at these subscriptions since config is
> false. So I'm trying to understand if there is some other general solution for this
> type of problem for other protocols, or perhaps even for NETCONF other than a
> custom RPC such as those already defined for this application specific purpose.
> >
> > Hope this helps...
> >
> > Tim
> >
> > --
> > Cisco Systems Canada Co.
> > 2000 Innovation Drive
> >     I don’t understand your problem.  Which parts in the referenced drafts
> should we look at, or can you provide an example?
> >
> >     Thanks,
> >     Kent
> >
> >
> >
> >     Hi,
> >
> >     I have a general question related to management operations on
> operational data. The question is intended to be protocol agnostic, since as I
> understand it, the NETCONF management operations do not apply to data
> modelled in YANG where config is false. In other words, there is no generic
> NETCONF RPC that will, for example, delete entries in a table of operational
> data.
> >
> >     My question arises because we are implementing a feature that is defined
> using YANG, and has custom NETCONF RPCs whose operations can create,
> modify and delete rows of a YANG list that has entries that are both config is
> true and config is false. The rows that are config is false are the only rows that
> can be affected by the custom NETCONF RPCs; the other rows are affected only
> by the standard NETCONF management RPCs. However, there is a need for
> management operations to be able to remove the rows and the operations
> associated with them for various reasons.
> >
> >     As mentioned above, for NETCONF, I believe the answer is that a custom
> RPC has to be used. But is this intended to be the case for all protocols that can
> deal with YANG modelled data?
> >
> >     In case it matters, the specific case I'm dealing with is subscriptions as per
> https://tools.ietf.org/html/draft-ietf-netconf-rfc5277bis-01 and
> https://tools.ietf.org/html/draft-ietf-netconf-yang-push-04.
> >
> >     Thanks,
> >
> >     Tim
> >
> >     --
> >     Cisco Systems Canada Co.
> >     2000 Innovation Drive

---

From: Martin Bjorklund <[email-masked]>
Date: Tue, 13 Dec 2016 15:59:36 +0100 (CET)

"Eric Voit (evoit)" <[email-masked]> wrote:
> > system
> Wouldn't this have implications to I2RS or OpState?

I don't know about i2rs, but it doesn't impact "opstate".

> How would an
> Operator be able to focus only on the subset of dynamic state which is
> currently impacted?
> 
> An analogy might be someone with phone and faulty video service
> connected over their broadband connection.  They get on the phone with
> an operator to troubleshoot their video, but the operator can't reset
> the video CPE session without taking out the phone service as well.

Maybe this is a good reason for using separate sessions, and not try
to do too much in one.

The problem is how you expect the client (and maybe server) to recover
after a forced termination of an ongoing request.  Note that there's
no equivalent operation to kill an ongoing <get/> for example.

/martin