<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.7.0) -->


<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY RFC7223 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7223.xml">
<!ENTITY RFC7950 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7950.xml">
<!ENTITY RFC8040 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8040.xml">
<!ENTITY RFC8340 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8340.xml">
<!ENTITY RFC8341 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8341.xml">
<!ENTITY I-D.draft-rokui-ccamp-actn-wdm-pluggable-modelling  SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-rokui-ccamp-actn-wdm-pluggable-modelling-03.xml">
]>
<!---
<?rfc comments="yes"?>
-->
<rfc ipr="trust200902" docName="draft-hi-ccamp-cmis-control-yang-01" category="std">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <?rfc toc="yes" ?>

  <?rfc symrefs="yes" ?>

  <?rfc sortrefs="yes"?>

  <?rfc iprnotified="no" ?>

  <?rfc strict="yes" ?>

  <front>
    <title abbrev="YANG-CMIS-Access-Control">A YANG Data Model for CMIS Access and Control</title>

    <author initials="S." surname="Homma" fullname="Shunsuke Homma" role="editor">
      <organization>NTT</organization>
      <address>
        <email>shunsuke.homma.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Irino" fullname="Hitoshi Irino" role="editor">
      <organization>NTT West</organization>
      <address>
        <email>hitoshi.irino.ge@west.ntt.co.jp</email>
      </address>
    </author>
    <author initials="T." surname="Mano" fullname="Toru Mano">
      <organization>NTT</organization>
      <address>
        <email>toru.mano@ntt.com</email>
      </address>
    </author>
    <author initials="K." surname="Anazawa" fullname="Kazuya Anazawa">
      <organization>NTT</organization>
      <address>
        <email>kazuya.anazawa@ntt.com</email>
      </address>
    </author>
    <author initials="Y." surname="Tochio" fullname="Yuji Tochio">
      <organization>1Finity</organization>
      <address>
        <email>tochio@fujitsu.com</email>
      </address>
    </author>

    <date/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>
      <t>
      This document provides a YANG data model to access to and control CMIS for managing 
      pluggable Digital Coherent Optics transceivers equipped in a router or a switch from outside. 
      CMIS has custom pages which enables to be defined by the module vendor for its own usage, 
      and allows to extend the uses of the optics devices.
      </t>
    </abstract>



  </front>

  <middle>

    <section anchor="sec:introduction" title="Introduction">

    <t>
    Pluggable Digital Coherent Optics (DCO) transceivers enable routers or switches to directly connect to 
    optical network (e.g., DWDM or OTN). Pluggable DCO transceivers, such as CFP2-DCO and QSFP-DD DCO, implement
    optical connectors (i.e., Tx and Rx) and a Digital Signal Processor (DSP), and provide 
    higher data rates (100 Gbps, 400 Gbps, and beyond) and flexible data transport. 
    </t>

    <t>
    Pluggable DCO transceivers, equiped by a platform device (e.g., a router or a switch), is generally 
    controlled by network OS (NOS) running on the device with Content Management Interoperability 
    Specificatins (CMIS) which is an open standard protocol designed to facilitate interoperability 
    between management systems. The specification is defined in <xref target='OIF-CMIS'/>. 
    </t>

    <t>
    Vender-specific differences in the interpretation of certain CMIS definitions and in the capabilities 
    of pluggable DCO transceivers can lead to inconsistent behavior. Therefore, each NOS needs explicitly 
    support each transceiver type. Additionally, existing data models such as OpenConfig and IETF YANG may 
    not fully present or utilize all transceiver capabilities (Ref. 
    <xref target='I-D.rokui-ccamp-actn-wdm-pluggable-modelling'/>).
    </t>

    <t>
    CMIS also allows vendor-specific extensions of its transceiver features by 
    using custom pages. For example, CMIS custom pages can be used for non-standardized functions. However, 
    there is currently no standardized schema for external systems to access or manage CMIS custom pages.
    </t>

    <t>
    This document defines a YANG data model that enables external systems to directly manage DSP 
    registers in pluggable DCO transceivers installed in routers and switches, in compliance with 
    the CMIS specification.
    </t>


      <section anchor="sec:terms" title='Terminology and Notations'>
      <t> 
      The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 
      this document are to be interpreted as described in BCP14, 
      <xref target='RFC2119'/>, <xref target='RFC8340'/> when, 
      and only when, they appear in all capitals, as shown here.
      </t>


      <t>
      The terms and their definitions used in this specification are described below:
      </t>

      <t>
      <list style="symbols">
        <t>CMIS (Common Management Interface Specifications): A generic management
        communication interface together with a generic management interaction protocol between
        host and managed modules. The specification is defined in <xref target="OIF-CMIS"/>;</t>
        <t>NACM (Network Configuration Access Control Model): A standard access control model to 
        restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured 
        subset of all available NETCONF or RESTCONF protocol operations and content.  
        The specification is defined in <xref target='RFC8341'/>.</t>
        <t>NETCONF (Network Configuration Protocol): Mechanisms to install, manipulate, and delete 
        the configuration of network devices. The definitions and specification is described in 
        <xref target='RFC6241'/>;</t>
        <t>RESTCONF: An HTTP-based protocol that provides a programmatic interface for accessing 
        data defined in YANG, using the datastore concepts defined in NETCONF. The specification is 
        defined in <xref target='RFC8040'/>.</t>
      </list>
      </t>


      <t>
      The following terms of NETCONF defined in <xref target='RFC6241'/> are also used in this specification:
      </t>

      <t>
      <list style="symbols">
        <t>(NETCONF) client</t>
        <t>configuration data</t>
        <t>datastore</t>
        <t>message</t>
        <t>remote procedure call (RPC)</t>
        <t>(NETCONF) server</t>
        <t>state data</t>
        <t>(NETCONF) user</t>
      </list>
      </t>

      <t>
      This document makes use of the terms defined in <xref target='RFC7950'/>.
      </t>


      </section>

      <section anchor="sec:acronyms" title='Acronyms'>
      <t>
      The following acronyms are used in this document:
      </t>

      <t>
      <list hangIndent="8" style="hanging">
        <t hangText="CE">Customer Edge</t>
        <t hangText="CDB">Command Data Block</t>
        <t hangText="DCO">Digital Coherent Optics</t>
        <t hangText="DSP">Digital Signal Processor</t>
        <t hangText="DWDM">Dense Wavelength Division Multiplexing</t>
        <t hangText="GSNR">Generalized Signal-to-Noise Ratio</t>
        <t hangText="i2c">Inter-Integrated Circuit</t>
        <t hangText="NOS">Network Operating System</t>
        <t hangText="NMS">Network Management System</t>
        <t hangText="OTN">Optical Transport Network</t>
        <t hangText="QoT">Quality of Transmission</t>
        <t hangText="TPA">Third Party Application</t>
        <t hangText="WDM">Wavelength Division Multiplexing</t>
      </list>
      </t>
      </section>

      <section anchor="sec:tree-diagram" title='Tree Diagram'>
      <t>
      The tree diagrams used in this document follow the notation defined in <xref target='RFC8340'/>.
      </t>
      </section>

      <section anchor="sec:prefix-data-node-name" title='Prefixes in Data Node Names'>
      <t>
      In this document, names of data nodes and other data model objects are prefixed using the standard 
      prefix associated with the corresponding YANG imported modules. The proposed modules are augments 
      to the ietf-interface <xref target="RFC7223"/>.
      The details of the modules are described in <xref target="sec:cmis-access-control-modules"/>.
      </t>

