Re: [Ibnemo] [Sdn] Defining a Common Model for intent

Dave Hood <dave.hood@ericsson.com> Mon, 01 June 2015 17:38 UTC

Return-Path: <dave.hood@ericsson.com>
X-Original-To: ibnemo@ietfa.amsl.com
Delivered-To: ibnemo@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0DCE1B2FC4 for <ibnemo@ietfa.amsl.com>; Mon, 1 Jun 2015 10:38:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0nZ6BO0oY3F6 for <ibnemo@ietfa.amsl.com>; Mon, 1 Jun 2015 10:38:03 -0700 (PDT)
Received: from usevmg21.ericsson.net (usevmg21.ericsson.net [198.24.6.65]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3A0271B2FC9 for <ibnemo@ietf.org>; Mon, 1 Jun 2015 10:38:03 -0700 (PDT)
X-AuditID: c6180641-f79086d000001909-1d-556c330a5509
Received: from EUSAAHC005.ericsson.se (Unknown_Domain [147.117.188.87]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id 08.CA.06409.A033C655; Mon, 1 Jun 2015 12:25:14 +0200 (CEST)
Received: from EUSAAMB105.ericsson.se ([147.117.188.122]) by EUSAAHC005.ericsson.se ([147.117.188.87]) with mapi id 14.03.0210.002; Mon, 1 Jun 2015 13:38:01 -0400
From: Dave Hood <dave.hood@ericsson.com>
To: Susan Hares <shares@ndzh.com>, "sdn@irtf.org" <sdn@irtf.org>
Thread-Topic: [Sdn] Defining a Common Model for intent
Thread-Index: AdCbEy9UHkEQylvfQJyfdpRUZhhXPwBfgiUQ
Date: Mon, 1 Jun 2015 17:37:59 +0000
Message-ID: <8D15A2BAF93E9C49AB037A0647E5FA643F8490D8@eusaamb105.ericsson.se>
References: <00f301d09b13$79cc2410$6d646c30$@ndzh.com>
In-Reply-To: <00f301d09b13$79cc2410$6d646c30$@ndzh.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [147.117.188.11]
Content-Type: multipart/alternative; boundary="_000_8D15A2BAF93E9C49AB037A0647E5FA643F8490D8eusaamb105erics_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRmVeSWpSXmKPExsUyuXRPuC6XcU6owdXVKhatNx8xWZxf8JzF 4s+bVywWP57eZbWYcHIBswOrR8uRt6weS5b8ZPKYvPEwm8fs19dZA1iiuGxSUnMyy1KL9O0S uDIalixlKpj3lrHixfmNjA2M+84ydjFyckgImEgcOvOJBcIWk7hwbz1bFyMXh5DAUUaJ9tlv GCGcZYwSHbtPgXWwCWhIPLk0mQnEFhFwkHjQs54ZxGYWKJU4cuUkK4gtLGAqsWfHOhaIGjOJ lRdXAPVyANlGEhtO2IOEWQRUJH6sm8AGYvMK+Eoc7tsINl4IqHz13k1gYzgFzCXO/28HsxmB jvt+ag0TxCpxiVtP5jNBHC0gsWTPeWYIW1Ti5eN/rBC2ksTH3/PZIerzJf4u+MQKsUtQ4uTM JywTGEVnIRk1C0nZLCRlEHEdiQW7P7FB2NoSyxa+Zoaxzxx4zIQsvoCRfRUjR2lxalluupHh JkZgLB6TYHPcwbjgk+UhRgEORiUeXgWf7FAh1sSy4srcQ4zSHCxK4rwXVUNChQTSE0tSs1NT C1KL4otKc1KLDzEycXBKNTCaOXTfatgQs732U9XD5+zFCwvOlp9YeFXFvYn13XJ+3+zqnvlx B4SOP1m9s9G+dMeOuRcb2xlmTvm4OsjsfZ5htvwbj3kbbj5+7PWIWWWTnfKihYdF/xTELH20 60RI7mmN/atmCP3+tjlCyIXr8YTHx1l0bU5WLJvBdfNJzL1nexmyufSdpGvmKLEUZyQaajEX FScCALciPzWmAgAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/ibnemo/Xzf4_xHCDhb48FojT8qhiXf6LUY>
X-Mailman-Approved-At: Mon, 01 Jun 2015 14:00:43 -0700
Cc: "ibnemo@ietf.org" <ibnemo@ietf.org>
Subject: Re: [Ibnemo] [Sdn] Defining a Common Model for intent
X-BeenThere: ibnemo@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion of Nemo, an intent-based North Bound \(NB\) interface consisting of an application protocol running over HTTP \(RESTful interfaces\) to exchange intent-based primitives between applications and meta-controllers controlling virtual network resources \(networks, storage, CPU\)." <ibnemo.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ibnemo>, <mailto:ibnemo-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ibnemo/>
List-Help: <mailto:ibnemo-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ibnemo>, <mailto:ibnemo-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2015 17:38:09 -0000

An excerpt from an email I sent on the ONF NBI list, which may contain some useful thoughts:

I have always had trouble understanding what an intent really is, so I am looking forward to making the concept more precise.

When I click a link on a web page, I express an intent to invoke whatever that link offers. Completely below the surface is a layer stack, on-demand session establishment, DNS look-ups, server load balancers, and any number of other technological features that are of no interest to me. Why not use that as an example of intent?

Better yet, we talk about negotiation and selection. Suppose I want to buy a widget. I probably already have some idea whether I want to go to Amazon or EBay or somewhere else. Suppose it's Amazon. I search Amazon's catalog and receive an offer of several widgets, some new, some used, some with a choice of colour or other pertinent features. If I see nothing I like, I may open a new browser window and check out Best Buy or EBay (lots more hidden technology to make that happen!). Maybe I come back to the Amazon page, having found nothing I liked better somewhere else. Now I accept one of the offered widgets and go through the checkout process.

Do we agree that this is a fairly pure expression of intent as conceptualized in the paper? (If not, let's talk about making a Skype call.)

Ok, that's my intent as an internet user. Let's assume the network is all SDN of one kind or another. I invoke my intent through a GUI onto software local to my PC, but I don't think we can call the PC an SDN controller. It's more an active mediator, a client to an SDN. As far as the network is concerned, the client makes DNS queries and swaps opaque TCP packets over a forwarding path that may already exist, or may need to be learned and set up on demand. This is about right, because the session content may well be encrypted end to end, and rightly.

To the SDN controller, my intent is satisfied by directing DNS queries to a known DNS server somewhere, and ensuring IP connectivity for the subsequent session. Hmmm... what happened to our intent-based NBI? The SDN offered my PC a packet interface with the properties of knowing how to recognize and route DNS queries specially, and general IP connectivity. My PC accepted the service offer implicitly by offering traffic to the data-plane interface. The network could be performing associated auxiliary services such as usage-based billing (think wireless roaming), so it's more than just a dumb pipe.

If this is not a legitimate example of intent, it would be good to write the white paper in such a way that clearly excludes such cases.

Use case 2: suppose I am a corporate IT employee, and suppose that my intent is to have an E-Line between two of my campi. I necessarily care about ports and protocols; talk about intent being portable and protocol independent continues to confuse me completely. How can I order an E-line without caring about such details? [Nor is this intent portable.]

Obviously, an SDN controller is going to expose whatever actions and elements of information are germane to the service it offers, and if ports and protocols are germane to the service, so be it.

The SDN architecture, being recursive, models the north side of any controller as exposing an instance of an information model, customized for the intended client/customer/app/user. That being the case, how do we distinguish an NBI API that conveys intent (service: same thing?) from one that does not?

I have recently come to the view that granularity is the criterion by which an intent or service invocation is distinguished. Colloquially speaking, a service invocation is a single invocation across the API: give me E-Line. Now of course this turns into constraint negotiation, offer and acceptance, but what happens across the API is effectively one transaction. In contrast, what we might agree is *not* an intent or a service is the manipulation of a granular information model, the explicit visibility of multiple objects, how they are interrelated, their attributes, and the like.


*         Network as a single lump vs some non-trivial topology.


*         Chauffeur vs driving a car. Legitimate reasons to choose one option or the other, but the level of granularity is quite different. Shall we agree that driving is too granular to be considered intent?

This idea of granularity and detailed operations on the components (which of course may be complex entities themselves, virtualized into simple-appearing lumps) seems to me to capture the essence of what people are talking about when they say intent or service. I am not comfortable with the way I am expressing it, so if this is a step in a productive direction, or even if it's not, I welcome suggestions to clarify the concept.

Dave

From: sdn [mailto:sdn-bounces@irtf.org] On Behalf Of Susan Hares
Sent: Saturday, May 30, 2015 1:02 PM
To: sdn@irtf.org
Cc: 'Zhoutianran'; 'Xiayinben'; ibnemo@ietf.org
Subject: [Sdn] Defining a Common Model for intent

On this mail list, there has been a discussion of two types of information for Intent and Nemo: (http://www.ietf.org/mail-archive/web/sdn/current/msg00646.html) :


1)      What information is needed to represent a service request,

2)      How to represent and transport the information for a request.

In order to define what information is needed to represent a 1) service request that signals Intent from an application to a controller, it is important to define Intent, and provide a clear model of Intent.  Also, in describing real use-cases it is important that one uses the same definition and model for Intent in each use case.

In the current forums examining Intent (ODL NIC, ODL Nemo, OF NBI and Keystone, OPNFV Movie, OpenStack) there is a realization that Intent occurs at multiple layers.  The authors of draft-xia-ibnemo-icim have created a definition for intent and a unified model for defining intent which can handle 1 or multiple layers. The model suggest that:

1)      A user has a intent that is expressed in a context.

2)      Intent (usually) involves an object with a result, and optionally includes operations toward that result.

3)      Operations conditions perform actions within/modified by constraints.

We believe this defines clearly what others are calling "pure intent" (objects + results) versus "constrained intent" (objects + operations + constraints).   The draft can be found at:   https://datatracker.ietf.org/doc/draft-xia-ibnemo-icim/ .   The authors are looking for feedback on the concepts in the draft.

Sue Hares