Re: [i2rs] Call for Adoption by WG: draft-atlas-i2rs-architecture-01 (ends Aug 12)

Alia Atlas <akatlas@gmail.com> Wed, 14 August 2013 19:11 UTC

Return-Path: <akatlas@gmail.com>
X-Original-To: i2rs@ietfa.amsl.com
Delivered-To: i2rs@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DF46A21F9E67 for <i2rs@ietfa.amsl.com>; Wed, 14 Aug 2013 12:11:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.532
X-Spam-Level:
X-Spam-Status: No, score=-2.532 tagged_above=-999 required=5 tests=[AWL=0.067, BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Zl9yeFApTcRq for <i2rs@ietfa.amsl.com>; Wed, 14 Aug 2013 12:11:28 -0700 (PDT)
Received: from mail-ob0-x22b.google.com (mail-ob0-x22b.google.com [IPv6:2607:f8b0:4003:c01::22b]) by ietfa.amsl.com (Postfix) with ESMTP id 6679C21F9E51 for <i2rs@ietf.org>; Wed, 14 Aug 2013 12:11:28 -0700 (PDT)
Received: by mail-ob0-f171.google.com with SMTP id tb18so12334858obb.2 for <i2rs@ietf.org>; Wed, 14 Aug 2013 12:11:25 -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:content-type; bh=FtrdLnesAUER8YCLTX50tLv3dKu6qc71r01VYZFVGh8=; b=KKWyPbXqf9BJfLBYJOPZduafIr4cHXJwxiIy5q8RIOteXqquy9nOjww6NFNUdY7gqF jRqFRnTk/S8jf+tl/QTN65UsDvX/RhA+dgsz60z7rUNIUTEKspTuz/5cShvhHqZYjc1n y4i+qNe2ZOOW5J/AqLeeKKd/dclq8wuDqBLx/UzAXu3/Mc1MDWLMQ5bCkRV8fgwr9TvI m+wTkFqSXDGZadFaj0wBXraP3FOP4pl72NZR9vicjvzSwrwSjens0tHeGVlgauufFSym cBbnl8rVbjwfhSeZn+ac7ka2Df8RsBTJaf8iL9qKvluKeZjmwAsVOpnT9N14eJOvxtRT bbJA==
MIME-Version: 1.0
X-Received: by 10.60.62.4 with SMTP id u4mr9746201oer.35.1376507485134; Wed, 14 Aug 2013 12:11:25 -0700 (PDT)
Received: by 10.182.221.98 with HTTP; Wed, 14 Aug 2013 12:11:25 -0700 (PDT)
In-Reply-To: <520BC148.3030306@cisco.com>
References: <CAG4d1rdDqdajvUeF4WwJ1Jwn_=xqOMkXrkWwCHtsdsZn6WKzRA@mail.gmail.com> <51F8ED88.5050208@cisco.com> <CAG4d1rdBjyx2+jR5+Pc0RNsr_NSRLtrK6RaFgEqwvguHweZ0Cw@mail.gmail.com> <520BC148.3030306@cisco.com>
Date: Wed, 14 Aug 2013 15:11:25 -0400
Message-ID: <CAG4d1rdoD2o1qw6WDEgqjFWh2xYvF4w80Y9Eq4n59PXmF+c2Qw@mail.gmail.com>
From: Alia Atlas <akatlas@gmail.com>
To: Joe Marcus Clarke <jclarke@cisco.com>
Content-Type: multipart/alternative; boundary="089e012953baaea5dc04e3ed1f88"
Cc: "i2rs@ietf.org" <i2rs@ietf.org>
Subject: Re: [i2rs] Call for Adoption by WG: draft-atlas-i2rs-architecture-01 (ends Aug 12)
X-BeenThere: i2rs@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Interface to The Internet Routing System \(IRS\)" <i2rs.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2rs>, <mailto:i2rs-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/i2rs>
List-Post: <mailto:i2rs@ietf.org>
List-Help: <mailto:i2rs-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2rs>, <mailto:i2rs-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Aug 2013 19:11:30 -0000

Joe,

I'm cutting old stuff out and just responding in-line to the rest....

On Wed, Aug 14, 2013 at 1:41 PM, Joe Marcus Clarke <jclarke@cisco.com>wrote:

> On 8/13/13 4:01 PM, Alia Atlas wrote:
> >     Section 1.2:
>
> When I first read this, I wanted something stronger to prevent clients
> from writing to the same piece of data.  I think the forward references
> are fine if perhaps a bit late in the text.  But my ask was to
> strengthen the language to say "must not write."


 [Alia] I don't really see that saying "must not write" instead of "should
not write" makes any meaningful improvement.  We've said in the
architecture that it should be considered an error.   I, personally, think
that SHOULD applies more than MUST; the system behavior will be well
understood in either event if the I2RS agent detects the collision.  If
multiple clients do try and write the same value, it will not be
catastrophic nor result in I2RS failing.  Thus, I think should is more
accurate.


> >
> >
> >     Section 2:
> >
> >     read scope: ...
> >
> >     write scope: ...
> >
> >     JMC: Should there be an event or notification scope in addition to
> read
> >     and write?
> >
> >
> > [Alia] I think it is folded into the read scope.  If we find the need
> > for such a term later on, then we can add it.
>
> This section talks about "terminology" used in the draft.  However,
> "read scope" as terminology is not used anywhere.  The concept of
> _reading_ data is, however, quite prevalent.  In the same way, the draft
> talks about "notification" in a number of contexts.  As such, I feel
> there is enough distinction there to warrant calling out what is meant
> by a notification scope.
>
> "notification scope: The set of events and associated information that
> will be sent northbound by the I2RS Agent to I2RS Clients.  Clients have
> the ability to register for specific events, but must do so given the
> access restrictions of their associated read scope."
>

[Alia] Sure - if you care about it that much.   However, I think that
notification scope is
"The set of events and associated information that the I2RS Client can
request be pushed by the I2RS
Agent.  I2RS Clients have the ability to register for specific events
and information streams, but must do so given the access restrictions
of their notification scope."

I'll put this in the next version of the draft.

>
> >     Section 3.4:
> >
> >     I2RS clients may be operating on behalf of other applications.  While
> >        those applications' identities are not need for authorization,
> each
> >        application should have a unique opaque identifier that can be
> >        provided by the I2RS client to the I2RS agent for purposes of
> >        tracking attribution of operations.
> >
> >     JMC: The opaque ID might make it hard to accurately attribute
> changes.
> >     I2RS should mandate a way to ensure traceability back to a client
> that
> >     made the change or was granted access.
> >
> >
> > [Alia] What do you have in mind?  The I2RS client will have a security
> > role and its scope.  The I2RS client needs to vet the applications that
> > it is a broker for.  The opaque ID can be something that is meaningful
> > to that I2RS client.   Basically, I2RS is providing the identity and
> > security for between the I2RS client and the I2RS agent.  I don't see it
> > as practical or appropriate to try and define how the I2RS client and
> > its applications interact; I know the broker/controller model is popular
> > and so we do need enough to help support traceability to a secondary ID,
> > but I'm not sure what is needed or appropriate beyond that.
>
> After listening to the working group session and based on other threads,
> this text is now clearer to me.  To summarize my feeling, I don't think
> I2RS should mandate a northbound Client protocol, but we need a unique
> way to identify the specific Client that obtained access.  This means
> that even in a load-balancing or HA case, there must be a way to
> uniquely identify the Client that communicate with the Agent.  The
> northbound actor driving the Client should also be identifiable, but
> that is outside the scope of this document.
>

[Alia] I think that there can be a number of ways to uniquely identify a
client beyond its I2RS Client Identifier.  The question is whether we need
"client identity", "sub-client identity" and "secondary identity".  Does
"secondary identity" also need a "secondary sub-identity" to account for
redundancy or load-balancing on the part of the application using the I2RS
Client as a broker?   Perhaps this is better discussed in the redundancy
thread?


> >
> >     Section 5.4.2:
> >
> >     (Bulleted list of examples)
> >
> >     JMC: Consider adding an example for an event such as a new route
> being
> >     learned or an OSPF neighbor removal.
> >
> >
> > [Alia] I think that "writing routes or prefixes to be advertised via the
> > protocol" describes a new route being learned.   I'd prefer not to put
> > OSPF neighbor removal in as an example.  It raises the questions about
> > what is configuration vs. ephemeral data and the I2RS scope.  If you
> > have a good use-case that requires it, then I'd be quite interested in
> > seeing it.
>
> I was specifically asking about an _event_ use case.  Very simply if we
> learn/lose a route, I'd want my Client to be notified so I can perhaps
> react to it to install another route or remove a route I have previously
> installed (e.g., a failover/failback use case).
>
> Additionally, if a peer is otherwise reachable, but stops participating
> in OSPF, BGP, etc., I would like I2RS to notify my Client as I may not
> know about this any other way (though I could be flooded with route
> delete events, it's good to correlate that to a peer going away).
>

[Alia] Oh, yes - I missed that this was for events!   Sorry!  I'll add:
"* subscribing to an information stream of route changes
 * receiving notifications about peers coming up or going down"

>     Section 6.7:
> >
> >     One of the other important aspects of the I2RS is that it is intended
> >        to simplify collecting information about the state of network
> >        elements.
> >
> >     JMC: I think this needs to be more specific to routing information
> >     versus any information from the network element (e.g., it does not
> cover
> >     CPU statistics).
> >
> >
> > [Alia] The scoping is a question - and that will depend on what the
> > use-cases we consider need and what the related information and data
> > models need to be.  If you look at the
> > draft-bitar-i2rs-service-chaining-00, it does ask for things like CPU
> > load.  I do think there is a real need to be able to get back
> > thresholded and filtered information.  You probably heard Ed's personal
> > thoughts about a single protocol as well...   So - I don't think the
> > architecture needs to restrict the data in scope - particular in a
> > section that is talking about communication patterns - but as a WG, we
> > need to keep a tight focus that still provides sufficient information to
> > fully solve the desired use-cases.
>
> My concerns comes from a desire not to have I2RS become a common
> API/protocol for things that SNMP or NETCONF or some other potential
> data collection scheme is used for.  So I agree we need a tight focus
> and potentially a litmus test for what should be adopted as collectable
> data via I2RS.  As it stands now, I think someone could argue for any
> kind of data and present a use case for it (e.g., latency, interface
> errors, location).  So the statement I made was more around the lines of
> should I2RS stay pure to routing and routed topology or should we really
> open the door to other data that is not specifically related to routing?
>

[Alia] Some routing use-cases need data that isn't purely "routing and
signaling".  Do we force them to use another protocol or do
screen-scraping?  I don't know the correct answer - and I'm not sure the WG
does either.  Given that it is I2RS, I think the emphasis on routing can be
assumed?

Alia