Subject: [nmrg] comments on draft-clemm-nmrg-dist-intent-00

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 6 Mar 2019 10:29:19 +0100

Hi,

several months ago, I looked at draft-clemm-nmrg-dist-intent-00 (yes
-00, which means I did this before July 2018) and I started to write
down comments but I never manages to send the out. Since the topic is
still being discussed (virtual interim today), I thought I just share
what I produced back then instead of letting the comments rot on my
notebook. ;-)

Some of my comments will look somewhat old school to people, but this
is on purpose and the intent. :)

/js

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

---

From: Brian E Carpenter <[email-masked]>
Date: Thu, 7 Mar 2019 13:36:05 +1300

Juergen,

I think this is the nucleus of your comments:

>   Well, perhaps
>   the term intent is not even bound to the network layer and it is
>   just a synonym for declarative policy?  But most people likely agree
>   that declarative device config is not what they understand as
>   intent.

At least as I understood it when we wrote RFC7575, intent is *definitely*
not specific to the network layer, and might not be expressed in a way
that refers to any layer at all. (For example, an intent statement that
says: "Save power in preference to saving time".)

Yes, it's declarative in nature. What is much more tricky to get hold of
is the level of detail. Considering a specific autonomic use case, IPv6
prefix management, in RFC-to-be draft-ietf-anima-prefix-management-07
we simply removed "intent" from the text, because the reasonable level
of policy setting was quite concrete and nobody thought it deserved the
word "intent":
   [
      [["role", "RSG"],["prefix_length", 34]],
      [["role", "ASG"],["prefix_length", 44]],
      [["role", "CSG"],["prefix_length", 56]]
   ]
Let's see more concrete examples of policy and/or intent before we
draw too many abstract conclusions.

Regards
   Brian Carpenter

On 06-Mar-19 22:29, Juergen Schoenwaelder wrote:
> _______________________________________________
> nmrg mailing list
> [email-masked]
> https://www.irtf.org/mailman/listinfo/nmrg
>

---

From: Alexander Clemm <[email-masked]>
Date: Thu, 7 Mar 2019 02:15:13 +0000

Hi Juergen,

thank you for your comments!  I agree with most of your observations.  A few comments:

- On your third point (TMN model), yes, the TMN hierarchy is clearly relevant to this discussion.  Of course, the problem is not only how to translate down.  Arguably, the more interesting and less explored aspects concern the upward direction; for example, assessing compliance with and "monitoring" intent.  Control loops are relevant for intent in the sense that an intent system would presumably need to continuously assess whether its behavior is consistent with the intent, and perform necessary correcting actions in case it is drifting.  

- On your fourth point (binding intent to autonomic), I think the way intent is expressed needs to be separated from how it is realized.  Autonomic and distributed (and decentralized!) realizations are wonderful where this can be done, but to the actor uttering the intent it should not matter if the realization is centralized and implemented using a workflow engine.  

- Is intent a synonym for declarative policy?  Maybe we should indeed start by stating what it is not: not limited to device config, as you state.  Not imperative either.  (Are rules considered imperative?)

- Sure, we'll refer to RFC 8309.  However, we will want to refer to intent, not policy...

- Regarding the assertion that without mapping functions higher -layer data models are a waste of time:  I don't quite agree with that.  I do think there is value in higher-layer data models in themselves, as this is how users at a higher layer would expect to interact with the system.  However, the data model by itself does not help in its implementation, and does not capture the interdependencies between artefacts at the higher level and the artefacts at the lower layer.  Both of these might be addressed in addition.  Model/data dependencies are perhaps the less interesting of the two.  More interesting concerns how the mapping would actually occur.  This could involve use of workflow engines, templating functions, etc.  Those could be left to proprietary means, but there is arguably room to get those standardized / exposed as well - this is where a gap exists today.  

- Regarding resilience and anti-fragility:  Agree these are important from a system perspective.  I am, however, less clear on the implications of those properties regarding intent.  Arguably intent will facilitate those properties from an operational perspective - ad the system should adhere to intent, even in face of stress.  

--- Alex

> -----Original Message-----
> From: nmrg [mailto:[email-masked]] On Behalf Of Juergen
> Schoenwaelder
> Sent: Wednesday, March 06, 2019 1:29 AM
> To: [email-masked]
> Subject: [nmrg] comments on draft-clemm-nmrg-dist-intent-00
> 
> Hi,
> 
> several months ago, I looked at draft-clemm-nmrg-dist-intent-00 (yes -00, which
> means I did this before July 2018) and I started to write down comments but I
> never manages to send the out. Since the topic is still being discussed (virtual
> interim today), I thought I just share what I produced back then instead of letting
> the comments rot on my notebook. ;-)
> 
> Some of my comments will look somewhat old school to people, but this is on
> purpose and the intent. :)
> 
> /js
> 
> --

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Thu, 7 Mar 2019 09:53:46 +0100

> - On your third point (TMN model), yes, the TMN hierarchy is clearly relevant to this discussion.  Of course, the problem is not only how to translate down.  Arguably, the more interesting and less…

I am not sure why this is 'upward'. You have a high-level policy that
you give to a control algorithm or control loop as a parameter and
then it has to go to implement it. Yes, you may want to monitor what
you actually get but this is no different with any other controls you
have.

> - Is intent a synonym for declarative policy?  Maybe we should indeed start by stating what it is not: not limited to device config, as you state.  Not imperative either.  (Are rules considered imp…

I believe intent is just a new word for (mostly declarative) policy
until I am told why my view is wrong. I think rules can be both, if
you have a logic programming system like prolog, rules are rather
declarative. If you think about event-condition-action (ECA) rules,
then they may or may not be declarative.
 
> - Regarding the assertion that without mapping functions higher -layer data models are a waste of time:  I don't quite agree with that.  I do think there is value in higher-layer data models in the…

If you have a high-level model or policy but no means to break it
down, the high-level model or policy is of very little value. I am
specifically talking about standardization attempts where people tried
to work out high-level policy languages without having a clear view
how to operationalize policies expressed in those frameworks. We are
often missing the primitives high-level policy must be compiled down
to. In fact, I believe that not having a clear understanding (and
perhaps even agreement) on these primitives is what kept us from
making real progress during the last 20 years.

> - Regarding resilience and anti-fragility:  Agree these are important from a system perspective.  I am, however, less clear on the implications of those properties regarding intent.  Arguably inten…

Maybe. But the requirement to deal with failures and other forms of
stress is what makes things complex in the first place.

/js

---

From: Jeff Tantsura <[email-masked]>
Date: Thu, 7 Mar 2019 07:26:11 -0800

Very much support Alex’ comments!
Continues validation of intent, e.g. operational vs intended state, meaning of changes (is my intent still being met) is fundamental for a properly functioning intent system.

Cheers,
Jeff

> On Mar 6, 2019, at 6:15 PM, Alexander Clemm <[email-masked]> wrote:
> 
> Hi Juergen,
>