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-sls-service-attributes { description "The value of the Subscriber L1VC SLS (Service Level Specification) Service Attribute"; reference "MEF63: Subscriber Layer 1 Service Attributes"; leaf start-time { type yang:date-and-time; description "A time that represent the date and time for the start of the SLS"; } leaf time-interval { type int32; units seconds; description "A time interval (e.g., 2,419,200 seconds which is 28 days) that is used in conjunction with time-start to specify a contiguous sequence of time intervals T for determining when performance objectives are met."; } leaf-list performance-metric { type identityref { base service-performance-metric; } description "List of service performance metric."; } } 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; mandatory true; description "A unique service identifier for subscriber L1VC."; } uses subscriber-l1vc-endpoint-attributes; uses subscriber-l1vc-sls-service-attributes; } //end of service list } //end of service container } //service top container }