<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc [
    <!ENTITY RFC2119 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
    <!ENTITY RFC3688 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3688.xml'>
    <!ENTITY RFC6020 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6020.xml'>
    <!ENTITY RFC6241 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml'>
    <!ENTITY RFC6242 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6242.xml'>
    <!ENTITY RFC6991 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6991.xml'>
    <!ENTITY RFC7950 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.7950.xml'>
    <!ENTITY RFC8040 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8040.xml'>
    <!ENTITY RFC8174 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml'>
    <!ENTITY RFC8340 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8340.xml'>
    <!ENTITY RFC8341 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8341.xml'>
    <!ENTITY RFC8342 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8342.xml'>
    <!ENTITY RFC8446 PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.8446.xml'>
    ]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="no" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>

<?rfc rfcedstyle="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" docName="draft-ietf-lsr-isis-pics-yang-01" ipr="trust200902"
     consensus="true" submissionType="IETF" version="3">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN"
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
         full title is longer than 39 characters -->

  <title abbrev="IS-IS PICS YANG">YANG Model for IS-IS Protocol Implementation Conformance Statement (PICS) </title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Yingzhen Qu" initials="Y" surname="Qu">
      <organization>Futurewei Technologies</organization>
      <address>
        <email>yingzhen.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Les Ginsberg" initials="L." surname="Ginsberg">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
        </postal>
        <email>ginsberg@cisco.com.com</email>
      </address>
    </author>
    <author initials='A' surname='Przygienda' fullname='Antoni Przygienda'>
      <organization>Juniper Networks</organization>
      <address>
        <email>prz@juniper.net</email>
      </address>
    </author>
    <author fullname="Bruno Decraene" initials="B" surname="Decraene">
      <organization>Orange</organization>
      <address>
        <email>bruno.decraene@orange.com</email>
      </address>
    </author>
    <author initials='Y' surname='Zhu' fullname='Yongqing Zhu'>
      <organization>China Telecom</organization>
      <address>
        <email>zhuyq8@chinatelecom.cn</email>
      </address>
    </author>
    <date/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
         in the current day for you. If only the current year is specified, xml2rfc will fill
   in the current day and month for you. If the year is not the current one, it is
   necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
   purpose of calculating the expiry date).  With drafts it is normally sufficient to
   specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Internet</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.
   If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>
        The YANG model in this document is to be used
        to query an IS-IS Protocol Implementation Conformance Statement (PICS).
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Overview">
      <t>
        YANG <xref target="RFC7950"></xref> is a data definition language
        used to define the contents of a conceptual data store
        that allows networked devices to be managed using NETCONF
        <xref target="RFC6241"/>.  YANG is proving relevant beyond its
        initial confines, as bindings to other interfaces (e.g., ReST) and
        encodings other than XML (e.g., JSON) are being defined.  Furthermore,
        YANG data models can be used as the basis for implementation of other
        interfaces, such as CLI and programmatic APIs.
      </t>

     <t>Operators may find it useful to know what aspects of a protocol
   are implemented by a given node in their network. Historically this
   information has been provided in a Protocol Implementation Conformance
   Statement (PICS) which is available as an offline document. (An example
   of PICS for IS-IS can be found in <xref target="ISO10589"/> Section 12.) However,
   there is no reason why this information could not be provided via
   YANG - which is what this document defines. This allows an operator
   to query nodes in real time as to what protocol features are supported.
   This in turn can assist with avoiding (or at least diagnosing)
   interoperability problems and/or determining when a feature can be safely
   deployed.</t>


      <t>
        The YANG modules in this document conform to the Network Management
        Datastore Architecture (NMDA) <xref target="RFC8342"/>.
      </t>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref target="RFC2119"/>
        <xref target="RFC8174"/>.</t>
      </section>
    </section>

    <section title="Tree Diagrams">
      <t>
        This document uses the graphical representation of data models
        defined in <xref target="RFC8340"/>.
      </t>
    </section>

    <section title="Design of the Model">
      <section title="IANA IS-IS PICS YANG Module">
        <t>A new IANA registry will be created for IS-IS PICS, which maintains
          the list of RFCs that support IS-IS PICS.</t>

        <t>Module iana-isis-pics.yang is the initial version for IS-IS
          PICS identity type definitions.
        </t>
        <t>When a new identity is added to the "IS-IS PICS" registry,
          the iana-isis-pics YANG module is updated by IANA.
        </t>
      </section>
      <section title="IS-IS PICS YANG Module">
        <t>Module ietf-isis-pics.yang is a device model and designed to
          query a node with IS-IS PICS status.</t>
        <t>The leaf-list of "isis-pics" lists all the supported PICS
          that defined in the iana-isis-pics module.</t>
        <t>The container "isis-pics-mptlv" is a place holder and meant
          to be augmented by individual RFC PICS module with multi-part
          tlv support.</t>
      </section>

    </section>

  <section title="IS-IS PICS YANG Trees">
    <section title="IETF ISIS PICS YANG Tree">
    <t>
      The following figure shows the tree diagram of the ietf-isis-pics
      module.
    </t>

      <artwork>
