[netconf] Re: WGLC for udp-notif

Andy Bierman <andy@yumaworks.com> Fri, 31 January 2025 20:53 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 12F4AC14F739 for <netconf@ietfa.amsl.com>; Fri, 31 Jan 2025 12:53:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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, 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 6CmilRapkscR for <netconf@ietfa.amsl.com>; Fri, 31 Jan 2025 12:53:39 -0800 (PST)
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) (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 CBCDFC1840E4 for <netconf@ietf.org>; Fri, 31 Jan 2025 12:53:39 -0800 (PST)
Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-3003ae21db4so2398031fa.1 for <netconf@ietf.org>; Fri, 31 Jan 2025 12:53:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1738356818; x=1738961618; 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=i0gKrJuX6xfGiyN9QMkNwxeCeEE2yIF2ZEIARItuNfg=; b=kmBe7CzI2TXiWUaQNQn+kxteS9dOSdBv+e/qQWSju2e1XqHTlJ1JnJNSRjbkGljUpB I9XdzFb47ZHALqcKOkvFtz++9FY4W8LqzQlgSGszeskaMsFGPGsf8DnNrn5QEkuH7Z5x bJhUsc98c3HRQymbhWwCICKcYT+hMxnb2yyuM+UxY4pu4Jcur0dziBbj7Toq6MlLyfAZ Ri1OsF4Lyj6MOblngRVk4OWw1JBFqIp4LVoYXlis7T5N0zOa4dni7ph0BhvK+WEa5QBV g/On1jm7h49MADAChaM1tdf7WQ79fpe3Aju9ufnhWzK7S1ehK5SNXqR9iJqHEA9yVnpX kEfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738356818; x=1738961618; 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=i0gKrJuX6xfGiyN9QMkNwxeCeEE2yIF2ZEIARItuNfg=; b=VBDb9PbIklYdcbqxHcVi3ThpUbqnFLqPLpHk8fLX34SAp2da7Nv+3K6WKGlcWTKlBO +7NIupNbjaFJulr7/u1Hk0a2eDoeUpjJV2adUYP6BMehXvbH3KZOP7vZ3KYDfHZY15WC eztgu8pZryWMewK/0oFxrDPbvvGgjxBfu2EMUjEbptnpTKvEwkL8Cy5PcYqVFJiRsrSS pg2Skgh9lDejdz9hVoe1L1IcoH4OAJ0i5awzoGcKyjBrd/clfNuvxFGsL/DHw0q+LZDk 60imIgF7c1YAGgCZT1TeDoHu7x4rSP+7zCXHAXcFCiz0/9CldgC9BMjYXxUCb6QXNLwP b+1A==
X-Gm-Message-State: AOJu0YyWCUeIZWXpyOnKNbqNln+9+LTo9/KjmV+JL3rvRGLCjmITyd+l uT+/7Q0rUjlSJY6qlCGVOpzBPpdXTKijGrL2qr0L58OUNTRXpjNDpukM4cjYC/pkblYqyb20W6I qKeosEbFFsAHY9JmMCvODuAAVRmSEduGS1Eqm0V/oJdlpIkP216tlkQ==
X-Gm-Gg: ASbGncsUOjREBX5s/IFU8TsV78wTSx4Yitmtp5MY3gOnm6CYh2bzIRsT7JbctVdXebb VZi9rUqqOJUruy0BDS8NsU1JDHYOxmAetD1h0iPGggFVr2MBBNud2btyk5fbykXLWZciUaK7/CG RpsPIqlPpulnLiBAQ6lrcNFz3aiyEw9lY=
X-Google-Smtp-Source: AGHT+IF+/ZaF4x+JTg1X+iFJSU0cU9mGXDUJrlZ83aGAcsbBR5k92LKJxvQTSQn5Jm2aS5HSQaBqNfAQV6RM0+Q+QTQ=
X-Received: by 2002:a2e:be83:0:b0:300:c10:7c33 with SMTP id 38308e7fff4ca-307968dd6c1mr13906331fa.7.1738356817847; Fri, 31 Jan 2025 12:53:37 -0800 (PST)
MIME-Version: 1.0
References: <CACvbXWH3Ppufo55DP1-8wQX_qNbHFjwJ+vPJM2aj0cKBaEoQSw@mail.gmail.com>
In-Reply-To: <CACvbXWH3Ppufo55DP1-8wQX_qNbHFjwJ+vPJM2aj0cKBaEoQSw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Fri, 31 Jan 2025 12:53:26 -0800
X-Gm-Features: AWEUYZlVKwAtIUtvPurinzw58_MJFQy-HI_5u59D8jwC7VJTb10SndEKwToo_7s
Message-ID: <CABCOCHS78FR9+HLZqGDnY0rr2JjB4fJ9-sRdAO3tq+rXeS4dZQ@mail.gmail.com>
To: Per Andersson <per.ietf@ionio.se>
Content-Type: multipart/alternative; boundary="0000000000009f08f4062d06bc37"
Message-ID-Hash: KTFHSME2GEPITM43OISYBJS4MUCCYE32
X-Message-ID-Hash: KTFHSME2GEPITM43OISYBJS4MUCCYE32
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: WGLC for udp-notif
List-Id: NETCONF WG list <netconf.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/II9PQ5EneIrm7NV7Bgog_BjZ_7M>
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>

Hi,

I have implemented most of this draft for the publisher and collector,
as part of the following module set:

    ietf-distributed-notif@2024-04-21
    ietf-notification-capabilities@2022-02-17
    ietf-sid-file@2024-07-31
    ietf-subscribed-notif-receivers@2024-02-01
    ietf-subscribed-notifications@2019-09-09
      Features:
         configured
         dscp
         encode-json
         encode-xml
         replay
         subtree
         xpath
    ietf-system-capabilities@2022-02-17
    ietf-udp-client@2024-06-27 (I)
    ietf-udp-notif-transport@2024-10-17
      Features:
         encode-cbor
         segmentation
    ietf-yang-library@2019-01-04
    ietf-yang-patch@2017-02-22
    ietf-yang-push@2019-09-09
      Features:
         on-change
    ietf-yang-push-revision@2024-12-17
      Features:
         yang-push-revision-supported
    ietf-yang-revisions@2024-06-04 (I)
    ietf-yang-semver@2025-01-21 (I)


The following comments are related to the UDP-Notif draft.


Andy



# Applicability Issues

Configured subscriptions are allowed for event streams and datastores.
The UDP-Notif protocol may not be suitable for all use-cases covered
by configured subscriptions.

## Event streams

These messages are probably sensitive to loss and reordering.
There are no mechanisms to break into smaller events or even indicate
that a partial message was sent, so segmentation needs to be supported.

The 'subscription-started' and 'subscription-modified' messages
are very important mandatory subscription-state events that have this same
issue.

## Datastores

The existing YANG Push solution needs some improvements, but it does
allow the operator to control the scope of the updates, so it is quite
possible to use UDP-Notif even without segmentation.

Some YANG Push Concepts:

-  The datastore + filter defines the scope of the reports for the
subscription
-  A get-data() operation on the same datastore + filter is expected to
produce
   the same 'full result' as a push-update.
-  A server is free to send any 'edits' to the full result in a
   push-change-update, using any valid YANG Patch structure.

UDP-Notif Improvements:

There is a much better solution (although spread out over many drafts),
so not sure if this draft needs more text, except to explain the use-cases.

Instead of sending the entire full result in a push-update, send an
idempotent patch for a predictable subset, where it is
OK to replace the current subtree with the new subtree, and deletions/moves
are not expected.

This is implied by the '/interfaces' example where
an update for a single interface list entry is sent each push-update.
This also works well for distributed publishers, each sending updates for a
subset
of list entries (e.g., interfaces).

YANG Patch was not designed for high frequency YANG Push and it is too
complicated
for a collector to support.

# YANG Module Issues

- feature segmentation

The 'segmentation' feature should be removed, so that it is mandatory to
implement by the publisher, and optional-to-use (via the subscription
config);.
It is not difficult for the sender to support segmentation.


-  leaf max-segment-size

     when "../enable-segmentation = 'true'";


This when-stmt should be removed, and the leaf applies in either case.
There is no need to rely on a proprietary setting when the module has
this leaf.

     type uint16;


Not sure why a server should support a full uint16 for the segment size.
We are supporting range "1000 .. 9000".


# Implementation Issues

1) setup time

