1 module tdm-container-2-0 {
\r
3 namespace "urn:onf:yang:tdm-container-2-0";
\r
4 prefix tdm-container;
\r
6 import ietf-yang-types {
\r
9 import core-model-1-4 {
\r
14 "openBackhaul.com proposal to Open Networking Foundation (ONF)";
\r
16 "WG Web : https://github.com/openBackhaul/Overview
\r
17 WG List: TdmContainer@openBackhaul.com
\r
18 Editor : Thorsten Heinze
\r
19 Email : Thorsten.Heinze@openBackhaul.com";
\r
21 "This model is a technology specific amendment to the LayerProtocol class of the ONF Core IM for managing TDM interfaces (e.g. E1, STM-1).
\r
23 Copyright 2019 openBackhaul.com
\r
25 Licensed under the Apache License, Version 2.0 (the 'License');
\r
26 you may not use this file except in compliance with the License.
\r
27 You may obtain a copy of the License at
\r
28 http://www.apache.org/licenses/LICENSE-2.0
\r
29 Unless required by applicable law or agreed to in writing, software
\r
30 distributed under the License is distributed on an 'AS IS' BASIS,
\r
31 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
32 See the License for the specific language governing permissions and
\r
33 limitations under the License.";
\r
35 revision 2020-01-23 {
\r
37 "Model for the Transport SDN Pilot at Telefonica Germany.
\r
38 Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
\r
40 "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
\r
41 https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
\r
43 revision 2019-11-23 {
\r
45 "Model for the Transport SDN Pilot at Telefonica Germany.
\r
46 Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
\r
48 "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
\r
49 https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
\r
51 revision 2019-07-05 {
\r
53 "Model for the Transport SDN Pilot at Telefonica Germany.
\r
54 Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
\r
56 "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
\r
57 https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
\r
60 identity LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER {
\r
61 base core-model:LAYER_PROTOCOL_NAME_TYPE;
\r
66 augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
\r
67 when "derived-from-or-self(./core-model:layer-protocol-name, 'tdm-container:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER')";
\r
68 uses tdm-container-lp-spec;
\r
73 /****************************************
\r
74 * package notifications
\r
75 **************************************/
\r
77 notification object-creation-notification {
\r
78 uses object-creation-notification;
\r
83 grouping object-creation-notification {
\r
89 "Counts object creation notifications.";
\r
92 type yang:date-and-time;
\r
93 default "2010-11-20T14:00:00+01:00";
\r
98 leaf object-id-ref {
\r
100 path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
\r
101 require-instance false;
\r
109 default "Type of created object not specified.";
\r
118 notification object-deletion-notification {
\r
119 uses object-deletion-notification;
\r
124 grouping object-deletion-notification {
\r
130 "Counts object deletion notifications.";
\r
133 type yang:date-and-time;
\r
134 default "2010-11-20T14:00:00+01:00";
\r
139 leaf object-id-ref {
\r
141 path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
\r
142 require-instance false;
\r
152 notification attribute-value-changed-notification {
\r
153 uses attribute-value-changed-notification;
\r
158 grouping attribute-value-changed-notification {
\r
164 "Counts attribute value changed notifications.";
\r
167 type yang:date-and-time;
\r
168 default "2010-11-20T14:00:00+01:00";
\r
173 leaf object-id-ref {
\r
175 path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
\r
176 require-instance false;
\r
182 leaf attribute-name {
\r
184 default "Attribute name not specified.";
\r
187 "Name of the attribute that has been changed.";
\r
191 default "New value not specified.";
\r
194 "Attribute value converted to a string (xml, json, ...)";
\r
200 notification problem-notification {
\r
201 uses problem-notification;
\r
206 grouping problem-notification {
\r
212 "Counts problem notifications";
\r
215 type yang:date-and-time;
\r
216 default "2010-11-20T14:00:00+01:00";
\r
221 leaf object-id-ref {
\r
223 path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
\r
224 require-instance false;
\r
232 default "Problem name not specified.";
\r
235 "Name of the problem according to supportedAlarmList";
\r
238 type severity-type;
\r
239 default "SEVERITY_TYPE_WARNING";
\r
242 "Severity of the problem according to problemKindSeverity";
\r
248 /****************************************
\r
249 * grouping statements for object classes
\r
250 **************************************/
\r
251 /****************************************
\r
252 * package super-classes
\r
253 **************************************/
\r
255 grouping current-problem {
\r
256 leaf sequence-number {
\r
260 "Unique sequence number of the current problem object.";
\r
263 type yang:date-and-time;
\r
264 default "2010-11-20T14:00:00+01:00";
\r
267 "Time when the alarm was raised.";
\r
269 leaf problem-severity {
\r
270 type severity-type;
\r
271 default "SEVERITY_TYPE_NOT_YET_DEFINED";
\r
274 "Severity of the alarm.";
\r
280 grouping current-performance {
\r
282 type yang:date-and-time;
\r
283 default "2010-11-20T14:00:00+01:00";
\r
286 "The timestamp associated with when the current data was collected.";
\r
288 leaf suspect-interval-flag {
\r
293 "This attribute is used to indicate that the performance data for the current period may not be reliable. Some reasons for this to occur are:
\r
294 – Suspect data were detected by the actual resource doing data collection.
\r
295 – Transition of the administrativeState attribute to/from the 'lock' state.
\r
296 – Transition of the operationalState to/from the 'disabled' state.
\r
297 – Scheduler setting that inhibits the collection function.
\r
298 – The performance counters were reset during the interval.
\r
299 – The currentData (or subclass) object instance was created during the monitoring period.";
\r
301 leaf elapsed-time {
\r
307 "Number of seconds that elapsed since the last reset of the counter.";
\r
311 default "Scanner ID not defined.";
\r
316 leaf granularity-period {
\r
317 type granularity-period-type;
\r
320 "Time period between reset of the underlying counter.";
\r
326 grouping historical-performance {
\r
327 leaf suspect-interval-flag {
\r
332 "This attribute indicates that the data collected during the interval is suspect.";
\r
334 leaf history-data-id {
\r
336 default "History Data ID not defined.";
\r
341 leaf granularity-period {
\r
342 type granularity-period-type;
\r
345 "Time period between reset of the underlying counter.";
\r
347 leaf period-end-time {
\r
348 type yang:date-and-time;
\r
351 "Time when the counter values have been recorded and the counter reset.";
\r
357 grouping tdm-container-lp-spec {
\r
358 container tdm-container-pac {
\r
359 uses tdm-container-pac;
\r
364 "The TdmContainerLpSpec and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM traffic.";
\r
367 grouping tdm-container-pac {
\r
368 container tdm-container-capability {
\r
370 uses tdm-container-capability;
\r
374 container tdm-container-configuration {
\r
375 uses tdm-container-configuration;
\r
379 container tdm-container-status {
\r
381 uses tdm-container-status;
\r
385 container tdm-container-current-problems {
\r
387 uses tdm-container-current-problems;
\r
391 container tdm-container-current-performance {
\r
393 uses tdm-container-current-performance;
\r
397 container tdm-container-historical-performances {
\r
399 uses tdm-container-historical-performances;
\r
407 grouping tdm-container-capability {
\r
408 list supported-tdm-container-kind-list {
\r
409 key "tdm-container-name";
\r
412 uses tdm-container-kind;
\r
414 "Lists the TDM containers that are supported.";
\r
416 leaf admin-shut-down-is-avail {
\r
421 "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
\r
423 leaf-list supported-loop-back-kind-list {
\r
424 type loop-back-type;
\r
429 "List of supported kinds of looping back.";
\r
431 leaf maintenance-timer-range {
\r
433 default "Range of the maintenance timer not yet defined.";
\r
436 "Available time periods for maintenance configurations to be described. Concrete values shall be separated by commas (e.g. '10, 60, 360'). Ranges shall be expressed as two values separated by a minus (e.g. '10-360').";
\r
438 leaf-list supported-alarm-list {
\r
443 "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
\r
445 leaf performance-monitoring-is-avail {
\r
450 "1 = Collection and aggregation of performance values is available.";
\r
456 grouping tdm-container-configuration {
\r
457 leaf interface-name {
\r
459 default "Interface name not yet defined.";
\r
461 "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
\r
463 leaf interface-is-on {
\r
467 "Only relevant if (adminShutDownIsAvail==1). 1 = Activation of the interface. 0 = De-activation of the interface without deleting it (underlying OSI network layers are not affected).";
\r
469 leaf tdm-container-kind {
\r
471 path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/tdm-container:tdm-container-pac/tdm-container:tdm-container-capability/tdm-container:supported-tdm-container-kind-list/tdm-container:tdm-container-name";
\r
472 require-instance false;
\r
474 must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/tdm-container:tdm-container-pac/tdm-container:tdm-container-capability/tdm-container:supported-tdm-container-kind-list[tdm-container-name=current()])';
\r
476 "Type of TDM container.";
\r
478 leaf segment-number {
\r
482 "Serving TDM structure is identified by LogicalTerminationPoint::_serverLtpRefList (Multiplicity = 1; One segment per TDM container). Serving Segment is identified by segmentID attribute. Type of segment must match type of container.";
\r
484 leaf loop-back-kind-on {
\r
485 type loop-back-type;
\r
486 default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
\r
488 "Maintenance Feature. Configuration of a loop back of TDM time slots on this interface.";
\r
490 leaf maintenance-timer {
\r
495 "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
\r
497 list problem-kind-severity-list {
\r
498 key "problem-kind-name";
\r
500 uses problem-kind-severity-type;
\r
502 "Severity of the problem to be configured.";
\r
504 leaf performance-monitoring-is-on {
\r
508 "Enables measurement, collection, storage and access to performance data.";
\r
514 grouping tdm-container-status {
\r
515 leaf interface-status {
\r
516 type interface-status-type;
\r
517 default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
\r
520 "Operational status of the interface.";
\r
522 leaf loop-back-kind-up {
\r
523 type loop-back-type;
\r
524 default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
\r
527 "The currently active (not just configured) type of loop back.";
\r
529 leaf statistics-is-up {
\r
534 "1 = Statistics are currently collected and aggregated.";
\r
536 leaf performance-monitoring-is-up {
\r
541 "1 = Performance values are currently collected and aggregated.";
\r
547 grouping tdm-container-current-problems {
\r
548 list current-problem-list {
\r
549 key "sequence-number";
\r
551 uses container-current-problem-type;
\r
555 leaf number-of-current-problems {
\r
560 "Number of alarms, which are currently active on this interface.";
\r
562 leaf time-of-latest-change {
\r
563 type yang:date-and-time;
\r
564 default "2010-11-20T14:00:00+01:00";
\r
567 "Date and time when the list of alarms has been changed for the last time.";
\r
573 grouping tdm-container-current-performance {
\r
574 list current-performance-data-list {
\r
575 key "granularity-period";
\r
579 uses container-current-performance-type;
\r
581 "At least values of the counters, which are reset every 15 minutes, are to be provided. If available, the current values of the counters, which are reset every 24 hour, can be provided, too.";
\r
583 leaf number-of-current-performance-sets {
\r
588 "Number of sets of current performance values, which are provided in the list.";
\r
591 "Aggregated performance information of the TDM container at a particular moment.";
\r
594 grouping tdm-container-historical-performances {
\r
595 list historical-performance-data-list {
\r
596 key "granularity-period period-end-time";
\r
598 uses container-historical-performance-type;
\r
602 leaf number-of-historical-performance-sets {
\r
607 "Number of sets of historical performance values, which are provided in the list.";
\r
609 leaf time-of-latest-change {
\r
610 type yang:date-and-time;
\r
611 default "2010-11-20T14:00:00+01:00";
\r
614 "Date and time when the list of sets of historical performance values has been changed for the last time (e.g. new one added or existing one deleted).";
\r
617 "Aggregated performance information of the TDM container for a pre-defined measurement interval.";
\r
620 grouping tdm-container-kind {
\r
621 leaf tdm-container-name {
\r
625 "Names to be chosen from the following list: 'e1','t1','j1','e3','t3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
\r
627 leaf tdm-container-size {
\r
633 "Capacity required for transporting this type of container (in kbit/s). Values to be chosen from the following list: '2048','1544','34000','44736 ','155520','614400','1228800','2457600','3072000','4915200','6144000' or '9830400;";
\r
639 /****************************************
\r
640 * typedef statements
\r
641 **************************************/
\r
643 typedef loop-back-type {
\r
645 base LOOP_BACK_TYPE;
\r
651 typedef container-performance-type {
\r
657 /*********************************************
\r
658 * grouping statements for complex data types
\r
659 *******************************************/
\r
661 identity LOOP_BACK_TYPE {
\r
666 identity LOOP_BACK_TYPE_NONE {
\r
667 base LOOP_BACK_TYPE;
\r
672 identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
\r
673 base LOOP_BACK_TYPE;
\r
675 "Returning the TDM time slots of the local site on the outgoing interface back to the local site.";
\r
678 identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
\r
679 base LOOP_BACK_TYPE;
\r
681 "Returning the incoming TDM time slots back to the remote site.";
\r
684 identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
\r
685 base LOOP_BACK_TYPE;
\r
690 identity GRANULARITY_PERIOD_TYPE {
\r
695 identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
\r
696 base GRANULARITY_PERIOD_TYPE;
\r
701 identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
\r
702 base GRANULARITY_PERIOD_TYPE;
\r
707 identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
\r
708 base GRANULARITY_PERIOD_TYPE;
\r
713 identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
\r
714 base GRANULARITY_PERIOD_TYPE;
\r
719 identity SEVERITY_TYPE {
\r
724 identity SEVERITY_TYPE_NON_ALARMED {
\r
725 base SEVERITY_TYPE;
\r
730 identity SEVERITY_TYPE_WARNING {
\r
731 base SEVERITY_TYPE;
\r
736 identity SEVERITY_TYPE_MINOR {
\r
737 base SEVERITY_TYPE;
\r
742 identity SEVERITY_TYPE_MAJOR {
\r
743 base SEVERITY_TYPE;
\r
748 identity SEVERITY_TYPE_CRITICAL {
\r
749 base SEVERITY_TYPE;
\r
754 identity SEVERITY_TYPE_NOT_YET_DEFINED {
\r
755 base SEVERITY_TYPE;
\r
760 identity INTERFACE_STATUS_TYPE {
\r
765 identity INTERFACE_STATUS_TYPE_UP {
\r
766 base INTERFACE_STATUS_TYPE;
\r
768 "Ready to pass packets.";
\r
771 identity INTERFACE_STATUS_TYPE_DOWN {
\r
772 base INTERFACE_STATUS_TYPE;
\r
774 "The interface does not pass any packets.";
\r
777 identity INTERFACE_STATUS_TYPE_TESTING {
\r
778 base INTERFACE_STATUS_TYPE;
\r
780 "In some test mode. No operational packets can be passed.";
\r
783 identity INTERFACE_STATUS_TYPE_UNKNOWN {
\r
784 base INTERFACE_STATUS_TYPE;
\r
786 "Status cannot be determined for some reason.";
\r
789 identity INTERFACE_STATUS_TYPE_DORMANT {
\r
790 base INTERFACE_STATUS_TYPE;
\r
792 "Waiting for some external event.";
\r
795 identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
\r
796 base INTERFACE_STATUS_TYPE;
\r
798 "Some component (typically hardware) is missing.";
\r
801 identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
\r
802 base INTERFACE_STATUS_TYPE;
\r
804 "Down due to state of lower-layer interface(s).";
\r
807 identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
\r
808 base INTERFACE_STATUS_TYPE;
\r
810 "Down due to configuration.";
\r
813 identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
\r
814 base INTERFACE_STATUS_TYPE;
\r
819 /****************************************
\r
820 * package super-types
\r
821 **************************************/
\r
823 typedef granularity-period-type {
\r
825 base GRANULARITY_PERIOD_TYPE;
\r
828 "The enumeration with the options for granularity period of the performance data.";
\r
831 typedef severity-type {
\r
833 base SEVERITY_TYPE;
\r
836 "According to ITU-T M.3160";
\r
839 typedef interface-status-type {
\r
841 base INTERFACE_STATUS_TYPE;
\r
844 "Current Interface Status";
\r
847 grouping problem-kind-severity-type {
\r
848 leaf problem-kind-name {
\r
851 "Name of the alarm according to supportedAlarmList";
\r
853 leaf problem-kind-severity {
\r
854 type severity-type;
\r
855 default "SEVERITY_TYPE_NOT_YET_DEFINED";
\r
857 "Severity of this type of alarm.";
\r
863 grouping container-current-problem-type {
\r
864 leaf problem-name {
\r
866 default "Problem name not specified.";
\r
869 "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
\r
871 uses current-problem;
\r
876 grouping container-current-performance-type {
\r
877 leaf performance-data {
\r
878 type container-performance-type;
\r
883 uses current-performance;
\r
885 "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
\r
888 grouping container-historical-performance-type {
\r
889 leaf performance-data {
\r
890 type container-performance-type;
\r
895 uses historical-performance;
\r
897 "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
\r