Re: [Anima] Intent "beginning to end"

John Strassner <strazpdj@gmail.com> Fri, 22 April 2016 00:26 UTC

Return-Path: <strazpdj@gmail.com>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9988412EB66 for <anima@ietfa.amsl.com>; Thu, 21 Apr 2016 17:26:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 tjtXkY41eytm for <anima@ietfa.amsl.com>; Thu, 21 Apr 2016 17:25:58 -0700 (PDT)
Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4359912EB06 for <anima@ietf.org>; Thu, 21 Apr 2016 17:25:58 -0700 (PDT)
Received: by mail-lf0-x230.google.com with SMTP id g184so70290917lfb.3 for <anima@ietf.org>; Thu, 21 Apr 2016 17:25:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=eWon+EEYl2k6pZPmbEahHnZdytSIMToosDpDhvx4QGE=; b=xQr/SH6O88okuB9+9UNhjb809M5ReFNiwhvRvmxlrx4M5vicb3WUuLOvNPXWCkYPFT 3haKcW2ayIPnu+6yQg1tOBDdgaa6RL8cGeugHsyNkMr+RPkXSCpXf8mdZydCIUVXItx6 LEI4eZTMS5O4De0He71JNXmjsvy9movRq7gVch82OOy/DYBxlVAUjT/iEVPx1+CETkd7 eL4BTCXN1w2KBtm0hoht6/o2xp7+u4KJw4t3rfxTVvv6UVcFWH8agMd7IlCoK1jn671R uQG4wcJ6Q8p9rutL0R5w87ak4kPC8D439bVj+NjfROK+exF1kWVmI069BhlieYG2XP05 Tlng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=eWon+EEYl2k6pZPmbEahHnZdytSIMToosDpDhvx4QGE=; b=gQ8zbFNXE+VpCDy+wPlYiQnUP/H8qlwR+hakFNyNlM8AUlHzuxdguqB9AlnGL7LlRI XDiS8U/Z0PRqpO/uDc1XWTu48H7FhXg/qihNxuWFuTgKNYIPRnvGbMA94WEMtJ9m+ud1 a4rz6WghBfYiUQVJuH7F8wlfadeDocglvJ8zlYhuAQIg9yJBtQaUVgpfA/8VkeaNHlsp rQlG8oiSTUFu3oQmYKf07hs6irK5TLflz4cKOMWHBV0E5MqU7EPfFwUMBNIQGFI8vjYV wKuiR/vWbPeR4vaRT8XjsS+Cc/ZtyGBgN+seHf9fc3DbGiOAh3qgAZj4+vnn+5VCwnu+ YkIQ==
X-Gm-Message-State: AOPr4FVAy/nipxJzJg6nO0X5LHdui+rtec/A8f3UkahW7V/rwuOTAPshE5H4E596AcxWIaUfY+cBINftpdmQcg==
MIME-Version: 1.0
X-Received: by 10.25.142.201 with SMTP id q192mr7571133lfd.70.1461284756455; Thu, 21 Apr 2016 17:25:56 -0700 (PDT)
Received: by 10.25.21.105 with HTTP; Thu, 21 Apr 2016 17:25:56 -0700 (PDT)
In-Reply-To: <46860e16d59549b6a8da05a0e46b1892@XCH-RCD-006.cisco.com>
References: <74b2701c9b10416cbd2c8043e33596f1@XCH-RCD-006.cisco.com> <57178F54.5030406@joelhalpern.com> <46860e16d59549b6a8da05a0e46b1892@XCH-RCD-006.cisco.com>
Date: Thu, 21 Apr 2016 17:25:56 -0700
Message-ID: <CAJwYUrFqv=8Srcy2XL81VwhTzEbXpWT91J6r9Rn5y9zHuEWj+A@mail.gmail.com>
From: John Strassner <strazpdj@gmail.com>
To: "Michael Behringer (mbehring)" <mbehring@cisco.com>, John Strassner <strazpdj@gmail.com>
Content-Type: multipart/alternative; boundary="001a11401dccd308ac053107de87"
Archived-At: <http://mailarchive.ietf.org/arch/msg/anima/4ZI6Oehba8jFTDQQgM12-xPp12A>
Cc: "Joel M. Halpern" <jmh@joelhalpern.com>, Anima WG <anima@ietf.org>
Subject: Re: [Anima] Intent "beginning to end"
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Apr 2016 00:26:01 -0000

Hi Michael,

>> As I understand it, those intermediaries are AN, which produce
>> results usable by other AN.  While they will produce parameters
>> for the AN, they will also, I expect produce refined intents.
>
> This is where I have a hard time. If "Intent" is a business policy,
> how can a node modify it?!? To me that seems impossible. I
> would really like to keep Intent exactly the thing a human throws
> into the network; everything else is, well, something else.

Why does a node have to modify intent? I think of intent as coming
from a business person or an app developer; neither of these
typically knows how to configure a network service. The purpose
of intent is to enable them to express what services they would
like to use, and then have something else do the hard work.

This is why other systems I know of put a compiling/interpreting
step between the ingestion of the intent and the delivery of the
**translated** intent to other autonomic nodes.

regards,
John

On Wed, Apr 20, 2016 at 11:52 PM, Michael Behringer (mbehring) <
mbehring@cisco.com> wrote:

