Re: [I2rs-proto-dt] Join WebEx meeting in progress: i2rs protocol design team

Andy Bierman <andy@yumaworks.com> Sat, 19 September 2015 14:29 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: i2rs-proto-dt@ietfa.amsl.com
Delivered-To: i2rs-proto-dt@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4F2B71B2B6D for <i2rs-proto-dt@ietfa.amsl.com>; Sat, 19 Sep 2015 07:29:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level:
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 bvexVD3R0Aso for <i2rs-proto-dt@ietfa.amsl.com>; Sat, 19 Sep 2015 07:28:38 -0700 (PDT)
Received: from mail-lb0-f172.google.com (mail-lb0-f172.google.com [209.85.217.172]) (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 7D5341B2B65 for <i2rs-proto-dt@ietf.org>; Sat, 19 Sep 2015 07:28:37 -0700 (PDT)
Received: by lbbvu2 with SMTP id vu2so36198690lbb.0 for <i2rs-proto-dt@ietf.org>; Sat, 19 Sep 2015 07:28:35 -0700 (PDT)
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:content-type; bh=y8g2D4yqs0Q2JkXdLC/+1+3DQhatvrTTok9r1eC6wgA=; b=nF1rezSFAlm2ld0Ee1H1MjuiIj+rz04aJD2mQ78tJu801wobNSspM4GQyiyHzh8bee WlRWmLE0lrwyJtEWzM4IJ8WJXe8FgJfDfbigceJvNbGPVTT5q/cT1+IUVz8jG7XjpydG Xee8t0+Xe5DgJTuykx8E5RAoMwoVqRnomkspPLhmOYuEcr1mWY/EIUXyboGq39LXKADk n7gvZ9DzodUsZxzk8fKPuosMy5pvXe+3b1K62RctY5v37Mt3lqZP2kvujpmrTbdFKsUr hFfq471SQAxcyFCSbLvsVAN6YH6PqrVcZ6FJmd40HaQWwlhTudq8idedkTDFUicFvSx1 iuOQ==
X-Gm-Message-State: ALoCoQl+Zo+DLH1T4Ej8LUknstU91yf9vY3+7I4jj62CZILrks/zfD+GuBFBo48DDCo+wxUYCg2R
MIME-Version: 1.0
X-Received: by 10.152.21.99 with SMTP id u3mr4849086lae.123.1442672915639; Sat, 19 Sep 2015 07:28:35 -0700 (PDT)
Received: by 10.112.200.104 with HTTP; Sat, 19 Sep 2015 07:28:35 -0700 (PDT)
In-Reply-To: <5381C298-121B-484F-944D-659CFD70DDE4@gmail.com>
References: <188578508.8602.1442583821396.JavaMail.nobody@jva2tc215.webex.com> <000601d0f218$8b330d20$a1992760$@ndzh.com> <CABCOCHR080tt3jyt2w-di+CMdAvhFE_ga+MpQ3=Tr3GSsJETiQ@mail.gmail.com> <00ac01d0f229$8fc556c0$af500440$@ndzh.com> <CABCOCHR0kmarpW0SmKdO86xkDCS7ruZzGDY9KsFNStvawmXFxg@mail.gmail.com> <5381C298-121B-484F-944D-659CFD70DDE4@gmail.com>
Date: Sat, 19 Sep 2015 07:28:35 -0700
Message-ID: <CABCOCHTJdXYHoU7=1it632jAsR=zB7c-23EmM5vYd0KyTB+tWg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Dean Bogdanovic <ivandean@gmail.com>
Content-Type: multipart/alternative; boundary="089e0149397aaa070e05201a767e"
Archived-At: <http://mailarchive.ietf.org/arch/msg/i2rs-proto-dt/_ViQIBQRrjqABiU2w2n-5Xq7Iqg>
Cc: i2rs-proto-dt@ietf.org, Susan Hares <shares@ndzh.com>
Subject: Re: [I2rs-proto-dt] Join WebEx meeting in progress: i2rs protocol design team
X-BeenThere: i2rs-proto-dt@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: I2RS protocol design team <i2rs-proto-dt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2rs-proto-dt>, <mailto:i2rs-proto-dt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2rs-proto-dt/>
List-Post: <mailto:i2rs-proto-dt@ietf.org>
List-Help: <mailto:i2rs-proto-dt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2rs-proto-dt>, <mailto:i2rs-proto-dt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 19 Sep 2015 14:29:05 -0000

On Sat, Sep 19, 2015 at 3:21 AM, Dean Bogdanovic <ivandean@gmail.com> wrote:

> Andy,
>
> Thank you for writing this and have few questions
>
> Where will be the ephemeral datastore defined? I’m hearing discussions
> about ephemeral dat store is several places and it doesn’t sound people
> have a common understanding of it. As side commend, I agree what you wrote
> down as high level layout on it.
>
>

There does seem to be some overlap right now with opstate, wrt/ defining
new datastores.
To me, a datastore is just a way to refer to "data in the same state"
within a protocol.
To others, it is seen as a more concrete implementation requirement. The
IETF will have to work this out.






> What edits are allowed in the ephemeral data store. Should those be
> syntactically correct or syntacticly and semantically?
>
>

This is the $64 question.
Jeff has described at least one scenario where priority between 2 clients
does
not clearly solve edit contention.  (Forget all the details but involves an
entry
that cannot be deleted because the result would leave an unresolved
reference
somewhere else in the data).

There are 3 possible outcomes for a valid edit:

  1) no collisions; must be accepted
  2) partial overlap with better priority data
  3) complete overlap with better priority data

