[netmod] question about validating union with multiple string types?

Kent Watsen <kent+ietf@watsen.net> Tue, 16 June 2026 16:18 UTC

Return-Path: <0100019ed1313262-69c1d1b0-817d-4257-9d46-e4eb60b04479-000000@amazonses.watsen.net>
X-Original-To: netmod@mail2.ietf.org
Delivered-To: netmod@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id D228C10240FAB for <netmod@mail2.ietf.org>; Tue, 16 Jun 2026 09:18:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1781626692; bh=uaEVdWK13VNnZKA4JsZIBF7RgK4xYQeIlAhBbOzE1gk=; h=From:Subject:Date:To; b=t7sB8mbj7SP/oWiiAFhR4dfi6/oo1DAPo3AS/HSOjGF0PWKozMZ2DXvcFNYPzMIbe LuAJ/DtDpKsOKTrZr9Qn/xV/iuTDdm0E3QavBOap/6PSf0n2hkjf07Xe6cnOhohrWT 0zCFXNEfpp2UG4gJZbW1CWzVIMIln4CNa8BtBIyc=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=amazonses.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x8j1Ai_052C3 for <netmod@mail2.ietf.org>; Tue, 16 Jun 2026 09:18:12 -0700 (PDT)
Received: from a8-88.smtp-out.amazonses.com (a8-88.smtp-out.amazonses.com [54.240.8.88]) (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 mail2.ietf.org (Postfix) with ESMTPS id D9FB01023E7F9 for <netmod@ietf.org>; Tue, 16 Jun 2026 09:08:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1781626123; h=From:Content-Type:Mime-Version:Subject:Message-Id:Date:To:Feedback-ID; bh=uaEVdWK13VNnZKA4JsZIBF7RgK4xYQeIlAhBbOzE1gk=; b=K4wayJXMb/jjPgmG3WjzS8cG46CLW6xk8ltNpOR/CieaQwLNaWiag+kFUbK35aCV whtudJ0uEMu8RUP3+qiyNGucJ/ltF0mpi4r8bKomB0Cvs2ddZFQeG2UhmviAOAEUd1l xshVDM2dtLxThzLM2X283NdmdCjRIFiZGY2dZqFo=
From: Kent Watsen <kent+ietf@watsen.net>
Content-Type: multipart/alternative; boundary="Apple-Mail=_A6131B4C-C495-4733-B895-60739A9C8700"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81.1.6\))
Message-ID: <0100019ed1313262-69c1d1b0-817d-4257-9d46-e4eb60b04479-000000@email.amazonses.com>
Date: Tue, 16 Jun 2026 16:08:42 +0000
To: "netmod@ietf.org" <netmod@ietf.org>
X-Mailer: Apple Mail (2.3826.700.81.1.6)
Feedback-ID: ::1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
X-SES-Outgoing: 2026.06.16-54.240.8.88
Message-ID-Hash: RCC4GJSYKGKB42AWQU6HPFK3B62CWV5H
X-Message-ID-Hash: RCC4GJSYKGKB42AWQU6HPFK3B62CWV5H
X-MailFrom: 0100019ed1313262-69c1d1b0-817d-4257-9d46-e4eb60b04479-000000@amazonses.watsen.net
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-netmod.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [netmod] question about validating union with multiple string types?
List-Id: NETMOD WG list <netmod.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/n_idQjVe7XGCVHLMh6mKxfVlULM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Owner: <mailto:netmod-owner@ietf.org>
List-Post: <mailto:netmod@ietf.org>
List-Subscribe: <mailto:netmod-join@ietf.org>
List-Unsubscribe: <mailto:netmod-leave@ietf.org>

How does validation work if a union has multiple leafref/instance-identifier types with default "require-instance true"?  For instance:

typedef foo {
  type leafref {
    path "/widgets/name";
    require-instance true;
  }
}

typedef bar {
  type instance-identifier {
    require-instance true;
  }
}

leaf baz {
  type union {
    type foo;
    type bar;
  }
}


The general validation approach is to step thru the various union types until first match or no match.  But when there are multiple "require-instance true" types, will validation succeed only if all match?