module: ietf-isis-pics
  +--ro isis-pics
     +--ro supported-isis-pics*   identityref
     +--ro isis-pics-mptlv
      </artwork>
    </section>

  </section>


  <section title="IS-IS PICS YANG Modules">
    <section title="IANA ISIS PICS YANG Module">
      <artwork><![CDATA[
<CODE BEGINS> file "iana-isis-pics@2024-03-03.yang"
module iana-isis-pics {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:iana-isis-pics";
  prefix iana-isis-pics;

  organization
    "IANA";
  contact
    "Internet Assigned Numbers Authority

     Postal: ICANN
             12025 Waterfront Drive, Suite 300
             Los Angeles, CA 90094-2536
             United States of America
     Tel:    +1 310 301 5800
     <mailto:iana@iana.org>";

  description
    "The YANG module defines the identities for IS-IS Protocol
     Implementation Conformance Statement (PICS).

     Copyright (c) 2025 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";

  revision 2025-05-05 {
    description
      "Initial Version";
    reference
      "RFC XXXX: YANG Data Model for IS-IS PICS.";
  }


  identity isis-pics {
    description
      "This identity is used as a base for all ISIS pics defined
       in the 'IS-IS PICS' registry.";
  }

}
<CODE ENDS>
      ]]></artwork>
    </section>
    <section title="ISIS PICS Module">
      <artwork><![CDATA[
<CODE BEGINS> file "ietf-isis-pics@2025-05-05.yang"
module ietf-isis-pics {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-isis-pics";
  prefix isis-pics;

  import iana-isis-pics {
    prefix "iana-isis-pics";
  }

  organization
    "IETF LSR - Link State Routing Working Group";
  contact
    "WG Web:   <http://datatracker.ietf.org/wg/lsr>
     WG List:  <mailto:lsr@ietf.org>

     Author:   Yingzhen Qu
               <mailto:yingzhen.ietf@gmail.com>
     Author:   Les Ginsberg
               <mailto:ginsberg@cisco.com>
     Author:   Tony Przygienda
               <mailto:prz@juniper.net>
     Author:   Bruno Decraene
               <mailto:bruno.decraene@orange.com>
     Author:   Yongqing Zhu
               <mailto:zhuyq8@chinatelecom.cn>";

  description
    "The YANG module is used to query an IS-IS implementation
     for Protocol Implementation Conformance Statement (PICS).

     This YANG model conforms to the Network Management
     Datastore Architecture (NMDA) as described in RFC 8342.

     Copyright (c) 2025 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.";

  reference
    "RFC XXXX: YANG Data Model for IS-IS PICS";

  revision 2025-05-05 {
    description
      "Initial Version";
    reference
      "RFC XXXX: YANG Data Model for IS-IS PICS.";
  }

  typedef support {
    type boolean;
    default "false";
    description
      "When set to True, it means a feature or definition is
       supported/implemented.";
  }

  container isis-pics {
    config false;
    description
      "IS-IS Protocol Implementation Conformance Statement (PICS).";

    leaf-list supported-isis-pics {
      type identityref {
        base iana-isis-pics:isis-pics;
      }
      description
        "List of supported isis pics.";
    }

    container isis-pics-mptlv {

      description
        "IS-IS Protocol Implementation Conformance Statement (PICS)
         for RFC xxxx: Multi-part TLVs in IS-IS. This container is
         meant to be augmented by RFC PICS module where a TLV is
         defined.";
    } 
  }  
}
<CODE ENDS>
      ]]></artwork>
    </section>
  </section>


    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="Security" title="Security Considerations">
      <t>
        The YANG modules specified in this document define a schema for
        data that is designed to be accessed via network
        management protocols such as NETCONF <xref target="RFC6241"/> or
        RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer is the secure transport
        layer, and the mandatory-to-implement secure transport is Secure Shell (SSH)
        <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the
        mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.
      </t>

      <t>
        The NETCONF access control model <xref target="RFC8341"/> provides the
        means to restrict access for particular NETCONF or RESTCONF users to a
        pre-configured subset of all available NETCONF or RESTCONF protocol
        operations and content.
      </t>

      <t>
        Some of the readable data nodes in the ietf-isis-pics.yang module
        may be considered sensitive or vulnerable in some network environments. It is thus
        important to control read access (e.g., via get, get-config, or notification)
        to these data nodes.
      </t>

   </section>