Depending on stop-on-error or continue-on-error (2) will be accepted or not.
This is where Jan (and I) start to worry about the client trying to be too
clever,
but Joel thinks a client could recover and deal with outcome (2)

Clearly the data has to pass "field validation" (pass the typedef checks;
can't send int32=fred)

Validation slows things down a lot, so datastore validation needs to be
considered carefully.  This is where I think routing expertise will help
decide how much validation can really be skipped for a particular use-case.







> Dean
>
>

Andy


> On Sep 18, 2015, at 5:52 PM, Andy Bierman <andy@yumaworks.com> wrote:
>
> Hi,
>
> Here are the notes I have for the draft Kent and I were starting.
> It is probably controversial, but perhaps useful for discussing some
> details.
>
>
>
>
>
> On document structure:
> -------------------------------
>
> 1) Intro
> 2) Definition of intended config, applied config and
> derived state for NETCONF/RESTCONF
> 3) Definition of ephemeral datastore for NETCONF/RESTCONF
> 4) YANG "ephemeral" statement
> 5) NETCONF protocol extensions for the ephemeral datastore
>     -- defined as a NETCONF capability
> 6) RESTCONF protocol extensions for the ephemeral datastore
>    -- defined as RESTCONF protocol capability
>
> Notes on technical details
> ------------------------------------
>
>  1) ephemeral datastore is never locked
>
>  2) ephemeral datastore treated as N client panes
>       - server picks how many clients it supports
>       - multi-head support is optional since max-clients allowed to be 1;
>
>   3) each client has a unique priority
>
>    container i2rs-clients {
>        leaf max-clients {
>           config false;
>           mandatory true;
>           type uint32 {
>             range "1 .. max";
>           }
>        }
>        list i2rs-client {
>           key name;
>           unique priority;
>           leaf name { ... }
>           leaf priority { ... }
>        }
>     }
>
>    If a client is not present in the i2rs-client list, then the worst
> priority
>    value is assigned
>
>    The best possible priority needs to be reserved for the system, or the
>     protocol has to make a special case of system-set data
>
>   4) each client writes into its own pane so there is no conflict
>      within a pane;  Difference is really what the server retains from
>      a partial or failed edit.  Should be OK to save nothing or save all
> (caching)
>
>   5) a partial operation is one where some subset of the written data
>       is not applied because of better priority for that node;  Only
> allowed
>       if the error-option is stop-on-error or continue-on-error
>
>    --> NETCONF stop-on-error and continue-on-error are not going
>         to work.  There is no mandated processing order for edits
>         Perhaps I2RS can force some processing order to support partial
> edits
>         IMO, all-or-nothing is the only option that is interoperable.
>
>     -->  NETCONF has no way of reporting which edits were accepted and
> which
>           were rejected, for partial operations. Perhaps I2RS can add new
> error
>          handling response data
>
>     (BTW, all of this was removed from NETCONF (RFC 6241) because it was
>     too complicated, and nobody implemented it because it was too
> complicated.
>     I2RS WG should take note of that).
>
>   6) caching is optional; a server may retain the pane for each client;
>       if not supported then the pane never contains unaccepted data;
>       i.e. the server will return an error and not retain the edit that
> caused
>       the error; caching allows the server to apply lower priority data
>       when higher priority data is removed
>
> Not sure if examples should be in a separate appendix of mixed into
> the normative text (like YANG RFC)
>
>
> Andy
>
>
>
>
> On Fri, Sep 18, 2015 at 8:49 AM, Susan Hares <shares@ndzh.com> wrote:
>
>> Andy:
>>
>>
>>
>> I understand that Kent is very busy.  I proposed that I start off draft
>> and hand it over to another one of the routing I2RS authors.   I will send
>> out a draft early next week.
>>
>>
>>
>> Sue
>>
>>
>>
>> *From:* I2rs-proto-dt [mailto:i2rs-proto-dt-bounces@ietf.org] *On Behalf
>> Of *Andy Bierman
>> *Sent:* Friday, September 18, 2015 11:12 AM
>> *To:* Susan Hares
>> *Cc:* i2rs-proto-dt@ietf.org
>> *Subject:* Re: [I2rs-proto-dt] FW: Join WebEx meeting in progress: i2rs
>> protocol design team
>>
>>
>>
>> Hi,
>>
>>
>>
>> I have asked Kent to be the lead author on this draft,
>>
>> but he does not have time.  I think a routing person should
>>
>> be the main author.
>>
>>
>>
>> The mechanics of editing an ephemeral datastore are somewhat
>>
>> straight-forward. The overlap of priority-based dependencies
>>
>> can cause problems.  Detecting those problems so nobody ever
>>
>> puts a bad edit in the server will be extremely complicated and
>>
>> the I2RS server could slow down 1000X just to validate all these
>> corner-cases.
>>
>>
>>
>> IMO it would be better if a routing person laid out the best operational
>> options for routing,
>>
>> and then a YANG expert can find the most optimal way to do that.
>>
>>
>>
>>
>>
>> Andy
>>
>>
>>
>>
>>
>>
>>
>> On Fri, Sep 18, 2015 at 6:47 AM, Susan Hares <shares@ndzh.com> wrote:
>>
>> Hi all:
>>
>>
>>
>> This is the design team meeting number.   I will be on-line to discuss
>> next-steps for 20 minutes.    Andy and Kent were going to work up text.
>> I’ve not seen any text from Andy or Kent.   My next steps are to work begin
>> to work on text?
>>
>>
>>
>> Any  thoughts?
>>
>>
>>
>> Sue
>>
>>
>>
>> *From:* I2RS Working Group [mailto:messenger@webex.com]
>> *Sent:* Friday, September 18, 2015 9:44 AM
>> *To:* shares@ndzh.com
>> *Subject:* Join WebEx meeting in progress: i2rs protocol design team
>>
>>
>>
>> Hello,
>>
>> My WebEx meeting is in progress.
>>
>> Join me now from a browser, phone, or video conferencing system or
>> application.
>>
>>
>>
>>
>>
>>
>>
>> *i2rs protocol design team*
>>
>> Friday, September 18, 2015
>>
>> 9:43 am  |  Eastern Daylight Time (New York, GMT-04:00)  |  1 hr
>>
>>
>>
>>
>>
>>
>>
>> *Join WebEx meeting*
>> <https://ietf.webex.com/ietf/e.php?MTID=mc24852d4ea59aea3246ff757cf85255d>
>>
>>
>>
>> Meeting number:
>>
>> 645 703 803
>>
>> Meeting password:
>>
>> proto.fun
>>
>>
>>
>>
>>
>>
>>
>> *Join by phone*
>>
>> *1-877-668-4493* Call-in toll free number (US/Canada)
>>
>> *1-650-479-3208* Call-in toll number (US/Canada)
>>
>> Access code: 645 703 803
>>
>> Toll-free calling restrictions
>> <http://www.webex.com/pdf/tollfree_restrictions.pdf>
>>
>>
>>
>>
>>
>>
>>
>> Can't join the meeting? Contact support. <https://ietf.webex.com/ietf/mc>
>>
>>
>>
>>
>>
>>
>>
>> IMPORTANT NOTICE: Please note that this WebEx service allows audio and
>> other information sent during the session to be recorded, which may be
>> discoverable in a legal matter. By joining this session, you automatically
>> consent to such recordings. If you do not consent to being recorded,
>> discuss your concerns with the host or do not join the session.
>>
>>
>>
>>
>> _______________________________________________
>> I2rs-proto-dt mailing list
>> I2rs-proto-dt@ietf.org
>> https://www.ietf.org/mailman/listinfo/i2rs-proto-dt
>>
>>
>>
>
> _______________________________________________
> I2rs-proto-dt mailing list
> I2rs-proto-dt@ietf.org
> https://www.ietf.org/mailman/listinfo/i2rs-proto-dt
>
>
>