<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-lambrechts-onsen-svc-yang-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">

  <front>
    <title abbrev="Extensible Service Model">An Extensible Architecture for Service Modeling</title>

    <seriesInfo name="Internet-Draft" value="draft-lambrechts-onsen-svc-yang-00"/>
   
    <author fullname="Kris Lambrechts" initials="K." surname="Lambrechts">
      <organization>NetEdge</organization>
      <address>
        <email>kris@netedge.plus</email>  
        <uri>https://www.netedge.plus</uri>
      </address>
    </author>

    <date year="2026"/>

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>service model</keyword>
    <keyword>YANG</keyword>
    <keyword>extensible</keyword>
    <keyword>modular</keyword>

    <abstract>
      <t>
        This document describes problems with the currently published IETF
        service modules and defines a modular service modeling structure that extracts
        technology-agnostic constructs into a base <tt>ietf-svc</tt> module,
        separates Ethernet-specific treatment into <tt>ietf-eth-svc</tt>, and
        layers VPN-oriented intent in <tt>ietf-vpn-svc</tt>, with bis versions of
        the L2SM and L3SM augmenting the shared foundation.
      </t>
    </abstract>
 
  </front>

  <middle>
    <section>
      <name>Introduction</name>
      <t>
        The Layer 2 VPN Service Model (L2SM) <xref target="RFC8466"/> and Layer 3 VPN
        Service Model (L3SM) <xref target="RFC8299"/> YANG 
        models provide a standardized approach to modeling L2VPN and L3VPN
        services. However, these models do not interact
        with each other, and are not designed to be extensible so that
        additional services can be added.
      </t>

      <t>
        This document describes a new, extensible architecture for services modules
        and defines a YANG module that can be used as the base for any
        customer service. The goals of this work are to reduce duplication
        between existing L2SM and L3SM work, enable new service types to reuse
        common abstractions, and let operators expose a consistent
        customer-facing interface while retaining flexibility for
        technology-specific extensions.
      </t>

    </section>
    <section>
      <name>Limitations of the Current Service Models</name>

        <t>
          The following sections describe problems with the approach taken
          by the current L2SM and L3SM modules.
        </t>

      <section>
        <name>High Levels of Duplication between the Service Models</name>
        <t>
          The L2SM and L3SM individually cover all the inputs to deliver either L2VPN
          or L3VPN services, including an abstracted view of the customer's
          site locations. This means that an operator that offers both types
          of services must manage two separate models with a large amount of 
          duplicated information.
        </t>
        
        <t>
          When additional service models are defined for new service types,
          the current approach requires further duplication, making the 
          problem worse.
        </t>
      </section>
      <section>
        <name>Limited Interoperability between Service Models</name>
        <t>
          It is impossible to express certain relationships between the 
          L2VPN and L3VPN services being ordered, such as diversity or 
          bandwidth constraints. This is especially important in deployment
          scenarios where common infrastructure hardware is used for 
          providing both L2VPN and L3VPN services. 
        </t>
      </section>

      <section>
        <name>Missing Support for Network Technology Layering</name>
        <t>
          The current L2SM and L3SM models do not have a way to express the
          relationships between the different technology layers that are
          used to provision the overall service. For example, an
          operator may want to specify that an L3VPN service should be delivered
          over a specific underlying L2VPN service, or that an SD-WAN service should be
          delivered over a specific Internet access service.  The lack of 
          support for network layering makes it difficult to model
          and manage complex service offerings that involve multiple layers of
          abstraction and different technologies.
        </t>
       </section>

       <section>
        <name>Complexity in Creating a Single View of Services</name>
        <t>
          Currently, the L2SM and L3SM do not contain operational state. If these
          modules are extended with state nodes, e.g., so it is possible to retrieve
          information about the current health of a customer's services, the 
          separation of L2SM, L3SM, and other service models makes correlating 
          the service impact of underlying failures affecting more than one service
          type more difficult.
        </t>
      </section>
    </section>
      
    <section>
      <name>Proposed Solution</name>
      <t>
        This document revisits the existing L2SM and L3SM models, introducing a
        new structure with a common base model. This removes the duplication
        between service models, and enables much simpler interworking between
        different service types. It also forms an extensible basis for the
        definition of new service models in the future.
      </t>

      <t>
        The core of the module structure is defined in <tt>ietf-svc</tt>. This
        provides a technology-agnostic service skeleton covering sites, 
        site-network-accesses, diversity constraints, and bearer references. 
        Additionally,  Ethernet-centric constructs such as bandwidth profiles 
        and QoS classification are moved into a dedicated <tt>ietf-eth-svc</tt> 
        module so that Ethernet-based services can share the same primitives without
        cluttering the core service skeleton.
      </t>
      <t>        
        The <tt>ietf-vpn-svc</tt> module builds on this core and defines VPN-oriented 
        attributes such as service type, topology, cloud, and extranet 
        reachability, carriers' carrier, and policy filters. 
      </t>

      <t>
        Finally, the technology specific parameters for L2VPN and L3VPN services 
        are augmented into the shared service framework. The L3VPN module retains the routing,
        multicast, address-allocation, NAT, and BFD constructs from
        <xref target="RFC8299"/>. The L2VPN module retains the Ethernet- and
        OAM-specific behaviors from <xref target="RFC8466"/> (e.g., bundling,
        CE-VLAN preservation, L2CP handling, CFM, and Y.1731) while leveraging
        the shared service skeleton, the Ethernet treatment constructs in
        <tt>ietf-eth-svc</tt>, and the VPN service identities from
        <tt>ietf-vpn-svc</tt>.
      </t>
      <t>
        The augment relationships across the modules are shown in
        <xref target="fig-svc-augments"/>.
      </t>
      <figure anchor="fig-svc-augments">
        <name>Service module augmentation relationships</name>
        <artwork type="ascii-art">
