[netmod] guidelines for top-level nodes in RFC 8407

Martin Bjorklund <mbj@tail-f.com> Fri, 22 March 2019 09:24 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 465F8130EC2 for <netmod@ietfa.amsl.com>; Fri, 22 Mar 2019 02:24:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id rpRc4OcDgXic for <netmod@ietfa.amsl.com>; Fri, 22 Mar 2019 02:24:02 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com []) by ietfa.amsl.com (Postfix) with ESMTP id 83308130EC9 for <netmod@ietf.org>; Fri, 22 Mar 2019 02:24:02 -0700 (PDT)
Received: from localhost (h-4-215.A165.priv.bahnhof.se []) by mail.tail-f.com (Postfix) with ESMTPSA id 994ED1AE00A0 for <netmod@ietf.org>; Fri, 22 Mar 2019 10:24:00 +0100 (CET)
Date: Fri, 22 Mar 2019 10:24:00 +0100 (CET)
Message-Id: <20190322.102400.1417118397166044745.mbj@tail-f.com>
To: netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/5b5dW3t3_k8GxDwa7x4fPmQdsms>
Subject: [netmod] guidelines for top-level nodes in RFC 8407
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Mar 2019 09:24:04 -0000


RFC 8407, section 4.10 says:

   A mandatory database data definition is defined as a node that a
   client must provide for the database to be valid.  The server is not
   required to provide a value.

   Top-level database data definitions MUST NOT be mandatory.

The objective for this rule is to avoid a situation where a module cannot
be loaded w/o providing additional config, or a situation where you
can't boot a server w/o additional config.

Consider this snippet:

  container top {
    leaf foo {
      type int32;
      default 0;
    leaf bar {
      when '../foo = 42';
      mandatory true;
      type int32;

Is /top/bar considered a mandatory top level node?

IMO it doesn't violate the spirit of the rule.  So the question is; is
this allowed?


P.S. the real data model is a potential solution to a problem with
ietf-alarms from draft-ietf-ccamp-alarm-module:

      leaf notify-status-changes {
        type enumeration {
          enum all-state-changes {
          enum raise-and-clear {
          enum severity-level {
        default "all-state-changes";
      leaf notify-severity-level {
        when '../notify-status-changes = "severity-level"';
        type severity;
        mandatory true;

pyang complains that this violates the cited rule.