[netconf] notification message comments

Andy Bierman <andy@yumaworks.com> Thu, 19 September 2024 16:05 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 DE160C14F701 for <netconf@ietfa.amsl.com>; Thu, 19 Sep 2024 09:05:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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_NONE=-0.0001, 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 WYeTlGAYD8tx for <netconf@ietfa.amsl.com>; Thu, 19 Sep 2024 09:04:59 -0700 (PDT)
Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) (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 2CA49C1516E1 for <netconf@ietf.org>; Thu, 19 Sep 2024 09:04:59 -0700 (PDT)
Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-2d88a8c66b7so168329a91.1 for <netconf@ietf.org>; Thu, 19 Sep 2024 09:04:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1726761898; x=1727366698; darn=ietf.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=zqEDvcPgEbDql0TPB2iiJ3g2C/3UyP9pM5HTVcgIHKg=; b=E+9OPzZXcpDz4NKJ3VUMX8VYhJO8Wd3lVniHCKVzdjmqD8fV6JN/92HZSJqfmKuD67 RA/eWDHRfN0CmHfw/25G123JPCv2WW/yspFrWnbuaXz70wPPX1dq4tY7MF8aHfuxB74W 0vDhzNqcBwEW0gKtN2Z+UoXtDXxHjrfyC9DrJbLuf5dOvoGC9rL3tGsC65+xHM2nFMpV 4uWyrpem+yGtk4ulOsJWp2tt/6JlKRfUDNIptdLJl7aSR+bwVd6a2FS3dCJec0IPo7lH 4fqvrBm4IE2b7QBqigSpQ52ScLwDZYT2NndIu8EpZyo0Ydnry+kTsWLQfdekSCVGoqW9 Xexw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726761898; x=1727366698; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zqEDvcPgEbDql0TPB2iiJ3g2C/3UyP9pM5HTVcgIHKg=; b=ukO2Yuzn4AidTzKp9+DGK98j1b9MRIWXdvn9EZmF7ME4kZLZH7PlXO+xinVgbOjawy KCZIydKq79H3kxl//86WzzK7xkrY7T7NY0ld0DoDxais1qRmQxWLxbwQxzOPhpBRIF/p MJJuJdzD+t928DlHKA1wNhixYZWer19Z8DqoDDt09ymCN6grBvX7SpKxislpJuWPp7sG AgtGqCqvgUqleHHr7O4XcIMiZ+XeUSiSln+W/4BSjloXJgHmmDRl8sCCuGbqZbSxJbAu BybDbxjW+2+xAVqAX35GKIMsXQOQGFID6PZdUcJflm6ugTESVbrjl4kQBQ8U6tF1GWQ3 H4wQ==
X-Gm-Message-State: AOJu0Yx2UIKX6ejAmV55buuliqE+j8FbAoovsTFjU0tfqwYYE+Z9xhbf b9ioAS9rz99o37lBrWovjkaIclvVr6IHnM3ul4tsZkR3EcVoey+aRfBSgbmbiLoLDWCUneMl+Me HT+mnAvRip8mWS5wQrpn40koGV1XLPLo+pa2cu5FeEsHLKep7R5U=
X-Google-Smtp-Source: AGHT+IHKKxYxpCux+IldGjdktjQ/tzMjlz5NqP7ip2KYkq0xOyLx9wqOjeQhSiHrWHbv7BJr+v3+zM5SqFx99E7xWI0=
X-Received: by 2002:a17:90a:de8f:b0:2d3:b9bb:556a with SMTP id 98e67ed59e1d1-2db9ff6ac0bmr13072107a91.2.1726761898027; Thu, 19 Sep 2024 09:04:58 -0700 (PDT)
MIME-Version: 1.0
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 19 Sep 2024 09:04:47 -0700
Message-ID: <CABCOCHSWVXSSL67cqD1vqbQP7x3Z+Rqbbun-dw+6ZkaohEXreg@mail.gmail.com>
To: Netconf <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000008b4dad06227b1529"
Message-ID-Hash: KFXPK353TDDCKDYDABYSYXOH3W6OKOYS
X-Message-ID-Hash: KFXPK353TDDCKDYDABYSYXOH3W6OKOYS
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
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [netconf] notification message comments
List-Id: NETCONF WG list <netconf.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/OmauX9wpHlPFXzRYUAy7nj3uuDw>
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,

1) message headers

There was some discussion in the interim meeting about the notification
headers.
This is not quite correct. There is only 1 hierarchical structure with
nested content.
This <notification> message is sent in addition to any transport headers.

- RFC 5277 defines the <notification> one-way message as an XML element.
- RFC8040 defines how this XML element is represented as a JSON object for
RESTCONF,
  using RFC 7951 JSON encoding.
- RFC 9254 defines how to encode the event as a CBOR map. There is no RFC
   defining a representation of the complete <notification> one-way message.

2) position-dependence

Since the event is an un-named child node, it cannot be modeled in YANG.
The parser relies on the order of the child nodes to parse the specific
event type.

3) co-existence with RFC 5277

I like the solutions proposed to allow a client to opt-in at the global
or subscription level.  However this is not enough.
The new one-way message cannot be named 'notification'.

A new message is needed to allow a receiver to cleanly process both old and
new message formats.

3) notification2 message

A new message with only two child nodes like RFC 5277, except replace
eventTime
with a 'header' container.

  sx:structure notification2 {
     container header {
         // new fields like sysName, sequence-id
         // eventTime and/or new timestamps
          // augments possible for extensibility
       }
       // event MUST follow, which matches the module/name of a notification
       // element or a top-level data node that has a nested event-type
    }


Andy