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;
}
}