<section title="IANA Considerations">
  <section title="Registering YANG Modules">
    <t>
    This document registers URIs in the IETF XML registry as defined in
    <xref target="RFC3688"/>.  The following registrations are requested
    to be made:
  </t>

   <artwork>
   URI: urn:ietf:params:xml:ns:yang:iana-isis-pics
   Registrant Contact: IANA.
   XML: N/A, the requested URI is an XML namespace.
   </artwork>
   <artwork>
   URI: urn:ietf:params:xml:ns:yang:ietf-isis-pics
   Registrant Contact: The IESG.
   XML: N/A, the requested URI is an XML namespace.
   </artwork>
   <t>
     This document registers the following two YANG module in the "YANG Module Names"
     registry <xref target="RFC6020"/>.
   </t>
   <artwork>
   name: iana-isis-pics
   namespace: urn:ietf:params:xml:ns:yang:iana-isis-pics
   prefix: iana-isis-pics
   reference: RFC XXXX
   </artwork>
    <artwork>
   name: ietf-isis-pics
   namespace: urn:ietf:params:xml:ns:yang:ietf-isis-pics
   prefix: isis-pics
   reference: RFC XXXX
   </artwork>
  </section>
  <section title="IANA ISIS-PICS Module">
    <t>This document defines the initial version of the IANA-maintained
    iana-isis-pics YANG module.
  </t>
  <t>The document requests IANA to create a "IS-IS PICS" registry, and
   iana-isis-pics YANG module is intended to reflect the the registry.
 </t>
 <t>When a IS-IS PICS moduel is published, it MUST define how a new "identity" statement
  should be added to the iana-isis-pics module. The following guidlines should be followed.
</t>
<t>
  The name of the "identity" is "isis-pics-" plus the lowercase of the RFC name abbreviation. The
  "identity" statement should have the following substatements defined:
  </t>
  <artwork>
  "base": contains the value of "isis-pics".
  "description": contains "The identity for IS-IS PICS support of xxxx.",
                 replace the "xxxx" with the RFC information.
  "reference": the corresponding RFC information.
  </artwork>

    <t>When the iana-isis-pis YANG module is updated, a new "revision"
    statement must be added in from of the existing revision statements.</t>
  </section>





</section>
    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The YANG model was developed using the suite of YANG tools written
      and maintained by numerous authors.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      &RFC2119;
      &RFC3688;
      &RFC6020;
      &RFC6241;
      &RFC6242;
      &RFC6991;
      &RFC7950;
      &RFC8040;
      &RFC8174;
      &RFC8341;
      &RFC8342;
      &RFC8446;
      <reference anchor="ISO10589" target="ISO/IEC 10589:2002">
        <front>
          <title>
            Intermediate system to Intermediate system routing information exchange protocol for use in conjunction with the Protocol for providing the Connectionless-mode Network Service (ISO 8473)
          </title>
          <author fullname="ISO" initials="" surname="ISO">
            <organization>IANA</organization>
          </author>
          <date month="August" year="1987"/>
        </front>
      </reference>
    </references>
    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->
      &RFC8340;
    </references>
  </back>
</rfc>