YANG Push says the publisher can start sending updates immediately after
the 'subscription-started' event. It would be better if a configurable
leaf for 'setup-time' was available, so the UDP-Notif Collector has
enough time to setup the YANG modules and SID files for the updates.

2) message state

The UDP-Notif Collector must keep state for each segmented message stream.
The 'host-name' leaf is not available to the collector.
E.g. the 'recvfrom' system API returns only a sockaddr for the sender.

A segmented message stream is scoped as follows:

  ip-addr . publisher-id  . message-id  . segment-id

There is a requirement that all publishers using the same source IP address
have a unique publisher-ID.

The transport layer should not need to parse and use the payload message
to reassemble messages.

The application layer can still manage updates by host-name.

On Thu, Jan 30, 2025 at 7:07 AM Per Andersson <per.ietf@ionio.se> wrote:

> Hi!
>
> This email begins a two-week WGLC on:
>
> UDP-based Transport for Configured Subscriptions
> https://datatracker.ietf.org/doc/html/draft-ietf-netconf-udp-notif-18
>
> Please take time to review this draft and post comments by February
> 13.  Favorable comments are especially welcomed.
>
> None of the authors or contributors have declared IPR:
>
> https://mailarchive.ietf.org/arch/msg/netconf/VQUz-x7mEWVmdxwG_ZZAbN-mlUk/
>
>
> --
> Per, co-chair
>
> _______________________________________________
> netconf mailing list -- netconf@ietf.org
> To unsubscribe send an email to netconf-leave@ietf.org
>