ietf-sap-ntw

This YANG module defines a model for representing, managing, and controlling the Service Attachment Points (SAPs) in the network...

  • Version: 2023-06-20

    ietf-sap-ntw@2023-06-20


    
      module ietf-sap-ntw {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-sap-ntw";
    
        prefix sap;
    
        import ietf-network-topology {
          prefix nt;
          reference
            "RFC 8345: A YANG Data Model for Network
            	  Topologies, Section 6.2";
    
    
        }
        import ietf-network {
          prefix nw;
          reference
            "RFC 8345: A YANG Data Model for Network
            	  Topologies, Section 6.1";
    
    
        }
        import ietf-vpn-common {
          prefix vpn-common;
          reference
            "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
            	  VPNs";
    
    
        }
        import ietf-yang-types {
          prefix yang;
          reference
            "RFC 6991: Common YANG Data Types, Section 3";
    
    
        }
    
        organization
          "IETF OPSA (Operations and Management Area) Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
         WG List:  <mailto:opsawg@ietf.org>
    
         Editor:   Mohamed Boucadair
                   <mailto:mohamed.boucadair@orange.com>
    
         Author:   Oscar Gonzalez de Dios
                   <mailto:oscar.gonzalezdedios@telefonica.com>
    
         Author:   Samier Barguil
                   <mailto:samier.barguil_giraldo@nokia.com>
    
         Author:   Qin Wu
                   <mailto:bill.wu@huawei.com>
    
         Author:   Victor Lopez
                   <mailto:victor.lopez@nokia.com>";
    
        description
          "This YANG module defines a model for representing, managing,
         and controlling the Service Attachment Points (SAPs) in the
         network topology.
    
         Copyright (c) 2023 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 9408; see the
         RFC itself for full legal notices.";
    
        revision "2023-06-20" {
          description "Initial version.";
          reference
            "RFC 9408: A YANG Network Data Model for Service Attachment
            	  Points (SAPs)";
    
        }
    
    
        identity virtual-network {
          base vpn-common:service-type;
          description
            "Virtual network.  Refers to a logical network instance
           that is built over a physical network.";
          reference
            "RFC 8453: Framework for Abstraction and Control of TE
            	  Networks (ACTN)";
    
        }
    
        identity enhanced-vpn {
          base vpn-common:service-type;
          description
            "Enhanced VPN (VPN+).  VPN+ is an approach that is
           based on existing VPN and Traffic Engineering (TE)
           technologies but adds characteristics that specific
           services require over and above conventional VPNs.";
          reference
            "draft-ietf-teas-enhanced-vpn:
              A Framework for Enhanced Virtual Private Network
              (VPN+)";
    
        }
    
        identity network-slice {
          base vpn-common:service-type;
          description
            "IETF Network Slice.  An IETF Network Slice
           is a logical network topology connecting a number of
           endpoints using a set of shared or dedicated network
           resources that are used to satisfy specific service
           objectives.";
          reference
            "draft-ietf-teas-ietf-network-slices:
              A Framework for IETF Network Slices";
    
        }
    
        identity sdwan {
          base vpn-common:service-type;
          description
            "PE-based Software-Defined Wide-Area Network (SD-WAN).";
          reference
            "draft-ietf-bess-bgp-sdwan-usage:
              BGP Usage for SD-WAN Overlay Networks";
    
        }
    
        identity basic-connectivity {
          base vpn-common:service-type;
          description
            "Basic IP connectivity.  This is, for example, a plain
           form of connectivity offered to enterprises over a
           dedicated or shared MPLS infrastructure.";
        }
    
        identity interface-role {
          description
            "Base identity for the network role of an interface.";
        }
    
        identity uni {
          base interface-role;
          description
            "User-to-Network Interface (UNI).";
        }
    
        identity nni {
          base interface-role;
          description
            "Network-to-Network Interface (NNI).";
        }
    
        identity interface-type {
          description
            "Base identity for the interface type.";
        }
    
        identity phy {
          base interface-type;
          description "Physical port.";
        }
    
        identity loopback {
          base interface-type;
          description "Loopback interface.";
        }
    
        identity lag {
          base interface-type;
          description
            "Link Aggregation Group (LAG) interface.";
        }
    
        identity irb {
          base interface-type;
          description
            "Integrated Routing and Bridging (IRB) interface.  An IRB
           interface typically connects an IP Virtual Routing and
           Forwarding (IP-VRF) entity to a bridge domain.";
        }
    
        identity local-bridge {
          base interface-type;
          description
            "A local bridge reference to accommodate (for example)
           implementations that require internal bridging.
           When such a type is used, a reference to a local
           bridge domain is used to identify the interface.";
        }
    
        identity logical {
          base interface-type;
          description
            "Refers to a logical sub-interface that is typically
           used to bind a service.  This type is used only
           if none of the other more specific types (i.e.,
           'loopback', 'lag', 'irb', or 'local-bridge') can be used.";
        }
    
        grouping sap-entry {
          description
            "Service Attachment Point (SAP) entry information.";
          leaf sap-id {
            type string;
            description
              "Indicates an identifier that uniquely identifies
             a SAP.";
          }
    
          leaf description {
            type string;
            description
              "A textual description of the SAP.";
          }
    
          leaf parent-termination-point {
            type nt:tp-id;
            description
              "Indicates the parent termination point to
             which the SAP is attached.  A termination
             point can be a physical port, an interface, etc.";
          }
    
          leaf attachment-interface {
            type string;
            description
              "Indicates the interface to which the SAP is bound.";
          }
    
          leaf interface-type {
            type identityref {
              base interface-type;
            }
            description
              "The type of the interface to which the SAP is bound.";
          }
    
          leaf encapsulation-type {
            type identityref {
              base vpn-common:encapsulation-type;
            }
            description
              "Encapsulation type of the interface to which the
             SAP is bound.";
          }
    
          leaf role {
            type identityref {
              base interface-role;
            }
            description
              "Indicates the role of a SAP.";
          }
    
          leaf allows-child-saps {
            type boolean;
            description
              "Indicates whether the attachment interface of this
             SAP is capable of hosting per-service sub-interfaces.";
          }
    
          leaf-list peer-sap-id {
            type string;
            description
              "Indicates an identifier of the peer's termination
             identifier (e.g., a Customer Edge (CE)).  This
             information can be used for correlation purposes,
             such as identifying the SAP that is attached to
             an endpoint that is provided in a service request.";
          }
        }  // grouping sap-entry
    
        grouping sap-list {
          description "SAP information.";
          list sap {
            key "sap-id";
            description
              "The SAPs are an abstraction of the points to which
             network services such as L3VPNs, L2VPNs, or network
             slices can be attached.";
            uses sap-entry;
    
            container sap-status {
              config false;
              description
                "Indicates the operational status of the SAP,
               independent of any service provisioned over it.";
              uses vpn-common:oper-status-timestamp;
            }  // container sap-status
    
            container service-status {
              description
                "Indicates the service status.";
              container admin-status {
                description
                  "Administrative service status.";
                leaf status {
                  type identityref {
                    base vpn-common:administrative-status;
                  }
                  description
                    "Administrative status of the service provisioned
                   at the SAP.";
                }
    
                leaf last-change {
                  type yang:date-and-time;
                  description
                    "Indicates the actual date and time of the service
                   status change.";
                }
              }  // container admin-status
    
              container oper-status {
                config false;
                description
                  "Operational status of the service provisioned
                 at the SAP.";
                uses vpn-common:oper-status-timestamp;
              }  // container oper-status
            }  // container service-status
          }  // list sap
        }  // grouping sap-list
    
        augment /nw:networks/nw:network/nw:network-types {
          description
            "Introduces a new network type for a SAP network.";
          container sap-network {
            presence
              "Indicates the SAP network type.";
            description
              "The presence of the container node indicates the
             SAP network type.";
            leaf-list service-type {
              type identityref {
                base vpn-common:service-type;
              }
              description
                "Indicates the set of supported service types.";
            }
          }  // container sap-network
        }
    
        augment /nw:networks/nw:network/nw:node {
          when
            '../nw:network-types/sap:sap-network' {
            description
              "Augmentation parameters apply only for SAP
             networks.";
          }
          description
            "SAP parameters for the node level.";
          list service {
            key "service-type";
            description
              "A list of supported service types for the node.";
            leaf service-type {
              type identityref {
                base vpn-common:service-type;
              }
              description
                "Indicates a service type.";
            }
    
            uses sap-list;
          }  // list service
        }
      }  // module ietf-sap-ntw
    

© 2023 YumaWorks, Inc. All rights reserved.