<![CDATA[
module: ietf-svc                      (Base service skeleton)
  +-- augment: ietf-eth-svc           (Ethernet attributes, e.g QoS)
    +-- augment: ietf-vpn-svc         (VPN service common attributes)
      +-- augment: ietf-l2vpn-svc     (L2VPN-specific attributes)
      +-- augment: ietf-l3vpn-svc     (L3VPN-specific attributes)
]]>
        </artwork>
      </figure>
      <t>
        By aligning the L2SM and L3SM models on a common foundation, this
        work reduces duplication, improves consistency of service exposure
        to customers and OSS/BSS systems, and simplifies the introduction of
        future service types that can reuse the same base abstractions.
        Examples of new services that could be modeled on top of the same base
        include (business) internet access, cloud interconnect, or even optical
        wavelength services.
      </t>
    </section>

    <section>
      <name>Relationships to Other Work</name>
      <t>
        The Layer 2 VPN Network Model (L2NM) <xref target="RFC9291"/> and
        Layer 3 VPN Network Model (L3NM) <xref target="RFC9182"/>  may benefit
        from being re-built on top of a similarly abstracted foundation,
        but they are outside the scope of this document.
      </t>
      <t>
        Adoption of the Common YANG Data Model for Layer 2 and Layer 3 VPNs
        <xref target="RFC9181"/> at the service model level may be beneficial
        and should be considered as part of this work.
      </t>
    </section>
    
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>
        The security posture of this document follows the guidance in the L3SM
        <xref target="RFC8299"/>. The NETCONF Access Control Model (NACM)
        <xref target="RFC8341"/> should be used to restrict protocol operations
        and data nodes to authorized principals.
      </t>
      <t>
        New augments added to the base service skeleton must describe any
        additional security-sensitive leaves and specify suitable NACM rules.
        When encryption or authentication material is conveyed (e.g., keys
        or credentials), operators must ensure secure transport and
        operational processes (rotation, revocation, audit) consistent with
        their policy.
      </t>
    </section>
    
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9181.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9182.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9291.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8299.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8466.xml"/>
        
      </references>
    </references>
 </back>
</rfc>
