module ietf-ac-glue { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-ac-glue"; prefix ac-glue; import ietf-l3vpn-svc { prefix l3vpn-svc; reference "RFC 8299: YANG Data Model for L3VPN Service Delivery"; } import ietf-l2vpn-svc { prefix l2vpn-svc; reference "RFC 8466: A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery"; } import ietf-l3vpn-ntw { prefix l3nm; reference "RFC 9182: A YANG Network Data Model for Layer 3 VPNs"; } import ietf-l2vpn-ntw { prefix l2nm; reference "RFC 9291: A YANG Network Data Model for Layer 2 VPNs"; } import ietf-ac-svc { prefix ac-svc; reference "RFC 9834: YANG Data Models for Bearers and Attachment Circuits as a Service (ACaaS)"; } import ietf-ac-ntw { prefix ac-ntw; reference "RFC 9835: A Network YANG Data Model for Attachment Circuits"; } organization "IETF OPSAWG (Operations and Management Area Working Group)"; contact "WG Web: WG List: Editor: Mohamed Boucadair Author: Richard Roberts Author: Samier Barguil Author: Oscar Gonzalez de Dios "; description "This YANG module defines a YANG data model for augmenting the LxSM and the LxNM with AC references. 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 9836; see the RFC itself for full legal notices."; revision 2025-09-29 { description "Initial revision."; reference "RFC 9836: A YANG Data Model for Augmenting VPN Service and Network Models with Attachment Circuits"; } feature ac-glue { description "The VPN implementation supports binding a specific VPN network access or site access to an AC."; } grouping single-ac-svc-ref { description "A grouping with a single reference to a service AC."; leaf ac-svc-ref { type ac-svc:attachment-circuit-reference; description "A reference to the AC as exposed at the service that was provisioned using the ACaaS module."; } } grouping single-ac-svc-ntw-ref { description "A grouping with single AC references."; leaf ac-svc-ref { type ac-svc:attachment-circuit-reference; description "A reference to the AC as exposed at the service that was provisioned using the ACaaS module."; } container ac-ntw-ref { description "A reference to the AC that was provisioned using the AC network module."; uses ac-ntw:attachment-circuit-reference; } } grouping ac-svc-ref { description "A set of service-specific AC-related data."; leaf-list ac-svc-ref { type ac-svc:attachment-circuit-reference; description "A reference to the AC as exposed at the service that was provisioned using the ACaaS module."; } } grouping ac-svc-ntw-ref { description "A set of AC-related data."; leaf-list ac-svc-ref { type ac-svc:attachment-circuit-reference; description "A reference to the AC as exposed at the service that was provisioned using the ACaaS module."; } list ac-ntw-ref { key "ac-ref"; description "A reference to the AC that was provisioned using the AC network module."; uses ac-ntw:attachment-circuit-reference; } } augment "/l2vpn-svc:l2vpn-svc" + "/l2vpn-svc:sites/l2vpn-svc:site" + "/l2vpn-svc:site-network-accesses" { description "Augments VPN site network accesses with AC provisioning details. Concretely, it binds a site to a set of ACs with Layer 2 properties that were created using the ACaaS module."; uses ac-svc-ref; } augment "/l2vpn-svc:l2vpn-svc" + "/l2vpn-svc:sites/l2vpn-svc:site" + "/l2vpn-svc:site-network-accesses" + "/l2vpn-svc:site-network-access" { if-feature "ac-glue"; description "Augments VPN site network access with AC provisioning details. Concretely, it glues a 'site-network-access' to an AC with Layer 2 properties that was created using the ACaaS module. The ACaaS information takes precedence over any overlapping information that is also provided for a site network access."; uses single-ac-svc-ref; } augment "/l3vpn-svc:l3vpn-svc" + "/l3vpn-svc:sites/l3vpn-svc:site" + "/l3vpn-svc:site-network-accesses" { description "Augments VPN site network accesses with AC provisioning details. Concretely, it binds a site to a set of ACs with both Layer 2 and Layer 3 properties that were created using the ACaaS module."; uses ac-svc-ref; } augment "/l3vpn-svc:l3vpn-svc" + "/l3vpn-svc:sites/l3vpn-svc:site" + "/l3vpn-svc:site-network-accesses" + "/l3vpn-svc:site-network-access" { if-feature "ac-glue"; description "Augments VPN site network access with AC provisioning details. Concretely, it glues a 'site-network-access' to an AC with both Layer 2 and Layer 3 properties that was created using the ACaaS module. The ACaaS information takes precedence over any overlapping information that is also provided for a site network access."; uses single-ac-svc-ref; } augment "/l2nm:l2vpn-ntw/l2nm:vpn-services/l2nm:vpn-service" + "/l2nm:vpn-nodes/l2nm:vpn-node" + "/l2nm:vpn-network-accesses" { description "Augments VPN network accesses with both service and network AC provisioning details. Concretely, it binds a site to (1) a set of ACs with Layer 2 properties that were created using the ACaaS module and (2) a set of ACs with Layer 2 properties that were provisioned using the AC network model."; uses ac-svc-ntw-ref; } augment "/l2nm:l2vpn-ntw/l2nm:vpn-services/l2nm:vpn-service" + "/l2nm:vpn-nodes/l2nm:vpn-node" + "/l2nm:vpn-network-accesses" + "/l2nm:vpn-network-access" { if-feature "ac-glue"; description "Augments VPN network access with service and network references to an AC. Concretely, it glues a VPN network access to (1) an AC with Layer 2 properties that was created using the ACaaS module and (2) an AC with Layer 2 properties that was created using the AC network module. The AC service and network information takes precedence over any overlapping information that is also provided for a VPN network access."; uses single-ac-svc-ntw-ref; } augment "/l3nm:l3vpn-ntw/l3nm:vpn-services/l3nm:vpn-service" + "/l3nm:vpn-nodes/l3nm:vpn-node" + "/l3nm:vpn-network-accesses" { description "Augments VPN network accesses with both service and network AC provisioning details. Concretely, it binds a site to (1) a set of ACs with both Layer 2 and Layer 3 properties that were created using the ACaaS module and (2) a set of ACs with both Layer 2 and Layer 3 properties that were provisioned using the AC network model."; uses ac-svc-ntw-ref; } augment "/l3nm:l3vpn-ntw/l3nm:vpn-services/l3nm:vpn-service" + "/l3nm:vpn-nodes/l3nm:vpn-node" + "/l3nm:vpn-network-accesses" + "/l3nm:vpn-network-access" { if-feature "ac-glue"; description "Augments VPN network access with service and network references to an AC. Concretely, it glues a VPN network access to (1) an AC with both Layer 2 and Layer 3 properties that was created using the ACaaS module and (2) an AC with both Layer 2 and Layer 3 properties that was created using the AC network module. The AC service and network information takes precedence over any overlapping information that is also provided for a VPN network access."; uses single-ac-svc-ntw-ref; } }