<texttable title="Prefixes and corresponding YANG module" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>if</c>
      <c>ietf-interfaces</c>
      <c><xref target='RFC7223'/></c>
      <c>cmis-ctrl</c>
      <c>ietf-cmis-control</c>
      <c>RFC XXXX</c>
      <c>cmis-ctrl-pm</c>
      <c>ietf-cmis-control-primitive</c>
      <c>RFC XXXX</c>
      <c>cmis-ctrl-act</c>
      <c>ietf-cmis-control-action</c>
      <c>RFC XXXX</c>
      <c>cmis-ctrl-rpc</c>
      <c>ietf-cmis-control-rpc</c>
      <c>RFC XXXX</c>
      <c>ietf-cmis-mon</c>
      <c>cmis-monitor</c>
      <c>RFC XXXX</c>
</texttable>

      <t>
      Note: The RFC Editor will replace XXXX with the number assigned to the RFC once this draft becomes an RFC.
      </t>
      </section>

    </section>


<section anchor="sec:usecase-implementation" title='Usecases and Implementation Patterns'>

<t>
This section describes usecases of this YANG data model for accessing to and control CMIS and 
implementation patterns for using such YANG.
</t>

<section anchor="sec:usecase" title='Usecases'>
  <section anchor="sec:usecase-1" title='Centralized Control of Pluggable DCO Transceivers'>
  <t>
  This YANG data model disaggregates management features for pluggable DCO transceivers which 
  a platform device equips with from NOS, and enables centralized control of such transceivers. 
  For example, in case that a customer's router (i.e., CE) is connected to DWDM/OTN provided by a service provider, 
  this enables pluggable DCO transceivers installed to the customer's router to be controlled by a 
  controller of the service provider as shown in <xref target='fig-centralized-pluggables-control'/>. The service 
  provider can configure DCO transceivers installed in customer devices directly depending on its own policy. 
  Then, some access control with NACM defined in <xref target='RFC8341'/> should be applied for preventing 
  illegal configuration of the other than target modules or leak of information of the customer's devices.
  </t>

<figure title="Centralized Control of Pluggable Modules" anchor="fig-centralized-pluggables-control"><artwork align="center"><![CDATA[

                         +------------+
                   . . .>| Controller |<. . .
                   .     +-----A------+     .
                   .           .            .
   ,---------.     .           .            .     ,---------.
  (           )    .       ,---V----.       .    (           )
 ( Customer +------V+     (          )     +V------+ Customer )
(   Network | CE [DCO]---(  DWDM/OTN  )---[DCO] CE |  Network  )
 (          +-------+     (          )     +-------+          )
  `-----------'            `--------'            `-----------'

`-------v-------' `------------v------------' `--------v------'
 Customer Domain    Service Provider Domain    Customer Domain

                                    Legend
                                    <. . . > : C-plane Signals 

]]></artwork></figure>

    <t>
    If CEs delegate whole the DCO transceivers management to the controller, the controller 
    needs to monitor the DCO transceivers for detecting their failure occurred. For this case, 
    notification-based YANG would be used <xref target="sec:ietf-cmis-monitor"/>.
    </t>

    <t>
    On the other hand, in case that NOS of the platform devide manages pluggable modules, 
    CMIS control from remote controller might cause inconsistency problem of pluggable modules. 
    More details of this prroblem is considered in <xref target='sec:security-consideration'/>.
    </t>
    </section>

    <section anchor="sec:usecase-2" title='Obtaining Non-standardized Information with Custom Pages'>
    <t>
    By using this YANG data model, operators can obtain detailed DSP information contained in CMIS custom
    pages even if the modeling of the data is not standardized. Example uses of such detailed DSP information 
    including fiber sensing (Ref. <xref target='ECOC48923.2020.9333176'/>), physical layer monitoring 
    (Ref. <xref target='JLT.2021.3139167'/>), and accurate estimation (e.g., GSNR). (Ref. <xref target='JOCN.505729'/>)
    </t>
    </section>
  </section>

  <section anchor='implementation' title='Implementation Patterns'>
    <t>
    This document introduce two patterns to implement a client using an interface in which this YANG data model is available:
    </t>

    <t>
    <list style="hanging">
      <t hangText="Pattern1:">Controller/NMS on Remote Host</t>
      <t> 
      In this pattern, a controller or an NMS implements a client using this YANG data model, and control pluggable modules 
      installed to a platform device. The overview is shown in <xref target="fig-implement-pattern1"/>.
      </t>
      <t hangText="Pattern2:">Application Running on the Platform Device</t>
      <t>
      In this pattern, a 3rd party's application running on a platform device implements a client using this YANG data model, 
      and control pluggable modules installed to the device. That application can behave as a server using this YANG data model, 
      or provide more generic interface, such as REST API to remote systems. The overview is shown in <xref target="fig-implement-pattern2"/>.
      </t>
    </list>
    </t>

