[netconf] Re: YANG Push Lite presentation

Andy Bierman <andy@yumaworks.com> Mon, 11 November 2024 17:27 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D939EC14F74A for <netconf@ietfa.amsl.com>; Mon, 11 Nov 2024 09:27:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CRDuJNfgUy-C for <netconf@ietfa.amsl.com>; Mon, 11 Nov 2024 09:27:06 -0800 (PST)
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E354DC14F713 for <netconf@ietf.org>; Mon, 11 Nov 2024 09:27:06 -0800 (PST)
Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-2e9c1e7268eso296055a91.1 for <netconf@ietf.org>; Mon, 11 Nov 2024 09:27:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1731346026; x=1731950826; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=lPKuiCZx539UdH6SQlDg05Z64PLvyetSYYylZdOD/dw=; b=IbvLCfxITYBLnpWASjsuY4V1pQALK1Svbjyt4K3EHqdV8iVZxF622DsvpGCS4kTMY1 N7cH/GkhxTwYZSIN5x48eSl79SzqTKvU14OMCTjsNgF30W8529TJY/P7Jf/n4PNBgS0t bbf8/zjDrLHOOZjSXY/GQIszpJ3hpxHvtJ3Rr0joaMCNviee67lMVfHTQMElXujot0eT VkFyuEdhZDhgiUXcPmmZOaIHgL3rG6rXeBT6R2ovfgS5UeVeYNOmVN1e8ZOqE3vHZpgi 5FgZSyKKu8qZFyX7n+UVx2V4w/6YD4QdIlwbyvG1WVLPCGxFnTnmFdkO4Au6Zp3U3o+S Wv7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731346026; x=1731950826; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lPKuiCZx539UdH6SQlDg05Z64PLvyetSYYylZdOD/dw=; b=GOKlBfwV35o5dn+dRTU9Ak/Xh7t81CRYPVpCNwNhYfTR2CbID4S7O3tEBA054AIYfp Ut21g2Ieg/U18mIwNL/hsrMDyIVkmU68wiyf7EAyEV2tM4za7CKIsPrIuiDLSvMjkWuc t/rPsteyQzoX/U+LAA6cWtLGPz3pNBRU6U6rz2BACwK3oHxP8Hk4TC5Xawe+Q9Ss1ony asxphyFswakgMG29Cp5iMghrI9XD/Xw+WF/OE/hEa7mh1f8S8FF+AX3DW5leMnAMNJ2K WGUyBLlKJxNKd/naT89WDpcn/rdeE3KDeZ2pHru9djzrBW8wATKb9+SsDp6mmer8xVId 7vQw==
X-Gm-Message-State: AOJu0Yw+Ul30o1wqdOY29j90Sg4tHBoXnwnneKNLTH3qOcdLKnbj9ziQ hAxlYGbJYTd0d2vfMGl2xuabNtFvJm5LGfUZJDlR88kNDXgXWHPAouNkx9UCJTHjaSadN8liLXo f84x8d8Xb2fwl7TyMfnTz5H/r4X1/lZjKvKkpW2cDMABOE72A
X-Google-Smtp-Source: AGHT+IHPLzT7EdvHepRmqVsWGdf88DlQ7AMBAAAoy9Vu2dhd7MIaidtisyy39t0ohSv9e+IqPhXSQAuPYDlP7EVFZxk=
X-Received: by 2002:a17:90b:1c84:b0:2e3:b92:aaf6 with SMTP id 98e67ed59e1d1-2e9b14d5a9dmr7430684a91.3.1731346026121; Mon, 11 Nov 2024 09:27:06 -0800 (PST)
MIME-Version: 1.0
References: <CABCOCHTxV=wxAVkQBiGK1ounrP+CPpcvYyoGKVxWwsT5ybT4rg@mail.gmail.com> <926994226.132102.1731082639532@mail.yahoo.com> <CABCOCHQ4PWYUCcwCST25nPP=1G+KV7+HpWtagi3KoaMu9pneiA@mail.gmail.com> <f1fbbf8e-edac-4e0a-b1d9-6ee0fb13f801@ndt-inc.com> <CABCOCHS_9YkP5gTx8Ss2EK=LQHkok8Uxfvp1z2WZTeuQqjCQUg@mail.gmail.com> <213ba25f-2c93-4e01-b372-949b641150de@ndt-inc.com>
In-Reply-To: <213ba25f-2c93-4e01-b372-949b641150de@ndt-inc.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 11 Nov 2024 09:26:55 -0800
Message-ID: <CABCOCHTFZVVLjUiLw6bdmYO77im1N0gmjOGgic4+=TrqH9h8Gw@mail.gmail.com>
To: BL <bl@ndt-inc.com>
Content-Type: multipart/alternative; boundary="000000000000dee5a80626a668f8"
Message-ID-Hash: JVWYBGHO42DN5SOJY7VCV4OVRV4V32EJ
X-Message-ID-Hash: JVWYBGHO42DN5SOJY7VCV4OVRV4V32EJ
X-MailFrom: andy@yumaworks.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-netconf.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: netconf@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [netconf] Re: YANG Push Lite presentation
List-Id: NETCONF WG list <netconf.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/9_5SCmAmp8Ld31dZwNA4JXMBXUw>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Owner: <mailto:netconf-owner@ietf.org>
List-Post: <mailto:netconf@ietf.org>
List-Subscribe: <mailto:netconf-join@ietf.org>
List-Unsubscribe: <mailto:netconf-leave@ietf.org>