> > -----Original Message-----
> > From: Joel M. Halpern [mailto:jmh@joelhalpern.com]
> > Sent: 20 April 2016 16:17
> > To: Michael Behringer (mbehring) <mbehring@cisco.com>; Anima WG
> > <anima@ietf.org>
> > Subject: Re: [Anima] Intent "beginning to end"
> >
> > It seems to me that for many kinds of business intentions, as translated
> into
> > "intents", there will need to be an intelligent processing step that
> > determines how this intent relates to the network state, and how the
> > network needs to respond to this.  While there are cases where this can
> be
> > done at each AN, there are also many cases where this needs intermediate
> > work.
>
> Can you give an example? I think the model I've noted down below is
> reasonably simple, and having intermediate steps might make it a lot more
> complicated. Not saying we shouldn't consider that, but only if we have to
> :-)
>
> > As I understand it, those intermediaries are AN, which produce results
> usable
> > by other AN.  While they will produce parameters for the AN, they will
> also, I
> > expect produce refined intents.
>
> This is where I have a hard time. If "Intent" is a business policy, how
> can a node modify it?!? To me that seems impossible. I would really like to
> keep Intent exactly the thing a human throws into the network; everything
> else is, well, something else.
>
> Again, maybe an example would make this clearer?
>
> Michael
>
> > Yours,
> > Joel
> >
> > On 4/20/16 8:49 AM, Michael Behringer (mbehring) wrote:
> > > After the IETF discussions it is clear that we still don't have the
> same model
> > in our head when we're discussing how Intent is handled. Let's see
> whether
> > we can get some naming agreement.
> > >
> > > draft-du-anima-an-intent describes some of the content below (e.g.,
> > distribution, interpretation), but there is no "beginning to end" flow
> on how
> > Intent "flows" through the network. It would help the discussion I think
> if we
> > formalised the entire flow. For example, in the below flow it is clear
> that
> > parameters you exchange as a result of interpreting Intent are not called
> > Intent. (I think this was one point we don't have agreement on).
> > >
> > > Let me try to write down this "flow", as I see it, as a starting point
> for
> > discussion.
> > >
> > > 1. Business goals: The network owner wants the network to follow some
> > business goals.
> > >     (These goals are initially not formalised, in a computer science
> sense. )
> > >     - these goals are formalised in a language --> 2. Intent: is the
> > > formalisation of business goals so that computer can deal with them.
> > >     (encoded as a file; or several files)
> > >     - this file must be "given to the network" --> 3. Ingestion: The
> > > Intent file(s) get instantiated on an autonomic node
> > >     On a particular node, an intent file is "ingested".
> > >     - Now it needs to be distributed --> 4. Intent Distribution:
> > > Intent is flooded to all nodes in a network;
> > >     Every node has a copy of the original "Intent" file(s), without
> > modification.
> > >     Each node re-distributes the original Intent files, without
> modification.
> > >     Therefore, Intent is optional and transitive in nature.
> > >     - the Intent files must now be interpreted by each node --> 5.
> > > Intent splitting (on each node):
> > >     Intent is split into sections, one for the ANI itself, others for
> specific
> > Autonomic Functions
> > >     ASAs are notified if there is new Intent for them.
> > >     Some intent sections may not apply to a particular  node
> > >     Now each component of a node (ANI, all ASAs) know their respective
> > Intent.
> > > 6. Intent Interpretation (on each node, by each function):
> > >     The ANI as well as all ASAs on a node interpret their respective
> Intent.
> > >     It gets translated into a "target configuration", taking into
> account local
> > state.
> > >     For this translation, it may be necessary for ASAs to communicate
> with
> > ASAs on other nodes,
> > >     to pass on resources (IP addresses), to negotiate, etc.
> > >     All such communications may be triggered by Intent, but the
> > communications themselves
> > >     are NOT Intent.
> > >     (NB: This interpretation could also be done centrally, and the
> resulting
> > configs distributed;
> > >      This is of course an option, but for that we don't need ANIMA.
> Therefore
> > I suggest for the
> > >      ANIMA work to focus on interpreting Intent locally on each node)
> > >     Result: target configlet (not applied yet!!).
> > > 7. Conflict Resolution with non-autonomic management (on each node):
> > >     The target configlet resulting from Intent has the lowest prio;
> any other
> > management
> > >     method (CLI, NETCONF, etc) overrides Intent.
> > > 8. Conflict Resolution between autonomic components (on each node):
> > >     Each autonomic function needs to register with a "conflict
> resolution
> > function"
> > >     which parameters it modifies; in case of conflict the conflict
> resolution
> > function
> > >     takes a decision and feeds that back to the autonomic functions.
> This may
> > modify
> > >     the target configlet.
> > > 9. Applying the target configlet
> > >     A type of "commit" of the configlet.
> > > 10. Feedback loops to NOC: The NOC needs to know about certain
> > conditions:
> > >     Conflicts with non-autonomic management (FYI)
> > >     Not all conflicts can be resolved automatically. (may require NOC
> actions)
> > >     Undesirable states (deviations from expected default behaviour) may
> > have to be communicated;
> > >     To some extent, Intent itself can specify which conditions should
> trigger
> > feedback
> > >     loops to the NOC.
> > >     Feedback loops may happen at other phases as well (ex: 8)
> > >
> > > I'm conscious that there are different views in the team; like I
> believe in
> > point 6 we're not yet aligned. Please take this list just as a basis for
> > discussion, nothing more.
> > >
> > > When we have consensus, I believe such a flow should be documented in
> > draft-du-anima-an-intent in its entirety, to give a full picture.
> > >
> > > Feedback?
> > > Michael
> > >
> > > _______________________________________________
> > > Anima mailing list
> > > Anima@ietf.org
> > > https://www.ietf.org/mailman/listinfo/anima
> > >
>
> _______________________________________________
> Anima mailing list
> Anima@ietf.org
> https://www.ietf.org/mailman/listinfo/anima
>



-- 
regards,
John