4 namespace "urn:opendaylight:params:xml:ns:yang:data-provider";
7 import ietf-yang-types {
10 "RFC 6991: Common YANG Data Types.";
13 import org-openroadm-pm-types {
14 prefix org-openroadm-pm-types;
15 revision-date 2019-11-29;
17 "OpenROADM: YANG definitions of performance management types";
21 "highstreet technologies GmbH";
23 "Web: <https://highstreet-technologies.com>
24 ONAP: <https://wiki.onap.org/display/DW/ODLUX+DB+API>";
27 "This module defines the API for the data-provider component.
29 Copyright 2019 highstreet technologies GmbH Intellectual Property.
32 Licensed under the Apache License, Version 2.0 (the 'License');
33 you may not use this file except in compliance with the License.
34 You may obtain a copy of the License at
36 http://www.apache.org/licenses/LICENSE-2.0
38 Unless required by applicable law or agreed to in writing, software
39 distributed under the License is distributed on an 'AS IS' BASIS,
40 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
41 See the License for the specific language governing permissions and
42 limitations under the License.";
46 "Support for GUI Cut through and V2 PM model";
48 "https://jira.onap.org/browse/SDNC-1396";
55 "https://jira.onap.org/browse/SDNC-879";
64 "logs mountpoint connection state changes";
72 "logs for all notifications e.g. NetConf, ves and internal events";
76 "faultlog information";
78 enum historicalperformance15min {
82 enum historicalperformance24h {
86 enum mediator-server {
88 "list of mediator servers";
90 enum networkelement-connection {
92 "list of mountpoints for NetConf devices (joint required-network-element+mdsal
95 enum inventoryequipment {
97 "list of equipment inventory";
99 enum maintenancemode {
101 "list of maintenance setting";
105 "list of GUI Cut through entries";
109 "Data type and alias for elasticsearch or table name for SQL database.";
124 "Entities for odlux clients";
127 typedef FilterProperty {
130 "A string type describing a property (attribute, column, parameter)
134 typedef NotificationType {
136 enum ProblemNotificationXml {
138 "A fault (alarm, problem) notification type in XML format.";
140 enum AttributeValueChangedNotificationXml {
142 "An attribute value change notification type in XML format.";
146 "An enumeration describing the found notification type.";
149 typedef ConnectionLogStatus {
153 "Mountpoint created";
157 "Mountpoint removed";
161 "Mountpoint establishing connection";
165 "Mountpoint connection established";
167 enum UnableToConnect {
169 "Mountpoint connection not possible";
173 "Required and mountpoint removed";
177 "Status not available";
181 "An enumeration describing connection states.";
184 typedef NetworkElementDeviceType {
188 "implements microwave-model.yang or air-interface.yang";
192 "implements sth. like o-ran*.yang";
196 "implements RAN according to o-ran*.yang";
200 "implements RAN according to _3gpp-ran*.yang";
204 "implements tapi-*.yang or org-openroadm*.yang";
208 "implements vlan-interface.yang";
212 "Manage adapter to simulate devices";
216 "Device type known, but not support";
220 "Device type at this point of time unknown";
224 "implements RAN according to o-ran*.yang fro for fronthaule";
228 "implements Open ROADM";
232 "implements O1 RAN interface according to TR069";
236 "An enumeration as identification of the device.";
239 typedef severity-type {
243 "problem cleared indication";
263 "According to ITU-T M.3160";
266 typedef source-type {
286 "An enumeration for the information source of an event/notification.";
289 typedef granularity-period-type {
299 enum period-24-hours {
305 "The enumeration with the options for granularity period of the
306 performance data similar to g.874.1-model";
309 typedef entity-type {
321 "The enumeration with the type of requested information";
325 // --- grouping and builder-container
327 grouping connectionlog-entity {
336 "the node/mountpoint which connection state has changed";
339 type yang:date-and-time;
341 "timestamp when event happened, preferred in UTC time format.";
344 type ConnectionLogStatus;
346 "new state of the connection of the device";
349 "An object class describing an entry in the connection status log.";
352 container connectionlog {
355 uses connectionlog-entity;
358 grouping object-change-reference {
360 "Reference of of object (e.g. Interface pack) owned by a node";
364 "A network wide unique identifier of the NetConf server.";
369 "An arbitrary counter value.";
372 type yang:date-and-time;
374 "The time of the reported change, preferred in UTC time format. ";
379 "The identifier of the reporting object (resource).";
383 grouping source-reference {
395 "Fault event of an object";
399 "The alarm type identifier.";
404 "The reported severity of the fault (alarm).";
408 grouping attribute-change {
410 "update change of an attribute";
411 leaf attribute-name {
414 "The attribute name which was changed.";
419 "The new value of the attribute converted to a string format.";
425 "Unique database id of entity";
429 "The unique identifier of the entity.";
433 grouping faultcurrent-entity {
435 "Current fault status";
436 uses object-change-reference;
441 container faultcurrent {
444 uses faultcurrent-entity;
447 grouping faultlog-entity {
449 "Changed fault indication";
450 uses source-reference;
451 uses object-change-reference;
459 uses faultlog-entity;
462 grouping eventlog-entity {
464 "One change event of devices";
465 uses source-reference;
466 uses object-change-reference;
467 uses attribute-change;
474 uses eventlog-entity;
481 "Filter specific description";
484 type yang:date-and-time;
486 "begin of maintenance-mode";
489 type yang:date-and-time;
491 "end of maintenance-mode";
496 "object id to filter on, or empty for all";
501 "name of the problem to filter or empty for all";
504 "An object class describing a generic filter of an interval for
508 grouping maintenance-entity {
510 "Maintenance mode for a device. ";
515 "Key to get/set configuration entry in database. Normally Mountpoint
516 name is used as key id of node.";
522 "A network wide unique identifier of the NetConf server.";
527 "Configuration to activate or deactivate this entry";
532 container maintenance {
536 uses maintenance-entity;
539 grouping mediator-server-entity {
544 "A network unique identifier of the mediator server.";
549 "The ULR to reach the REST interface of the mediator server.";
554 "A human readable name of the mediator server.";
557 "An object class describing a mediator server entity.";
560 grouping pmdata-base {
562 "Performance data base information";
566 "A network unique identifier of reporting NetConf server.";
568 leaf uuid-interface {
571 "A universal unique identifier of the performance monitoring point.";
573 leaf layer-protocol-name {
576 "The name of the measured transport layer.";
578 leaf radio-signal-id {
581 "The value exists only of wireless transport devices.";
584 type yang:date-and-time;
586 "The time-stamp of the measurement, preferred in UTC format.";
588 leaf suspect-interval-flag {
591 "If false, the measurement is not completed and should not be used
592 for performance analysis. ";
594 leaf granularity-period {
595 type granularity-period-type;
597 "The expected measurement interval.";
602 "See ITU-T X.739 chapter 8.1.1.2.";
606 grouping pmdata-microwave {
608 "Consolidated performance information of all microwave model interface
616 "Number of errored seconds.";
624 "Number of severely errored seconds.";
632 "Number of consecutive severely errored seconds.";
634 leaf unavailability {
640 "Total time of unavailability in seconds.";
648 "Minimum transmit power. Signed integers are required.";
656 "Maximum transmit power. Signed integers are required.";
664 "Averaged transmit power. Signed integers are required.";
672 "Minimum receive level. Signed integers are required.";
680 "Maximum receive level. Signed integers are required.";
688 "Averaged receive level. Signed integers are required.";
696 "Sum of all seconds the transmitter operated in e.g. BPSK.";
698 leaf time4-states-s {
722 leaf time16-states-s {
754 leaf time128-states {
762 leaf time256-states {
770 leaf time512-states {
778 leaf time512-states-l {
786 leaf time1024-states {
794 leaf time1024-states-l {
802 leaf time2048-states {
810 leaf time2048-states-l {
818 leaf time4096-states {
826 leaf time4096-states-l {
834 leaf time8192-states {
842 leaf time8192-states-l {
856 "Minimum signal to (noise+interference) ratio.";
864 "Maximum signal to (noise+interference) ratio.";
872 "Averaged signal to (noise+interference) ratio.";
880 "Minimum cross polarization discrimination.";
888 "Maximum cross polarization discrimination.";
896 "Averaged cross polarization discrimination.";
904 "Lowest temperature (in degree Celsius) of the radio module inside the
913 "Highest temperature (in degree Celsius) of the radio module inside the
922 "Averaged temperature (in degree Celsius) of the radio module inside
925 leaf defect-blocks-sum {
931 "Total number of blocks that were defect after receiving and could not
932 be corrected by the FEC.";
940 "Total length of the measurement period.";
944 grouping pmdata-ethernet {
946 "Consolidated performance information for Ethernet.";
947 leaf tx-ethernet-bytes-max-s {
953 "Counts the number of Bytes of Ethernet traffic (before header
954 compression) transmitted within a second and keeps the highest value
955 within the measurement period. Field to be left blank for all types of
958 leaf tx-ethernet-bytes-max-m {
964 "Counts the number of Bytes of Ethernet traffic (before header
965 compression) transmitted within a minute and keeps the highest value
966 with in the measurement period. Field to be left blank for all types
969 leaf tx-ethernet-bytes-sum {
975 "Total number of Bytes of Ethernet traffic (before header compression)
976 transmitted (in direction out of the device) during the measurement
977 period. Field to be left blank for all types of TDM containers.";
981 identity performance-measurement-type-id {
983 "Base identity for perforamnce measurement types. A unique identification
984 of the performance measurment value, not including the resource.
985 Different resources can share performance measuement types. If the
986 resource reports the same performance measurment type, it is to be
987 considered to be the same performance measurment.
989 This identity is abstract and MUST NOT be used for performence
993 identity performance-measurement-unit-id {
995 "Base identity for perforamnce measurement units.
997 This identity is abstract and MUST NOT be used for performence
1001 typedef performance-measurement-type-id {
1003 base performance-measurement-type-id;
1006 "Identifies an performance-measurement type. The description of the
1007 performance measurement type id MUST indicate if the performance
1008 measurement type is abstract or not. An abstract performance measurement
1009 type is used as a base for other performance measurement type ids
1010 and will not be used as a value for an performance measurement or be
1011 present in the performance measurement inventory.";
1014 typedef performance-measurement-unit-id {
1016 base performance-measurement-unit-id;
1019 "Identifies an performance-measurement unit. The description of the
1020 performance measurement unit id MUST indicate if the performance
1021 measurement unit is abstract or not. An abstract performance measurement
1022 unit is used as a base for other performance measurement unit ids
1023 and will not be used as a value for an performance measurement or be
1024 present in the performance measurement inventory.";
1027 grouping pm-measurement-grp {
1029 type performance-measurement-type-id;
1031 "The local identifier of a pm-measurement object.";
1034 type org-openroadm-pm-types:pm-data-type;
1037 "The performance measurement value, measured in a certain interval.";
1040 type performance-measurement-unit-id;
1042 "A represention of the unit og the pm-value.";
1045 "An abstract object class representing a key-value pair for
1049 grouping pmdata-grp {
1052 uses pm-measurement-grp;
1054 "An abstract list of perfromance mesurement values.";
1057 "An abstract object class containing a list of perfromance mesurement
1061 container pmdata-entity {
1065 container performance-data {
1066 uses pmdata-microwave;
1067 uses pmdata-ethernet;
1070 "An object combining different performance monitoring data.";
1074 grouping pmdata15m-entity {
1076 container performance-data {
1077 uses pmdata-microwave;
1078 uses pmdata-ethernet;
1081 "An object combining different performance monitoring data.";
1084 "An object class describing a 15 minute performance monitoring entity.";
1087 grouping pmdata24h-entity {
1089 container performance-data {
1090 uses pmdata-microwave;
1091 uses pmdata-ethernet;
1094 "An object combining different performance monitoring data.";
1097 "An object class describing a 24 hour performance monitoring entity.";
1100 grouping inventory-entity {
1102 "One equipment entity in a list of a network element that could be rack,
1103 card, backplane, module";
1108 "Unique database id, node-id/uuid";
1113 "Containment level, starting with 0..";
1118 "Unique inventory id of holder";
1123 "Unique node id of network element";
1128 "Unique inventory id of this node for this equipment, provided by
1131 leaf-list contained-holder {
1134 "List of uuid of contained equipment";
1136 leaf manufacturer-name {
1139 "manufactured-thing/manufacturer-properties/manufacturer-name";
1141 leaf manufacturer-identifier {
1144 "manufactured-thing/manufacturer-properties/manufacturer-identifier";
1149 "manufactured-thing/equipment-instance/serial";
1154 "manufactured-thing/equipment-instance/manufacture-date: Date
1155 information provided by manufacturer. No specific format. ()";
1160 "manufactured-thing/equipment-type/version";
1165 "manufactured-thing/equipment-type/description";
1170 "manufactured-thing/equipment-type/part-type-identifier";
1172 leaf model-identifier {
1175 "manufactured-thing/equipment-type/model-identifier";
1180 "manufactured-thing/equipment-type/type-name";
1184 container inventory {
1188 uses inventory-entity;
1191 grouping node-details-g {
1192 leaf-list available-capabilities {
1195 "The list of available yang capabilities.";
1197 leaf-list unavailable-capabilities {
1200 "The list of unavailable yang capabilities.";
1203 "An object class description the available and unavailable yang
1207 grouping network-element-connection-entity {
1211 "database id/key. here is equal to node-id";
1216 "mountpoint name of device in controller";
1221 "NetConf server host name or IP address of device";
1226 "NetConf port of device";
1231 "NetConf user name";
1236 "NetConf password. should be removed asap";
1238 leaf core-model-capability {
1241 "revision of core-model capability";
1244 type NetworkElementDeviceType;
1246 "categorized type of device based on implemented yang specs";
1251 "entry exists in db index required-networkelement";
1253 container node-details {
1254 uses node-details-g;
1256 "holder of available and unavailable capabilities";
1259 type ConnectionLogStatus;
1261 "current connection status. default Disconnected";
1264 "An object class defining the NetConf connection towards a
1268 container network-element-connection {
1271 uses network-element-connection-entity;
1274 grouping status-entity {
1279 "The number of current faults (active alarms) with severity
1285 "The number of current faults (active alarms) with severity
1291 "The number of current faults (active alarms) with severity
1297 "The number of current faults (active alarms) with severity
1301 "An object containing the number of current faults per its severity.";
1304 "An object class defining an status entity for current faults
1305 (also called active alarms).";
1314 grouping entity-input {
1320 "The property (parameter, column, field) identifier.";
1325 "The filter information for the corresponding property.";
1328 "List with filter criteria. Not listed means all.";
1335 "The property (parameter, column, field) identifier.";
1340 "The definition of the sort order for the corresponding property.";
1343 "List with sort order. Not listed means default";
1345 container pagination {
1352 "Number of entries to be delivered";
1360 "Number to be used to calculate starting entry to deliver";
1363 "An object defining the pagination details.";
1366 "An object class defining a request input entity.";
1369 grouping pagination-output-g {
1376 "Number of entries to be delivered";
1384 "Number to be used to calculate starting entry to deliver";
1392 "Number to be used to calculate starting entry to deliver";
1395 "An object class defining the filter information for pagination.";
1398 container pagination-output {
1401 uses pagination-output-g;
1404 grouping guicutthrough-entity {
1409 "Unique database id, node-id/uuid";
1419 "The URI of the system Web UI.";
1422 "An object class defining the information for invoking GUI cut through to the device.";
1425 container guicutthrough {
1428 uses guicutthrough-entity;
1433 rpc read-faultcurrent-list {
1435 "Get list of current fault (active alarm) entries according to filter";
1440 container pagination {
1441 uses pagination-output-g;
1443 "The pagination details used by the provider to filter the data.";
1446 uses faultcurrent-entity;
1448 "The output data as list of current fault (or active alarm)
1454 rpc read-faultlog-list {
1456 "Get list of faultlog entries according to filter";
1461 container pagination {
1462 uses pagination-output-g;
1464 "The pagination details used by the provider to filter the data.";
1467 uses faultlog-entity;
1469 "The output data as list of fault entities.";
1474 rpc read-eventlog-list {
1476 "Get list of event log entities according to filter";
1481 container pagination {
1482 uses pagination-output-g;
1484 "The pagination details used by the provider to filter the data.";
1487 uses eventlog-entity;
1489 "The output data as list of event log entities.";
1494 rpc read-connectionlog-list {
1496 "Get list of event log entities according to filter";
1501 container pagination {
1502 uses pagination-output-g;
1504 "The pagination details used by the provider to filter the data.";
1507 uses connectionlog-entity;
1509 "The output data as list of connection log entities.";
1514 rpc read-maintenance-list {
1516 "Get list of maintenance entries according to filter";
1521 container pagination {
1522 uses pagination-output-g;
1524 "The pagination details used by the provider to filter the data.";
1527 uses maintenance-entity;
1529 "The output data as list of maintenance entities.";
1534 rpc create-maintenance {
1536 "insert new entry of maintenance";
1538 uses maintenance-entity;
1541 uses maintenance-entity;
1545 rpc update-maintenance {
1547 "update existing entity of maintenance";
1549 uses maintenance-entity;
1552 uses maintenance-entity;
1556 rpc delete-maintenance {
1558 "delete entity of maintenance";
1560 uses maintenance-entity;
1564 rpc read-mediator-server-list {
1566 "Get list of mediator-servers according to filter";
1571 container pagination {
1572 uses pagination-output-g;
1574 "The pagination details used by the provider to filter the data.";
1577 uses mediator-server-entity;
1579 "The list of found mediator server entities.";
1584 rpc create-mediator-server {
1586 "create new entry of entity mediator-server";
1588 uses mediator-server-entity;
1591 uses mediator-server-entity;
1595 rpc update-mediator-server {
1597 "update entry of entity mediator-server";
1599 uses mediator-server-entity;
1602 uses mediator-server-entity;
1606 rpc delete-mediator-server {
1608 "delete entry of entity mediator-server";
1610 uses mediator-server-entity;
1614 rpc read-network-element-connection-list {
1616 "Get list of networkelement-connections according to filter";
1621 container pagination {
1622 uses pagination-output-g;
1624 "The pagination details used by the provider to filter the data.";
1627 uses network-element-connection-entity;
1629 "The output data as list of found network-element (or mountpoint,
1630 or network functions) connection entities.";
1635 rpc create-network-element-connection {
1637 "create entry in networkelement-connection";
1639 uses network-element-connection-entity;
1642 uses network-element-connection-entity;
1646 rpc update-network-element-connection {
1648 "Put an element to ne-entity";
1650 uses network-element-connection-entity;
1653 uses network-element-connection-entity;
1657 rpc delete-network-element-connection {
1659 "!ONLY FOR TESTING! Put an element to ne-entity";
1661 uses network-element-connection-entity;
1665 rpc read-pmdata-15m-ltp-list {
1667 "Get list of ltps for one mountpoint with historical pmdata";
1672 container pagination {
1673 uses pagination-output-g;
1675 "The pagination details used by the provider to filter the data.";
1680 "The list of found mountpoint names.";
1685 rpc read-pmdata-24h-ltp-list {
1687 "Get list of ltps for one mountpoint with historical pmdata";
1692 container pagination {
1693 uses pagination-output-g;
1695 "The pagination details used by the provider to filter the data.";
1700 "The list of found logical-termination-point identifiers.";
1705 rpc read-pmdata-15m-device-list {
1707 "Get list of mountpoints with historical pmdata";
1712 container pagination {
1713 uses pagination-output-g;
1715 "The pagination details used by the provider to filter the data.";
1720 "The list of found mountpoint names.";
1725 rpc read-pmdata-24h-device-list {
1727 "Get list of mountpoints with historical pmdata";
1732 container pagination {
1733 uses pagination-output-g;
1735 "The pagination details used by the provider to filter the data.";
1740 "The list of found mountpoint names.";
1745 rpc read-pmdata-15m-list {
1747 "Get list of entities according to filter";
1752 container pagination {
1753 uses pagination-output-g;
1755 "The pagination details used by the provider to filter the data.";
1758 uses pmdata15m-entity;
1760 "The output data as list of 15 minutes performance monitoring
1766 rpc read-pmdata-24h-list {
1768 "Get list of historical pmdata according to filter";
1773 container pagination {
1774 uses pagination-output-g;
1776 "The pagination details used by the provider to filter the data.";
1779 uses pmdata24h-entity;
1781 "The output data as list of 24 hours performance monitoring
1787 rpc read-inventory-list {
1789 "Get list of inventory according to filter";
1794 container pagination {
1795 uses pagination-output-g;
1797 "The pagination details used by the provider to filter the data.";
1800 uses inventory-entity;
1802 "The output data as list of inventory entities.";
1809 "Read status information of controller";
1814 "The output data as list of status entities.";
1819 rpc read-gui-cut-through-entry {
1821 "Get GUI cut through entry according to filter";
1826 container pagination {
1827 uses pagination-output-g;
1829 "The pagination details used by the provider to filter the data.";
1832 uses guicutthrough-entity;
1834 "The output data as list of found GUI Cut through entities";