";
description
"This module describes L1 connectivity service based on MEF 63:
Subscriber Layer 1 Service Attribute Technical Specification.
Refer to MEF 63 for all terms and the original references
used in the module.
Copyright (c) 2022 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 XXXX; see
the RFC itself for full legal notices.";
revision "2022-10-14" {
description
"Initial revision.";
reference
"RFC XXXX: A Yang Data Model for L1 Connectivity Service Model
(L1CSM)";
// Note: The RFC Editor will replace XXXX/YYYY with the number
// assigned to the RFC once this draft becomes an RFC.
}
/*
* Groupings
*/
grouping protocol-coding-optical-interface {
description
"The 3-tuple where p:protocol type;
c:coding function; o:optical interface function.
Valid combinations are defined in Tables 4, 5, 6 and 7
of MEF 63.";
reference
"MEF63: Subscriber Layer 1 Service Attributes";
leaf protocol {
type identityref {
base l1-types:protocol;
}
mandatory true;
description
"The protocol being used at the UNI.";
}
leaf coding {
type identityref {
base l1-types:coding-func;
}
mandatory true;
description
"The coding function being used at the UNI.";
}
leaf optical-interface {
type identityref {
base l1-types:optical-interface-func;
}
mandatory true;
description
"The optical interface function being used at the UNI.";
}
}
grouping subscriber-l1vc-endpoint-attributes {
description
"Subscriber layer 1 connection endpoint attributes";
reference
"MEF63: Subscriber Layer 1 Service Attributes";
container endpoint-1 {
description
"One end of UNI id's - string and id";
leaf id {
type string;
mandatory true;
description
"Subscriber end point ID of one end";
}
leaf uni {
type leafref {
path "/l1-connectivity/access/unis/uni/id";
}
mandatory true;
description
"This is one end of subscriber L1VC end point ID value =
UNI-1";
}
}
container endpoint-2 {
description
"One end of UNI id's - string and id";
leaf id {
type string;
must '. != ../../endpoint-1/id' {
error-message
"The two end points must not be equal to each other. ";
}
mandatory true;
description
"Subscriber end point ID of the other end";
}
leaf uni {
type leafref {
path "/l1-connectivity/access/unis/uni/id";
}
mandatory true;
description
"This is one other end of subscriber L1VC end point
ID value = UNI-2";
}
}
}
/*
* Data nodes
*/
container l1-connectivity {
description
"Serves as a top-level container for a list of layer 1
connection services (l1cs)";
container access {
description
"UNI configurations for access networks";
container unis {
description
"The list of UNI's to be configured";
list uni {
key "id";
description
"UNI identifier";
leaf id {
type string;
description "The UNI id of UNI Service Attributes";
}
choice uni-access-type {
description
"The UNI access type can be specified either by the
protocol, coding function and optical interface
function, defined in MEF, or by the client-signal,
defined in ITU-T.";
case mef {
uses protocol-coding-optical-interface;
}
case itu {
leaf client-signal {
type identityref {
base l1-types:client-signal;
}
mandatory true;
description
"The client signal being used at the UNI";
}
}
}
}
}
}
container services {
description
"L1VC services";
list service {
key "service-id";
description
"A unique identifier of a subscriber L1VC service";
leaf service-id {
type string;
description
"A unique service identifier for subscriber L1VC.";
}
uses subscriber-l1vc-endpoint-attributes;
} //end of service list
} //end of service container
} //service top container
}
]]>