On Mon, Nov 11, 2024 at 6:57 AM BL <bl@ndt-inc.com> wrote:

>
>
> On 11/8/2024 7:21 PM, Andy Bierman wrote:
>
>
>
> On Fri, Nov 8, 2024 at 4:01 PM BL <bl@ndt-inc.com> wrote:
>
>> Hi Andy,
>>
>> dampening-period is for both the subscriber/client and the
>> publisher/server.
>> Server should implement
>> ietf-system-capabilities/ietf-notification-capabilities (or similar model)
>> so the client can examine capabilities of the server before subscribing.
>>
>>
> I am aware of that YANG module.
> My comment was about the slide that said that dampening  should be removed
> from YANG Push.
> This is the only standard way for an operator can limit the send rate of
> each publisher.
> Seems kind of important for UDP.
>
> You propose to remove "push-change-update" and use "push-update" instead
>> in "on-change" subscription.
>> Which sounds reasonable since "push-change-update" is complicated to
>> implement.
>> Could you clarify:
>> "Also agree that a push update is not a full replace, but rather just
>> gather what is being reported."
>>
>>
> The example in the meeting was a subscription for an entire datastore, but
> consider a filter for /interfaces.
> If an update only contains  1 interface
> (/interfaces/interface[name='foo']) that does not mean all the other
> interfaces
> have been deleted.  This is not as precise as YANG Patch but much easier
> to implement.
>
>
> So this would be a "push-change-update" but in a different form, i.e.
> modified "push-update" ?
> I don't see how this makes implementation easier.
>
>

RFC 8072 was designed to provide full YANG datastore editing for the
RESTCONF protocol.
It is far more complex to implement than a push-update and also extra work
for the collector.
There is no canonical form of a YANG patch.  There is ultimate flexibility
for the sender and
massive complexity for the receiver,.

Consider an interface entry that has 10 fields changed.
That can be 10 patches with 1 edit each, or 1 patch with 10 edits, or 1
patch with 1 edit,
or anything in between.  There is no requirement to send ONLY the fields
that have changed.
For a collector, it is simpler to get a new representation when needed,
instead of just the leafs that changed.

So maybe we need YANG Push Lite and YANG Patch Lite.
The push-update is almost there to server this purpose.



> The push-update may need some enhancement to say "I really mean a full
> replace this time".
>
>
> Borislav
>>
>
>
> Andy
>
>

Andy


>
>
>>
>> On 11/8/2024 11:37 AM, Andy Bierman wrote:
>>
>>
>>
>> On Fri, Nov 8, 2024 at 8:17 AM Reshad Rahman <reshad@yahoo.com> wrote:
>>
>>> Hi Andy,
>>>
>>> > I do not understand the issue with dampening.
>>> Within the implementation, it means how often you check for changes.
>>> It is effectively the same as the 'period' for a periodic subscription.
>>> How does an on-change subscription work without this parameter?
>>>
>>> In the context of continuously changing data such as counters I
>>> understand the statement above. But for state changes, dampening-period
>>> isn't needed (although I realize this is implementation specific).
>>>
>>>
>>
>> So it should be optional I guess.
>> This parameter is for the subscriber, not the publisher.
>> It means "do not send me an update more frequently than N centiseconds".
>>
>>
>> Regards,
>>> Reshad.
>>>
>>
>> Andy
>>
>>
>>> On Friday, November 8, 2024 at 11:08:24 AM EST, Andy Bierman <
>>> andy@yumaworks.com> wrote:
>>>
>>>
>>> Hi,
>>>
>>> I hope this work gets high priority.
>>> There are many I-Ds already so please do not start over or greatly
>>> expand the scope.
>>> I have been saying that YANG Push is too complicated since I was on the
>>> DT
>>> that created RFC 8639,40,41.
>>>
>>> We have a fairly complete implementation of dynamic subscriptions.
>>> Glad to see there is now consensus to get rid of the YANG Patch update.
>>> We decided the same thing a long time ago:
>>>
>>> https://docs.yumaworks.com/en/latest/cli/netconfd-pro.html#push-simop-patch-update
>>>
>>> Also agree that a push update is not a full replace, but rather just
>>> gather what is being reported.  That is also how our server works.
>>>
>>> I do not understand the issue with dampening.
>>> Within the implementation, it means how often you check for changes.
>>> It is effectively the same as the 'period' for a periodic subscription.
>>> How does an on-change subscription work without this parameter?
>>>
>>>
>>> Andy
>>>
>>>
>>>
>>> _______________________________________________
>>> netconf mailing list -- netconf@ietf.org
>>> To unsubscribe send an email to netconf-leave@ietf.org
>>>
>>
>> _______________________________________________
>> netconf mailing list -- netconf@ietf.org
>> To unsubscribe send an email to netconf-leave@ietf.org
>>
>>
>> _______________________________________________
>> netconf mailing list -- netconf@ietf.org
>> To unsubscribe send an email to netconf-leave@ietf.org
>>
>
>