<figure title="Implementation Pattern1 Overview" anchor="fig-implement-pattern1"><artwork align="center"><![CDATA[

+-----------------------+
|    Controller/NMS     |
+-----------------------+
            A
            | This YANG over NETCONF,
            | RESTCONF or RPC.
            |
            V
+-----------------------+
|   Platform Device     |
|   ,---------------.   |
|  |       NOS       |  |
|   `---------------'   |
|           A           |
|           | CMIS via  |
|           V i2c bus   |
|       +-------+       |
+-------|  DCO  |-------+
        +-------+

]]></artwork></figure>

<figure title="Implementation Pattern2 Overview" anchor="fig-implement-pattern2"><artwork align="center"><![CDATA[

+-----------------------+
|    Controller/NMS     |
+-----------------------+
            A
            | Generic/abstracted Data Model
            | over NETCONF/RESTCONF or REST API
            +------+
+------------------|----+
| Platform Device  |    |
|                  V    |
| This YANG over ,---.  |
| NETCONF etc.  | TPA | |
|       +-----> | APL | |
|       |        `---'  | 
|   ,---V-----------.   |
|  |       NOS       |  |
|   `---------------'   |
|           A           |
|           | CMIS via  |
|           V i2c bus   |
|       +-------+       |
+-------|  DCO  |-------+
        +-------+

]]></artwork></figure>

    </section>
  </section>

  <section anchor="sec:cmis-access-control-modules" title="CMIS Access and Control Modules">
  <t>
  This document defines the following YANG modules for the management of CMIS-capable pluggable DCO transceivers.
  </t>

  <t>
  <list style="symbols">
    <t>ietf-cmis-control (base model, mandatory)</t>
    <t>ietf-cmis-control-primitive (optional)</t>
    <t>ietf-cmis-control-rpc (optional)</t>
    <t>ietf-cmis-control-action (optional)</t>
    <t>ietf-cmis-monitor (optional)</t>
  </list>
  </t>

  <t>
  Each module is an augment to the ietf-interface. It allows the user to set the operating mode 
  of CMIS for control pluggable devices as well as other operational parameters.
  </t>

  <section anchor="sec:ietf-cmis-control" title="ietf-cmis-control">
  <t>
  The structure of ietf-cmis-control is shown below:
  </t>

<figure><artwork><![CDATA[
module: ietf-cmis-control

  augment /if:interfaces/if:interface:
    +--rw cmis-control
       +--ro cmis-enabled?   boolean
       +--ro cmis-version?   string
       +--rw cmis-page* [page-num]
          +--rw page-num            uint8
          +--rw bank                uint8
          +--ro page-access-type?   access-type
          +--rw description?        string
          +--rw value* [offset]
             +--rw offset               uint8
             +--rw size                 uint8
             +--ro value-access-type?   access-type
             +--rw value-data           binary
             +--rw description?         string
]]></artwork></figure>
  
<!--  
  <t>
  The "ietf-cmis-control" module contains the following
  reusable YANG data types, identities and groupings:</t>

<dl>
  <dt>cmis-control:</dt>
  <dd>
    <t>
    A base YANG identity for data nodes to access and control CMIS supported by 
    the pluggable device equipped in the interface. 
    </t>
  </dd>
  <dt>cmis-version:</dt>
  <dd>
    <t>
    A base YANG identity for the version of CMIS supported by the device.
    </t>
  </dd>
  <dt>cmis-pages:</dt>
  <dd>
    <t>
    A base YANG identity for the list of pages to be accessed or controlled.
    </t>
  </dd>
  <dt>cmis-page:</dt>
  <dd>
    <t>
    A base YANG identity for the page to be accessed or controlled.
    </t>
  </dd>
  <dt>cmis-page:page-num:</dt>
  <dd>
    <t>
    A base YANG identity for the number of the target CMIS page.
    The value is selected from 0 to 255.</t>
  </dd>
  <dt>cmis-page:bank:</dt>
  <dd>
    <t>
    A base YANG identity for the bank corresponding to the target CMIS page.
    </t>
  </dd>
  <dt>cmis-page:page-access-type:</dt>
  <dd>
    <t>
    A base YANG identity for access type of the target CMIS page.
    An access type is selected from among rw (A readable and writable element), 
    rww (A readable and writable element that can be modified by the module),
    ro (A read-only element), wo(A write-only element), wo/sc (A write-only element 
    with self-clearing side effect), and ro/cor (A write-only element with 
    clean-on-read side effect).
    </t>
  </dd>
  <dt>cmis-page:description:</dt>
  <dd>
    <t>
    A base YANG identity for the description about the content of the target CMIS page.
    </t>
  </dd>

  <dt>cmis-page:value:</dt>
  <dd>
    <t>
    A base YANG identity for the subject area to be controlled.
    </t>
  </dd>
  <dt>value:offset</dt>
  <dd>
    <t>
    A base YANG identity for the location of the data within about the target CMIS page.
    The value is selected from 0 to 255. 
    </t>
  </dd>
  <dt>value:size</dt>
  <dd>
    <t>
    A base YANG identity for the size of the value. The value is selected from 1 to 128.
    </t>
  </dd>
  <dt>value:value-access-type:</dt>
  <dd>
    <t>
    A base YANG identity for access type of the value.
    An access type is selected from among rw, rww, ro, wo, wo/sc, and ro/cor.
    </t>
  </dd>
  <dt>value:value-data</dt>
  <dd>
    <t>
    A base YANG identity for the data contained into the value. The data format is basically 
    binary, but any other format (e.g., ASCII, JIS) can be also used. The length of the value 
    must be the same with the indicated size. The value is writable only when the access-type 
    is neither ro or ro/cor. In case that the value is across multiple subject areas 
    which have different access-types, all access-type conditions must be satisfied. 
    For example, if the value across subject-areas whose access-types are ro and rw, 
    the access-type of the value is ro. When all conditions cannot be satisfied 
    (e.g., ro and wo co-exists), an error should be retured.
    </t>
  </dd>
  <dt>value:description</dt>
  <dd>
    <t>
    A base YANG identity for the description of the value. 
    </t>
  </dd>
</dl>
-->


<ul empty="true"><li>
  <t>Note that the values related to CMIS pages are defined in <xref target="OIF-CMIS"/>.</t>
</li></ul>


  <t>
  The YANG module of "ietf-cmis-control" is defined as below.
  </t>

<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-cmis-control.yang"
module ietf-cmis-control {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-cmis-control";
  prefix cmis-ctrl;

  import ietf-interfaces {
    prefix if;
  }

  organization
    "IETF CCAMP Working Group";

  contact
    "WG Web:   <http://tools.ietf.org/wg/ccamp/>
    WG List:  <mailto:ccamp@ietf.org>

    Editor:   Shunsuke Homma
      <mailto:shunsuke.homma.ietf@gmail.com>
    
    Editor:   Hitoshi Irino
      <mailto:hitoshi.irino.ge@west.ntt.co.jp>";

  description
    "This YANG module defines a data model for the management 
    of CMIS (Common Management Interface Specification) pages 
    as specified by OIF. It enables configuration and retrieval 
    of CMIS page data, including access types and value fields, 
    to support the management of pluggable optical modules via 
    NETCONF or RESTCONF.

    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
    (http://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.";
  
// RFC Ed.: replace XXXX with actual RFC number and remove this note

  revision "2025-04-21" {
    description
      "Initial revision.";
    reference
      "I-D.hi-ccamp-cmis-control-yang-00";
  }

  /*
   * CMIS control data nodes
   */

  typedef access-type {
      type enumeration {
        enum rw {
          description "A readable and writable element.";
        }
        enum rww {
          description "A readable and writable element that can be 
          modified by the module.";
        }
        enum ro {
          description "A read-only element.";
        }
        enum wo {
          description "A write-only element.";
        }
        enum wo/sc {
          description "A write-only element with self-clearing side 
          effect.";
        }
        enum ro/cor {
          description "A write-only element with celan-on-read side 
          effect.";
        }
      }
      description "Defines access types for CMIS elements.";
  }

  grouping cmis-page {
    description
      "Parameters stored in the CMIS page";

    leaf page-num{
      type uint8 {
        range "0 .. 255";
      }
      mandatory true;
      description 
        "The number of the CMIS page.";
    }
    
    leaf bank {
      type uint8;
      mandatory true;
      description
        "The banks corresponding to the CMIS page.";
    }

    leaf page-access-type {
      type access-type;
      config false;
      description "Access type of the CMIS page.";
    }

    leaf description {
      type string;
      description 
        "The description of the CMIS page.";
    }
      
    list value {
      key "offset";
      description 
      "The value contained in the CMIS page.";

      leaf offset {
        type uint8;
        mandatory true;
        description 
          "The memory address of the value.";
      }

      leaf size {
        type uint8 {
          range "1 .. 128";
        }
        mandatory true;
        description 
          "The memory size of the value.";
      }
        
      leaf value-access-type {
        type access-type;
        config false;
        description "Access type of the target value.";
      }

      leaf value-data {
        type binary;
        mandatory true;
        description
          "The data contained in the value. It is writable only 
          when the access-type is not Read-Only or Read-Only with 
          clean-on-read side effect.";
      }

      leaf description {
        type string;
        description 
          "The description of the value.";
      }
    }
  }
  

  grouping cmis-pages {
    description
      "The list of the accessible CMIS pages supported by the 
      pluggable device accommodated into the interface.";

    list cmis-page {
      key "page-num";
      uses cmis-page;
      }
  }

  grouping cmis-control {
    description
      "Parameters for primitive CMIS control of the pluggable device 
      equipped in the interface.";
    
    leaf cmis-enabled {
      type boolean;
      default "false";
      config false;
      description
        "The availability of the CMIS for control the pluggable 
        device equipped in the interface. If the device does not 
        support CMIS, this value is false.";
    }
    
    leaf cmis-version {
      type string;
      config false;
      description
        "The version of the CMIS by the pluggable device.";
    }

    uses cmis-pages;

  }

  /*
   * Augment Interface
   */
  
  augment "/if:interfaces/if:interface" {
    container cmis-control {
      uses cmis-control;
    }
  }
}
<CODE ENDS>
]]></artwork></figure>


  </section>




  <section anchor="sec:ietf-cmis-control-primitive" title="ietf-cmis-control-primitive">
  <t>
  This document provides a more primitive YANG data model for CMIS access and control. 
  This is called as "ietf-cmis-control-primitive" or "primitive mode" and it doesn't 
  manage supplemental information, such as access-types or description, of the fields in 
  a CMIS page, and treat accessed memories as flat data structure.
  </t>
  
  <t>
  This model enables implementation of server (i.e., network node) side to be simple, but on the other hand, 
  client (i.e., controller) side is needed strict management of data of CMIS pages. For example, when a 
  client sends a request to change any value, it needs to comprehend the page number, the 
  offset, and the data size in which the data is contained.
  </t>
<!--
    <section anchor="sec:primitive-mode-yang-identities-structure" title='YANG Module Identities and Structure'>
    <t>
    The name of data node and prefix are described in <xref target="tab-primitive-prefixes"/>. 
    This module is also an augment to the ietf-interface.
    </t>

<texttable title="Data Node Name and Prefix of Primitive Mode" anchor="tab-primitive-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>if</c>
      <c>ietf-interfaces</c>
      <c><xref target='RFC7223'/></c>
      <c>cmis-ctrl-pm</c>
      <c>ietf-cmis-control-primitive</c>
      <c>RFC YYYY</c>
</texttable>
-->
  <t>
  The tree diagram of "ietf-cmis-control-primitive" is shown below:
  </t>

<figure><artwork><![CDATA[
module: ietf-cmis-control-primitive

  augment /if:interfaces/if:interface:
    +--rw cmis-control-primitive
       +--ro cmis-enabled?          boolean
       +--ro cmis-version?          string
       +--rw primitive-cmis-page* [page-num]
          +--rw page-num    uint8
          +--rw bank        uint8
          +--rw offset      uint8
          +--rw size        uint8
          +--rw value       binary
]]></artwork></figure>

  <t>
  The "ietf-cmis-control-primitive" module is defined as below.
  </t>

<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-cmis-control-primitive.yang"
module ietf-cmis-control-primitive {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-cmis-control-primitive";
  prefix cmis-ctrl-pm;

  import ietf-interfaces {
    prefix if;
  }

  organization
    "IETF CCAMP Working Group";

  contact
    "WG Web:   <http://tools.ietf.org/wg/ccamp/>
    WG List:  <mailto:ccamp@ietf.org>

    Editor:   Shunsuke Homma
      <mailto:shunsuke.homma.ietf@gmail.com>
    
    Editor:   Hitoshi Irino
      <mailto:hitoshi.irino.ge@west.ntt.co.jp>";

  description
    "This YANG module defines a data model for the management 
    of CMIS (Common Management Interface Specification) pages 
    as specified by OIF with RPC. It enables configuration and 
    retrieval of CMIS page data, including access types and 
    value fields, to support the management of pluggable optical 
    modules via NETCONF or RESTCONF.

    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
    (http://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.";
  
// RFC Ed.: replace XXXX with actual RFC number and remove this note

    revision "2025-4-21" {
      description
        "Initial revision.";
      reference
        "I-D.hi-ccamp-cmis-control-yang-00";
    }

    augment "/if:interfaces/if:interface" {
  action cmis-read {
    description "Read CMIS register under this interface.";
    input {
      leaf page {
        type uint8;
        mandatory true;
      }
      leaf bank {
        type uint8;
        mandatory true;
      }
      leaf offset {
        type uint8;
        mandatory true;
      }
      leaf size {
        type uint8;
        default 1;
      }
    }
    output {
      leaf data {
        type binary;
      }
    }
  }

  action cmis-write {
    description "Write CMIS register under this interface.";
    input {
      leaf page {
        type uint8;
        mandatory true;
      }
      leaf bank {
        type uint8;
        mandatory true;
      }
      leaf offset {
        type uint8;
        mandatory true;
      }
      leaf data {
        type binary;
        mandatory true;
      }
    }
  }
}

<CODE ENDS>
]]></artwork></figure>
</section>

<section anchor="sec:ietf-cmis-control-action" title="ietf-cmis-control-action">
  <t>
  The "ietf-cmis-control-action" module defines actions-based controls of CMIS pages with NETCONF RPC.
  </t>

<figure><artwork><![CDATA[
module: ietf-cmis-control-action

  augment /if:interfaces/if:interface:
    +---x cmis-read
    |  +---w input
    |  |  +---w page      uint8
    |  |  +---w bank      uint8
    |  |  +---w offset    uint8
    |  |  +---w size      uint8
    |  +--rw output
    |     +--rw data?   binary
    +---x cmis-write
       +---w input
       |  +---w page      uint8
       |  +---w bank      uint8
       |  +---w offset    uint8
       |  +---w data      binary
       +--rw output
          +--rw status?             enumeration
          +--rw post-write-value?   binary
]]></artwork></figure>

  <t>
  The YANG module of "ietf-cmis-control" is defined as below.
  </t>

<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-cmis-control-rpc"
module ietf-cmis-control-action {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-cmis-control-action";
  prefix cmis-ctrl-act;

  import ietf-interfaces {
    prefix if;
  }

  organization
    "IETF CCAMP Working Group";

  contact
    "WG Web:   <http://tools.ietf.org/wg/ccamp/>
    WG List:  <mailto:ccamp@ietf.org>

    Editor:   Shunsuke Homma
      <mailto:shunsuke.homma.ietf@gmail.com>
    
    Editor:   Hitoshi Irino
      <mailto:hitoshi.irino.ge@west.ntt.co.jp>";

  description
    "This YANG module defines a data model for action-based 
    management of CMIS (Common Management Interface Specification) 
    pages as specified by OIF. It enables configuration and 
    retrieval of CMIS page data, including access types and value 
    fields, to support the management of pluggable optical modules 
    via NETCONF or RESTCONF.

    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
    (http://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.";
  
// RFC Ed.: replace XXXX with actual RFC number and remove this note
  revision "2025-10-11" {
    description "Initial revision.";
  }

  augment "/if:interfaces/if:interface" {
    description
      "Add CMIS read/write actions under interface.";

    action cmis-read {
      description
        "Read CMIS register via action context.";
      input {
        leaf page {
          type uint8;
          mandatory true;
          description "The number of the CMIS page.";
        }
        leaf bank {
          type uint8;
          mandatory true;
          description "The banks corresponding to the CMIS page.";
        }
        leaf offset {
          type uint8;
          mandatory true;
          description "The memory address of the value.";
        }
        leaf size {
          type uint8{
            range "1 .. 128";
          }
          mandatory true;
          description "The memory size of the value.";
        }
      }
      output {
        leaf data {
          type binary;
          description "Raw register data.";
        }
      }
    }

    action cmis-write {
      description
        "Write CMIS register data via action context.";
      input {
        leaf page {
          type uint8;
          mandatory true;
          description "The number of the CMIS page.";
        }
        leaf bank {
          type uint8;
          mandatory true;
          description "The banks corresponding to the CMIS page.";
        }
        leaf offset {
          type uint8;
          mandatory true;
          description "The memory address of the value.";
        }
        leaf data {
          type binary;
          mandatory true;
          description "Data to write.";
        }
      }
      output {
        leaf status {
          type enumeration {
            enum success;
            enum not-permitted {
              description "Write request was rejected due to access-type or policy";
            }
            enum io-error {
              description "I/O error during write";
            }
            enum invalid-params {
              description "Bad parameters";
            }
          }
          description "Result of the write operation.";
        }

        leaf post-write-value {
          type binary;
          description
            "Optional read-back of the target value after write.
             Present only if the implementation performed a read-back
             (e.g., for 'rw' registers). Not present for 'wo' registers
             or when no-readback was requested/possible.";
        }
      }
    }
  }
}
<CODE ENDS>
]]></artwork></figure>
  </section>




<section anchor="sec:ietf-cmis-control-rpc" title="ietf-cmis-control-rpc">
  <t>
  The "ietf-cmis-control-rpc" module provides a schema to control CMIS pages with NETCONF RPC.
  </t>

  <t>
  The tree diagram of "ietf-cmis-control-rpc" is shown below.
  </t>

<figure><artwork><![CDATA[
module: ietf-cmis-control-rpc

  rpcs:
    +---x cmis-read
    |  +---w input
    |  |  +---w interface-name    -> /if:interfaces/interface/name
    |  |  +---w page              uint8
    |  |  +---w bank              uint8
    |  |  +---w offset            uint8
    |  |  +---w size?             uint8
    |  +--ro output
    |     +--ro data?   binary
    +---x cmis-write
       +---w input
       |  +---w interface-name    -> /if:interfaces/interface/name
       |  +---w page              uint8
       |  +---w bank              uint8
       |  +---w offset            uint8
       |  +---w data              binary
       +--ro output
          +--ro status?             enumeration
          +--ro post-write-value?   binary
]]></artwork></figure>

  <t>
  The YANG module of "ietf-cmis-control-rpc" is defined as below.
  </t>

<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-cmis-control-rpc"
module ietf-cmis-rpc {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-cmis-rpc";
  prefix cmis-rpc;

  import ietf-interfaces {
    prefix if;
  }

  organization
    "IETF CCAMP Working Group";

  contact
    "WG Web:   <http://tools.ietf.org/wg/ccamp/>
    WG List:  <mailto:ccamp@ietf.org>

    Editor:   Shunsuke Homma
      <mailto:shunsuke.homma.ietf@gmail.com>

    Editor:   Hitoshi Irino
      <mailto:hitoshi.irino.ge@west.ntt.co.jp>";

  description
    "This YANG module defines a data model for the management
    of CMIS (Common Management Interface Specification) pages
    as specified by OIF with RPC. It enables configuration and
    retrieval of CMIS page data, including access types and
    value fields, to support the management of pluggable
    optical modules via NETCONF or RESTCONF.

    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
    (http://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.";

// RFC Ed.: replace XXXX with actual RFC number and remove this note

  revision "2025-10-11" {
    description
      "Initial revision.";
    reference
      "I-D.hi-ccamp-cmis-control-yang-01";
  }

  rpc cmis-read {
    description
      "Read a CMIS register from a pluggable DCO transceiver.";
    input {
      leaf interface-name {
        type leafref{
	  path "/if:interfaces/if:interface/if:name";
	}
        mandatory true;
        description "Target interface name.";
      }
      leaf page {
        type uint8;
        mandatory true;
      }
      leaf bank {
        type uint8;
        mandatory true;
      }
      leaf offset {
        type uint8;
        mandatory true;
      }
      leaf size {
        type uint8;
        default 1;
        description "Number of bytes to read.";
      }
    }
    output {
      leaf data {
        type binary;
        description "Raw register data.";
      }
    }
  }

  rpc cmis-write {
    description
      "Write CMIS register data to a pluggable module.";
    input {
      leaf interface-name {
        type leafref{
          path "/if:interfaces/if:interface/if:name";
        }
        mandatory true;
        description "Target interface name.";
      }
      leaf page {
        type uint8;
        mandatory true;
        description "The number of the CMIS page.";
      }
      leaf bank {
        type uint8;
        mandatory true;
        description "The banks corresponding to the CMIS page.";
      }
      leaf offset {
        type uint8;
        mandatory true;
        description "The memory address of the value.";
      }
      leaf data {
        type binary;
        mandatory true;
        description "Data to write.";
      }
    }
    output {
      leaf status {
        type enumeration {
          enum success;
          enum not-permitted {
            description "Write request was rejected due to access-type or policy";
          }
          enum io-error {
            description "I/O error during write";
          }
          enum invalid-params {
            description "Bad parameters";
          }
        }
        description "Result of the write operation.";
      }

      leaf post-write-value {
        type binary;
        description
          "Optional read-back of the target value after write.
           Present only if the implementation performed a read-back
           (e.g., for 'rw' registers). Not present for 'wo' registers
           or when no-readback was requested/possible.";
      }
    }
  }
}
<CODE ENDS>
]]></artwork></figure>
  </section>

<section anchor="sec:ietf-cmis-monitor" title="ietf-cmis-monitor">
  <t>
  The "ietf-cmis-monitor" module provides monitoring capabilities for CMIS-based DCO transceivers.
  </t>

  <t>
  The tree diagram of "ietf-cmis-monitor" is shown below.
  </t>

<figure><artwork><![CDATA[
module: ietf-cmis-monitor
  +--rw monitors
     +--rw monitor-rule* [id]
        +--rw id                string
        +--rw interface-name    -> /if:interfaces/interface/name
        +--rw monitor-target
        |  +--rw page      uint8
        |  +--rw bank      uint8
        |  +--rw offset    uint8
        |  +--rw size?     uint8
        +--rw condition
        |  +--rw condition-type    enumeration
        |  +--rw threshold?        decimal64
        |  +--rw delta-rate?       decimal64
        +--rw interval-ms?      uint32
        +--rw enabled?          boolean

  notifications:
    +---n cmis-monitor-event
       +--ro interface-name?   string
       +--ro rule-id?          string
       +--ro monitor-target
       |  +--ro page      uint8
       |  +--ro bank      uint8
       |  +--ro offset    uint8
       |  +--ro size?     uint8
       +--ro condition-type?   enumeration
       +--ro current-value?    binary
       +--ro threshold?        decimal64
       +--ro delta-rate?       decimal64
       +--ro timestamp?        yang:date-and-time
  ]]></artwork></figure>

    <t>
    The YANG module of "ietf-cmis-monitor" is defined as below.
    </t>
  
<figure><artwork><![CDATA[
<CODE BEGINS> file "ietf-cmis-control-rpc"
module ietf-cmis-monitor {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-cmis-monitor";
  prefix cmis-mon;

  import ietf-interfaces {
    prefix if;
  }
  import ietf-yang-types {
    prefix yang;
  }

  organization
    "IETF CCAMP Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ccamp/>
     WG List:  <mailto:ccamp@ietf.org>

    Editor:   Shunsuke Homma
      <mailto:shunsuke.homma.ietf@gmail.com>

    Editor:   Hitoshi Irino
      <mailto:hitoshi.irino.ge@west.ntt.co.jp>";

  description
    "This module provides monitoring capabilities for CMIS-based 
     optical modules. Users can define monitor rules for CMIS 
     registers identified by page/bank/offset/size. Notifications 
     are generated when threshold or delta-rate conditions are met.";

  revision "2025-10-11" {
    description "Initial revision.";
  }

  grouping monitor-target {
    description
      "Target CMIS register to monitor.";
    leaf page {
      type uint8;
      mandatory true;
      description "The number of the CMIS page.";
    }
    leaf bank {
      type uint8;
      mandatory true;
      description "The bank of the CMIS page.";
    }
    leaf offset {
      type uint8;
      mandatory true;
      description "The memory address of the value.";
    }
    leaf size {
      type uint8 {
        range "1 .. 128";
      }
      description "The memory size of the monitored value.";
    }
  }

  container monitors {
    description "Container for all monitor rules.";

    list monitor-rule {
      key "id";
      description "Monitoring rule.";

      leaf id {
        type string;
        description "Unique identifier of the rule.";
      }

      leaf interface-name {
        type leafref {
          path "/if:interfaces/if:interface/if:name";
        }
        mandatory true;
        description "Target interface of the monitored CMIS module.";
      }

      container monitor-target {
        uses monitor-target;
      }

      container condition {
        description "Condition to trigger notification.";
        leaf condition-type {
          type enumeration {
            enum threshold;
            enum delta-rate;
          }
          mandatory true;
          description "Type of condition.";
        }
        leaf threshold {
          type decimal64 {
            fraction-digits 2;
          }
          description "Threshold value for triggering notification (only used for threshold type).";
        }
        leaf delta-rate {
          type decimal64 {
            fraction-digits 2;
          }
          description "Maximum allowed change per interval (only used for delta-rate type).";
        }
      }

      leaf interval-ms {
        type uint32;
        default 1000;
        description "Monitoring interval in milliseconds.";
      }

      leaf enabled {
        type boolean;
        default true;
        description "Enable or disable this monitor rule.";
      }
    }
  }

  notification cmis-monitor-event {
    description "Notification raised when monitor rule condition is met.";

    leaf interface-name {
      type string;
      description "Interface name of the monitored module.";
    }

    leaf rule-id {
      type string;
      description "ID of the rule that triggered this notification.";
    }

    container monitor-target {
      uses monitor-target;
    }

    leaf condition-type {
      type enumeration {
        enum threshold;
        enum delta-rate;
      }
      description "The type of condition that was met.";
    }

    leaf current-value {
      type binary;
      description "Current value of the monitored register.";
    }

    leaf threshold {
      type decimal64 {
        fraction-digits 2;
      }
      description "Threshold value (present if threshold type).";
    }

    leaf delta-rate {
      type decimal64 {
        fraction-digits 2;
      }
      description "Delta-rate value (present if delta-rate type).";
    }

    leaf timestamp {
      type yang:date-and-time;
      description "Time when the notification was generated.";
    }
  }
}
<CODE ENDS>
]]></artwork></figure>
  </section>
  </section>


  <section anchor="sec:security-consideration" title="Security Consideration">
  <t>
  This YANG allows remote systems to control the equipped pluggable devices directly. 
  It might cause conflict of management of the pluggable devices among the platform node 
  and remote systems. For avoiding this problem, only the minimum necessary CMIS pages 
  (e.g., custom pages) should be exposed to external by using access control features 
  such as <xref target='RFC8341'/>.
  </t>

  <t>
  Regarding to use of the primitive mode, the control rights of the accessible pages 
  are delegated to a controller. Therefore, it is recommended that the mode is used 
  in case that the controller can be trusted, for example, the controlled device and 
  controller are managed by the same operator. Otherwise, specific pages which 
  may affect on data plane signaling should not exposed by using access control features 
  such as <xref target='RFC8341'/>
  </t>

  </section>

  
  
  <section anchor="iana-considerations"><name>IANA Considerations</name>

  <t>
  This document requests IANA to register the following YANG modules in
  the "YANG Module Names" registry [RFC6020] within the "YANG Parameters" registry group.
  </t>
  
  <figure><artwork><![CDATA[
   Name:  ietf-cmis-control
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-cmis-ctrl
   Prefix:  cmis-ctrl
   Reference:  RFC XXXX
  ]]></artwork></figure>

<!--
    <figure><artwork><![CDATA[
   Name:  ietf-cmis-control-primitive
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-cmis-ctrl-pm
   Prefix:  cmis-ctrl-pm
   Reference:  RFC YYYY
  ]]></artwork></figure>
-->
  <ul empty="true"><li>
    <t>RFC Editor Note: Please replace XXXX with the RFC number assigned to this document and remove this note.</t>
  </li></ul>

  </section> 


  </middle>

  <back>


    <references title='Normative References'>
      <reference anchor="OIF-CMIS" >
        <front>
          <title>Common Management Interface Specification (CMIS) Revision 5.2</title>
          <author>
            <organization>OIF</organization>
          </author>
          <date year="2022" month="April"/>
        </front>
      </reference>

      &RFC2119;
      &RFC7223;
      &RFC7950;
      &RFC8340;
    </references>

    <references title='Informative References'>
      &RFC6241;
      &RFC8040;
      &RFC8341;
      &I-D.draft-rokui-ccamp-actn-wdm-pluggable-modelling;
      <reference anchor="ECOC48923.2020.9333176">
        <front>
          <title>Sub-Hertz Spectral Analysis of Polarization of Light in a Transcontinental Submarine Cable</title>
          <author initials='M.' surname='Cantono'>
            <organization>Google</organization>
          </author>
          <author initials='V.' surname='Kamalov'>
            <organization>Google</organization>
          </author>
          <author initials='M.' surname='Salsi'>
            <organization>Google</organization>
          </author>
          <author initials='M.' surname='Newland'>
            <organization>Google</organization>
          </author>
          <author initials='Z.' surname='Zhan'>
            <organization>Caltech</organization>
          </author>
          <date year='2020' month='December'/>
        </front>
        <seriesInfo name='European Conference on Optical Communications' value='ECOC 2020'/>
        <seriesInfo name='DOI' value='10.1109/ECOC48923.2020.9333176'/>
      </reference>

      <reference anchor="JLT.2021.3139167">
        <front>
          <title>Digital Longitudinal Monitoring of Optical Fiber Communication Link</title>
          <author initials='T.' surname='Sasai'>
            <organization>NTT</organization>
          </author>
          <author initials='M.' surname='Nakamura'>
            <organization>NTT</organization>
          </author>
          <author initials='E.' surname='Yamazaki'>
            <organization>NTT</organization>
          </author>
          <author initials='S.' surname='Yamamoto'>
            <organization>NTT</organization>
          </author>
          <author initials='H.' surname='Nishizawa'>
            <organization>NTT</organization>
          </author>
          <author initials='Y.' surname='Kisaka'>
            <organization>NTT</organization>
          </author>
          <date year='2022' month='April'/>
        </front>
        <seriesInfo name='Journal of Lightwave Technology' value='volume:40'/>
        <seriesInfo name='DOI' value='10.1109/JLT.2021.313917'/>
      </reference>

      <reference anchor='JOCN.505729'>
        <front>
          <title>Fast WDM provisioning with minimal probing: the first field experiments for DC exchanges</title>
          <author initials='H.' surname='Nishizawa'>
            <organization>NTT</organization>
          </author>
          <author initials='T.' surname='Mano'>
            <organization>NTT</organization>
          </author>
          <author initials='T.' surname='Ferreira de Lima'>
            <organization>NEC Labs America</organization>
          </author>
          <author initials='Y.' surname='Huang'>
            <organization>NEC Labs America</organization>
          </author>
          <author initials='Z.' surname='Wang'>
            <organization>Duke Univ.</organization>
          </author>
          <author initials='W.' surname='Ishida'>
            <organization>NTT</organization>
          </author>
          <author initials='M.' surname='Kawashima'>
            <organization>NTT</organization>
          </author>
          <author initials='E.' surname='Ip'>
            <organization>NEC Labs America</organization>
          </author>
          <author initials='A.' surname="D'Amico">
            <organization>Politecnico di Torino</organization>
          </author>
          <author initials='S.' surname='Okamoto'>
            <organization>NTT</organization>
          </author>
          <author initials='T.' surname='Inoue'>
            <organization>NTT</organization>
          </author>
          <author initials='K.' surname='Anazawa'>
            <organization>NTT</organization>
          </author>
          <author initials='V.' surname='Curri'>
            <organization>Politecnico di Torino</organization>
          </author>
          <author initials='G.' surname='Zussman'>
            <organization>Columbia Univ.</organization>
          </author>
          <author initials='D.' surname='Kilper'>
            <organization>CONNECT Centre</organization>
          </author>
          <author initials='T.' surname='Chen'>
            <organization>Duke Univ.</organization>
          </author>
          <author initials='T.' surname='Wang'>
            <organization>NEC Labs America</organization>
          </author>
          <author initials='K.' surname='Asahi'>
            <organization>NEC Corp.</organization>
          </author>
          <author initials='K.' surname='Takasugi'>
            <organization>NTT</organization>
          </author>
          <date year='2024' month='February'/>
        </front>
        <seriesInfo name='JOCN' value='505729'/>
        <seriesInfo name='DOI' value='10.1364/JOCN.505729'/>
      </reference>
    </references>


  </back>

</rfc>

