aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager-onap
diff options
context:
space:
mode:
authorRavi Pendurty <ravi.pendurty@highstreet-technologies.com>2021-04-19 12:46:16 +0200
committerMichael DÜrre <michael.duerre@highstreet-technologies.com>2021-04-20 08:01:27 +0200
commit05fe114a5969727c32cd9f1051cd7b9fde0344d5 (patch)
tree4cb505cd98ddb5b9c6f188f9febe93b07cf743db /sdnr/wt/devicemanager-onap
parent6ae7e8a1bae83d407b22d8b066dd0bcca730e1bb (diff)
Reorganization of devicemanager directory structure
Organized into core, onap and o-ran-sc directories Issue-ID: CCSDK-3242 Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com> Change-Id: I3c23710f990a2d96ba01104c97315fc8c6b1921b Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com> Signed-off-by: Michael DÜrre <michael.duerre@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt/devicemanager-onap')
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml50
-rwxr-xr-xsdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml116
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/installer/src/assembly/assemble_mvnrepo_zip.xml47
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml72
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/model/src/main/yang/devicemanager-adapter-manager.yang36
-rwxr-xr-xsdnr/wt/devicemanager-onap/adapter-manager/pom.xml53
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/copyright17
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml116
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java43
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/DeviceManagerAdapterManagerImpl.java86
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/NtsNetworkElement.java77
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml38
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/version.properties24
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/network-topology-simulator.yang297
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang354
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang202
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElement.java81
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElementFactory.java72
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestDeviceManagerAdapterManagerImpl.java42
-rw-r--r--sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/resources/simplelogger.properties61
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/feature/pom.xml55
-rwxr-xr-xsdnr/wt/devicemanager-onap/onf12/installer/pom.xml116
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/installer/src/assembly/assemble_mvnrepo_zip.xml47
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/model/pom.xml72
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/model/src/main/yang/devicemanager-onf.yang37
-rwxr-xr-xsdnr/wt/devicemanager-onap/onf12/pom.xml53
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/copyright17
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/pom.xml122
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/NetworkElementCoreData.java35
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementCallback.java24
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementRepresentation.java40
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/OnfInterfacePac.java36
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java102
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ExtendedEquipment.java143
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ONFCoreNetworkElement12Equipment.java315
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ValueNameList.java84
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/WrapperEquipmentPacRev170402.java101
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/Helper.java53
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/LinkIdentifyingObject.java24
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/OnfMicrowaveModel.java56
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev170324.java574
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev180907.java573
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev181010.java591
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java131
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java131
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java131
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfConfiguration.java53
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfImpl.java90
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/ONFCoreNetworkElementFactory.java83
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Base.java438
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Basic.java249
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Microwave.java410
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElementBase.java102
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationActor.java26
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationWorker.java89
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/util/ONFLayerProtocolName.java64
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml38
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/version.properties24
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/bbf-tr-196-2-0-3-full@2018-04-08.yang17194
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/core-model@2017-03-20.yang1700
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/g.874.1-model@2017-03-20.yang646
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/ietf-ptp-dataset@2017-02-08.yang605
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2017-03-24.yang2262
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-09-07.yang2567
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-10-10.yang3581
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-core-model-conditional-packages@2017-04-02.yang350
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ethernet-conditional-packages@2017-04-02.yang88
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-otn-odu-conditional-packages@2017-10-20.yang361
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ptp-dataset@2017-05-08.yang125
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/TestSerializer.java53
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java81
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestONFCoreNetworkElement12Equipment.java101
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestHelper.java49
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java342
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java339
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java343
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java93
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/test/TestONFCoreNetworkElementFactory.java127
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Basic.java98
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Microwave.java113
-rw-r--r--sdnr/wt/devicemanager-onap/onf12/provider/src/test/resources/simplelogger.properties61
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/feature/pom.xml50
-rwxr-xr-xsdnr/wt/devicemanager-onap/onf14/installer/pom.xml116
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/installer/src/assembly/assemble_mvnrepo_zip.xml47
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/model/pom.xml72
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/model/src/main/yang/devicemanager-onf14.yang37
-rwxr-xr-xsdnr/wt/devicemanager-onap/onf14/pom.xml53
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/copyright17
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/pom.xml126
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java89
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java54
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java218
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java548
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java66
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java55
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java130
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java265
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java39
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java146
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java419
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java40
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java141
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java40
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java149
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java54
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java72
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java26
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java22
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java22
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java22
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java22
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java18
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml38
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/version.properties24
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/air-interface-2-0.yang1832
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/co-channel-profile-1-0.yang285
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/core-model-1-4.yang3133
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ethernet-container-2-0.yang1955
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/hybrid-mw-structure-2-0.yang945
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ip-interface-1-0.yang1198
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/l-3vpn-profile-1-0.yang499
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ltp-augment-1-0.yang102
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fc-1-0.yang569
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fd-1-0.yang585
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-interface-1-0.yang1479
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/pure-ethernet-structure-2-0.yang888
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/qos-profile-1-0.yang534
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/tdm-container-2-0.yang899
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fc-1-0.yang523
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fd-1-0.yang836
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-interface-1-0.yang1495
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wire-interface-2-0.yang1819
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wred-profile-1-0.yang279
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java55
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java198
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java197
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java123
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java71
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java127
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java198
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java80
-rw-r--r--sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/simplelogger.properties61
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml48
-rwxr-xr-xsdnr/wt/devicemanager-onap/openroadm/installer/pom.xml113
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/installer/src/assembly/assemble_mvnrepo_zip.xml47
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/model/pom.xml70
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/model/src/main/yang/devicemanager-openroadm.yang37
-rwxr-xr-xsdnr/wt/devicemanager-onap/openroadm/pom.xml60
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/copyright17
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml121
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java103
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java156
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java130
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java129
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java78
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java149
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java323
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java74
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java71
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java290
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java21
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java21
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java21
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java21
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java21
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java21
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml38
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/version.properties24
-rwxr-xr-xsdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/iana-hardware.yang180
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-alarms.yang1526
-rwxr-xr-xsdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-hardware.yang1141
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-interfaces.yang1073
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-alarm.yang181
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang81
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang99
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang102
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang94
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang69
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang350
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang113
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-types.yang270
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device-types.yang151
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device.yang2179
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang147
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-interfaces.yang181
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang343
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-physical-types.yang153
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-pm.yang350
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-port-types.yang420
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang843
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource-types.yang374
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource.yang358
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-swdl.yang203
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang63
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang161
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestChangeNotificationListener.java92
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestDeviceManagerOpenRoadmImpl.java54
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmAlarmNotification.java101
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmDeviceChangeNotification.java125
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmInventory.java144
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElement.java310
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElementFactory.java101
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmPMDataBuilder.java186
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenroadmNetworkElementBase.java62
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker1
-rw-r--r--sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/simplelogger.properties61
-rw-r--r--sdnr/wt/devicemanager-onap/pom.xml38
207 files changed, 77378 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml
new file mode 100644
index 000000000..c71db1c00
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>single-feature-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-adapter-manager-feature</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>feature</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-adapter-manager-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
new file mode 100755
index 000000000..47ac7fc0c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-adapter-manager-installer</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <properties>
+ <application.name>sdnr-wt-devicemanager-onap-adapter-manager</application.name>
+ <include.transitive.dependencies>false</include.transitive.dependencies>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-feature</artifactId>
+ <version>${project.version}</version>
+ <type>xml</type>
+ <classifier>features</classifier>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>maven-repo-zip</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <attach>true</attach>
+ <finalName>stage/${application.name}-${project.version}</finalName>
+ <descriptors>
+ <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
+ </descriptors>
+ <appendAssemblyId>true</appendAssemblyId>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-nested-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <transitive>true</transitive>
+ <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>true</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/installer/src/assembly/assemble_mvnrepo_zip.xml b/sdnr/wt/devicemanager-onap/adapter-manager/installer/src/assembly/assemble_mvnrepo_zip.xml
new file mode 100644
index 000000000..dfe5060bf
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -0,0 +1,47 @@
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<!-- Defines how we build the .zip file which is our distribution. -->
+
+<assembly
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <id>repo</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <!-- we want "system" and related files right at the root level
+ as this file is suppose to be unzip on top of a karaf
+ distro. -->
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>target/assembly/</directory>
+ <outputDirectory>.</outputDirectory>
+ <excludes>
+ </excludes>
+ </fileSet>
+ </fileSets>
+
+</assembly>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml
new file mode 100644
index 000000000..a02428baa
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-adapter-manager-model</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ </properties>
+
+ <dependencies>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/model/src/main/yang/devicemanager-adapter-manager.yang b/sdnr/wt/devicemanager-onap/adapter-manager/model/src/main/yang/devicemanager-adapter-manager.yang
new file mode 100644
index 000000000..5fa43c496
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/model/src/main/yang/devicemanager-adapter-manager.yang
@@ -0,0 +1,36 @@
+module devicemanager-adapter-manager {
+
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:devicemanager-adapter-manager";
+ prefix devicemanager-adapter-manager;
+
+ organization
+ "highstreet technologies GmbH";
+ contact
+ "Web: <https://highstreet-technologies.com>";
+
+ description
+ "DeviceManager adapter-manager Api Module
+
+ Copyright 2020 highstreet technologies GmbH Intellectual Property.
+ All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-08-19 {
+ description
+ "Initial revision";
+ reference
+ "https://jira.onap.org/browse/CCSDK-2573";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml
new file mode 100755
index 000000000..4df4ec91f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-adapter-manager-top</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <modules>
+ <module>model</module>
+ <module>provider</module>
+ <module>feature</module>
+ <module>installer</module>
+ </modules>
+
+ <properties>
+ <feature-name>sdnr-wt-devicemanager-onap-adapter-manager</feature-name>
+ </properties>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/copyright b/sdnr/wt/devicemanager-onap/adapter-manager/provider/copyright
new file mode 100644
index 000000000..754b6218f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/copyright
@@ -0,0 +1,17 @@
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
new file mode 100644
index 000000000..c600d3f53
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-adapter-manager-provider</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
+ <buildtime>${maven.build.timestamp} UTC</buildtime>
+ <databaseport>49400</databaseport>
+ </properties>
+
+ <dependencies>
+ <!-- begin for testing -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- end for testing -->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-adapter-manager-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-core-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-netconfnode-state-service-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>sal-netconf-connector</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-singleton-common-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java
new file mode 100644
index 000000000..0ed856fb1
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/AdapterManagerNetworkElementFactory.java
@@ -0,0 +1,43 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.impl;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.network.topology.simulator.rev191025.SimulatorStatus;
+import org.opendaylight.yang.gen.v1.urn.o.ran.sc.params.xml.ns.yang.nts.manager.rev201006.simulation.NetworkFunctions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AdapterManagerNetworkElementFactory implements NetworkElementFactory {
+
+ private static final Logger log = LoggerFactory.getLogger(AdapterManagerNetworkElementFactory.class);
+
+ @Override
+ public Optional<NetworkElement> create(NetconfAccessor acessor, DeviceManagerServiceProvider serviceProvider) {
+ if (acessor.getCapabilites().isSupportingNamespace(SimulatorStatus.QNAME) || acessor.getCapabilites().isSupportingNamespace(NetworkFunctions.QNAME)) {
+ log.info("Create device {} ", NtsNetworkElement.class.getName());
+ return Optional.of(new NtsNetworkElement(acessor, serviceProvider.getDataProvider()));
+ }
+ return Optional.empty();
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/DeviceManagerAdapterManagerImpl.java b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/DeviceManagerAdapterManagerImpl.java
new file mode 100644
index 000000000..3a7aa8f40
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/DeviceManagerAdapterManagerImpl.java
@@ -0,0 +1,86 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.impl;
+
+import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DeviceManagerAdapterManagerImpl implements AutoCloseable {
+
+ private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerAdapterManagerImpl.class);
+ private static final String APPLICATION_NAME = "DeviceManagerAdapterManager";
+
+ private NetconfNetworkElementService netconfNetworkElementService;
+
+ private HtDatabaseClient htDatabaseClient;
+ private Boolean devicemanagerInitializationOk = false;
+ private FactoryRegistration<AdapterManagerNetworkElementFactory> resAdapterManager;
+
+ // Blueprint begin
+ public DeviceManagerAdapterManagerImpl() {
+ LOG.info("Creating provider for {}", APPLICATION_NAME);
+ resAdapterManager = null;
+ }
+
+ public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) {
+ this.netconfNetworkElementService = netconfNetworkElementService;
+ }
+
+ public void init() throws Exception {
+
+ LOG.info("Session Initiated start {}", APPLICATION_NAME);
+
+ resAdapterManager = netconfNetworkElementService.registerBindingNetworkElementFactory(new AdapterManagerNetworkElementFactory());
+
+
+ netconfNetworkElementService.writeToEventLog(APPLICATION_NAME, "startup", "done");
+ this.devicemanagerInitializationOk = true;
+
+ LOG.info("Session Initiated end. Initialization done {}", devicemanagerInitializationOk);
+ }
+ // Blueprint end
+
+ @Override
+ public void close() throws Exception {
+ LOG.info("closing ...");
+ close(htDatabaseClient);
+ close(resAdapterManager);
+ LOG.info("closing done");
+ }
+
+ /**
+ * Used to close all Services, that should support AutoCloseable Pattern
+ *
+ * @param toClose
+ * @throws Exception
+ */
+ private void close(AutoCloseable... toCloseList) {
+ for (AutoCloseable element : toCloseList) {
+ if (element != null) {
+ try {
+ element.close();
+ } catch (Exception e) {
+ LOG.warn("Fail during close: ", e);
+ }
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/NtsNetworkElement.java b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/NtsNetworkElement.java
new file mode 100644
index 000000000..d73d82412
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/impl/NtsNetworkElement.java
@@ -0,0 +1,77 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.impl;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author herbert
+ *
+ */
+public class NtsNetworkElement implements NetworkElement {
+
+ private static final Logger LOG = LoggerFactory.getLogger(NtsNetworkElement.class);
+
+ private final NetconfAccessor netconfAccessor;
+
+ @SuppressWarnings("unused")
+ private final DataProvider databaseService;
+
+ NtsNetworkElement(NetconfAccessor netconfAccess, DataProvider databaseService) {
+ LOG.info("Create {}", NtsNetworkElement.class.getSimpleName());
+ this.netconfAccessor = netconfAccess;
+ this.databaseService = databaseService;
+ }
+
+ @Override
+ public void deregister() {}
+
+ @Override
+ public NodeId getNodeId() {
+ return netconfAccessor.getNodeId();
+ }
+
+ @Override
+ public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
+ return Optional.empty();
+ }
+
+ @Override
+ public void warmstart() {}
+
+ @Override
+ public void register() {}
+
+ @Override
+ public NetworkElementDeviceType getDeviceType() {
+ return NetworkElementDeviceType.NtsManager;
+ }
+
+ @Override
+ public Optional<NetconfAccessor> getAcessor() {
+ return Optional.of(this.netconfAccessor);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
new file mode 100644
index 000000000..a0b20b3d3
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true">
+
+ <reference id="netconfNetworkElementService"
+ availability="mandatory" activation="eager"
+ interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/>
+
+ <bean id="provider"
+ class="org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.impl.DeviceManagerAdapterManagerImpl"
+ init-method="init" destroy-method="close">
+ <property name="netconfNetworkElementService" ref="netconfNetworkElementService"/>
+ </bean>
+</blueprint>
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/version.properties b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/version.properties
new file mode 100644
index 000000000..6638c04f9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/resources/version.properties
@@ -0,0 +1,24 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# Properties filled in by maven during build process
+version = ${project.version}
+build = ${buildtime}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/network-topology-simulator.yang b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/network-topology-simulator.yang
new file mode 100644
index 000000000..ac2cf8dd3
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/network-topology-simulator.yang
@@ -0,0 +1,297 @@
+module network-topology-simulator {
+ yang-version 1.1;
+ namespace "urn:onf:params:xml:ns:yang:network-topology-simulator";
+ prefix network-topology-simulator;
+
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ organization
+ "Melacon";
+ contact
+ "Web: <https://github.com/Melacon>
+ Editors: Alex Stancu
+ <mailto:stancu.liviualex@gmail.com>";
+ description
+ "This module contains a collection of YANG definitions for managing the Network Topology Simulator.";
+
+ revision 2019-10-25 {
+ description
+ "Modify notifications. Add VES message configuration options.";
+ reference
+ "O-RAN SC SIM project";
+ }
+ revision 2019-06-07 {
+ description
+ "Modify controller details.";
+ reference
+ "O-RAN SC SIM project";
+ }
+ revision 2019-03-07 {
+ description
+ "Initial version";
+ reference
+ "O-RAN SC SIM project";
+ }
+
+ typedef operational-state-type {
+ type enumeration {
+ enum not-specified {
+ description
+ "none";
+ }
+ enum running {
+ description
+ "none";
+ }
+ enum created {
+ description
+ "none";
+ }
+ enum exited {
+ description
+ "none";
+ }
+ }
+ description
+ "The operation state of the simulated device.";
+ }
+
+ typedef authentication-method-type {
+ type enumeration {
+ enum no-auth {
+ description
+ "no security (http)";
+ }
+ enum cert-only {
+ description
+ "auth by certificate (https)";
+ }
+ enum basic-auth {
+ description
+ "auth by basic auth username and password (https)";
+ }
+ enum cert-basic-auth {
+ description
+ "auth by certificate and basic auth username / password (https)";
+ }
+ }
+ description
+ "The authentication method for VES messaging.";
+ }
+
+ typedef percent {
+ type decimal64 {
+ fraction-digits 2;
+ range "0 .. 100";
+ }
+ description
+ "Percentage";
+ }
+
+ grouping controller-details-type-g {
+ leaf controller-ip {
+ type inet:ip-address;
+ description
+ "The IP Address of the SDN Controller.";
+ }
+ leaf controller-port {
+ type inet:port-number;
+ description
+ "The Port of the SDN Controller.";
+ }
+ leaf controller-username {
+ type string;
+ description
+ "The Username of the SDN Controller.";
+ }
+ leaf controller-password {
+ type string;
+ description
+ "The Password of the SDN Controller.";
+ }
+ description
+ "none";
+ }
+
+ grouping simulated-devices-type-g {
+ leaf uuid {
+ type string;
+ description
+ "The UUID of the simulated device.";
+ }
+ leaf device-ip {
+ type string;
+ description
+ "The IP Address of the simulated device.";
+ }
+ leaf-list device-port {
+ type uint32;
+ description
+ "A NETCONF endpoint (port) of the simulated device.";
+ }
+ leaf is-mounted {
+ type boolean;
+ description
+ "Specifies if the simulated device is mounted in the SDN Controller.";
+ }
+ leaf operational-state {
+ type operational-state-type;
+ description
+ "Specifies the operational state of the simulated device.";
+ }
+ description
+ "none";
+ }
+
+ container simulator-config {
+ description
+ "Configuration container of the simulator.";
+ leaf simulated-devices {
+ type uint32;
+ default "0";
+ description
+ "The number of devices to be simulated.";
+ }
+ leaf mounted-devices {
+ type uint32;
+ default "0";
+ description
+ "The number of devices to be mounted in ODL. The configured number should not exceed the number of mounted devices.";
+ }
+ container notification-config {
+ leaf fault-notification-delay-period {
+ type uint32;
+ default "0";
+ description
+ "Interval in seconds between two consecutive notifications. If the attribute is set to 0, nofitications are not generated.";
+ }
+ leaf ves-heartbeat-period {
+ type uint32;
+ default "0";
+ description
+ "Interval in seconds between two VES heartbeat messages. If the attribute is set to 0, heartbeat messages are not generated.";
+ }
+ leaf is-netconf-available {
+ type boolean;
+ default "true";
+ description
+ "If set to 'true', NETCONF notifications will be generated.";
+ }
+ leaf is-ves-available {
+ type boolean;
+ default "true";
+ description
+ "If set to 'true', VES messages will be generated.";
+ }
+ description
+ "none";
+ }
+ container controller-details {
+ uses controller-details-type-g;
+ description
+ "The connectivity details of the SDN Controller where we want to mount our simulated devices.";
+ }
+ container ves-endpoint-details {
+ must 'ves-registration = "false" or ../mounted-devices = 0' {
+ error-message "VES registration cannot be active while devices are still mounted to ODL not via VES.";
+ }
+ leaf ves-endpoint-ip {
+ type inet:ip-address;
+ description
+ "The IP Address of the VES Endpoint.";
+ }
+ leaf ves-endpoint-port {
+ type inet:port-number;
+ description
+ "The Port of the VES Endpoint.";
+ }
+ leaf ves-endpoint-auth-method {
+ type authentication-method-type;
+ default "no-auth";
+ description
+ "The type of the authentication to be used with the VES Endpoint.";
+ }
+ leaf ves-endpoint-username {
+ when "../ves-endpoint-auth-method = 'basic-auth' or ../ves-endpoint-auth-method = 'cert-basic-auth'";
+ type string;
+ description
+ "The Username to be used to authenticate to the VES Endpoint.";
+ }
+ leaf ves-endpoint-password {
+ when "../ves-endpoint-auth-method = 'basic-auth' or ../ves-endpoint-auth-method = 'cert-basic-auth'";
+ type string;
+ description
+ "The Password to be used to authenticate to the VES Endpoint.";
+ }
+ leaf ves-endpoint-certificate {
+ when "../ves-endpoint-auth-method = 'cert-only' or ../ves-endpoint-auth-method = 'cert-basic-auth'";
+ type string;
+ description
+ "The Certificate to be used to authenticate to the VES Endpoint.";
+ }
+ leaf ves-registration {
+ type boolean;
+ default "false";
+ description
+ "If this is set to 'True', the simulated devices will automatically send a pnfRegistration VES message when they start. This cannot be set to 'True' if we already have 'mounted-devices' greater that 0, because we already mounted the devices directly to ODL.";
+ }
+ description
+ "none";
+ }
+ }
+ container simulator-status {
+ config false;
+ container simulation-usage-details {
+ config false;
+ leaf running-simulated-devices {
+ type uint32;
+ description
+ "The current number of running simulated devices.";
+ }
+ leaf running-mounted-devices {
+ type uint32;
+ description
+ "The current number of running simulated devices that are mounted in ODL.";
+ }
+ leaf base-netconf-port {
+ type uint32;
+ default "30000";
+ description
+ "The starting port number for the NETCONF connections exposed.";
+ }
+ leaf cpu-usage {
+ type percent;
+ description
+ "Specifies the CPU load generated by this simulated device.";
+ }
+ leaf mem-usage {
+ type uint32;
+ description
+ "Specifies the RAM in MB used by this simulated device.";
+ }
+ description
+ "The details about the simulation, including resources consumed.";
+ }
+ list simulated-devices-list {
+ key "uuid";
+ config false;
+ uses simulated-devices-type-g;
+ description
+ "The list of the devices that are currently simulated.";
+ }
+ description
+ "State data container of the simulator.";
+ }
+
+ rpc restart-simulation {
+ description
+ "Operation to restart all the simulated devices with the new configuration of the simulator.";
+ }
+
+ rpc add-key-pair-to-odl {
+ description
+ "Operation to add a key pair signed by the NTS to OpenDaylight, such that it can connect to devices using TLS.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang
new file mode 100644
index 000000000..ea7e60b91
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-common.yang
@@ -0,0 +1,354 @@
+module nts-common {
+ yang-version 1.1;
+ namespace "urn:o-ran-sc:params:xml:ns:yang:nts:common";
+ prefix ntsc;
+
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ organization
+ "O-RAN-SC";
+ contact
+ " Web: <https://wiki.o-ran-sc.org/display/SIM/SIM>
+ Editors:
+ Alex Stancu <mailto:alexandru.stancu@highstreet-technologies.com>
+ Adrian Lita <mailto:adrian.lita@highstreet-technologies.com>
+ Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
+ description
+ "This module contains common yang definitions YANG definitions for the Network Topology Simulator.";
+
+ revision 2020-11-20 {
+ description
+ "Add feature-type for the Web cut through feature.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+
+ revision 2020-10-22 {
+ description
+ "Add feature-type for the NETCONF Call Home feature.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+
+ revision 2020-10-13 {
+ description
+ "Add feature-type typedef containing the features that can be activated in the Network Function.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+
+ revision 2020-09-07 {
+ description
+ "Initial revision for the Network Topology Simulator - Next Generation common types.";
+ reference
+ "O-RAN-SC SIM project";
+ }
+
+ feature faults-status {
+ description
+ "This means that the server supports reporting back the number of faults that were generated";
+ }
+
+ typedef authentication-method-type {
+ type enumeration {
+ enum no-auth {
+ description
+ "no security (http)";
+ }
+ enum cert-only {
+ description
+ "auth by certificate (https)";
+ }
+ enum basic-auth {
+ description
+ "auth by basic auth username and password (https)";
+ }
+ enum cert-basic-auth {
+ description
+ "auth by certificate and basic auth username / password (https)";
+ }
+ }
+ description
+ "The authentication method for VES messaging.";
+ }
+
+ typedef feature-type {
+ type bits {
+ bit ves-file-ready {
+ position 0;
+ description
+ "Controls the ves-file-ready feature.";
+ }
+ bit ves-heartbeat {
+ position 1;
+ description
+ "Controls the ves-heartbeat feature.";
+ }
+ bit ves-pnf-registration {
+ position 2;
+ description
+ "Controls the ves-pnf-registration feature.";
+ }
+ bit manual-notification-generation {
+ position 3;
+ description
+ "Controls the manual notification generation feature.";
+ }
+ bit netconf-call-home {
+ position 4;
+ description
+ "Controls the NETCONF Call Home feature.";
+ }
+ bit web-cut-through {
+ position 5;
+ description
+ "Controls the Web Cut Through feature.";
+ }
+ }
+ description
+ "Describes the features that can be enabled/disabled in the Network Function.";
+ }
+
+ identity NTS_FUNCTION_TYPE_BASE {
+ description
+ "The reference of each identity represents the name of the associated docker image.";
+ }
+
+ grouping mount-point-details-g {
+ leaf mount-point-addressing-method {
+ type enumeration {
+ enum host-mapping {
+ description
+ "Uses IP and port mapped to the host machine to address the nework function.";
+ }
+ enum docker-mapping {
+ description
+ "Uses Docker IP and port to address the nework function.";
+ }
+ }
+ default docker-mapping;
+ description
+ "Specifies how to address the simulated network function: via the host machine or via docker.";
+ }
+ description
+ "Groups details about mount point";
+ }
+
+ grouping fault-delay-period-g {
+ list fault-delay-list {
+ key index;
+ ordered-by user;
+ leaf index {
+ type uint16;
+ description
+ "The index of the list.";
+ }
+ leaf delay-period {
+ type uint16;
+ units s;
+ description
+ "The amount of seconds before the next event.";
+ }
+ description
+ "The list defining the pattern for generating events.";
+ }
+ description
+ "For reusing the same fault-delay-period.";
+ }
+
+ grouping fault-count-g {
+ container fault-count {
+ if-feature faults-status;
+ config false;
+ leaf normal {
+ type uint32;
+ description
+ "Number of normal (non-alarmed) events.";
+ }
+ leaf warning {
+ type uint32;
+ description
+ "Number of warning events.";
+ }
+ leaf minor {
+ type uint32;
+ description
+ "Number of minor events.";
+ }
+ leaf major {
+ type uint32;
+ description
+ "Number of major events.";
+ }
+ leaf critical {
+ type uint32;
+ description
+ "Number of critical events.";
+ }
+ description
+ "Container which groups the number of fault events, by severity.";
+ }
+ description
+ "Grouping for counting the fault events, grouped by severity.";
+ }
+
+ grouping faults-g {
+ container fault-generation {
+ uses fault-delay-period-g;
+ uses fault-count-g;
+ description
+ "Groups the fault generation configuration and status.";
+ }
+ description
+ "Grouping for fault generation";
+ }
+
+ grouping faults-enabled-g {
+ leaf faults-enabled {
+ type boolean;
+ description
+ "For enabling the fault generation.";
+ }
+ description
+ "Groups the enabling of faults.";
+ }
+
+ grouping netconf-config-g {
+ container netconf {
+ uses faults-enabled-g;
+ leaf call-home {
+ type boolean;
+ description
+ "For enabling the NETCONF Call Home feature. If set to 'true', each simulated device, when booting up, will try to Call Home to the SDN Controller.";
+ }
+ description
+ "Container for describing the NETCONF details.";
+ }
+ description
+ "Groups the configuration and status of NETCONF Fault notifications.";
+ }
+
+ grouping ves-config-g {
+ container ves {
+ uses faults-enabled-g;
+ leaf pnf-registration {
+ type boolean;
+ description
+ "For enabling the PNF Registration messages. If set to 'true', each simulated device, when booting up, will send a PNF Registration message to the VES Collector.";
+ }
+ leaf heartbeat-period {
+ type uint16;
+ description
+ "The number of seconds between VES heartbeat messages.";
+ }
+ description
+ "Container for describing the VES details.";
+ }
+ description
+ "Groups the configuration and status of VES Fault notifications.";
+ }
+
+ grouping controller-g {
+ leaf controller-ip {
+ type inet:ip-address;
+ description
+ "The IP address of the SDN Controller.";
+ }
+ leaf controller-port {
+ type inet:port-number;
+ description
+ "The port exposed by the SDN Controller.";
+ }
+ leaf controller-netconf-call-home-port {
+ type inet:port-number;
+ description
+ "The port exposed by the SDN Controller for NETCONF Call Home.";
+ }
+ leaf controller-username {
+ type string;
+ description
+ "The username for accessing the SDN Controller.";
+ }
+ leaf controller-password {
+ type string;
+ description
+ "The password for accessing the SDN Controller.";
+ }
+ description
+ "Groups information about the SDN Controller.";
+ }
+
+ grouping ves-endpoint-g {
+ leaf ves-endpoint-protocol {
+ type enumeration {
+ enum http {
+ description
+ "HTTP protocol will be used to connect to the VES Collector.";
+ }
+ enum https {
+ description
+ "HTTPS protocol will be used to connect to the VES Collector.";
+ }
+ }
+ default https;
+ description
+ "The protocol (HTTP / HTTPS) to be used to address the VES Collector.";
+ }
+ leaf ves-endpoint-ip {
+ type inet:ip-address;
+ description
+ "The IP address of the VES Collector.";
+ }
+ leaf ves-endpoint-port {
+ type inet:port-number;
+ description
+ "The port exposed by the VES Collector.";
+ }
+ leaf ves-endpoint-auth-method {
+ type authentication-method-type;
+ default "no-auth";
+ description
+ "The type of the authentication to be used with the VES Collector.";
+ }
+ leaf ves-endpoint-username {
+ type string;
+ description
+ "The username for accessing the VES Collector.";
+ }
+ leaf ves-endpoint-password {
+ type string;
+ description
+ "The password for accessing the VES Collector.";
+ }
+ leaf ves-endpoint-certificate {
+ type string;
+ description
+ "The Certificate to be used to authenticate to the VES Collector.";
+ }
+ description
+ "Groups information about the VES Collector.";
+ }
+
+ grouping rpc-status-g {
+ leaf status {
+ type enumeration {
+ enum SUCCESS {
+ description
+ "The RPC was successfully invoked.";
+ }
+ enum ERROR {
+ description
+ "An error was encountered when invoking the RPC.";
+ }
+ }
+ mandatory true;
+ description
+ "The status of the RPC.";
+ }
+ description
+ "RPC output grouping.";
+ }
+
+} //end module \ No newline at end of file
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang
new file mode 100644
index 000000000..08214d52c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/main/yang/nts-manager.yang
@@ -0,0 +1,202 @@
+module nts-manager {
+ yang-version 1.1;
+ namespace "urn:o-ran-sc:params:xml:ns:yang:nts:manager";
+ prefix nts-mng;
+
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ import nts-common {
+ prefix ntsc;
+ revision-date 2020-11-20;
+ }
+
+ organization
+ "O-RAN-SC";
+ contact
+ " Web: <https://wiki.o-ran-sc.org/display/SIM/SIM>
+ Editors:
+ Alex Stancu <mailto:alexandru.stancu@highstreet-technologies.com>
+ Adrian Lita <mailto:adrian.lita@highstreet-technologies.com>
+ Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
+ description
+ "This module contains YANG definitions for the Network Topology Simulator - Manager.";
+
+ revision 2020-10-06 {
+ description
+ "Initial revision for the Network Topology Simulator - Next Generation";
+ reference
+ "O-RAN-SC SIM project";
+ }
+
+ typedef percent {
+ type decimal64 {
+ fraction-digits 2;
+ range "0 .. 100";
+ }
+ description
+ "Percentage";
+ }
+
+ grouping instance-g {
+ leaf name {
+ type string;
+ description
+ "The name of the running instance. It is the same as the docker container name which exposes this network function.";
+ }
+ container networking {
+ leaf docker-ip {
+ type inet:ip-address;
+ description
+ "The IP address of the docker container implementing the network function instance.";
+ }
+ leaf-list docker-port {
+ type inet:port-number;
+ description
+ "The ports which are exposed inside the docker container implementing the network function instance.";
+ }
+ leaf host-ip {
+ type inet:ip-address;
+ description
+ "The Host machine IP address pointing to the docker container implementing the network function instance.";
+ }
+ leaf-list host-port {
+ type inet:port-number;
+ description
+ "The Host machine ports mapped to the docker container implementing the network function instance.";
+ }
+ description
+ "Groups the details about networking information.";
+ }
+ description
+ "An instance of a network function which is running. The equivalent on the host machine is a docker container.";
+ }
+ grouping network-function-g {
+ leaf function-type {
+ type identityref {
+ base ntsc:NTS_FUNCTION_TYPE_BASE;
+ }
+ description "Type of network function to be simulated.";
+ }
+ leaf started-instances {
+ type uint16;
+ mandatory true;
+ description
+ "How many instances of this type are started.";
+ }
+ leaf mounted-instances {
+ type uint16;
+ must '. <= ../started-instances' {
+ error-message
+ "The number of mounted instances cannot be greater that the number of started instances.";
+ }
+ mandatory true;
+ description
+ "How many instances of this type are mounted in the SDN Controller.";
+ }
+
+ uses ntsc:mount-point-details-g;
+
+ leaf docker-instance-name {
+ type string;
+ mandatory true;
+ description
+ "The prefix of each docker container being started.";
+ }
+
+ leaf docker-version-tag {
+ type string;
+ mandatory true;
+ description
+ "The version tag of the docker image to be started.";
+ }
+
+ leaf docker-repository {
+ type string;
+ mandatory true;
+ description
+ "The prefix containing the docker repository information, if needed.";
+ }
+ uses ntsc:faults-g;
+ uses ntsc:netconf-config-g;
+ uses ntsc:ves-config-g;
+ container instances {
+ config false;
+ list instance {
+ key "name";
+ uses ntsc:mount-point-details-g;
+ uses instance-g;
+ description
+ "Describes a running instance.";
+ }
+ description
+ "Groups details about instances which are running.";
+ }
+ description
+ "Contains all the details of a simulated device.";
+ }
+ grouping simulation-information-g {
+ leaf base-port {
+ type inet:port-number;
+ config false;
+ description
+ "The base Host machine port from where the simulation can allocate ports incrementally.";
+ }
+ leaf ssh-connections {
+ type uint8;
+ config false;
+ description
+ "The number of SSH Endpoints each network function instance exposes.";
+ }
+ leaf tls-connections {
+ type uint8;
+ config false;
+ description
+ "The number of TLS Endpoints each network function instance exposes.";
+ }
+ leaf cpu-usage {
+ type percent;
+ config false;
+ description
+ "Specifies the CPU load generated by the simulation.";
+ }
+ leaf mem-usage {
+ type uint32;
+ config false;
+ description
+ "Specifies the RAM in MB used by the simulation.";
+ }
+ description
+ "Groups information about the simulation status.";
+ }
+
+ container simulation {
+ container network-functions {
+ list network-function {
+ key "function-type";
+ unique "docker-instance-name";
+ uses network-function-g;
+ description
+ "List containing different simulated network function types and their details.";
+ }
+ description
+ "Container which encompasses all simulated network functions.";
+ }
+ container sdn-controller {
+ uses ntsc:controller-g;
+ description
+ "Groups details about the SDN Controller.";
+ }
+ container ves-endpoint {
+ uses ntsc:ves-endpoint-g;
+ description
+ "Groups details about the VES Collector endpoint.";
+ }
+ uses simulation-information-g;
+ description
+ "Root level container which controls the NTS.";
+ }
+
+
+} //end module \ No newline at end of file
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElement.java b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElement.java
new file mode 100644
index 000000000..d067d538f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElement.java
@@ -0,0 +1,81 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.io.IOException;
+import java.util.Optional;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.impl.AdapterManagerNetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.network.topology.simulator.rev191025.SimulatorStatus;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.QName;
+
+public class TestAdapterManagerNetworkElement {
+
+ static NetconfBindingAccessor accessor;
+ static DeviceManagerServiceProvider serviceProvider;
+ static Capabilities capabilities;
+ QName qCapability;
+
+ @BeforeClass
+ public static void init() throws InterruptedException, IOException {
+ capabilities = mock(Capabilities.class);
+ //accessor = mock(NetconfAccessorMock.class);
+ accessor = mock(NetconfBindingAccessor.class); //spy(new NetconfAccessorMock(null, null, null, null));
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+
+ NodeId nNodeId = new NodeId("nSky");
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getTransactionUtils()).thenReturn(mock(TransactionUtils.class));
+
+ DataProvider dataProvider = mock(DataProvider.class);
+ when(serviceProvider.getDataProvider()).thenReturn(dataProvider);
+ }
+
+ @Test
+ public void test() {
+ Optional<NetworkElement> adapterManagerNe;
+ when(accessor.getCapabilites().isSupportingNamespace(SimulatorStatus.QNAME)).thenReturn(true);
+ AdapterManagerNetworkElementFactory factory = new AdapterManagerNetworkElementFactory();
+ adapterManagerNe = factory.create(accessor, serviceProvider);
+ assertTrue(factory.create(accessor, serviceProvider).isPresent());
+ adapterManagerNe.get().register();
+ adapterManagerNe.get().deregister();
+ adapterManagerNe.get().getAcessor();
+ adapterManagerNe.get().getDeviceType();
+ assertEquals(adapterManagerNe.get().getNodeId().getValue(), "nSky");
+ }
+
+ @After
+ public void cleanUp() throws Exception {
+
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElementFactory.java
new file mode 100644
index 000000000..fce5f6b88
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestAdapterManagerNetworkElementFactory.java
@@ -0,0 +1,72 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.test;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.io.IOException;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.impl.AdapterManagerNetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.network.topology.simulator.rev191025.SimulatorStatus;
+import org.opendaylight.yangtools.yang.common.QName;
+
+public class TestAdapterManagerNetworkElementFactory {
+
+ static NetconfBindingAccessor accessor;
+ static DeviceManagerServiceProvider serviceProvider;
+ static Capabilities capabilities;
+ QName qCapability;
+
+ @BeforeClass
+ public static void init() throws InterruptedException, IOException {
+ capabilities = mock(Capabilities.class);
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(serviceProvider.getDataProvider()).thenReturn(null);
+
+
+ }
+
+ @Test
+ public void testCreateSimulator() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespace(SimulatorStatus.QNAME)).thenReturn(true);
+ AdapterManagerNetworkElementFactory factory = new AdapterManagerNetworkElementFactory();
+ assertTrue(factory.create(accessor, serviceProvider).isPresent());
+ }
+
+ @Test
+ public void testCreateNone() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespace(SimulatorStatus.QNAME)).thenReturn(false);
+ AdapterManagerNetworkElementFactory factory = new AdapterManagerNetworkElementFactory();
+ assertTrue(!(factory.create(accessor, serviceProvider).isPresent()));
+ }
+
+ @After
+ public void cleanUp() throws Exception {
+
+ }
+}
+
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestDeviceManagerAdapterManagerImpl.java b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestDeviceManagerAdapterManagerImpl.java
new file mode 100644
index 000000000..3f53abfa8
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/adaptermanager/test/TestDeviceManagerAdapterManagerImpl.java
@@ -0,0 +1,42 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.test;
+
+import static org.mockito.Mockito.mock;
+import org.junit.After;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.adaptermanager.impl.DeviceManagerAdapterManagerImpl;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
+
+public class TestDeviceManagerAdapterManagerImpl {
+ DeviceManagerAdapterManagerImpl devMgrAdapterManager;
+
+ @Test
+ public void test() throws Exception {
+ devMgrAdapterManager = new DeviceManagerAdapterManagerImpl();
+ NetconfNetworkElementService netConfNetworkElementService = mock(NetconfNetworkElementService.class);
+
+ devMgrAdapterManager.setNetconfNetworkElementService(netConfNetworkElementService);
+ devMgrAdapterManager.init();
+ }
+
+ @After
+ public void cleanUp() throws Exception {
+ devMgrAdapterManager.close();
+ }
+ }
diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/resources/simplelogger.properties b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/resources/simplelogger.properties
new file mode 100644
index 000000000..9af26dc96
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/src/test/resources/simplelogger.properties
@@ -0,0 +1,61 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# SLF4J's SimpleLogger configuration file
+# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err.
+
+# Default logging detail level for all instances of SimpleLogger.
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, defaults to "info".
+org.slf4j.simpleLogger.defaultLogLevel=info
+
+# Logging detail level for a SimpleLogger instance named "xxx.yyy.zzz".
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, the default logging detail level is used.
+# org.slf4j.simpleLogger.log.xxx.yyy=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.test=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.database=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.archiveservice=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes.Resources=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container=info
+
+# Set to true if you want the current date and time to be included in output messages.
+# Default is false, and will output the number of milliseconds elapsed since startup.
+#org.slf4j.simpleLogger.showDateTime=false
+
+# The date and time format to be used in the output messages.
+# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat.
+# If the format is not specified or is invalid, the default format is used.
+# The default format is yyyy-MM-dd HH:mm:ss:SSS Z.
+#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
+
+# Set to true if you want to output the current thread name.
+# Defaults to true.
+#org.slf4j.simpleLogger.showThreadName=true
+
+# Set to true if you want the Logger instance name to be included in output messages.
+# Defaults to true.
+#org.slf4j.simpleLogger.showLogName=true
+
+# Set to true if you want the last component of the name to be included in output messages.
+# Defaults to false.
+#org.slf4j.simpleLogger.showShortLogName=false
diff --git a/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml b/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml
new file mode 100644
index 000000000..de83dc9bf
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>single-feature-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf12-feature</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>feature</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <dependencies>
+ <!-- <dependency> -->
+ <!-- <groupId>${project.groupId}</groupId> -->
+ <!-- <artifactId>sdnr-wt-devicemanager-onap-onf-model</artifactId> -->
+ <!-- <version>${project.version}</version> -->
+ <!-- </dependency> -->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf12-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml b/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml
new file mode 100755
index 000000000..7107e184d
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf12-installer</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <properties>
+ <application.name>sdnr-wt-devicemanager-onap-onf12</application.name>
+ <include.transitive.dependencies>false</include.transitive.dependencies>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-feature</artifactId>
+ <version>${project.version}</version>
+ <type>xml</type>
+ <classifier>features</classifier>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>maven-repo-zip</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <attach>true</attach>
+ <finalName>stage/${application.name}-${project.version}</finalName>
+ <descriptors>
+ <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
+ </descriptors>
+ <appendAssemblyId>true</appendAssemblyId>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-nested-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <transitive>true</transitive>
+ <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>true</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf12/installer/src/assembly/assemble_mvnrepo_zip.xml b/sdnr/wt/devicemanager-onap/onf12/installer/src/assembly/assemble_mvnrepo_zip.xml
new file mode 100644
index 000000000..dfe5060bf
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -0,0 +1,47 @@
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<!-- Defines how we build the .zip file which is our distribution. -->
+
+<assembly
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <id>repo</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <!-- we want "system" and related files right at the root level
+ as this file is suppose to be unzip on top of a karaf
+ distro. -->
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>target/assembly/</directory>
+ <outputDirectory>.</outputDirectory>
+ <excludes>
+ </excludes>
+ </fileSet>
+ </fileSets>
+
+</assembly>
diff --git a/sdnr/wt/devicemanager-onap/onf12/model/pom.xml b/sdnr/wt/devicemanager-onap/onf12/model/pom.xml
new file mode 100644
index 000000000..7d4469784
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/model/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf12-model</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ </properties>
+
+ <dependencies>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf12/model/src/main/yang/devicemanager-onf.yang b/sdnr/wt/devicemanager-onap/onf12/model/src/main/yang/devicemanager-onf.yang
new file mode 100644
index 000000000..2a943658b
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/model/src/main/yang/devicemanager-onf.yang
@@ -0,0 +1,37 @@
+module devicemanager-onf {
+
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:devicemanager-onf";
+ prefix devicemanager-onf;
+
+ organization
+ "highstreet technologies GmbH";
+ contact
+ "Web: <https://highstreet-technologies.com>
+ O-RAN: <https://wiki.o-ran-sc.org/display/OAM/Operations+and+Maintenance";
+
+ description
+ "DeviceManager Open Network Foundation Api Module
+
+ Copyright 2019 highstreet technologies GmbH Intellectual Property.
+ All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2019-12-09 {
+ description
+ "Initial revision";
+ reference
+ "https://jira.onap.org/browse/SDNC-877";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/pom.xml b/sdnr/wt/devicemanager-onap/onf12/pom.xml
new file mode 100755
index 000000000..23195475f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf12-top</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <modules>
+ <module>model</module>
+ <module>provider</module>
+ <module>feature</module>
+ <module>installer</module>
+ </modules>
+
+ <properties>
+ <feature-name>sdnr-wt-devicemanager-onap-onf12</feature-name>
+ </properties>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/copyright b/sdnr/wt/devicemanager-onap/onf12/provider/copyright
new file mode 100644
index 000000000..754b6218f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/copyright
@@ -0,0 +1,17 @@
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml b/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml
new file mode 100644
index 000000000..cce5bdbaf
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf12-provider</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
+ <buildtime>${maven.build.timestamp} UTC</buildtime>
+ </properties>
+
+ <dependencies>
+ <!-- begin for testing -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- end for testing -->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf12-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-core-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-netconfnode-state-service-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>sal-netconf-connector</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-yang-utils</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/NetworkElementCoreData.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/NetworkElementCoreData.java
new file mode 100644
index 000000000..37d092fbc
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/NetworkElementCoreData.java
@@ -0,0 +1,35 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf;
+
+import java.util.Optional;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+
+public interface NetworkElementCoreData {
+
+ public String getMountpoint();
+
+ public DataBroker getDataBroker();
+
+ public Optional<NetworkElement> getOptionalNetworkElement();
+
+ public NetworkElementDeviceType getDeviceType();
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementCallback.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementCallback.java
new file mode 100644
index 000000000..ce91ae301
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementCallback.java
@@ -0,0 +1,24 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf;
+
+public interface ONFCoreNetworkElementCallback<T> {
+
+ public void notificationFromNeListener(T notificationXml);
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementRepresentation.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementRepresentation.java
new file mode 100644
index 000000000..a460853c6
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ONFCoreNetworkElementRepresentation.java
@@ -0,0 +1,40 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf;
+
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.DeviceMonitoredNe;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.InventoryProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.PerformanceDataProvider;
+import org.opendaylight.mdsal.binding.api.MountPoint;
+
+public interface ONFCoreNetworkElementRepresentation
+ extends DeviceMonitoredNe, PerformanceDataProvider, NetworkElementCoreData, InventoryProvider, NetworkElement {
+
+ /**
+ * Read during startup all relevant structure and status parameters from device. Remove all currentAlarms, read
+ * structure from networkElement with all interfacePacs, read current alarm status
+ */
+ public void initialReadFromNetworkElement();
+
+ public String getMountPointNodeName();
+
+ public int removeAllCurrentProblemsOfNode();
+
+ public void doRegisterEventListener(MountPoint mountPoint);
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/OnfInterfacePac.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/OnfInterfacePac.java
new file mode 100644
index 000000000..7b0409a1f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/OnfInterfacePac.java
@@ -0,0 +1,36 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+
+public interface OnfInterfacePac {
+
+ /**
+ * Read problems of specific interfaces. TODO Goal for future implementation without usage of explicit new. Key is
+ * generated by newInstance() function here to verify this approach.
+ *
+ * @param interfacePacUuid Universal index of Interfacepac
+ * @param resultList List to add fault. If null new list is created.
+ * @return list of alarms
+ */
+ public FaultData readTheFaults(@NonNull UniversalId interfacePacUuid, @NonNull FaultData resultList);
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java
new file mode 100644
index 000000000..a0813eee6
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/WrapperPTPModelRev170208.java
@@ -0,0 +1,102 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac;
+
+import java.util.Collection;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceList;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceListKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.instance.list.PortDsList;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.port.ds.entry.PortIdentity;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Reading PTP specific information from networkelement and creating log-trace output.
+ *
+ * @author herbert
+ */
+public class WrapperPTPModelRev170208 {
+
+ private static final Logger LOG = LoggerFactory.getLogger(WrapperPTPModelRev170208.class);
+
+ protected static final InstanceIdentifier<InstanceList> PTPINSTANCES_IID =
+ InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(1)).build();
+
+ /**
+ * Query synchronization information out of NE
+ */
+
+ public static void initSynchronizationExtension(NetconfBindingAccessor acessor) {
+
+ String mountPointNodeName = acessor.getNodeId().getValue();
+ Capabilities capabilities = acessor.getCapabilites();
+ try {
+ if (!capabilities.isSupportingNamespaceAndRevision(InstanceList.QNAME)) {
+ LOG.debug("Mountpoint {} does not support PTP", mountPointNodeName);
+ } else {
+ StringBuffer sb = new StringBuffer();
+ sb.append("NE ");
+ sb.append(mountPointNodeName);
+ sb.append(" does support synchronisation.\n");
+ InstanceList ptpInstance = readPTPClockInstances(acessor);
+ if (ptpInstance != null) {
+ Collection<PortDsList> dsList = YangHelper.getCollection(ptpInstance.getPortDsList());
+ if (dsList != null) {
+ int t = 0;
+ for (PortDsList portDs : dsList) {
+ PortIdentity portId = portDs.getPortIdentity();
+ if (portId != null) {
+ sb.append("Port[");
+ sb.append(portId.getPortNumber());
+ sb.append("]{ ClockId: ");
+ sb.append(portId.getClockIdentity());
+ sb.append(", Portstate: ");
+ sb.append(portDs.getPortState());
+ sb.append("}, ");
+ } else {
+ sb.append("Incomplete port #" + t + ", ");
+ }
+ t++;
+ }
+ } else {
+ sb.append("dsList contains null");
+ }
+ } else {
+ sb.append("ptpInstance equals null");
+ }
+ LOG.trace(sb.toString());
+ }
+ } catch (Exception e) {
+ LOG.info("Inconsistent synchronisation structure: " + e.getMessage());
+ }
+ }
+
+ @Nullable
+ private static InstanceList readPTPClockInstances(NetconfBindingAccessor acessor) {
+ return acessor.getTransactionUtils().readData(acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ PTPINSTANCES_IID);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ExtendedEquipment.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ExtendedEquipment.java
new file mode 100644
index 000000000..e6c3865f7
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ExtendedEquipment.java
@@ -0,0 +1,143 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.Equipment;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ManufacturedThing;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.EquipmentInstance;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.EquipmentType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.ManufacturerProperties;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Extend the eqipment type of core model with additional parameters
+ */
+public class ExtendedEquipment {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ExtendedEquipment.class);
+
+ public static final String ESDATATYPENAME = "inventoryequipment";
+ private final String parentUuid;
+ private final int treeLevel;
+ private final Equipment equipment;
+ private final String nodeId;
+ private final String path;
+
+ /**
+ * Equipment with additional information beside NETCONF equipment
+ *
+ * @param parentUuid of parent equipment
+ * @param equipment NETCONF Equipment
+ * @param treeLevel level of tree starting with root at 0
+ */
+ public ExtendedEquipment(String nodeId, String parentUuid, Equipment equipment, String path, int treeLevel) {
+ super();
+ this.nodeId = nodeId;
+ this.parentUuid = parentUuid;
+ this.equipment = equipment;
+ this.path = path;
+ this.treeLevel = treeLevel;
+ }
+
+ public String getParentUuid() {
+ return parentUuid;
+ }
+
+ public Equipment getEquipment() {
+ return equipment;
+ }
+
+ public int getTreeLevel() {
+ return treeLevel;
+ }
+
+ public String getNodeId() {
+ return nodeId;
+ }
+
+ public Inventory getCreateInventoryInput() {
+
+ InventoryBuilder inventoryBuilder = new InventoryBuilder();
+
+ // General
+ inventoryBuilder.setNodeId(getNodeId());
+ inventoryBuilder.setParentUuid(getParentUuid());
+ inventoryBuilder.setTreeLevel(Uint32.valueOf(getTreeLevel()));
+
+ if (getEquipment() != null) {
+ inventoryBuilder.setUuid(getEquipment().getUuid().getValue());
+ // -- String list with ids of holders
+ List<String> containerHolderKeyList = new ArrayList<>();
+ Collection<ContainedHolder> containerHolderList = YangHelper.getCollection(getEquipment().getContainedHolder());
+ if (containerHolderList != null) {
+ for (ContainedHolder containerHolder : containerHolderList) {
+ containerHolderKeyList.add(containerHolder.getUuid().getValue());
+ }
+ }
+ inventoryBuilder.setContainedHolder(containerHolderKeyList);
+
+ // -- Manufacturer related things
+ ManufacturedThing mThing = getEquipment().getManufacturedThing();
+ if (mThing != null) {
+ ManufacturerProperties mProperties = mThing.getManufacturerProperties();
+ if (mProperties != null) {
+ inventoryBuilder.setManufacturerName(mProperties.getManufacturerName());
+ inventoryBuilder.setManufacturerIdentifier(mProperties.getManufacturerIdentifier());
+ }
+ EquipmentType mType = mThing.getEquipmentType();
+ if (mType != null) {
+ inventoryBuilder.setDescription(mType.getDescription());
+ inventoryBuilder.setModelIdentifier(mType.getModelIdentifier());
+ inventoryBuilder.setPartTypeId(mType.getPartTypeIdentifier());
+ inventoryBuilder.setTypeName(mType.getTypeName());
+ inventoryBuilder.setVersion(mType.getVersion());
+ }
+ EquipmentInstance mInstance = mThing.getEquipmentInstance();
+ if (mInstance != null) {
+ String manufacturedDateString = mInstance.getManufactureDate();
+ if (manufacturedDateString != null && !manufacturedDateString.isEmpty()) {
+ try {
+ inventoryBuilder.setDate(manufacturedDateString);
+ } catch (IllegalArgumentException e) {
+ LOG.debug("Format problem", e);
+ }
+ }
+ inventoryBuilder.setSerial(mInstance.getSerialNumber());
+ }
+ }
+ }
+
+ return inventoryBuilder.build();
+ }
+
+ @Override
+ public String toString() {
+ return "ExtendedEquipment [parentUuid=" + parentUuid + ", treeLevel=" + treeLevel + ", equipment=" + equipment
+ + ", nodeId=" + nodeId + ", path=" + path + "]";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ONFCoreNetworkElement12Equipment.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ONFCoreNetworkElement12Equipment.java
new file mode 100644
index 000000000..3c0878495
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ONFCoreNetworkElement12Equipment.java
@@ -0,0 +1,315 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.NetworkElementCoreData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.OnfInterfacePac;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EquipmentData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.InventoryInformationDcae;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.Equipment;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.EquipmentKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ManufacturedThing;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.EquipmentType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.ManufacturerProperties;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Contains equipment related information of ONFCore Network Element
+ */
+public class ONFCoreNetworkElement12Equipment {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ONFCoreNetworkElement12Equipment.class);
+
+ private static final UniversalId EQUIPMENTROOT = new UniversalId("network-element");
+ private static final int EQUIPMENTROOTLEVEL = 0;
+
+ private final NetworkElementCoreData coreData;
+ private final @Nullable OnfInterfacePac equipmentPac;
+ private final NetconfBindingAccessor acessor;
+
+ private final ValueNameList extensionList;
+ private final @NonNull List<UniversalId> topLevelEqUuidList;
+ private final @NonNull FaultData globalProblemList;
+ private final @NonNull List<ExtendedEquipment> globalEquipmentList;
+
+ public ONFCoreNetworkElement12Equipment(NetconfBindingAccessor acessor, NetworkElementCoreData coreData) {
+ this(acessor, coreData, false);
+ }
+
+ public ONFCoreNetworkElement12Equipment(NetconfBindingAccessor acessor, NetworkElementCoreData coreData,
+ Boolean disabled) {
+ LOG.debug("Initialize class: {} " + ONFCoreNetworkElement12Equipment.class.getName());
+ this.acessor = acessor;
+ this.coreData = coreData;
+ String reason;
+ if (disabled) {
+ this.equipmentPac = null;
+ reason = "disabled";
+ } else if (acessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperEquipmentPacRev170402.QNAME)) {
+ this.equipmentPac = new WrapperEquipmentPacRev170402(acessor);
+ reason = "WrapperEquipmentPacRev170402.QNAME";
+ } else {
+ this.equipmentPac = null;
+ reason = "unsupported";
+ }
+ LOG.debug("Equipement pac initialization '{}'", reason);
+
+ globalEquipmentList = new ArrayList<>();
+
+ extensionList = new ValueNameList();
+ topLevelEqUuidList = new ArrayList<>();
+ globalProblemList = new FaultData();
+ initClassVars();
+ }
+
+ public void addProblemsofNode(FaultData resultList) {
+ resultList.addAll(globalProblemList);
+ }
+
+ public FaultData addProblemsofNodeObject(String uuidString) {
+ FaultData res = new FaultData();
+
+ if (this.equipmentPac != null) {
+ this.equipmentPac.readTheFaults(new UniversalId(uuidString), res);
+ }
+ return res;
+ }
+
+ public @NonNull InventoryInformationDcae getInventoryInformation(List<String> uuids) {
+ return getInventoryInformationDcae(this.extensionList, uuids);
+ }
+
+ public void readNetworkElementEquipment() {
+ doSyncNetworkElementEquipmentToClassVars();
+ }
+
+ public String getMountpoint() {
+ return coreData.getMountpoint();
+ }
+
+ public OnfInterfacePac getEquipmentPac() {
+ return equipmentPac;
+ }
+
+ public List<UniversalId> getTopLevelEqUuidList() {
+ return topLevelEqUuidList;
+ }
+
+ public @NonNull EquipmentData getEquipmentData() {
+ EquipmentData res = new EquipmentData();
+ globalEquipmentList.forEach(extEquipment -> res.add(extEquipment.getCreateInventoryInput()));
+ return res;
+ }
+
+ public List<Equipment> getEquipmentAll() {
+ List<Equipment> equipmentListAll = new ArrayList<>();
+
+ Equipment equipment = readEquipmentAll();
+ equipmentListAll.add(equipment);
+
+ return equipmentListAll;
+ }
+
+ TransactionUtils getGenericTransactionUtils() {
+ return acessor.getTransactionUtils();
+ }
+
+ /*
+ * --------------------------------------------------------------------------------- private
+ * functions
+ */
+
+ private void initClassVars() {
+ this.globalProblemList.clear();
+ this.extensionList.clear();
+ this.topLevelEqUuidList.clear();
+ }
+
+ private void doSyncNetworkElementEquipmentToClassVars() {
+
+ Optional<NetworkElement> optionalNe = coreData.getOptionalNetworkElement();
+ initClassVars();
+
+ if (optionalNe.isPresent()) {
+
+ // extract Inventory
+ extensionList.put(YangHelper.getList(optionalNe.get().getExtension()));
+
+ if (!extensionList.isEmpty()) {
+
+ /*
+ * Loop through network element extension to get "top-level-equipment" <extension>
+ * <value-name>top-level-equipment</value-name> <value>1.0.BKP,1.0.WCS</value> </extension> "ipv4"
+ * address
+ */
+ extensionList.getAsUniversalIdList("top-level-equipment", topLevelEqUuidList);
+
+ // If top-level-equipment exists get further information
+ if (topLevelEqUuidList.isEmpty()) {
+ LOG.debug("no top level equipment found");
+ } else {
+ // Read equipment and problems
+ for (UniversalId uuid : topLevelEqUuidList) {
+ recurseReadEquipmentProblems(uuid, EQUIPMENTROOT, coreData.getMountpoint(), EQUIPMENTROOTLEVEL,
+ globalProblemList, globalEquipmentList);
+ }
+ }
+ } else {
+ LOG.debug("extension list is null");
+ }
+ }
+ }
+
+ private void recurseReadEquipmentProblems(UniversalId uuid, UniversalId parentUuid, String path, int treeLevel,
+ @NonNull FaultData problemList, @NonNull List<ExtendedEquipment> equipmentList) {
+
+ if (uuid != null) {
+
+ Equipment equipment = this.readEquipment(uuid);
+
+ if (equipment != null) {
+ equipmentList.add(
+ new ExtendedEquipment(this.getMountpoint(), parentUuid.getValue(), equipment, path, treeLevel));
+
+ if (equipmentPac != null) {
+ equipmentPac.readTheFaults(uuid, problemList);
+
+ Collection<ContainedHolder> containedHolderListe = YangHelper.getCollection(equipment.getContainedHolder());
+ if (containedHolderListe != null) {
+ for (ContainedHolder containedHolder : containedHolderListe) {
+ recurseReadEquipmentProblems(containedHolder.getOccupyingFru(), uuid,
+ path + "/" + uuid.getValue(), treeLevel + 1, problemList, equipmentList);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private @NonNull InventoryInformationDcae getInventoryInformationDcae(ValueNameList extensions,
+ List<String> uuids) {
+
+ InventoryInformationDcae inventoryInformation = new InventoryInformationDcae();
+
+ // uuids
+ inventoryInformation.setInterfaceUuidList(uuids);
+
+ if (!extensions.isEmpty()) {
+
+ inventoryInformation.setDeviceIpv4(extensions.getOrNull("neIpAddress"));
+
+ // If top-level-equipment exists get further information
+ if (topLevelEqUuidList.isEmpty()) {
+ LOG.debug("no top level equipment found");
+ } else {
+ if (!globalEquipmentList.isEmpty()) {
+ Equipment e = globalEquipmentList.get(0).getEquipment();
+ if (e != null) {
+ ManufacturedThing manufacturedThing = e.getManufacturedThing();
+ if (manufacturedThing != null) {
+ EquipmentType et;
+ if ((et = manufacturedThing.getEquipmentType()) != null) {
+ inventoryInformation.setType(et.getTypeName());
+ inventoryInformation.setModel(et.getModelIdentifier());
+ }
+ ManufacturerProperties em;
+ if ((em = manufacturedThing.getManufacturerProperties()) != null) {
+ inventoryInformation.setVendor(em.getManufacturerIdentifier());
+ }
+ }
+ }
+ }
+ }
+ } else {
+ LOG.debug("extension list is null");
+ }
+
+ LOG.debug("Inventory: {}", inventoryInformation);
+ return inventoryInformation;
+
+ }
+
+
+ /**
+ * Read equipment information
+ *
+ * @param interfacePacUuid uuid as key for Equipment.
+ * @return Equipment or null
+ */
+ private @Nullable Equipment readEquipment(UniversalId interfacePacUuid) {
+
+ final Class<?> clazzPac = Equipment.class;
+
+ LOG.info("DBRead Get equipment for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ coreData.getMountpoint(), interfacePacUuid.getValue());
+
+ InstanceIdentifier<Equipment> equipmentIID =
+ InstanceIdentifier.builder(Equipment.class, new EquipmentKey(interfacePacUuid)).build();
+
+ return getGenericTransactionUtils().readData(coreData.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ equipmentIID);
+
+ }
+
+ /**
+ * Read equipment information
+ *
+ * @param interfacePacUuid uuid as key for Equipment.
+ * @return Equipment or null
+ */
+ private @Nullable Equipment readEquipmentAll() {
+
+ final Class<?> clazzPac = Equipment.class;
+
+ LOG.info("DBRead Get all equipment for class {} from mountpoint {}", clazzPac.getSimpleName(),
+ coreData.getMountpoint());
+
+ InstanceIdentifier<Equipment> equipmentIID = InstanceIdentifier.builder(Equipment.class).build();
+
+ return getGenericTransactionUtils().readData(coreData.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ equipmentIID);
+
+ }
+
+ /**
+ * specific toString()
+ */
+ @Override
+ public String toString() {
+ return "ONFCoreNetworkElement12Equipment [coreData=" + coreData + ", equipmentPac=" + equipmentPac
+ + ", extensions=" + extensionList + ", topLevelEqUuidList=" + topLevelEqUuidList + ", problemList="
+ + globalProblemList + ", equipmentList=" + globalEquipmentList + "]";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ValueNameList.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ValueNameList.java
new file mode 100644
index 000000000..b79d0aa2b
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/ValueNameList.java
@@ -0,0 +1,84 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment;
+
+import java.util.HashMap;
+import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.extension.g.Extension;
+
+/**
+ * ValueNameList is an access Wrapper to NETCONF Extension lists Class is a specialized HashMap.
+ */
+public class ValueNameList extends HashMap<String, String> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Create ValueNameList for NETCONF extensions
+ *
+ * @param extensionList Parameters as received from device. Could be null.
+ */
+ public void put(@Nullable List<Extension> extensionList) {
+
+ if (extensionList != null) {
+ String name;
+ String value;
+
+ for (Extension e : extensionList) {
+ name = e.getValueName();
+ value = e.getValue();
+ if (name != null && value != null) {
+ put(name, value);
+ }
+ }
+ }
+ }
+
+ /**
+ * Return value or null
+ *
+ * @param name key for element
+ * @return value if key exists; if not nul
+ */
+ public String getOrNull(String name) {
+ return containsKey(name) ? get(name) : null;
+ }
+
+ /**
+ * Get element as id list
+ *
+ * @param name key of element
+ * @param topLevelEqUuidList as input to add elements
+ * @return List<UniversalId>
+ */
+ public @NonNull List<UniversalId> getAsUniversalIdList(String name, List<UniversalId> topLevelEqUuidList) {
+ if (containsKey(name)) {
+ String[] result = get(name).split(",\\s*");
+ if (result.length > 0) {
+ for (String e : result) {
+ topLevelEqUuidList.add(new UniversalId(e));
+ }
+ }
+ }
+ return topLevelEqUuidList;
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/WrapperEquipmentPacRev170402.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/WrapperEquipmentPacRev170402.java
new file mode 100644
index 000000000..d0b4cc51a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/WrapperEquipmentPacRev170402.java
@@ -0,0 +1,101 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.OnfInterfacePac;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev181010;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.CurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.EquipmentPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.EquipmentPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.equipment.pac.EquipmentCurrentProblems;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class WrapperEquipmentPacRev170402 implements OnfInterfacePac {
+
+ private static final Logger LOG = LoggerFactory.getLogger(WrapperEquipmentPacRev170402.class);
+ public static final QName QNAME = EquipmentPac.QNAME;
+
+ private final NetconfBindingAccessor acessor;
+
+
+ public WrapperEquipmentPacRev170402(NetconfBindingAccessor acessor) {
+ this.acessor = acessor;
+ }
+
+ private TransactionUtils getGenericTransactionUtils() {
+ return acessor.getTransactionUtils();
+ }
+
+ /**
+ * Read problems of specific interfaces. TODO Goal for future implementation without usage of explicit new. Key is
+ * generated by newInstance() function here to verify this approach.
+ *
+ * @param interfacePacUuid Universal index of onf interface-pac
+ * @param resultList list to add, or null for new list.
+ * @return list of alarms
+ */
+ @Override
+ public @NonNull FaultData readTheFaults(@NonNull UniversalId interfacePacUuid, @NonNull FaultData resultList) {
+
+ final Class<EquipmentPac> clazzPac = EquipmentPac.class;
+ final Class<EquipmentPacKey> clazzPacKey = EquipmentPacKey.class;
+ final Class<EquipmentCurrentProblems> clazzProblems = EquipmentCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ acessor.getNodeId(), interfacePacUuid.getValue());
+
+ try {
+ // -- Specific part 1
+ Constructor<EquipmentPacKey> cons = clazzPacKey.getConstructor(UniversalId.class); // Avoid new()
+ InstanceIdentifier<EquipmentCurrentProblems> interfaceIID = InstanceIdentifier
+ .builder(clazzPac, cons.newInstance(interfacePacUuid)).child(clazzProblems).build();
+
+ // -- Specific part 2
+ EquipmentCurrentProblems problems = getGenericTransactionUtils().readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, interfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no {} name {}", interfacePacUuid, clazzProblems, clazzProblems.getName());
+ } else {
+ // -- Specific part 3
+ for (CurrentProblemTypeG problem : YangHelper.getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ WrapperMicrowaveModelRev181010.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ } catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
+ LOG.warn("Could not reade instance of MwTdmContainerPacKey: ", e);
+ }
+ return resultList;
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/Helper.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/Helper.java
new file mode 100644
index 000000000..98b55b3ae
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/Helper.java
@@ -0,0 +1,53 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.LayerProtocolName;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType;
+
+/**
+ * @author herbert
+ *
+ */
+public class Helper {
+
+ private static final @NonNull UniversalId DEFAULT_UniversalId = new UniversalId("Default");
+ private static final @NonNull LayerProtocolName DEFAULT_LayerProtocolName = new LayerProtocolName("default");
+ private static final @NonNull GranularityPeriodType DEFAULT_GranularityPeriodType = GranularityPeriodType.Unknown;
+ private static final @NonNull String DEFAULT_String = "";
+
+ public static @NonNull UniversalId nnGetUniversalId(@Nullable UniversalId x) {
+ return x == null ? DEFAULT_UniversalId : x;
+ }
+
+ public static @NonNull LayerProtocolName nnGetLayerProtocolName(@Nullable LayerProtocolName x) {
+ return x == null ? DEFAULT_LayerProtocolName : x;
+ }
+
+ public static @NonNull GranularityPeriodType nnGetGranularityPeriodType(@Nullable GranularityPeriodType x) {
+ return x == null ? DEFAULT_GranularityPeriodType : x;
+ }
+
+ public static @NonNull String nnGetString(@Nullable String x) {
+ return x == null ? DEFAULT_String : x;
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/LinkIdentifyingObject.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/LinkIdentifyingObject.java
new file mode 100644
index 000000000..97bf3fbe5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/LinkIdentifyingObject.java
@@ -0,0 +1,24 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave;
+
+public interface LinkIdentifyingObject {
+
+ public String getSignalId();
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/OnfMicrowaveModel.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/OnfMicrowaveModel.java
new file mode 100644
index 000000000..369dfd1d7
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/OnfMicrowaveModel.java
@@ -0,0 +1,56 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications.NotificationWorker;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.opendaylight.yangtools.yang.common.QName;
+
+public interface OnfMicrowaveModel {
+
+ public void readTheFaultsOfMicrowaveModel(ONFLayerProtocolName lpName, Class<?> lpClass, UniversalId uuid,
+ FaultData resultList);
+
+ public Class<?> getClassForLtpExtension(QName qName);
+
+ public <T extends NotificationListener> T getNotificationListener();
+
+ // -- Frankfurt below
+
+ /**
+ * Get performancedata from LTP
+ *
+ * @param lpName filter for layerprotocol
+ * @param lp to get pm from
+ * @return the pm data object
+ */
+ @NonNull
+ PerformanceDataLtp getLtpHistoricalPerformanceData(@NonNull ONFLayerProtocolName lpName, @NonNull Lp lp);
+
+ /** Set notificationqueue worker for specific notification that needs to be forwarded **/
+ void setNotificationQueue(NotificationWorker<EventlogEntity> notificationQueue);
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev170324.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev170324.java
new file mode 100644
index 000000000..6b32180d1
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev170324.java
@@ -0,0 +1,574 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave;
+
+
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.pm.PerformanceDataAirInterface170324Builder;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications.NotificationWorker;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.AirInterfaceCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.AirInterfaceDiversityCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.AirInterfaceHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ContainerCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ContainerHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MicrowaveModelListener;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfaceDiversityPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfaceDiversityPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfacePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwEthernetContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwEthernetContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwHybridMwStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwHybridMwStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwPureEthernetStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwPureEthernetStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwTdmContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwTdmContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.StructureCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.tdm.container.pac.TdmContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, MicrowaveModelListener {
+
+ private static final Logger LOG = LoggerFactory.getLogger(WrapperMicrowaveModelRev170324.class);
+
+ public static final QName QNAME = MwAirInterfacePac.QNAME;
+
+
+ private final NotificationService microwaveModelListener;
+ private final NetconfBindingAccessor acessor;
+ private final TransactionUtils genericTransactionUtils;
+ private final FaultService faultService;
+
+ private Optional<NotificationWorker<EventlogEntity>> notificationQueue;
+
+ private final WebsocketManagerService notificationService;
+
+ /**
+ * @param acessor to access device
+ */
+ public WrapperMicrowaveModelRev170324(@NonNull NetconfBindingAccessor acessor,
+ @NonNull DeviceManagerServiceProvider serviceProvider) {
+ this.acessor = acessor;
+ this.genericTransactionUtils = acessor.getTransactionUtils();
+ this.microwaveModelListener = serviceProvider.getNotificationService();
+ this.faultService = serviceProvider.getFaultService();
+ this.notificationService = serviceProvider.getWebsocketService();
+ this.notificationQueue = Optional.empty();
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Setter/Getter
+ */
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <T extends NotificationListener> T getNotificationListener() {
+ return (T) this;
+ }
+
+ @Override
+ public void setNotificationQueue(NotificationWorker<EventlogEntity> notificationQueue) {
+ this.notificationQueue = Optional.of(notificationQueue);
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Interface functions
+ */
+
+ @Override
+ public void readTheFaultsOfMicrowaveModel(ONFLayerProtocolName lpName, Class<?> lpClass, UniversalId uuid,
+ FaultData resultList) {
+
+ switch (lpName) {
+ case MWAIRINTERFACE:
+ readTheFaultsOfMwAirInterfacePac(uuid, resultList);
+ break;
+
+ case ETHERNETCONTAINER12:
+ readTheFaultsOfMwEthernetContainerPac(uuid, resultList);
+ break;
+
+ case TDMCONTAINER:
+ readTheFaultsOfMwTdmContainerPac(uuid, resultList);
+ break;
+
+ case STRUCTURE:
+ if (lpClass == MwHybridMwStructurePac.class) {
+ readTheFaultsOfMwHybridMwStructurePac(uuid, resultList);
+
+ } else if (lpClass == MwAirInterfaceDiversityPac.class) {
+ readTheFaultsOfMwAirInterfaceDiversityPac(uuid, resultList);
+
+ } else if (lpClass == MwPureEthernetStructurePac.class) {
+ readTheFaultsOfMwPureEthernetStructurePac(uuid, resultList);
+
+ } else {
+ LOG.warn("Unassigned lp model {} class {}", lpName, lpClass);
+ }
+ break;
+ case ETHERNET:
+ // No alarms supported
+ break;
+ case ETHERNETCONTAINER10:
+ default:
+ LOG.warn("Unassigned or not expected lp in model {}", lpName);
+ }
+ }
+
+ @Override
+ public @NonNull PerformanceDataLtp getLtpHistoricalPerformanceData(@NonNull ONFLayerProtocolName lpName,
+ @NonNull Lp lp) {
+ PerformanceDataLtp res = new PerformanceDataLtp();
+ readAirInterfacePerformanceData(lp, res);
+ readEthernetContainerPerformanceData(lp, res);
+ return res;
+ }
+
+
+ @Override
+ public Class<?> getClassForLtpExtension(QName qName) {
+ Class<?> res = null;
+ if (qName.equals(MwAirInterfacePac.QNAME)) {
+ res = MwAirInterfacePac.class;
+ } else if (qName.equals(MwAirInterfaceDiversityPac.QNAME)) {
+ res = MwAirInterfaceDiversityPac.class;
+ } else if (qName.equals(MwPureEthernetStructurePac.QNAME)) {
+ res = MwPureEthernetStructurePac.class;
+ } else if (qName.equals(MwHybridMwStructurePac.QNAME)) {
+ res = MwHybridMwStructurePac.class;
+ } else if (qName.equals(MwEthernetContainerPac.QNAME)) {
+ res = MwEthernetContainerPac.class;
+ } else if (qName.equals(MwTdmContainerPac.QNAME)) {
+ res = MwTdmContainerPac.class;
+ }
+ LOG.info("Found QName {} mapped to {}", String.valueOf(qName), String.valueOf(res));
+ return res;
+ }
+
+ @Override
+ public void onObjectCreationNotification(ObjectCreationNotification notification) {
+ LOG.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
+ if (notification != null) {
+ microwaveModelListener.creationNotification(acessor.getNodeId(), notification.getCounter(),
+ notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+ notificationService.sendNotification(notification, acessor.getNodeId().getValue(),
+ ObjectCreationNotification.QNAME, notification.getTimeStamp());
+ }
+ }
+
+ @Override
+ public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
+ LOG.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
+ if (notification != null) {
+ microwaveModelListener.deletionNotification(acessor.getNodeId(), notification.getCounter(),
+ notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+ notificationService.sendNotification(notification, acessor.getNodeId().getValue(),
+ ObjectDeletionNotification.QNAME, notification.getTimeStamp());
+ }
+ }
+
+ @Override
+ public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
+ LOG.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
+ EventlogEntity beventlogEntity = new EventlogBuilder().setNodeId(acessor.getNodeId().getValue())
+ .setCounter(notification.getCounter()).setTimestamp(notification.getTimeStamp())
+ .setObjectId(Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue())
+ .setAttributeName(notification.getAttributeName()).setNewValue(notification.getNewValue()).build();
+ microwaveModelListener.eventNotification(beventlogEntity);
+ notificationService.sendNotification(notification, acessor.getNodeId().getValue(),
+ AttributeValueChangedNotification.QNAME, notification.getTimeStamp());
+ if (notificationQueue.isPresent()) {
+ notificationQueue.get().put(beventlogEntity);
+ }
+ }
+
+ @Override
+ public void onProblemNotification(ProblemNotification notification) {
+
+ LOG.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
+ FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
+ .setProblem(notification.getProblem()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimeStamp())
+ .setNodeId(this.acessor.getNodeId().getValue())
+ .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter())
+ .build();
+ faultService.faultNotification(faultAlarm);
+ notificationService.sendNotification(notification, acessor.getNodeId().getValue(), ProblemNotification.QNAME,
+ notification.getTimeStamp());
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Reading problems for specific interface pacs
+ */
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal Id String of the interface
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwAirInterfacePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwAirInterfacePac> clazzPac = MwAirInterfacePac.class;
+
+ String mountpointId = acessor.getNodeId().getValue();
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceCurrentProblems> mwAirInterfaceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(interfacePacUuid))
+ .child(AirInterfaceCurrentProblems.class).build();
+
+ // Step 2.3: read to the config data store
+ AirInterfaceCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwAirInterfaceIID);
+
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no AirInterfaceCurrentProblems", interfacePacUuid);
+ } else {
+ for (AirInterfaceCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwEthernetContainerPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwEthernetContainerPac> clazzPac = MwEthernetContainerPac.class;
+
+ String mountpointId = acessor.getNodeId().getValue();
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<EthernetContainerCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(interfacePacUuid))
+ .child(EthernetContainerCurrentProblems.class).build();
+
+ EthernetContainerCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no EthernetContainerCurrentProblems", interfacePacUuid);
+ } else {
+ for (ContainerCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwAirInterfaceDiversityPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwAirInterfaceDiversityPac> clazzPac = MwAirInterfaceDiversityPac.class;
+ final Class<AirInterfaceDiversityCurrentProblems> clazzProblems = AirInterfaceDiversityCurrentProblems.class;
+
+ String mountpointId = acessor.getNodeId().getValue();
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<AirInterfaceDiversityCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwAirInterfaceDiversityPacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ AirInterfaceDiversityCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no AirInterfaceDiversityCurrentProblems", interfacePacUuid);
+ } else {
+ for (AirInterfaceDiversityCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwPureEthernetStructurePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwPureEthernetStructurePac> clazzPac = MwPureEthernetStructurePac.class;
+ final Class<PureEthernetStructureCurrentProblems> clazzProblems = PureEthernetStructureCurrentProblems.class;
+
+ String mountpointId = acessor.getNodeId().getValue();
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<PureEthernetStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwPureEthernetStructurePacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ PureEthernetStructureCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no PureEthernetStructureCurrentProblems", interfacePacUuid);
+ } else {
+ for (StructureCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwHybridMwStructurePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwHybridMwStructurePac> clazzPac = MwHybridMwStructurePac.class;
+ final Class<HybridMwStructureCurrentProblems> clazzProblems = HybridMwStructureCurrentProblems.class;
+
+ String mountpointId = acessor.getNodeId().getValue();
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<HybridMwStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwHybridMwStructurePacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ HybridMwStructureCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no HybridMwStructureCurrentProblems", interfacePacUuid);
+ } else {
+ for (StructureCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces. TODO Goal for future implementation without usage of explicit new. Key is
+ * generated by newInstance() function here to verify this approach.
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ * @throws SecurityException
+ * @throws NoSuchMethodException
+ * @throws InvocationTargetException
+ * @throws IllegalArgumentException
+ * @throws IllegalAccessException
+ * @throws InstantiationException
+ */
+ private FaultData readTheFaultsOfMwTdmContainerPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwTdmContainerPac> clazzPac = MwTdmContainerPac.class;
+ final Class<MwTdmContainerPacKey> clazzPacKey = MwTdmContainerPacKey.class;
+ final Class<TdmContainerCurrentProblems> clazzProblems = TdmContainerCurrentProblems.class;
+
+ String mountpointId = acessor.getNodeId().getValue();
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ try {
+ // -- Specific part 1
+ Constructor<MwTdmContainerPacKey> cons = clazzPacKey.getConstructor(UniversalId.class); // Avoid new()
+ InstanceIdentifier<TdmContainerCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, cons.newInstance(interfacePacUuid)).child(clazzProblems).build();
+
+ // -- Specific part 2
+ TdmContainerCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no TdmContainerCurrentProblems", interfacePacUuid);
+ } else {
+ // -- Specific part 3
+ for (ContainerCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ } catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
+ LOG.warn("Could not reade instance of MwTdmContainerPacKey: ", e);
+ }
+ return resultList;
+ }
+
+ /**
+ * Read and add performance data
+ *
+ * @param lp to read from
+ * @param result Object to be filled with data
+ * @return result
+ */
+ private @NonNull PerformanceDataLtp readAirInterfacePerformanceData(Lp lp, PerformanceDataLtp result) {
+
+ LOG.debug("DBRead Get {} MWAirInterfacePac: {}", acessor.getNodeId(), lp.getUuid());
+ // ----
+ UniversalId mwAirInterfacePacuuId = lp.getUuid();
+ // Step 2.1: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceConfiguration> mwAirInterfaceConfigurationIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(mwAirInterfacePacuuId))
+ .child(AirInterfaceConfiguration.class).build();
+ AirInterfaceConfiguration airConfiguration = acessor.getTransactionUtils().readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwAirInterfaceConfigurationIID);
+
+ if (airConfiguration == null) {
+ LOG.debug("DBRead MWAirInterfacePac Id {} no AirInterfaceConfiguration", mwAirInterfacePacuuId);
+
+ } else {
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceHistoricalPerformances> mwAirInterfaceHistoricalPerformanceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(mwAirInterfacePacuuId))
+ .child(AirInterfaceHistoricalPerformances.class).build();
+
+ // Step 2.3: read to the config data store
+ AirInterfaceHistoricalPerformances airHistoricalPerformanceData = genericTransactionUtils.readData(
+ acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwAirInterfaceHistoricalPerformanceIID);
+
+ if (airHistoricalPerformanceData == null) {
+ LOG.debug("DBRead MWAirInterfacePac Id {} no AirInterfaceHistoricalPerformances",
+ mwAirInterfacePacuuId);
+ } else {
+ // org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170320.air._interface.historical.performances.g.HistoricalPerformanceDataList
+ Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ YangHelper.getCollection(airHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
+ LOG.debug("DBRead MWAirInterfacePac Id {} Records intermediate: {}", mwAirInterfacePacuuId,
+ airHistPMList.size());
+ for (AirInterfaceHistoricalPerformanceTypeG pmRecord : airHistPMList) {
+ result.add(new PerformanceDataAirInterface170324Builder(acessor.getNodeId(), lp, pmRecord,
+ airConfiguration));
+ }
+ }
+ }
+ LOG.debug("DBRead MWAirInterfacePac Id {} Records result: {}", mwAirInterfacePacuuId, result.size());
+ return result;
+ }
+
+
+ private @NonNull PerformanceDataLtp readEthernetContainerPerformanceData(Lp lp, PerformanceDataLtp result) {
+ final String myName = "MWEthernetContainerPac";
+
+ String mountpointId = acessor.getNodeId().getValue();
+
+ LOG.debug("DBRead Get {} : {}", mountpointId, myName, lp.getUuid());
+ // ----
+ UniversalId ethContainerPacuuId = lp.getUuid();
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<EthernetContainerHistoricalPerformances> ethContainerIID = InstanceIdentifier
+ .builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(ethContainerPacuuId))
+ .child(EthernetContainerHistoricalPerformances.class).build();
+
+ // Step 2.3: read to the config data store
+ EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData = acessor.getTransactionUtils()
+ .readData(acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, ethContainerIID);
+
+ if (ethContainerHistoricalPerformanceData == null) {
+ LOG.debug("DBRead {} Id {} no HistoricalPerformances", myName, ethContainerPacuuId);
+ } else {
+ Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ YangHelper.getCollection(
+ ethContainerHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
+ LOG.debug("DBRead {} Id {} Records intermediate: {}", myName, ethContainerPacuuId, airHistPMList.size());
+ for (ContainerHistoricalPerformanceTypeG pmRecord : airHistPMList) {
+ result.add(new PerformanceDataAirInterface170324Builder(acessor.getNodeId(), lp, pmRecord));
+ }
+ }
+ LOG.debug("DBRead {} Id {} Records result: {}", myName, ethContainerPacuuId, result.size());
+ return result;
+ }
+
+ private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType mapSeverity(
+ SeverityType severity) {
+
+ Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType> res =
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType
+ .forName(severity.name());
+ return res.orElse(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType.NonAlarmed);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev180907.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev180907.java
new file mode 100644
index 000000000..04d72e1fa
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev180907.java
@@ -0,0 +1,573 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave;
+
+
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.pm.PerformanceDataAirInterface180907Builder;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications.NotificationWorker;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.AirInterfaceCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.AirInterfaceDiversityCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.AirInterfaceHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ContainerCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ContainerHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MicrowaveModelListener;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfaceDiversityPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfaceDiversityPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfacePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwEthernetContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwEthernetContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwHybridMwStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwHybridMwStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwPureEthernetStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwPureEthernetStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwTdmContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwTdmContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.StructureCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.tdm.container.pac.TdmContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class WrapperMicrowaveModelRev180907 implements OnfMicrowaveModel, MicrowaveModelListener {
+
+ private static final Logger LOG = LoggerFactory.getLogger(WrapperMicrowaveModelRev180907.class);
+
+ public static final QName QNAME = MwAirInterfacePac.QNAME;
+
+
+ private final NotificationService microwaveModelListener;
+ private final NetconfBindingAccessor acessor;
+ private final TransactionUtils genericTransactionUtil;
+ private final String mountpointId;
+ private final @NonNull FaultService faultService;
+ private final WebsocketManagerService notificationService;
+
+ private Optional<NotificationWorker<EventlogEntity>> notificationQueue;
+
+
+
+ /**
+ * Handle specific version of microwave model
+ *
+ * @param acessor to access device
+ * @param serviceProvider for devicemanager services
+ */
+ public WrapperMicrowaveModelRev180907(@NonNull NetconfBindingAccessor acessor,
+ @NonNull DeviceManagerServiceProvider serviceProvider) {
+ this.acessor = acessor;
+ this.mountpointId = acessor.getNodeId().getValue();
+ this.genericTransactionUtil = acessor.getTransactionUtils();
+ this.microwaveModelListener = serviceProvider.getNotificationService();
+ this.faultService = serviceProvider.getFaultService();
+ this.notificationService = serviceProvider.getWebsocketService();
+ this.notificationQueue = Optional.empty();
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Setter/Getter
+ */
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <T extends NotificationListener> T getNotificationListener() {
+ return (T) this;
+ }
+
+ @Override
+ public void setNotificationQueue(NotificationWorker<EventlogEntity> notificationQueue) {
+ this.notificationQueue = Optional.of(notificationQueue);
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Interfacefunctions
+ */
+
+ @Override
+ public void readTheFaultsOfMicrowaveModel(ONFLayerProtocolName lpName, Class<?> lpClass, UniversalId uuid,
+ FaultData resultList) {
+
+ switch (lpName) {
+ case MWAIRINTERFACE:
+ readTheFaultsOfMwAirInterfacePac(uuid, resultList);
+ break;
+
+ case ETHERNETCONTAINER12:
+ readTheFaultsOfMwEthernetContainerPac(uuid, resultList);
+ break;
+
+ case TDMCONTAINER:
+ readTheFaultsOfMwTdmContainerPac(uuid, resultList);
+ break;
+
+ case STRUCTURE:
+ if (lpClass == MwHybridMwStructurePac.class) {
+ readTheFaultsOfMwHybridMwStructurePac(uuid, resultList);
+
+ } else if (lpClass == MwAirInterfaceDiversityPac.class) {
+ readTheFaultsOfMwAirInterfaceDiversityPac(uuid, resultList);
+
+ } else if (lpClass == MwPureEthernetStructurePac.class) {
+ readTheFaultsOfMwPureEthernetStructurePac(uuid, resultList);
+
+ } else {
+ LOG.warn("Unassigned lp model {} class {}", lpName, lpClass);
+ }
+ break;
+ case ETHERNET:
+ // No alarms supported
+ break;
+ case ETHERNETCONTAINER10:
+ default:
+ LOG.warn("Unassigned or not expected lp in model {}", lpName);
+ }
+ }
+
+ @Override
+ public @NonNull PerformanceDataLtp getLtpHistoricalPerformanceData(@NonNull ONFLayerProtocolName lpName,
+ @NonNull Lp lp) {
+ PerformanceDataLtp res = new PerformanceDataLtp();
+ switch (lpName) {
+ case MWAIRINTERFACE:
+ readAirInterfacePerformanceData(lp, res);
+ break;
+
+ case ETHERNETCONTAINER12:
+ readEthernetContainerPerformanceData(lp, res);
+ break;
+
+ case ETHERNETCONTAINER10:
+ case ETHERNETPHYSICAL:
+ case ETHERNET:
+ case TDMCONTAINER:
+ case STRUCTURE:
+ case UNKNOWN:
+ LOG.debug("Do not read HistoricalPM data for {} {}", lpName,
+ Helper.nnGetUniversalId(lp.getUuid()).getValue());
+ break;
+ }
+ return res;
+ }
+
+ @Override
+ public Class<?> getClassForLtpExtension(QName qName) {
+ Class<?> res = null;
+ if (qName.equals(MwAirInterfacePac.QNAME)) {
+ res = MwAirInterfacePac.class;
+ } else if (qName.equals(MwAirInterfaceDiversityPac.QNAME)) {
+ res = MwAirInterfaceDiversityPac.class;
+ } else if (qName.equals(MwPureEthernetStructurePac.QNAME)) {
+ res = MwPureEthernetStructurePac.class;
+ } else if (qName.equals(MwHybridMwStructurePac.QNAME)) {
+ res = MwHybridMwStructurePac.class;
+ } else if (qName.equals(MwEthernetContainerPac.QNAME)) {
+ res = MwEthernetContainerPac.class;
+ } else if (qName.equals(MwTdmContainerPac.QNAME)) {
+ res = MwTdmContainerPac.class;
+ }
+ LOG.info("Found QName {} mapped to {}", String.valueOf(qName), String.valueOf(res));
+ return res;
+ }
+
+ @Override
+ public void onObjectCreationNotification(ObjectCreationNotification notification) {
+ LOG.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
+ if (notification != null) {
+ microwaveModelListener.creationNotification(acessor.getNodeId(), notification.getCounter(),
+ notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+ }
+ }
+
+ @Override
+ public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
+ LOG.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
+ if (notification != null) {
+ microwaveModelListener.deletionNotification(acessor.getNodeId(), notification.getCounter(),
+ notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+ }
+ }
+
+ @Override
+ public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
+ LOG.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
+ EventlogEntity beventlogEntity = new EventlogBuilder().setNodeId(acessor.getNodeId().getValue())
+ .setCounter(notification.getCounter()).setTimestamp(notification.getTimeStamp())
+ .setObjectId(Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue())
+ .setAttributeName(notification.getAttributeName()).setNewValue(notification.getNewValue()).build();
+ microwaveModelListener.eventNotification(beventlogEntity);
+ if (notificationQueue.isPresent()) {
+ notificationQueue.get().put(beventlogEntity);
+ }
+ }
+
+ @Override
+ public void onProblemNotification(ProblemNotification notification) {
+
+ LOG.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
+ FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
+ .setProblem(notification.getProblem()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimeStamp())
+ .setNodeId(this.acessor.getNodeId().getValue())
+ .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter())
+ .build();
+ faultService.faultNotification(faultAlarm);
+ notificationService.sendNotification(notification, acessor.getNodeId().getValue(), ProblemNotification.QNAME,
+ notification.getTimeStamp());
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Reading problems for specific interface pacs
+ */
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal Id String of the interface
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwAirInterfacePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwAirInterfacePac> clazzPac = MwAirInterfacePac.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceCurrentProblems> mwAirInterfaceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(interfacePacUuid))
+ .child(AirInterfaceCurrentProblems.class).build();
+
+ // Step 2.3: read to the config data store
+ AirInterfaceCurrentProblems problems = genericTransactionUtil.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwAirInterfaceIID);
+
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no AirInterfaceCurrentProblems", interfacePacUuid);
+ } else {
+ for (AirInterfaceCurrentProblemTypeG problem : YangHelper.getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwEthernetContainerPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwEthernetContainerPac> clazzPac = MwEthernetContainerPac.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<EthernetContainerCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(interfacePacUuid))
+ .child(EthernetContainerCurrentProblems.class).build();
+
+ EthernetContainerCurrentProblems problems = genericTransactionUtil.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no EthernetContainerCurrentProblems", interfacePacUuid);
+ } else {
+ for (ContainerCurrentProblemTypeG problem : YangHelper.getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwAirInterfaceDiversityPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwAirInterfaceDiversityPac> clazzPac = MwAirInterfaceDiversityPac.class;
+ final Class<AirInterfaceDiversityCurrentProblems> clazzProblems = AirInterfaceDiversityCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<AirInterfaceDiversityCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwAirInterfaceDiversityPacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ AirInterfaceDiversityCurrentProblems problems = genericTransactionUtil.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no AirInterfaceDiversityCurrentProblems", interfacePacUuid);
+ } else {
+ for (AirInterfaceDiversityCurrentProblemTypeG problem : YangHelper.getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwPureEthernetStructurePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwPureEthernetStructurePac> clazzPac = MwPureEthernetStructurePac.class;
+ final Class<PureEthernetStructureCurrentProblems> clazzProblems = PureEthernetStructureCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<PureEthernetStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwPureEthernetStructurePacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ PureEthernetStructureCurrentProblems problems = genericTransactionUtil.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no PureEthernetStructureCurrentProblems", interfacePacUuid);
+ } else {
+ for (StructureCurrentProblemTypeG problem : YangHelper.getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwHybridMwStructurePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwHybridMwStructurePac> clazzPac = MwHybridMwStructurePac.class;
+ final Class<HybridMwStructureCurrentProblems> clazzProblems = HybridMwStructureCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<HybridMwStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwHybridMwStructurePacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ HybridMwStructureCurrentProblems problems = genericTransactionUtil.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no HybridMwStructureCurrentProblems", interfacePacUuid);
+ } else {
+ for (StructureCurrentProblemTypeG problem : YangHelper.getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces. TODO Goal for future implementation without usage of explicit new. Key is
+ * generated by newInstance() function here to verify this approach.
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ * @throws SecurityException
+ * @throws NoSuchMethodException
+ * @throws InvocationTargetException
+ * @throws IllegalArgumentException
+ * @throws IllegalAccessException
+ * @throws InstantiationException
+ */
+ private FaultData readTheFaultsOfMwTdmContainerPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwTdmContainerPac> clazzPac = MwTdmContainerPac.class;
+ final Class<MwTdmContainerPacKey> clazzPacKey = MwTdmContainerPacKey.class;
+ final Class<TdmContainerCurrentProblems> clazzProblems = TdmContainerCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ try {
+ // -- Specific part 1
+ Constructor<MwTdmContainerPacKey> cons = clazzPacKey.getConstructor(UniversalId.class); // Avoid new()
+ InstanceIdentifier<TdmContainerCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, cons.newInstance(interfacePacUuid)).child(clazzProblems).build();
+
+ // -- Specific part 2
+ TdmContainerCurrentProblems problems = genericTransactionUtil.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no TdmContainerCurrentProblems", interfacePacUuid);
+ } else {
+ // -- Specific part 3
+ for (ContainerCurrentProblemTypeG problem : YangHelper.getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ } catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
+ LOG.warn("Could not reade instance of MwTdmContainerPacKey: ", e);
+ }
+ return resultList;
+ }
+
+ /**
+ * Read and add performance data
+ *
+ * @param lp to read from
+ * @param result Object to be filled with data
+ * @return result
+ */
+ private @NonNull PerformanceDataLtp readAirInterfacePerformanceData(Lp lp, PerformanceDataLtp result) {
+
+ LOG.debug("DBRead Get {} MWAirInterfacePac: {}", acessor.getNodeId(), lp.getUuid());
+ // ----
+ UniversalId mwAirInterfacePacuuId = lp.getUuid();
+ // Step 2.1: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceConfiguration> mwAirInterfaceConfigurationIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(mwAirInterfacePacuuId))
+ .child(AirInterfaceConfiguration.class).build();
+ AirInterfaceConfiguration airConfiguration = acessor.getTransactionUtils().readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwAirInterfaceConfigurationIID);
+
+ if (airConfiguration == null) {
+ LOG.debug("DBRead MWAirInterfacePac Id {} no AirInterfaceConfiguration", mwAirInterfacePacuuId);
+
+ } else {
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceHistoricalPerformances> mwAirInterfaceHistoricalPerformanceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(mwAirInterfacePacuuId))
+ .child(AirInterfaceHistoricalPerformances.class).build();
+
+ // Step 2.3: read to the config data store
+ AirInterfaceHistoricalPerformances airHistoricalPerformanceData = acessor.getTransactionUtils().readData(
+ acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwAirInterfaceHistoricalPerformanceIID);
+
+ if (airHistoricalPerformanceData == null) {
+ LOG.debug("DBRead MWAirInterfacePac Id {} no AirInterfaceHistoricalPerformances",
+ mwAirInterfacePacuuId);
+ } else {
+ // org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170320.air._interface.historical.performances.g.HistoricalPerformanceDataList
+ Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ YangHelper.getCollection(airHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
+ LOG.debug("DBRead MWAirInterfacePac Id {} Records intermediate: {}", mwAirInterfacePacuuId,
+ airHistPMList.size());
+ for (AirInterfaceHistoricalPerformanceTypeG pmRecord : airHistPMList) {
+ result.add(new PerformanceDataAirInterface180907Builder(acessor.getNodeId(), lp, pmRecord,
+ airConfiguration));
+ }
+ }
+ }
+ LOG.debug("DBRead MWAirInterfacePac Id {} Records result: {}", mwAirInterfacePacuuId, result.size());
+ return result;
+ }
+
+ private @NonNull PerformanceDataLtp readEthernetContainerPerformanceData(Lp lp, PerformanceDataLtp result) {
+ final String myName = "MWEthernetContainerPac";
+
+ LOG.debug("DBRead Get {} : {}", myName, lp.getUuid());
+ // ----
+ UniversalId ethContainerPacuuId = lp.getUuid();
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<EthernetContainerHistoricalPerformances> ethContainerIID = InstanceIdentifier
+ .builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(ethContainerPacuuId))
+ .child(EthernetContainerHistoricalPerformances.class).build();
+
+ // Step 2.3: read to the config data store
+ EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData = acessor.getTransactionUtils()
+ .readData(acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, ethContainerIID);
+
+ if (ethContainerHistoricalPerformanceData == null) {
+ LOG.debug("DBRead {} Id {} no HistoricalPerformances", myName, ethContainerPacuuId);
+ } else {
+ Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ YangHelper.getCollection(ethContainerHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
+ LOG.debug("DBRead {} Id {} Records intermediate: {}", myName, ethContainerPacuuId, airHistPMList.size());
+ for (ContainerHistoricalPerformanceTypeG pmRecord : airHistPMList) {
+ result.add(new PerformanceDataAirInterface180907Builder(acessor.getNodeId(), lp, pmRecord));
+ }
+ }
+ LOG.debug("DBRead {} Id {} Records result: {}", myName, ethContainerPacuuId, result.size());
+ return result;
+ }
+
+ private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType mapSeverity(
+ SeverityType severity) {
+
+ Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType> res =
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType
+ .forName(severity.name());
+ return res.orElse(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType.NonAlarmed);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev181010.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev181010.java
new file mode 100644
index 000000000..623fa6220
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/WrapperMicrowaveModelRev181010.java
@@ -0,0 +1,591 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave;
+
+
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.pm.PerformanceDataAirInterface181010Builder;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications.NotificationWorker;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.AirInterfaceCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.AirInterfaceDiversityCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.AirInterfaceHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ContainerCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ContainerHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MicrowaveModelListener;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfaceDiversityPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfaceDiversityPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfacePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwEthernetContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwEthernetContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwHybridMwStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwHybridMwStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwPureEthernetStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwPureEthernetStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwTdmContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwTdmContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.StructureCurrentProblemTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.tdm.container.pac.TdmContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class WrapperMicrowaveModelRev181010 implements OnfMicrowaveModel, MicrowaveModelListener {
+
+ private static final Logger LOG = LoggerFactory.getLogger(WrapperMicrowaveModelRev181010.class);
+
+ public static final QName QNAME = MwAirInterfacePac.QNAME;
+
+
+ private final NetconfBindingAccessor acessor;
+ private final NotificationService microwaveModelListener;
+ private final TransactionUtils genericTransactionUtils;
+ private final String mountpointId;
+ private final @NonNull FaultService faultService;
+ private final WebsocketManagerService notificationService;
+
+ private Optional<NotificationWorker<EventlogEntity>> notificationQueue;
+
+ /**
+ * Handle specific version of microwave model
+ *
+ * @param acessor to access device
+ * @param serviceProvider for devicemanager services
+ */
+ public WrapperMicrowaveModelRev181010(@NonNull NetconfBindingAccessor acessor,
+ @NonNull DeviceManagerServiceProvider serviceProvider) {
+ this.acessor = acessor;
+ this.genericTransactionUtils = acessor.getTransactionUtils();
+ this.mountpointId = acessor.getNodeId().getValue();
+ this.microwaveModelListener = serviceProvider.getNotificationService();
+ this.faultService = serviceProvider.getFaultService();
+ this.notificationService = serviceProvider.getWebsocketService();
+ this.notificationQueue = Optional.empty();
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Setter/Getter
+ */
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <T extends NotificationListener> T getNotificationListener() {
+ return (T) this;
+ }
+
+ @Override
+ public void setNotificationQueue(NotificationWorker<EventlogEntity> notificationQueue) {
+ this.notificationQueue = Optional.of(notificationQueue);
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Interfacefunctions
+ */
+
+ @Override
+ public void readTheFaultsOfMicrowaveModel(ONFLayerProtocolName lpName, Class<?> lpClass, UniversalId uuid,
+ FaultData resultList) {
+
+ switch (lpName) {
+ case MWAIRINTERFACE:
+ readTheFaultsOfMwAirInterfacePac(uuid, resultList);
+ break;
+
+ case ETHERNETCONTAINER12:
+ readTheFaultsOfMwEthernetContainerPac(uuid, resultList);
+ break;
+
+ case TDMCONTAINER:
+ readTheFaultsOfMwTdmContainerPac(uuid, resultList);
+ break;
+
+ case STRUCTURE:
+ if (lpClass == MwHybridMwStructurePac.class) {
+ readTheFaultsOfMwHybridMwStructurePac(uuid, resultList);
+
+ } else if (lpClass == MwAirInterfaceDiversityPac.class) {
+ readTheFaultsOfMwAirInterfaceDiversityPac(uuid, resultList);
+
+ } else if (lpClass == MwPureEthernetStructurePac.class) {
+ readTheFaultsOfMwPureEthernetStructurePac(uuid, resultList);
+
+ } else {
+ LOG.warn("Unassigned lp model {} class {}", lpName, lpClass);
+ }
+ break;
+ case ETHERNET:
+ // No alarms supported
+ break;
+ case ETHERNETCONTAINER10:
+ default:
+ LOG.warn("Unassigned or not expected lp in model {}", lpName);
+ }
+ }
+
+ @Override
+ public @NonNull PerformanceDataLtp getLtpHistoricalPerformanceData(@NonNull ONFLayerProtocolName lpName,
+ @NonNull Lp lp) {
+ PerformanceDataLtp res = new PerformanceDataLtp();
+ switch (lpName) {
+ case MWAIRINTERFACE:
+ return readAirInterfacePerformanceData(lp, res);
+
+ case ETHERNETCONTAINER12:
+ return readEthernetContainerPerformanceData(lp, res);
+
+ case ETHERNETCONTAINER10:
+ case ETHERNETPHYSICAL:
+ case ETHERNET:
+ case TDMCONTAINER:
+ case STRUCTURE:
+ case UNKNOWN:
+ LOG.debug("Do not read HistoricalPM data for {} {}", lpName,
+ Helper.nnGetUniversalId(lp.getUuid()).getValue());
+ }
+ return res;
+ }
+
+ @Override
+ public Class<?> getClassForLtpExtension(QName qName) {
+ Class<?> res = null;
+ if (qName.equals(MwAirInterfacePac.QNAME)) {
+ res = MwAirInterfacePac.class;
+ } else if (qName.equals(MwAirInterfaceDiversityPac.QNAME)) {
+ res = MwAirInterfaceDiversityPac.class;
+ } else if (qName.equals(MwPureEthernetStructurePac.QNAME)) {
+ res = MwPureEthernetStructurePac.class;
+ } else if (qName.equals(MwHybridMwStructurePac.QNAME)) {
+ res = MwHybridMwStructurePac.class;
+ } else if (qName.equals(MwEthernetContainerPac.QNAME)) {
+ res = MwEthernetContainerPac.class;
+ } else if (qName.equals(MwTdmContainerPac.QNAME)) {
+ res = MwTdmContainerPac.class;
+ }
+ LOG.info("Found QName {} mapped to {}", String.valueOf(qName), String.valueOf(res));
+ return res;
+ }
+
+ @Override
+ public void onObjectCreationNotification(ObjectCreationNotification notification) {
+ LOG.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
+ if (notification != null) {
+ microwaveModelListener.creationNotification(acessor.getNodeId(), notification.getCounter(),
+ notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+ }
+ }
+
+ @Override
+ public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
+ LOG.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
+ if (notification != null) {
+ microwaveModelListener.deletionNotification(acessor.getNodeId(), notification.getCounter(),
+ notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+ }
+ }
+
+ @Override
+ public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
+ LOG.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
+ EventlogEntity beventlogEntity = new EventlogBuilder().setNodeId(acessor.getNodeId().getValue())
+ .setCounter(notification.getCounter()).setTimestamp(notification.getTimeStamp())
+ .setObjectId(Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue())
+ .setAttributeName(notification.getAttributeName()).setNewValue(notification.getNewValue()).build();
+ microwaveModelListener.eventNotification(beventlogEntity);
+ if (notificationQueue.isPresent()) {
+ notificationQueue.get().put(beventlogEntity);
+ }
+ }
+
+ @Override
+ public void onProblemNotification(ProblemNotification notification) {
+
+ LOG.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
+ FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
+ .setProblem(notification.getProblem()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimeStamp())
+ .setNodeId(this.acessor.getNodeId().getValue())
+ .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter())
+ .build();
+ faultService.faultNotification(faultAlarm);
+ notificationService.sendNotification(notification, acessor.getNodeId().getValue(), ProblemNotification.QNAME,
+ notification.getTimeStamp());
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Reading problems for specific interface pacs
+ */
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal Id String of the interface
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwAirInterfacePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwAirInterfacePac> clazzPac = MwAirInterfacePac.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceCurrentProblems> mwAirInterfaceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(interfacePacUuid))
+ .child(AirInterfaceCurrentProblems.class).build();
+
+ // Step 2.3: read to the config data store
+ AirInterfaceCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwAirInterfaceIID);
+
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no AirInterfaceCurrentProblems", interfacePacUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ LOG.debug("DBRead Id {} empty CurrentProblemList", interfacePacUuid);
+ } else {
+ for (AirInterfaceCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwEthernetContainerPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwEthernetContainerPac> clazzPac = MwEthernetContainerPac.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<EthernetContainerCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(interfacePacUuid))
+ .child(EthernetContainerCurrentProblems.class).build();
+
+ EthernetContainerCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no EthernetContainerCurrentProblems", interfacePacUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ LOG.debug("DBRead Id {} empty CurrentProblemsList", interfacePacUuid);
+ } else {
+ for (ContainerCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwAirInterfaceDiversityPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwAirInterfaceDiversityPac> clazzPac = MwAirInterfaceDiversityPac.class;
+ final Class<AirInterfaceDiversityCurrentProblems> clazzProblems = AirInterfaceDiversityCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<AirInterfaceDiversityCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwAirInterfaceDiversityPacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ AirInterfaceDiversityCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no AirInterfaceDiversityCurrentProblems", interfacePacUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ LOG.debug("DBRead Id {} empty CurrentProblemList", interfacePacUuid);
+ } else {
+ for (AirInterfaceDiversityCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwPureEthernetStructurePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwPureEthernetStructurePac> clazzPac = MwPureEthernetStructurePac.class;
+ final Class<PureEthernetStructureCurrentProblems> clazzProblems = PureEthernetStructureCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<PureEthernetStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwPureEthernetStructurePacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ PureEthernetStructureCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no PureEthernetStructureCurrentProblems", interfacePacUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ LOG.debug("DBRead Id {} empty CurrentProblemsList", interfacePacUuid);
+ } else {
+ for (StructureCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ */
+ private FaultData readTheFaultsOfMwHybridMwStructurePac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwHybridMwStructurePac> clazzPac = MwHybridMwStructurePac.class;
+ final Class<HybridMwStructureCurrentProblems> clazzProblems = HybridMwStructureCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ InstanceIdentifier<HybridMwStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwHybridMwStructurePacKey(interfacePacUuid)).child(clazzProblems).build();
+
+ HybridMwStructureCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no HybridMwStructureCurrentProblems", interfacePacUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ LOG.debug("DBRead Id {} empty CurrentProblemsList", interfacePacUuid);
+ } else {
+ for (StructureCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ return resultList;
+ }
+
+ /**
+ * Read problems of specific interfaces. TODO Goal for future implementation without usage of explicit new. Key is
+ * generated by newInstance() function here to verify this approach.
+ *
+ * @param uuId Universal index of Interfacepac
+ * @return number of alarms
+ * @throws SecurityException
+ * @throws NoSuchMethodException
+ * @throws InvocationTargetException
+ * @throws IllegalArgumentException
+ * @throws IllegalAccessException
+ * @throws InstantiationException
+ */
+ private FaultData readTheFaultsOfMwTdmContainerPac(UniversalId interfacePacUuid, FaultData resultList) {
+
+ final Class<MwTdmContainerPac> clazzPac = MwTdmContainerPac.class;
+ final Class<MwTdmContainerPacKey> clazzPacKey = MwTdmContainerPacKey.class;
+ final Class<TdmContainerCurrentProblems> clazzProblems = TdmContainerCurrentProblems.class;
+
+ LOG.info("DBRead Get problems for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ mountpointId, interfacePacUuid.getValue());
+
+ try {
+ // -- Specific part 1
+ Constructor<MwTdmContainerPacKey> cons = clazzPacKey.getConstructor(UniversalId.class); // Avoid new()
+ InstanceIdentifier<TdmContainerCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, cons.newInstance(interfacePacUuid)).child(clazzProblems).build();
+
+ // -- Specific part 2
+ TdmContainerCurrentProblems problems = genericTransactionUtils.readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID);
+ if (problems == null) {
+ LOG.debug("DBRead Id {} no TdmContainerCurrentProblems", interfacePacUuid);
+ } else {
+ // -- Specific part 3
+ for (ContainerCurrentProblemTypeG problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
+ interfacePacUuid.getValue(), problem.getProblemName(),
+ mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ } catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException e) {
+ LOG.warn("Could not reade instance of MwTdmContainerPacKey: ", e);
+ }
+ return resultList;
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Performance related data
+ */
+
+ /**
+ * Read and add performance data
+ *
+ * @param lp to read from
+ * @param result Object to be filled with data
+ * @return result
+ */
+ private @NonNull PerformanceDataLtp readAirInterfacePerformanceData(Lp lp, PerformanceDataLtp result) {
+
+ LOG.debug("DBRead Get {} MWAirInterfacePac: {}", acessor.getNodeId(), lp.getUuid());
+ // ----
+ UniversalId mwAirInterfacePacuuId = lp.getUuid();
+ // Step 2.1: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceConfiguration> mwAirInterfaceConfigurationIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(mwAirInterfacePacuuId))
+ .child(AirInterfaceConfiguration.class).build();
+ AirInterfaceConfiguration airConfiguration = acessor.getTransactionUtils().readData(acessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, mwAirInterfaceConfigurationIID);
+
+ if (airConfiguration == null) {
+ LOG.debug("DBRead MWAirInterfacePac Id {} no AirInterfaceConfiguration", mwAirInterfacePacuuId);
+
+ } else {
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<AirInterfaceHistoricalPerformances> mwAirInterfaceHistoricalPerformanceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(mwAirInterfacePacuuId))
+ .child(AirInterfaceHistoricalPerformances.class).build();
+
+ // Step 2.3: read to the config data store
+ AirInterfaceHistoricalPerformances airHistoricalPerformanceData = genericTransactionUtils.readData(
+ acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwAirInterfaceHistoricalPerformanceIID);
+
+ if (airHistoricalPerformanceData == null) {
+ LOG.debug("DBRead MWAirInterfacePac Id {} no AirInterfaceHistoricalPerformances",
+ mwAirInterfacePacuuId);
+ } else {
+ // org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170320.air._interface.historical.performances.g.HistoricalPerformanceDataList
+ Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ YangHelper.getCollection(airHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
+ LOG.debug("DBRead MWAirInterfacePac Id {} Records intermediate: {}", mwAirInterfacePacuuId,
+ airHistPMList.size());
+ for (AirInterfaceHistoricalPerformanceTypeG pmRecord : airHistPMList) {
+ result.add(new PerformanceDataAirInterface181010Builder(acessor.getNodeId(), lp, pmRecord,
+ airConfiguration));
+ }
+ }
+ }
+ LOG.debug("DBRead MWAirInterfacePac Id {} Records result: {}", mwAirInterfacePacuuId, result.size());
+ return result;
+ }
+
+ private @NonNull PerformanceDataLtp readEthernetContainerPerformanceData(Lp lp, PerformanceDataLtp result) {
+ final String myName = "MWEthernetContainerPac";
+
+ LOG.debug("DBRead Get {} : {}", mountpointId, myName, lp.getUuid());
+ // ----
+ UniversalId ethContainerPacuuId = lp.getUuid();
+ // Step 2.2: construct data and the relative iid
+ InstanceIdentifier<EthernetContainerHistoricalPerformances> ethContainerIID = InstanceIdentifier
+ .builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(ethContainerPacuuId))
+ .child(EthernetContainerHistoricalPerformances.class).build();
+
+ // Step 2.3: read to the config data store
+ EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData = acessor.getTransactionUtils()
+ .readData(acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, ethContainerIID);
+
+ if (ethContainerHistoricalPerformanceData == null) {
+ LOG.debug("DBRead {} Id {} no HistoricalPerformances", myName, ethContainerPacuuId);
+ } else {
+ Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ YangHelper.getCollection(
+ ethContainerHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
+ LOG.debug("DBRead {} Id {} Records intermediate: {}", myName, ethContainerPacuuId, airHistPMList.size());
+ for (ContainerHistoricalPerformanceTypeG pmRecord : airHistPMList) {
+ result.add(new PerformanceDataAirInterface181010Builder(acessor.getNodeId(), lp, pmRecord));
+ }
+ }
+ LOG.debug("DBRead {} Id {} Records result: {}", myName, ethContainerPacuuId, result.size());
+ return result;
+ }
+
+ public static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType mapSeverity(
+ SeverityType severity) {
+
+ Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType> res =
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType
+ .forName(severity.name());
+ return res.orElse(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType.NonAlarmed);
+ }
+
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java
new file mode 100644
index 000000000..27ec32c81
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface170324Builder.java
@@ -0,0 +1,131 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.pm;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.Helper;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.OtnHistoryDataG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.AirInterfaceHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ContainerHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performance.type.g.PerformanceData;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class PerformanceDataAirInterface170324Builder extends PmdataEntityBuilder {
+
+ private PerformanceDataAirInterface170324Builder(NodeId nodeId, Lp lp, OtnHistoryDataG pmRecord) {
+ super();
+ Optional<GranularityPeriodType> gp = GranularityPeriodType
+ .forName(Helper.nnGetGranularityPeriodType(pmRecord.getGranularityPeriod()).getName());
+ this.setGranularityPeriod(gp.orElse(GranularityPeriodType.Unknown));
+ this.setUuidInterface(Helper.nnGetUniversalId(lp.getUuid()).getValue());
+ this.setLayerProtocolName(Helper.nnGetLayerProtocolName(lp.getLayerProtocolName()).getValue());
+ this.setNodeName(nodeId.getValue());
+ this.setScannerId(pmRecord.getHistoryDataId());
+ this.setTimeStamp(pmRecord.getPeriodEndTime());
+ this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag());
+ }
+
+ /**
+ * Move data to generic type
+ *
+ * @param nodeId of node
+ * @param lp to get data from
+ * @param pmRecord data itself
+ * @param airConfiguration configuration for additional parameter
+ */
+ public PerformanceDataAirInterface170324Builder(NodeId nodeId, Lp lp,
+ AirInterfaceHistoricalPerformanceTypeG pmRecord, AirInterfaceConfiguration airConfiguration) {
+ this(nodeId, lp, pmRecord);
+
+ this.setRadioSignalId(airConfiguration.getRadioSignalId());
+ PerformanceData pmr = pmRecord.getPerformanceData();
+ if (pmr != null) {
+ PerformanceDataBuilder bPerformanceData = new PerformanceDataBuilder();
+ bPerformanceData.setTimePeriod(pmr.getTimePeriod());
+ bPerformanceData.setEs(pmr.getEs());
+ bPerformanceData.setSes(pmr.getSes());
+ bPerformanceData.setCses(pmr.getCses());
+ bPerformanceData.setUnavailability(pmr.getUnavailability());
+ bPerformanceData.setTxLevelMin(pmr.getTxLevelMin());
+ bPerformanceData.setTxLevelMax(pmr.getTxLevelMax());
+ bPerformanceData.setTxLevelAvg(pmr.getTxLevelAvg());
+ bPerformanceData.setRxLevelMin(pmr.getRxLevelMin());
+ bPerformanceData.setRxLevelMax(pmr.getRxLevelMax());
+ bPerformanceData.setRxLevelAvg(pmr.getRxLevelAvg());
+ bPerformanceData.setTime2States(pmr.getTime2States());
+ bPerformanceData.setTime4StatesS(pmr.getTime4StatesS());
+ bPerformanceData.setTime4States(pmr.getTime4States());
+ bPerformanceData.setTime8States(pmr.getTime8States());
+ bPerformanceData.setTime16StatesS(pmr.getTime16StatesS());
+ bPerformanceData.setTime16States(pmr.getTime16States());
+ bPerformanceData.setTime32States(pmr.getTime32States());
+ bPerformanceData.setTime64States(pmr.getTime64States());
+ bPerformanceData.setTime128States(pmr.getTime128States());
+ bPerformanceData.setTime256States(pmr.getTime256States());
+ bPerformanceData.setTime512States(pmr.getTime512States());
+ bPerformanceData.setTime512StatesL(pmr.getTime512StatesL());
+ bPerformanceData.setTime1024States(pmr.getTime1024States());
+ bPerformanceData.setTime1024StatesL(pmr.getTime1024StatesL());
+ bPerformanceData.setTime2048States(pmr.getTime2048States());
+ bPerformanceData.setTime2048StatesL(pmr.getTime2048StatesL());
+ bPerformanceData.setTime4096States(pmr.getTime4096States());
+ bPerformanceData.setTime4096StatesL(pmr.getTime4096StatesL());
+ bPerformanceData.setTime8192States(pmr.getTime8192States());
+ bPerformanceData.setTime8192StatesL(pmr.getTime8192StatesL());
+ bPerformanceData.setSnirMin(pmr.getSnirMin());
+ bPerformanceData.setSnirMax(pmr.getSnirMax());
+ bPerformanceData.setSnirAvg(pmr.getSnirAvg());
+ bPerformanceData.setXpdMin(pmr.getXpdMin());
+ bPerformanceData.setXpdMax(pmr.getXpdMax());
+ bPerformanceData.setXpdAvg(pmr.getXpdAvg());
+ bPerformanceData.setRfTempMin(pmr.getRfTempMin());
+ bPerformanceData.setRfTempMax(pmr.getRfTempMax());
+ bPerformanceData.setRfTempAvg(pmr.getRfTempAvg());
+ bPerformanceData.setDefectBlocksSum(pmr.getDefectBlocksSum());
+ this.setPerformanceData(bPerformanceData.build());
+ }
+ }
+
+ /**
+ * Move data to generic type
+ *
+ * @param nodeId of node
+ * @param lp to get data from
+ * @param pmRecord data itself
+ */
+ public PerformanceDataAirInterface170324Builder(NodeId nodeId, Lp lp,
+ ContainerHistoricalPerformanceTypeG pmRecord) {
+ this(nodeId, lp, (OtnHistoryDataG) pmRecord);
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.container.historical.performance.type.g.PerformanceData pmr =
+ pmRecord.getPerformanceData();
+ if (pmr != null) {
+ PerformanceDataBuilder bPerformanceData = new PerformanceDataBuilder();
+ bPerformanceData.setTimePeriod(pmr.getTimePeriod());
+ bPerformanceData.setTxEthernetBytesMaxM(pmr.getTxEthernetBytesMaxM());
+ bPerformanceData.setTxEthernetBytesMaxS(pmr.getTxEthernetBytesMaxS());
+ bPerformanceData.setTxEthernetBytesSum(pmr.getTxEthernetBytesSum());
+ this.setPerformanceData(bPerformanceData.build());
+ }
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java
new file mode 100644
index 000000000..f4023f932
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface180907Builder.java
@@ -0,0 +1,131 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.pm;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.Helper;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.OtnHistoryDataG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.AirInterfaceHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ContainerHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performance.type.g.PerformanceData;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class PerformanceDataAirInterface180907Builder extends PmdataEntityBuilder {
+
+ private PerformanceDataAirInterface180907Builder(NodeId nodeId, Lp lp, OtnHistoryDataG pmRecord) {
+ super();
+ Optional<GranularityPeriodType> gp = GranularityPeriodType
+ .forName(Helper.nnGetGranularityPeriodType(pmRecord.getGranularityPeriod()).getName());
+ this.setGranularityPeriod(gp.orElse(GranularityPeriodType.Unknown));
+ this.setUuidInterface(Helper.nnGetUniversalId(lp.getUuid()).getValue());
+ this.setLayerProtocolName(Helper.nnGetLayerProtocolName(lp.getLayerProtocolName()).getValue());
+ this.setNodeName(nodeId.getValue());
+ this.setScannerId(pmRecord.getHistoryDataId());
+ this.setTimeStamp(pmRecord.getPeriodEndTime());
+ this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag());
+ }
+
+ /**
+ * Move data to generic type
+ *
+ * @param nodeId of node
+ * @param lp to get data from
+ * @param pmRecord data itself
+ * @param airConfiguration configuration for additional parameter
+ */
+ public PerformanceDataAirInterface180907Builder(NodeId nodeId, Lp lp,
+ AirInterfaceHistoricalPerformanceTypeG pmRecord, AirInterfaceConfiguration airConfiguration) {
+ this(nodeId, lp, pmRecord);
+
+ this.setRadioSignalId(airConfiguration.getRadioSignalId());
+ PerformanceData pmr = pmRecord.getPerformanceData();
+ if (pmr != null) {
+ PerformanceDataBuilder bPerformanceData = new PerformanceDataBuilder();
+ bPerformanceData.setTimePeriod(pmr.getTimePeriod());
+ bPerformanceData.setEs(pmr.getEs());
+ bPerformanceData.setSes(pmr.getSes());
+ bPerformanceData.setCses(pmr.getCses());
+ bPerformanceData.setUnavailability(pmr.getUnavailability());
+ bPerformanceData.setTxLevelMin(pmr.getTxLevelMin());
+ bPerformanceData.setTxLevelMax(pmr.getTxLevelMax());
+ bPerformanceData.setTxLevelAvg(pmr.getTxLevelAvg());
+ bPerformanceData.setRxLevelMin(pmr.getRxLevelMin());
+ bPerformanceData.setRxLevelMax(pmr.getRxLevelMax());
+ bPerformanceData.setRxLevelAvg(pmr.getRxLevelAvg());
+ bPerformanceData.setTime2States(pmr.getTime2States());
+ bPerformanceData.setTime4StatesS(pmr.getTime4StatesS());
+ bPerformanceData.setTime4States(pmr.getTime4States());
+ bPerformanceData.setTime8States(pmr.getTime8States());
+ bPerformanceData.setTime16StatesS(pmr.getTime16StatesS());
+ bPerformanceData.setTime16States(pmr.getTime16States());
+ bPerformanceData.setTime32States(pmr.getTime32States());
+ bPerformanceData.setTime64States(pmr.getTime64States());
+ bPerformanceData.setTime128States(pmr.getTime128States());
+ bPerformanceData.setTime256States(pmr.getTime256States());
+ bPerformanceData.setTime512States(pmr.getTime512States());
+ bPerformanceData.setTime512StatesL(pmr.getTime512StatesL());
+ bPerformanceData.setTime1024States(pmr.getTime1024States());
+ bPerformanceData.setTime1024StatesL(pmr.getTime1024StatesL());
+ bPerformanceData.setTime2048States(pmr.getTime2048States());
+ bPerformanceData.setTime2048StatesL(pmr.getTime2048StatesL());
+ bPerformanceData.setTime4096States(pmr.getTime4096States());
+ bPerformanceData.setTime4096StatesL(pmr.getTime4096StatesL());
+ bPerformanceData.setTime8192States(pmr.getTime8192States());
+ bPerformanceData.setTime8192StatesL(pmr.getTime8192StatesL());
+ bPerformanceData.setSnirMin(pmr.getSnirMin());
+ bPerformanceData.setSnirMax(pmr.getSnirMax());
+ bPerformanceData.setSnirAvg(pmr.getSnirAvg());
+ bPerformanceData.setXpdMin(pmr.getXpdMin());
+ bPerformanceData.setXpdMax(pmr.getXpdMax());
+ bPerformanceData.setXpdAvg(pmr.getXpdAvg());
+ bPerformanceData.setRfTempMin(pmr.getRfTempMin());
+ bPerformanceData.setRfTempMax(pmr.getRfTempMax());
+ bPerformanceData.setRfTempAvg(pmr.getRfTempAvg());
+ bPerformanceData.setDefectBlocksSum(pmr.getDefectBlocksSum());
+ this.setPerformanceData(bPerformanceData.build());
+ }
+ }
+
+ /**
+ * Move data to generic type
+ *
+ * @param nodeId of node
+ * @param lp to get data from
+ * @param pmRecord data itself
+ */
+ public PerformanceDataAirInterface180907Builder(NodeId nodeId, Lp lp,
+ ContainerHistoricalPerformanceTypeG pmRecord) {
+ this(nodeId, lp, (OtnHistoryDataG) pmRecord);
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.container.historical.performance.type.g.PerformanceData pmr =
+ pmRecord.getPerformanceData();
+ if (pmr != null) {
+ PerformanceDataBuilder bPerformanceData = new PerformanceDataBuilder();
+ bPerformanceData.setTimePeriod(pmr.getTimePeriod());
+ bPerformanceData.setTxEthernetBytesMaxM(pmr.getTxEthernetBytesMaxM());
+ bPerformanceData.setTxEthernetBytesMaxS(pmr.getTxEthernetBytesMaxS());
+ bPerformanceData.setTxEthernetBytesSum(pmr.getTxEthernetBytesSum());
+ this.setPerformanceData(bPerformanceData.build());
+ }
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java
new file mode 100644
index 000000000..ccf4ed4c5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/pm/PerformanceDataAirInterface181010Builder.java
@@ -0,0 +1,131 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.pm;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.Helper;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.OtnHistoryDataG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.AirInterfaceHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ContainerHistoricalPerformanceTypeG;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performance.type.g.PerformanceData;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class PerformanceDataAirInterface181010Builder extends PmdataEntityBuilder {
+
+ private PerformanceDataAirInterface181010Builder(NodeId nodeId, Lp lp, OtnHistoryDataG pmRecord) {
+ super();
+ Optional<GranularityPeriodType> gp = GranularityPeriodType
+ .forName(Helper.nnGetGranularityPeriodType(pmRecord.getGranularityPeriod()).getName());
+ this.setGranularityPeriod(gp.orElse(GranularityPeriodType.Unknown));
+ this.setUuidInterface(Helper.nnGetUniversalId(lp.getUuid()).getValue());
+ this.setLayerProtocolName(Helper.nnGetLayerProtocolName(lp.getLayerProtocolName()).getValue());
+ this.setNodeName(nodeId.getValue());
+ this.setScannerId(pmRecord.getHistoryDataId());
+ this.setTimeStamp(pmRecord.getPeriodEndTime());
+ this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag());
+ }
+
+ /**
+ * Move data to generic type
+ *
+ * @param nodeId of node
+ * @param lp to get data from
+ * @param pmRecord data itself
+ * @param airConfiguration configuration for additional parameter
+ */
+ public PerformanceDataAirInterface181010Builder(NodeId nodeId, Lp lp,
+ AirInterfaceHistoricalPerformanceTypeG pmRecord, AirInterfaceConfiguration airConfiguration) {
+ this(nodeId, lp, pmRecord);
+
+ this.setRadioSignalId(airConfiguration.getRadioSignalId());
+ PerformanceData pmr = pmRecord.getPerformanceData();
+ if (pmr != null) {
+ PerformanceDataBuilder bPerformanceData = new PerformanceDataBuilder();
+ bPerformanceData.setTimePeriod(pmr.getTimePeriod());
+ bPerformanceData.setEs(pmr.getEs());
+ bPerformanceData.setSes(pmr.getSes());
+ bPerformanceData.setCses(pmr.getCses());
+ bPerformanceData.setUnavailability(pmr.getUnavailability());
+ bPerformanceData.setTxLevelMin(pmr.getTxLevelMin());
+ bPerformanceData.setTxLevelMax(pmr.getTxLevelMax());
+ bPerformanceData.setTxLevelAvg(pmr.getTxLevelAvg());
+ bPerformanceData.setRxLevelMin(pmr.getRxLevelMin());
+ bPerformanceData.setRxLevelMax(pmr.getRxLevelMax());
+ bPerformanceData.setRxLevelAvg(pmr.getRxLevelAvg());
+ bPerformanceData.setTime2States(pmr.getTime2States());
+ bPerformanceData.setTime4StatesS(pmr.getTime4StatesS());
+ bPerformanceData.setTime4States(pmr.getTime4States());
+ bPerformanceData.setTime8States(pmr.getTime8States());
+ bPerformanceData.setTime16StatesS(pmr.getTime16StatesS());
+ bPerformanceData.setTime16States(pmr.getTime16States());
+ bPerformanceData.setTime32States(pmr.getTime32States());
+ bPerformanceData.setTime64States(pmr.getTime64States());
+ bPerformanceData.setTime128States(pmr.getTime128States());
+ bPerformanceData.setTime256States(pmr.getTime256States());
+ bPerformanceData.setTime512States(pmr.getTime512States());
+ bPerformanceData.setTime512StatesL(pmr.getTime512StatesL());
+ bPerformanceData.setTime1024States(pmr.getTime1024States());
+ bPerformanceData.setTime1024StatesL(pmr.getTime1024StatesL());
+ bPerformanceData.setTime2048States(pmr.getTime2048States());
+ bPerformanceData.setTime2048StatesL(pmr.getTime2048StatesL());
+ bPerformanceData.setTime4096States(pmr.getTime4096States());
+ bPerformanceData.setTime4096StatesL(pmr.getTime4096StatesL());
+ bPerformanceData.setTime8192States(pmr.getTime8192States());
+ bPerformanceData.setTime8192StatesL(pmr.getTime8192StatesL());
+ bPerformanceData.setSnirMin(pmr.getSnirMin());
+ bPerformanceData.setSnirMax(pmr.getSnirMax());
+ bPerformanceData.setSnirAvg(pmr.getSnirAvg());
+ bPerformanceData.setXpdMin(pmr.getXpdMin());
+ bPerformanceData.setXpdMax(pmr.getXpdMax());
+ bPerformanceData.setXpdAvg(pmr.getXpdAvg());
+ bPerformanceData.setRfTempMin(pmr.getRfTempMin());
+ bPerformanceData.setRfTempMax(pmr.getRfTempMax());
+ bPerformanceData.setRfTempAvg(pmr.getRfTempAvg());
+ bPerformanceData.setDefectBlocksSum(pmr.getDefectBlocksSum());
+ this.setPerformanceData(bPerformanceData.build());
+ }
+ }
+
+ /**
+ * Move data to generic type
+ *
+ * @param nodeId of node
+ * @param lp to get data from
+ * @param pmRecord data itself
+ */
+ public PerformanceDataAirInterface181010Builder(NodeId nodeId, Lp lp,
+ ContainerHistoricalPerformanceTypeG pmRecord) {
+ this(nodeId, lp, (OtnHistoryDataG) pmRecord);
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.container.historical.performance.type.g.PerformanceData pmr =
+ pmRecord.getPerformanceData();
+ if (pmr != null) {
+ PerformanceDataBuilder bPerformanceData = new PerformanceDataBuilder();
+ bPerformanceData.setTimePeriod(pmr.getTimePeriod());
+ bPerformanceData.setTxEthernetBytesMaxM(pmr.getTxEthernetBytesMaxM());
+ bPerformanceData.setTxEthernetBytesMaxS(pmr.getTxEthernetBytesMaxS());
+ bPerformanceData.setTxEthernetBytesSum(pmr.getTxEthernetBytesSum());
+ this.setPerformanceData(bPerformanceData.build());
+ }
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfConfiguration.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfConfiguration.java
new file mode 100644
index 000000000..85303d89c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfConfiguration.java
@@ -0,0 +1,53 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl;
+
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.Configuration;
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
+
+public class DeviceManagerOnfConfiguration implements Configuration {
+
+ private static final String SECTION_MARKER_DMONF = "dmonf";
+
+ private static final String DEFAULT_VALUE_ENABLED = String.valueOf(false);
+ private static final String PROPERTY_KEY_POLLALARMS = "pollAlarms";
+
+ private final ConfigurationFileRepresentation configuration;
+
+ public DeviceManagerOnfConfiguration(ConfigurationFileRepresentation configuration) {
+ this.configuration = configuration;
+ this.configuration.addSection(SECTION_MARKER_DMONF);
+ defaults();
+ }
+
+ public boolean isPollAlarmsEnabled() {
+ return configuration.getPropertyBoolean(SECTION_MARKER_DMONF, PROPERTY_KEY_POLLALARMS);
+ }
+
+ @Override
+ public String getSectionName() {
+ return SECTION_MARKER_DMONF;
+ }
+
+ @Override
+ public void defaults() {
+ //Add default if not available
+ configuration.setPropertyIfNotAvailable(SECTION_MARKER_DMONF, PROPERTY_KEY_POLLALARMS, DEFAULT_VALUE_ENABLED);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfImpl.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfImpl.java
new file mode 100644
index 000000000..10ee24201
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/DeviceManagerOnfImpl.java
@@ -0,0 +1,90 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl;
+
+import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DeviceManagerOnfImpl implements AutoCloseable {
+
+ private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerOnfImpl.class);
+ private static final String APPLICATIONNAME = "DeviceManagerOnf";
+
+ private NetconfNetworkElementService netconfNetworkElementService;
+
+ private HtDatabaseClient htDatabaseClient;
+ private Boolean devicemanagerInitializationOk = false;
+ private FactoryRegistration<ONFCoreNetworkElementFactory> resOnf;
+ private DeviceManagerOnfConfiguration configuration;
+
+ // Blueprint begin
+ public DeviceManagerOnfImpl() {
+ LOG.info("Creating provider for {}", APPLICATIONNAME);
+ resOnf = null;
+ }
+
+ public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) {
+ this.netconfNetworkElementService = netconfNetworkElementService;
+ }
+
+ public void init() throws Exception {
+
+ LOG.info("Session Initiated start {}", APPLICATIONNAME);
+
+ configuration = new DeviceManagerOnfConfiguration(
+ netconfNetworkElementService.getServiceProvider().getConfigurationFileRepresentation());
+ resOnf = netconfNetworkElementService
+ .registerBindingNetworkElementFactory(new ONFCoreNetworkElementFactory(configuration));
+
+
+ netconfNetworkElementService.writeToEventLog(APPLICATIONNAME, "startup", "done");
+ this.devicemanagerInitializationOk = true;
+
+ LOG.info("Session Initiated end. Initialization done {}", devicemanagerInitializationOk);
+ }
+ // Blueprint end
+
+ @Override
+ public void close() throws Exception {
+ LOG.info("closing ...");
+ close(htDatabaseClient);
+ close(resOnf);
+ LOG.info("closing done");
+ }
+
+ /**
+ * Used to close all Services, that should support AutoCloseable Pattern
+ *
+ * @param toClose
+ * @throws Exception
+ */
+ private void close(AutoCloseable... toCloseList) {
+ for (AutoCloseable element : toCloseList) {
+ if (element != null) {
+ try {
+ element.close();
+ } catch (Exception e) {
+ LOG.warn("Fail during close: ", e);
+ }
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/ONFCoreNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/ONFCoreNetworkElementFactory.java
new file mode 100644
index 000000000..06558ad5a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/ONFCoreNetworkElementFactory.java
@@ -0,0 +1,83 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl;
+
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.OnfMicrowaveModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev170324;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev180907;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev181010;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne.ONFCoreNetworkElement12Basic;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne.ONFCoreNetworkElement12Microwave;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Create a Network Element representation according to the capability information. The capabilities are more than an
+ * ODL-QName. After the ? other terms than "revision" are provided.
+ *
+ */
+public class ONFCoreNetworkElementFactory implements NetworkElementFactory {
+
+ private static final Logger log = LoggerFactory.getLogger(ONFCoreNetworkElementFactory.class);
+
+ private final @NonNull DeviceManagerOnfConfiguration configuration;
+
+ public ONFCoreNetworkElementFactory(@NonNull DeviceManagerOnfConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+
+ @Override
+ public Optional<org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement> create(
+ @NonNull NetconfAccessor accessor, @NonNull DeviceManagerServiceProvider serviceProvider) {
+
+ log.info("Enter factory {}", ONFCoreNetworkElementFactory.class.getName(), accessor.getNodeId());
+
+ Capabilities capabilities = accessor.getCapabilites();
+
+ if (capabilities.isSupportingNamespaceAndRevision(NetworkElement.QNAME)) {
+ OnfMicrowaveModel onfMicrowaveModel = null;
+ Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
+ if (capabilities.isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev170324.QNAME)) {
+ onfMicrowaveModel = new WrapperMicrowaveModelRev170324(bindingAccessor.get(), serviceProvider);
+ } else if (capabilities.isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev180907.QNAME)) {
+ onfMicrowaveModel = new WrapperMicrowaveModelRev180907(bindingAccessor.get(), serviceProvider);
+ } else if (capabilities.isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev181010.QNAME)) {
+ onfMicrowaveModel = new WrapperMicrowaveModelRev181010(bindingAccessor.get(), serviceProvider);
+ }
+
+ if (onfMicrowaveModel != null) {
+ return Optional.of(new ONFCoreNetworkElement12Microwave(bindingAccessor.get(), serviceProvider, configuration,
+ onfMicrowaveModel));
+ } else {
+ return Optional.of(new ONFCoreNetworkElement12Basic(bindingAccessor.get(), serviceProvider, configuration));
+ }
+ }
+
+ return Optional.empty();
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Base.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Base.java
new file mode 100644
index 000000000..af2b2405b
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Base.java
@@ -0,0 +1,438 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.NetworkElementCoreData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.WrapperPTPModelRev170208;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment.ONFCoreNetworkElement12Equipment;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.Helper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev181010;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.InventoryInformationDcae;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.binding.api.MountPoint;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.extension.g.Extension;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.network.element.Ltp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.NetworkElementPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.network.element.pac.NetworkElementCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * This class contains the ONF Core model Version 1.2 related functions.<br>
+ * Provides the basic ONF Core Model function.<br>
+ * - initialReadFromNetworkElement is not implemented in child classes.
+ */
+public abstract class ONFCoreNetworkElement12Base extends ONFCoreNetworkElementBase implements NetworkElementCoreData {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ONFCoreNetworkElement12Base.class);
+
+ protected static final @NonNull List<Extension> EMPTYLTPEXTENSIONLIST = new ArrayList<>();
+
+ protected static final InstanceIdentifier<NetworkElement> NETWORKELEMENT_IID =
+ InstanceIdentifier.builder(NetworkElement.class).build();
+
+
+ /*-----------------------------------------------------------------------------
+ * Class members
+ */
+
+ // Non specific part. Used by all functions.
+ /** interfaceList is used by PM task and should be synchronized */
+ @SuppressWarnings("null")
+ private final @NonNull List<Lp> interfaceList = Collections.synchronizedList(new CopyOnWriteArrayList<>());
+ private Optional<NetworkElement> optionalNe;
+
+ // Performance monitoring specific part
+ /** Lock for the PM access specific elements that could be null */
+ private final @NonNull Object pmLock = new Object();
+ protected @Nullable Iterator<Lp> interfaceListIterator = null;
+ /** Actual pmLp used during iteration over interfaces */
+ protected @Nullable Lp pmLp = null;
+
+ // Device monitoring specific part
+ /** Lock for the DM access specific elements that could be null */
+ protected final @NonNull Object dmLock = new Object();
+
+ protected final boolean isNetworkElementCurrentProblemsSupporting12;
+
+ protected final ONFCoreNetworkElement12Equipment equipment;
+
+ protected final NodeId nodeId;
+
+ /*---------------------------------------------------------------
+ * Constructor
+ */
+
+ protected ONFCoreNetworkElement12Base(@NonNull NetconfBindingAccessor acessor) {
+ super(acessor);
+ this.optionalNe = Optional.empty();
+ this.nodeId = getAcessor().get().getNodeId();
+ this.isNetworkElementCurrentProblemsSupporting12 =
+ acessor.getCapabilites().isSupportingNamespaceAndRevision(NetworkElementPac.QNAME);
+ this.equipment = new ONFCoreNetworkElement12Equipment(acessor, this);
+ WrapperPTPModelRev170208.initSynchronizationExtension(acessor);
+ LOG.debug("support necurrent-problem-list={}", this.isNetworkElementCurrentProblemsSupporting12);
+ }
+
+ /*---------------------------------------------------------------
+ * Getter/ Setter
+ */
+
+ @Override
+ public Optional<NetworkElement> getOptionalNetworkElement() {
+ return optionalNe;
+ }
+
+ List<Lp> getInterfaceList() {
+ return interfaceList;
+ }
+
+ public Object getPmLock() {
+ return pmLock;
+ }
+
+ /*---------------------------------------------------------------
+ * Core model related function
+ */
+
+ /**
+ * Get uuid of Optional NE.
+ *
+ * @return Uuid or EMPTY String if optionNE is not available
+ */
+ protected String getUuId() {
+ return optionalNe.isPresent() ? Helper.nnGetUniversalId(optionalNe.get().getUuid()).getValue() : EMPTY;
+ }
+
+ /**
+ * Read from NetworkElement and verify LTPs have changed. If the NE has changed, update to the new structure. From
+ * initial state it changes also.
+ */
+ protected boolean readNetworkElementAndInterfaces() {
+
+ LOG.debug("Update mountpoint if changed {}", getMountpoint());
+
+ optionalNe = Optional.ofNullable(getGenericTransactionUtils().readData(getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, NETWORKELEMENT_IID));
+ synchronized (pmLock) {
+ boolean change = false;
+
+ if (!optionalNe.isPresent()) {
+ LOG.debug("Unable to read NE data for mountpoint {}", getMountpoint());
+ if (!interfaceList.isEmpty()) {
+ interfaceList.clear();
+ interfaceListIterator = null;
+ change = true;
+ }
+
+ } else {
+ NetworkElement ne = optionalNe.get();
+ LOG.debug("Mountpoint '{}' NE-Name '{}'", getMountpoint(), ne.getName());
+ List<Lp> actualInterfaceList = getLtpList(ne);
+ if (!interfaceList.equals(actualInterfaceList)) {
+ LOG.debug("Mountpoint '{}' Update LTP List. Elements {}", getMountpoint(),
+ actualInterfaceList.size());
+ interfaceList.clear();
+ interfaceList.addAll(actualInterfaceList);
+ interfaceListIterator = null;
+ change = true;
+ }
+ }
+ return change;
+ }
+ }
+
+ /**
+ * Get List of UUIDs for conditional packages from Networkelement<br>
+ * Possible interfaces are:<br>
+ * MWPS, LTP(MWPS-TTP), MWAirInterfacePac, MicrowaveModel-ObjectClasses-AirInterface<br>
+ * ETH-CTP,LTP(Client), MW_EthernetContainer_Pac<br>
+ * MWS, LTP(MWS-CTP-xD), MWAirInterfaceDiversityPac, MicrowaveModel-ObjectClasses-AirInterfaceDiversity<br>
+ * MWS, LTP(MWS-TTP), ,MicrowaveModel-ObjectClasses-HybridMwStructure<br>
+ * MWS, LTP(MWS-TTP), ,MicrowaveModel-ObjectClasses-PureEthernetStructure<br>
+ *
+ * @param ne NetworkElement
+ * @return Id List, never null.
+ */
+
+ private static List<Lp> getLtpList(@Nullable NetworkElement ne) {
+
+ List<Lp> res = Collections.synchronizedList(new ArrayList<Lp>());
+
+ if (ne != null) {
+ Collection<Ltp> ltpRefList = YangHelper.getCollection(ne.getLtp());
+ if (ltpRefList == null) {
+ LOG.debug("DBRead NE-Interfaces: null");
+ } else {
+ for (Ltp ltRefListE : ltpRefList) {
+ Collection<Lp> lpList = YangHelper.getCollection(ltRefListE.getLp());
+ if (lpList == null) {
+ LOG.debug("DBRead NE-Interfaces Reference List: null");
+ } else {
+ for (Lp ltp : lpList) {
+ res.add(ltp);
+ }
+ }
+ }
+ }
+ } else {
+ LOG.debug("DBRead NE: null");
+ }
+
+ // ---- Debug
+ if (LOG.isDebugEnabled()) {
+ StringBuilder strBuild = new StringBuilder();
+ for (Lp ltp : res) {
+ if (strBuild.length() > 0) {
+ strBuild.append(", ");
+ }
+ strBuild.append(Helper.nnGetLayerProtocolName(ltp.getLayerProtocolName()).getValue());
+ strBuild.append(':');
+ strBuild.append(Helper.nnGetUniversalId(ltp.getUuid()).getValue());
+ }
+ LOG.debug("DBRead NE-Interfaces: {}", strBuild.toString());
+ }
+ // ---- Debug end
+
+ return res;
+ }
+
+ /**
+ * Read current problems of AirInterfaces and EthernetContainer according to NE status into DB
+ *
+ * @return List with all problems
+ */
+ protected FaultData readAllCurrentProblemsOfNode() {
+
+ // Step 2.3: read the existing faults and add to DB
+ FaultData resultList = new FaultData();
+ int idxStart; // Start index for debug messages
+ UniversalId uuid;
+
+ synchronized (pmLock) {
+ for (Lp lp : interfaceList) {
+
+ idxStart = resultList.size();
+ uuid = lp.getUuid();
+ FaultData.debugResultList(LOG, uuid.getValue(), resultList, idxStart);
+
+ }
+ }
+
+ // Step 2.4: Read other problems from mountpoint
+ if (isNetworkElementCurrentProblemsSupporting12) {
+ idxStart = resultList.size();
+ readNetworkElementCurrentProblems12(resultList);
+ FaultData.debugResultList(LOG, "CurrentProblems12", resultList, idxStart);
+ }
+
+ return resultList;
+
+ }
+
+ /**
+ * Reading problems for the networkElement V1.2
+ *
+ * @param resultList to collect the problems
+ * @return resultList with additonal problems
+ */
+ protected FaultData readNetworkElementCurrentProblems12(FaultData resultList) {
+
+ LOG.info("DBRead Get {} NetworkElementCurrentProblems12", getMountpoint());
+
+ InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.NetworkElementPac> networkElementCurrentProblemsIID =
+ InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.NetworkElementPac.class)
+ .build();
+
+ // Step 2.3: read to the config data store
+ NetworkElementPac problemPac;
+ NetworkElementCurrentProblems problems = null;
+ try {
+ problemPac = getGenericTransactionUtils().readData(getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ networkElementCurrentProblemsIID);
+ if (problemPac != null) {
+ problems = problemPac.getNetworkElementCurrentProblems();
+ }
+ if (problems == null) {
+ LOG.debug("DBRead no NetworkElementCurrentProblems12");
+ } else {
+ for (org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.network.element.current.problems.g.CurrentProblemList problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(nodeId, problem.getSequenceNumber(), problem.getTimeStamp(),
+ problem.getObjectReference(), problem.getProblemName(),
+ WrapperMicrowaveModelRev181010.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ } catch (Exception e) {
+ LOG.warn("DBRead {} NetworkElementCurrentProblems12 not supported. Message '{}' ", getMountpoint(),
+ e.getMessage());
+ }
+ return resultList;
+ }
+
+ /*---------------------------------------------------------------
+ * Device Monitor
+ */
+
+ @Override
+ public boolean checkIfConnectionToMediatorIsOk() {
+ synchronized (dmLock) {
+ return optionalNe != null;
+ }
+ }
+
+ /*
+ * New implementation to interpret status with empty LTP List as notConnected => return false
+ * 30.10.2018 Since this behavior is very specific and implicit for specific NE Types
+ * it needs to be activated by extension or configuration. Change to be disabled at the moment
+ */
+ @Override
+ public boolean checkIfConnectionToNeIsOk() {
+ return true;
+ }
+
+ /*---------------------------------------------------------------
+ * Synchronization
+ */
+
+
+ /*---------------------------------------------------------------
+ * Equipment related functions
+ */
+
+ @Override
+ public @NonNull InventoryInformationDcae getInventoryInformation(String layerProtocolFilter) {
+ LOG.debug("request inventory information. filter: {}" + layerProtocolFilter);
+ return this.equipment.getInventoryInformation(getFilteredInterfaceUuidsAsStringList(layerProtocolFilter));
+ }
+
+ @Override
+ public InventoryInformationDcae getInventoryInformation() {
+ return getInventoryInformation(null);
+ }
+
+ protected List<String> getFilteredInterfaceUuidsAsStringList(String layerProtocolFilter) {
+ List<String> uuids = new ArrayList<>();
+
+ LOG.debug("request inventory information. filter: {}" + layerProtocolFilter);
+ if (optionalNe != null) {
+ // uuids
+ for (Lp lp : this.interfaceList) {
+ if (layerProtocolFilter == null || layerProtocolFilter.isEmpty() || layerProtocolFilter
+ .equals(Helper.nnGetLayerProtocolName(lp.getLayerProtocolName()).getValue())) {
+ uuids.add(Helper.nnGetUniversalId(lp.getUuid()).getValue());
+ }
+ }
+ }
+ LOG.debug("uuids found: {}", uuids);
+ return uuids;
+ }
+
+
+ /*---------------------------------------------------------------
+ * Performancemanagement specific interface
+ */
+
+ @Override
+ public void resetPMIterator() {
+ synchronized (pmLock) {
+ interfaceListIterator = interfaceList.iterator();
+ }
+ LOG.debug("PM reset iterator");
+ }
+
+ @SuppressWarnings("null")
+ @Override
+ public boolean hasNext() {
+ boolean res;
+ synchronized (pmLock) {
+ res = interfaceListIterator != null ? interfaceListIterator.hasNext() : false;
+ }
+ LOG.debug("PM hasNext LTP {}", res);
+ return res;
+ }
+
+ @SuppressWarnings("null")
+ @Override
+ public void next() {
+ synchronized (pmLock) {
+ if (interfaceListIterator == null) {
+ pmLp = null;
+ LOG.debug("PM next LTP null");
+ } else {
+ pmLp = interfaceListIterator.next();
+ LOG.debug("PM next LTP {}", Helper.nnGetLayerProtocolName(pmLp.getLayerProtocolName()).getValue());
+ }
+ }
+ }
+
+ @SuppressWarnings("null")
+ @Override
+ public String pmStatusToString() {
+ StringBuilder res = new StringBuilder();
+ synchronized (pmLock) {
+ res.append(pmLp == null ? "no interface"
+ : Helper.nnGetLayerProtocolName(pmLp.getLayerProtocolName()).getValue());
+ for (Lp lp : getInterfaceList()) {
+ res.append("IF:");
+ res.append(Helper.nnGetLayerProtocolName(lp.getLayerProtocolName()).getValue());
+ res.append(" ");
+ }
+ }
+ return res.toString();
+ }
+
+ @Override
+ public void doRegisterEventListener(MountPoint mountPoint) {
+ //Do nothing
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
+ return clazz.isInstance(this) ? Optional.of((L) this) : Optional.empty();
+ }
+
+ @Override
+ public Optional<PerformanceDataLtp> getLtpHistoricalPerformanceData() {
+ return Optional.empty();
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Basic.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Basic.java
new file mode 100644
index 000000000..a7a09fccb
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Basic.java
@@ -0,0 +1,249 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.DeviceManagerOnfConfiguration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.AaiService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.EquipmentService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.EventHandlingService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.MaintenanceService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.PerformanceManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Get information over NETCONF device according to ONF Coremodel. Read networkelement and conditional packages.
+ *
+ * Get conditional packages from Networkelement Possible interfaces are: MWPS, LTP(MWPS-TTP), MWAirInterfacePac,
+ * MicrowaveModel-ObjectClasses-AirInterface ETH-CTP,LTP(Client), MW_EthernetContainer_Pac MWS, LTP(MWS-CTP-xD),
+ * MWAirInterfaceDiversityPac, MicrowaveModel-ObjectClasses-AirInterfaceDiversity MWS, LTP(MWS-TTP),
+ * ,MicrowaveModel-ObjectClasses-HybridMwStructure MWS, LTP(MWS-TTP),
+ * ,MicrowaveModel-ObjectClasses-PureEthernetStructure
+ *
+ * @author herbert
+ *
+ */
+public class ONFCoreNetworkElement12Basic extends ONFCoreNetworkElement12Base {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ONFCoreNetworkElement12Basic.class);
+
+ /*-----------------------------------------------------------------------------
+ * Class members
+ */
+ private final @NonNull FaultService faultService;
+ private final @NonNull EquipmentService equipmentService;
+ private final @NonNull MaintenanceService maintenanceService;
+ private final @NonNull AaiService aaiProviderClient;
+ private final @NonNull PerformanceManager performanceManager;
+ private final @NonNull EventHandlingService eventListenerHandler;
+ private final @NonNull DataProvider dataProvider;
+
+
+ private final @NonNull String mountPointNodeName;
+ private final @NonNull NetconfBindingAccessor acessor;
+ private final @NonNull DeviceManagerOnfConfiguration pollAlarmConfig;
+
+ /*-----------------------------------------------------------------------------
+ * Construction
+ */
+
+ /**
+ * Basic element for netconf device with ONF Core model V1.2
+ *
+ * @param acessor to manage device connection
+ * @param serviceProvider to get devicemanager services
+ */
+ public ONFCoreNetworkElement12Basic(@NonNull NetconfBindingAccessor acessor,
+ @NonNull DeviceManagerServiceProvider serviceProvider, DeviceManagerOnfConfiguration configuration) {
+
+ super(acessor);
+ this.mountPointNodeName = acessor.getNodeId().getValue();
+ this.acessor = acessor;
+ this.pollAlarmConfig = configuration;
+
+ this.faultService = serviceProvider.getFaultService();
+ this.equipmentService = serviceProvider.getEquipmentService();
+ this.maintenanceService = serviceProvider.getMaintenanceService();
+ this.aaiProviderClient = serviceProvider.getAaiService();
+ this.performanceManager = serviceProvider.getPerformanceManagerService();
+ this.eventListenerHandler = serviceProvider.getEventHandlingService();
+ this.dataProvider = serviceProvider.getDataProvider();
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Functions
+ */
+
+ /**
+ * DeviceMonitor Prepare check by updating NE state and reading all interfaces.
+ */
+ @Override
+ public void prepareCheck() {
+ synchronized (dmLock) {
+ boolean change = readNetworkElementAndInterfaces();
+ if (change || pollAlarmConfig.isPollAlarmsEnabled()) {
+ int problems = faultService.removeAllCurrentProblemsOfNode(nodeId);
+ FaultData resultList = readAllCurrentProblemsOfNode();
+ faultService.initCurrentProblemStatus(nodeId, resultList);
+ LOG.info("Resync mountpoint {} for device {}. Removed {}. Current problems: {}", getMountpoint(),
+ getUuId(), problems, resultList.size());
+ }
+ }
+ }
+
+ // public boolean checkIfConnectionToMediatorIsOk() -> Shifted to super class
+ // public boolean checkIfConnectionToNeIsOk() -> Shifted to super class
+
+ /*-----------------------------------------------------------------------------
+ * Synchronization
+ */
+
+ // public void initSynchronizationExtension() -> Shifted to super class
+ // private InstanceList readPTPClockInstances() -> Shifted to super class
+
+
+ /*-----------------------------------------------------------------------------
+ * Problem/Fault related functions
+ */
+
+ /**
+ * Read during startup all relevant structure and status parameters from device
+ */
+ @Override
+ public void initialReadFromNetworkElement() {
+
+ LOG.debug("Get info about {}", getMountpoint());
+
+ int problems = faultService.removeAllCurrentProblemsOfNode(nodeId);
+ LOG.debug("Removed all {} problems from database at registration", problems);
+
+ // Step 2.1: access data broker within this mount point
+ LOG.debug("DBRead start");
+
+ // Step 2.2: read ne from data store
+ readNetworkElementAndInterfaces();
+ LOG.debug("NETCONF read network element and interfaces completed");
+ equipment.readNetworkElementEquipment();
+ LOG.debug("NETCONF read equipment completed");
+
+ // Step 2.3: read the existing faults and add to DB
+ FaultData resultList = readAllCurrentProblemsOfNode();
+ LOG.debug("NETCONF read current problems completed");
+ equipment.addProblemsofNode(resultList);
+
+ faultService.initCurrentProblemStatus(nodeId, resultList);
+ LOG.debug("DB write current problems completed");
+
+ equipmentService.writeEquipment(nodeId, equipment.getEquipmentData());
+
+ LOG.info("Found info at {} for device {} number of problems: {}", getMountpoint(), getUuId(),
+ resultList.size());
+ }
+
+ /**
+ * @param nNode
+ * set core-model-capability
+ */
+ public void setCoreModel(@NonNull NetconfNode nNode) {
+ NetworkElementConnectionBuilder eb = new NetworkElementConnectionBuilder();
+
+ String namespaceRevision;
+ QName QNAME_COREMODEL = QName.create("urn:onf:params:xml:ns:yang:core-model", "2017-03-20", "core-model").intern();
+
+ Capabilities availableCapabilities = Capabilities.getAvailableCapabilities(nNode);
+ namespaceRevision = availableCapabilities.getRevisionForNamespace(QNAME_COREMODEL);
+ if (Capabilities.isNamespaceSupported(namespaceRevision)) {
+ eb.setCoreModelCapability(namespaceRevision);
+ } else {
+ eb.setCoreModelCapability("Unsupported");
+ }
+ dataProvider.updateNetworkConnection22(eb.build(), acessor.getNodeId().getValue());
+ }
+ /**
+ * Remove all entries from list
+ */
+ @Override
+ public int removeAllCurrentProblemsOfNode() {
+ return faultService.removeAllCurrentProblemsOfNode(nodeId);
+ }
+
+ @Override
+ public void register() {
+
+ // Setup microwaveEventListener for notification service
+ doRegisterEventListener(acessor.getMountpoint());
+
+ // Register netconf stream
+ acessor.registerNotificationsStream(NetconfAccessor.DefaultNotificationsStream);
+
+ // Set core-model revision value in "core-model-capability" field
+ setCoreModel(acessor.getNetconfNode());
+
+ // -- Read data from NE
+ initialReadFromNetworkElement();
+
+ // create automatic empty maintenance entry into db before reading and listening
+ // for problems
+ maintenanceService.createIfNotExists(mountPointNodeName);
+
+ aaiProviderClient.onDeviceRegistered(mountPointNodeName);
+ // -- Register NE to performance manager
+ performanceManager.registration(mountPointNodeName, this);
+
+ //events will be already pushed by base devmgr (needs more clarification SDNC-1123)
+ //eventListenerHandler.registration(mountPointNodeName, acessor.getNetconfNode());
+ //LOG.debug("refresh necon entry for {} with type {} not",mountPointNodeName,this.getDeviceType());
+ //eventListenerHandler.connectIndication(mountPointNodeName, getDeviceType());
+ LOG.info("Starting Event listener finished. Added Netconf device:{} type:{}", mountPointNodeName,
+ getDeviceType());
+
+ }
+
+
+ @Override
+ public void deregister() {
+ maintenanceService.deleteIfNotRequired(mountPointNodeName);
+ performanceManager.deRegistration(mountPointNodeName);
+ aaiProviderClient.onDeviceUnregistered(mountPointNodeName);
+ faultService.removeAllCurrentProblemsOfNode(acessor.getNodeId());
+ }
+
+ @Override
+ public void close() throws Exception {
+ // Close to be implemented
+ }
+
+
+ @Override
+ public NetworkElementDeviceType getDeviceType() {
+ return NetworkElementDeviceType.Optical;
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Microwave.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Microwave.java
new file mode 100644
index 000000000..836f36214
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElement12Microwave.java
@@ -0,0 +1,410 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne;
+
+import java.util.List;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.Helper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.OnfMicrowaveModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.DeviceManagerOnfConfiguration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications.NotificationActor;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications.NotificationWorker;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.EquipmentService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.binding.api.MountPoint;
+import org.opendaylight.mdsal.binding.api.NotificationService;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.extension.g.Extension;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Get information over NETCONF device according to ONF Coremodel. Read networkelement and conditional packages.
+ *
+ * Get conditional packages from Networkelement Possible interfaces are: MWPS, LTP(MWPS-TTP), MWAirInterfacePac,
+ * MicrowaveModel-ObjectClasses-AirInterface ETH-CTP,LTP(Client), MW_EthernetContainer_Pac MWS, LTP(MWS-CTP-xD),
+ * MWAirInterfaceDiversityPac, MicrowaveModel-ObjectClasses-AirInterfaceDiversity MWS, LTP(MWS-TTP),
+ * ,MicrowaveModel-ObjectClasses-HybridMwStructure MWS, LTP(MWS-TTP),
+ * ,MicrowaveModel-ObjectClasses-PureEthernetStructure
+ *
+ * @author herbert
+ *
+ */
+public class ONFCoreNetworkElement12Microwave extends ONFCoreNetworkElement12Basic
+ implements NotificationActor<EventlogEntity> {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ONFCoreNetworkElement12Microwave.class);
+
+ private final @NonNull FaultService microwaveEventListener;
+ private final @NonNull EquipmentService equipmentService;
+ private final @NonNull OnfMicrowaveModel microwaveModel;
+ private final NotificationWorker<EventlogEntity> notificationQueue;
+
+ private ListenerRegistration<NotificationListener> listenerRegistrationresult = null;
+
+ /*-----------------------------------------------------------------------------
+ * Construction
+ */
+
+ /**
+ * Constructor
+ *
+ * @param acessor for device
+ * @param serviceProvider to get services
+ * @param onfMicrowaveModel handling ofmicrosoft model data
+ */
+ public ONFCoreNetworkElement12Microwave(@NonNull NetconfBindingAccessor acessor,
+ @NonNull DeviceManagerServiceProvider serviceProvider, DeviceManagerOnfConfiguration configuration,
+ OnfMicrowaveModel onfMicrowaveModel) {
+
+ super(acessor, serviceProvider, configuration);
+ this.microwaveModel = onfMicrowaveModel;
+
+ this.microwaveEventListener = serviceProvider.getFaultService();
+ this.equipmentService = serviceProvider.getEquipmentService();
+
+ this.notificationQueue = new NotificationWorker<>(1, 100, this);
+ this.microwaveModel.setNotificationQueue(notificationQueue);
+
+ }
+
+ /*-----------------------------------------------------------------------------
+ * Functions
+ */
+
+ /**
+ * @param acessor
+ * @param serviceProvider
+ * @param configuration
+ * @param onfMicrowaveModel
+ */
+ /**
+ * DeviceMonitor Prepare check by updating NE state and reading all interfaces.
+ */
+ @Override
+ public void prepareCheck() {
+ synchronized (dmLock) {
+ boolean change = readNetworkElementAndInterfaces();
+ if (change) {
+ int problems = microwaveEventListener.removeAllCurrentProblemsOfNode(nodeId);
+ FaultData resultList = readAllCurrentProblemsOfNode();
+ microwaveEventListener.initCurrentProblemStatus(nodeId, resultList);
+ LOG.info("Resync mountpoint {} for device {}. Removed {}. Current problems: {}", getMountpoint(),
+ getUuId(), problems, resultList.size());
+ }
+ }
+ }
+
+ // public boolean checkIfConnectionToMediatorIsOk() -> Shifted to super class
+ // public boolean checkIfConnectionToNeIsOk() -> Shifted to super class
+
+ /*-----------------------------------------------------------------------------
+ * Synchronization
+ */
+
+ // public void initSynchronizationExtension() -> Shifted to super class
+ // private InstanceList readPTPClockInstances() -> Shifted to super class
+
+ /*-----------------------------------------------------------------------------
+ * Services for NE/Device synchronization
+ */
+
+ /**
+ * Handling of specific Notifications from NE, indicating changes and need for synchronization.
+ *
+ * <attribute-value-changed-notification xmlns="urn:onf:params:xml:ns:yang:microwave-model">
+ * <attribute-name>/equipment-pac/equipment-current-problems</attribute-name>
+ * <object-id-ref>CARD-1.1.1.0</object-id-ref> <new-value></new-value> </attribute-value-changed-notification>
+ * <attribute-value-changed-notification xmlns="urn:onf:params:xml:ns:yang:microwave-model">
+ * <attribute-name>/network-element/extension[value-name="top-level-equipment"]/value</attribute-name>
+ * <object-id-ref>Hybrid-Z</object-id-ref>
+ * <new-value>SHELF-1.1.0.0,IDU-1.55.0.0,ODU-1.56.0.0,IDU-1.65.0.0</new-value>
+ * </attribute-value-changed-notification>
+ */
+ @Override
+ public void notificationActor(@NonNull EventlogEntity notification) {
+
+ LOG.debug("Enter change notification listener");
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Notification: {}", notification);
+ }
+ String attributeName = notification.getAttributeName();
+ if (attributeName != null) {
+ if (attributeName.equals("/equipment-pac/equipment-current-problems")) {
+ syncEquipmentPac(notification.getObjectId());
+ } else if (attributeName.equals("/network-element/extension[value-name=\"top-level-equipment\"]/value")) {
+ initialReadFromNetworkElement();
+ }
+ }
+ LOG.debug("Leave change notification listener");
+ }
+
+ /**
+ * Synchronize problems for a specific equipment-pac
+ *
+ * @param uuidString of the equipment-pac
+ */
+ private void syncEquipmentPac(String uuidString) {
+
+ int problems = microwaveEventListener.removeObjectsCurrentProblemsOfNode(nodeId, uuidString);
+ LOG.debug("Removed {} problems for uuid {}", problems, uuidString);
+
+ FaultData resultList = equipment.addProblemsofNodeObject(uuidString);
+ microwaveEventListener.initCurrentProblemStatus(nodeId, resultList);
+ LOG.debug("Added {} problems for uuid {}", resultList.size(), uuidString);
+
+ }
+
+
+ /*-----------------------------------------------------------------------------
+ * Problem/Fault related functions
+ */
+
+ /**
+ * Read during startup all relevant structure and status parameters from device
+ */
+ @Override
+ public void initialReadFromNetworkElement() {
+ LOG.debug("Get info about {}", getMountpoint());
+
+ int problems = microwaveEventListener.removeAllCurrentProblemsOfNode(nodeId);
+ LOG.debug("Removed all {} problems from database at registration", problems);
+
+ // Step 2.1: access data broker within this mount point
+ LOG.debug("DBRead start");
+
+ // Step 2.2: read ne from data store
+ readNetworkElementAndInterfaces();
+ LOG.debug("NETCONF read network element and interfaces completed");
+ equipment.readNetworkElementEquipment();
+ LOG.debug("NETCONF read equipment completed");
+
+ // Step 2.3: read the existing faults and add to DB
+ FaultData resultList = readAllCurrentProblemsOfNode();
+ LOG.debug("NETCONF read current problems completed");
+ equipment.addProblemsofNode(resultList);
+
+ microwaveEventListener.initCurrentProblemStatus(nodeId, resultList);
+ LOG.debug("DB write current problems completed");
+ equipmentService.writeEquipment(nodeId, equipment.getEquipmentData());
+
+ LOG.info("Found info at {} for device {} number of problems: {}", getMountpoint(), getUuId(),
+ resultList.size());
+ }
+
+ /**
+ * LOG the newly added problems of the interface pac
+ *
+ * @param idxStart
+ * @param uuid
+ * @param resultList
+ */
+ private void debugResultList(String uuid, FaultData resultList, int idxStart) {
+ if (LOG.isDebugEnabled()) {
+ StringBuilder sb = new StringBuilder();
+ int idx = 0;
+ for (int t = idxStart; t < resultList.size(); t++) {
+ sb.append(idx++);
+ sb.append(":{");
+ sb.append(resultList.get(t));
+ sb.append('}');
+ }
+ LOG.debug("Found problems {} {}", uuid, sb);
+ }
+ }
+
+ /**
+ * Read current problems of AirInterfaces and EthernetContainer according to NE status into DB
+ *
+ * @return List with all problems
+ */
+ @Override
+ protected FaultData readAllCurrentProblemsOfNode() {
+
+ // Step 2.3: read the existing faults and add to DB
+ FaultData resultList = new FaultData();
+ int idxStart; // Start index for debug messages
+ @NonNull
+ UniversalId uuid;
+
+ synchronized (getPmLock()) {
+ for (Lp lp : getInterfaceList()) {
+
+ idxStart = resultList.size();
+ uuid = Helper.nnGetUniversalId(lp.getUuid());
+ @Nullable
+ Class<?> lpClass = getLpExtension(lp);
+
+ ONFLayerProtocolName lpName = ONFLayerProtocolName.valueOf(lp.getLayerProtocolName());
+ microwaveModel.readTheFaultsOfMicrowaveModel(lpName, lpClass, uuid, resultList);
+ debugResultList(uuid.getValue(), resultList, idxStart);
+ }
+ }
+
+ // Step 2.4: Read other problems from mountpoint
+ if (isNetworkElementCurrentProblemsSupporting12) {
+ idxStart = resultList.size();
+ readNetworkElementCurrentProblems12(resultList);
+ debugResultList("CurrentProblems12", resultList, idxStart);
+ }
+
+ return resultList;
+
+ }
+
+ /**
+ * Get from LayerProtocolExtensions the related generated ONF Interface PAC class which represents it.
+ *
+ * @param lp logical termination point
+ * @return Class of InterfacePac
+ */
+ @Nullable
+ private Class<?> getLpExtension(@Nullable Lp lp) {
+
+ String capability = EMPTY;
+ String revision = EMPTY;
+ String conditionalPackage = EMPTY;
+ Class<?> res = null;
+
+ if (lp != null) {
+ for (Extension e : getExtensionList(lp)) {
+ String valueName = e.getValueName();
+ if (valueName != null) {
+ if (valueName.contentEquals("capability")) {
+ capability = e.getValue();
+ if (capability != null) {
+ int idx = capability.indexOf('?');
+ if (idx != -1) {
+ capability = capability.substring(0, idx);
+ }
+ }
+ }
+ if (valueName.contentEquals("revision")) {
+ revision = e.getValue();
+ }
+ if (valueName.contentEquals("conditional-package")) {
+ conditionalPackage = e.getValue();
+ }
+ }
+ }
+ }
+ // QName qName =
+ // org.opendaylight.yangtools.yang.common.QName.create("urn:onf:params:xml:ns:yang:microwave-model",
+ // "2017-03-24", "mw-air-interface-pac").intern();
+ LOG.info("LpExtension capability={} revision={} conditionalPackage={}", capability, revision,
+ conditionalPackage);
+ if (capability != null && !capability.isEmpty() && !revision.isEmpty() && !conditionalPackage.isEmpty()) {
+ try {
+ QName qName = QName.create(capability, revision, conditionalPackage);
+ res = this.microwaveModel.getClassForLtpExtension(qName);
+ } catch (IllegalArgumentException e) {
+ LOG.warn("Can not create QName from ({}{}{}): {}", capability, revision, conditionalPackage,
+ e.getMessage());
+ }
+ }
+ return res;
+ }
+
+ /**
+ * Read element from class that could be not available
+ *
+ * @param ltp layer termination point
+ * @return List with extension parameters or empty list
+ */
+ @NonNull
+ private static List<Extension> getExtensionList(@Nullable Lp ltp) {
+ if (ltp != null) {
+ return YangHelper.getList(ltp.nonnullExtension());
+ } else {
+ return EMPTYLTPEXTENSIONLIST;
+ }
+ }
+
+ @Override
+ public Optional<PerformanceDataLtp> getLtpHistoricalPerformanceData() {
+ synchronized (getPmLock()) {
+ if (pmLp != null) {
+ LOG.debug("Enter query PM");
+ @SuppressWarnings("null")
+ @NonNull
+ Lp lp = pmLp;
+ ONFLayerProtocolName lpName = ONFLayerProtocolName.valueOf(lp.getLayerProtocolName());
+ return Optional.of(this.microwaveModel.getLtpHistoricalPerformanceData(lpName, lp));
+ }
+ return Optional.empty();
+ }
+ }
+
+ /**
+ * Remove all entries from list
+ */
+ @Override
+ public int removeAllCurrentProblemsOfNode() {
+ return microwaveEventListener.removeAllCurrentProblemsOfNode(nodeId);
+ }
+
+ /**
+ * Register the listener
+ */
+ @Override
+ public void doRegisterEventListener(MountPoint mountPoint) {
+ LOG.info("Begin registration listener for Mountpoint");
+ final Optional<NotificationService> optionalNotificationService =
+ mountPoint.getService(NotificationService.class);
+ final NotificationService notificationService = optionalNotificationService.get();
+ // notificationService.registerNotificationListener(microwaveEventListener);
+ listenerRegistrationresult =
+ notificationService.registerNotificationListener(microwaveModel.getNotificationListener());
+ LOG.info("End registration listener for Mountpoint Result: {}", listenerRegistrationresult);
+ }
+
+ /*------------------------------------------------------------
+ * private function to access database
+ */
+
+ /*-----------------------------------------------------------------------------
+ * Reading problems for the networkElement V1.2
+ */
+
+ @Override
+ public void close() throws Exception {
+ if (listenerRegistrationresult != null) {
+ listenerRegistrationresult.close();
+ }
+ }
+
+ @Override
+ public NetworkElementDeviceType getDeviceType() {
+ return NetworkElementDeviceType.Wireless;
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElementBase.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElementBase.java
new file mode 100644
index 000000000..318741dd9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/ONFCoreNetworkElementBase.java
@@ -0,0 +1,102 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+/**
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ONFCoreNetworkElementRepresentation;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author herbert
+ *
+ */
+public abstract class ONFCoreNetworkElementBase implements AutoCloseable, ONFCoreNetworkElementRepresentation {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ONFCoreNetworkElementBase.class);
+
+ protected static final String EMPTY = "";
+
+ private final String mountPointNodeName;
+ private final NodeId nodeId;
+ private final DataBroker netconfNodeDataBroker;
+ private final NetconfBindingAccessor acessor;
+
+ protected ONFCoreNetworkElementBase(NetconfBindingAccessor acessor) {
+ LOG.info("Create ONFCoreNetworkElementBase");
+ this.mountPointNodeName = acessor.getNodeId().getValue();
+ this.nodeId = acessor.getNodeId();
+ this.netconfNodeDataBroker = acessor.getDataBroker();
+ this.acessor = acessor;
+
+ }
+
+ @Override
+ public Optional<NetconfAccessor> getAcessor() {
+ return Optional.of(acessor);
+ }
+
+ @Override
+ public String getMountPointNodeName() {
+ return mountPointNodeName;
+ }
+
+ /**
+ * @return the netconfNodeDataBroker
+ */
+ public DataBroker getNetconfNodeDataBroker() {
+ return netconfNodeDataBroker;
+ }
+
+ @Override
+ public void warmstart() {
+ int problems = removeAllCurrentProblemsOfNode();
+ LOG.debug("Removed all {} problems from database at deregistration for {}", problems, mountPointNodeName);
+ }
+
+ @Override
+ public NodeId getNodeId() {
+ return nodeId;
+ }
+
+ public TransactionUtils getGenericTransactionUtils() {
+ return acessor.getTransactionUtils();
+ }
+
+ /*---------------------------------------------------------------
+ * Getter/ Setter
+ */
+ @Override
+ public String getMountpoint() {
+ return mountPointNodeName;
+ }
+
+ @Override
+ public DataBroker getDataBroker() {
+ return netconfNodeDataBroker;
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationActor.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationActor.java
new file mode 100644
index 000000000..0fc9397ee
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationActor.java
@@ -0,0 +1,26 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications;
+
+import org.eclipse.jdt.annotation.NonNull;
+
+public interface NotificationActor<T> {
+
+ public void notificationActor(@NonNull T item);
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationWorker.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationWorker.java
new file mode 100644
index 000000000..e46383599
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/notifications/NotificationWorker.java
@@ -0,0 +1,89 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications;
+
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+
+/**
+ * Provide a thread that is receiving and process notifications.
+ *
+ * @param <T> represents the object that is provided with a notification and forwarded to the NotificationActor<T>.
+ */
+
+public class NotificationWorker<T> implements AutoCloseable {
+
+ private final BlockingQueue<T> workQueue;
+ private final ExecutorService service;
+ private final NotificationActor<T> actor;
+
+ public NotificationWorker(int numWorkers, int workQueueSize, NotificationActor<T> actorObject) {
+ workQueue = new LinkedBlockingQueue<>(workQueueSize);
+ service = Executors.newFixedThreadPool(numWorkers);
+ actor = actorObject;
+
+ for (int i = 0; i < numWorkers; i++) {
+ service.submit(new Worker<>(workQueue, actor));
+ }
+ }
+
+ public void put(T item) {
+ try {
+ workQueue.put(item);
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ }
+ }
+
+ @Override
+ public void close() throws Exception {
+ // Auto-generated method stub
+ }
+
+ private static class Worker<T> implements Runnable {
+ private final BlockingQueue<T> workQueue;
+ private final NotificationActor<T> actor;
+
+
+ public Worker(BlockingQueue<T> workQueue, NotificationActor<T> actor) {
+ this.workQueue = workQueue;
+ this.actor = actor;
+ }
+
+ @Override
+ public void run() {
+ while (!Thread.currentThread().isInterrupted()) {
+ try {
+ T item = workQueue.take();
+ if (item != null) {
+ // Process item
+ actor.notificationActor(item);
+ }
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ break;
+ }
+ }
+ }
+ }
+
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/util/ONFLayerProtocolName.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/util/ONFLayerProtocolName.java
new file mode 100644
index 000000000..f9770d9fa
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/util/ONFLayerProtocolName.java
@@ -0,0 +1,64 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public enum ONFLayerProtocolName {
+
+ MWAIRINTERFACE("MWPS"), //V1.0 + V1.2
+ ETHERNETCONTAINER10("ETH-CTP"), //V1.0
+ ETHERNETCONTAINER12("ETC"), //V1.2 + V1.2.1.1
+ ETHERNETPHYSICAL("ETY"), //V1.2
+ TDMCONTAINER("TDM"), //V1.2
+ STRUCTURE("MWS"), //V1.0 + V1.2
+ ETHERNET("ETH"), //V1.2
+ UNKNOWN("");
+
+ private static final Logger LOG = LoggerFactory.getLogger(ONFLayerProtocolName.class);
+
+ private final String myLayerProtocolName;
+
+ ONFLayerProtocolName(String myLayerProtocolName) {
+ this.myLayerProtocolName = myLayerProtocolName;
+ }
+
+ public boolean is(
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.LayerProtocolName onfName) {
+ return myLayerProtocolName.equals(onfName.getValue());
+ }
+
+ public static @NonNull ONFLayerProtocolName valueOf(
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.LayerProtocolName onfName) {
+ for (ONFLayerProtocolName protocol : ONFLayerProtocolName.values()) {
+ if (protocol.is(onfName)) {
+ return protocol;
+ }
+ }
+ LOG.info("Can not map {}. Use Unknown", onfName.getValue());
+ return UNKNOWN;
+ }
+
+ public String getValue() {
+ return myLayerProtocolName;
+ }
+
+}
+
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
new file mode 100644
index 000000000..604a0384f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true">
+
+ <reference id="netconfNetworkElementService"
+ availability="mandatory" activation="eager"
+ interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/>
+
+ <bean id="provider"
+ class="org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.DeviceManagerOnfImpl"
+ init-method="init" destroy-method="close">
+ <property name="netconfNetworkElementService" ref="netconfNetworkElementService"/>
+ </bean>
+</blueprint>
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/version.properties b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/version.properties
new file mode 100644
index 000000000..6638c04f9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/resources/version.properties
@@ -0,0 +1,24 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# Properties filled in by maven during build process
+version = ${project.version}
+build = ${buildtime}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/bbf-tr-196-2-0-3-full@2018-04-08.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/bbf-tr-196-2-0-3-full@2018-04-08.yang
new file mode 100644
index 000000000..d10c58bd5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/bbf-tr-196-2-0-3-full@2018-04-08.yang
@@ -0,0 +1,17194 @@
+module bbf-tr-196-2-0-3-full {
+ namespace "urn:onf:otcc:wireless:yang:radio-access";
+ prefix ran;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ organization
+ "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Project";
+ contact
+ "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Ramakrishnan, Shanthakumar (Shanth) <Shanthakumar.Ramakrishnan@commscope.com> Martin Skorupski <mailto:martin.skorupski@highstreet-technologies.com>";
+ description
+ "This module contains a collection of YANG definitions for managing radio access network (RAN) devices.";
+
+ revision 2018-04-08 {
+ description
+ "Initial version, used only for ONAP PoC 2018-06-25";
+ reference
+ "ONF TR ???: A YANG Data Model for Radio Access Networks.
+ BBF TR-196 2.0.3 full";
+ }
+
+ list fap-service {
+ key "alias";
+ uses fap-service-g;
+ container capabilities {
+ uses capabilities-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.";
+ container capabilities-umts {
+ uses capabilities-umts-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.UMTS.";
+ container capabilities-umts-self-config {
+ uses capabilities-umts-self-config-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+ }
+ }
+ container capabilities-lte {
+ uses capabilities-lte-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.LTE.";
+ }
+ container capabilities-cdma2000 {
+ uses capabilities-cdma2000-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.CDMA2000.";
+ container capabilities-cdma2000-one-x {
+ uses capabilities-cdma2000-one-x-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.CDMA2000.OneX.";
+ container capabilities-cdma2000-one-x-self-config {
+ uses capabilities-cdma2000-one-x-self-config-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+ }
+ }
+ container capabilities-cdma2000-hrpd {
+ uses capabilities-cdma2000-hrpd-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+ container capabilities-cdma2000-hrpd-self-config {
+ uses capabilities-cdma2000-hrpd-self-config-g;
+ description
+ "Container for object class FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+ }
+ }
+ }
+ }
+ container fap-control {
+ uses fap-control-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.";
+ container fap-control-umts {
+ uses fap-control-umts-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.UMTS.";
+ container fap-control-umts-self-config {
+ uses fap-control-umts-self-config-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+ }
+ container fap-control-umts-gateway {
+ uses fap-control-umts-gateway-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.UMTS.Gateway.";
+ }
+ }
+ container fap-control-lte {
+ uses fap-control-lte-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.LTE.";
+ container fap-control-lte-gateway {
+ uses fap-control-lte-gateway-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.LTE.Gateway.";
+ }
+ }
+ container fap-control-cdma2000 {
+ uses fap-control-cdma2000-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.";
+ container fap-control-cdma2000-time {
+ uses fap-control-cdma2000-time-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.Time.";
+ }
+ container fap-control-cdma2000-one-x {
+ uses fap-control-cdma2000-one-x-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.";
+ container fap-control-cdma2000-one-x-active-handin-measurement {
+ uses fap-control-cdma2000-one-x-active-handin-measurement-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+ }
+ container fap-control-cdma2000-one-x-self-config {
+ uses fap-control-cdma2000-one-x-self-config-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+ }
+ }
+ container fap-control-cdma2000-gateway {
+ uses fap-control-cdma2000-gateway-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+ }
+ container fap-control-cdma2000-hrpd {
+ uses fap-control-cdma2000-hrpd-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+ container fap-control-cdma2000-hrpd-self-config {
+ uses fap-control-cdma2000-hrpd-self-config-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+ }
+ container fap-control-cdma2000-hrpd-a13 {
+ uses fap-control-cdma2000-hrpd-a13-g;
+ description
+ "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+ list fap-control-cdma2000-hrpd-a13-color-code-to-uati104 {
+ key "color-code uati104";
+ uses fap-control-cdma2000-hrpd-a13-color-code-to-uati104-g;
+ description
+ "List of object class FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+ }
+ list fap-control-cdma2000-hrpd-a13-hrpd-subnet-to-ip {
+ key "a13-ip-address";
+ uses fap-control-cdma2000-hrpd-a13-hrpd-subnet-to-ip-g;
+ description
+ "List of object class FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+ }
+ }
+ }
+ }
+ }
+ container access-mgmt {
+ uses access-mgmt-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.";
+ container access-mgmt-umts {
+ uses access-mgmt-umts-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.UMTS.";
+ list access-mgmt-umts-member-detail {
+ key "imsi";
+ uses access-mgmt-umts-member-detail-g;
+ description
+ "List of object class FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+ }
+ container access-mgmt-umts-local-ip-access {
+ uses access-mgmt-umts-local-ip-access-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+ }
+ }
+ container access-mgmt-lte {
+ uses access-mgmt-lte-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.LTE.";
+ container access-mgmt-lte-local-ip-access {
+ uses access-mgmt-lte-local-ip-access-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+ }
+ }
+ container access-mgmt-cdma2000 {
+ uses access-mgmt-cdma2000-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.";
+ list access-mgmt-cdma2000-member-detail {
+ key "imsi";
+ uses access-mgmt-cdma2000-member-detail-g;
+ description
+ "List of object class FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+ }
+ container access-mgmt-cdma2000-local-ip-access {
+ uses access-mgmt-cdma2000-local-ip-access-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.";
+ container access-mgmt-cdma2000-local-ip-access-hrpd {
+ uses access-mgmt-cdma2000-local-ip-access-hrpd-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+ list access-mgmt-cdma2000-local-ip-access-hrpd-egress-filter {
+ key "subnet subnet-mask";
+ uses access-mgmt-cdma2000-local-ip-access-hrpd-egress-filter-g;
+ description
+ "List of object class FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+ }
+ }
+ }
+ }
+ container access-mgmt-legacy {
+ uses access-mgmt-legacy-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.Legacy.";
+ container access-mgmt-legacy-local-ip-access {
+ uses access-mgmt-legacy-local-ip-access-g;
+ description
+ "Container for object class FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+ list access-mgmt-legacy-local-ip-access-rule {
+ key "dest-ip-address dest-subnet-mask protocol";
+ uses access-mgmt-legacy-local-ip-access-rule-g;
+ description
+ "List of object class FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+ }
+ }
+ }
+ }
+ container cell-config {
+ uses cell-config-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.";
+ container umts {
+ uses umts-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.";
+ container umts-cn {
+ uses umts-cn-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.CN.";
+ container umts-cn-cs-domain {
+ uses umts-cn-cs-domain-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+ }
+ container umts-cn-ps-domain {
+ uses umts-cn-ps-domain-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+ }
+ }
+ container umts-ran {
+ uses umts-ran-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.";
+ container umts-ran-csg {
+ uses umts-ran-csg-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+ container umts-ran-csg-csgpsc-split-info {
+ uses umts-ran-csg-csgpsc-split-info-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+ }
+ }
+ container umts-ran-cell-selection {
+ uses umts-ran-cell-selection-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+ }
+ container umts-ran-rrc-timers {
+ uses umts-ran-rrc-timers-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+ }
+ container umts-ran-drx {
+ uses umts-ran-drx-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+ }
+ container umts-ran-power-control {
+ uses umts-ran-power-control-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+ }
+ container umts-ran-cell-restriction {
+ uses umts-ran-cell-restriction-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+ }
+ container umts-ran-intra-freq-meas {
+ uses umts-ran-intra-freq-meas-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+ list umts-ran-intra-freq-meas-instance {
+ key "intra-frequency-event-identity";
+ uses umts-ran-intra-freq-meas-instance-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+ }
+ }
+ container umts-ran-inter-freq-meas {
+ uses umts-ran-inter-freq-meas-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+ list umts-ran-inter-freq-meas-instance {
+ key "intra-frequency-event-identity";
+ uses umts-ran-inter-freq-meas-instance-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+ }
+ }
+ container umts-ran-inter-rat-meas {
+ uses umts-ran-inter-rat-meas-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+ list umts-ran-inter-rat-meas-instance {
+ key "inter-rat-event-identity";
+ uses umts-ran-inter-rat-meas-instance-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+ }
+ }
+ container umts-ran-ue-internal-meas {
+ uses umts-ran-ue-internal-meas-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+ }
+ container umts-ran-rf {
+ uses umts-ran-rf-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+ }
+ container umts-ran-neighbor-list {
+ uses umts-ran-neighbor-list-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+ list umts-ran-neighbor-list-intra-freq-cell {
+ key "pcpich-scrambling-code";
+ uses umts-ran-neighbor-list-intra-freq-cell-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+ }
+ list umts-ran-neighbor-list-inter-freq-cell {
+ key "pcpich-scrambling-code uarfcndl";
+ uses umts-ran-neighbor-list-inter-freq-cell-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+ }
+ container umts-ran-neighbor-list-inter-rat-cell {
+ uses umts-ran-neighbor-list-inter-rat-cell-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+ list umts-ran-neighbor-list-inter-rat-cell-gsm {
+ key "bccharfcn";
+ uses umts-ran-neighbor-list-inter-rat-cell-gsm-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+ }
+ }
+ }
+ container umts-ran-neighbor-list-in-use {
+ uses umts-ran-neighbor-list-in-use-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+ list umts-ran-neighbor-list-in-use-intra-freq-cell {
+ key "pcpich-scrambling-code";
+ uses umts-ran-neighbor-list-in-use-intra-freq-cell-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+ }
+ list umts-ran-neighbor-list-in-use-inter-freq-cell {
+ key "pcpich-scrambling-code uarfcndl";
+ uses umts-ran-neighbor-list-in-use-inter-freq-cell-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+ }
+ container umts-ran-neighbor-list-in-use-inter-rat-cell {
+ uses umts-ran-neighbor-list-in-use-inter-rat-cell-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+ list umts-ran-neighbor-list-in-use-inter-rat-cell-gsm {
+ key "bccharfcn";
+ uses umts-ran-neighbor-list-in-use-inter-rat-cell-gsm-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+ }
+ }
+ }
+ }
+ container umts-rab {
+ uses umts-rab-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.UMTS.RAB.";
+ }
+ }
+ container lte {
+ uses lte-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.";
+ list lte-tunnel {
+ key "tunnel-ref";
+ uses lte-tunnel-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+ }
+ container lte-epc {
+ uses lte-epc-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.EPC.";
+ list lte-epc-plmn-list {
+ key "plmnid";
+ uses lte-epc-plmn-list-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+ }
+ list lte-epc-qo-s {
+ key "qci";
+ uses lte-epc-qo-s-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+ }
+ }
+ container lte-ran {
+ uses lte-ran-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.";
+ container lte-ran-common {
+ uses lte-ran-common-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Common.";
+ }
+ container lte-ran-s1-ap {
+ uses lte-ran-s1-ap-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+ }
+ container lte-ran-s1-u {
+ uses lte-ran-s1-u-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+ }
+ container lte-ran-rf {
+ uses lte-ran-rf-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RF.";
+ }
+ container lte-ran-phy {
+ uses lte-ran-phy-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.";
+ container lte-ran-phy-antenna-info {
+ uses lte-ran-phy-antenna-info-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+ }
+ container lte-ran-phy-pdsch {
+ uses lte-ran-phy-pdsch-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+ }
+ container lte-ran-phy-srs {
+ uses lte-ran-phy-srs-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+ }
+ container lte-ran-phy-prach {
+ uses lte-ran-phy-prach-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+ }
+ container lte-ran-phy-pucch {
+ uses lte-ran-phy-pucch-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+ }
+ container lte-ran-phy-pusch {
+ uses lte-ran-phy-pusch-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+ container lte-ran-phy-pusch-ulrs {
+ uses lte-ran-phy-pusch-ulrs-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+ }
+ }
+ container lte-ran-phy-ul-power-control {
+ uses lte-ran-phy-ul-power-control-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+ }
+ container lte-ran-phy-mbsfn {
+ uses lte-ran-phy-mbsfn-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+ list lte-ran-phy-mbsfn-sf-config-list {
+ key "radio-frame-allocation-period radioframe-allocation-offset radio-frame-allocation-size";
+ uses lte-ran-phy-mbsfn-sf-config-list-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+ }
+ }
+ container lte-ran-phy-prs {
+ uses lte-ran-phy-prs-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+ }
+ container lte-ran-phy-tdd-frame {
+ uses lte-ran-phy-tdd-frame-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+ }
+ }
+ container lte-ran-mac {
+ uses lte-ran-mac-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.";
+ container lte-ran-mac-rach {
+ uses lte-ran-mac-rach-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+ }
+ container lte-ran-mac-drx {
+ uses lte-ran-mac-drx-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+ }
+ container lte-ran-mac-ulsch {
+ uses lte-ran-mac-ulsch-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+ }
+ }
+ container lte-ran-rlc {
+ uses lte-ran-rlc-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.";
+ container lte-ran-rlc-srb1 {
+ uses lte-ran-rlc-srb1-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+ }
+ container lte-ran-rlc-srb2 {
+ uses lte-ran-rlc-srb2-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+ }
+ }
+ container lte-ran-rrc-timers {
+ uses lte-ran-rrc-timers-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+ }
+ container lte-ran-cell-restriction {
+ uses lte-ran-cell-restriction-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+ }
+ container lte-ran-mobility {
+ uses lte-ran-mobility-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.";
+ container lte-ran-mobility-idle-mode {
+ uses lte-ran-mobility-idle-mode-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.";
+ container lte-ran-mobility-idle-mode-common {
+ uses lte-ran-mobility-idle-mode-common-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+ }
+ container lte-ran-mobility-idle-mode-intra-freq {
+ uses lte-ran-mobility-idle-mode-intra-freq-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+ }
+ container lte-ran-mobility-idle-mode-inter-freq {
+ uses lte-ran-mobility-idle-mode-inter-freq-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+ list lte-ran-mobility-idle-mode-inter-freq-carrier {
+ key "eutra-carrier-arfcn";
+ uses lte-ran-mobility-idle-mode-inter-freq-carrier-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+ }
+ }
+ container lte-ran-mobility-idle-mode-irat {
+ uses lte-ran-mobility-idle-mode-irat-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.";
+ container lte-ran-mobility-idle-mode-irat-utra {
+ uses lte-ran-mobility-idle-mode-irat-utra-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+ list lte-ran-mobility-idle-mode-irat-utra-utranfdd-freq {
+ key "utra-carrier-arfcn";
+ uses lte-ran-mobility-idle-mode-irat-utra-utranfdd-freq-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+ }
+ }
+ container lte-ran-mobility-idle-mode-irat-geran {
+ uses lte-ran-mobility-idle-mode-irat-geran-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+ list lte-ran-mobility-idle-mode-irat-geran-geran-freq-group {
+ key "bccharfcn";
+ uses lte-ran-mobility-idle-mode-irat-geran-geran-freq-group-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+ }
+ }
+ container lte-ran-mobility-idle-mode-irat-cdma2000 {
+ uses lte-ran-mobility-idle-mode-irat-cdma2000-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+ list lte-ran-mobility-idle-mode-irat-cdma2000-cdma2000-band {
+ key "band-class";
+ uses lte-ran-mobility-idle-mode-irat-cdma2000-cdma2000-band-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+ }
+ }
+ }
+ }
+ container lte-ran-mobility-conn-mode {
+ uses lte-ran-mobility-conn-mode-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.";
+ container lte-ran-mobility-conn-mode-eutra {
+ uses lte-ran-mobility-conn-mode-eutra-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+ }
+ container lte-ran-mobility-conn-mode-irat {
+ uses lte-ran-mobility-conn-mode-irat-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+ }
+ }
+ }
+ container lte-ran-neighbor-list {
+ uses lte-ran-neighbor-list-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+ list lte-ran-neighbor-list-lte-cell {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-lte-cell-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+ }
+ container lte-ran-neighbor-list-inter-rat-cell {
+ uses lte-ran-neighbor-list-inter-rat-cell-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+ list lte-ran-neighbor-list-inter-rat-cell-umts {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-inter-rat-cell-umts-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+ }
+ list lte-ran-neighbor-list-inter-rat-cell-gsm {
+ key "plmnid lac ci";
+ uses lte-ran-neighbor-list-inter-rat-cell-gsm-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+ }
+ list lte-ran-neighbor-list-inter-rat-cell-cdma2000 {
+ key "cid";
+ uses lte-ran-neighbor-list-inter-rat-cell-cdma2000-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+ }
+ }
+ }
+ container lte-ran-neighbor-list-in-use {
+ uses lte-ran-neighbor-list-in-use-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+ list lte-ran-neighbor-list-in-use-lte-cell {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-in-use-lte-cell-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+ }
+ container lte-ran-neighbor-list-in-use-inter-rat-cell {
+ uses lte-ran-neighbor-list-in-use-inter-rat-cell-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+ list lte-ran-neighbor-list-in-use-inter-rat-cell-umts {
+ key "plmnid cid";
+ uses lte-ran-neighbor-list-in-use-inter-rat-cell-umts-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+ }
+ list lte-ran-neighbor-list-in-use-inter-rat-cell-gsm {
+ key "plmnid lac ci";
+ uses lte-ran-neighbor-list-in-use-inter-rat-cell-gsm-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+ }
+ list lte-ran-neighbor-list-in-use-inter-rat-cell-cdma2000 {
+ key "cid";
+ uses lte-ran-neighbor-list-in-use-inter-rat-cell-cdma2000-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+ }
+ }
+ }
+ }
+ }
+ container cdma2000 {
+ uses cdma2000-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.";
+ container cdma2000-one-x {
+ uses cdma2000-one-x-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.";
+ container cdma2000-one-x-ran {
+ uses cdma2000-one-x-ran-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+ container cdma2000-one-x-ran-rf {
+ uses cdma2000-one-x-ran-rf-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+ }
+ container cdma2000-one-x-ran-network-listen-mode-config {
+ uses cdma2000-one-x-ran-network-listen-mode-config-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+ }
+ container cdma2000-one-x-ran-access-parameters {
+ uses cdma2000-one-x-ran-access-parameters-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+ }
+ container cdma2000-one-x-ran-system-parameters {
+ uses cdma2000-one-x-ran-system-parameters-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+ }
+ container cdma2000-one-x-ran-extended-system-parameters {
+ uses cdma2000-one-x-ran-extended-system-parameters-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+ }
+ container cdma2000-one-x-ran-forward-pwr-ctr {
+ uses cdma2000-one-x-ran-forward-pwr-ctr-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+ }
+ container cdma2000-one-x-ran-hard-handoff {
+ uses cdma2000-one-x-ran-hard-handoff-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+ container cdma2000-one-x-ran-hard-handoff-stats {
+ uses cdma2000-one-x-ran-hard-handoff-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+ }
+ }
+ container cdma2000-one-x-ran-power-control {
+ uses cdma2000-one-x-ran-power-control-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+ }
+ list cdma2000-one-x-ran-neighbor-list {
+ key "one-x-neighbor-index neighbor-pn";
+ uses cdma2000-one-x-ran-neighbor-list-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+ }
+ container cdma2000-one-x-ran-apidm {
+ uses cdma2000-one-x-ran-apidm-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+ }
+ container cdma2000-one-x-ran-apidtm {
+ uses cdma2000-one-x-ran-apidtm-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+ }
+ container cdma2000-one-x-ran-appim {
+ uses cdma2000-one-x-ran-appim-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+ list cdma2000-one-x-ran-appim-appirec {
+ key "apsid apnid apband apfreq appnrectype appnreclen appnrec";
+ uses cdma2000-one-x-ran-appim-appirec-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+ }
+ }
+ }
+ container cdma2000-one-x-pcf-config {
+ uses cdma2000-one-x-pcf-config-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+ container cdma2000-one-x-pcf-config-pcf-performance-stats {
+ uses cdma2000-one-x-pcf-config-pcf-performance-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+ }
+ }
+ list cdma2000-one-x-batch-pcfpdsn {
+ key "batch-table-number";
+ uses cdma2000-one-x-batch-pcfpdsn-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+ }
+ list cdma2000-one-x-pcfpdsn {
+ key "pdsn-number security-parameter-index security-key";
+ uses cdma2000-one-x-pcfpdsn-g;
+ container cdma2000-one-x-pcfpdsn-a11-reg-update-stats {
+ uses cdma2000-one-x-pcfpdsn-a11-reg-update-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+ }
+ container cdma2000-one-x-pcfpdsn-pcfpdsn-stats {
+ uses cdma2000-one-x-pcfpdsn-pcfpdsn-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+ }
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+ }
+ container cdma2000-one-x-stats {
+ uses cdma2000-one-x-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+ }
+ container cdma2000-one-x-redirect {
+ uses cdma2000-one-x-redirect-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+ }
+ }
+ container cdma2000-hrpd {
+ uses cdma2000-hrpd-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+ container cdma2000-hrpd-ran {
+ uses cdma2000-hrpd-ran-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.";
+ container cdma2000-hrpd-ran-rf {
+ uses cdma2000-hrpd-ran-rf-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+ }
+ }
+ container cdma2000-hrpd-pcf-config {
+ uses cdma2000-hrpd-pcf-config-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+ container cdma2000-hrpd-pcf-config-pcf-performance-stats {
+ uses cdma2000-hrpd-pcf-config-pcf-performance-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+ }
+ }
+ list cdma2000-hrpd-batch-pcfpdsn {
+ key "batch-table-number batch-table-security-parameter-index batch-table-secret-key";
+ uses cdma2000-hrpd-batch-pcfpdsn-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+ }
+ list cdma2000-hrpd-pcfpdsn {
+ key "pdsn-number security-parameter-index security-key";
+ uses cdma2000-hrpd-pcfpdsn-g;
+ container cdma2000-hrpd-pcfpdsn-a11-session-update-stats {
+ uses cdma2000-hrpd-pcfpdsn-a11-session-update-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+ }
+ container cdma2000-hrpd-pcfpdsn-a11-reg-update-stats {
+ uses cdma2000-hrpd-pcfpdsn-a11-reg-update-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+ }
+ container cdma2000-hrpd-pcfpdsn-aux-a10-stats {
+ uses cdma2000-hrpd-pcfpdsn-aux-a10-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+ }
+ container cdma2000-hrpd-pcfpdsn-pcfpdsn-stats {
+ uses cdma2000-hrpd-pcfpdsn-pcfpdsn-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+ }
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+ }
+ container cdma2000-hrpd-redirect {
+ uses cdma2000-hrpd-redirect-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+ }
+ container cdma2000-hrpd-call-control-stats {
+ uses cdma2000-hrpd-call-control-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+ }
+ container cdma2000-hrpd-qo-s-stats {
+ uses cdma2000-hrpd-qo-s-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+ }
+ container cdma2000-hrpd-rnc-sig-apps-stats {
+ uses cdma2000-hrpd-rnc-sig-apps-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+ }
+ container cdma2000-hrpd-access-auth-config {
+ uses cdma2000-hrpd-access-auth-config-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+ }
+ container cdma2000-hrpd-access-auth-stats {
+ uses cdma2000-hrpd-access-auth-stats-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+ }
+ }
+ container cdma2000-beacon {
+ uses cdma2000-beacon-g;
+ description
+ "Container for object class FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+ list cdma2000-beacon-beacon-list {
+ key "beacon-index";
+ uses cdma2000-beacon-beacon-list-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+ }
+ list cdma2000-beacon-hrpd-beacon-list {
+ key "beacon-index";
+ uses cdma2000-beacon-hrpd-beacon-list-g;
+ description
+ "List of object class FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+ }
+ }
+ }
+ }
+ container rem {
+ uses rem-g;
+ description
+ "Container for object class FAPService.{i}.REM.";
+ container rem-umts {
+ uses rem-umts-g;
+ description
+ "Container for object class FAPService.{i}.REM.UMTS.";
+ container rem-umts-wcdma {
+ uses rem-umts-wcdma-g;
+ description
+ "Container for object class FAPService.{i}.REM.UMTS.WCDMA.";
+ list rem-umts-wcdma-cell {
+ key "rem-umts-wcdma-cell-key";
+ uses rem-umts-wcdma-cell-g;
+ container rem-umts-wcdma-cell-rf {
+ uses rem-umts-wcdma-cell-rf-g;
+ description
+ "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+ }
+ container rem-umts-wcdma-cell-bcch {
+ uses rem-umts-wcdma-cell-bcch-g;
+ description
+ "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+ container rem-umts-wcdma-cell-bcch-csgpsc-split-info {
+ uses rem-umts-wcdma-cell-bcch-csgpsc-split-info-g;
+ description
+ "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+ }
+ container rem-umts-wcdma-cell-bcch-reference-position {
+ uses rem-umts-wcdma-cell-bcch-reference-position-g;
+ description
+ "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+ }
+ }
+ description
+ "List of object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.";
+ }
+ }
+ container rem-umts-gsm {
+ uses rem-umts-gsm-g;
+ description
+ "Container for object class FAPService.{i}.REM.UMTS.GSM.";
+ list rem-umts-gsm-cell {
+ key "arfcn bsic";
+ uses rem-umts-gsm-cell-g;
+ description
+ "List of object class FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+ }
+ }
+ }
+ container rem-lte {
+ uses rem-lte-g;
+ description
+ "Container for object class FAPService.{i}.REM.LTE.";
+ list rem-lte-cell {
+ key "rem-lte-cell-key";
+ uses rem-lte-cell-g;
+ container rem-lte-cell-rf {
+ uses rem-lte-cell-rf-g;
+ description
+ "Container for object class FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+ }
+ container rem-lte-cell-bcch {
+ uses rem-lte-cell-bcch-g;
+ description
+ "Container for object class FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+ list rem-lte-cell-bcch-plmn-list {
+ key "plmnid";
+ uses rem-lte-cell-bcch-plmn-list-g;
+ description
+ "List of object class FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+ }
+ }
+ description
+ "List of object class FAPService.{i}.REM.LTE.Cell.{i}.";
+ }
+ list rem-lte-carrier-meas {
+ key "carrier-arfcndl carrier-ch-width";
+ uses rem-lte-carrier-meas-g;
+ description
+ "List of object class FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+ }
+ }
+ container rem-cdma2000 {
+ uses rem-cdma2000-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.";
+ container rem-cdma2000-one-x {
+ uses rem-cdma2000-one-x-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.OneX.";
+ list rem-cdma2000-one-x-channel {
+ key "sniffing-band-class sniffing-channel-number";
+ uses rem-cdma2000-one-x-channel-g;
+ description
+ "List of object class FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+ }
+ list rem-cdma2000-one-x-cell {
+ key "rem-cdma2000-one-x-cell-key";
+ uses rem-cdma2000-one-x-cell-g;
+ container rem-cdma2000-one-x-cell-rf {
+ uses rem-cdma2000-one-x-cell-rf-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+ }
+ container rem-cdma2000-one-x-cell-control-channel {
+ uses rem-cdma2000-one-x-cell-control-channel-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+ }
+ description
+ "List of object class FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.";
+ }
+ }
+ container rem-cdma2000-hrpd {
+ uses rem-cdma2000-hrpd-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.";
+ list rem-cdma2000-hrpd-channel {
+ key "sniffing-band-class sniffing-channel-number";
+ uses rem-cdma2000-hrpd-channel-g;
+ description
+ "List of object class FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+ }
+ list rem-cdma2000-hrpd-cell {
+ key "rem-cdma2000-hrpd-cell-key";
+ uses rem-cdma2000-hrpd-cell-g;
+ container rem-cdma2000-hrpd-cell-rf {
+ uses rem-cdma2000-hrpd-cell-rf-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+ }
+ container rem-cdma2000-hrpd-cell-control-channel {
+ uses rem-cdma2000-hrpd-cell-control-channel-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+ }
+ description
+ "List of object class FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.";
+ }
+ }
+ container rem-cdma2000-macro-timing {
+ uses rem-cdma2000-macro-timing-g;
+ description
+ "Container for object class FAPService.{i}.REM.CDMA2000.MacroTiming.";
+ list rem-cdma2000-macro-timing-channel {
+ key "band-class channel-number";
+ uses rem-cdma2000-macro-timing-channel-g;
+ description
+ "List of object class FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+ }
+ }
+ }
+ }
+ container transport {
+ uses transport-g;
+ description
+ "Container for object class FAPService.{i}.Transport.";
+ container transport-sip {
+ uses transport-sip-g;
+ description
+ "Container for object class FAPService.{i}.Transport.SIP.";
+ container transport-sip-fcs {
+ uses transport-sip-fcs-g;
+ description
+ "Container for object class FAPService.{i}.Transport.SIP.FCS.";
+ }
+ }
+ container transport-sctp {
+ uses transport-sctp-g;
+ description
+ "Container for object class FAPService.{i}.Transport.SCTP.";
+ list transport-sctp-assoc {
+ key "primary-peer-address local-port";
+ uses transport-sctp-assoc-g;
+ description
+ "List of object class FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+ }
+ }
+ container transport-real-time {
+ uses transport-real-time-g;
+ description
+ "Container for object class FAPService.{i}.Transport.RealTime.";
+ container transport-real-time-perf {
+ uses transport-real-time-perf-g;
+ description
+ "Container for object class FAPService.{i}.Transport.RealTime.Perf.";
+ }
+ }
+ container transport-packet {
+ uses transport-packet-g;
+ description
+ "Container for object class FAPService.{i}.Transport.Packet.";
+ }
+ container transport-security {
+ uses transport-security-g;
+ description
+ "Container for object class FAPService.{i}.Transport.Security.";
+ list transport-security-secret {
+ key "uicc-card-id";
+ uses transport-security-secret-g;
+ description
+ "List of object class FAPService.{i}.Transport.Security.Secret.{i}.";
+ }
+ }
+ }
+ description
+ "List of object class FAPService.{i}.";
+ }
+
+ grouping fap-service-g {
+ description
+ "The Femto Access Point (FAP) Service Object.";
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Alias";
+ }
+ leaf device-type {
+ type enumeration {
+ enum "standalone" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.DeviceType - Standalone";
+ }
+ enum "integrated" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.DeviceType - Integrated";
+ }
+ }
+ description
+ "The type of FAP device.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.DeviceType";
+ }
+ leaf dn-prefix {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The Distinguished Name prefix (DNPrefix) is an operator-configurable prefix string that is pre-pended to object distinguished names in the {{bibref|TR-157a5}} alarm object. See {{bibref|3GPP-TS.32.300}} for the formal definition and examples of DNPrefix as applied to 3GPP alarm objects";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.DNPrefix";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.";
+ }
+
+ grouping capabilities-g {
+ description
+ "This object contains parameters relating to the hardware capabilities of the FAP device.";
+ leaf gps-equipped {
+ type boolean;
+ description
+ "Indicates whether the FAP is equipped with a GPS receiver or not.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.GPSEquipped";
+ }
+ leaf max-tx-power {
+ type uint64;
+ units "dBm";
+ description
+ "Indicates the maximum possible transmit power in {{units}} that the FAP hardware can support.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.MaxTxPower";
+ }
+ leaf-list supported-systems {
+ type enumeration {
+ enum "umts" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.SupportedSystems - UMTS";
+ }
+ enum "lte" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.SupportedSystems - LTE";
+ }
+ enum "cdma1x" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.SupportedSystems - CDMA1x";
+ }
+ enum "cdmahrpd" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.SupportedSystems - CDMAHRPD";
+ }
+ }
+ description
+ "{{list}} Each entry is a type of system that the FAP supports. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.SupportedSystems";
+ }
+ leaf beacon {
+ type boolean;
+ description
+ "Indicates whether FAP can support beacon transmission.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.Beacon";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.";
+ }
+
+ grouping capabilities-umts-g {
+ description
+ "This object contains parameters relating to the system and RF aspect of the FAP device that supports the UMTS system.";
+ leaf duplex-mode {
+ type enumeration {
+ enum "fdd-mode" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.DuplexMode - FDDMode";
+ }
+ }
+ description
+ "Indicates the mode supported by the FAP. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.DuplexMode";
+ }
+ leaf gsm-rx-supported {
+ type boolean;
+ description
+ "Indicates whether the FAP hardware supports the receiving function of GSM or not.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxSupported";
+ }
+ leaf hsdpa-supported {
+ type boolean;
+ description
+ "Indicates whether the FAP hardware supports the HSDPA capability or not.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.HSDPASupported";
+ }
+ leaf max-hsdpa-data-rate-supported {
+ type uint64;
+ units "Kbps";
+ description
+ "If the FAP hardware supports HSDPA ({{param|HSDPASupported}} is {{true}}), this parameter indicates the maximum HSDPA data rate in {{units}} that the device supports.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.MaxHSDPADataRateSupported";
+ }
+ leaf hsupa-supported {
+ type boolean;
+ description
+ "Indicates whether the FAP hardware supports the HSUPA capability or not.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.HSUPASupported";
+ }
+ leaf max-hsupa-data-rate-supported {
+ type uint64;
+ units "Kbps";
+ description
+ "If the FAP hardware supports HSUPA ({{param|HSUPASupported}} is {{true}}), this parameter indicates the maximum HSUPA data rate in {{units}} that the device supports.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.MaxHSUPADataRateSupported";
+ }
+ leaf max-hspdsc-hs-supported {
+ type uint8 {
+ range "0..15";
+ }
+ description
+ "If the FAP hardware supports HSPA family (either {{param|HSDPASupported}} is {{true}} or {{param|HSUPASupported}} is {{true}}), this parameter indicates the available number of codes at the defined spreading factor (SF=16), within the complete code tree. See {{bibref|3GPP-TS.32.642|Section 6.3.9}} for more details.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.MaxHSPDSCHsSupported";
+ }
+ leaf max-hsscc-hs-supported {
+ type uint64;
+ description
+ "If the FAP hardware supports HSPA family (either {{param|HSDPASupported}} is {{true}} or {{param|HSUPASupported}} is {{true}}), this parameter indicates the available number of HS-SCCHs for one cell. See {{bibref|3GPP-TS.32.642|Section 6.3.9}} for more details.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.MaxHSSCCHsSupported";
+ }
+ leaf-list fdd-bands-supported {
+ type string;
+ min-elements 1;
+ max-elements "16";
+ description
+ "{{list}} Indicates the UMTS bands that the FAP supports {{bibref|3GPP-TS.25.104}}, Release 8. At least one band MUST be supported and multiple bands MAY be supported. {{bibref|3GPP-TS.25.104}} Version 8.3.0 defines 14 UMTS bands (I through XIV). Each individual band is identified by its upper case Roman numeral. The order of the band indicators in the string has no significance. In case a new band is defined in the 3GPP standard in a future release of {{bibref|3GPP-TS.25.104}}, the corresponding new upper case Roman numeral will be included in the valid band indicators. The followings are examples of valid values: :\"I\" (specifies only band-I is supported) :\"I,II,V\" (specifies 3 bands are supported) :\"II,VII,I\" (specifies 3 bands are supported)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.FDDBandsSupported";
+ }
+ leaf-list gsm-rx-bands-supported {
+ type enumeration {
+ enum "t-gsm380" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - T-GSM380";
+ }
+ enum "t-gsm410" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - T-GSM410";
+ }
+ enum "gsm450" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - GSM450";
+ }
+ enum "gsm480" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - GSM480";
+ }
+ enum "gsm710" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - GSM710";
+ }
+ enum "gsm750" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - GSM750";
+ }
+ enum "t-gsm810" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - T-GSM810";
+ }
+ enum "gsm850" {
+ value 8;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - GSM850";
+ }
+ enum "p-gsm900" {
+ value 9;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - P-GSM900";
+ }
+ enum "e-gsm900" {
+ value 10;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - E-GSM900";
+ }
+ enum "r-gsm900" {
+ value 11;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - R-GSM900";
+ }
+ enum "t-gsm900" {
+ value 12;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - T-GSM900";
+ }
+ enum "dcs1800" {
+ value 13;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - DCS1800";
+ }
+ enum "pcs1900" {
+ value 14;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported - PCS1900";
+ }
+ }
+ description
+ "{{list}} Indicates the GSM receive bands that the FAP supports {{bibref|3GPP-TS.45.005}}. At least one band MUST be supported and multiple bands MAY be supported. {{bibref|3GPP-TS.45.005}} defines 14 GSM bands. {{enum}} The order of the band indicators in the string has no significance. The following is an example of a valid value. :\"GSM850,PCS1900\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.";
+ }
+
+ grouping capabilities-umts-self-config-g {
+ description
+ "This object contains parameters relating to the self-configuration capabilities of the FAP. Self-configuration is enabled in {{object|.FAPControl.UMTS.SelfConfig.}}";
+ leaf uarfcn-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the UTRA Absolute Radio Frequency Channel Number (UARFCN). If {{true}} multiple values MAY be provided in {{param|.CellConfig.UMTS.RAN.RF.UARFCNDL}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.UMTS.RAN.RF.UARFCNDL}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.UARFCNConfig";
+ }
+ leaf primary-scrambling-code-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Primary Scrambling Code (PSC). If {{true}} multiple values or a range of values MAY be provided in {{param|.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.PrimaryScramblingCodeConfig";
+ }
+ leaf maxfap-tx-power-expanded-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Maximum FAP Transmit Power. If {{true}} a range of values MAY be provided in {{param|.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxFAPTxPowerExpandedConfig";
+ }
+ leaf pcpich-power-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the P-CPICH power. If {{true}} a range of values MAY be provided in {{param|.CellConfig.UMTS.RAN.RF.PCPICHPower}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.UMTS.RAN.RF.PCPICHPower}} as an upper bound.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.PCPICHPowerConfig";
+ }
+ leaf max-ul-tx-power-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Maximum UL Transmit Power. If {{true}} a range of values MAY be provided in {{param|.CellConfig.UMTS.RAN.RF.MaxULTxPower}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.UMTS.RAN.RF.MaxULTxPower}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxULTxPowerConfig";
+ }
+ leaf lacracura-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the LAC, RAC, and URA. If {{true}} multiple values MAY be provided in {{param|.CellConfig.UMTS.CN.LACRAC}} and {{param|.CellConfig.UMTS.RAN.URAList}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.UMTS.CN.LACRAC}} and {{param|.CellConfig.UMTS.RAN.URAList}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.LACRACURAConfig";
+ }
+ leaf neighbor-list-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the neighbor list. If {{true}} the ACS uses the {{object|.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.}}, {{object|.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.}}, {{object|.CellConfig.UMTS.RAN.NeighborList.InterRATCell.}} tables to explicitly include or exclude entries and the FAP uses that information to determine the final configuration found in the {{object|.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.}}, {{object|.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.}}, {{object|.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.}} tables. If {{false}} the ACS uses the {{object|.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.}}, {{object|.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.}}, {{object|.CellConfig.UMTS.RAN.NeighborList.InterRATCell.}} tables to only specify the included entries and the FAP uses that list.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.NeighborListConfig";
+ }
+ leaf cell-re-selection-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine cell-reselection values. If {{true}} {{object|.CellConfig.UMTS.RAN.CellSelection.}} can be self-configured. If {{false}} {{object|.CellConfig.UMTS.RAN.CellSelection.}} is provided by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.CellReSelectionConfig";
+ }
+ leaf intra-freq-meas-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine intra-frequency measurement values. If {{true}} {{object|.CellConfig.UMTS.RAN.IntraFreqMeas.}} can be self-configured. If {{false}} {{object|.CellConfig.UMTS.RAN.IntraFreqMeas.}} is provided by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.IntraFreqMeasConfig";
+ }
+ leaf inter-freq-meas-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine inter-frequency measurement values. If {{true}} {{object|.CellConfig.UMTS.RAN.InterFreqMeas.}} can be self-configured. If {{false}} {{object|.CellConfig.UMTS.RAN.InterFreqMeas.}} is provided by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.InterFreqMeasConfig";
+ }
+ leaf inter-rat-meas-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine inter-RAT measurement values. If {{true}} {{object|.CellConfig.UMTS.RAN.InterRATMeas.}} can be self-configured. If {{false}} {{object|.CellConfig.UMTS.RAN.InterRATMeas.}} is provided by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.InterRATMeasConfig";
+ }
+ leaf ue-internal-meas-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine UE internal measurement values. If {{true}} {{object|.CellConfig.UMTS.RAN.UEInternalMeas.}} can be self-configured. If {{false}} {{object|.CellConfig.UMTS.RAN.UEInternalMeas.}} is provided by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.UEInternalMeasConfig";
+ }
+ leaf noise-rise-limit-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the selfconfiguration capability to determine the Noise Rise Limit. If {{true}} {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue}} and {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue}}. MAY provide a range of values to select from. If {{false}} {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue}} provides only a single value to be used. The value of {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue}} is ignored.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+ }
+
+ grouping capabilities-lte-g {
+ description
+ "This object contains parameters relating to the system and RF aspect of the FAP device that supports the LTE system.";
+ leaf duplex-mode {
+ type enumeration {
+ enum "fdd-mode" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.DuplexMode - FDDMode";
+ }
+ enum "tdd-mode" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.DuplexMode - TDDMode";
+ }
+ }
+ description
+ "Indicates the mode supported by the LTE FAP. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.DuplexMode";
+ }
+ leaf-list bands-supported {
+ type uint8 {
+ range "1..21 | 33..40";
+ }
+ min-elements 1;
+ max-elements "16";
+ description
+ "{{list}} Indicates the LTE bands that the LTE FAP supports {{bibref|3GPP-TS.36.101|Section 5.5}}. At least one band MUST be supported and multiple bands MAY be supported. Each individual band is identified by arabic number (1, 2,...). The order of the band indicators in the string has no significance. In case a new band is defined in the 3GPP standard in a future release of {{bibref|3GPP-TS.36.101}}, the corresponding new band number will be included in the valid band indicators. The followings are examples of valid values: :\"1\" (specifies only band-1 is supported) :\"1,2,11\" (specifies 3 bands are supported) :\"2,11,1\" (specifies 3 bands are supported)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.BandsSupported";
+ }
+ leaf nnsf-supported {
+ type boolean;
+ description
+ "Indicates whether LTE FAP supports the NAS Node Selection Function (NNSF) or not. NNSF is described in {{bibref|3GPP-TS.36.300|Section 19.2.1.7 and Section 4.6.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.NNSFSupported";
+ }
+ leaf umts-rx-supported {
+ type boolean;
+ description
+ "Indicates whether the LTE FAP hardware supports the receiving function of UMTS or not.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.UMTSRxSupported";
+ }
+ leaf-list umts-rx-bands-supported {
+ type string;
+ max-elements "16";
+ description
+ "{{list}} Indicates the UMTS receive bands that the LTE FAP supports {{bibref|3GPP-TS.25.104}}, Release 8. If {{param|UMTSRxSupported}} is {{true}}, then at least one band MUST be supported and multiple bands MAY be supported. Each individual band is identified by its upper case Roman numeral. The order of the band indicators in the string has no significance. In case a new band is defined in the 3GPP standard in a future release of {{bibref|3GPP-TS.25.104}}, the corresponding new upper case Roman numeral will be included in the valid band indicators. The followings are examples of valid values: :\"I\" (specifies only band-I is supported) :\"I,II,V\" (specifies 3 bands are supported) :\"II,VII,I\" (specifies 3 bands are supported)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.UMTSRxBandsSupported";
+ }
+ leaf gsm-rx-supported {
+ type boolean;
+ description
+ "Indicates whether the LTE FAP hardware supports the receiving function of GSM or not.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxSupported";
+ }
+ leaf-list gsm-rx-bands-supported {
+ type enumeration {
+ enum "t-gsm380" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - T-GSM380";
+ }
+ enum "t-gsm410" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - T-GSM410";
+ }
+ enum "gsm450" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - GSM450";
+ }
+ enum "gsm480" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - GSM480";
+ }
+ enum "gsm710" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - GSM710";
+ }
+ enum "gsm750" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - GSM750";
+ }
+ enum "t-gsm810" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - T-GSM810";
+ }
+ enum "gsm850" {
+ value 8;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - GSM850";
+ }
+ enum "p-gsm900" {
+ value 9;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - P-GSM900";
+ }
+ enum "e-gsm900" {
+ value 10;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - E-GSM900";
+ }
+ enum "r-gsm900" {
+ value 11;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - R-GSM900";
+ }
+ enum "t-gsm900" {
+ value 12;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - T-GSM900";
+ }
+ enum "dcs1800" {
+ value 13;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - DCS1800";
+ }
+ enum "pcs1900" {
+ value 14;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported - PCS1900";
+ }
+ }
+ description
+ "{{list}} Indicates the GSM receive bands that the LTE FAP supports {{bibref|3GPP-TS.45.005}}. If {{param|GSMRxSupported}} is {{true}}, then at least one band MUST be supported and multiple bands MAY be supported. {{bibref|3GPP-TS.45.005}} defines 14 GSM bands. {{enum}} The order of the band indicators in the string has no significance. The following is an example of a valid value. :\"GSM850,PCS1900\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported";
+ }
+ leaf cdma2000-rx-supported {
+ type boolean;
+ description
+ "Indicates whether the LTE FAP hardware supports the receiving function of CDMA2000 or not.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.CDMA2000RxSupported";
+ }
+ leaf-list cdma2000-rx-bands-supported {
+ type string;
+ max-elements "16";
+ description
+ "{{list}} Indicates the CDMA2000 receive bands that the LTE FAP supports. If {{param|CDMA2000RxSupported}} is {{true}}, then at least one band MUST be supported and multiple bands MAY be supported. The order of the band indicators in the string has no significance. Bandclass is a 1 or 2-digit number as defined in {{bibref|3GPP2-C.S0057-B}}. The following are example values: :\"0\" (specifies US Cellular) :\"1,3,14\" (specifies US PCS, Japan Cellular and US PCS 1.9Ghz) specifies 3 bands are supported)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.CDMA2000RxBandsSupported";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.LTE.";
+ }
+
+ grouping capabilities-cdma2000-g {
+ description
+ "This object contains parameters relating to the capability attributes for CDMA2000 FAP.";
+ leaf remote-ip-access-capable {
+ type boolean;
+ description
+ "Indicates whether the FAP is capable of providing remote IP access service as defined in {{bibref|3GPP2-X.S0059}}. If {{true}}, the FAP is capable of remote IP access service. If {{false}}, the FAP is not capable of remote IP access service.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.RemoteIPAccessCapable";
+ }
+ leaf-list band-class-supportedfap-beacon {
+ type string;
+ max-elements "32";
+ description
+ "{{list}} Indicates the band classes that the FAP supports for beacon transmission. One or multiple bands MAY be supported. Bandclass is a 1 or 2-digit number as defined in {{bibref|3GPP2-C.S0057}}. List is empty if FAP can not support beacon transmissions.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.BandClassSupportedFAPBeacon";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.";
+ }
+
+ grouping capabilities-cdma2000-one-x-g {
+ description
+ "This object contains parameters relating to the capability attributes for the CDMA2000 1x radio technology portions of a CDMA2000 FAP.";
+ leaf band-class-supportedfap {
+ type string {
+ length "0..32";
+ }
+ description
+ "{{list}} Indicates the CDMA bands that the FAP supports. At least one band MUST be supported and multiple bands MAY be supported. Bandclass is a 1 or 2-digit number as defined in {{bibref|3GPP2-C.S0057}}. The following are example values: \"0\" (specifies US Cellular) \"1,3,14\" (specifies US PCS, Japan Cellular and US PCS 1.9Ghz)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.BandClassSupportedFAP";
+ }
+ leaf active-handin-capable {
+ type boolean;
+ description
+ "Indicates whether the FAP is capable of accepting hand-in of active 1x call from another base station. If {{true}}, the FAP is capable of accepting hand-in. If {{false}}, the FAP is not capable of accepting hand-in.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.ActiveHandinCapable";
+ }
+ leaf femto-overhead-messages-capable {
+ type boolean;
+ description
+ "Indicates whether the FAP supports Access Point Identification, Access Point Pilot Information, and Access Point Identification Text messages specified in {{bibref|3GPP2-C.S0005}}. If {{true}}, the FAP supports these messages. If {{false}}, the FAP does not supports these messages.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.";
+ }
+
+ grouping capabilities-cdma2000-one-x-self-config-g {
+ description
+ "This object contains parameters relating to the self-configuration capabilities of the FAP. Self-configuration is enabled in {{object|.FAPControl.CDMA2000.OneX.SelfConfig.}}.";
+ leaf rfcnfl-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Radio Frequency Channel Number. If {{true}} multiple values MAY be provided in {{param|.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.RFCNFLConfig";
+ }
+ leaf pilot-pn-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the pilot PN offset. If {{true}} multiple values or a range of values MAY be provided in {{param|.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.PilotPNConfig";
+ }
+ leaf maxfap-tx-power-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Maximum FAP Transmit Power. If {{true}} a range of values MAY be provided in {{param|.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerConfig";
+ }
+ leaf maxfap-beacon-tx-power-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Maximum FAP Beacon Transmit Power. If {{true}} a range of values MAY be provided in {{param|.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerConfig";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+ }
+
+ grouping capabilities-cdma2000-hrpd-g {
+ description
+ "This object contains parameters relating to the capability attributes for the CDMA2000 HRPD radio technology portions of a CDMA2000 FAP.";
+ leaf a13-session-transfer-capable {
+ type boolean;
+ description
+ "Indicates whether the FAP is capable of supporting A13 session transfer. See {{bibref|3GPP2-C.S0024-B}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.A13SessionTransferCapable";
+ }
+ leaf a16-session-transfer-capable {
+ type boolean;
+ description
+ "Indicates whether the FAP is capable of supporting A16 session transfer. See {{bibref|3GPP2-C.S0024-B}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.A16SessionTransferCapable";
+ }
+ leaf local-ip-access-capable {
+ type boolean;
+ description
+ "Indicates whether the FAP is capable of supporting Local IP access. See {{bibref|3GPP2-C.S0024-B}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.LocalIPAccessCapable";
+ }
+ leaf dedicated-hrpd-beacon {
+ type boolean;
+ description
+ "Indicated whether the FAP supports a dedicated transmission of HRPD beacon independent of the generalized beacon.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.DedicatedHRPDBeacon";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+ }
+
+ grouping capabilities-cdma2000-hrpd-self-config-g {
+ description
+ "This object contains parameters relating to the self-configuration capability attributes for the CDMA2000 HRPD radio technology portions of a CDMA2000 FAP.";
+ leaf rfcnfl-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Radio Frequency Channel Number. If {{true}} multiple values MAY be provided in {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.RFCNFLConfig";
+ }
+ leaf pilot-pn-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the pilot PN offset. If {{true}} multiple values or a range of values MAY be provided in {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.PilotPNConfig";
+ }
+ leaf maxfap-tx-power-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Maximum FAP Transmit Power. If {{true}} a range of values MAY be provided in {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerConfig";
+ }
+ leaf maxfap-beacon-tx-power-config {
+ type boolean;
+ description
+ "Indicates whether the FAP supports the self-configuration capability to determine the Maximum FAP Beacon Transmit Power. If {{true}} a range of values MAY be provided in {{param|.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower}} for the FAP to select from. If {{false}} only a single value SHOULD be provided in {{param|.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPBeaconTxPowerConfig";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+ }
+
+ grouping fap-control-g {
+ description
+ "This object contains parameters relating to state management and provisioning aspects of the FAP.";
+ leaf-list self-config-events {
+ type enumeration {
+ enum "initial-rem" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.SelfConfigEvents - InitialREM";
+ }
+ }
+ config false;
+ description
+ "{{list}} Each item is an event that causes the FAP to perform self configuration as defined by {{object|.FAPControl.UMTS.SelfConfig.}}, {{object|.FAPControl.CDMA2000.OneX.SelfConfig.}}, or {{object|.FAPControl.CDMA2000.HRPD.SelfConfig.}}. Vendors can extend the enumerated values with vendor-specific extensions, in which case the rules outlined in {{bibref|TR-106a2|Section3.3}} MUST be adhered to.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.SelfConfigEvents";
+ }
+ leaf enclosure-tampering-detected {
+ type boolean;
+ config false;
+ description
+ "This parameter indicates whether or not physical tampering of the device enclosure occurred, such as illegal opening of the box. If {{true}} device tampering is detected. If {{false}} no sign of device tampering is detected. Tampering state MUST be persisted across reboots and the device MUST never reset it back from {{true}} to {{false}} even after a factory reset.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.EnclosureTamperingDetected";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.";
+ }
+
+ grouping fap-control-umts-g {
+ description
+ "This object contains parameters relating to the UMTS system specific information.";
+ leaf op-state {
+ type boolean;
+ description
+ "Current operational state of the UMTS FAP as defined in {{bibref|ITU-X.731}}. If {{true}} the UMTS FAP is currently enabled. If {{false}} the UMTS FAP is currently disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.OpState";
+ }
+ leaf admin-state {
+ type boolean;
+ config false;
+ description
+ "Lock or unlock the UMTS FAP. This controls the administrative state of the UMTS FAP as defined in {{bibref|ITU-X.731}}. If {{true}} Unlocked with permission to serve traffic (and enable RF transmitter(s)). If {{false}} Locked. Transition UMTS FAP to state where it is NOT permitted to serve traffic. RF transmitter is disabled. Given that this command controls the UMTS FAP's RF transmitter, the underlying expectation is that the unlock is done when all necessary conditions are met to allow the transmitter to key on and provide service, including aspects such as: # location verification (including meeting the governing regulatory requirements) # verifying the UMTS FAP configuration # if physical tampering is supported and no physical tampering is detected. The default value after power-on is {{false}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.AdminState";
+ }
+ leaf rf-tx-status {
+ type boolean;
+ description
+ "Current status of this UMTS FAP RF transmitter. {{true}} indicates that the UMTS FAP Tx transmitter is on. {{false}} indicates that the UMTS FAP Tx transmitter is off. This state is tied to the Administrative state which is controlled by the ACS. :When the ACS sets {{param|AdminState}} to {{true}}, then the UMTS FAP has permission to turn on the RF transmitter. :When the ACS sets {{param|AdminState}} to {{false}}, then the UMTS FAP is not allowed to provide service and MUST turn off the RF transmitter.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.RFTxStatus";
+ }
+ leaf pm-config {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The value MUST be the path name of a row in the optional ''FAP.PerfMgmt.Config.'' table (see {{bibref|TR-262}}). This is the performance management related configuration for the UMTS FAP. In case of a multiple-radio-technology FAP product, each radio technology can have its own PM configuration or share a common PM configuration. In the former case, {{param}} can contain a unique instance number. In the latter case, {{param}} under all radio technologies can have the same instance number. If the referenced object is deleted, the parameter value MUST be set to an empty string.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.PMConfig";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.";
+ }
+
+ grouping fap-control-umts-self-config-g {
+ description
+ "This object contains parameters relating to the controlling of self-configuration capabilities in the FAP.";
+ leaf uarfcn-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the values of {{param|.CellConfig.UMTS.RAN.CSG.UARFCNDLList}}. If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.UARFCNSelfConfigEnable";
+ }
+ leaf primary-scrambling-code-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode}}. If {{true}} the FAP self-configures the value. If {{false}} the ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.PrimaryScramblingCodeSelfConfigEnable";
+ }
+ leaf maxfap-tx-power-expanded-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded}}. If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxFAPTxPowerExpandedSelfConfigEnable";
+ }
+ leaf pcpich-power-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.UMTS.RAN.RF.PCPICHPower}}. If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.PCPICHPowerSelfConfigEnable";
+ }
+ leaf max-ul-tx-power-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.UMTS.RAN.RF.MaxULTxPower}}. If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxULTxPowerSelfConfigEnable";
+ }
+ leaf lacracura-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the values of {{param|.CellConfig.UMTS.CN.LACRAC}} and {{param|.CellConfig.UMTS.RAN.URAList}}. If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable";
+ }
+ leaf neighbor-list-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the values in the object {{object|.CellConfig.UMTS.RAN.NeighborList.}} If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.NeighborListSelfConfigEnable";
+ }
+ leaf cell-re-selection-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine Cell Selection/Reselection-related parameters in {{object|.CellConfig.UMTS.RAN.CellSelection.}} If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.CellReSelectionSelfConfigEnable";
+ }
+ leaf intra-freq-meas-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine intra-frequency measurement -related parameters in {{object|.CellConfig.UMTS.RAN.IntraFreqMeas.}} If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.IntraFreqMeasSelfConfigEnable";
+ }
+ leaf inter-freq-meas-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine inter-frequency measurement -related parameters in {{object|.CellConfig.UMTS.RAN.InterFreqMeas.}} If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.InterFreqMeasSelfConfigEnable";
+ }
+ leaf inter-rat-meas-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine inter-RAT measurement -related parameters in {{object|.CellConfig.UMTS.RAN.InterRATMeas.}} If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.InterRATMeasSelfConfigEnable";
+ }
+ leaf ue-internal-meas-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine UE internal measurement-related parameters in {{object|.CellConfig.UMTS.RAN.UEInternalMeas.}} If {{true}} The FAP self-configures the value. If {{false}} The ACS MUST provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.UEInternalMeasConfigEnable";
+ }
+ leaf noise-rise-limit-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitInUse}}. If {{true}} the FAP self-configures the value, based on the limits specified in {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue}} and {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue}}. If {{false}} the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.NoiseRiseLimitConfigEnable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+ }
+
+ grouping fap-control-umts-gateway-g {
+ description
+ "This object contains parameters relating to the Gateways that FAP is connected to.";
+ leaf sec-gw-server1 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "First SecGW the FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer1";
+ }
+ leaf sec-gw-server2 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Second SecGW the FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer2";
+ }
+ leaf sec-gw-server3 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Third SecGW the FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer3";
+ }
+ leaf fap-gw-server1 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "First FAPGW the FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer1";
+ }
+ leaf fap-gw-server2 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Second FAPGW the FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer2";
+ }
+ leaf fap-gw-server3 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Third FAPGW the FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer3";
+ }
+ leaf fap-gw-port {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Port number of FAPGW used for initial Iuh SCTP contact. This value is specified as 29169 according to IANA definition per {{bibref|IANA-portnumbers}}, registered on 2009-09-08. Use of IANA-defined value is recommended.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWPort";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.UMTS.Gateway.";
+ }
+
+ grouping fap-control-lte-g {
+ description
+ "This object contains parameters relating to the LTE system specific information.";
+ leaf op-state {
+ type boolean;
+ description
+ "Current operational state of the LTE FAP as defined in {{bibref|ITU-X.731}}. If {{true}} the LTE FAP is currently enabled. If {{false}} the LTE FAP is currently disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.OpState";
+ }
+ leaf admin-state {
+ type boolean;
+ config false;
+ description
+ "Lock or unlock the LTE FAP. This controls the administrative state of the LTE FAP as defined in {{bibref|ITU-X.731}}. If {{true}} Unlocked with permission to serve traffic (and enable RF transmitter(s)). If {{false}} Locked. Transition LTE FAP to state where it is NOT permitted to serve traffic. RF transmitter is disabled. Given that this command controls the LTE FAP's RF transmitter, the underlying expectation is that the unlock is done when all necessary conditions are met to allow the transmitter to key on and provide service, including aspects such as: # location verification (including meeting the governing regulatory requirements) # verifying the LTE FAP configuration # if physical tampering is supported and no physical tampering is detected. The default value after power-on is {{false}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.AdminState";
+ }
+ leaf rf-tx-status {
+ type boolean;
+ description
+ "Current status of this LTE FAP RF transmitter. {{true}} indicates that the LTE FAP Tx transmitter is on. {{false}} indicates that the LTE FAP Tx transmitter is off. This state is tied to the Administrative state which is controlled by the ACS. :When the ACS sets {{param|AdminState}} to {{true}}, then the LTE FAP has permission to turn on the RF transmitter. :When the ACS sets {{param|AdminState}} to {{false}}, then the LTE FAP is not allowed to provide service and MUST turn off the RF transmitter.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.RFTxStatus";
+ }
+ leaf pm-config {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The value MUST be the path name of a row in optional the ''.FAP.PerfMgmt.Config.'' table (see {{bibref|TR-262}}). This is the performance management related configuration for the LTE FAP. In case of a multiple-radio-technology FAP product, each radio technology can have its own PM configuration or share a common PM configuration. In the former case, {{param}} can contain a unique instance number. In the latter case, {{param}} under all radio technologies can have the same instance number. If the referenced object is deleted, the parameter value MUST be set to an empty string.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.PMConfig";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.";
+ }
+
+ grouping fap-control-lte-gateway-g {
+ description
+ "This object contains parameters relating to the Gateways that the LTE FAP is connected to.";
+ leaf sec-gw-server1 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "First SecGW the LTE FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer1";
+ }
+ leaf sec-gw-server2 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Second SecGW the LTE FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer2";
+ }
+ leaf sec-gw-server3 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Third SecGW the LTE FAP attempts to establish connection with. Either hostname or IPaddress.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer3";
+ }
+ leaf-list s1-sig-link-server-list {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a S1 signaling connection end point (-GW or MME) the LTE FAP attempts to establish connection with. It is in the form of either hostname or IPaddress. LTE FAP's behavior in terms of the number of S1 connection to established with is determined by {{param|S1ConnectionMode}} parameter. If {{param|S1ConnectionMode}} has the value of {{enum|One|S1ConnectionMode}}, then LTE FAP attempts to establish S1 connection with only one address following the ordering of the list. If {{param|S1ConnectionMode}} has the value of {{enum|All|S1ConnectionMode}}, then LTE FAP attempts to establish connection with all addresses in the list.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkServerList";
+ }
+ leaf s1-connection-mode {
+ type enumeration {
+ enum "one" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.S1ConnectionMode - One";
+ }
+ enum "all" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.S1ConnectionMode - All";
+ }
+ }
+ config false;
+ description
+ "Indicates how many of the configured far-end S1 link address(es),as defined in {{param|S1SigLinkServerList}}, LTE FAP SHOULD attempt to establish connection with simultaneously. If {{param}} parameter is not explicitly configured, then LTE FAP shall assume the value to be {{enum|One|S1ConnectionMode}} as default.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.S1ConnectionMode";
+ }
+ leaf s1-sig-link-port {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Port number of S1AP signaling connection end point (-GW or MME) used for initial S1 SCTP contact. This value is specified as 36412 according to IANA definition per {{bibref|IANA-portnumbers}}, registered on 2009-09-01. Use of IANA-defined value is recommended.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkPort";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.LTE.Gateway.";
+ }
+
+ grouping fap-control-cdma2000-g {
+ description
+ "This object contains parameters relating to the configuration for the control portions of a CDMA2000 FAP.";
+ leaf home-domain {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "A string containing one of operator's home domains in URI format. FAP is preconfigured with a default home domain, which can be overwritten later by ACS. See {{bibref|3GPP2-X.S0059}}. If the''.ManagementServer.URL'' is null, then the FAP shall use the value of this attribute to construct the ''.ManagementServer.URL'' attribute. If {{param|.FAPControl.CDMA2000.Gateway.SecGWServer1}} is null, then the FAP shall use the value of this attribute to construct the {{param|.FAPControl.CDMA2000.Gateway.SecGWServer1}} attribute. If the FAP is unable to connect to the management server indicated by the value of the ''.ManagementServer.URL'' attribute and this attribute is not null, the FAP may use the value of this attribute to construct the ''.ManagementServer.URL'' attribute. If the FAP is unable to connect to any security gateway indicated by the value of the {{param|.FAPControl.CDMA2000.Gateway.SecGWServer1}}, {{param|.FAPControl.CDMA2000.Gateway.SecGWServer2}}, and {{param|.FAPControl.CDMA2000.Gateway.SecGWServer3}} attributes and this attribute is not null, the FAP may use the value of this attribute to construct the {{param|.FAPControl.CDMA2000.Gateway.SecGWServer1}} attribute.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HomeDomain";
+ }
+ leaf remote-ip-access-enable {
+ type boolean;
+ config false;
+ description
+ "Enable or disable remote IP access service as defined in {{bibref|3GPP2-X.S0059}}. If {{true}} remote IP access is enabled. If {{false}} remove IP access is disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.RemoteIPAccessEnable";
+ }
+ leaf pm-config {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The value MUST be the path name of a row in the ''.FAP.PerfMgmt.Config.'' table. This is the performance management related configuration for the CDMA2000 FAP. In case of a multiple-radio-technology FAP product, each radio technology can have its own PM configuration or share a common PM configuration. In the former case, {{param}} can contain a unique instance number. In the latter case, {{param}} under all radio technologies can have the same instance number. If the referenced object is deleted, the parameter value MUST be set to an empty string.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.PMConfig";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.";
+ }
+
+ grouping fap-control-cdma2000-time-g {
+ description
+ "This object contains parameters related to time syncronization with CDMA2000 System Time (see {{bibref|3GPP2-C.S0005}}).";
+ leaf local-time-zone {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The local time zone for CDMA2000 operational purposes. E.g., \"+HH:MM JST\" for Japan. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Time.LocalTimeZone";
+ }
+ leaf current-local-time {
+ type string {
+ length "0..64";
+ }
+ description
+ "The current CDMA System Time (see {{bibref|3GPP2-C.S0005}}), expressed as date and time in the CPE's local time zone. The format of this field is \"YYYY-MM-DDThh:mm:ss.sTZD\" (e.g., 1997-07-16T19:20:30.45+01:00), where: YYYY = four-digit year MM = two-digit month (01=January, etc.) DD = two-digit day of month (01 through 31) hh = two digits of hour (00 through 23) (am/pm NOT allowed) mm = two digits of minute (00 through 59) ss = two digits of second (00 through 59) s = one or more digits representing a decimal fraction of a second TZD = time zone designator (Z or +hh:mm or -hh:mm)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Time.CurrentLocalTime";
+ }
+ leaf leap-seconds {
+ type int64;
+ units "seconds";
+ config false;
+ description
+ "Number of leap seconds (in {{units}} to be applied between CurrentLocalTime and CDMA System Time. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Time.LeapSeconds";
+ }
+ leaf daylight-savings-used {
+ type boolean;
+ config false;
+ description
+ "Whether or not daylight savings time is in use in the FAP's local time zone with respect to CDMA2000 System Time (see {{bibref|3GPP2-C.S0005}}). {true}} if daylight savings time is being used; otherwise {{false}}. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Time.DaylightSavingsUsed";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Time.";
+ }
+
+ grouping fap-control-cdma2000-one-x-g {
+ description
+ "This object contains all global attributes of the 1xFemto application.";
+ leaf admin-state {
+ type enumeration {
+ enum "lock" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.AdminState - Lock";
+ }
+ enum "unlock" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.AdminState - Unlock";
+ }
+ }
+ config false;
+ description
+ "Administrative state for 1x";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.AdminState";
+ }
+ leaf op-state {
+ type enumeration {
+ enum "enabled" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.OpState - Enabled";
+ }
+ enum "disabled" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.OpState - Disabled";
+ }
+ }
+ description
+ "Operational state of the 1x";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.OpState";
+ }
+ leaf rf-tx-status {
+ type boolean;
+ description
+ "Current status of this RF transmitter. {{true}} indicates that the 3G Tx transmitter is on. {{false}} indicates that the 3G Tx transmitter is off. This state is tied to the Administrative state which is controlled by the ACS. When the ACS sets AdminState to {{true}}, then the FAP has permission to turn on the RF transmitter. When the ACS sets AdminState to {{false}}, then the FAP is not allowed to provide service and MUST turn off the RF transmitter.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.RFTxStatus";
+ }
+ leaf daylight {
+ type int64;
+ config false;
+ description
+ "If Daylight Savings Time is being used with respect to CDMA2000 1x overhead parameters (see {{bibref|3GPP2-C.S0005}}), then {{param}} should be set to {{true}}. Otherwise, {{param}} should be set to {{false}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.Daylight";
+ }
+ leaf max-p-rev {
+ type int64;
+ config false;
+ description
+ "Protocol revision supported by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.MaxPRev";
+ }
+ leaf reregister {
+ type uint64;
+ config false;
+ description
+ "{{param}} triggers a re-registration of all mobiles. The FAP triggers re-registration of all registered mobiles everytime this number changes";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.Reregister";
+ }
+ leaf emergency-session-period {
+ type uint16 {
+ range "15..1800";
+ }
+ units "seconds";
+ config false;
+ description
+ "The period (in {{units}}) the session of an unauthorized user is kept alive after an emergency call.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.EmergencySessionPeriod";
+ }
+ leaf location-area-code {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "This is the location area code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.LocationAreaCode";
+ }
+ leaf msc-id {
+ type uint64;
+ config false;
+ description
+ "This is the FAP's MSCID. This ID is used in PANI header.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.MSCId";
+ }
+ leaf active-handin-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the FAP performs active hand-in from another base station. If {{true}} active hand-in is enabled; if {{false}} active hand-in is disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinEnable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.";
+ }
+
+ grouping fap-control-cdma2000-one-x-active-handin-measurement-g {
+ description
+ "CDMA2000 1x active handin operational parameters.";
+ leaf active-handin-measurement-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the FAP performs active hand-in measurement if a request is received. If {{true}} active hand-in measurement is enabled; if {{false}} active hand-in measurement is disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandinMeasurementEnable";
+ }
+ leaf active-hand-in-measurement-duration {
+ type uint16 {
+ range "0..65535";
+ }
+ units "1.25 ms slots";
+ config false;
+ description
+ "The minimum duration in {{units}} for which FAP should take a mobile's RL pilot strength measurements for active hand-in purpose when directed by the network. Instead of continuous measurement for this entire duration, a FAP can make multiple measurements by sampling over shorter durations. In such a case, this value specifies the minimum time separation required between the first and last measurement samples.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandInMeasurementDuration";
+ }
+ leaf measurement-report-threshold {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "The threshold (in {{units}}) for the FAP to report an active hand-in measurement. If the metric to be reported is below the threshold, the FAP may not send any report.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.MeasurementReportThreshold";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+ }
+
+ grouping fap-control-cdma2000-one-x-self-config-g {
+ description
+ "This object contains parameters relating to the controlling of self-configuration capabilities in the FAP.";
+ leaf rfcnfl-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the values of {{param|.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL}}. If {{true}}, the FAP self-configures the value. If {{false}}, the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable";
+ }
+ leaf pilot-pn-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN}}. If {{true}} the FAP self-configures the value. If {{false}} the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.PilotPNSelfConfigEnable";
+ }
+ leaf maxfap-tx-power-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower}}. If {{true}} the FAP self-configures the value. If {{false}} the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+ }
+ leaf maxfap-beacon-tx-power-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower}}. If {{true}}, the FAP self-configures the value. If {{false}}, the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerSelfConfigEnable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+ }
+
+ grouping fap-control-cdma2000-gateway-g {
+ description
+ "CDMA2000 FAP Security Gateway operational parameters.";
+ leaf sec-gw-server1 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "First SecGW the FAP attempts to contact. Either FQDN or IP address";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer1";
+ }
+ leaf sec-gw-server2 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Second SecGW the FAP attempts to contact. Either FQDN or IP address";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer2";
+ }
+ leaf sec-gw-server3 {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Third SecGW that the FAP attempts to contact. Can contain either FQDN or IP address";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer3";
+ }
+ leaf sec-gw-switchover-count {
+ type uint64;
+ description
+ "Counter indicating how many times FAP has switched between SecGW";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWSwitchoverCount";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+ }
+
+ grouping fap-control-cdma2000-hrpd-g {
+ description
+ "Operational parameters for the HRPD portion of a CDMA2000 FAP.";
+ leaf op-state {
+ type boolean;
+ description
+ "Current operational state of the FAP as defined in ITU-X.731 [32]. If {{true}} the FAP is currently enabled. If {{false}} the FAP is currently disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.OpState";
+ }
+ leaf admin-state {
+ type boolean;
+ config false;
+ description
+ "Lock or unlock the FAP. This controls the administrative state of the FAP as defined in ITU-X.731 [32]. If {{true}} Unlocked with permission to serve traffic (and enable RF transmitter(s)). If {{false}} Locked. Transition FAP to state where it is NOT permitted to serve traffic. RF transmitter is disabled. Given that this command controls the FAP's RF transmitter, the underlying expectation is that the unlock is done when all necessary conditions are met to allow the transmitter to key on and provide service, including aspects such as: location verification (including meeting the governing regulatory requirements) verifying the FAP configuration if physical tampering is supported and no physical tampering is detected. The default value after power-on is {{false}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.AdminState";
+ }
+ leaf rf-tx-status {
+ type boolean;
+ description
+ "Current status of this RF transmitter. {{true}} indicates that the 3G Tx transmitter is on. {{false}} indicates that the 3G Tx transmitter is off. This state is tied to the Administrative state which is controlled by the ACS. When the ACS sets AdminState to {{true}}, then the FAP has permission to turn on the RF transmitter. When the ACS sets AdminState to {{false}}, then the FAP is not allowed to provide service and MUST turn off the RF transmitter.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.RFTxStatus";
+ }
+ leaf a13-session-transfer-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the FAP performs A13 session transfer. If {{true}} A13 session transfer is enabled; if {{false}} A13 session transfer is disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13SessionTransferEnable";
+ }
+ leaf local-ip-access-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the FAP can assign local IP address to capable ATs. If {{true}} local IP address is assigned.; if {{false}} local IP address is not assigned.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.LocalIPAccessEnable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+ }
+
+ grouping fap-control-cdma2000-hrpd-self-config-g {
+ description
+ "This object contains parameters relating to the controlling of self-configuration capabilities in the FAP.";
+ leaf rfcnfl-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the values of {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL}}. If {{true}}, the FAP self-configures the value. If {{false}}, the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.RFCNFLSelfConfigEnable";
+ }
+ leaf pilot-pn-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN}}. If {{true}}, the FAP self-configures the value. If {{false}}, the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.PilotPNSelfConfigEnable";
+ }
+ leaf maxfap-tx-power-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower}} . If {{true}}, the FAP self-configures the value. If {{false}}, the ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+ }
+ leaf max-hrpd-beacon-tx-power-self-config-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the self-configuration capability in the FAP is used or not to determine the value of {{param|.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPower}}. If {{true}} the FAP self-configures the value. If {{false}} The ACS must provide the specific value to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxHRPDBeaconTxPowerSelfConfigEnable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+ }
+
+ grouping fap-control-cdma2000-hrpd-a13-g {
+ description
+ "This object contains attributes related to A13 Session Transfer";
+ leaf color-code-to-uati104-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104NumberOfEntries";
+ }
+ leaf hrpd-subnet-to-ip-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIPNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+ }
+
+ grouping fap-control-cdma2000-hrpd-a13-color-code-to-uati104-g {
+ description
+ "HRPD ColorCode to UATI Mapping Table number of entries.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Alias";
+ }
+ leaf color-code {
+ type uint16 {
+ range "0..256";
+ }
+ description
+ "Color Code mapped to UATI104 in the following field";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.ColorCode";
+ }
+ leaf uati104 {
+ type binary {
+ length "0..13";
+ }
+ description
+ "The UATI104 of the AT that accesses with the ColorCode field";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.UATI104";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+ }
+
+ grouping fap-control-cdma2000-hrpd-a13-hrpd-subnet-to-ip-g {
+ description
+ "This object contains attributes related to A13 Session Transfer";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Alias";
+ }
+ leaf hrpd-subnet-length {
+ type uint8 {
+ range "1..104";
+ }
+ units "bits";
+ config false;
+ description
+ "The number of MSBs (in {{units}}) in the following field that is part of HRPDSubnet";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnetLength";
+ }
+ leaf hrpd-subnet {
+ type binary {
+ length "0..13";
+ }
+ config false;
+ description
+ "The {{param|HRPDSubnetLength}} MSBs of this field contain the HRPD subnet that maps to the IP address in the following field";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnet";
+ }
+ leaf a13-ip-address {
+ type inet:ip-address;
+ description
+ "This field contains the IP address of A13 endpoint that corresponds to the HRPD subnet";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.A13IPAddress";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+ }
+
+ grouping access-mgmt-g {
+ description
+ "This object contains parameters relating to Access Management for the different radio technologies.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.";
+ }
+
+ grouping access-mgmt-umts-g {
+ description
+ "This object contains parameters relating to Access Management for UMTS FAP (ACL, CSG, LIPA). Closed Subscriber Group (CSG) service behavior is specified in {{bibref|3GPP-TS.22.011}}. Note: Cell barring and 3GPP access class parameters are contained in {{object|.CellConfig.UMTS.RAN.CellRestriction.}} (UMTS FAP).";
+ leaf access-mode {
+ type enumeration {
+ enum "open access" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.AccessMode - Open Access";
+ }
+ enum "closed access" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.AccessMode - Closed Access";
+ }
+ enum "hybrid access" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.AccessMode - Hybrid Access";
+ }
+ }
+ default "open access";
+ config false;
+ description
+ "Indicates the type of access mode the FAP operates in. {{enum}} When the value is not {{enum|Open Access}} non-CSG-capable UE are handled according to {{param|NonCSGUEAccessDecision}}. Note: This parameter controls the setting of the CSGindicator bit, specified in MIB in {{bibref|3GPP-TS.25.331}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.AccessMode";
+ }
+ leaf non-csgue-access-decision {
+ type enumeration {
+ enum "local" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision - Local";
+ }
+ enum "query fap-gw" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision - Query FAPGW";
+ }
+ enum "by core" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision - By Core";
+ }
+ }
+ default "local";
+ config false;
+ description
+ "Indicates how the access decision is made for non-CSG-capable UE. Parameter is ignored when {{param|AccessMode}} is {{enum|Open Access|AccessMode}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision";
+ }
+ leaf csg-membership-determined-locally {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Indicates how the access decision is made for CSG-capable UE. Parameter is ignored when {{param|AccessMode}} is {{enum|Open Access|AccessMode}}. If {{true}} access decision is determined the same way as for {{param|NonCSGUEAccessDecision}}. (E.g. if core network doesn't (yet) support full CSG functionality.) If {{false}} FAP always allows access for CSG-capable UE. CSG enforcement is performed by MSC/SGSN (with support from HSS), or by FGW. {{bibref|3GPP-TS.22.011}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.CSGMembershipDeterminedLocally";
+ }
+ leaf max-u-es-served {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Maximum number of concurrent UEs allowed at a cell. Valid for any {{param|AccessMode}}. A value of -1 allows an unlimited number of concurrent UEs up to the limit of FAP capacity. The setting does not affect emergency calls.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MaxUEsServed";
+ }
+ leaf max-csg-members {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Maximum number of concurrent CSG member UEs allowed at a hybrid or closed cell. A value of -1 allows an unlimited number of CSG members up to the limit of FAP capacity. The setting cannot be larger than the value of {{param|MaxUEsServed}}. The setting does not affect emergency calls. {{bibref|3GPP-TS.22.011}}, {{bibref|3GPP-TS.22.220}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MaxCSGMembers";
+ }
+ leaf max-non-csg-members {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Maximum number of concurerent non-CSG member UEs allowed at a hybrid cell. Valid only if {{param|AccessMode}} is {{enum|Hybrid Access|AccessMode}}. The setting cannot be larger than the value of {{param|MaxUEsServed}}. The setting does not affect emergency calls.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MaxNonCSGMembers";
+ }
+ leaf max-resource-non-csg-members {
+ type uint8 {
+ range "0..100";
+ }
+ config false;
+ description
+ "Maximum percentage of physical resource that can be assigned to non-CSG members aggregately at one time. In UMTS FAP, this applies to RB resource.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MaxResourceNonCSGMembers";
+ }
+ leaf hnb-name {
+ type string {
+ length "0..48";
+ }
+ config false;
+ description
+ "Home NodeB name. An operator-defined string that is broadcast by a CSG cell or a hybrid cell and displayed on the UE for the purpose of manual cell selection or indication that the UE is camped on the cell as specified in {{bibref|3GPP-TS.22.220|Section 5.4.2}}. Corresponds to parameter 'hnb-Name' specified in SIB20 in {{bibref|3GPP-TS.25.331|Section 10.2.48.8.23}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.HNBName";
+ }
+ leaf csgid {
+ type uint32 {
+ range "0..134217727";
+ }
+ config false;
+ description
+ "Defines the Closed Subscriber Group of the Access Control List. The UMTS FAP broadcasts this CSG ID in SIB3 depending on the AccessMode. The LTE FAP broadcasts this in SIB1, and corresponds to parameter csg-Identity in SIB1 in {{bibref|3GPP-TS.36.331}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.CSGID";
+ }
+ leaf-list access-control-list {
+ type string {
+ length "0..15";
+ }
+ config false;
+ max-elements "1024";
+ description
+ "{{list}} Each entry is an IMSI.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.AccessControlList";
+ }
+ leaf max-member-detail-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.AccessMgmt.UMTS.MemberDetail.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MaxMemberDetailEntries";
+ }
+ leaf member-detail-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MemberDetailNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.";
+ }
+
+ grouping access-mgmt-umts-member-detail-g {
+ description
+ "Details for CSG and Non-CSG members.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the MemberDetail entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Alias";
+ }
+ leaf imsi {
+ type string {
+ length "0..15";
+ }
+ description
+ "International Mobile Subscriber Identity of the UE.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.IMSI";
+ }
+ leaf msisdn {
+ type string {
+ length "0..15";
+ }
+ config false;
+ description
+ "Mobile Station International Subscriber Identity Number. Set to {{empty}} if unknown.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MSISDN";
+ }
+ leaf membership-expires {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the ACL membership expires. An Unknown Time value, as defined in {{bibref|TR-106a2|Section 3.2}}, indicates that the membership doesn't expire. Upon expiry the FAP MUST remove the IMSI from the {{param|.AccessMgmt.UMTS.AccessControlList}}, but the entry in {{object|.AccessMgmt.UMTS.MemberDetail.{i}.}} remains. {{bibref|3GPP-TS.22.011}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MembershipExpires";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+ }
+
+ grouping access-mgmt-umts-local-ip-access-g {
+ description
+ "Local IP access for UMTS FAP.";
+ leaf enable {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Enables/disables the Local IP Access (LIPA) functionality.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.Enable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+ }
+
+ grouping access-mgmt-lte-g {
+ description
+ "This object contains parameters relating to Access Management, as defined in {{bibref|3GPP-TS.32.592}}/ Closed Subscriber Group (CSG) service behavior is specified in {{bibref|3GPP-TS.22.011}}. Note: Cell barring and 3GPP access class parameters are contained in SIB1 in {{bibref|3GPP-TS.36.331}}.";
+ leaf access-mode {
+ type enumeration {
+ enum "open access" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.AccessMode - Open Access";
+ }
+ enum "closed access" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.AccessMode - Closed Access";
+ }
+ enum "hybrid access" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.AccessMode - Hybrid Access";
+ }
+ }
+ default "open access";
+ config false;
+ description
+ "Indicates the type of access mode the FAP operates in. {{enum}} Note: This parameter controls the setting of the CSGindicator bit, specified in SIB1 in {{bibref|3GPP-TS.36.331}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.AccessMode";
+ }
+ leaf max-u-es-served {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Maximum number of concurrent UEs allowed at a cell. Valid for any {{param|AccessMode}}. A value of -1 allows an unlimited number of concurrent UEs up to the limit of FAP capacity. The setting does not affect emergency calls.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.MaxUEsServed";
+ }
+ leaf max-csg-members {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Maximum number of concurrent CSG member UEs allowed at a hybrid or closed cell. A value of -1 allows an unlimited number of CSG members up to the limit of FAP capacity. The setting cannot be larger than the value of {{param|MaxUEsServed}}. The setting does not affect emergency calls. {{bibref|3GPP-TS.22.011}}, {{bibref|3GPP-TS.22.220}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.MaxCSGMembers";
+ }
+ leaf max-non-csg-members {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Maximum number of concurerent non-CSG member UEs allowed at a hybrid cell. Valid only if {{param|AccessMode}} is {{enum|Hybrid Access|AccessMode}}. The setting cannot be larger than the value of {{param|MaxUEsServed}}. The setting does not affect emergency calls.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.MaxNonCSGMembers";
+ }
+ leaf max-resource-non-csg-members {
+ type uint8 {
+ range "0..100";
+ }
+ config false;
+ description
+ "Maximum percentage of physical resource that can be assigned to non-CSG members aggregately at one time. This applies to PDSCH physical resource blocks.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.MaxResourceNonCSGMembers";
+ }
+ leaf csgid {
+ type uint32 {
+ range "0..134217727";
+ }
+ config false;
+ description
+ "Defines the Closed Subscriber Group of the Access Control List. The LTE FAP broadcasts this in SIB1, and corresponds to parameter csg-Identity in SIB1 in {{bibref|3GPP-TS.36.331}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.CSGID";
+ }
+ leaf hnb-name {
+ type string {
+ length "0..48";
+ }
+ config false;
+ description
+ "Home NodeB name. An operator-defined string that is broadcast by a CSG cell or a hybrid cell and displayed on the UE for the purpose of manual cell selection or indication that the UE is camped on the cell as specified in {{bibref|3GPP-TS.22.220|Section 5.4.2}}. Corresponds to parameter 'hnb-Name' specified in SIB9 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.HNBName";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.";
+ }
+
+ grouping access-mgmt-lte-local-ip-access-g {
+ description
+ "Local IP access for LTE FAP.";
+ leaf enable {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Enables/disables the Local IP Access (LIPA) functionality.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.Enable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+ }
+
+ grouping access-mgmt-cdma2000-g {
+ description
+ "This object contains configurable and observable attributes related to CDMA2000 Access and Admission Control of the FAP.";
+ leaf access-mode {
+ type uint8 {
+ range "0 | 1 | 3";
+ }
+ config false;
+ description
+ "Defines the access control mode of FAP. Allowed modes are Open, Closed, and Signaling Association (refer to {{bibref|3GPP2-A.S0024}}). AccessMode 2 (Hybrid) is not applicable to CDMA2000 FAPs. 0- Open,1-Closed, 2-Reserved, 3-Signaling Association.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.AccessMode";
+ }
+ leaf max-total-active-calls-allowed {
+ type uint16 {
+ range "1..1024";
+ }
+ config false;
+ description
+ "Total number of active calls allowed.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MaxTotalActiveCallsAllowed";
+ }
+ leaf access-control-list {
+ type string {
+ length "0..1024";
+ }
+ config false;
+ description
+ "{{list}} (maximum item length 15). Each entry is an IMSI.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.AccessControlList";
+ }
+ leaf max-member-detail-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.AccessMgmt.CDMA2000.MemberDetail.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MaxMemberDetailEntries";
+ }
+ leaf member-detail-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetailNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.";
+ }
+
+ grouping access-mgmt-cdma2000-member-detail-g {
+ description
+ "At most one enabled entry in this table can exist with a given value for IMSI and HRPDIdentifierValue. The IMSI field may be empty.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Alias";
+ }
+ leaf imsi {
+ type string {
+ length "0..15";
+ }
+ description
+ "International Mobile Subscriber Identity of the UE.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.IMSI";
+ }
+ leaf hrpd-identifier-type {
+ type int64;
+ config false;
+ description
+ "Type of identifier used for the HRPD AT. 0-invalid 1-ESN 2-MEID 3-A12NAI. If IMSI in this record is valid, then this attribute is set to 0.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierType";
+ }
+ leaf hrpd-identifier-value {
+ type string {
+ length "0..128";
+ }
+ config false;
+ description
+ "The value of this attribute depends on {{param|HRPDIdentifierType}}. ESN and MEID shall be defined as Hex.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierValue";
+ }
+ leaf membership-expires {
+ type yang:date-and-time;
+ config false;
+ description
+ "The time that the current ACL membership expires.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.MembershipExpires";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+ }
+
+ grouping access-mgmt-cdma2000-local-ip-access-g {
+ description
+ "Local IP access support as defined in 3GPP2";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.";
+ }
+
+ grouping access-mgmt-cdma2000-local-ip-access-hrpd-g {
+ description
+ "Local IP access support as defined in 3GPP2";
+ leaf filter-type {
+ type uint8 {
+ range "0..3";
+ }
+ config false;
+ description
+ "Value of '0' indicates that the FAP shall allow only IP packets with destination address matching the local IP subnet on Local IP access interface. Value of '1' indicates that the FAP shall allow any IP packets with destination address matching either the local IP subnet or the subnets listed in Local IP egress filter parameter on Local IP access interface. Value of '2' indicates that the FAP shall allow any IP packets with destination addresses that do not match the Local IP egress filter parameter on Local IP access interface.Value of '3' indicates that the FAP shall allow any IP packets on the local IP address interface.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterType";
+ }
+ leaf filter-in-use {
+ type string {
+ length "0..256";
+ }
+ description
+ "This parameter is set to the IPCP Vendor Specific Option which the FAP uses to send Local IP access packet filter on AN-PPP interface.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterInUse";
+ }
+ leaf egress-filter-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilterNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+ }
+
+ grouping access-mgmt-cdma2000-local-ip-access-hrpd-egress-filter-g {
+ description
+ "HRPD LIPA Egress Filter Table entries.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Alias";
+ }
+ leaf subnet {
+ type inet:ipv4-address;
+ description
+ "The IP subnet of the egress filter to be installed to the AT. The meaning of this field depends on the {{param|.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterType}} field.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Subnet";
+ }
+ leaf subnet-mask {
+ type uint8 {
+ range "0..32";
+ }
+ description
+ "The length of the IP subnetmask associated with the IP subnet in the previous field.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.SubnetMask";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+ }
+
+ grouping access-mgmt-legacy-g {
+ description
+ "This object contains configurable and observable attributes related to Access and Admission Control of the FAP, which are not not covered by 3GPP and 3GPP2 specifications.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.";
+ }
+
+ grouping access-mgmt-legacy-local-ip-access-g {
+ description
+ "Old Local IP access object, included on special request.";
+ leaf enable {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Enables/disables the Local IP Access (LIPA) functionality.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Enable";
+ }
+ leaf max-rules-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.MaxRulesEntries";
+ }
+ leaf rule-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.RuleNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+ }
+
+ grouping access-mgmt-legacy-local-ip-access-rule-g {
+ description
+ "Policy for selecting traffic for local IP access. Originated traffic will be NAT'ed. The rule is bi-directional, i.e. return traffic is allowed. Rules do NOT affect traffic to/from the FAP itself (such as TR-069 or control). The rules are applied to the mobile station data traffic (PS-domain) via deep packet inspection or similar method.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the forwarding entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Alias";
+ }
+ leaf dest-ip-address {
+ type inet:ip-address;
+ description
+ "Destination IP Address. {{empty}} indicates no destination address is specified. An entry for which {{param}} and {{param|DestSubnetMask}} are both {{empty}} is a default route.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestIPAddress";
+ }
+ leaf dest-subnet-mask {
+ type inet:ip-address;
+ description
+ "Destination subnet mask (IPv4) or prefix (IPv6). {{empty}} indicates no destination subnet mask or prefix is specified. If a destination subnet mask or prefix is specified, {{param}} is ANDed with the destination address before comparing with {{param|DestIPAddress}}. Otherwise, the full destination address is used as-is. An entry for which {{param|DestIPAddress}} and {{param}} are both {{empty}} is a default route.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestSubnetMask";
+ }
+ leaf protocol {
+ type int64;
+ description
+ "IP Protocol Identifier. -1 matches any protocol.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Protocol";
+ }
+ leaf action {
+ type enumeration {
+ enum "tunnel" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Action - Tunnel";
+ }
+ enum "napt" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Action - NAPT";
+ }
+ }
+ config false;
+ description
+ "Action to be taken for traffic matching this rule.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Action";
+ }
+ leaf interface {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "Specifies the egress interface when {{param|Action}} is set to {{enum|NAPT|Action}}. {{reference}} layer-3 connection object. Example: InternetGatewayDevice.LANDevice.{i}.LANEthernetInterfaceConfig.{i}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Interface";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+ }
+
+ grouping cell-config-g {
+ description
+ "This object contains parameters relating to configuring the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.";
+ }
+
+ grouping umts-g {
+ description
+ "This object contains parameters relating to configuring UMTS system specific information.";
+ leaf tunnel-instance {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "This is the reference to the IPsec tunnel instance used by the UMTS FAP. For all root data models, which use the tunnel definition provided in {{bibref|TR-262}} (InternetGatewayDevice:1 {{bibref|TR-098}} and Device:1 {{bibref|TR-181i1}}) the {{param}} MUST point to a row in the 'FAP.Tunnel.IKESA.{i}.' table, defined in {{bibref|TR-262}}. If the root data model used is Device:2 {{bibref|TR-181i2}} than the {{param}} MUST point to IPsec tunnel instance defined in {{bibref|TR-181i2}}. If the referenced object is deleted, the parameter value MUST be set to an empty string. In case of a multiple-radio-technology FAP product, each radio technology can have its own tunnels or share common tunnels. In the former case, {{param}} can contain a unique instance number. In the latter case, {{param}} under all radio technologies can have the same instance number.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.TunnelInstance";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.";
+ }
+
+ grouping umts-cn-g {
+ description
+ "This object contains parameters relating to configuring UMTS CN.";
+ leaf plmn-type {
+ type enumeration {
+ enum "gsm-map" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.PLMNType - GSM-MAP";
+ }
+ enum "ansi-41" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.PLMNType - ANSI-41";
+ }
+ }
+ config false;
+ description
+ "Type of Public Land Mobile Network (PLMN).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.PLMNType";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ config false;
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.PLMNID";
+ }
+ leaf-list equiv-plmnid {
+ type string {
+ length "0..6";
+ }
+ config false;
+ max-elements "64";
+ description
+ "{{list}} Each item is a PLMNID. PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of the PLMNID is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.EquivPLMNID";
+ }
+ leaf sac {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Service Area Code (SAC) {{bibref|3GPP-TS.23.003}}. The concatenation of PLMN ID (MCC+MNC), LAC, and SAC uniquely identifies the Service Area ID (SAI).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.SAC";
+ }
+ leaf broadcast-sac {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Service Area Code (SAC) for broadcast. The format of this parameter is the same with {{param|SAC}}, and it uniquely identifies the Service Area ID (SAI) for Earthquake and Tsunami Warning Services (ETWS) {{bibref|3GPP-TS.25.469|Section 9.1.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.BroadcastSAC";
+ }
+ leaf-list lacrac {
+ type string;
+ config false;
+ max-elements "256";
+ description
+ "{{list}} Each item is a LAC/RAC combination expressed in the following format: :<LAC or LACrange>':'<RAC or RACrange> Where LAC and RAC are single values, while LACrange and RACrange are inclusive and can be expressed in the following format: :<Start-value>\"..\"<End-value> Location Area Code (LAC) consists of up to 5 numerical characters. The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}. Routing Area Code (RAC) consists of up to 3 numerical characters. The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}. The FAP is to select one LAC and RAC from the combination(s) expressed in this parameter for use in {{param|LACInUse}} and {{param|RACInUse}} respectively. If a LAC occurs more than once in the list, this shall not increase the chance that it is selected over other LAC values in the list. The following are examples of the valid LACRAC combination formats: :\"64000:210\" ::(one list item with single value for LAC and RAC) :\"64000..64100:210, 64101:211\" ::(two list items, first item has a LAC range) :\"64000:210..214, 64001:215..219\" ::(two list items, both items have a RAC range for a specific LAC value) :\"64000..64100:210..214\" ::(one list item both have a LAC range and a RAC range)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.LACRAC";
+ }
+ leaf lac-in-use {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "The LAC being used by the FAP. Self-configuration for LAC is controlled by {{param|.Capabilities.UMTS.SelfConfig.LACRACURAConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in {{param|LACRAC}}. If the self-configuration capability is not available or not enabled, then this parameter contains the first LAC value in {{param|LACRAC}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.LACInUse";
+ }
+ leaf rac-in-use {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "The RAC being used by the FAP. Self-configuration for RAC is controlled by {{param|.Capabilities.UMTS.SelfConfig.LACRACURAConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in {{param|LACRAC}}. If the self-configuration capability is not available or not enabled, then this parameter contains the first RAC value in {{param|LACRAC}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.RACInUse";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.";
+ }
+
+ grouping umts-cn-cs-domain-g {
+ description
+ "This object contains parameters relating to configuring the CS domain of the UMTS CN.";
+ leaf t3212 {
+ type uint32 {
+ range "0..91800";
+ }
+ units "seconds";
+ config false;
+ description
+ "T3212 timeout value specified in {{units}} {{bibref|3GPP-TS.24.008|section 10.5.1.12.2}}. The values are implemented by steps of 360 {{units}}, which aligns with values in decihours in {{bibref|3GPP-TS.24.008}}. The value of 0 is used for infinite timeout value i.e. periodic updating shall not be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.CSDomain.T3212";
+ }
+ leaf imsi-attach-detach-enable {
+ type boolean;
+ config false;
+ description
+ "Indicates the UE behavior regarding IMSI attach/detach procedure to the CN {{bibref|3GPP-TS.24.008}}. If {{true}} UE SHALL apply IMSI attach and detach procedure If {{false}} UE SHALL NOT apply IMSI attach and detach procedure";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.CSDomain.IMSIAttachDetachEnable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+ }
+
+ grouping umts-cn-ps-domain-g {
+ description
+ "This object contains parameters relating to configuring the PS domain of the UMTS CN.";
+ leaf network-mode-operation-combined {
+ type boolean;
+ config false;
+ description
+ "Network Mode of Operation of the CN. {{bibref|3GPP-TS.23.060}} {{bibref|3GPP-TS.24.008}} If {{true}} (Network Mode of Operation II) Combined procedures between CS and PS domain are not supported (i.e. Gs interface is not present). If {{false}} (Network Mode of Operation I) Combined procedures between CS and PS domain are supported (i.e. Gs interface is present).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.PSDomain.NetworkModeOperationCombined";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+ }
+
+ grouping umts-ran-g {
+ description
+ "This object contains parameters relating to the RAN-level configuration.";
+ leaf-list ura-list {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ min-elements 1;
+ max-elements "50";
+ description
+ "{{list}} Each item is a URA (UTRAN Registration Area) to which the FAP belongs. The order of the URA values has no significance. {{bibref|3GPP-TS.25.331|Section 10.3.2.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.URAList";
+ }
+ leaf ura-in-use {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "The URA being used by the FAP. Self-configuration for URA is controlled by {{param|.Capabilities.UMTS.SelfConfig.LACRACURAConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable}} from an enabled perspective. If the FAP's self-configuration capability for URA is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in {{param|URAList}}. If the self-configuration capability is not available or not enabled, then this parameter contains the first URA value in {{param|URAList}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.URAInUse";
+ }
+ leaf rncid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "RNC-ID allocated to the FAP. It uniquely identifies an RNC within a PLMN. Normally, RNC-ID consists of 12 bits (i.e. a range of [0:4095]). However, if the value is larger than 4095, then Extended RNC-ID (range of [4096:65535]) is used in RANAP. The RNC-ID and Extended RNC-ID are combined into a single parameter here as there is no explicit need to have them separated. {{bibref|3GPP-TS.25.413|Section 9.2.1.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RNCID";
+ }
+ leaf cell-id {
+ type uint32 {
+ range "0..268435455";
+ }
+ config false;
+ description
+ "Cell Identity. {{bibref|3GPP-TS.25.401|Section 6.1.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellID";
+ }
+ leaf t-rat-c {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Guard period in {{units}} before sending a \"RANAP:RESET ACKNOWLEDGE\" message towards the Femto GW. {{bibref|3GPP-TS.25.413|Section 9.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.TRatC";
+ }
+ leaf t-raf-c {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Maximum amount of time in {{units}} that the FAP SHOULD wait for receiving a \"RANAP:RESET ACKNOWLEDGE\" message from the Femto GW after sending a Reset to the Femto GW. {{bibref|3GPP-TS.25.413|Section 9.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.TRafC";
+ }
+ leaf n-raf-c {
+ type uint64 {
+ range "1..max";
+ }
+ config false;
+ description
+ "Maximum number for RESET procedure that can be repeated in FAP. {{bibref|3GPP-TS.25.413|Section 8.26.3.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NRafC";
+ }
+ leaf tig-or {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Amount of time in {{units}} used to determine when the additional level of traffic reduction in CN overload SHOULD take place. While this timer is running all OVERLOAD messages or signalling pointing to congested information received by the FAP are ignored. {{bibref|3GPP-TS.25.413|Section 9.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.TigOR";
+ }
+ leaf tin-tr {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Amount of time in {{units}} used to determine when the CN overload can be considered cleared. While this timer is running, the FAP is not allowed to increase traffic. {{bibref|3GPP-TS.25.413|Section 9.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.TinTR";
+ }
+ leaf t-data-fwd {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Maximum amount of time in {{units}} for Data Forwarding at FAP. Timer is started when a \"RANAP:SRNS Data Forward Command\" message (or a \"RANAP:Relocation Command\" message) is received. At timer expiry the \"SRNS Data Forwarding\" procedure is completed. {{bibref|3GPP-TS.25.413|Section 9.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.TDataFwd";
+ }
+ leaf t-reloc-prep {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Maximum amount of time in {{units}} for the Relocation Preparation procedure. Timer is started when a \"RANAP:Relocation Required\" message is sent. Timer is stopped when a \"RANAP:Relocation Command\" or a \"RANAP:Relocation Preparation Failure\" message is received. {{bibref|3GPP-TS.25.413|Section 9.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.TRelocPrep";
+ }
+ leaf t-reloc-overall {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Maximum amount of time in {{units}} for protection of the overall Relocation procedure. Timer is started when a \"RANAP:Relocation Command\" message is received. Timer is stopped when a \"RANAP:Iu Release Command\" is received or the relocation procedure is cancelled. {{bibref|3GPP-TS.25.413|Section 9.5}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.TRelocOverall";
+ }
+ leaf hnbid-realm {
+ type string {
+ length "0..182";
+ }
+ config false;
+ description
+ "The \"realm\" portion of the HNB-ID where HNB-ID is defined in {{bibref|3GPP-TS.25.469}} and is shown as follows: 0<IMSI>@<realm> Or 1<OUI>-<SerialNumber>@<realm> The other identifiers before \"@\" are device dependent values. Both <OUI> and <SerialNumber> are defined in {{bibref|TR-069a2|Table 36}}. <IMSI> is obtained from the USIM if it is equipped in the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.HNBIDRealm";
+ }
+ leaf hs-flag {
+ type boolean;
+ config false;
+ description
+ "Enables/disables the HSDPA function in the FAP. If {{true}} HSDPA is enabled (this is equivalent to a \"1\" in {{bibref|3GPP-TS.32.642|Section 6.3.9}}) If {{false}} HSDPA is disabled (this is equivalent to a \"0\" in {{bibref|3GPP-TS.32.642|Section 6.3.9}})";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.HSFlag";
+ }
+ leaf hs-enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables HSDPA in the cell. If {{true}} HSDPA is enabled (this is equivalent to a \"1\" in {{bibref|3GPP-TS.32.642|Section 6.3.9}}) If {{false}} HSDPA is not enabled (this is equivalent to a \"0\" in {{bibref|3GPP-TS.32.642|Section 6.3.9}}) If {{param|HSFlag}} is {{false}} then this value MUST be {{false}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.HSEnable";
+ }
+ leaf num-of-hspdsc-hs {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "The number of codes at the defined spreading factor (SF=16), within the complete code tree. {{bibref|3GPP-TS.32.642|Section 6.3.9}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSPDSCHs";
+ }
+ leaf num-of-hsscc-hs {
+ type uint64;
+ config false;
+ description
+ "The number of HS-SCCHs for one cell. {{bibref|3GPP-TS.32.642|Section 6.3.9}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSSCCHs";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.";
+ }
+
+ grouping umts-ran-csg-g {
+ description
+ "This object contains parameters relating to the Closed Subscriber Group (CSG).";
+ leaf csg-indicator {
+ type boolean;
+ description
+ "The CSG-indicator Information Element (IE) in the Master Information Block reflects the access mode of the CSG cell. It is hence dependent on the value of {{param|.AccessMgmt.UMTS.AccessMode}}. If {{true}} the CSG-indicator IE is present, reflecting access to the CSG cell is closed. If {{false}} the CSG-indicator IE is absent, reflecting access to the CSG cell is not closed. {{bibref|3GPP-TS.25.331|Section 10.2.48.8.1}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGIndicator";
+ }
+ leaf-list uarfcndl-list {
+ type uint16 {
+ range "0..16383";
+ }
+ config false;
+ max-elements "128";
+ description
+ "{{list}} Each item is a UTRA Absolute Radio Frequency Channel Number (UARFCN) in the DL direction dedicated to the CSG cells. {{param}} is broadcast in SIB 11bis {{bibref|3GPP-TS.25.331|Section 10.2.48.8.14a}}. The corresponding UTRA Absolute Radio Frequency Channel Number (UARFCN) in the UL direction is derived based on the fixed offset applicable for the frequency band.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.UARFCNDLList";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+ }
+
+ grouping umts-ran-csg-csgpsc-split-info-g {
+ description
+ "This object contains parameters relating to the Primary Scrambling Code (PSC) split information for the CSG. Defined in SIB3/11bis {{bibref|3GPP-TS.25.331|Section 10.3.2.8 and 10.3.2.9}}.";
+ leaf start-psc-range1-coefficient {
+ type uint8 {
+ range "0..63";
+ }
+ config false;
+ description
+ "The value of this Information Element (IE) multiplied by 8 specifies the start PSC value of the first PSC range as specified in {{bibref|3GPP-TS.25.331|Section 8.6.2.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+ }
+ leaf number-of-ps-cs {
+ type enumeration {
+ enum "5" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 5";
+ }
+ enum "10" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 10";
+ }
+ enum "15" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 15";
+ }
+ enum "20" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 20";
+ }
+ enum "30" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 30";
+ }
+ enum "40" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 40";
+ }
+ enum "50" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 50";
+ }
+ enum "64" {
+ value 8;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 64";
+ }
+ enum "80" {
+ value 9;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 80";
+ }
+ enum "120" {
+ value 10;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 120";
+ }
+ enum "160" {
+ value 11;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 160";
+ }
+ enum "256" {
+ value 12;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - 256";
+ }
+ enum "alltherest" {
+ value 13;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - alltherest";
+ }
+ enum "spare3" {
+ value 14;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - spare3";
+ }
+ enum "spare2" {
+ value 15;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - spare2";
+ }
+ enum "spare1" {
+ value 16;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs - spare1";
+ }
+ }
+ config false;
+ description
+ "This Information Element (IE) specifies the number of PSCs reserved for CSG cells in each PSC range.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs";
+ }
+ leaf psc-range2-offset {
+ type uint8 {
+ range "0..63";
+ }
+ config false;
+ description
+ "If this Information Element (IE) is included, the UE shall calculate the second PSC range as specified in {{bibref|3GPP-TS.25.331|Section 8.6.2.4}}. If this Information Element (IE) is not included, the UE shall consider the second PSC range to be not present.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.PSCRange2Offset";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+ }
+
+ grouping umts-ran-cell-selection-g {
+ description
+ "This object contains parameters related to cell selection and reselection.";
+ leaf quality-measure-cpich {
+ type enumeration {
+ enum "ec/no" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QualityMeasureCPICH - Ec/No";
+ }
+ enum "rscp" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QualityMeasureCPICH - RSCP";
+ }
+ }
+ config false;
+ description
+ "Which mechanism to use when doing CPICH quality measurements. {{bibref|3GPP-TS.25.331|Section 10.3.7.47}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QualityMeasureCPICH";
+ }
+ leaf qqual-min {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Minimum required quality measure, specified in {{units}}. {{bibref|3GPP-TS.25.331|Section 10.3.2.3 and Section 10.3.2.4}} This value is only meaningful if {{param|QualityMeasureCPICH}} has the value {{enum|Ec/No|QualityMeasureCPICH}} and it MUST otherwise be ignored.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMin";
+ }
+ leaf qqual-min-offset {
+ type uint8 {
+ range "1..16";
+ }
+ units "dB";
+ default "1";
+ config false;
+ description
+ "Offset for {{param|QqualMin}} specified in {{units}}. {{bibref|3GPP-TS.25.331|Section 10.3.2.3}} This value is only meaningful if {{param|QualityMeasureCPICH}} has the value {{enum|Ec/No|QualityMeasureCPICH}} and it MUST otherwise be ignored.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMinOffset";
+ }
+ leaf q-rx-lev-min {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Minimum required RX level in the cell, specified in {{units}}. {{bibref|3GPP-TS.25.331|Section 10.3.2.3}} Only odd values are valid, use of an even value MUST be rejected by the CPE. This value is only meaningful if {{param|QualityMeasureCPICH}} has the value {{enum|RSCP|QualityMeasureCPICH}} and it MUST otherwise be ignored.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMin";
+ }
+ leaf delta-q-rx-lev-min {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Delta for the minimum required RX level in the cell, specified in {{units}}. {{bibref|3GPP-TS.25.331|Section 10.3.2.3 and Section 10.3.2.4}} The actual value of {{param|QRxLevMin}} = {{param|QRxLevMin}} + {{param}} This value is only meaningful if {{param|QualityMeasureCPICH}} has the value {{enum|RSCP|QualityMeasureCPICH}} and it MUST otherwise be ignored.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.DeltaQRxLevMin";
+ }
+ leaf q-rx-lev-min-offset {
+ type uint8 {
+ range "2 | 4 | 6 | 8 | 10 | 12 | 14 | 16";
+ }
+ units "dB";
+ default "2";
+ config false;
+ description
+ "Offset for {{param|QRxLevMin}}, specified in {{units}}. {{bibref|3GPP-TS.25.331|Section 10.3.2.3}} This value is only meaningful if {{param|QualityMeasureCPICH}} has the value {{enum|RSCP|QualityMeasureCPICH}} and it MUST otherwise be ignored.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMinOffset";
+ }
+ leaf q-hyst1s {
+ type uint8 {
+ range "0..40";
+ }
+ config false;
+ description
+ "GSM and FDD Cell reselection hysteresis 1. {{bibref|3GPP-TS.25.331|Section 10.3.2.3}} Only even values are valid, use of an odd value MUST be rejected by the CPE.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst1s";
+ }
+ leaf q-hyst2s {
+ type uint8 {
+ range "0..40";
+ }
+ config false;
+ description
+ "FDD Cell reselection hysteresis 2. {{bibref|3GPP-TS.25.331|Section 10.3.2.3}} Only even values are valid, use of an odd value MUST be rejected by the CPE. This value is only meaningful if {{param|QualityMeasureCPICH}} has the value {{enum|Ec/No|QualityMeasureCPICH}} and it MUST otherwise be ignored. By default when {{param|QHyst1s}} is set and {{param}} is not, then the value for {{param}} SHOULD match the value of {{param|QHyst1s}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst2s";
+ }
+ leaf t-reselections {
+ type uint8 {
+ range "0..31";
+ }
+ units "seconds";
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. A UE triggers the reselection of a new cell if the cell reselection criteria are fulfilled during the time interval in {{units}}. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TReselections";
+ }
+ leaf s-intrasearch {
+ type int64;
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the threshold for intra-frequency measurements, and for the HCS measurement rules. Only even values are valid, use of an odd value MUST be rejected by the CPE. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntrasearch";
+ }
+ leaf s-intersearch {
+ type int64;
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the threshold for inter-frequency measurements, and for the HCS measurement rules. Only even values are valid, use of an odd value MUST be rejected by the CPE. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntersearch";
+ }
+ leaf s-search-hcs {
+ type int64;
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the threshold for intrafrequency and interfrequency measurement rules in HCS. Below this limit in the serving cell, the UE initiates measurements of all intrafrequency and interfrequency neighbouring cells of the serving cell. Only odd values are valid, use of an even value MUST be rejected by the CPE. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchHCS";
+ }
+ leaf s-search-rat {
+ type int64;
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the RAT (GSM) specific threshold for inter-RAT measurement rules. Only even values are valid, use of an odd value MUST be rejected by the CPE. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchRAT";
+ }
+ leaf shcsrat {
+ type int64;
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the RAT (GSM) specific threshold for inter-RAT measurement rules in HCS. Only odd values are valid, use of an even value MUST be rejected by the CPE. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SHCSRAT";
+ }
+ leaf s-limit-search-rat {
+ type int64;
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the threshold for skipping inter-RAT measurement rules in HCS. Above this RAT (GSM) specific threshold in the serving UTRA cell, the UE does not need to perform any inter-RAT measurements. Only even values are valid, use of an odd value MUST be rejected by the CPE. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SLimitSearchRAT";
+ }
+ leaf non-hcstcr-max {
+ type enumeration {
+ enum "not used" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax - not used";
+ }
+ enum "30" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax - 30";
+ }
+ enum "60" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax - 60";
+ }
+ enum "120" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax - 120";
+ }
+ enum "180" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax - 180";
+ }
+ enum "240" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax - 240";
+ }
+ }
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the duration in seconds for evaluating the allowed amount of cell reselections. If the number of cell reselections during the time period defined by {{param}} exceeds {{param|NonHCSNCR}}, high mobility has been detected. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax";
+ }
+ leaf non-hcsncr {
+ type uint8 {
+ range "1..16";
+ }
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the maximum number of cell reselections. If the number of cell reselections during the {{param|NonHCSTCRMax}} time period exceeds the value of {{param}}, high mobility has been detected. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSNCR";
+ }
+ leaf non-hcstcr-max-hyst {
+ type enumeration {
+ enum "not used" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - not used";
+ }
+ enum "10" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - 10";
+ }
+ enum "20" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - 20";
+ }
+ enum "30" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - 30";
+ }
+ enum "40" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - 40";
+ }
+ enum "50" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - 50";
+ }
+ enum "60" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - 60";
+ }
+ enum "70" {
+ value 8;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst - 70";
+ }
+ }
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the cell reselection hysteresis for reverting from UE high-mobility measurements. The additional time period in seconds before UE reverts to low-mobility measurements. When the number of cell reselections during the time period defined by {{param|TCRMax}} no longer exceeds {{param|NCR}}, UE continues measurements during the time period defined by {{param|TCRMaxHyst}}. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.2.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst";
+ }
+ leaf qhcs {
+ type uint8 {
+ range "0..99";
+ }
+ default "0";
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the quality threshold levels for applying prioritised hierarchical cell reselection. {{bibref|3GPP-TS.25.331|Section 10.3.7.12 and Section 10.3.7.54a}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHCS";
+ }
+ leaf use-of-hcs {
+ type boolean;
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Indicate whether HCS is used in this cell or not. {{bibref|3GPP-TS.25.331|Section 10.3.7.47}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UseOfHCS";
+ }
+ leaf hcs-prio {
+ type uint8 {
+ range "0..7";
+ }
+ default "0";
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the HCS priority of this cell. {{bibref|3GPP-TS.25.331|Section 10.3.7.12}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.HCSPrio";
+ }
+ leaf tcr-max {
+ type enumeration {
+ enum "not used" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax - not used";
+ }
+ enum "30" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax - 30";
+ }
+ enum "60" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax - 60";
+ }
+ enum "120" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax - 120";
+ }
+ enum "180" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax - 180";
+ }
+ enum "240" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax - 240";
+ }
+ }
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the duration in seconds for evaluating the allowed amount of cell reselections. If the number of cell reselections during the time period defined by {{param}} exceeds {{param|NCR}}, high mobility has been detected. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.7.12}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax";
+ }
+ leaf ncr {
+ type uint8 {
+ range "1..16";
+ }
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the maximum number of cell reselections. If the number of cell reselections during the {{param|TCRMax}} time period exceeds the value of {{param}}, high mobility has been detected. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.7.12}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NCR";
+ }
+ leaf tcr-max-hyst {
+ type enumeration {
+ enum "not used" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - not used";
+ }
+ enum "10" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - 10";
+ }
+ enum "20" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - 20";
+ }
+ enum "30" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - 30";
+ }
+ enum "40" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - 40";
+ }
+ enum "50" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - 50";
+ }
+ enum "60" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - 60";
+ }
+ enum "70" {
+ value 8;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst - 70";
+ }
+ }
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the cell reselection hysteresis for reverting from UE high-mobility measurements. The additional time period in seconds before UE reverts to low-mobility measurements. When the number of cell reselections during the time period defined by {{param|TCRMax}} no longer exceeds {{param|NCR}}, UE continues measurements during the time period defined by {{param}}. Parameter defined in SIB3 {{bibref|3GPP-TS.25.331|Section 10.3.7.12}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst";
+ }
+ leaf ue-tx-pwr-max-rach {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "A member of the set of parameters used for cell reselection functionality. Defines the maximum transmit power level, specified in {{units}}, that an UE MAY use when accessing the cell on RACH. Used to calculate Pcompensation, which is: max(UE_TXPWR_MAX_RACH - P_MAX, 0), where UE_TXPWR_MAX_RACH is {{param}} and P_MAX is the max transmit power for a UE. {{bibref|3GPP-TS.25.331|Section 10.3.2.3}} {{bibref|3GPP-TS.25.304|Section 5.2.3}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UETxPwrMaxRACH";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+ }
+
+ grouping umts-ran-rrc-timers-g {
+ description
+ "This object contains parameters related to miscellaneous RRC timers and constants.";
+ leaf t300 {
+ type uint16 {
+ range "100..8000";
+ }
+ units "milliseconds";
+ default "1000";
+ config false;
+ description
+ "Timer measured in {{units}}. Only the following values are considered valid: :100, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000, 3000, 4000, 6000, and 8000 Any value other than those and the CPE MUST reject the request. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T300";
+ }
+ leaf t301 {
+ type uint16 {
+ range "100..8000";
+ }
+ units "milliseconds";
+ default "2000";
+ config false;
+ description
+ "Timer measured in {{units}}. Only the following values are considered valid: :100, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000, 3000, 4000, 6000, and 8000 Any value other than those and the CPE MUST reject the request. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T301";
+ }
+ leaf t302 {
+ type uint16 {
+ range "100..8000";
+ }
+ units "milliseconds";
+ default "4000";
+ config false;
+ description
+ "Timer measured in {{units}}. Only the following values are considered valid: :100, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000, 3000, 4000, 6000, and 8000 Any value other than those and the CPE MUST reject the request. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T302";
+ }
+ leaf t304 {
+ type uint16 {
+ range "100 | 200 | 400 | 1000 | 2000";
+ }
+ units "milliseconds";
+ default "2000";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T304";
+ }
+ leaf t305 {
+ type int64;
+ units "minutes";
+ default "30";
+ config false;
+ description
+ "Timer measured in {{units}}. -1 indicates an unbounded timer in which there is no update. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T305";
+ }
+ leaf t307 {
+ type uint8 {
+ range "5 | 10 | 15 | 20 | 30 | 40 | 50";
+ }
+ units "seconds";
+ default "30";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T307";
+ }
+ leaf t308 {
+ type uint16 {
+ range "40 | 80 | 160 | 320";
+ }
+ units "milliseconds";
+ default "160";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T308";
+ }
+ leaf t309 {
+ type uint8 {
+ range "1..8";
+ }
+ units "seconds";
+ default "5";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T309";
+ }
+ leaf t310 {
+ type uint16 {
+ range "40 | 80 | 120 | 160 | 200 | 240 | 280 | 320";
+ }
+ units "milliseconds";
+ default "160";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T310";
+ }
+ leaf t311 {
+ type uint16 {
+ range "250 | 500 | 750 | 1000 | 1250 | 1500 | 1750 | 2000";
+ }
+ units "milliseconds";
+ default "2000";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T311";
+ }
+ leaf t312 {
+ type uint8 {
+ range "0..15";
+ }
+ units "seconds";
+ default "1";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T312";
+ }
+ leaf t313 {
+ type uint8 {
+ range "0..15";
+ }
+ units "seconds";
+ default "3";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T313";
+ }
+ leaf t314 {
+ type uint8 {
+ range "0 | 2 | 4 | 6 | 8 | 12 | 16 | 20";
+ }
+ units "seconds";
+ default "12";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T314";
+ }
+ leaf t315 {
+ type uint16 {
+ range "0 | 10 | 30 | 60 | 180 | 600 | 1200 | 1800";
+ }
+ units "seconds";
+ default "180";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T315";
+ }
+ leaf t316 {
+ type int64;
+ units "seconds";
+ default "30";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}. -1 indicates an unbounded timer in which there is no update.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T316";
+ }
+ leaf t317 {
+ type uint16 {
+ range "0 | 10 | 30 | 60 | 180 | 600 | 1200 | 1800";
+ }
+ units "seconds";
+ config false;
+ description
+ "Timer measured in {{units}}. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T317";
+ }
+ leaf n300 {
+ type uint8 {
+ range "0..7";
+ }
+ default "3";
+ config false;
+ description
+ "Counter. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N300";
+ }
+ leaf n301 {
+ type uint8 {
+ range "0..7";
+ }
+ default "2";
+ config false;
+ description
+ "Counter. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N301";
+ }
+ leaf n302 {
+ type uint8 {
+ range "0..7";
+ }
+ default "3";
+ config false;
+ description
+ "Counter. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N302";
+ }
+ leaf n304 {
+ type uint8 {
+ range "0..7";
+ }
+ default "2";
+ config false;
+ description
+ "Counter. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N304";
+ }
+ leaf n310 {
+ type uint8 {
+ range "0..7";
+ }
+ default "4";
+ config false;
+ description
+ "Counter. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N310";
+ }
+ leaf n312 {
+ type uint16 {
+ range "1..1000";
+ }
+ default "1";
+ config false;
+ description
+ "Counter. Only the following values are considered valid: 1, 2, 4, 10, 20, 50, 100, 200, 400, 600, 800, and 1000. Any value other than those and the CPE MUST reject the request. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.44}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N312";
+ }
+ leaf n313 {
+ type uint8 {
+ range "1 | 2 | 4 | 10 | 20 | 50 | 100 | 200";
+ }
+ default "20";
+ config false;
+ description
+ "Counter. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N313";
+ }
+ leaf n315 {
+ type uint16 {
+ range "1..1000";
+ }
+ default "1";
+ config false;
+ description
+ "Counter. Only the following values are considered valid: :1, 2, 4, 10, 20, 50, 100, 200, 400, 600, 800, and 1000. Any value other than those and the CPE MUST reject the request. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 13.1 and Section 10.3.3.43}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N315";
+ }
+ leaf wait-time {
+ type uint8 {
+ range "0..15";
+ }
+ units "seconds";
+ config false;
+ description
+ "Time period the UE has to wait before repeating the rejected procedure. This is an IE used when sending RRC connection reject, redirecting the requesting UE to another frequency. 0 indicates that repetition is not allowed. {{bibref|3GPP-TS.25.331|Section 10.3.3.50}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.WaitTime";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+ }
+
+ grouping umts-ran-drx-g {
+ description
+ "This object contains parameters related to DRX parameters.";
+ leaf drx-cycle-length-coefficient-cs {
+ type uint8 {
+ range "6..9";
+ }
+ config false;
+ description
+ "Defines the DRX cycle length coefficient for CS domain to optimize paging in idle mode. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 10.3.3.6}}. {{param}} refers to 'k' in the formula as specified in {{bibref|3GPP-TS.25.304}}, Discontinuous reception. Used by the CN CS domain to count paging occasions for discontinuous reception in Idle Mode. The duration of the DRX cycle is 2 <power> k frames, where 'k' is the used DRX cycle length coefficient for CN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientCS";
+ }
+ leaf drx-cycle-length-coefficient-ps {
+ type uint8 {
+ range "6..9";
+ }
+ config false;
+ description
+ "Defines the DRX cycle length coefficient for PS domain to optimize paging in idle mode. Defined in SIB1 {{bibref|3GPP-TS.25.331|Section 10.3.3.6}}. {{param}} refers to 'k' in the formula as specified in {{bibref|3GPP-TS.25.304}}, Discontinuous reception. Used by the CN PS domain to count paging occasions for discontinuous reception in Idle Mode. The duration of the DRX cycle is 2 <power> k frames, where 'k' is the used DRX cycle length coefficient for CN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientPS";
+ }
+ leaf utrandrx-cycle-length-coefficient {
+ type uint8 {
+ range "3..9";
+ }
+ config false;
+ description
+ "Defines the DRX cycle length used by UTRAN to count paging occasions for discontinuous reception in Connected Mode. The duration of the DRX cycle is 2 <power> k frames, where 'k' is the used DRX cycle length coefficient for UTRAN. {{param}} SHOULD be used by the UTRAN/FAP for UEs in Cell_PCH/Cell_FACH state. {{bibref|3GPP-TS.25.331|Section 10.3.3.49}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.DRX.UTRANDRXCycleLengthCoefficient";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+ }
+
+ grouping umts-ran-power-control-g {
+ description
+ "This object contains parameters related to power control and RACH.";
+ leaf constant-value {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Used by the UE to calculate the initial output power, specified in {{units}}, on PRACH according to the open loop power control procedure. Parameter in SIB5. {{bibref|3GPP-TS.25.331|Section 10.3.6.11}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.ConstantValue";
+ }
+ leaf power-ramp-step-up {
+ type uint8 {
+ range "1..8";
+ }
+ units "dB";
+ config false;
+ description
+ "Used for the Uplink Common Channel. Defines the Power ramp setup, specified in {{units}}, on PRACH preamble when no acquisition indicator (AI) is detected by the UE. Parameter in SIB5. {{bibref|3GPP-TS.25.331|Section 10.3.6.54}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PowerRampStepUp";
+ }
+ leaf preamble-retrans-max {
+ type uint8 {
+ range "1..64";
+ }
+ config false;
+ description
+ "Used for the Uplink Common Channel. Defines the maximum number of preambles allowed in one preamble ramping cycle. PRACH Preamble Retrans Max is part of \"PRACH power offset\" which is part of \"PRACH system information list\". Parameter in SIB5. {{bibref|3GPP-TS.25.331|Section 10.3.6.54}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PreambleRetransMax";
+ }
+ leaf persistence-scale-factor {
+ type uint8 {
+ range "2..9";
+ }
+ config false;
+ description
+ "Persistence Scaling Factor for overload control. Parameter in SIB5. The value is the scaling factor multiplied by 10, e.g. 2 is a scaling factor of 0.2";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PersistenceScaleFactor";
+ }
+ leaf m-max {
+ type uint8 {
+ range "1..32";
+ }
+ config false;
+ description
+ "Maximum number of RACH preamble cycles. Defines how many times the PRACH preamble ramping procedure can be repeated before UE MAC reports a failure on RACH transmission to higher layers. Maximum number of RACH preamble cycles is part of \"RACH transmission parameters\" which is part of \"PRACH system information list\" which is part of SIB5. {{bibref|3GPP-TS.25.331|Section 10.3.6.67}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.MMax";
+ }
+ leaf nb01-min {
+ type uint8 {
+ range "0..50";
+ }
+ config false;
+ description
+ "RACH random back-off lower bound. {{param}} is the lower bound of the waiting time in 10 millisecond increments (i.e. 1 corresponds to 10 ms and 50 corresponds to 500 ms). {{param}} is part of \"RACH transmission parameters\" which is part of \"PRACH system information list\" which is part of SIB5. {{bibref|3GPP-TS.25.331|Section 10.3.6.67}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Min";
+ }
+ leaf nb01-max {
+ type uint8 {
+ range "0..50";
+ }
+ config false;
+ description
+ "RACH random back-off upper bound. {{param}} is the Upper bound of the waiting time in 10 millisecond increments (i.e. 1 corresponds to 10 ms and 50 corresponds to 500 ms). {{param}} is part of \"RACH transmission parameters\" which is part of \"PRACH system information list\" which is part of SIB5. {{bibref|3GPP-TS.25.331|Section 10.3.6.67}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Max";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+ }
+
+ grouping umts-ran-cell-restriction-g {
+ description
+ "This object contains parameters related to cell access restriction.";
+ leaf cell-barred {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the FAP is barred from service or not. {{bibref|3GPP-TS.25.331|Section 10.3.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellBarred";
+ }
+ leaf intra-freq-cell-reselection-indicator {
+ type boolean;
+ config false;
+ description
+ "When {{param|CellBarred}} is {{true}}, this indicates whether the intra-frequency cell re-selection is allowed or not. {{param}} has no meaning if {{param|CellBarred}} is {{false}} and MUST be ignored in such cases. {{true}} means that intra-frequency cell re-selection is allowed. {{false}} means that intra-frequency cell re-selection is not allowed. {{bibref|3GPP-TS.25.331|Section 10.3.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.IntraFreqCellReselectionIndicator";
+ }
+ leaf t-barred {
+ type uint16 {
+ range "10 | 20 | 40 | 80 | 160 | 320 | 640 | 1280";
+ }
+ units "seconds";
+ config false;
+ description
+ "The time period in {{units}} during which the UE is barred from accessing the FAP. {{bibref|3GPP-TS.25.331|Section 10.3.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.TBarred";
+ }
+ leaf-list access-class-barred-list-cs {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "{{list}} Each entry is an Access Class that is barred from CS service. The order of the list has no significance. {{bibref|3GPP-TS.25.331|Section 10.3.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListCS";
+ }
+ leaf-list access-class-barred-list-ps {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "{{list}} Each entry is an Access Class that is barred from PS service. The order of the list has no significance. {{bibref|3GPP-TS.25.331|Section 10.3.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListPS";
+ }
+ leaf cell-reserved-for-operator-use {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the FAP is reserved for operator use or not. {{bibref|3GPP-TS.25.331|Section 10.3.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellReservedForOperatorUse";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+ }
+
+ grouping umts-ran-intra-freq-meas-g {
+ description
+ "This object contains parameters relating to the intra-freq HO control parameters.";
+ leaf measurement-quantity {
+ type enumeration {
+ enum "cpich ec/no" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity - CPICH Ec/No";
+ }
+ enum "cpich rscp" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity - CPICH RSCP";
+ }
+ enum "pathloss" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity - Pathloss";
+ }
+ }
+ config false;
+ description
+ "Defines the measurement quantity for intra-freq HO measurement when the UE is in Cell-DCH state. Enumeration of: {{enum}} {{bibref|3GPP-TS.25.331|Section 10.3.7.38}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity";
+ }
+ leaf filter-coefficient {
+ type uint8 {
+ range "0..9 | 11 | 13 | 15 | 17 | 19";
+ }
+ config false;
+ description
+ "Defines the equivalent time constant of the low pass filter applied to the CPICH quality measurements, or {{enum|CPICH Ec/No|MeasurementQuantity}}. {{bibref|3GPP-TS.25.331|Section 8.6.7.2 and Section 10.3.7.9}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.FilterCoefficient";
+ }
+ leaf-list intra-frequency-event-identity {
+ type string;
+ config false;
+ max-elements "32";
+ description
+ "{{list}} Each entry is an Event ID from the list of: 1a, 1b, 1c, 1d, 1e, 1f, 1g, 1h, 1i Defines the identity of the event used to trigger UE reporting (in case of event-triggered reporting). {{bibref|3GPP-TS.25.331|Section 10.3.7.34}} Since the FAP can determine this on its own, it might not be necessary to configure it.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.IntraFrequencyEventIdentity";
+ }
+ leaf-list triggering-condition2-event1a {
+ type enumeration {
+ enum "active" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a - Active";
+ }
+ enum "monitored" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a - Monitored";
+ }
+ enum "active and monitored" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a - Active and Monitored";
+ }
+ enum "detected" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a - Detected";
+ }
+ enum "detected and monitored" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a - Detected and Monitored";
+ }
+ }
+ config false;
+ description
+ "{{list}} Indicates which cells can trigger Event 1a. {{enum}} {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a";
+ }
+ leaf-list triggering-condition1-event1b {
+ type enumeration {
+ enum "active" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b - Active";
+ }
+ enum "monitored" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b - Monitored";
+ }
+ enum "active and monitored" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b - Active and Monitored";
+ }
+ }
+ config false;
+ description
+ "{{list}} Indicates which cells can trigger Event 1b. {{enum}} {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b";
+ }
+ leaf-list triggering-condition2-event1e {
+ type enumeration {
+ enum "active" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e - Active";
+ }
+ enum "monitored" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e - Monitored";
+ }
+ enum "active and monitored" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e - Active and Monitored";
+ }
+ enum "detected" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e - Detected";
+ }
+ enum "detected and monitored" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e - Detected and Monitored";
+ }
+ }
+ config false;
+ description
+ "{{list}} Indicates which cells can trigger Event 1e. {{enum}} {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e";
+ }
+ leaf-list triggering-condition1-event1f {
+ type enumeration {
+ enum "active" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f - Active";
+ }
+ enum "monitored" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f - Monitored";
+ }
+ enum "active and monitored" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f - Active and Monitored";
+ }
+ }
+ config false;
+ description
+ "{{list}} Indicates which cells can trigger Event 1f. {{enum}} {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f";
+ }
+ leaf reporting-range-event1a {
+ type uint8 {
+ range "0..29";
+ }
+ units "dB";
+ config false;
+ description
+ "Defines a constant in the inequality criterion that needs to be satisfied for an Event 1a to occur. Actual values of the range are 0.0 to 14.5 {{units}} in steps of 0.5 {{units}}. The value of {{param}} divided by 2 yields the actual value of the range. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1a";
+ }
+ leaf reporting-range-event1b {
+ type uint8 {
+ range "0..29";
+ }
+ units "dB";
+ config false;
+ description
+ "Defines a constant in the inequality criterion that needs to be satisfied for an Event 1b to occur. Actual values of the range are 0.0 to 14.5 {{units}} in steps of 0.5 {{units}}. The value of {{param}} divided by 2 yields the actual value of the range. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1b";
+ }
+ leaf weighting-factor-event1a {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1a";
+ }
+ leaf weighting-factor-event1b {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1b";
+ }
+ leaf report-deactivation-threshold-event1a {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Defines the maximum number of cells allowed in the \"active cell set\" for Event 1a to occur. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportDeactivationThresholdEvent1a";
+ }
+ leaf reporting-amount-event1a {
+ type int64;
+ config false;
+ description
+ "Defines the maximum number of MEASUREMENT REPORT messages sent by the UE in case of periodic reporting triggered by an Event 1a The value -1 is used to represent an unbounded maximum. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1a";
+ }
+ leaf reporting-amount-event1c {
+ type int64;
+ config false;
+ description
+ "Defines the maximum number of MEASUREMENT REPORT messages sent by the UE in case of periodic reporting triggered by an Event 1c The value -1 is used to represent an unbounded maximum. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1c";
+ }
+ leaf reporting-interval-event1a {
+ type uint16 {
+ range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the transmission period in {{units}} of MEASUREMENT REPORT messages sent by the UE in case of periodic reporting triggered by an Event 1a. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1a";
+ }
+ leaf reporting-interval-event1c {
+ type uint16 {
+ range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the transmission period in {{units}} of MEASUREMENT REPORT messages sent by the UE in case of periodic reporting triggered by an Event 1c. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1c";
+ }
+ leaf hysteresis-event1a {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 14.1.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1a";
+ }
+ leaf hysteresis-event1b {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 14.1.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1b";
+ }
+ leaf hysteresis-event1c {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 14.1.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1c";
+ }
+ leaf hysteresis-event1d {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 14.1.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1d";
+ }
+ leaf hysteresis-event1e {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 14.1.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1e";
+ }
+ leaf hysteresis-event1f {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 14.1.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1f";
+ }
+ leaf time-to-trigger-event1a {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for intra-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1a";
+ }
+ leaf time-to-trigger-event1b {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for intra-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1b";
+ }
+ leaf time-to-trigger-event1c {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for intra-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1c";
+ }
+ leaf time-to-trigger-event1d {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for intra-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1d";
+ }
+ leaf time-to-trigger-event1e {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for intra-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1e";
+ }
+ leaf time-to-trigger-event1f {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for intra-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1f";
+ }
+ leaf threshold-used-frequency-event1e {
+ type int64;
+ config false;
+ description
+ "Defines the reporting threshold for intra-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.39}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB {{enum|Pathloss|MeasurementQuantity}} has a range of 30 dB to 165 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1e";
+ }
+ leaf threshold-used-frequency-event1f {
+ type int64;
+ config false;
+ description
+ "Defines the reporting threshold for intra-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.39}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB {{enum|Pathloss|MeasurementQuantity}} has a range of 30 dB to 165 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1f";
+ }
+ leaf replacement-activation-threshold-event1c {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Defines the minimum number of cells allowed in the \"active cell set\" for Event 1c to occur. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReplacementActivationThresholdEvent1c";
+ }
+ leaf instance-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.InstanceNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+ }
+
+ grouping umts-ran-intra-freq-meas-instance-g {
+ description
+ "Table containing parameters relating to a particular instance of intra-freq events.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Alias";
+ }
+ leaf intra-frequency-event-identity {
+ type enumeration {
+ enum "1a" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 1a";
+ }
+ enum "1b" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 1b";
+ }
+ enum "1c" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 1c";
+ }
+ enum "1d" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 1d";
+ }
+ enum "1e" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 1e";
+ }
+ enum "1f" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 1f";
+ }
+ }
+ description
+ "Each entry is an Event ID from the list of: {{enum}} Defines the identity of the event used to trigger UE reporting (in case of event-triggered reporting). {{bibref|3GPP-TS.25.331|Section 10.3.7.34}} This attribute is readable, as it is highly dependent on how the FAP makes use of the event.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+ }
+ leaf event-description {
+ type string {
+ length "0..256";
+ }
+ description
+ "A free-form description of the way the event instance is meant to be used. E.g. \"hand-out to macro cells\", \"addition of enterprise HNB cell to Active Set\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.EventDescription";
+ }
+ leaf measurement-quantity {
+ type enumeration {
+ enum "cpich ec/no" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity - CPICH Ec/No";
+ }
+ enum "cpich rscp" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity - CPICH RSCP";
+ }
+ enum "pathloss" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity - Pathloss";
+ }
+ }
+ config false;
+ description
+ "Defines the measurement quantity for intra-freq HO measurement when the UE is in Cell-DCH state. Enumeration of: {{enum}} {{bibref|3GPP-TS.25.331|Section 10.3.7.38}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity";
+ }
+ leaf filter-coefficient {
+ type uint8 {
+ range "0..9 | 11 | 13 | 15 | 17 | 19";
+ }
+ config false;
+ description
+ "Defines the equivalent time constant of the low pass filter applied to the CPICH quality measurements, or {{enum|CPICH Ec/No|MeasurementQuantity}}. {{bibref|3GPP-TS.25.331|Section 8.6.7.2 and Section 10.3.7.9}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.FilterCoefficient";
+ }
+ leaf-list triggering-condition {
+ type enumeration {
+ enum "active" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition - Active";
+ }
+ enum "monitored" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition - Monitored";
+ }
+ enum "active and monitored" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition - Active and Monitored";
+ }
+ enum "detected" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition - Detected";
+ }
+ enum "detected and monitored" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition - Detected and Monitored";
+ }
+ }
+ config false;
+ description
+ "{{list}} Indicates which cells can trigger the event instance. {{enum}} {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition";
+ }
+ leaf reporting-range {
+ type uint8 {
+ range "0..29";
+ }
+ units "dB";
+ config false;
+ description
+ "Applicable to events 1a, 1b, otherwise not needed. Defines a constant in the inequality criterion that needs to be satisfied for an Event 1b to occur. Actual values of the range are 0.0 to 14.5 {{units}} in steps of 0.5 {{units}}. The value of {{param}} divided by 2 yields the actual value of the range. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingRange";
+ }
+ leaf weighting-factor {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Applicable to events 1a, 1b, otherwise not needed. Defines the weighting factor for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.WeightingFactor";
+ }
+ leaf report-deactivation-threshold {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Applicable to events 1a, otherwise not needed. Defines the maximum number of cells allowed in the \"active cell set\" for Event 1a to occur. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportDeactivationThreshold";
+ }
+ leaf reporting-amount {
+ type int64;
+ config false;
+ description
+ "Applicable to events 1a, 1c, otherwise not needed. Defines the maximum number of MEASUREMENT REPORT messages sent by the UE in case of periodic reporting triggered by an Event 1a The value -1 is used to represent an unbounded maximum. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingAmount";
+ }
+ leaf reporting-interval {
+ type uint16 {
+ range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Applicable to events 1a, 1c, otherwise not needed. Defines the transmission period in {{units}} of MEASUREMENT REPORT messages sent by the UE in case of periodic reporting triggered by an Event 1a. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingInterval";
+ }
+ leaf hysteresis {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for intra-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 14.1.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Hysteresis";
+ }
+ leaf time-to-trigger {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for intra-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TimeToTrigger";
+ }
+ leaf threshold-used-frequency {
+ type int64;
+ config false;
+ description
+ "Applicable to events 1e, 1f, otherwise not needed. Defines the reporting threshold for intra-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.39}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB {{enum|Pathloss|MeasurementQuantity}} has a range of 30 dB to 165 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+ }
+ leaf replacement-activation-threshold {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Applicable only to event 1c Defines the minimum number of cells allowed in the \"active cell set\" for Event 1c to occur. {{bibref|3GPP-TS.25.331|Section 14.1.2 and Section 10.3.7.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReplacementActivationThreshold";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+ }
+
+ grouping umts-ran-inter-freq-meas-g {
+ description
+ "This object contains parameters relating to the inter-freq HO related control parameters.";
+ leaf measurement-quantity {
+ type enumeration {
+ enum "cpich ec/no" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.MeasurementQuantity - CPICH Ec/No";
+ }
+ enum "cpich rscp" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.MeasurementQuantity - CPICH RSCP";
+ }
+ }
+ config false;
+ description
+ "Defines the measurement quantity for inter-freq HO measurement when the UE is in Cell-DCH state. Enumeration of: {{enum}} {{bibref|3GPP-TS.25.331|Section 10.3.7.18}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.MeasurementQuantity";
+ }
+ leaf filter-coefficient {
+ type uint8 {
+ range "0..9 | 11 | 13 | 15 | 17 | 19";
+ }
+ config false;
+ description
+ "Defines the filter coefficient for inter-freq HO measurement when the UE is in Cell-DCH state. {{bibref|3GPP-TS.25.331|Section 10.3.7.9 and Section 10.3.7.18}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.FilterCoefficient";
+ }
+ leaf-list inter-frequency-event-identity {
+ type string;
+ config false;
+ max-elements "32";
+ description
+ "{{list}} Each entry is an Event ID from the list of: 2a, 2b, 2c, 2d, 2e,2f Defines the identity of the event used to trigger inter-frequency UE reporting (in case of event-triggered reporting). {{bibref|3GPP-TS.25.331|Section 10.3.7.14}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InterFrequencyEventIdentity";
+ }
+ leaf weighting-factor-event2a {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2a";
+ }
+ leaf weighting-factor-event2b {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2b";
+ }
+ leaf weighting-factor-event2d {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2d";
+ }
+ leaf weighting-factor-event2f {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2f";
+ }
+ leaf hysteresis-event2a {
+ type uint8 {
+ range "0..29";
+ }
+ config false;
+ description
+ "Defines the hysteresis for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 14.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2a";
+ }
+ leaf hysteresis-event2b {
+ type uint8 {
+ range "0..29";
+ }
+ config false;
+ description
+ "Defines the hysteresis for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 14.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2b";
+ }
+ leaf hysteresis-event2d {
+ type uint8 {
+ range "0..29";
+ }
+ config false;
+ description
+ "Defines the hysteresis for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 14.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2d";
+ }
+ leaf hysteresis-event2f {
+ type uint8 {
+ range "0..29";
+ }
+ config false;
+ description
+ "Defines the hysteresis for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 14.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2f";
+ }
+ leaf time-to-trigger-event2a {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for inter-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.19 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2a";
+ }
+ leaf time-to-trigger-event2b {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for inter-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.19 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2b";
+ }
+ leaf time-to-trigger-event2d {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for inter-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.19 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2d";
+ }
+ leaf time-to-trigger-event2f {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for inter-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.19 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2f";
+ }
+ leaf threshold-used-frequency-event2b {
+ type int64;
+ config false;
+ description
+ "Defines the reporting threshold for inter-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2b";
+ }
+ leaf threshold-used-frequency-event2d {
+ type int64;
+ config false;
+ description
+ "Defines the reporting threshold for inter-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2d";
+ }
+ leaf threshold-used-frequency-event2f {
+ type int64;
+ config false;
+ description
+ "Defines the reporting threshold for inter-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2f";
+ }
+ leaf instance-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InstanceNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+ }
+
+ grouping umts-ran-inter-freq-meas-instance-g {
+ description
+ "Table containing parameters relating to a particular instance of inter-freq events.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Alias";
+ }
+ leaf intra-frequency-event-identity {
+ type enumeration {
+ enum "2a" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 2a";
+ }
+ enum "2b" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 2b";
+ }
+ enum "2c" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 2c";
+ }
+ enum "2d" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 2d";
+ }
+ enum "2e" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 2e";
+ }
+ enum "2f" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity - 2f";
+ }
+ }
+ description
+ "Each entry is an Event ID from the list of: {{enum}} Defines the identity of the event used to trigger UE reporting (in case of event-triggered reporting). {{bibref|3GPP-TS.25.331|Section 10.3.7.14}} This attribute is readable, as it is highly dependent on how the FAP makes use of the event.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+ }
+ leaf event-description {
+ type string {
+ length "0..256";
+ }
+ description
+ "A free-form description of the way the event instance is meant to be used. E.g. \"detecting cell edge to prepare for hand-out\", \"cancel hand-out preparation\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.EventDescription";
+ }
+ leaf measurement-quantity {
+ type enumeration {
+ enum "cpich ec/no" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.MeasurementQuantity - CPICH Ec/No";
+ }
+ enum "cpich rscp" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.MeasurementQuantity - CPICH RSCP";
+ }
+ }
+ config false;
+ description
+ "Defines the measurement quantity for inter-freq HO measurement when the UE is in Cell-DCH state. Enumeration of: {{enum}} {{bibref|3GPP-TS.25.331|Section 10.3.7.18}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.MeasurementQuantity";
+ }
+ leaf filter-coefficient {
+ type uint8 {
+ range "0..9 | 11 | 13 | 15 | 17 | 19";
+ }
+ config false;
+ description
+ "Defines the filter coefficient for inter-freq HO measurement when the UE is in Cell-DCH state. {{bibref|3GPP-TS.25.331|Section 10.3.7.9 and Section 10.3.7.18}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.FilterCoefficient";
+ }
+ leaf weighting-factor {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.WeightingFactor";
+ }
+ leaf hysteresis {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for inter-freq HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 14.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Hysteresis";
+ }
+ leaf time-to-trigger {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for inter-freq HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.TimeToTrigger";
+ }
+ leaf threshold-used-frequency {
+ type int64;
+ config false;
+ description
+ "Applicable to events 2b, 2d, 2f, otherwise not needed. Defines the reporting threshold for inter-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+ }
+ leaf threshold-non-used-frequency {
+ type int64;
+ config false;
+ description
+ "Applicable to events 2a, 2b, 2c, 2e otherwise not needed. Defines the reporting threshold for inter-freq HO measurement when the UE is in Cell-DCH state. This is the \"Threshold non used frequency\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.19}}. Each valid value of {{param|MeasurementQuantity}} has a different valid range. {{enum|CPICH RSCP|MeasurementQuantity}} has a range of -120 dBm to -25 dBm {{enum|CPICH Ec/No|MeasurementQuantity}} has a range of -24 dB to 0 dB";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdNonUsedFrequency";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+ }
+
+ grouping umts-ran-inter-rat-meas-g {
+ description
+ "This object contains parameters relating to the inter-RAT HO related control parameters. This is specifically for GERAN system.";
+ leaf gsm-filter-coefficient {
+ type uint8 {
+ range "0..9 | 11 | 13 | 15 | 17 | 19";
+ }
+ config false;
+ description
+ "Defines the filter coefficient for inter-RAT HO measurement when the UE is in Cell-DCH state. {{bibref|3GPP-TS.25.331|Section 10.3.7.9 and Section 10.3.7.29}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.GSMFilterCoefficient";
+ }
+ leaf bsic-verification-required {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the BSIC verification is required or not for inter-RAT HO measurement when the UE is in Cell-DCH state. {{bibref|3GPP-TS.25.331|Section 10.3.7.29}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.BSICVerificationRequired";
+ }
+ leaf weighting-factor {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for inter-RAT HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.WeightingFactor";
+ }
+ leaf hysteresis {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for inter-RAT HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Hysteresis";
+ }
+ leaf time-to-trigger {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for inter-RAT HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.TimeToTrigger";
+ }
+ leaf threshold-own-system {
+ type int64;
+ config false;
+ description
+ "Defines the reporting threshold for inter-RAT HO measurement when the UE is in Cell-DCH state. This is the \"Threshold own system\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOwnSystem";
+ }
+ leaf threshold-other-system {
+ type int64;
+ config false;
+ description
+ "Defines the reporting threshold for inter-RAT HO measurement when the UE is in Cell-DCH state. This is the \"Threshold other system\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOtherSystem";
+ }
+ leaf instance-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.InstanceNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+ }
+
+ grouping umts-ran-inter-rat-meas-instance-g {
+ description
+ "Table containing parameters relating to a particular instance of inter-freq events.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Alias";
+ }
+ leaf inter-rat-event-identity {
+ type enumeration {
+ enum "3a" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity - 3a";
+ }
+ enum "3b" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity - 3b";
+ }
+ enum "3c" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity - 3c";
+ }
+ enum "3d" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity - 3d";
+ }
+ }
+ description
+ "Each entry is an Event ID from the list of: {{enum}} Defines the identity of the event used to trigger UE reporting (in case of event-triggered reporting). {{bibref|3GPP-TS.25.331|Section 10.3.7.14}} This attribute is readable, as it is highly dependent on how the FAP makes use of the event.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity";
+ }
+ leaf event-description {
+ type string {
+ length "0..256";
+ }
+ description
+ "A free-form description of the way the event instance is meant to be used. E.g. \"hand-out to GSM macrocell\", \"cancel hand-out preparation due to decreasing macrocell quality\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.EventDescription";
+ }
+ leaf filter-coefficient {
+ type uint8 {
+ range "0..9 | 11 | 13 | 15 | 17 | 19";
+ }
+ config false;
+ description
+ "Defines the filter coefficient for inter-freq HO measurement when the UE is in Cell-DCH state. {{bibref|3GPP-TS.25.331|Section 10.3.7.9 and Section 10.3.7.18}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.FilterCoefficient";
+ }
+ leaf bsic-verification-required {
+ type boolean;
+ config false;
+ description
+ "Applicable only to GSM events. Indicates whether the BSIC verification is required or not for inter-RAT HO measurement when the UE is in Cell-DCH state. {{bibref|3GPP-TS.25.331|Section 10.3.7.29}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.BSICVerificationRequired";
+ }
+ leaf weighting-factor {
+ type uint8 {
+ range "0..20";
+ }
+ config false;
+ description
+ "Defines the weighting factor for inter-RAT HO measurement when the UE is in Cell-DCH state. Actual values of the weighting factor are 0.0 to 2.0 in steps of 0.1. The value of {{param}} divided by 10 yields the actual value of the weighting factor. {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.WeightingFactor";
+ }
+ leaf hysteresis {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Defines the hysteresis for inter-RAT HO measurement when the UE is in Cell-DCH state. Actual values of the range are 0.0 to 7.5 in steps of 0.5. The value of {{param}} divided by 2 yields the actual value of the hysteresis. {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Hysteresis";
+ }
+ leaf time-to-trigger {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the time-to-trigger in {{units}} for inter-RAT HO measurement when the UE is in Cell-DCH state. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.39 and Section 10.3.7.64}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.TimeToTrigger";
+ }
+ leaf threshold-own-system {
+ type int64;
+ config false;
+ description
+ "Applicable only to event 3a, otherwise not needed. Defines the reporting threshold for inter-RAT HO measurement when the UE is in Cell-DCH state. This is the \"Threshold own system\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOwnSystem";
+ }
+ leaf threshold-other-system {
+ type int64;
+ config false;
+ description
+ "Applicable to events 3a, 3b, 3c, otherwise not needed. Defines the reporting threshold for inter-RAT HO measurement when the UE is in Cell-DCH state. This is the \"Threshold other system\" as defined in {{bibref|3GPP-TS.25.331|Section 10.3.7.30}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOtherSystem";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+ }
+
+ grouping umts-ran-ue-internal-meas-g {
+ description
+ "This object contains parameters relating to the UE internal measurement control parameters.";
+ leaf filter-coefficient {
+ type uint8 {
+ range "0..9 | 11 | 13 | 15 | 17 | 19";
+ }
+ config false;
+ description
+ "Defines the filter coefficient for UE internal measurement. {{bibref|3GPP-TS.25.331|Section 10.3.7.9 and Section 10.3.7.79}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.FilterCoefficient";
+ }
+ leaf ue-tx-pwr-threshold-event6a {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Defines the threshold for UE transmit power above which Event 6a is reported. {{bibref|3GPP-TS.25.331|Section 10.3.7.80}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6a";
+ }
+ leaf time-to-trigger-event6a {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the period in {{units}} between detection of Event 6a and sending of Measurement Report. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.80}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6a";
+ }
+ leaf ue-tx-pwr-threshold-event6b {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Defines the threshold for UE transmit power above which Event 6b is reported. {{bibref|3GPP-TS.25.331|Section 10.3.7.80}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6b";
+ }
+ leaf time-to-trigger-event6b {
+ type uint16 {
+ range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the period in {{units}} between detection of Event 6b and sending of Measurement Report. Only the specified values are considered valid, any value other than those and the CPE MUST reject the request. {{bibref|3GPP-TS.25.331|Section 10.3.7.80}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6b";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+ }
+
+ grouping umts-ran-rf-g {
+ description
+ "This object contains parameters relating to the RF configuration.";
+ leaf-list uarfcndl {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a DL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433|Section 9.2.1.65}} Self-configuration for UARFCN is controlled by {{param|.Capabilities.UMTS.SelfConfig.UARFCNConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.UARFCNSelfConfigEnable}} from an enabled perspective. If the FAP's self-configuration capability for UARFCN is available and enabled, this parameter MAY contain more than one item and the FAP is expected to select one from the list for {{param|UARFCNDLInUse}}. If the self-configuration capability is not available or not enabled, then this parameter SHOULD contain only a single item. The UARFCN values supplied to the list are derived based on the formula defined in {{bibref|3GPP-TS.25.104|Section 5.4.3}} The order of the UARFCN entries has no significance. The carrier spacing in FDD mode is fixed as defined in {{bibref|3GPP-TS.25.104}}. Therefore, the FAP can unambiguously derive the UL UARFCN value based on the selected DL UARFCN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDL";
+ }
+ leaf uarfcndl-in-use {
+ type uint64;
+ description
+ "The DL UARFCN being used by the FAP. Self-configuration for UARFCN is controlled by {{param|.Capabilities.UMTS.SelfConfig.UARFCNConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.UARFCNSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in {{param|UARFCNDL}}. If the self-configuration capability is not available or not enabled, then this parameter contains the first value in {{param|UARFCNDL}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLInUse";
+ }
+ leaf uarfcnul-in-use {
+ type uint64;
+ description
+ "The UL UARFCN being used by the FAP. The UL UARFCN that corresponds to {{param|UARFCNDLInUse}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNULInUse";
+ }
+ leaf-list uarfcndl-to-protect {
+ type string;
+ config false;
+ max-elements "64";
+ description
+ "{{list}} Each item is a DL UARFCNs to be protected from adjacent channel interference. \"Adjacent channel\" in this context means offset from the FAP's UARFCN by 5MHz. {{bibref|3GPP-TS.25.104|Section 6.4.6}} If any of the items in the list are adjacent to the FAP's own DL channel, the FAP MUST take the Primary CPICH code power measured on these channels into account as part of its maximum transmit power self-configuration. The UARFCNs in the list can belong to any operator, allowing for protection of the FAP operator's own macro layer as well as that of other operators (only the latter is mandated by the {{bibref|3GPP-TS.25.104}} requirements). The list SHOULD take into account the ability of the FAP to self-configure its own DL UARFCN and so SHOULD include any channels (requiring protection) which can potentially be adjacent to the UARFCN selected by the FAP. For example, if only adjacent operator protection is required and the FAP has the ability to self-configure to any channel owned by its operator, this list would be populated with the UARFCNs immediately above and below the range of channels owned by the FAP operator. Adjacent channel protection can cause the FAP transmit power to be reduced down to as low as 8dBm. If {{empty}} then it indicates that there are no channels adjacent to the FAP that require protection, or that self-configuration of the FAP transmit power is not enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLToProtect";
+ }
+ leaf-list primary-scrambling-code {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a Primary DL Scrambling Code used by the FDD mode cell with a numeric range between 0 and 511 inclusive. {{bibref|3GPP-TS.25.433|Section 9.2.2.34}} Self-configuration for PSC is controlled by {{param|.Capabilities.UMTS.SelfConfig.PrimaryScramblingCodeConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.PrimaryScramblingCodeSelfConfigEnable}} from an enabled perspective. If the FAP's self-configuration capability for {{param}} is available and enabled, this parameter MAY contain more than one item and the FAP is expected to select one from the list for {{param|PrimaryScramblingCodeInUse}}. If the self-configuration capability is not available or not enabled, then this parameter SHOULD contain only a single item. The multiplicity of the PSC values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. The following are examples of valid PSC string: :\"20\" ::(explicitly specifies a single PSC value) :\"20,30,40\" ::(specifies 3 possible PSC values to select from) \"20..40\" ::(specifies 21 possible values between 20 and 40, inclusive) \"20..40,50\" ::(specifies 22 possible values between 20 and 40 inclusive and a single value 50) The order of the items has no significance.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode";
+ }
+ leaf primary-scrambling-code-in-use {
+ type uint64;
+ description
+ "The PSC being used by the FAP. Self-configuration for PSC is controlled by {{param|.Capabilities.UMTS.SelfConfig.PrimaryScramblingCodeConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.PrimaryScramblingCodeSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in {{param|PrimaryScramblingCode}}. If the self-configuration capability is not available or not enabled, then this parameter contains the first value in {{param|PrimaryScramblingCode}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCodeInUse";
+ }
+ leaf maxfap-tx-power-expanded {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Defines the maximum transmission power allowed on the FAP, maximum value for the linear sum of the power of all downlink physical channels, that is allowed to be used in a cell. {{param}} is expressed as a range of allowed maximum power levels with \"..\" (two periods) between the upper and lower values, i.e. \"<Pmax_low>..<Pmax_high>\". {{param}} identifies the limits between which the FAP can self-configure its maximum transmit power. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.UMTS.SelfConfig.MaxFAPTxPowerExpandedConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.MaxFAPTxPowerExpandedSelfConfigEnable}} from an enabled perspective. <Pmax_low> and <Pmax_high> are measured in dBm and have a range of -30.0 to 20.0 incremented by 0.1 dB. {{bibref|3GPP-TS.32.642|Section 6.3.9}} {{bibref|3GPP-TS.25.104|Section 6.2.1}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded";
+ }
+ leaf maxfap-tx-power-in-use-expanded {
+ type int64;
+ units "dBm";
+ description
+ "The maximum transmission power measured in {{units}} currently used by the FAP. Actual values of the maximum transmission power are -30.0 {{units}} to 20.0 {{units}} in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the maximum transmission power. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.UMTS.SelfConfig.MaxFAPTxPowerExpandedConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.MaxFAPTxPowerExpandedSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the range provided in {{param|MaxFAPTxPowerExpanded}}. If the self-configuration capability is not available or not enabled, then this parameter contains a value selected by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerInUseExpanded";
+ }
+ leaf max-ul-tx-power {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Defines the maximum transmission power level a UE can use on PRACH. {{param}} is expressed as a range of allowed maximum power levels with \"..\" (two periods) between the upper and lower values, i.e. \"<Pmax_low>..<Pmax_high>\". {{param}} identifies the limits between which the FAP can self-configure its maximum transmit power. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.UMTS.SelfConfig.MaxULTxPowerConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.MaxULTxPowerSelfConfigEnable}} from an enabled perspective. <Pmax_low> and <Pmax_high> are measured in dBm and have a range of -50 to 33 incremented by 1. {{bibref|3GPP-TS.25.331|Section 10.3.6.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPower";
+ }
+ leaf max-ul-tx-power-in-use {
+ type int64;
+ units "dBm";
+ description
+ "The maximum transmission power level a UE can use on PRACH. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.UMTS.SelfConfig.MaxULTxPowerConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.MaxULTxPowerSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the range provided in {{param|MaxULTxPower}}. If the self-configuration capability is not available or not enabled, then this parameter contains a value selected by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPowerInUse";
+ }
+ leaf pcpich-power {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "The value of the transmission power of the Primary Common PIlot CHannel (P-CPICH). The P-CPICH physical channel carries the common pilots of the cell. Parameter in SIB5. {{param}} is expressed as a range of allowed transmission power levels with \"..\" (two periods) between the upper and lower values, i.e. \"<Pmax_low>..<Pmax_high>\". {{param}} identifies the limits between which the FAP can self-configure its transmission power. Self-configuration for transmission power is controlled by {{param|.Capabilities.UMTS.SelfConfig.PCPICHPowerConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.PCPICHPowerSelfConfigEnable}} from an enabled perspective. <Pmax_low> and <Pmax_high> are measured in dBm and have a range of -10.0 to 20.0 incremented by 0.1 dB. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.104|Section 6.2.1}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPower";
+ }
+ leaf pcpich-power-in-use {
+ type int64;
+ units "dBm";
+ description
+ "The P-CPICH power measured in {{units}} currently used by the FAP. Actual values of the maximum transmission power are -10.0 {{units}} to 20.0 {{units}} in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the maximum transmission power. Self-configuration for transmission power is controlled by {{param|.Capabilities.UMTS.SelfConfig.PCPICHPowerConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.PCPICHPowerSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the range provided in {{param|PCPICHPower}}. If the self-configuration capability is not available or not enabled, then this parameter contains a value selected by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPowerInUse";
+ }
+ leaf power-offset-pilot-dpdch {
+ type uint8 {
+ range "0..24";
+ }
+ units "dB";
+ config false;
+ description
+ "Defines the power offset between pilot channel and DPDCH. Actual values of the offset are 0.0 {{units}} to 6.0 {{units}} in steps of 0.25 {{units}}. The value of {{param}} divided by 4 yields the actual value of the offset. {{bibref|3GPP-TS.25.331|Section 10.3.6.18}} {{bibref|3GPP-TS.25.214|Section 5.2.1}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PowerOffsetPilotDPDCH";
+ }
+ leaf fap-coverage-target {
+ type uint8 {
+ range "50..150";
+ }
+ units "dB";
+ config false;
+ description
+ "Defines the target value measured in {{units}} for the range of the FAP's DL coverage, in terms of RF propagation loss. This value can be used by the FAP's self-configuration algorithms to help derive transmit power levels in the presence of co-channel and adjacent channel interference. {{bibref|3GPP-TS.25.967|Section 7.2.1}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPCoverageTarget";
+ }
+ leaf fap-quality-target-ec-io {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the target value measured in dB for the downlink signal quality of the FAP in terms of CPICH Ec/Io, thereby clarifying the meaning of \"FAPCoverageTarget\". Actual values of the FAPQualityTargetEcIo are -20 dB to 0 dB in steps of 0.1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPQualityTargetEcIo";
+ }
+ leaf psch-power {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the transmission power offset measured in {{units}} of the Primary SCH relative to the Primary CPICH power. Actual values of the transmission power offset are -35.0 {{units}} to 15.0 {{units}} in steps of 0.1 {{units}}. The value of {{param}} divided by 10 yields the actual value of the transmission power offset. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.433|Section 9.1.24 and Section 9.2.1.21}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PSCHPower";
+ }
+ leaf ssch-power {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the transmission power offset measured in {{units}} of the Secondary SCH relative to the Primary CPICH power. Actual values of the transmission power offset are -35.0 {{units}} to 15.0 {{units}} in steps of 0.1 {{units}}. The value of {{param}} divided by 10 yields the actual value of the transmission power offset. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.433|Section 9.1.24 and Section 9.2.1.21}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.SSCHPower";
+ }
+ leaf pich-power {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the maximum transmission power offset measured in {{units}} of the PICH channel relative to the Primary CPICH transmission power. {{bibref|3GPP-TS.32.642|Section 6.3.9}} {{bibref|3GPP-TS.25.433|Section 9.2.1.49A}} {{bibref|3GPP-TS.25.331|Section 10.3.6.50}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PICHPower";
+ }
+ leaf pch-power {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the transmission power offset measured in {{units}} of the PCH relative to the Primary CPICH power. Actual values of the transmission power offset are -35.0 {{units}} to 15.0 {{units}} in steps of 0.1 {{units}}. The value of {{param}} divided by 10 yields the actual value of the transmission power offset. {{bibref|3GPP-TS.32.642|Section 6.3.9}} {{bibref|3GPP-TS.25.433|Section 9.1.3.1 and Section 9.2.1.21}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.PCHPower";
+ }
+ leaf fach-power {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the transmission power offset measured in {{units}} of the FACH relative to the Primary CPICH power. Actual values of the transmission power offset are -35.0 {{units}} to 15.0 {{units}} in steps of 0.1 {{units}}. The value of {{param}} divided by 10 yields the actual value of the transmission power offset. {{bibref|3GPP-TS.32.642|Section 6.3.9}} {{bibref|3GPP-TS.25.433|Section 9.1.6.1 and Section 9.2.1.21}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.FACHPower";
+ }
+ leaf bch-power {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the transmission power offset measured in {{units}} of the BCH relative to the Primary CPICH power. Actual values of the transmission power offset are -35.0 {{units}} to 15.0 {{units}} in steps of 0.1 {{units}}. The value of {{param}} divided by 10 yields the actual value of the transmission power offset. {{bibref|3GPP-TS.32.642|Section 9.3.11}} {{bibref|3GPP-TS.25.433|Section 9.1.24 and Section 9.2.1.21}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.BCHPower";
+ }
+ leaf aich-power {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Defines the transmission power offset measured in {{units}} of one AICH relative to the Primary CPICH power. Parameter defined in SIB5 {{bibref|3GPP-TS.25.331|Section 10.3.6.3}}. Transmission power level of AICH, AP-AICH and CD/CA-ICH channels compared to CPICH. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.433|Section 9.2.2.D}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.AICHPower";
+ }
+ leaf ctch-allocation-period {
+ type uint8 {
+ range "1..255";
+ }
+ config false;
+ description
+ "The value defines 'N' multiples of M(TTI) for CBS DRX calculations at the UE side.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.CTCHAllocationPeriod";
+ }
+ leaf cbs-frame-offset {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "Value of CBS frame offset (CTCH) on DL FACH. Parameter in SIB5";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.CBSFrameOffset";
+ }
+ leaf max-tti {
+ type uint8 {
+ range "1..255";
+ }
+ config false;
+ description
+ "Defines the number of radio frames in the TTI of the FACH used for CTCH (MTTI).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxTTI";
+ }
+ leaf noise-rise-limit-lower-value {
+ type uint16 {
+ range "0..500";
+ }
+ config false;
+ description
+ "Defines the lower value of the Noise Rise Limit range that UMTS FAP is allowed to pick from. The value is measured in dB and has a range of 0.0 to 50.0 incremented by 0.1 dB. the value MUST not exceed the value of {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue}} The Noise Rise Limit range identifies the limits between which the FAP can self-configure its uplink noise rise limit. Self-configuration for noise rise limit is controlled by {{param|.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.NoiseRiseLimitConfigEnable}} from an enabled perspective.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue";
+ }
+ leaf noise-rise-limit-upper-value {
+ type uint16 {
+ range "0..500";
+ }
+ config false;
+ description
+ "Defines the upper value of the Noise Rise Limit range that UMTS FAP is allowed to pick from. The value is measured in dB and has a range of 0.0 to 50.0 incremented by 0.1 dB. the value MUST not be below the value of {{param|.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue}} NoiseRiseLimit identifies the limits between which the FAP can self-configure its uplink noise rise limit. Self-configuration for noise rise limit is controlled by {{param|.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig}} from an availability perspective and {{param|.FAPControl.UMTS.SelfConfig.NoiseRiseLimitConfigEnable}} from an enabled perspective.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue";
+ }
+ leaf noise-rise-limit-in-use {
+ type uint16 {
+ range "0..500";
+ }
+ description
+ "Actual value of the Noise Rise Limit that the FAP uses. The value is measured in dB and has a range of 0.0 to 50.0 incremented by 0.1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitInUse";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+ }
+
+ grouping umts-ran-neighbor-list-g {
+ description
+ "This object contains parameters relating to the neighbor list.";
+ leaf max-intra-freq-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxIntraFreqCellEntries";
+ }
+ leaf max-inter-freq-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxInterFreqCellEntries";
+ }
+ leaf intra-freq-cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCellNumberOfEntries";
+ }
+ leaf inter-freq-cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCellNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+ }
+
+ grouping umts-ran-neighbor-list-intra-freq-cell-g {
+ description
+ "Table containing the intra-frequency cell list provided by the ACS. The table contents MAY be added/deleted/modified during operation, in which case these changes shall be reflected in the broadcast information as soon as possible.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Alias";
+ }
+ leaf must-include {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this instance of the neighbor shall be included or excluded in the FAP's NL configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MustInclude";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ config false;
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PLMNID";
+ }
+ leaf rncid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "RNC-ID of an intra-freq neighbor cell. It uniquely identifies an RNC within a PLMN. Normally, RNC-ID consists of 12 bits (i.e. a range of [0:4095]). However, if the value is larger than 4095, then Extended RNC-ID (range of [4096:65535]) is used in RANAP. The RNC-ID and Extended RNC-ID are combined into a single parameter here as there is no explicit need to have them separated. {{bibref|3GPP-TS.25.413|Section 9.2.1.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RNCID";
+ }
+ leaf cid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Cell Identifier (C-id) that identifies a cell within an RNS. This Cell Identifier together with the controlling RNC (RNC-ID) constitutes the UTRAN Cell ID (UC-ID) and is used to identify a cell uniquely within UTRAN. C-ID is either 12-bit or 16-bit value. {{bibref|3GPP-TS.25.401|Section 6.1.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CID";
+ }
+ leaf lac {
+ type uint16 {
+ range "1..65533 | 65535";
+ }
+ config false;
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "Routing Area Code (RAC). The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RAC";
+ }
+ leaf ura {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "UTRAN Registration Area (URA) {{bibref|3GPP-TS.23.401}}. Indicates to the UE which {{param}} it shall use in case of overlapping URAs. {{bibref|3GPP-TS.25.331|Section 10.3.2.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.URA";
+ }
+ leaf pcpich-scrambling-code {
+ type uint16 {
+ range "0..511";
+ }
+ description
+ "Primary CPICH scrambling code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHScramblingCode";
+ }
+ leaf pcpich-tx-power {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Primary CPICH Tx power in {{units}}. Actual values of the power are -10.0 {{units}} to 50.0 {{units}} in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the power. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.433|Section 2.2.33}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHTxPower";
+ }
+ leaf collocated-inter-freq-cell {
+ type uint32 {
+ range "0..268435455";
+ }
+ config false;
+ description
+ "Provides identity of collocated inter-frequency Cell. Needed for pathloss estimation, in case the femto environment masks intra-frequency neighbor. Cell Identity. {{bibref|3GPP-TS.25.331|Section 10.3.2.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CollocatedInterFreqCell";
+ }
+ leaf max-tx-power {
+ type int64;
+ units "0.1 dBm";
+ config false;
+ description
+ "Cell Max Tx Power. Parameter needed in HNB power calibration, for protection of neighbour cells. Actual values of the power are -30.0 dBm to 60.0 dBm in steps of 0.1 dB. The value of MaxTxPower divided by 10 yields the actual value of the power. C.f {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.104|Section 6.2.1}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxTxPower";
+ }
+ leaf max-dpc-htx-power {
+ type int64;
+ units "0.1 dBm";
+ config false;
+ description
+ "Maximum DL DPCH Tx Power per UE configured in the cell (for CS UEs). Parameter may be used by FAP to protect the DL budget allocated to neighbouring UEs served by neighbour cells. C.f (max 10 dB below max Tx power) {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.104|Section 6.2.1}} Actual values of the power are -40.0 dBm to 50.0 dBm in steps of 0.1 dB. The value of MaxDPCHtxPower divided by 10 yields the actual value of the power.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxDPCHtxPower";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+ }
+
+ grouping umts-ran-neighbor-list-inter-freq-cell-g {
+ description
+ "Table containing the inter-frequency cell list provided by the ACS. The table contents MAY be added/deleted/modified during operation, in which case these changes shall be reflected in the broadcast information as soon as possible.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Alias";
+ }
+ leaf must-include {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this instance of the neighbor shall be included or excluded in the FAP's NL configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.MustInclude";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ config false;
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PLMNID";
+ }
+ leaf rncid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "RNC-ID of an intra-freq neighbor cell. It uniquely identifies an RNC within a PLMN. Normally, RNC-ID consists of 12 bits (i.e. a range of [0:4095]). However, if the value is larger than 4095, then Extended RNC-ID (range of [4096:65535]) is used in RANAP. The RNC-ID and Extended RNC-ID are combined into a single parameter here as there is no explicit need to have them separated. {{bibref|3GPP-TS.25.413|Section 9.2.1.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RNCID";
+ }
+ leaf cid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Cell Identifier (C-id) that identifies a cell within an RNS. This Cell Identifier together with the controlling RNC (RNC-ID) constitutes the UTRAN Cell ID (UC-ID) and is used to identify a cell uniquely within UTRAN. C-ID is either 12-bit or 16-bit value. {{bibref|3GPP-TS.25.401|Section 6.1.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.CID";
+ }
+ leaf lac {
+ type uint16 {
+ range "1..65533 | 65535";
+ }
+ config false;
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "Routing Area Code (RAC). The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RAC";
+ }
+ leaf ura {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "UTRAN Registration Area (URA) {{bibref|3GPP-TS.23.401}}. Indicates to the UE which {{param}} it shall use in case of overlapping URAs. {{bibref|3GPP-TS.25.331|Section 10.3.2.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.URA";
+ }
+ leaf uarfcnul {
+ type uint16 {
+ range "0..16383";
+ }
+ config false;
+ description
+ "The UL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNUL";
+ }
+ leaf uarfcndl {
+ type uint16 {
+ range "0..16383";
+ }
+ description
+ "The DL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNDL";
+ }
+ leaf pcpich-scrambling-code {
+ type uint16 {
+ range "0..511";
+ }
+ description
+ "Primary CPICH scrambling code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHScramblingCode";
+ }
+ leaf pcpich-tx-power {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Primary CPICH Tx power in {{units}}. Actual values of the power are -10.0 {{units}} to 50.0 {{units}} in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the power. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.433|Section 2.2.33}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHTxPower";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+ }
+
+ grouping umts-ran-neighbor-list-inter-rat-cell-g {
+ description
+ "The inter-RAT cell lists separated by technology. {{bibref|3GPP-TS.25.331|Section 10.3.7.23}}";
+ leaf max-gsm-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+ }
+ leaf gsm-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+ }
+
+ grouping umts-ran-neighbor-list-inter-rat-cell-gsm-g {
+ description
+ "Table containing the inter-RAT cell list for GSM provided by the ACS. The table contents MAY be added/deleted/modified during operation, in which case these changes shall be reflected in the broadcast information as soon as possible.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+ }
+ leaf must-include {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this instance of the neighbor shall be included or excluded in the FAP's NL configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ config false;
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+ }
+ leaf lac {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+ }
+ leaf bsic {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "BSIC of the cell per {{bibref|3GPP-TS.23.003}}, consisting of: :Bit 7:6 - not used (\"00\") :Bit 5:3 - NCC (PLMN Color Code) :Bit 2:0 - BCC (BS color code) For example, if NCC is 7 and BCC is 2 you would have 00111010 (binary) or 0x3A (hex), and the value of this parameter would be 58.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+ }
+ leaf ci {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Cell ID of the cell per {{bibref|3GPP-TS.23.003|Section 4.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+ }
+ leaf band-indicator {
+ type enumeration {
+ enum "gsm 850" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - GSM 850";
+ }
+ enum "gsm 900" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - GSM 900";
+ }
+ enum "dcs 1800" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - DCS 1800";
+ }
+ enum "pcs 1900" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - PCS 1900";
+ }
+ }
+ config false;
+ description
+ "Indicates how to interpret the BCCH ARFCN. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+ }
+ leaf bccharfcn {
+ type uint16 {
+ range "0..1023";
+ }
+ description
+ "ARFCN of this cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+ }
+
+ grouping umts-ran-neighbor-list-in-use-g {
+ description
+ "This object contains parameters relating to the neighbor list used by the FAP based on its self-configuration capability and {{object|.CellConfig.UMTS.RAN.NeighborList.}} configuration of adding and excluding cells.";
+ leaf max-intra-freq-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxIntraFreqCellEntries";
+ }
+ leaf max-inter-freq-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxInterFreqCellEntries";
+ }
+ leaf intra-freq-cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCellNumberOfEntries";
+ }
+ leaf inter-freq-cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCellNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+ }
+
+ grouping umts-ran-neighbor-list-in-use-intra-freq-cell-g {
+ description
+ "Table containing the intra-frequency cell list.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PLMNID";
+ }
+ leaf rncid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "RNC-ID of an intra-freq neighbor cell. It uniquely identifies an RNC within a PLMN. Normally, RNC-ID consists of 12 bits (i.e. a range of [0:4095]). However, if the value is larger than 4095, then Extended RNC-ID (range of [4096:65535]) is used in RANAP. The RNC-ID and Extended RNC-ID are combined into a single parameter here as there is no explicit need to have them separated. {{bibref|3GPP-TS.25.413|Section 9.2.1.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RNCID";
+ }
+ leaf cid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "C-ID of the intra-freq neighbour cell {{bibref|3GPP-TS.25.401|Section 6.1.5}}. If {{param|RNCID}} is larger than 4095, then {{param}} will be 12 bits (i.e. a range of [0:4095]), else {{param}} is 16 bits long (i.e. range of [4096:65535]). This is needed to facilitate Femto to Macro handover. Used in {{bibref|3GPP-TS.25.413|Section 9.2.1.28}} as part of Target Cell ID.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.CID";
+ }
+ leaf lac {
+ type uint16 {
+ range "1..65533 | 65535";
+ }
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "Routing Area Code (RAC). The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RAC";
+ }
+ leaf ura {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "UTRAN Registration Area (URA) {{bibref|3GPP-TS.23.401}}. Indicates to the UE which {{param}} it shall use in case of overlapping URAs. {{bibref|3GPP-TS.25.331|Section 10.3.2.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.URA";
+ }
+ leaf pcpich-scrambling-code {
+ type uint16 {
+ range "0..511";
+ }
+ description
+ "Primary CPICH scrambling code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PCPICHScramblingCode";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+ }
+
+ grouping umts-ran-neighbor-list-in-use-inter-freq-cell-g {
+ description
+ "Table containing the inter-frequency cell list.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PLMNID";
+ }
+ leaf rncid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "RNC-ID of an intra-freq neighbor cell. It uniquely identifies an RNC within a PLMN. Normally, RNC-ID consists of 12 bits (i.e. a range of [0:4095]). However, if the value is larger than 4095, then Extended RNC-ID (range of [4096:65535]) is used in RANAP. The RNC-ID and Extended RNC-ID are combined into a single parameter here as there is no explicit need to have them separated. {{bibref|3GPP-TS.25.413|Section 9.2.1.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RNCID";
+ }
+ leaf cid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "C-ID of the intra-freq neighbour cell {{bibref|3GPP-TS.25.401|Section 6.1.5}}. If {{param|RNCID}} is larger than 4095, then {{param}} will be 12 bits (i.e. a range of [0:4095]), else {{param}} is 16 bits long (i.e. range of [4096:65535]). This is needed to facilitate Femto to Macro handover. Used in {{bibref|3GPP-TS.25.413|Section 9.2.1.28}} as part of Target Cell ID.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.CID";
+ }
+ leaf lac {
+ type uint16 {
+ range "1..65533 | 65535";
+ }
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "Routing Area Code (RAC). The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RAC";
+ }
+ leaf ura {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "UTRAN Registration Area (URA) {{bibref|3GPP-TS.23.401}}. Indicates to the UE which {{param}} it shall use in case of overlapping URAs. {{bibref|3GPP-TS.25.331|Section 10.3.2.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.URA";
+ }
+ leaf uarfcnul {
+ type uint16 {
+ range "0..16383";
+ }
+ description
+ "The UL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNUL";
+ }
+ leaf uarfcndl {
+ type uint16 {
+ range "0..16383";
+ }
+ description
+ "The DL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNDL";
+ }
+ leaf pcpich-scrambling-code {
+ type uint16 {
+ range "0..511";
+ }
+ description
+ "Primary CPICH scrambling code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PCPICHScramblingCode";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+ }
+
+ grouping umts-ran-neighbor-list-in-use-inter-rat-cell-g {
+ description
+ "The inter-RAT cell lists separated by technology. {{bibref|3GPP-TS.25.331|Section 10.3.7.23}}";
+ leaf max-gsm-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+ }
+ leaf gsm-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+ }
+
+ grouping umts-ran-neighbor-list-in-use-inter-rat-cell-gsm-g {
+ description
+ "Table containing the inter-RAT cell list for GSM.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+ }
+ leaf lac {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+ }
+ leaf bsic {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "BSIC of the cell per {{bibref|3GPP-TS.23.003}}, consisting of: :Bit 7:6 - not used (\"00\") :Bit 5:3 - NCC (PLMN Color Code) :Bit 2:0 - BCC (BS color code) For example, if NCC is 7 and BCC is 2 you would have 00111010 (binary) or 0x3A (hex), and the value of this parameter would be 58.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+ }
+ leaf ci {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Cell ID of the cell per {{bibref|3GPP-TS.23.003|Section 4.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+ }
+ leaf band-indicator {
+ type enumeration {
+ enum "gsm 850" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - GSM 850";
+ }
+ enum "gsm 900" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - GSM 900";
+ }
+ enum "dcs 1800" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - DCS 1800";
+ }
+ enum "pcs 1900" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - PCS 1900";
+ }
+ }
+ description
+ "Indicates how to interpret the BCCH ARFCN. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+ }
+ leaf bccharfcn {
+ type uint16 {
+ range "0..1023";
+ }
+ description
+ "ARFCN of this cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+ }
+
+ grouping umts-rab-g {
+ description
+ "This object contains parameters relating to Radio Access layers {{bibref|3GPP-TS.32.405}}";
+ leaf rab-succ-estab-cs {
+ type uint64;
+ description
+ "The number of successfully established RABs (with or without queueing) for CS domain.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabCS";
+ }
+ leaf rab-fail-estab-cs {
+ type uint64;
+ description
+ "The number of RAB establishment failures for CS domain.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabCS";
+ }
+ leaf rab-succ-estab-ps {
+ type uint64;
+ description
+ "The number of successfully established RABs for PS domain.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabPS";
+ }
+ leaf rab-fail-estab-ps {
+ type uint64;
+ description
+ "The number of RABs failed to establish for PS domain.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabPS";
+ }
+ leaf rabcs-setup-time-mean {
+ type uint64;
+ units "milliseconds";
+ description
+ "The mean time in {{units}} for a FAP to establish a RAB CS connection. This measurement is obtained by accumulating the time intervals for each successful RAB establishment between the receipt by the FAP of a RANAP \"RAB ASSIGNMENT REQUEST\" message to establish a RAB for CS domain, and the first corresponding (based on RAB ID) transmission by the FAP of a RANAP \"RAB ASSIGNMENT RESPONSE\" message for successfully established RABs over a granularity period (Sample Interval {{bibref|3GPP-TS.32.582|Section 6.3.2}}). This end value of the time will then be divided by the number of successfully established RABs observed in the granularity period to give the arithmetic mean. The accumulator SHALL be reinitialized at the beginning of each granularity period.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMean";
+ }
+ leaf rabcs-setup-time-max {
+ type uint64;
+ units "milliseconds";
+ description
+ "The maximum time in {{units}} for a FAP to establish a RAB CS connection. This measurement is obtained by monitoring the time intervals for each successful RAB establishment between the receipt by the FAP of a RANAP \"RAB ASSIGNMENT REQUEST\" message to establish a RAB for CS domain, and the first corresponding (based on RAB ID) transmission by the FAP of a RANAP \"RAB ASSIGNMENT RESPONSE\" message for successfully established RABs. The high tide mark of this time will be stored in a gauge; the gauge SHALL be reinitialized at the beginning of each granularity period (Sample Interval {{bibref|3GPP-TS.32.582|Section 6.3.2}}).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMax";
+ }
+ leaf rabps-setup-time-mean {
+ type uint64;
+ units "milliseconds";
+ description
+ "The mean time in {{units}} for a FAP to establish a RAB PS connection. This measurement is obtained by accumulating the time intervals for each successful RAB establishment between the receipt by the FAP of a RANAP \"RAB ASSIGNMENT REQUEST\" message to establish a RAB for PS domain, and the first corresponding (based on RAB ID) transmission by the FAP of a RANAP \"RAB ASSIGNMENT RESPONSE\" message for successfully established RABs over a granularity period (Sample Interval {{bibref|3GPP-TS.32.582|Section 6.3.2}}). This end value of the time will then be divided by the number of successfully established RABs observed in the granularity period to give the arithmetic mean. The accumulator SHALL be reinitialized at the beginning of each granularity period.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMean";
+ }
+ leaf rabps-setup-time-max {
+ type uint64;
+ units "milliseconds";
+ description
+ "The maximum time in {{units}} for a FAP to establish a RAB PS connection. This measurement is obtained by monitoring the time intervals for each successful RAB establishment between the receipt by the FAP of a RANAP \"RAB ASSIGNMENT REQUEST\" message to establish a RAB for PS domain, and the first corresponding (based on RAB ID) transmission by the FAP of a RANAP \"RAB ASSIGNMENT RESPONSE\" message for successfully established RABs. The high tide mark of this time will be stored in a gauge; the gauge SHALL be reinitialized at the beginning of each granularity period (Sample Interval {{bibref|3GPP-TS.32.582|Section 6.3.2}}).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMax";
+ }
+ leaf fail-ho {
+ type uint64;
+ description
+ "The number of failed Handovers.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.FailHO";
+ }
+ leaf succ-ho {
+ type uint64;
+ description
+ "The number of successful Handovers.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.SuccHO";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.UMTS.RAB.";
+ }
+
+ grouping lte-g {
+ description
+ "This object contains parameters relating to configuring the LTE FAP.";
+ leaf tunnel-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.TunnelNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.";
+ }
+
+ grouping lte-tunnel-g {
+ description
+ "This object contains a table of all tunnel instances configured for the LTE FAP.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Alias";
+ }
+ leaf tunnel-ref {
+ type string {
+ length "0..256";
+ }
+ description
+ "This is the reference to an IPsec tunnel instance used by the LTE FAP. For all root data models, which use the tunnel definition provided in {{bibref|TR-262}} (InternetGatewayDevice:1 {{bibref|TR-098}} and Device:1 {{bibref|TR-181i1}}) the {{param}} MUST point to a row in the 'FAP.Tunnel.IKESA.{i}.' table, defined in {{bibref|TR-262}}. If the root data model used is Device:2 {{bibref|TR-181i2}} than the {{param}} MUST point to IPsec tunnel instance defined in {{bibref|TR-181i2}}. If the referenced object is deleted, the parameter value MUST be set to an empty string. In case of a multiple-radio-technology FAP product, each radio technology can have its own tunnels or share common tunnels. In the former case, {{param}} can contain a unique instance number. In the latter case, {{param}} under all radio technologies can have the same instance number.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.Tunnel.{i}.TunnelRef";
+ }
+ leaf-list plmnid {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "{{list}} Optional list of PLMM IDs associated with the tunnel, which can be used for selecting the tunnel. Each PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.Tunnel.{i}.PLMNID";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+ }
+
+ grouping lte-epc-g {
+ description
+ "This object contains parameters relating to configuring LTE EPC.";
+ leaf-list allowed-ciphering-algorithm-list {
+ type enumeration {
+ enum "eea0" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList - EEA0";
+ }
+ enum "128-eea1" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList - 128-EEA1";
+ }
+ enum "128-eea2" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList - 128-EEA2";
+ }
+ }
+ config false;
+ min-elements 1;
+ description
+ "{{list}} Each item is a ciphering algorithm allowed to be used for RRC and UP confidentiality protection as defined in {{bibref|3GPP-TS.33.401}}. If the list contains more than 1 item, it is in the order of the preferred algorithm to be used. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList";
+ }
+ leaf-list allowed-integrity-protection-algorithm-list {
+ type enumeration {
+ enum "128-eia1" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.AllowedIntegrityProtectionAlgorithmList - 128-EIA1";
+ }
+ enum "128-eia2" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.AllowedIntegrityProtectionAlgorithmList - 128-EIA2";
+ }
+ }
+ config false;
+ min-elements 1;
+ description
+ "{{list}} Each item is a integrity protection algorithm allowed to be used for RRC as defined in {{bibref|3GPP-TS.33.401}}. If the list contains more than 1 item, it is in the order of the preferred algorithm to be used. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.AllowedIntegrityProtectionAlgorithmList";
+ }
+ leaf tac {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "TAC (Tracking Area Code) for LTE FAP as specified in SystemInformationBlockType1 message in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.TAC";
+ }
+ leaf eaid {
+ type uint32 {
+ range "0..16777216";
+ }
+ config false;
+ description
+ "Emergency Area ID that uniquely identifies the area of emergency for Earthquake and Tsunami Warning Services (ETWS). Corresponds to Emergency Area ID in {{bibref|3GPP-TS.36.413|Section 9.2.1.47}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.EAID";
+ }
+ leaf max-plmn-list-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.CellConfig.LTE.EPC.PLMNList.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.MaxPLMNListEntries";
+ }
+ leaf plmn-list-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.PLMNListNumberOfEntries";
+ }
+ leaf max-qo-s-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.EPC.QoS.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.MaxQoSEntries";
+ }
+ leaf qo-s-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoSNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.";
+ }
+
+ grouping lte-epc-plmn-list-g {
+ description
+ "This object contains parameters relating to list of PLMN identity specific to LTE EPC definition, called PLMN-IdentityList, as specified in SystemInformationBlockType1 message in {{bibref|3GPP-TS.36.331|Section 6.2.2}}. Each instance in this object is a PLMN-IdentityInfo which consists of plmn-Identity and cellReservedForOperatorUse IEs. At minimum 1 item MUST be present in this list, and maximum of 6 items.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Alias";
+ }
+ leaf is-primary {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this {{param|PLMNID}} is a primary PLMN or not. If there is more than one instance in {{object|.CellConfig.LTE.EPC.PLMNList.{i}.}} table, then ACS MUST set this {{param}} set to {{true}} in only one instance.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.IsPrimary";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.PLMNID";
+ }
+ leaf cell-reserved-for-operator-use {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the cell is reserved for operator use or not. If {{true}}, it is reserved. If {{false}}, it is not reserved. Corresponds to \"reserved\" \"notReserved\" respectively as defined in PLMN-IdentityInfo in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.CellReservedForOperatorUse";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+ }
+
+ grouping lte-epc-qo-s-g {
+ description
+ "This object contains parameters relating to configuring QoS in LTE EPC.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Alias";
+ }
+ leaf qci {
+ type uint8 {
+ range "1..20";
+ }
+ description
+ "QoS class identity as defined in {{bibref|3GPP-TS.23.203|Section 6.1.7.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.QCI";
+ }
+ leaf type {
+ type enumeration {
+ enum "gbr" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Type - GBR";
+ }
+ enum "non-gbr" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Type - Non-GBR";
+ }
+ }
+ config false;
+ description
+ "Defines the type of the QoS class as defined in {{bibref|3GPP-TS.23.203|Section 6.1.7.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Type";
+ }
+ leaf priority {
+ type uint8 {
+ range "1..20";
+ }
+ config false;
+ description
+ "Priority of the QoS class as defined in {{bibref|3GPP-TS.23.203|Section 6.1.7.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Priority";
+ }
+ leaf packet-delay-budget {
+ type uint16 {
+ range "50 | 100 | 150 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 | 1500 | 2000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Defines the Packet delay budget, specified in {{units}}, as defined in {{bibref|3GPP-TS.23.203|Section 6.1.7.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.PacketDelayBudget";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+ }
+
+ grouping lte-ran-g {
+ description
+ "This object contains parameters relating to the LTE RAN level configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.";
+ }
+
+ grouping lte-ran-common-g {
+ description
+ "This object contains parameters relating to the common configuration in LTE RAN.";
+ leaf cell-identity {
+ type uint32 {
+ range "0..268435455";
+ }
+ config false;
+ description
+ "Cell Identity as specified in {{bibref|3GPP-TS.36.331|Section 6.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Common.CellIdentity";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Common.";
+ }
+
+ grouping lte-ran-s1-ap-g {
+ description
+ "This object contains parameters relating to the S1AP configuration.";
+ leaf-list t-reloc-prep {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a maximum time for the Handover Preparation procedure in the source LTE FAP, specified in seconds, with a numeric range between 0 and 300 inclusive. Only values in multiple of 5 are valid; use of other values within the defined range MUST be rejected by the CPE. In case there is more than one item in the list, the first item contains the most preferred value. The value of {{param}} divided by 10 yields the actual value. The timer is started when the LTE FAP sends the HANDOVER REQUIRED message. Upon reception of the HANDOVER COMMAND message the LTE FAP shall stop the timer. Corresponds to parameter TS1RELOCprep defined in {{bibref|3GPP-TS.36.413|Section 8.4.1.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If the LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then the LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If the LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then the LTE FAP accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of LTE FAP, LTE FAP accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocPrep";
+ }
+ leaf-list t-reloc-overall {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a maximum time for the protection of the overall handover procedure in the source LTE FAP, specified in seconds, with a numeric range between 0 and 300 inclusive. Only values in multiple of 5 are valid; use of other values within the defined range MUST be rejected by the CPE. In case there is more than one item in the list, the first item contains the most preferred value. The value of {{param}} divided by 10 yields the actual value. The timer is started reception of the HANDOVER COMMAND message. Corresponds to parameter TS1RELOCOverall defined in {{bibref|3GPP-TS.36.413|Section 8.4.1.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then LTE FAP accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of LTE FAP, LTE FAP accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocOverall";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+ }
+
+ grouping lte-ran-s1-u-g {
+ description
+ "This object contains parameters relating to the S1-U configuration.";
+ leaf gtpu-echo-interval {
+ type uint8 {
+ range "0 | 60..max";
+ }
+ units "seconds";
+ config false;
+ description
+ "Defines the interval in {{units}} between each GTP-U Echo Request that LTE FAP sends to the GTP-U peer, as specified in {{bibref|3GPP-TS.29.281|Section 7.2.1}}. If the value of {{param}} is equal to 0, then this functionality is supressed and thus LTE FAP does not send GTP-U Echo Request. If there is no GTP-U path in use, then no Echo Request is sent regardless of the value of {{param}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.S1U.GTPUEchoInterval";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+ }
+
+ grouping lte-ran-rf-g {
+ description
+ "This object contains parameters relating to the RF, see {{bibref|3GPP-TS.32.592|Section 6.1.7.1}}.";
+ leaf-list earfcndl {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is an E-UTRA Absolute Radio Frequency Channel Number in the downlink direction. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter NDL specified in {{bibref|3GPP-TS.36.104|Table 5.7.3.1}}. If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then LTE FAP accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of LTE FAP, LTE FAP accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNDL";
+ }
+ leaf-list earfcnul {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is an E-UTRA Absolute Radio Frequency Channel Number in the uplink direction. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter NUL specified in {{bibref|3GPP-TS.36.104|Table 5.7.3.1}}. If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then LTE FAP accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of LTE FAP, LTE FAP accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNUL";
+ }
+ leaf freq-band-indicator {
+ type uint8 {
+ range "1..40";
+ }
+ config false;
+ description
+ "Frequency band indicator. Corresponds to parameter freqBandIndicator in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.FreqBandIndicator";
+ }
+ leaf-list dl-bandwidth {
+ type uint8 {
+ range "6 | 15 | 25 | 50 | 75 | 100";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a downlink transmission bandwidth, specified in number of Resource Blocks. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter dl_Bandwidth in MIB (Master Information Block) in {{bibref|3GPP-TS.36.331|Section 6.2.2}}. and to parameter NRB in {{bibref|3GPP-TS.36.101|Table 5.6-1}}. If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then LTE FAP accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of LTE FAP, LTE FAP accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.DLBandwidth";
+ }
+ leaf-list ul-bandwidth {
+ type uint8 {
+ range "6 | 15 | 25 | 50 | 75 | 100";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is an uplink transmission bandwidth, specified in number of Resource Blocks. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter ul_Bandwidth in SIB2 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}. and to parameter NRB in {{bibref|3GPP-TS.36.101|Table 5.6-1}}. If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then LTE FAP accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of LTE FAP, LTE FAP accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.ULBandwidth";
+ }
+ leaf-list reference-signal-power {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a downlink reference-signal transmit power, specified in dBm, with a numeric range between -60 and 50 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Defined as the linear average over the power contributions (in W) of all resource elements that carry cell-specific reference signals within the operating system bandwidth. Corresponds to parameter referenceSignalPower in PDSCH-Config IE in {{bibref|3GPP-TS.36.331|Section 6.3.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then LTE FAP accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of LTE FAP, LTE FAP accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.ReferenceSignalPower";
+ }
+ leaf-list phy-cell-id {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a physical cell ID with a numeric range between 0 and 503 inclusive. Represents the list of physical cell identities LTE FAP to choose from. In case there is more than one item in the list, the first item contains the most preferred value. As specified in {{bibref|3GPP-TS.36.211|Section 6.11}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If LTE FAP supports self-configuration capability for {{param}} and more than one item is configured, then LTE FAP is expected to select one from the list and overwrite this parameter containing only the one selected. If LTE FAP does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.PhyCellID";
+ }
+ leaf-list psch-power-offset {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a power offset, specified in dB, of the Primary Synchronization Channel with respect to the ReferenceSignalPower, with a numeric range between -350 and 150 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of {{param}} divided by 10 yields the actual value. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.PSCHPowerOffset";
+ }
+ leaf-list ssch-power-offset {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a power offset, specified in dB, of the Secondary Synchronization Channel with respect to the ReferenceSignalPower, with a numeric range between -350 and 150 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of {{param}} divided by 10 yields the actual value. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.SSCHPowerOffset";
+ }
+ leaf-list pbch-power-offset {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a power offset, specified in dB, of the Physical Broadcast Channel with respect to the ReferenceSignalPower, with a numeric range between -350 and 150 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of {{param}} divided by 10 yields the actual value. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.PBCHPowerOffset";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RF.";
+ }
+
+ grouping lte-ran-phy-g {
+ description
+ "This object contains parameters relating to the physical layer level configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.";
+ }
+
+ grouping lte-ran-phy-antenna-info-g {
+ description
+ "This object contains parameters relating to the antenna configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.1}}).";
+ leaf antenna-ports-count {
+ type uint8 {
+ range "1 | 2 | 4";
+ }
+ description
+ "Defines the number of cell specific antenna ports according to {{bibref|3GPP-TS.36.211|Section 6.2.1}}. A UE in IDLE mode acquires the information about the number of transmit antenna ports according to {{bibref|3GPP-TS.36.212|Section 5.3.1.1}}. Corresponds to antennaPortsCount IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.AntennaPortsCount";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+ }
+
+ grouping lte-ran-phy-pdsch-g {
+ description
+ "This object contains parameters relating to the PDSCH (Physical Downlink Shared Channel) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.2}}).";
+ leaf-list pb {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a Eb/Ea value with a numeric range between 0 and 3 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of this parameter is the same for all UEs in the cell. Eb repsents EPRE of PDSCH REs type B, i.e. REs in OFDM symbols that include reference symbols, as specified in {{bibref|3GPP-TS.36.213|Section 5.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pb";
+ }
+ leaf-list pa {
+ type int64;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a Ea/Ers value. In case there is more than one item in the list, the first item contains the most preferred value. Ea represents EPRE of PDSCH REs type A, i.e. REs in OFDM symbols that do not include reference symbols. Ers represents EPRE of reference symbols REs. Specified in {{bibref|3GPP-TS.36.213|Section 5.2}}. Actual values of range are -6.00 to 3.00dB. The value of each item in {{param}} divided by 100 yields the actual value. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pa";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+ }
+
+ grouping lte-ran-phy-srs-g {
+ description
+ "This object contains parameters relating to the UL SRS (Sounding Reference Signal) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.3}}).";
+ leaf srs-enabled {
+ type boolean;
+ config false;
+ description
+ "Indicates whether UL SRS (Sounding RS) is enabled or not. If {{true}}, UL Sounding RS is enabled. If {{false}}, UL Sounding RS is disabled. Corresponds to SoundingRS-UL-ConfigCommonIE defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSEnabled";
+ }
+ leaf-list srs-bandwidth-config {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a index into tables of cell specific SRS Bandwidth Configuration, with a numeric range between 0 and 7 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. SRS Bandwidth Configuration tables are specified in {{bibref|3GPP-TS.36.211|Table 5.5.3.2-1, 5.5.3.2-2, 5.5.3.2-3 and 5.5.3.2– 4}}. Corresponds to srs-BandwidthConfig IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSBandwidthConfig";
+ }
+ leaf srs-max-up-pts {
+ type boolean;
+ config false;
+ description
+ "Defines whether reconfiguration of SRS applies to UpPTS or not. If {{true}}, SRS applies to UpPTS. If {{false}}, SRS does not apply to UpPTS. Corresponds to srs-MaxUpPts specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and srsMaxUpPts specified in {{bibref|3GPP-TS.36.211|Section 5.5.3.2}}. This parameter is applicable to TDD mode only.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSMaxUpPTS";
+ }
+ leaf ack-nack-srs-simultaneous-transmission {
+ type boolean;
+ config false;
+ description
+ "Defines whether a UE can simultaneously transmit SRS and HARQ ACK/NACK or not. If {{true}}, simultaneous transmission is allowed. If {{false}}, simultaneous transmission is not allowed. Corresponds to ackNackSRS-SimultaneousTransmission specfied in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and Simultaneous-AN-and-SRS specified in {{bibref|3GPP-TS.36.213|Section 8.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.AckNackSRSSimultaneousTransmission";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+ }
+
+ grouping lte-ran-phy-prach-g {
+ description
+ "This object contains parameters relating to the PRACH (Physical Random Access Channel) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.4}}).";
+ leaf-list root-sequence-index {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a Logical root sequence index with a numeric range between 0 and 837 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Logical root sequence index is used to determine 64 physical RACH preamble sequences available in the cell. Corresponds to RACH_ROOT_SEQUENCE parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and {{bibref|3GPP-TS.36.211|Section 5.7.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.RootSequenceIndex";
+ }
+ leaf-list configuration-index {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is an index to the table defining PRACH resources within the frame with a numeric range between 0 and 63 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to PRACH-Configuration-Index parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and {{bibref|3GPP-TS.36.211|Section 5.7.1}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ConfigurationIndex";
+ }
+ leaf high-speed-flag {
+ type boolean;
+ config false;
+ description
+ "Indicates whether restricted set or unrestricted set of preambles is used. If {{true}}, indicates restricted set. If {{false}}, indicates unrestricted set. Corresponds to highSpeedFlag parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and high-speed-flag parameter defined in {{bibref|3GPP-TS.36.211|Section 5.7.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.HighSpeedFlag";
+ }
+ leaf-list zero-correlation-zone-config {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a value used for preamble sequence generation with a numeric range between 0 and 15 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Each item corresponds to zeroCorrelationZoneConfig parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and to NCS parameter defined in {{bibref|3GPP-TS.36.211|Section 5.7.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ZeroCorrelationZoneConfig";
+ }
+ leaf-list freq-offset {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item represents the first available physical resource block number for PRACH. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to prach-FreqOffset parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and nPRBoffsetRA parameter defined {{bibref|3GPP-TS.36.211|Section 5.7.1}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.FreqOffset";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+ }
+
+ grouping lte-ran-phy-pucch-g {
+ description
+ "This object contains parameters relating to the PUCCH (Physical Uplink Control Channel) configuration. (see {{bibref|3GPP-TS.32.592|Section 6.1.1.5}})";
+ leaf delta-pucch-shift {
+ type enumeration {
+ enum "ds1" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift - ds1";
+ }
+ enum "ds2" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift - ds2";
+ }
+ enum "ds3" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift - ds3";
+ }
+ }
+ config false;
+ description
+ "Defines the cyclic shift used for PUCCH formats 1/1a/1b in a resource block used for a mix of formats 1/1a/1b and 2/2a/2b. It is an integer multiple of deltaPUCCHShift within the range of {0, 1, ., 7} . Corresponds to deltaPUCCH-Shift parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and Delta-shiftPUCCH parameter defined {{bibref|3GPP-TS.36.211|Section 5.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift";
+ }
+ leaf-list nrbcqi {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a value that defines the bandwidth in terms of resource blocks available for use by PUCCH formats 2/2a/2b transmission in each slot, with a numeric range between 0 and 98 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to nRB-CQI parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and NRB(2) parameter defined {{bibref|3GPP-TS.36.211|Section 5.4}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive.If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NRBCQI";
+ }
+ leaf ncsan {
+ type uint8 {
+ range "0..7";
+ }
+ description
+ "Defines the number of cyclic shift used for PUCCH formats 1/1a/1b in a resource block used for a mix of formats 1/1a/1b and 2/2a/2b. The value is an integer multiple of deltaPUCCHShift within the range of {0, 1, ., 7}. Corresponds to nCS-AN parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and NRB(1) parameter defined {{bibref|3GPP-TS.36.211|Section 5.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NCSAN";
+ }
+ leaf-list n1-pucchan {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a value that determines resources used for transmission of PUCCH format 1/1a/1b and 2/2a/2b, with a numeric range between 0 and 2047 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to n1PUCCH-AN parameter defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and NPUCCH(1) parameter defined {{bibref|3GPP-TS.36.213|Section 10.1}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.N1PUCCHAN";
+ }
+ leaf-list cqipucch-resource-index {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a value that indicates the position of PUCCH, with a numeric range between 0 and 1185 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. . Corresponds to the cqi-PUCCH-ResourceIndex IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}. and to parameter nPUCCH(2) specified in {{bibref|3GPP-TS.36.213|Section 7.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.CQIPUCCHResourceIndex";
+ }
+ leaf k {
+ type uint8 {
+ range "1..4";
+ }
+ units "Resource Blocks";
+ description
+ "Sub-band size for sub-band reporting mode expressed in units of physical {{units}}, see {{bibref|3GPP-TS.36.213|Section 7.2.2}}. This parameter corresponds to the K IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.K";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+ }
+
+ grouping lte-ran-phy-pusch-g {
+ description
+ "This object contains parameters relating to the PUSCH (Physical Uplink Shared Channel) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.6}}).";
+ leaf nsb {
+ type uint8 {
+ range "1..4";
+ }
+ config false;
+ description
+ "Defines the number of sub-bands. This parameter corresponds to n-SB parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and NSB parameter specified in {{bibref|3GPP-TS.36.211|Section 5.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.NSB";
+ }
+ leaf hopping-mode {
+ type enumeration {
+ enum "inter-sub-frame" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingMode - InterSubFrame";
+ }
+ enum "intra-and-inter-sub-frame" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingMode - IntraAndInterSubFrame";
+ }
+ }
+ config false;
+ description
+ "Indicates if hopping is \"inter-subframe\" or \"intra and inter-subframe\". Corresponds to hoppingMode parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and Hopping-mode parameter specified in {{bibref|3GPP-TS.36.211|Section 5.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingMode";
+ }
+ leaf-list hopping-offset {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a value to compute the set of physical resource blocks to be used for transmission on PUSCH if uplink frequency hopping mode is enabled, with a numeric range between 0 and 98 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. This parameter corresponds to pusch-HoppingOffset parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and NRBHO parameter specified in {{bibref|3GPP-TS.36.211|Section 5.3.4}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingOffset";
+ }
+ leaf enable64-qam {
+ type boolean;
+ description
+ "Indicates whether 64QAM is allowed or not. If {{true}}, 64QAM is allowed. If {{false}}, 64QAM is not allowed. Corresponds to enable64QAM parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.Enable64QAM";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+ }
+
+ grouping lte-ran-phy-pusch-ulrs-g {
+ description
+ "This object contains parameters relating to the ULRS (Uplink Reference Signal) of PUSCH (Physical Uplink Shared Channel) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.6.1}}).";
+ leaf group-hopping-enabled {
+ type boolean;
+ config false;
+ description
+ "Indicates whether group hopping is enabled or not. If {{true}}, group hopping is enabled. If {{false}}, group hopping is not enabled. Corresponds to groupHoppingEnabled parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.and in {{bibref|3GPP-TS.36.211|Section 5.5.1.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupHoppingEnabled";
+ }
+ leaf group-assignment-pusch {
+ type uint8 {
+ range "0..29";
+ }
+ description
+ "Corresponds to parameter groupAssignmentPUSCH specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupAssignmentPUSCH";
+ }
+ leaf sequence-hopping-enabled {
+ type boolean;
+ config false;
+ description
+ "Indicates whether sequence hopping is enabled or not. If {{true}}, sequence hopping is enabled. If {{false}}, sequence hopping is not enabled. Corresponds to sequenceHoppingEnabled parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.and in {{bibref|3GPP-TS.36.211|Section 5.5.1.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.SequenceHoppingEnabled";
+ }
+ leaf cyclic-shift {
+ type uint8 {
+ range "0..7";
+ }
+ description
+ "Corresponds to parameter cyclcShift specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.CyclicShift";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+ }
+
+ grouping lte-ran-phy-ul-power-control-g {
+ description
+ "This object contains parameters relating to the uplink power control configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.7}}).";
+ leaf-list p0-nominal-pusch {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a value to compute the UL UE transmit power for transmission on PUSCH for semi-persistant grants, with a numeric range between -126 and 24 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to p0-NominalPUSCH parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and PO_NOMINAL_PUSCH(0) parameter specified in {{bibref|3GPP-TS.36.211|Section 5.1.1.1}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUSCH";
+ }
+ leaf-list alpha {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a value used to compute the UL UE transmit power for transmission on PUSCH, from the list of 0, 4, 5, 6, 7, 8, 9, 100. In case there is more than one item in the list, the first item contains the most preferred value. Actual values of range are from 0.00 to 1.00. The value of {{param}} divided by 100 yields the actual value. Corresponds to alpha parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and to α parameter specified in {{bibref|3GPP-TS.36.211|Section 5.1.1.1}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.Alpha";
+ }
+ leaf-list p0-nominal-pucch {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item is a value to compute the UL UE transmit power for transmission on PUCCH, with a numeric range between -126 and 24 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to p0-NominalPUCCH parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and PO_NOMINAL_PUCCH parameter specified in {{bibref|3GPP-TS.36.211|Section 5.1.2.1}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUCCH";
+ }
+ leaf delta-fpucch-format1 {
+ type int64;
+ units "dB";
+ description
+ "Defines deltaF-PUCCH-Format1 to derive the UE transmit power. Corresponds to parameter ?F_PUCCH(1) in {{units}} as specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.213|Section 5.1.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1";
+ }
+ leaf delta-fpucch-format1b {
+ type uint8 {
+ range "1 | 3 | 5";
+ }
+ units "dB";
+ description
+ "Defines deltaF-PUCCH-Format1b to derive the UE transmit power. Corresponds to parameter ?F_PUCCH(1b) in {{units}} dB as specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.213|Section 5.1.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1b";
+ }
+ leaf delta-fpucch-format2 {
+ type int64;
+ units "dB";
+ description
+ "Defines deltaF-PUCCH-Format2 to derive the UE transmit power. Corresponds to parameter ?F_PUCCH(2) in {{units}} as specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.213|Section 5.1.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2";
+ }
+ leaf delta-fpucch-format2a {
+ type int64;
+ units "dB";
+ description
+ "Defines deltaF-PUCCH-Format2a to derive the UE transmit power. Corresponds to parameter ?F_PUCCH(2a) in {{units}} as specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.213|Section 5.1.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2a";
+ }
+ leaf delta-fpucch-format2b {
+ type int64;
+ units "dB";
+ description
+ "Defines deltaF-PUCCH-Format2b to derive the UE transmit power. Corresponds to parameter ?F_PUCCH(2b) in {{units}} as specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.213|Section 5.1.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2b";
+ }
+ leaf delta-preamble-msg3 {
+ type int64;
+ units "dB";
+ description
+ "Defines the parameter in {{units}} used to compute the UL UE transmit power for transmission of random access response grant. This parameter corresponds to deltaPreambleMsg3 parameter specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and to ?PREAMBLE_Msg3 parameter specified in {{bibref|3GPP-TS.36.213|Section 5.1.1.1}}. Actual value is 2x the value of this parameter.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaPreambleMsg3";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+ }
+
+ grouping lte-ran-phy-mbsfn-g {
+ description
+ "This object contains parameters relating to the MBSFN (Multimedia Broadcast multicast service Single Frequency Network) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.8}}).";
+ leaf neigh-cell-config {
+ type uint8 {
+ range "0..3";
+ }
+ config false;
+ description
+ "Defines the information related to MBSFN and TDD UL/DL configuration of neighbour cells. Corresponds to NeighCellConfig IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.6}}. Value 0: Not all neighbour cells have the same MBSFN sub-frame allocation as serving cell. Value 1: No MBSFN sub-frames are present in all neighbour cells. Value 2: The MBSFN sub-frame allocations of all neighbour cells are identical to or subsets of that in the serving cell. Value 3: Different UL/DL allocation in neighbouring cells for TDD compared to the serving cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.NeighCellConfig";
+ }
+ leaf max-sf-config-list-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.MaxSFConfigListEntries";
+ }
+ leaf sf-config-list-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigListNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+ }
+
+ grouping lte-ran-phy-mbsfn-sf-config-list-g {
+ description
+ "This object contains parameters relating to the sub-frame that are reserved for MBSFN (Multimedia Broadcast multicast service Single Frequency Network) in downlink direction. For FDD mode, only one entry can exist in this table. For TDD mode, at most one entry can exist with a given value of stratumID (see {{bibref|3GPP-TS.32.592|Section 6.1.1.8}}).";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Alias";
+ }
+ leaf sync-stratum-id {
+ type uint8 {
+ range "1..8";
+ }
+ config false;
+ description
+ "This parameter is applicable to TDD mode only. Defines the synchronization stratum level to which the MBSFN configuration applies.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SyncStratumID";
+ }
+ leaf radio-frame-allocation-period {
+ type uint8 {
+ range "1..2 | 4 | 8 | 16 | 32";
+ }
+ description
+ "Defines the period where MBSFN sub-frames occur in the radio frames. Radio frames contain MBSFN sub-frame when the following condition is met: ((SFN mod {{param}}) = {{param|RadioframeAllocationOffset}}). The value of 1 and 2 are only meaningful when the value of {{param|RadioFrameAllocationSize}} parameter is 1. Corresponds to radioFrameAllocationPeriod IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationPeriod";
+ }
+ leaf radioframe-allocation-offset {
+ type uint8 {
+ range "0..7";
+ }
+ description
+ "Defines the offset where MBSFN sub-frames occur in the radio frames. Radio frames contain MBSFN sub-frame when the following condition is met: ((SFN mod {{param|RadioFrameAllocationPeriod}}) = {{param}}). Corresponds to radioFrameAllocationOffset IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioframeAllocationOffset";
+ }
+ leaf radio-frame-allocation-size {
+ type uint8 {
+ range "1 | 4";
+ }
+ description
+ "Defines the number of connsecutive frames that the MBSFN allocation pertains to defined by the combination of {{param|RadioFrameAllocationPeriod}} and {{param|RadioframeAllocationOffset}} parameters.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationSize";
+ }
+ leaf-list sub-frame-allocations {
+ type uint8 {
+ range "0 | 1";
+ }
+ config false;
+ max-elements "64";
+ description
+ "{{list}} The value of \"1\" indicates the position of sub-frames that is allocated to MBSFN within the radio frame. First item defines the MBSFN allocation for sub-frame #1, second item for #2, third item for #3, fourth item for #6, fifth item for #7, sixth item for #8. If the value of {{param|RadioFrameAllocationSize}} is 4, then this pattern repeats in the sequence of the four radio frames. The actual size of this parameter depends on the value of {{param|RadioFrameAllocationSize}} parameter. If the value of {{param|RadioFrameAllocationSize}} is 1, then the size of this parameter is 6; if the size {{param|RadioFrameAllocationSize}} is 4, then the size of this parameter is 24. Corresponds to subframeAllocation IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SubFrameAllocations";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+ }
+
+ grouping lte-ran-phy-prs-g {
+ description
+ "This object contains parameters relating to the PRS (Positioning Reference Signal) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.9}}).";
+ leaf num-prs-resource-blocks {
+ type uint64;
+ units "Resource Blocks";
+ config false;
+ description
+ "Defines the number of RBs ({{units}}) used for PRS. Corresponds to the parameter NRBPRS in {{bibref|3GPP-TS.36.211|Section 6.10.4.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumPRSResourceBlocks";
+ }
+ leaf prs-configuration-index {
+ type uint16 {
+ range "0..4095";
+ }
+ config false;
+ description
+ "Corresponds to the PRS configuration index defined as parameter IPRS in {{bibref|3GPP-TS.36.211|Section 6.10.4.3 and Table 6.10.4.3.-1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.PRSConfigurationIndex";
+ }
+ leaf num-consecutive-prs-subfames {
+ type uint8 {
+ range "1..2 | 4 | 6";
+ }
+ config false;
+ description
+ "Defines the number of consecutive positioning sub-frames. Corresponds to the parameter NPRS in {{bibref|3GPP-TS.36.211|Section 6.10.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumConsecutivePRSSubfames";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+ }
+
+ grouping lte-ran-phy-tdd-frame-g {
+ description
+ "This object is applicable to TDD mode only. This object contains parameters relating to the TDD frame structure configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.1.10}}).";
+ leaf sub-frame-assignment {
+ type uint8 {
+ range "0..6";
+ }
+ config false;
+ description
+ "Defines the DL/UL sub-frame configuration. Corresponds to subframAssignment specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and {{bibref|3GPP-TS.36.211|Table 4.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SubFrameAssignment";
+ }
+ leaf special-subframe-patterns {
+ type uint8 {
+ range "0..8";
+ }
+ config false;
+ description
+ "Defines the configuration of the special sub-frame that contains the guard period between the downlink and uplink transmissions. Corresponds to the specialSubframePatterns specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and {{bibref|3GPP-TS.36.211|Table 4.2.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SpecialSubframePatterns";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+ }
+
+ grouping lte-ran-mac-g {
+ description
+ "This object contains parameters relating to the MAC (Medium Access Control) configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.";
+ }
+
+ grouping lte-ran-mac-rach-g {
+ description
+ "This object contains parameters relating to the RACH (Random Access Channel) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.2.1}}).";
+ leaf-list number-of-ra-preambles {
+ type uint8 {
+ range "4..64";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a number of non-dedicated random access preambles. Only values in multiple of 4 are valid (i.e. 4, 8, 12, 16,...64); use of other values within the defined range MUST be rejected by the CPE. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter numberOfRA-Preambles specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.1.1}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.NumberOfRaPreambles";
+ }
+ leaf-list size-of-ra-group-a {
+ type uint8 {
+ range "4..60";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a number of non-dedicated random access preambles in Random Acces Preambles group A. Only values in multiple of 4 are valid (i.e. 4, 8, 12, 16,...60); use of other values within the defined range MUST be rejected by the CPE. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter sizeOfRA-PreamblesGroupA specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.1.1}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.SizeOfRaGroupA";
+ }
+ leaf-list message-size-group-a {
+ type uint16 {
+ range "56 | 144 | 208 | 256";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a threshold for preamble selection, specified in bits. In case there is more than one item in the list, the first item contains the most preferred value. Defined in {{bibref|3GPP-TS.36.321|Section 5.1.2}}. Corresponds to parameter messageSizeGroupA specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessageSizeGroupA";
+ }
+ leaf-list message-power-offset-group-b {
+ type int64;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a threshold for preamble selection, specified in dB. In case there is more than one item in the list, the first item contains the most preferred value. Defined in {{bibref|3GPP-TS.36.321|Section 5.1.2}}. Corresponds to parameter messagePowerOffsetGroupB specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}. Value of -1 indicates \"minusinfinity.\" If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessagePowerOffsetGroupB";
+ }
+ leaf-list power-ramping-step {
+ type uint8 {
+ range "0 | 2 | 4 | 6";
+ }
+ config false;
+ min-elements 1;
+ max-elements "16";
+ description
+ "{{list}} Each item is a power increase factor between subsequent random access preamble transmissions, specified in dB. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter powerRampingStep specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.1.3}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PowerRampingStep";
+ }
+ leaf-list preamble-initial-received-target-power {
+ type int64;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a value used as the baseline for computation for random access transmission power, specified in dBm. Also used as a parameter in the criteria for preamble selection. Only even values are valid (i.e. -120, -118, -116,...-90); use of other values within the defined range MUST be rejected by the CPE. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter preambleInitialReceivedTargetPower specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.1.2}}. and section 5.1.3. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleInitialReceivedTargetPower";
+ }
+ leaf-list preamble-trans-max {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a maximum number of random access preamble transmissions, from the list of 3, 4, 5, 6, 7, 8, 10, 20, 50, 100, 200. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter preambleTransMax specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.1.4 and section 5.1.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleTransMax";
+ }
+ leaf-list response-window-size {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a duration of the random access response window, specified in sub-frames, with a numeric range between 2 and 10 inclusive (except value of 9). In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter ra-ResponseWindowSize specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.1.4}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ResponseWindowSize";
+ }
+ leaf-list contention-resolution-timer {
+ type uint8 {
+ range "8..64";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a contention resolution timer, specified in sub-frames. Only values multiple of 8 are valid (i.e. 8, 16, 24,...64); use of other values within the defined range MUST be rejected by the CPE. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter mac-ContentionResolutionTimer specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.1.5}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ContentionResolutionTimer";
+ }
+ leaf-list max-harq-msg3-tx {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a maximum number of Msg3 HARQ transmissions by RRC, with a numeric range between 1 and 8 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter maxHARQ-Msg3Tx specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.4.2.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MaxHARQMsg3Tx";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+ }
+
+ grouping lte-ran-mac-drx-g {
+ description
+ "This object contains parameters relating to the DRX (Discontinuous Reception) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.2.2}}).";
+ leaf drx-enabled {
+ type boolean;
+ config false;
+ description
+ "Specifies whether DRX operation is enabled or not. If {{true}}, DRX operation is enabled. If {{false}}, DRX operation is not enabled. Corresponds to drx-Configuration IE defined in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXEnabled";
+ }
+ leaf-list on-duration-timer {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is the DRX cycle during which UE actively monitors PDCCH, specified in number of PDCCH sub-frames, from the list of 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 40, 50, 60, 80, 100, 200. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter onDurationTimer specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.OnDurationTimer";
+ }
+ leaf-list drx-inactivity-timer {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item defines the number of inactive consecutive PDCCH sub-frame(s) that will activate short DRX cycle, specified in number of PDCCH sub-frames, from the list of 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 40, 50, 60, 80, 100, 200, 300, 500, 750, 1280, 1920, 2560. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter drx-InactivityTimer specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXInactivityTimer";
+ }
+ leaf-list drx-retransmission-timer {
+ type uint8 {
+ range "1 | 2 | 4 | 6 | 8 | 16 | 24 | 33";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item defines the maximum number of consecutive PDCCH sub-frame(s) UE MUST remain active expecting a DL retransmission, specified in number of PDCCH sub-frames. In case there is more than one item in the list, the first item contains the most preferred value. The timer is started when a HARQ RTT Timer expires and the data in the soft buffer of the corresponding HARQ process was not successfully decoded. There is one timer for each active HARQ process. Corresponds to parameter drx-RetransmissionTimer specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.7}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXRetransmissionTimer";
+ }
+ leaf-list long-drx-cycle {
+ type uint16 {
+ range "10 | 20 | 32 | 40 | 64 | 80 | 128 | 160 | 256 | 320 | 512 | 640 | 1024 | 1280 | 2048 | 2560";
+ }
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is long DRX Cycle value, specified in number of sub-frames. In case there is more than one item in the list, the first item contains the most preferred value. If shortDRX-Cycle is configured, this value MUST be a multiple of the {{param|ShortDRXCycle}} value. Corresponds to longDRX-Cycle parameter specified in {{bibref|3GPP-TS.36.321|Section 5.7}} and longDRX-CycleStartOffset specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.LongDRXCycle";
+ }
+ leaf-list drx-start-offset {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "512";
+ description
+ "{{list}} Each item defines the starting frame of the DRX cycle within the long DRX cycle, with a numeric range between 0 and 2559 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The valid value range is dependent on {{param|LongDRXCycle}} parameter which defines the upper bound of this range, i.e., range definition is [0: ({{param|LongDRXCycle}}-1)]. Corresponds to drxStartOffset parameter specified in {{bibref|3GPP-TS.36.321|Section 5.7}}. Use of values bigger than ({{param|LongDRXCycle}}-1) MUST be rejected by the CPE. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXStartOffset";
+ }
+ leaf-list short-drx-cycle {
+ type uint16 {
+ range "2 | 5 | 8 | 10 | 16 | 20 | 32 | 40 | 64 | 80 | 128 | 160 | 256 | 320 | 512 | 640";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is the short DRX Cycle value, specified in number of sub-frames. In case there is more than one item in the list, the first item contains the most preferred value. If shortDRX-Cycle is configured, the value of {{param|LongDRXCycle}} MUST be a multiple of the {{param}} value. Corresponds to shortDRX-Cycle parameter specified in {{bibref|3GPP-TS.36.321|Section 5.7}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.ShortDRXCycle";
+ }
+ leaf-list drx-short-cycle-timer {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item defined the duration of the short DRX cycle in multiples of {{param|ShortDRXCycle}} parameter, specified in number of sub-frames, with a numeric range between 1 and 16 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Denotes the number of consecutive sub-frame(s)the UE shall follow the short DRX cycle after the DRX Inactivity Timer has expired. Corresponds to drxShortCycleTimer parameter specified in {{bibref|3GPP-TS.36.321|Section 5.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXShortCycleTimer";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+ }
+
+ grouping lte-ran-mac-ulsch-g {
+ description
+ "This object contains parameters relating to the ULSCH (Uplink Shared Channel) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.2.3}}).";
+ leaf max-harq-tx {
+ type uint8 {
+ range "1..8 | 10 | 12 | 16 | 20 | 24 | 28";
+ }
+ description
+ "Maximum number of UL HARQ transmissions. Corresponds to parameter maxHARQ-Tx specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.4.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.MaxHARQTx";
+ }
+ leaf periodic-bsr-timer {
+ type uint16 {
+ range "0 | 5 | 10 | 16 | 20 | 32 | 40 | 64 | 80 | 128 | 160 | 320 | 640 | 1280 | 2560";
+ }
+ units "subframes";
+ description
+ "Timer for Periodic BSR (Buffer Status Report) reporting, specified in number of {{units}}. UE transmits periodic BSR at the expiration of this timer. Corresponds to parameter periodicBSR-Timer specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.4.5}}. Value of 0 indicates \"infinity.\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.PeriodicBSRTimer";
+ }
+ leaf retx-bsr-timer {
+ type uint16 {
+ range "320 | 640 | 1280 | 2560 | 5120 | 10240";
+ }
+ units "subframes";
+ description
+ "Timer for Regular BSR reporting, specified in number of {{units}}. UE transmits a Regular BSR at the expiration of this timer if data is available in the buffer. Corresponds to parameter retxBSR-Timer specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.RetxBSRTimer";
+ }
+ leaf tti-bundling {
+ type boolean;
+ description
+ "Enables/disables TTI bundling. If {{true}}, TTI bundling is enabled. If {{false}}, TTI bundling is disabled. Corresponds to parameter ttiBundling specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.321|Section 5.4.2.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.TTIBundling";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+ }
+
+ grouping lte-ran-rlc-g {
+ description
+ "This object contains parameters relating to the RLC (Radio Link Control) configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.";
+ }
+
+ grouping lte-ran-rlc-srb1-g {
+ description
+ "This object contains parameters relating to the SRB1 (Signaling Radio Bearer 1) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.3.1}}).";
+ leaf default-configuration {
+ type boolean;
+ config false;
+ description
+ "Indicates the whether default RLC configuration for SRB1 is used or not. If {{true}}, the default RLC configuration is used as specified in {{bibref|3GPP-TS.36.331|Section 9.2.1.1}}. In this case, rest of the parameters defined under the current object are ignored by the CPE. If {{false}}, rest of the parameters defined under the current object are used by the CPE for RLC configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.DefaultConfiguration";
+ }
+ leaf-list t-poll-retransmit {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a timer between successive poll transmissions, specified in milliseconds, specified in milliseconds, with a numeric range between 5 and 500 inclusive. Only the multiple of 5 are valid in the range between 5 and 250 inclusive (i.e. 5, 10, 15, 20,... 250), and only the multiple of 50 are valid in the range between 300 and 500 inclusive (i.e., 300, 350, 400, 450, 500). If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to t-PollRetransmit IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TPollRetransmit";
+ }
+ leaf-list poll-pdu {
+ type uint16 {
+ range "0 | 4 | 8 | 16 | 32 | 64 | 128 | 256";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a counter of PDUs between successive poll transmissions, specified in the number of PDUs. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to pollPDU IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.2.1}}. Value of 0 indicates \"infinity.\" If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollPDU";
+ }
+ leaf-list poll-byte {
+ type uint16 {
+ range "0 | 25 | 50 | 75 | 100 | 125 | 250 | 375 | 500 | 750 | 1000 | 1250 | 1500 | 2000 | 3000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a counter of PDU bytes transmitted between successive poll transmissions, specified in kilobytes. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to pollByte IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.2.1}}. Value of 0 indicates infinite amount of kilobytes. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollByte";
+ }
+ leaf-list max-retx-threshold {
+ type uint8 {
+ range "1..4 | 6 | 8 | 16 | 32";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item defines the maximum number of transmission retry used by the RLC entity to limit the number of retransmissions of an AMD PDU. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to maxRetxThreshold IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.1}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.MaxRetxThreshold";
+ }
+ leaf-list t-reordering {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item defines a timer used by the receiving side of an RLC entity in order to detect loss of RLC PDUs at lower layer, specified in milliseconds, with a numeric range between 0 and 200 inclusive. Only the multiple of 5 are valid in the range between 0 and 100 inclusive (i.e. 0, 5, 10, 15,...,100), and only the multiple of 10 are valid in the range between 110 and 200 inclusive (110, 120, 130,...,200). If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to t-Reordering IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.1.2.2. and 5.1.3.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TReordering";
+ }
+ leaf-list t-status-prohibit {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item defines a timer used by the receiving side of an AM RLC entity in order to prohibit transmission of a STATUS PDU, specified in milliseconds, with a numeric range between 0 and 500 inclusive. Only the multiple of 5 are valid in the range between 0 and 250 inclusive (i.e. 0, 5, 10, 15,...,250), and only the multiple of 50 are valid in the range between 300 and 500 inclusive (i.e. 300, 350, 400, 450, 500). If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to t-StatusProhibit IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.3}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TStatusProhibit";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+ }
+
+ grouping lte-ran-rlc-srb2-g {
+ description
+ "This object contains parameters relating to the SRB2 (Signaling Radio Bearer 2) configuration (see {{bibref|3GPP-TS.32.592|Section 6.1.3.1}}).";
+ leaf default-configuration {
+ type boolean;
+ config false;
+ description
+ "Indicates the whether default RLC configuration for SRB1 is used or not. If {{true}}, the default RLC configuration is used as specified in {{bibref|3GPP-TS.36.331|Section 9.2.1.1}}. In this case, rest of the parameters defined under the current object are ignored by the CPE. If {{false}}, rest of the parameters defined under the current object are used by the CPE for RLC configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.DefaultConfiguration";
+ }
+ leaf-list t-poll-retransmit {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a timer between successive poll transmissions, specified in milliseconds, with a numeric range between 5 and 500 inclusive. Only the multiple of 5 are valid in the range between 5 and 250 inclusive (i.e. 5, 10, 15, 20,... 250), and only the multiple of 50 are valid in the range between 300 and 500 inclusive (i.e., 300, 350, 400, 450, 500). If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to t-PollRetransmit IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TPollRetransmit";
+ }
+ leaf-list poll-pdu {
+ type uint16 {
+ range "0 | 4 | 8 | 16 | 32 | 64 | 128 | 256";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a counter of PDUs between successive poll transmissions, specified in the number of PDUs. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to pollPDU IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.2.1}}. Value of 0 indicates \"infinity.\" If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollPDU";
+ }
+ leaf-list poll-byte {
+ type uint16 {
+ range "0 | 25 | 50 | 75 | 100 | 125 | 250 | 375 | 500 | 750 | 1000 | 1250 | 1500 | 2000 | 3000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a counter of PDU bytes transmitted between successive poll transmissions, specified in kilobytes. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to pollByte IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.2.1}}. Value of 0 indicates infinite amount of kilobytes. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollByte";
+ }
+ leaf-list max-retx-threshold {
+ type uint8 {
+ range "1..4 | 6 | 8 | 16 | 32";
+ }
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item defines the maximum number of transmission retry used by the RLC entity to limit the number of retransmissions of an AMD PDU. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to maxRetxThreshold IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.1}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.MaxRetxThreshold";
+ }
+ leaf-list t-reordering {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item defines a timer used by the receiving side of an RLC entity in order to detect loss of RLC PDUs at lower layer, specified in milliseconds, with a numeric range between 0 and 200 inclusive. Only the multiple of 5 are valid in the range between 0 and 100 inclusive (i.e. 0, 5, 10, 15,...,100), and only the multiple of 10 are valid in the range between 110 and 200 inclusive (110, 120, 130,...,200). If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to t-Reordering IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.1.2.2. and 5.1.3.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TReordering";
+ }
+ leaf-list t-status-prohibit {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item defines a timer used by the receiving side of an AM RLC entity in order to prohibit transmission of a STATUS PDU, specified in milliseconds, with a numeric range between 0 and 500 inclusive. Only the multiple of 5 are valid in the range between 0 and 250 inclusive (i.e. 0, 5, 10, 15,...,250), and only the multiple of 50 are valid in the range between 300 and 500 inclusive (i.e. 300, 350, 400, 450, 500). If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. This parameter is valid only if {{param|DefaultConfiguration}} paramter under the current object is set to {{false}}. Corresponds to t-StatusProhibit IE specified in {{bibref|3GPP-TS.36.331|Section 6.3.2}} and in {{bibref|3GPP-TS.36.322|Section 5.2.3}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TStatusProhibit";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+ }
+
+ grouping lte-ran-rrc-timers-g {
+ description
+ "This object contains parameters relating to the RRC timers and constants (see {{bibref|3GPP-TS.32.592|Section 6.1.6.1}}) and (see {{bibref|3GPP-TS.32.592|Section 6.1.6.2}}).";
+ leaf-list t300 {
+ type uint16 {
+ range "100 | 200 | 300 | 400 | 600 | 1000 | 1500 | 2000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is an interval, in milliseconds, between subsequent transmissions of RRCConnectionRequest. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t300 specified in UE-TimersAndConstants IE in {{bibref|3GPP-TS.36.331|Section 6.3.6}}. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T300";
+ }
+ leaf-list t301 {
+ type uint16 {
+ range "100 | 200 | 300 | 400 | 600 | 1000 | 1500 | 2000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is an interval, in milliseconds, between subsequent transmissions of RRCConnectionReestablishmentRequest. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t301 specified in UE-TimersAndConstants IE in {{bibref|3GPP-TS.36.331|Section 6.3.6}}. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T301";
+ }
+ leaf t302 {
+ type uint16 {
+ range "100 | 200 | 300 | 400 | 600 | 1000 | 1500 | 2000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Time to wait in {{units}} for cell re-selection or RRConnectionSetup after RRCConnectionReject. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T302";
+ }
+ leaf-list t304-eutra {
+ type uint16 {
+ range "50 | 100 | 150 | 200 | 500 | 1000 | 2000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a HO failure timer, in milliseconds. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to t304 defined within IE MobilityControlInfo in RRCConnectionReconfiguration message in {{bibref|3GPP-TS.36.331|Section 5.3.5.4 and Section 6.3.4}}. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304EUTRA";
+ }
+ leaf-list t304-irat {
+ type uint16 {
+ range "100 | 200 | 500 | 1000 | 2000 | 4000 | 8000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a HO failure timer, in milliseconds. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to t304 defined within IE CellChangeOrder in MobilityFromEUTRACommand message in {{bibref|3GPP-TS.36.331|Section 6.2.2}}. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304IRAT";
+ }
+ leaf-list t310 {
+ type uint16 {
+ range "0 | 50 | 100 | 200 | 500 | 1000 | 2000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a RLF declaration timer, in milliseconds. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t310 specified in RLF-TimersAndConstants IE in {{bibref|3GPP-TS.36.331|Section 6.3.6}}. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T310";
+ }
+ leaf-list t311 {
+ type uint16 {
+ range "1000 | 3000 | 5000 | 10000 | 15000 | 20000 | 30000";
+ }
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a RLF recovery timer, in milliseconds. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t311 specified in RLF-TimersAndConstants IE in {{bibref|3GPP-TS.36.331|Section 6.3.6}}. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T311";
+ }
+ leaf t320 {
+ type uint8 {
+ range "5 | 10 | 20 | 30 | 60 | 120 | 180";
+ }
+ units "minutes";
+ config false;
+ description
+ "Time in {{units}} after RRCConnection Release in which cell re-selection priority info supplied in RRCConnectionRelease MUST be observed. Start/stop/expirary condition is defined in {{bibref|3GPP-TS.36.331|Section 7.3}}. Corresponds to parameter t320 specified in RRCConnectionRelease message in {{bibref|3GPP-TS.36.331|Section 6.2.2}}. S";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T320";
+ }
+ leaf n310 {
+ type uint8 {
+ range "1..4 | 6 | 8 | 10 | 20";
+ }
+ config false;
+ description
+ "Number of consecutive \"out-of-sync\" indications received from lower layers that triggers timer T310. Corresponds to parameter n310 specified in UE-TimersAndConstants IE in {{bibref|3GPP-TS.36.331|Section 6.3.6 and Section 7.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N310";
+ }
+ leaf n311 {
+ type uint8 {
+ range "1..6 | 8 | 10";
+ }
+ config false;
+ description
+ "Number of consecutive \"in-sync\" indications received from lower layers that stops timer T310. Corresponds to parameter n311 specified in UE-TimersAndConstants IE in {{bibref|3GPP-TS.36.331|Section 6.3.6 and Section 7.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N311";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+ }
+
+ grouping lte-ran-cell-restriction-g {
+ description
+ "This object contains parameters relating to the cell restriction configuration.";
+ leaf cell-barred {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the is barred or not. If {{true}}, the cell is barred. If {{false}}, the cell is not barred. Corresponds to parameter CellBarred specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellBarred";
+ }
+ leaf cell-reserved-for-operator-use {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the is reserved for operator's use or not. If {{true}}, the cell is reserved for operator use. If {{false}}, the cell is not reserved for operator use. Corresponds to parameter cellReservedForOperatorUse specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellReservedForOperatorUse";
+ }
+ leaf barring-for-emergency {
+ type boolean;
+ config false;
+ description
+ "Indicates whether the is barred for Access Class 10 or not. If {{true}}, the cell is barred for Access Class 10. If {{false}}, the cell is not barred for Access Class 10. Corresponds to parameter ac-BarringForEmergency specified in SIB2 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.BarringForEmergency";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+ }
+
+ grouping lte-ran-mobility-g {
+ description
+ "This object contains parameters relating to the UE's mobility configuration. It covers both idle mode and connected mode.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-g {
+ description
+ "This object contains parameters relating to the UE's mobility while it is in idle mode (cell (re-)selection). Parameters under this object determines the content in the SIB (System Information Block) that is broadcast by LTE .";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-common-g {
+ description
+ "This object contains parameters relating to the idle mode mobility configuration that is common to all cell re-selection scenarios (intra/inter-freq, inter-RAT to UTRA (UMTS), GERAN (GSM) and CDMA2000) (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.1}}).";
+ leaf-list qhyst {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a hysteresis value applied to serving cell for evaluating cell ranking criteria specified in dB, with a numeric range between 0 and 24 inclusive. For the value greater than 6, only even numbers are valid. If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter q-Hyst specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.Qhyst";
+ }
+ leaf q-hyst-sf-medium {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Speed-dependent scaling factor for Qhyst in Medium-mobility state, specified in {{units}}. Corresponds to parameter q-HystSF:sf-Medium specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFMedium";
+ }
+ leaf q-hyst-sf-high {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Speed-dependent scaling factor for Qhyst in High-mobility state, specified in {{units}}. Corresponds to parameter q-HystSF:sf-High specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFHigh";
+ }
+ leaf t-evaluation {
+ type uint8 {
+ range "30 | 60 | 120 | 180 | 240";
+ }
+ units "seconds";
+ config false;
+ description
+ "Duration for evaluating allowed amount of cell re-selection(s) required to enter mobility states, specified in {{units}}. Corresponds to parameter t-Evaluation specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.4}} and to parameter TCRmax specified in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.TEvaluation";
+ }
+ leaf t-hyst-normal {
+ type uint8 {
+ range "30 | 60 | 120 | 180 | 240";
+ }
+ units "seconds";
+ config false;
+ description
+ "Additional duration for evaluating criteria to enter normal mobility state, specified in {{units}}. Specifies the additional time period for evaluating criteria to enter Normal-mobility state. Corresponds to parameter t-HystNormal specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.4}} and to parameter TCRmaxHyst specified in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.THystNormal";
+ }
+ leaf n-cell-change-medium {
+ type uint8 {
+ range "1..16";
+ }
+ config false;
+ description
+ "Defines the number of cell re-selections within TEvaluation to enter Medium-mobility state. Corresponds to parameter n-cellChangeMedium specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.4}} and to parameter NCR_M specified in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeMedium";
+ }
+ leaf n-cell-change-high {
+ type uint8 {
+ range "1..16";
+ }
+ config false;
+ description
+ "Defines the number of cell re-selections within TEvaluation to enter High-mobility state. Corresponds to parameter n-cellChangeHigh specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.4}} and to parameter NCR_H specified in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeHigh";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-intra-freq-g {
+ description
+ "This object contains parameters relating to the idle mode mobility configuration for intra-freq re-selection scenario (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.2}}).";
+ leaf-list q-rx-lev-min-sib1 {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a required minimum received RSRP level of a E-UTRA cell for cell selection, specified in dBm, with a numeric range between -70 and -22 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter q-rxLevMin in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}} and in {{bibref|3GPP-TS.36.304|Section 5.2.3.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB1";
+ }
+ leaf-list q-rx-lev-min-sib3 {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a required minimum received RSRP level for intra-frequency E-UTRA cell re-selection, specified in dBm, with a numeric range between -70 and -22 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter q-rxLevMin in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.3.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB3";
+ }
+ leaf q-rx-lev-min-offset {
+ type uint8 {
+ range "1..8";
+ }
+ units "dBm";
+ config false;
+ description
+ "Defines offset with respect to QrxLevMin, specified in {{units}}. This offset is taken into account in the computation of Srxlev for cell selection evaluation of cells detected during a periodic search for a higher priority PLMN while camped normally in a VPLMN. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter q-rxLevMinOffset in SIB1 specified in {{bibref|3GPP-TS.36.331|Section 6.2.2}} and in {{bibref|3GPP-TS.36.304|Section 5.2.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinOffset";
+ }
+ leaf-list s-intra-search {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a threshold for intra-frequency measurements, specified in dB, with a numeric range between 0 and 31 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter s-IntraSearch specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SIntraSearch";
+ }
+ leaf-list t-reselection-eutra {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a cell re-selection timer for intra-frequency E-UTRA cell re-selection, specified in seconds, with a numeric range between 0 and 7 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t-ReselectionEUTRA specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRA";
+ }
+ leaf-list s-non-intra-search {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a threshold for inter-frequency and inter-RAT measurements with lower or equal priority, specified in dB, with a numeric range between 0 and 31 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter s-NonIntraSearch specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SNonIntraSearch";
+ }
+ leaf cell-reselection-priority {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Absolute priority of the E-UTRAN serving carrier frequency used in the inter-frequency and inter-RAT cell re-selection procedure. Corresponds to parameter CellReselectionPriority specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.CellReselectionPriority";
+ }
+ leaf p-max {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Used to limit the allowed UE uplink transmission power on the serving frequency, specified in {{units}}. It is used to calculate the parameter Pcompensation defined in {{bibref|3GPP-TS.36.304|Section 5.2.3.2}}. Corresponds to parameter p-Max specified in SIB1 and SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1 and Section 6.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.PMax";
+ }
+ leaf thresh-serving-low {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold for serving frequency used in evaluation of re-selection towards lower priority E-UTRAN frequency or inter-RAT, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshServingLow specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.ThreshServingLow";
+ }
+ leaf t-reselection-eutrasf-medium {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for intra-frequency TreselectionEUTRA in Medium-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionEUTRA-SF:sf-Medium specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFMedium";
+ }
+ leaf t-reselection-eutrasf-high {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for intra-frequency TreselectionEUTRA in High-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionEUTRA-SF:sf-High specified in SIB3 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFHigh";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-inter-freq-g {
+ description
+ "This object contains parameters relating to the idle mode mobility configuration for inter-freq re-selection scenario .";
+ leaf max-carrier-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.MaxCarrierEntries";
+ }
+ leaf carrier-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.CarrierNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-inter-freq-carrier-g {
+ description
+ "This object contains parameters relating to the carrier information for inter-freq re-selection scenario (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.3}}).";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Alias";
+ }
+ leaf eutra-carrier-arfcn {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Indicates the ARFCN of this frequency carrier. Corresponds to parameter dl-CarrierFreq in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.EUTRACarrierARFCN";
+ }
+ leaf-list q-rx-lev-min-sib5 {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a required minimum received RSRP level on this E-UTRA frequency carrier, spcified in dBm, with a numeric range between -70 and -22 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter q-rxLevMin in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.3.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QRxLevMinSIB5";
+ }
+ leaf-list q-offset-freq {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is an offset applicable between serving and this frequency carrier, specified in dBm, with a numeric range between -24 and 24 inclusive. For values less than or equal to -6, or values greater than or equal to 6, only the even values are valid. If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter q-OffsetFreq in SIB5 specified in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.4.2.6}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QOffsetFreq";
+ }
+ leaf-list t-reselection-eutra {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a cell re-selection timer for inter-frequency cell re-selection to this E-UTRA frequency carrier, specified in seconds, with a numeric range between 0 and 7 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t-ReselectionEUTRA specified in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRA";
+ }
+ leaf cell-reselection-priority {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Absolute priority of this E-UTRA frequency carrier, as used by the inter-frequency cell re-selection procedure. Corresponds to parameter CellReselectionPriority specified in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.CellReselectionPriority";
+ }
+ leaf thresh-x-high {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting from a lower priority E-UTRAN frequency, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-High specified in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXHigh";
+ }
+ leaf thresh-x-low {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting from a higher priority E-UTRAN frequency, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-Low specified in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXLow";
+ }
+ leaf p-max {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Used to limit the allowed UE uplink transmission power on this carrier frequency, specified in {{units}}. It is used to calculate the parameter Pcompensation defined in {{bibref|3GPP-TS.36.304|Section 5.2.3.2}}. Corresponds to parameter p-Max specified in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.PMax";
+ }
+ leaf t-reselection-eutrasf-medium {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TreselectionEUTRA for inter-frequency re-selection to this frequency carrier in Medium-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionEUTRA-SF:sf-Medium specified in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFMedium";
+ }
+ leaf t-reselection-eutrasf-high {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TreselectionEUTRA for inter-frequency re-selection to this frequency carrier in High-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionEUTRA-SF:sf-High specified in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFHigh";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-irat-g {
+ description
+ "This object contains parameters relating to the idle mode mobility configuration for inter-RAT (Radio Access Technology) re-selection scenario.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-irat-utra-g {
+ description
+ "This object contains parameters relating to the idle mode mobility configuration for inter-RAT (Radio Access Technology) re-selection, specifically for re-selection to UTRA (UMTS) scenario (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.4}}).";
+ leaf-list t-reselection-utra {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a cell re-selection timer for re-selection to a UTRA frequency carrier, specified in seconds, with a numeric range between 0 and 7 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t-ReselectionUTRA specified in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRA";
+ }
+ leaf t-reselection-utrasf-medium {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TreselectionUTRA for inter-RAT re-selection to UTRA in Medium-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionUTRA-SF:sf-Medium specified in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFMedium";
+ }
+ leaf t-reselection-utrasf-high {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TreselectionEUTRA for inter-frequency re-selection to this frequency carrier in High-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionUTRA-SF:sf-High specified in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFHigh";
+ }
+ leaf max-utranfdd-freq-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.MaxUTRANFDDFreqEntries";
+ }
+ leaf utranfdd-freq-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreqNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-irat-utra-utranfdd-freq-g {
+ description
+ "This object contains parameters relating to the channel frequncy related information of UTRA (UMTS) system (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.5, 6.1.5.1.6}}).";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Alias";
+ }
+ leaf utra-carrier-arfcn {
+ type uint16 {
+ range "0..16383";
+ }
+ description
+ "Indicates the ARFCN of the frequency carrier. Corresponds to parameter CarrierFreq in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.UTRACarrierARFCN";
+ }
+ leaf-list q-rx-lev-min {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a required minimum received RSCP level on this UTRA frequency carrier, specified in dBm, with a numeric range between -60 and -13 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2 + 1) yields the actual value. Corresponds to parameter q-RxLevMin in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.25.304|Section 5.2.3.1.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QRxLevMin";
+ }
+ leaf-list q-qual-min {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a required minimum received Ec/Io level on this UTRA FDD carrier, specified in dB, with a numeric range between -24 and 0 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter q-QualMin in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.25.304|Section 5.2.3.1.2}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QQualMin";
+ }
+ leaf cell-reselection-priority {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Absolute priority of this UTRA FDD frequency carrier, as used by the inter-frequency cell re-selection procedure. Corresponds to parameter CellReselectionPriority specified in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.CellReselectionPriority";
+ }
+ leaf thresh-x-high {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting towards a higher priority UTRA FDD frequency, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-High specified in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXHigh";
+ }
+ leaf thresh-x-low {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting towards a lower priority UTRA FDD frequency, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-Low specified in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXLow";
+ }
+ leaf p-max-utra {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Used to limit the allowed UE uplink transmission power on this UTRA FDD carrier frequency, specified in {{units}}. It is used to calculate the parameter Pcompensation defined in {{bibref|3GPP-TS.25.304|Section 5.2.3.1.2}}. Corresponds to parameter p-MaxUTRA specified in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.PMaxUTRA";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-irat-geran-g {
+ description
+ "This object contains parameters relating to the idle mode mobility configuration for inter-RAT (Radio Access Technology) re-selection, specifically for re-selection to GERAN (GSM) scenario (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.6}}).";
+ leaf-list t-reselection-geran {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a cell re-selection timer for re-selection to a GERAN frequency carrier, specified in seconds, with a numeric range between 0 and 7 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t-ReselectionGERAN specified in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and to TreselectionGERA in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERAN";
+ }
+ leaf t-reselection-geransf-medium {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TreselectionGERAN for inter-RAT re-selection to GERAN in Medium-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionGERAN-SF:sf-Medium specified in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFMedium";
+ }
+ leaf t-reselection-geransf-high {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TreselectionGERAN for inter-RAT re-selection to GERAN in High-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionGERAN-SF:sf-High specified in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFHigh";
+ }
+ leaf max-geran-freq-group-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.MaxGERANFreqGroupEntries";
+ }
+ leaf geran-freq-group-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroupNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-irat-geran-geran-freq-group-g {
+ description
+ "This object contains parameters relating to the channel frequncy related information of GERAN (GSM) system (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.7}}).";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Alias";
+ }
+ leaf band-indicator {
+ type enumeration {
+ enum "gsm850" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator - GSM850";
+ }
+ enum "gsm900" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator - GSM900";
+ }
+ enum "dcs1800" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator - DCS1800";
+ }
+ enum "pcs1900" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator - PCS1900";
+ }
+ }
+ config false;
+ description
+ "Indicates how to interpret the BCCH ARFCN. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator";
+ }
+ leaf bccharfcn {
+ type uint16 {
+ range "0..1023";
+ }
+ description
+ "ARFCN of this cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BCCHARFCN";
+ }
+ leaf-list q-rx-lev-min {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is a required minimum received RSSI level on this GERAN frequency carrier for re-selection to this UTRA FDD carrier, specified in dBm, with a numeric range between 0 and 63 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. The value of ({{param}} * 2 - 115) yields the actual value. Corresponds to parameter q-rxLevMin in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and to RXLEV_ACCESS_MIN in {{bibref|3GPP-TS.45.008}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.QRxLevMin";
+ }
+ leaf cell-reselection-priority {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Absolute priority of this GERAN frequency group, as used by the inter-frequency cell re-selection procedure. Corresponds to parameter CellReselectionPriority specified in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.CellReselectionPriority";
+ }
+ leaf thresh-x-high {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting towards a higher priority GERAN frequency group than current serving E-UTRA frequency, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-High specified in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXHigh";
+ }
+ leaf thresh-x-low {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting towards a lower priority GERAN frequency group than current serving E-UTRA frequency, specified in {{units}} dB. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-Low specified in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXLow";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-irat-cdma2000-g {
+ description
+ "This object contains parameters relating to the idle mode mobility configuration for inter-RAT (Radio Access Technology) re-selection, specifically for re-selection to CDMA2000 system scenario (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.8}}).";
+ leaf-list search-window-size {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a CDMA2000 parameter affecting the search for neighbouring pilots, with a numeric range between 0 and 15 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter searchWindowSize in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP2-C.S0005-A|Table 2.6.6.2.1-1}} and {{bibref|3GPP2-C.S0024-A|Table 8.7.6.2-4}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.SearchWindowSize";
+ }
+ leaf-list t-reselection-cdma2000 {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "32";
+ description
+ "{{list}} Each item is a cell re-selection timer for a CDMA2000 band, specified in seconds, with a numeric range between 0 and 7 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter t-ReselectionCDMA2000 specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and to TreselectionCDMA_HRPD or TreselectionCDMA_1xRTT in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000";
+ }
+ leaf t-reselection-cdma2000-sf-medium {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TReselectionCDMA2000 for inter-RAT re-selection to CDMA2000 in Medium-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionCDMA2000-SF:sf-Medium specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFMedium";
+ }
+ leaf t-reselection-cdma2000-sf-high {
+ type uint8 {
+ range "25 | 50 | 75 | 100";
+ }
+ config false;
+ description
+ "Scaling factor for TReselectionCDMA2000 for inter-RAT re-selection to CDMA2000 in High-mobility state. The value of {{param}} divided by 100 yields the actual SF value. Corresponds to parameter t-ReselectionCDMA2000-SF:sf-High specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFHigh";
+ }
+ leaf max-cdma2000-band-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.MaxCDMA2000BandEntries";
+ }
+ leaf cdma2000-band-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000BandNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+ }
+
+ grouping lte-ran-mobility-idle-mode-irat-cdma2000-cdma2000-band-g {
+ description
+ "This object contains parameters relating to the channel frequncy related information of CDMA2000 system (see {{bibref|3GPP-TS.32.592|Section 6.1.5.1.8}}).";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Alias";
+ }
+ leaf band-class {
+ type uint8 {
+ range "0..17";
+ }
+ units "bandclass number";
+ description
+ "Defines the CDMA2000 band in which the CDMA2000 carrier frequency can be found, specified in {{units}}. BandClass is defined in 3GPP2 C.S0057-B Table 1.5-1. Corresponds to parameter bandClass specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.BandClass";
+ }
+ leaf cell-reselection-priority {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Absolute priority of this CDMA2000 band used by the inter-frequency cell re-selection procedure. Corresponds to parameter CellReselectionPriority specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.7}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.CellReselectionPriority";
+ }
+ leaf thresh-x-high {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting towards a higher priority CDMA2000 band than current serving E-UTRA frequency, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-High specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXHigh";
+ }
+ leaf thresh-x-low {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "Threshold used when re-selecting towards a lower priority CDMA2000 band than current serving E-UTRA frequency, specified in {{units}}. The value of ({{param}} * 2) yields the actual value. Corresponds to parameter threshX-Low specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}} and in {{bibref|3GPP-TS.36.304|Section 5.2.4.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXLow";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+ }
+
+ grouping lte-ran-mobility-conn-mode-g {
+ description
+ "This object contains parameters relating to the UE's mobility while it is in connected mode (handover). Parameters under this object determines the content in the SIB (System Information Block) that is broadcast by LTE .";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.";
+ }
+
+ grouping lte-ran-mobility-conn-mode-eutra-g {
+ description
+ "This object contains parameters relating to the connected mode mobility (handover) configuration within LTE system (see {{bibref|3GPP-TS.32.592|Section 6.1.5.2.1}}).";
+ leaf-list filter-coefficient-rsrp {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a filtering coefficient used for RSRP measurements, with a numeric range between 0 and 19 inclusive. For values greater than 9, only odd values are valid. If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to filterCoefficientRSRP parameter specified in QuantityConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRP";
+ }
+ leaf-list filter-coefficient-rsrq {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a filtering coefficient used for RSRQ measurements, with a numeric range between 0 and 19 inclusive. For values greater than 9, only odd values are valid. If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to filterCoefficientRSRQ parameter specified in QuantityConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRQ";
+ }
+ leaf a1-threshold-rsrp {
+ type uint8 {
+ range "0..97";
+ }
+ config false;
+ description
+ "Threshold to be used in EUTRA measurement report triggering condition for event A1. Valid only if {{param|TriggerQuantity}} is {{enum|RSRP|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133|Table 9.1.4-1}}. Corresponds to parameter a1-Threshold:threshold-RSRP specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRP";
+ }
+ leaf a1-threshold-rsrq {
+ type uint8 {
+ range "0..34";
+ }
+ config false;
+ description
+ "Threshold to be used in EUTRA measurement report triggering condition for event A1. Valid only if {{param|TriggerQuantity}} is {{enum|RSRQ|TriggerQuantity}}. Mapping to actual values is specified in 3GPP TS 36.133}} table 9.1.7-1. Corresponds to parameter a1-Threshold:threshold-RSRQ specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRQ";
+ }
+ leaf a2-threshold-rsrp {
+ type uint8 {
+ range "0..97";
+ }
+ config false;
+ description
+ "Threshold to be used in EUTRA measurement report triggering condition for event A2. Valid only if {{param|TriggerQuantity}} is {{enum|RSRP|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133|Table 9.1.4-1}}. Corresponds to parameter a2-Threshold:threshold-RSRP specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRP";
+ }
+ leaf a2-threshold-rsrq {
+ type uint8 {
+ range "0..34";
+ }
+ config false;
+ description
+ "Threshold to be used in EUTRA measurement report triggering condition for event A2. Valid only if {{param|TriggerQuantity}} is {{enum|RSRQ|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133|Table 9.1.7-1}}. Corresponds to parameter a2-Threshold:threshold-RSRQ specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRQ";
+ }
+ leaf-list a3-offset {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "256";
+ description
+ "{{list}} Each item is an offset to be used in evaluation of EUTRA measurement report triggering condition for event A3, with a numeric range between -30 and 30 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133}}. Corresponds to parameter a3-Offset specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A3Offset";
+ }
+ leaf report-on-leave {
+ type boolean;
+ config false;
+ description
+ "Indicates whether or not the UE shall initiate the measurement reporting procedure when the leaving condition is met for event A3 for a cell in cellsTriggeredList, as specified in {{bibref|3GPP-TS.36.331|Section 5.5.4.1 and Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportOnLeave";
+ }
+ leaf a4-threshold-rsrp {
+ type uint8 {
+ range "0..97";
+ }
+ config false;
+ description
+ "Threshold to be used in EUTRA measurement report triggering condition for event A4. Valid only if {{param|TriggerQuantity}} is {{enum|RSRP|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133}}. Corresponds to parameter a4-Threshold:threshold-RSRP specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRP";
+ }
+ leaf a4-threshold-rsrq {
+ type uint8 {
+ range "0..34";
+ }
+ config false;
+ description
+ "Threshold to be used in EUTRA measurement report triggering condition for event A4. Valid only if {{param|TriggerQuantity}} is {{enum|RSRQ|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133}}. Corresponds to parameter a4-Threshold:threshold-RSRQ specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRQ";
+ }
+ leaf a5-threshold1-rsrp {
+ type uint8 {
+ range "0..97";
+ }
+ config false;
+ description
+ "Threshold1 to be used in EUTRA measurement report triggering condition for event A5. Valid only if {{param|TriggerQuantity}} is {{enum|RSRP|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133}}. Corresponds to parameter a5-Threshold1:threshold-RSRP specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRP";
+ }
+ leaf a5-threshold1-rsrq {
+ type uint8 {
+ range "0..34";
+ }
+ config false;
+ description
+ "Threshold1 to be used in EUTRA measurement report triggering condition for event A5. Valid only if {{param|TriggerQuantity}} is {{enum|RSRQ|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133}}. Corresponds to parameter a5-Threshold1:threshold-RSRQ specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRQ";
+ }
+ leaf a5-threshold2-rsrp {
+ type uint8 {
+ range "0..97";
+ }
+ config false;
+ description
+ "Threshold2 to be used in EUTRA measurement report triggering condition for event A5. Valid only if {{param|TriggerQuantity}} is {{enum|RSRP|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133}}. Corresponds to parameter a5-Threshold2:threshold-RSRP specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRP";
+ }
+ leaf a5-threshold2-rsrq {
+ type uint8 {
+ range "0..34";
+ }
+ config false;
+ description
+ "Threshold2 to be used in EUTRA measurement report triggering condition for event A5. Valid only if {{param|TriggerQuantity}} is {{enum|RSRQ|TriggerQuantity}}. Mapping to actual values is specified in {{bibref|3GPP-TS.36.133}}. Corresponds to parameter a5-Threshold2:threshold-RSRQ specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRQ";
+ }
+ leaf-list hysteresis {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a hysteresis value applied to entry and leave condition of a report triggering event, with a numeric range between 0 and 30 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter hysteresis specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.Hysteresis";
+ }
+ leaf-list time-to-trigger {
+ type uint16 {
+ range "0 | 40 | 64 | 80 | 100 | 128 | 160 | 256 | 320 | 480 | 512 | 640 | 1024 | 1280 | 2560 | 5120";
+ }
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a time period during which measurement report triggering condition needs to be met in order to trigger a measurement report, specified in milliseconds. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter timeToTrigger specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TimeToTrigger";
+ }
+ leaf trigger-quantity {
+ type enumeration {
+ enum "rsrp" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TriggerQuantity - RSRP";
+ }
+ enum "rsrq" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TriggerQuantity - RSRQ";
+ }
+ }
+ config false;
+ description
+ "Quantities used to evaluate a measurement report triggering condition. Corresponds to parameter triggerQuantity specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TriggerQuantity";
+ }
+ leaf report-quantity {
+ type enumeration {
+ enum "same-as-trigger-quantity" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportQuantity - SameAsTriggerQuantity";
+ }
+ enum "both" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportQuantity - Both";
+ }
+ }
+ config false;
+ description
+ "Measrument quantities to be included in the measurement report. Corresponds to parameter reportQuantity specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The value {{enum|Both}} specifies that both the RSRP and RSRQ quantities are to be included in the measurement report.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportQuantity";
+ }
+ leaf max-report-cells {
+ type uint8 {
+ range "1..8";
+ }
+ description
+ "Maximum number of cells that can be included in a measurement report. Corresponds to parameter maxReportCells specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.MaxReportCells";
+ }
+ leaf report-interval {
+ type uint32 {
+ range "120 | 240 | 480 | 640 | 1024 | 2048 | 5120 | 10240 | 60000 | 360000 | 720000 | 1800000 | 3600000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Interval between successive measurement reports, specified in {{units}}. Corresponds to parameter reportInterval specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportInterval";
+ }
+ leaf report-amount {
+ type uint8 {
+ range "0..2 | 4 | 8 | 16 | 32 | 64";
+ }
+ config false;
+ description
+ "Number of times a measurement report is sent. Corresponds to parameter reportAmount specified in ReportConfigEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. Value of 0 indicates \"infinity.\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportAmount";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+ }
+
+ grouping lte-ran-mobility-conn-mode-irat-g {
+ description
+ "This object contains parameters relating to the connected mode mobility (handover) configuration that is common to all inter-RAT handover scenarios (UTRA (UMTS), GERAN (GSM) and CDMA2000) (see {{bibref|3GPP-TS.32.592|Section 6.1.5.2.2}}).";
+ leaf-list qoffsett-utra {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a UTRA-specific offset to be applied when evaluating triggering conditions for measurement reporting in connected mode, with a numeric range between -15 and 15 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter offsetFreq included in the IE MeasObjectUTRA specified in {{bibref|3GPP-TS.36.331}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsettUTRA";
+ }
+ leaf-list filter-coefficient-utra {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a filtering coefficient used for UTRA measurements, with a numeric range between 0 and 19 inclusive. For values greater than 9, only odd values are valid. If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to filterCoefficient parameter specified in QuantityConfigUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientUTRA";
+ }
+ leaf meas-quantity-utrafdd {
+ type enumeration {
+ enum "cpich-rscp" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityUTRAFDD - CPICH-RSCP";
+ }
+ enum "cpich-ec-n0" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityUTRAFDD - CPICH-EcN0";
+ }
+ }
+ config false;
+ description
+ "Measurement quantity used for UTRA measurements. Corresponds to measQuantityUTRA-FDD parameter specified in QuantityConfigUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityUTRAFDD";
+ }
+ leaf b1-threshold-utrarscp {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "RSCP threshold to be used in UTRA measurement report triggering condition for event B1. Mapping to actual {{units}} values is specified in 3GPP TS 25.133}}. Corresponds to parameter b1-ThresholdUTRA:utra-RSCP specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRARSCP";
+ }
+ leaf b1-threshold-utra-ec-n0 {
+ type uint8 {
+ range "0..49";
+ }
+ units "dBm";
+ config false;
+ description
+ "EcNo threshold to be used in UTRA measurement report triggering condition for event B1. Mapping to actual {{units}} values is specified in 3GPP TS 25.133}}. Corresponds to parameter b1-ThresholdUTRA:utra-EcNo specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRAEcN0";
+ }
+ leaf-list qoffset-geran {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a GERAN-specific offset to be applied when evaluating triggering conditions for measurement reporting in connected mode, with a numeric range between -15 and 15 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter offsetFreq included in the IE MeasObjectGERAN specified in {{bibref|3GPP-TS.36.331}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetGERAN";
+ }
+ leaf-list filter-coefficient-geran {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "64";
+ description
+ "{{list}} Each item is a filtering coefficient used for GERAN measurements, with a numeric range between 0 and 19 inclusive. For values greater than 9, only odd values are valid. If the value is other than these, the CPE MUST reject the value. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to filterCoefficient parameter specified in QuantityConfigGERAN IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientGERAN";
+ }
+ leaf b1-threshold-geran {
+ type uint8 {
+ range "0..63";
+ }
+ units "dBm";
+ config false;
+ description
+ "Threshold to be used in GERAN measurement report triggering condition for event B1. Mapping to actual {{units}} values is specified in 3GPP TS 45.008}}. Corresponds to parameter b1-ThresholdGERAN specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdGERAN";
+ }
+ leaf-list qoffset-cdma2000 {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a CDMA2000-specific offset to be applied when evaluating triggering conditions for measurement reporting in connected mode, with a numeric range between -15 and 15 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter offsetFreq included in the IE MeasObjectCDMA2000 specified in {{bibref|3GPP-TS.36.331}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetCDMA2000";
+ }
+ leaf meas-quantity-cdma2000 {
+ type enumeration {
+ enum "pilot-strength" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityCDMA2000 - PilotStrength";
+ }
+ enum "pilot-pn-phase-and-pilot-strength" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityCDMA2000 - PilotPnPhaseAndPilotStrength";
+ }
+ }
+ config false;
+ description
+ "Measurement quantity used for CDMA2000 measurements. Corresponds to measQuantityCDMA2000 parameter specified in QuantityConfigCDMA2000 IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityCDMA2000";
+ }
+ leaf b1-threshold-cdma2000 {
+ type uint8 {
+ range "0..63";
+ }
+ units "dBm";
+ config false;
+ description
+ "Threshold to be used in CDMA2000 measurement report triggering condition for event B1. Mapping to actual {{units}} values is specified in {{bibref|3GPP-TS.45.008}}. Corresponds to parameter b1-ThresholdCDMA2000 specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdCDMA2000";
+ }
+ leaf b2-threshold2-utrarscp {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "RSCP threshold to be used in UTRA measurement report triggering condition for event B2. Mapping to actual {{units}} values is specified in {{bibref|3GPP-TS.25.133}}. Corresponds to parameter b2-Threshold2UTRA:utra-RSCP specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRARSCP";
+ }
+ leaf b2-threshold2-utra-ec-n0 {
+ type uint8 {
+ range "0..49";
+ }
+ units "dBm";
+ config false;
+ description
+ "EcNo threshold to be used in UTRA measurement report triggering condition for event B2. Mapping to actual {{units}} values is specified in 3GPP TS 25.133}}. Corresponds to parameter b2-Threshold2UTRA:utra-EcNo specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRAEcN0";
+ }
+ leaf b2-threshold2-geran {
+ type uint8 {
+ range "0..63";
+ }
+ units "dBm";
+ config false;
+ description
+ "Threshold to be used in GERAN measurement report triggering condition for event B2. Mapping to actual {{units}} values is specified in 3GPP TS 45.008}}. Corresponds to parameter b2-Threshold2GERAN specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2GERAN";
+ }
+ leaf b2-threshold2-cdma2000 {
+ type uint8 {
+ range "0..63";
+ }
+ units "dBm";
+ config false;
+ description
+ "Threshold to be used in CDMA2000 measurement report triggering condition for event B2. Mapping to actual {{units}} values is specified in 3GPP TS 45.008}}. Corresponds to parameter b2-Threshold2CDMA2000 specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2CDMA2000";
+ }
+ leaf-list hysteresis {
+ type string;
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a hysteresis value applied to entry and leave condition of an IRAT report triggering event, with a numeric range between 0 and 30 inclusive. In case there is more than one item in the list, the first item contains the most preferred value. Corresponds to parameter hysteresis specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. The multiplicity of the {{param}} values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. If this notation is used, then the list contains at least 2 items: \"<preferred-value>,<lower-bound>..<upper-bound>\". If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.Hysteresis";
+ }
+ leaf-list time-to-trigger {
+ type uint16 {
+ range "0 | 40 | 64 | 80 | 100 | 128 | 160 | 256 | 320 | 480 | 512 | 640 | 1024 | 1280 | 2560 | 5120";
+ }
+ config false;
+ min-elements 1;
+ max-elements "128";
+ description
+ "{{list}} Each item is a time period during which IRAT measurement report triggering condition needs to be met in order to trigger IRAT measurement report, specified in milliseconds. In case there is more than one item in the list, the first item contains the most preferred value.. Corresponds to parameter timeToTrigger specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. If supports self-configuration capability for {{param}} and more than one item is configured, then is expected to select one from the list and overwrite this parameter containing only the one selected. If does not support self-configuration capability for {{param}} and more than one item is configured, then accepts the first value and ignore the rest. If only one item is configured regardless of the self-configuration capability of , accepts the value as an explicit configuration by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.TimeToTrigger";
+ }
+ leaf max-report-cells {
+ type uint8 {
+ range "1..8";
+ }
+ description
+ "Maximum number of IRAT cells that can be included in a measurement report. Corresponds to parameter maxReportCells specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MaxReportCells";
+ }
+ leaf report-interval {
+ type uint32 {
+ range "120 | 240 | 480 | 640 | 1024 | 2048 | 5120 | 10240 | 60000 | 360000 | 720000 | 1800000 | 3600000";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Interval between successive IRAT measurement reports, specified in {{units}}. Corresponds to parameter reportInterval specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportInterval";
+ }
+ leaf report-amount {
+ type uint8 {
+ range "0..2 | 4 | 8 | 16 | 32 | 64";
+ }
+ config false;
+ description
+ "Number of times an IRAT measurement report is sent. Corresponds to parameter reportAmount specified in ReportConfigInterRAT IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. Value of 0 indicates \"infinity.\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportAmount";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+ }
+
+ grouping lte-ran-neighbor-list-g {
+ description
+ "This object contains parameters relating to the neighbor list.";
+ leaf max-lte-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.MaxLTECellEntries";
+ }
+ leaf lte-cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECellNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+ }
+
+ grouping lte-ran-neighbor-list-lte-cell-g {
+ description
+ "Table containing the E-UTRA (i.e. intra-RAT) cell list provided by the ACS. The table contents MAY be added/deleted/modified during operation, in which case these changes shall be reflected in the broadcast information as soon as possible.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Alias";
+ }
+ leaf must-include {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this instance of the neighbor shall be included or excluded in the FAP's NL configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.MustInclude";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PLMNID";
+ }
+ leaf cid {
+ type uint32 {
+ range "0..268435455";
+ }
+ description
+ "Cell Identity. {{bibref|3GPP-TS.36.331|Section 6.3.4}}. Combination of {{param|PLMNID}} and {{param}} constitutes the Cell Global ID (CGI).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CID";
+ }
+ leaf eutra-carrier-arfcn {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Indicates the ARFCN of this carrier frequency. Corresponds to parameter dl-CarrierFreq in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}, and and parameter NDL in {{bibref|3GPP-TS.36.101|Section 5.7.3}}. If the value of {{param}} is the same with the one currently being used by the, then it implies that this neighbor cell is an intra-frequency cell; otherwise, it is an inter-frequency cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.EUTRACarrierARFCN";
+ }
+ leaf phy-cell-id {
+ type uint16 {
+ range "0..503";
+ }
+ config false;
+ description
+ "Physical cell ID, as specified in {{bibref|3GPP-TS.36.211|Section 6.11}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PhyCellID";
+ }
+ leaf q-offset {
+ type int64;
+ config false;
+ description
+ "Indicate a cell-specific offset applicable to a specific neighbouring cell. It is used for evaluating the cell as a candidate for cell re-selection in idle mode. Corresponds to parameter q-OffsetCell broadcast in SIB4 for intra-frequency cells and in SIB5 for inter-frequency cells, specified in {{bibref|3GPP-TS.36.331|Section 6.3.1}}. For the value less than or equal to -8, and bigger than or equal to 8, only even numbers are valid. If the value is other than these, the CPE MUST reject the value.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.QOffset";
+ }
+ leaf cio {
+ type int64;
+ config false;
+ description
+ "Cell individual offset applicable to a specific neighbouring cell. It is used for evaluating triggering conditions for measurement reporting in connected mode. Specified by cellIndividualOffset in MeasObjectEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}. For the value less than or equal to -8, and bigger than or equal to 8, only even numbers are valid. If the value is other than these, the CPE MUST reject the value.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CIO";
+ }
+ leaf rs-tx-power {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "The downlink reference-signal transmit power, specified in {{units}}. Defined as the linear average over the power contributions (in W) of all resource elements that carry cell-specific reference signals within the operating system bandwidth. Corresponds to parameter referenceSignalPower in SIB4 as a part of PDSCH-Config IE in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.RSTxPower";
+ }
+ leaf blacklisted {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this neighbor cell is allowed for UEs as handover target or not. If {{true}}, handover is prohibited towards this cell. If {{false}}, handover is allowed toward this cell. The {{param}} parameter allows this cell to be prohibited as a handover target, while still allowing this cell to be included in the BCCH SIB4 or 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Blacklisted";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+ }
+
+ grouping lte-ran-neighbor-list-inter-rat-cell-g {
+ description
+ "The inter-RAT cell lists separated by technology. {{bibref|3GPP-TS.36.331|Section 6.3.1 (SIB6, 7, 8)}}.";
+ leaf max-umts-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.}} table. There can be maximum of 16 UTRAN (UMTS) neighbor cells, as specified by carrierFreqListUTRA-FDD in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxUMTSEntries";
+ }
+ leaf max-gsm-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.}} table. There can be maximum of 16 GERAN (GSM) neighbor cells, as specified by carrierFreqsInfoList in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+ }
+ leaf max-cdma2000-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.}} table. There can be maximum of 32 bandclasses. In each bandclass, there can be maximum of 16 CDMA2000 carrier frequencies. In each carrier, there can be maximum of 16 CDMA2000 neighbor cells (PN offset). It is specified by neighCellList in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxCDMA2000Entries";
+ }
+ leaf umts-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTSNumberOfEntries";
+ }
+ leaf gsm-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+ }
+ leaf cdma2000-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000NumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+ }
+
+ grouping lte-ran-neighbor-list-inter-rat-cell-umts-g {
+ description
+ "Table containing the inter-RAT cell list for UTRA (UMTS) provided by the ACS. The table contents MAY be added/deleted/modified during operation, in which case these changes shall be reflected in the broadcast information as soon as possible.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Alias";
+ }
+ leaf must-include {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this instance of the neighbor shall be included or excluded in the FAP's NL configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.MustInclude";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PLMNID";
+ }
+ leaf rncid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "RNC-ID of an intra-RAT UMTS neighbor cell. It uniquely identifies an RNC within a PLMN. Normally, RNC-ID consists of 12 bits (i.e. a range of [0:4095]). However, if the value is larger than 4095, then Extended RNC-ID (range of [4096:65535]) is used in RANAP. The RNC-ID and Extended RNC-ID are combined into a single parameter here as there is no explicit need to have them separated. {{bibref|3GPP-TS.25.413|Section 9.2.1.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RNCID";
+ }
+ leaf cid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Cell Identifier (C-id) that identifies a cell within an RNS. This Cell Identifier together with the controlling RNC (RNC-ID) constitutes the UTRAN Cell ID (UC-ID) and is used to identify a cell uniquely within UTRAN. C-ID is either 12-bit or 16-bit value. {{bibref|3GPP-TS.25.401|Section 6.1.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.CID";
+ }
+ leaf lac {
+ type uint16 {
+ range "1..65533 | 65535";
+ }
+ config false;
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "Routing Area Code (RAC). The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RAC";
+ }
+ leaf ura {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "UTRAN Registration Area (URA) {{bibref|3GPP-TS.23.401}}. Indicates to the UE which {{param}} it shall use in case of overlapping URAs. {{bibref|3GPP-TS.25.331|Section 10.3.2.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.URA";
+ }
+ leaf uarfcnul {
+ type uint16 {
+ range "0..16383";
+ }
+ config false;
+ description
+ "The UL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNUL";
+ }
+ leaf uarfcndl {
+ type uint16 {
+ range "0..16383";
+ }
+ config false;
+ description
+ "The DL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNDL";
+ }
+ leaf pcpich-scrambling-code {
+ type uint16 {
+ range "0..511";
+ }
+ config false;
+ description
+ "Primary CPICH scrambling code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+ }
+ leaf pcpich-tx-power {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "Primary CPICH Tx power in {{units}}. Actual values of the power are -10.0 {{units}} to 50.0 {{units}} in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the power. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.433|Section 2.2.33}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHTxPower";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+ }
+
+ grouping lte-ran-neighbor-list-inter-rat-cell-gsm-g {
+ description
+ "Table containing the inter-RAT cell list for GERAN (GSM) provided by the ACS. The table contents MAY be added/deleted/modified during operation, in which case these changes shall be reflected in the broadcast information as soon as possible.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+ }
+ leaf must-include {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this instance of the neighbor shall be included or excluded in the FAP's NL configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+ }
+ leaf lac {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+ }
+ leaf bsic {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "BSIC of the cell per {{bibref|3GPP-TS.23.003}}, consisting of: :Bit 7:6 - not used (\"00\") :Bit 5:3 - NCC (PLMN Color Code) :Bit 2:0 - BCC (BS color code) For example, if NCC is 7 and BCC is 2 you would have 00111010 (binary) or 0x3A (hex), and the value of this parameter would be 58.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+ }
+ leaf ci {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Cell ID of the cell per {{bibref|3GPP-TS.23.003|Section 4.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+ }
+ leaf band-indicator {
+ type enumeration {
+ enum "gsm850" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - GSM850";
+ }
+ enum "gsm900" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - GSM900";
+ }
+ enum "dcs1800" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - DCS1800";
+ }
+ enum "pcs1900" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator - PCS1900";
+ }
+ }
+ config false;
+ description
+ "Indicates how to interpret the BCCH ARFCN. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+ }
+ leaf bccharfcn {
+ type uint16 {
+ range "0..1023";
+ }
+ config false;
+ description
+ "ARFCN of this cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+ }
+
+ grouping lte-ran-neighbor-list-inter-rat-cell-cdma2000-g {
+ description
+ "Table containing the inter-RAT cell list for CDMA2000 provided by the ACS. The table contents MAY be added/deleted/modified during operation, in which case these changes shall be reflected in the broadcast information as soon as possible.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables this entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Alias";
+ }
+ leaf must-include {
+ type boolean;
+ config false;
+ description
+ "Indicates whether this instance of the neighbor shall be included or excluded in the FAP's NL configuration.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.MustInclude";
+ }
+ leaf band-class {
+ type uint8 {
+ range "0..17";
+ }
+ config false;
+ description
+ "Defines the CDMA2000 band in which the CDMA2000 frequency carrier can be found, specified in bandclass number. BandClass is defined in {{bibref|3GPP2-C.S0057-B}} Table 1.5-1. Corresponds to parameter bandClass specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.BandClass";
+ }
+ leaf arfcn {
+ type uint16 {
+ range "0..2047";
+ }
+ config false;
+ description
+ "Defines the CDMA2000 frequency carrier within a CDMA2000 band, as specified by ARFCN-ValueCDMA2000 in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}, and {{bibref|3GPP2-C.S0002-A}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.ARFCN";
+ }
+ leaf pn-offset {
+ type uint16 {
+ range "0..511";
+ }
+ config false;
+ description
+ "Defines the PN offset that represents the \"Physical cell identity\" in CDMA2000 system, as specified by PhysCellIdCDMA2000 in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.PNOffset";
+ }
+ leaf type {
+ type enumeration {
+ enum "1x-rtt" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Type - 1xRTT";
+ }
+ enum "hrpd" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Type - HRPD";
+ }
+ }
+ config false;
+ description
+ "Indicates the type of the cell. This parameter determines the length of the CID parameter.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Type";
+ }
+ leaf cid {
+ type string {
+ length "0..16";
+ }
+ description
+ "Defines the global cell identity of the cell. For a 1xRTT cell, the cell identity is a binary string 47 bits long. For a HRPD cell, the cell identity is a binary string 128 bits long. The value of {{param}} parameter is interpreted as 128-bit long unsigned integer. If {{param|Type}} is {{enum|1xRTT|Type}}, the first 47 bits (6 octet) is used and the rest of this {{param}} parameter MUST be ignored by the CPE. If {{param|Type}} is {{enum|HRPD|Type}}, the entire 16 octet is used as {{param}}. Corresponds to IE CellGlobalIdCDMA2000 specified in {{bibref|3GPP-TS.36.331|Section 6.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.CID";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-g {
+ description
+ "This object contains parameters relating to the neighbor list used by the FAP based on its self-configuration capability and {{object|.CellConfig.LTE.RAN.NeighborList.}} configuration of adding and excluding cells.";
+ leaf max-lte-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.MaxLTECellEntries";
+ }
+ leaf lte-cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECellNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-lte-cell-g {
+ description
+ "Table containing the LTE EUTRA (i.e. intra-RAT) cell list.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PLMNID";
+ }
+ leaf cid {
+ type uint32 {
+ range "0..268435455";
+ }
+ description
+ "Cell Identity. {{bibref|3GPP-TS.36.331|Section 6.3.4}}. Combination of {{param|PLMNID}} and {{param}} constitutes the Cell Global ID (CGI).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CID";
+ }
+ leaf eutra-carrier-arfcn {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Indicates the ARFCN of this carrier frequency. Corresponds to parameter dl-CarrierFreq in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}, and and parameter NDL in {{bibref|3GPP-TS.36.101|Section 5.7.3}}. If the value of {{param}} is the same with the one currently being used by the, then it implies that this neighbor cell is an intra-frequency cell; otherwise, it is an inter-frequency cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.EUTRACarrierARFCN";
+ }
+ leaf phy-cell-id {
+ type uint16 {
+ range "0..503";
+ }
+ description
+ "Physical cell ID, as specified in {{bibref|3GPP-TS.36.211|Section 6.11}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PhyCellID";
+ }
+ leaf q-offset {
+ type int64;
+ description
+ "Indicate a cell-specific offset applicable to a specific neighbouring cell. It is used for evaluating the cell as a candidate for cell re-selection in idle mode. Corresponds to parameter q-OffsetCell broadcast in SIB4 for intra-frequency cells and in SIB5 for inter-frequency cells, specified in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.QOffset";
+ }
+ leaf cio {
+ type int64;
+ description
+ "Cell individual offset applicable to a specific neighbouring cell. It is used for evaluating triggering conditions for measurement reporting in connected mode. Specified by cellIndividualOffset in MeasObjectEUTRA IE in {{bibref|3GPP-TS.36.331|Section 6.3.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CIO";
+ }
+ leaf rs-tx-power {
+ type int64;
+ units "dBm";
+ description
+ "The downlink reference-signal transmit power, specified in {{units}}. Defined as the linear average over the power contributions (in W) of all resource elements that carry cell-specific reference signals within the operating system bandwidth. Corresponds to parameter referenceSignalPower in SIB4 as a part of PDSCH-Config IE in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.RSTxPower";
+ }
+ leaf blacklisted {
+ type boolean;
+ description
+ "Indicates whether this neighbor cell is allowed for UEs as handover target or not. If {{true}}, handover is prohibited towards this cell. If {{false}}, handover is allowed toward this cell. The {{param}} parameter allows this cell to be prohibited as a handover target, while still allowing this cell to be included in the BCCH SIB4 or 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.Blacklisted";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-inter-rat-cell-g {
+ description
+ "Table containing the inter-RAT cell lists separated by technology. {{bibref|3GPP-TS.36.331|Section 6.3.1 (SIB6, 7, 8)}}.";
+ leaf max-umts-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.}} table. There can be maximum of 16 UTRAN (UMTS) neighbor cells, as specified by carrierFreqListUTRA-FDD in SIB6 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxUMTSEntries";
+ }
+ leaf max-gsm-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.}} table. There can be maximum of 16 GERAN (GSM) neighbor cells, as specified by carrierFreqsInfoList in SIB7 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+ }
+ leaf max-cdma2000-entries {
+ type uint64;
+ description
+ "The maximum number of entries in the {{object|.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.}} table. There can be maximum of 32 banclasses. In each bandclass, there can be maximum of 16 CDMA2000 carrier frequencies. In each carrier, there can be maximum of 16 CDMA2000 neighbor cells (PN offset). It is specified by neighCellList in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxCDMA2000Entries";
+ }
+ leaf umts-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTSNumberOfEntries";
+ }
+ leaf gsm-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+ }
+ leaf cdma2000-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000NumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-inter-rat-cell-umts-g {
+ description
+ "Table containing the inter-RAT cell list for UTRA (UMTS) cell.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PLMNID";
+ }
+ leaf rncid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "RNC-ID of an intra-RAT UMTS neighbor cell. It uniquely identifies an RNC within a PLMN. Normally, RNC-ID consists of 12 bits (i.e. a range of [0:4095]). However, if the value is larger than 4095, then Extended RNC-ID (range of [4096:65535]) is used in RANAP. The RNC-ID and Extended RNC-ID are combined into a single parameter here as there is no explicit need to have them separated. {{bibref|3GPP-TS.25.413|Section 9.2.1.39}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RNCID";
+ }
+ leaf cid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Cell Identifier (C-id) that identifies a cell within an RNS. This Cell Identifier together with the controlling RNC (RNC-ID) constitutes the UTRAN Cell ID (UC-ID) and is used to identify a cell uniquely within UTRAN. C-ID is either 12-bit or 16-bit value. {{bibref|3GPP-TS.25.401|Section 6.1.5}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.CID";
+ }
+ leaf lac {
+ type uint16 {
+ range "1..65533 | 65535";
+ }
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "Routing Area Code (RAC). The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RAC";
+ }
+ leaf ura {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "UTRAN Registration Area (URA) {{bibref|3GPP-TS.23.401}}. Indicates to the UE which {{param}} it shall use in case of overlapping URAs. {{bibref|3GPP-TS.25.331|Section 10.3.2.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.URA";
+ }
+ leaf uarfcnul {
+ type uint16 {
+ range "0..16383";
+ }
+ description
+ "The UL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNUL";
+ }
+ leaf uarfcndl {
+ type uint16 {
+ range "0..16383";
+ }
+ description
+ "The DL UTRA Absolute Radio Frequency Channel Number (UARFCN) in an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNDL";
+ }
+ leaf pcpich-scrambling-code {
+ type uint16 {
+ range "0..511";
+ }
+ description
+ "Primary CPICH scrambling code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+ }
+ leaf pcpich-tx-power {
+ type int64;
+ units "dBm";
+ description
+ "Primary CPICH Tx power in {{units}}. Actual values of the power are -10.0 {{units}} to 50.0 {{units}} in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the power. {{bibref|3GPP-TS.32.642|Section 6.3.11}} {{bibref|3GPP-TS.25.433|Section 2.2.33}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHTxPower";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-inter-rat-cell-gsm-g {
+ description
+ "Table containing the inter-RAT cell list for GERAN (GSM) cell.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+ }
+ leaf lac {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Location Area Code (LAC). The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the Location Area ID (LAI). {{bibref|3GPP-TS.23.003|Section 4.1}} {{bibref|3GPP-TS.25.413|Section 9.2.3.6}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+ }
+ leaf bsic {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "BSIC of the cell per {{bibref|3GPP-TS.23.003}}, consisting of: :Bit 7:6 - not used (\"00\") :Bit 5:3 - NCC (PLMN Color Code) :Bit 2:0 - BCC (BS color code) For example, if NCC is 7 and BCC is 2 you would have 00111010 (binary) or 0x3A (hex), and the value of this parameter would be 58.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+ }
+ leaf ci {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Cell ID of the cell per {{bibref|3GPP-TS.23.003|Section 4.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+ }
+ leaf band-indicator {
+ type enumeration {
+ enum "gsm850" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - GSM850";
+ }
+ enum "gsm900" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - GSM900";
+ }
+ enum "dcs1800" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - DCS1800";
+ }
+ enum "pcs1900" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator - PCS1900";
+ }
+ }
+ description
+ "Indicates how to interpret the BCCH ARFCN. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+ }
+ leaf bccharfcn {
+ type uint16 {
+ range "0..1023";
+ }
+ description
+ "ARFCN of this cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+ }
+
+ grouping lte-ran-neighbor-list-in-use-inter-rat-cell-cdma2000-g {
+ description
+ "Table containing the inter-RAT cell list for CDMA2000 cell.";
+ leaf band-class {
+ type uint8 {
+ range "0..17";
+ }
+ description
+ "Defines the CDMA2000 band in which the CDMA2000 frequency carrier can be found, specified in bandclass number. BandClass is defined in {{bibref|3GPP2-C.S0057-B|Table 1.5-1}}. Corresponds to parameter bandClass specified in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.BandClass";
+ }
+ leaf arfcn {
+ type uint16 {
+ range "0..2047";
+ }
+ description
+ "Defines the CDMA2000 frequency carrier within a CDMA2000 band, as specified by ARFCN-ValueCDMA2000 in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}, and {{bibref|3GPP2-C.S0002-A}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.ARFCN";
+ }
+ leaf pn-offset {
+ type uint16 {
+ range "0..511";
+ }
+ description
+ "Defines the PN offset that represents the \"Physical cell identity\" in CDMA2000 system, as specified by PhysCellIdCDMA2000 in SIB8 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.PNOffset";
+ }
+ leaf type {
+ type enumeration {
+ enum "1x-rtt" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.Type - 1xRTT";
+ }
+ enum "hrpd" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.Type - HRPD";
+ }
+ }
+ description
+ "Indicates the type of the cell. This parameter determines the length of the CID parameter.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.Type";
+ }
+ leaf cid {
+ type string {
+ length "0..16";
+ }
+ description
+ "Defines the global cell identity of the cell. For a 1xRTT cell, the cell identity is a binary string 47 bits long. For a HRPD cell, the cell identity is a binary string 128 bits long. The value of {{param}} parameter is interpreted as 128-bit long unsigned integer. If {{param|Type}} is {{enum|1xRTT|Type}}, the first 47 bits (6 octet) is used and the rest of this {{param}} parameter MUST be ignored by the CPE. If {{param|Type}} is {{enum|HRPD|Type}}, the entire 16 octet is used as {{param}}. Corresponds to IE CellGlobalIdCDMA2000 specified in {{bibref|3GPP-TS.36.331|Section 6.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.CID";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+ }
+
+ grouping cdma2000-g {
+ description
+ "This object contains parameters relating to configuring the CDMA2000 FAP.";
+ leaf tunnel-instance {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "This is the reference to the IPsec tunnel instance used by the CDMA2000 FAP. For all root data models, which use the tunnel definition provided in {{bibref|TR-262}} (InternetGatewayDevice:1 {{bibref|TR-098}} and Device:1 {{bibref|TR-181i1}}) the {{param}} MUST point to a row in the 'FAP.Tunnel.IKESA.{i}.' table, defined in {{bibref|TR-262}}. If the root data model used is Device:2 {{bibref|TR-181i2}} than the {{param}} MUST point to IPsec tunnel instance defined in {{bibref|TR-181i2}}. If the referenced object is deleted, the parameter value MUST be set to an empty string. In case of a multiple-radio-technology FAP product, each radio technology can have its own tunnels or share common tunnels. In the former case, {{param}} can contain a unique instance number. In the latter case, {{param}} under all radio technologies can have the same instance number.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.TunnelInstance";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.";
+ }
+
+ grouping cdma2000-one-x-g {
+ description
+ "This object contains parameters relating to configuring the CDMA2000 1x FAP.";
+ leaf pcfpdsn-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSNNumberOfEntries";
+ }
+ leaf max-batch-pcfpdsn-entries {
+ type uint64;
+ description
+ "Maximum number of entries in the {{object|.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.MaxBatchPCFPDSNEntries";
+ }
+ leaf batch-pcfpdsn-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSNNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.";
+ }
+
+ grouping cdma2000-one-x-ran-g {
+ description
+ "This object contains parameters relating to RAN configuring the CDMA2000 1x FAP.";
+ leaf one-x-sector-nid {
+ type int64;
+ config false;
+ description
+ "SID for 1x. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorNID";
+ }
+ leaf one-x-sector-sid {
+ type int64;
+ config false;
+ description
+ "NID for 1x . See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorSID";
+ }
+ leaf one-xpzid {
+ type int64;
+ config false;
+ description
+ "packet Zone ID for 1x packet calls";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXPZID";
+ }
+ leaf base-id {
+ type int64;
+ config false;
+ description
+ "Base station ID (needed in SPM). This is also the CellID. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.BaseID";
+ }
+ leaf max-neighbor-list-entries {
+ type uint64;
+ description
+ "Maximum number of entries avaiable in {{object|.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.MaxNeighborListEntries";
+ }
+ leaf neighbor-list-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborListNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+ }
+
+ grouping cdma2000-one-x-ran-rf-g {
+ description
+ "This object contains parameters relating to RF configuration of the FAP.";
+ leaf-list rfcnfl {
+ type string {
+ length "0..256";
+ }
+ config false;
+ min-elements 1;
+ description
+ "{{list}} Each item is a pair of 2-digit Band class number (as defined in {{bibref|3GPP2-C.S0057}}) followed by 4-digit FL Radio Frequency Channel Number (RFCN). Self-configuration for RFCN is controlled by {{param|.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable}}. If the FAP's self-configuration capability for RFCN is available and enabled, this parameter MAY contain more than one item and the FAP is expected to select one from the list for RFCNFLInUse. If the self-configuration capability is not available or not enabled, then this parameter SHOULD contain only a single item. An example value is \"010001, 030500\". If multiple items are specified, they are done in the order of preference.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL";
+ }
+ leaf rfcnfl-band-in-use {
+ type string {
+ length "0..16";
+ }
+ description
+ "The FL Band being used by the FAP. Self-configuration for Band and RFCN is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.RFCNFLConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in RFCNFL. If the self-configuration capability is not available or not enabled, then this parameter contains the first band class value in RFCNFL.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLBandInUse";
+ }
+ leaf rfcnfl-in-use {
+ type uint64;
+ description
+ "The FL RFCN being used by the FAP. Self-configuration for RFCN is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.RFCNFLConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in RFCNFL. If the self-configuration capability is not available or not enabled, then this parameter contains the first RFCN value in RFCNFL.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLInUse";
+ }
+ leaf-list pilot-pn {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "{{list}} Each item is a pilot PN offset in units of 64 PN chips. Self-configuration for pilot PN is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.PilotPNConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.PilotPNSelfConfigEnable}} from an enabled perspective. If the FAP's self-configuration capability for Pilot PN Offset is available and enabled, this parameter MAY contain more than one item and the FAP is expected to select one from the list for PilotPNInUse. If the self-configuration capability is not available or not enabled, then this parameter SHOULD contain only a single item. The multiplicity of the PN offset values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. The order of the items has no significance.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN";
+ }
+ leaf pilot-pn-in-use {
+ type uint16 {
+ range "0..511";
+ }
+ units "64 PN chips";
+ description
+ "The Pilot PN Offset being used by the FAP in {{units}}. Self-configuration for Pilot PN Offset is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.PilotPNConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.PilotPNSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in PilotPN. If the self-configuration capability is not available or not enabled, then this parameter contains the first value in PilotPN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPNInUse";
+ }
+ leaf maxfap-tx-power {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Defines the maximum transmission power allowed on the FAP. MaxFAPTxPower is expressed as a range of allowed maximum power levels with \"..\" (two periods) between the upper and lower values, i.e. \"<Pmax_low>;..<Pmax_high>;\". {{param}} identifies the limits between which the FAP can self-configure its maximum transmit power. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerSelfConfigEnable}} from an enabled perspective. <Pmax_low>; and <Pmax_high>; are measured in dBm and have a range of -40.0 to 20.0 incremented by 0.1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower";
+ }
+ leaf maxfap-tx-power-in-use {
+ type int64;
+ units "0.1 dBm";
+ description
+ "The maximum transmission power measured in {{units}} currently used by the FAP. Actual values of the maximum transmission power are -40.0 dBm to 20.0 dBm in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the maximum transmission power. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the range provided in {{param|MaxFAPTxPower}}. If the self-configuration capability is not available or not enabled, then this parameter contains a value selected by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPowerInUse";
+ }
+ leaf pch-pwr-percentage {
+ type uint32 {
+ range "1000..1000000";
+ }
+ units "0.001 percent";
+ config false;
+ description
+ "Percentage of Max Sector Power Used By Paging Channel (expressed in {{units}}). For example, 93333 means 93.333% of the max sector power.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PchPwrPercentage";
+ }
+ leaf pilot-pwr-percentage {
+ type uint32 {
+ range "1000..1000000";
+ }
+ units "0.001 percent";
+ config false;
+ description
+ "Percentage of Max Sector Power Used By Pilot Channel (expressed in {{units}}). For example, 19950 means 19.95% of total.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPwrPercentage";
+ }
+ leaf sync-pwr-percentage {
+ type uint32 {
+ range "1000..1000000";
+ }
+ units "0.001 percent";
+ config false;
+ description
+ "Percentage of Max Sector Power Used By Sync Channel (expressed in {{units}}). For example, 23458 means 23.4% of the max sector power.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.SyncPwrPercentage";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+ }
+
+ grouping cdma2000-one-x-ran-network-listen-mode-config-g {
+ description
+ "This object contains parameters relating to self-configuration of the MaxFAPTxPower of the FAP.";
+ leaf rfcnfl-margin {
+ type uint64;
+ config false;
+ description
+ "If self-configuration of RFCNFL is enabled, this value indicates the total received signal strength margin to be applied to the entries in RFCNFL when the FAP decides on the RFCNInUse in order to bias the selection of the most preferred frequency.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLMargin";
+ }
+ leaf fap-coverage-target {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Defines the target value measured in dB for the range of the FAP's FL coverage, in terms of RF propagation loss. This value can be used by the FAP's selfconfiguration algorithms to help derive transmit power levels in the presence of co-channel and adjacent channel interference. {{param}} is expressed as a range of the minimum coverage path loss and the maximum coverage path loss with \"..\" (two periods) between the minimum and maximum values, i.e., \"<FAPCoverageTarget_min>..<FAPCoverageTarget_max>\". These values can be used by the FAP's selfconfiguration algorithms to help derive transmit power levels in the presence of co-channel and adjacent channel interference. <FAPCoverageTarget_min> and <FAPCoverageTarget_max> are measured in dB and have a range of [50,150] incremented by 1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPCoverageTarget";
+ }
+ leaf fap-beacon-coverage-target {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Defines the target value measured in dB for the range of the FAP's FL Beacon coverage, in terms of RF propagation loss. This value can be used by the FAP's selfconfiguration algorithms to help derive beacon transmit power levels. {{param}} is expressed as a range of the minimum coverage path loss and the maximum coverage path loss with \"..\" (two periods) between the minimum and maximum values, i.e., \"<BeaconCoverageTarget_min>..<BeaconCoverageTarget_max>\". These values can be used by the FAP's selfconfiguration algorithms to help derive transmit power levels for the beacon(s) in the presence of co-channel and adjacent channel interference.\" <BeaconCoverageTarget_min> and <BeaconCoverageTarget_max> are measured in dB and have a range of [50,150] incremented by 1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPBeaconCoverageTarget";
+ }
+ leaf max-coverage-edge-pilot-strength {
+ type int64;
+ units "0.1 dB";
+ config false;
+ description
+ "The maximum strength of the received pilot energy per chip, Ec, to total received spectral density, Io (signal and noise) desired for FAP users at the edge of the FAP coverage target in units of {{units}}. This value can be used by the FAP's self configuration algorithms to help prevent aggressive transmit power level settings .";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxCoverageEdgePilotStrength";
+ }
+ leaf max-allowable-pilot-strength-degradation {
+ type int64;
+ units "0.1 dB";
+ config false;
+ description
+ "The maximum amount in dB by which the strength of the received pilot energy per chip, Ec, to total received spectral density, Io (signal and noise) for alien users can be degraded in the presence of FAP interference at the edge of FAP coverage, in {{units}} units.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxAllowablePilotStrengthDegradation";
+ }
+ leaf-list rfcnfl-to-protect {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "{{list}} Each item is a FL RFCN corresponding to a CDMA2000 carrier that is adjacent to the RFCNFLInUse to be protected from adjacent channel interference. If any of the items in the list are adjacent to the FAP's own FL channel, the FAP MUST take the PilotStrength and total received power spectral density (Io) measured on these channels into account as part of its maximum transmit power selfconfiguration. The RFCNs in the list can belong to any operator, allowing for protection of the FAP operator's own macro layer as well as that of other operators. The list should take into account the ability of the FAP to self-configure its own FL RFCN and so SHOULD include any channels (requiring protection) which can potentially be adjacent to the RFCN selected by the FAP. For example, if only adjacent operator protection is needed and the FAP has the ability to self-configure to any channel owned by its operator, this list would be populated with the RFCNs immediately above and below the range of channels owned by the FAP operator. If an empty string then it indicates that there are no channels adjacent to the FAP that require protection, or that self-configuration of the FAP transmit power is not enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLToProtect";
+ }
+ leaf fap-allowed-adj-chan-coverage-hole {
+ type uint8 {
+ range "30..150";
+ }
+ units "dB";
+ config false;
+ description
+ "Defines the maximum allowed coverage hole created on carriers listed in RFCNFLToProtect by the FAP transmission, measured in {{units}}, in terms of RF propagation loss such that the {{param|MaxAllowablePilotStrengthDegradation}} is maintained outside the {{param}} for MS on that {{param|RFCNFLToProtect}}. This value can be used by the FAP's self configuration algorithms to help derive transmit power levels.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPAllowedAdjChanCoverageHole";
+ }
+ leaf acir {
+ type uint64;
+ units "dB";
+ config false;
+ description
+ "AdjacentChannelInterferenceRatio value in {{units}} to be used when determining the coverage hole created on adjacent channels due to leakage.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.ACIR";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+ }
+
+ grouping cdma2000-one-x-ran-access-parameters-g {
+ description
+ "The object used for configuring access parameter messages for 1x. See {{bibref|3GPP2-C.S0005}}.";
+ leaf nom-pwr {
+ type int64;
+ config false;
+ description
+ "Nominal power correction factor used by the mobile in open loop power adjustment. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwr";
+ }
+ leaf init-pwr {
+ type int64;
+ config false;
+ description
+ "Initial power offset used by the mobile in open loop power adjustment. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.InitPwr";
+ }
+ leaf pwr-step-indb {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Power step increment in successive access probes. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStepIndb";
+ }
+ leaf nom-pwr-ext {
+ type uint8 {
+ range "0..1";
+ }
+ units "dBm";
+ config false;
+ description
+ "{{param}} should be zero for BC0 and BC1. For other band classes, {{param}} is 1 if Mobile's correction factor is between -24dBm and -9dBm. Otherwise {{param}} is zero. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwrExt";
+ }
+ leaf apm-auth {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Enabling/disabling global authentication. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMAuth";
+ }
+ leaf apm-rand-update-prd {
+ type uint16 {
+ range "16..14400";
+ }
+ units "seconds";
+ config false;
+ description
+ "The period (in {{units}}) that the BSS updates the RAND value sent via APM. Only 2 second multiples accepted.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMRandUpdatePrd";
+ }
+ leaf initialpwr {
+ type uint8 {
+ range "0..31";
+ }
+ units "dB";
+ config false;
+ description
+ "Initial power offset for access. The base station shall set this field to the correction factor to be used by mobile stations in the open loop power estimate for the initial transmission on an Access Channel, expressed as a two's complement value in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Initialpwr";
+ }
+ leaf pwr-step {
+ type uint8 {
+ range "0..7";
+ }
+ units "dB";
+ config false;
+ description
+ "Power increment. The base station shall set this field to the value by which mobile stations are to increase their transmit power between successive access probes in an access probe sequence, in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStep";
+ }
+ leaf num-step {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Number of access probes. The base station shall set this field to one less than the maximum number of access probes mobile stations are to transmit in a single access probe sequence.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NumStep";
+ }
+ leaf max-cap-size {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Maximum Access Channel message capsule size. The base station shall set this field to the value in the range 0 to 7. {{param}} is set to three less than the maximum number of Access Channel frames in an Access Channel message capsule.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxCapSize";
+ }
+ leaf preamble-size {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Access Channel preamble length. The base station shall set this field to one less than the number of Access Channel frames that mobile stations are to transmit in each Access Channel preamble.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PreambleSize";
+ }
+ leaf psist09 {
+ type uint8 {
+ range "0..63";
+ }
+ config false;
+ description
+ "Persistence value for access probes sent by mobiles with Access Overload calls values of 0 - 9. A value of 63 indicates such mobiles are not allowed to send access probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist09";
+ }
+ leaf psist10 {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence value for access probes sent by mobiles with Access Overload calls values of 10 (test Mobile). A value of 7 indicates such mobiles are not allowed to send access probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist10";
+ }
+ leaf psist11 {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence value for access probes sent by mobiles with Access Overload calls values of 11 (emergency Mobile). A value of 7 indicates such mobiles are not allowed to send access probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist11";
+ }
+ leaf psist12 {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence value for access probes sent by mobiles with Access Overload calls values of 12. A value of 7 indicates such mobiles are not allowed to send access probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist12";
+ }
+ leaf psist13 {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence value for access probes sent by mobiles with Access Overload calls values of 13. A value of 7 indicates such mobiles are not allowed to send access probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist13";
+ }
+ leaf psist14 {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence value for access probes sent by mobiles with Access Overload calls values of 14. A value of 7 indicates such mobiles are not allowed to send access probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist14";
+ }
+ leaf psist15 {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence value for access probes sent by mobiles with Access Overload calls values of 15. A value of 7 indicates such mobiles are not allowed to send access probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist15";
+ }
+ leaf msg-psist {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence modifier for access channel attempts transmitting a message.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MsgPsist";
+ }
+ leaf reg-psist {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Persistence modifier for registration message transmission.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.RegPsist";
+ }
+ leaf probe-pn-ran {
+ type uint8 {
+ range "0..9";
+ }
+ config false;
+ description
+ "Time randomization for access channel probes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbePNRan";
+ }
+ leaf acc-tmo {
+ type uint8 {
+ range "0..15";
+ }
+ units "80 ms slots";
+ config false;
+ description
+ "Access transmission timeout. Two less than the time the mobile has to wait before determining that the probe is not received by the BSS. It is in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.AccTmo";
+ }
+ leaf probe-bkoff {
+ type uint8 {
+ range "0..15";
+ }
+ units "frames";
+ config false;
+ description
+ "One less than maximum number for randomized delay between successive access probes in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbeBkoff";
+ }
+ leaf bkoff {
+ type uint8 {
+ range "0..15";
+ }
+ units "80 ms slots";
+ config false;
+ description
+ "One less than maximum number for randomized delay between successive access sequences in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Bkoff";
+ }
+ leaf max-req-seq {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Maximum number of access probe sequences for an access request.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxReqSeq";
+ }
+ leaf max-rsp-seq {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Maximum number of access probe sequences for an access response";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxRspSeq";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+ }
+
+ grouping cdma2000-one-x-ran-system-parameters-g {
+ description
+ "The object used for configuring system parameter messages for 1x";
+ leaf reg-zone {
+ type uint16 {
+ range "0..4095";
+ }
+ config false;
+ description
+ "registration zone number (refer to Section 2.6.5.1.5 of {{bibref|3GPP2-C.S0005}})";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegZone";
+ }
+ leaf total-zones {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Total number of zones the mobile shall retain for zone based registration. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TotalZones";
+ }
+ leaf zone-timer {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "timer value to be used by the mobile in the zone registration timer. Refer to table 3.7.2.3.2.1-1 of the standard {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.ZoneTimer";
+ }
+ leaf reg-period {
+ type uint8 {
+ range "29..85";
+ }
+ config false;
+ description
+ "Registration period for timer based registration. Registration period is calculated from the formula 2^(REG_PRD/4) x 0.08 seconds. Thus a value of 59 corresponds to 1853.6 seconds (~ 1/2 hour). See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegPeriod";
+ }
+ leaf srch-win-a {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Search window size to be used ny the mobile for active set and candidate set. Refer to table 2.6.6.2.1-1 of {{bibref|3GPP2-C.S0005}}. For example, 11 corresponds to 130 chips";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinA";
+ }
+ leaf srch-win-n {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Search window size to be used by the mobile for neighbor set. Refer to table 2.6.6.2.1-1 of {{bibref|3GPP2-C.S0005}}. For example, 8 corresponds to 60 chips";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinN";
+ }
+ leaf srch-win-r {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Search window size to be used by the mobile for remaining set. Refer to table 2.6.6.2.1-1 of {{bibref|3GPP2-C.S0005}}. For example, 8 corresponds to 60 chips";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinR";
+ }
+ leaf nghbr-max-age {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "neighbor set maximum age beyond which the mobiles are supposed to drop a neighbor. This is the count of neighbout list updat or extended neighbor list updates a mobile shall receive before removing a neighbor from the neighbor list. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.NghbrMaxAge";
+ }
+ leaf pwr-rep-thresh {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "Power control reporting threshold. Number of bad frames a mobile should receive before sending a PMRM message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepThresh";
+ }
+ leaf pwr-rep-frames {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Duration (in number of frames) for measuring bad frames - given by equation 2^(PWR_REP_FRAMES/2) x 5 frames. For example, 6 corresponds to 40 frames. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepFrames";
+ }
+ leaf pwr-thresh-enable {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "enable/disable power measurement report message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrThreshEnable";
+ }
+ leaf pwr-period-enable {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "enable/disable periodic power measurement report message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrPeriodEnable";
+ }
+ leaf pwr-rep-delay {
+ type uint8 {
+ range "0..32";
+ }
+ config false;
+ description
+ "Delay (in unit of four frames) following a PMRM before the mobile restarts counting bad frames for power control measuremnt. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepDelay";
+ }
+ leaf rescan {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "If {{param}} is set to 1, the mobiles should restart and reinitialize the System Parameters message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Rescan";
+ }
+ leaf tadd {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "Power threshold (in {{units}}) for transferring a neighbor from neighbor set or remaining set to active set. For example, a value of 26 corresponds to -13 dB. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tadd";
+ }
+ leaf tdrop {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "Drop threshold (in {{units}}) to start a handoff timer to drop a neighbor from active or candidate set. For example, 30 corresponds to -15dB. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tdrop";
+ }
+ leaf tcomp {
+ type uint8 {
+ range "0..15";
+ }
+ units "0.5 dB";
+ config false;
+ description
+ "If a pilot in condidate set exceeds the power of a pilot in active set by threshold, the mobile shall send a power strenght measurement report message. This threshold is defined in unit of {{units}}. For example, 5 corresponds to a threshold of 2.5 dB. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tcomp";
+ }
+ leaf t-tdrop {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Timer value for which an action is taken by the mobile for a neighbor in candidate set or in active set. Refer to Table 2.6.6.2.3-1 of the {{bibref|3GPP2-C.S0005}} for details. For example, 3 corresponds to four seconds";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TTdrop";
+ }
+ leaf in-traffic-tadd {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "T-ADD value (in {{units}}) used for in-traffic system parameter message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTadd";
+ }
+ leaf in-traffic-tdrop {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "T-Drop value (in {{units}}) used in in-traffic system parameter message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTdrop";
+ }
+ leaf in-traffic-tcomp {
+ type uint8 {
+ range "0..15";
+ }
+ units "dB";
+ config false;
+ description
+ "T_Comp value (in {{units}}) used for in-traffic system parameter message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTcomp";
+ }
+ leaf in-traffic-ttdrop {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "T_Tdrop timer value value used for in-traffic system parameter message. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTtdrop";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+ }
+
+ grouping cdma2000-one-x-ran-extended-system-parameters-g {
+ description
+ "The object used for configuring extended system parameter messages for 1x";
+ leaf prev {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "protocol revision";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.Prev";
+ }
+ leaf p-min-rev {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "minimum protocol revision";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PMinRev";
+ }
+ leaf delete-for-tmsi {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Delete Foreign TMSI. The base station shall set this field to '1' to cause the mobile station to delete its TMSI if the TMSI was assigned in a different TMSI zone from that specified by the TMSI_ZONE field of this message; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DeleteForTMSI";
+ }
+ leaf use-tmsi {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Use TMSI indicator. The base station shall set this field to the value shown next field corresponding to the type of MSID that the mobile station is to use on the Access Channel.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.UseTMSI";
+ }
+ leaf pref-msid-type {
+ type uint8 {
+ range "0..3";
+ }
+ config false;
+ description
+ "Preferred Access Channel Mobile Station Identifier Type. F294. The base station shall set this field to the value shown as below corresponding to the type of MSDI that the mobile station is to use on the Access Channel. [useTMSI] [prefMSIDType] [description] 0 00 IMSI_S and ESN 0 10 IMSI 0 11 IMSI and ESN 1 10 TMSI; IMSI 1 11 TMSI; IMSI and ESN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PrefMSIDType";
+ }
+ leaf mcc {
+ type uint16 {
+ range "0..1023";
+ }
+ config false;
+ description
+ "Mobile Country Code. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MCC";
+ }
+ leaf imsi1112 {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "11th and 12th digits of IMSI. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSI1112";
+ }
+ leaf tmsi-zone-len {
+ type uint8 {
+ range "1..8";
+ }
+ config false;
+ description
+ "TMSI zone length. The base station shall set this field to the number of octets included in the TMSI_ZONE. The base station shall set this field to a value in the range 1 to 8 inclusive.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZoneLen";
+ }
+ leaf tmsi-zone {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "TMSI zone. The base station shall set this field to the TMSI zone number as specified in {{bibref|3GPP2-N.S0010}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZone";
+ }
+ leaf bcast-index {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Broadcast slot cycle index. To enable periodic broadcast paging, the base station shall set this field to and unsigned 3-bit number in the range 1-7, equal to the broadcast slot cycle index. To disable periodic broadcast paging, the base station shall set this field to '000'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BcastIndex";
+ }
+ leaf imsit-supported {
+ type int64;
+ config false;
+ description
+ "1: IMISI_T is supported, 0: IMSI_T is not supported. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSITSupported";
+ }
+ leaf soft-slope {
+ type uint8 {
+ range "0..63";
+ }
+ config false;
+ description
+ "The slope in the inequality criterion for adding a pilot to the Active Set, or dropping a pilot from the Active Set. The base station shall set this field as an unsigned binary number.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SoftSlope";
+ }
+ leaf add-intercept {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "The intercept in the inequality criterion for adding a pilot to the Active Set. The base station shall set this field as a two's complement signed binary number, in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AddIntercept";
+ }
+ leaf drop-intercept {
+ type uint8 {
+ range "0..63";
+ }
+ units "dB";
+ config false;
+ description
+ "The intercept in the inequality criterion for dropping a pilot from the Active Set. The base station shall set this field as a two's complement signed binary number, in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DropIntercept";
+ }
+ leaf max-num-alt-so {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Maximum number of alternative service options. The base station shall set this field to the maximum number of alternative service option numbers that the mobile station is allowed to include in the Origination Message or the Page Response Message. For mobile stations with MOB_P_REVs less than seven, the alternative service options are those service options defined in TSB-58B and related to SERVICE_OPTION in Origination Message and the Page Response Message. For mobile stations with MOB_P_REVs equal to or greater than seven, the alternative service options are those service options defined in TSB-58B without service group number assigned and related to SERVICE_OPTION in Origination Message and the Page Response Message. The base station sets this field to a value greater than zero, in addition, the base station shall allow the mobile station with MOB_P_REVs equal to or greater than 7 to include - a 4 or 8-bit service option bitmap in the Origination Message and the Page Response Message; - alternative service option numbers, not limited to MAX_ALT_SO_NUM, in the Enhanced Origination Message.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumAltSo";
+ }
+ leaf reselected-included {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "System reselection parameters included. If the base station is including system reselection parameters, the base station shall set this field to '1'; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.ReselectedIncluded";
+ }
+ leaf ec-thresh {
+ type uint64;
+ units "dBm";
+ config false;
+ description
+ "Pilot power threshold. If RESELECTINCLUDED is set to '1', the base station shall include the field EC_THRESH and set this field to: [ (pilot_power_threshold + 115 ) ] where pilot_power_threshold is the pilot power, Ec, in {{units}}/1.23 MHz, below which the mobile station is to perform system reselection; otherwise, the base station shall omit this field.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcThresh";
+ }
+ leaf ec-io-thresh {
+ type uint64;
+ config false;
+ description
+ "Pilot Ec / Io threshold. If RESELECTINCLUDED is set to '1', the base station shall include the field EC_I0_THRESH and set this field to: [ - 20 x log10 (pilot_threshold) ] where pilot_threshold is the pilot Ec/Io below which the mobile station is to perform system reselection; otherwise, the base station shall omit this field.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcIoThresh";
+ }
+ leaf pilot-report {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Pilot reporting indicator. The base station shall set this field to '1' if the mobile station is to report the additional pilots which have pilot strength exceeding T_ADD in all Access Channel messages. The base station shall set this field to '0' if the mobile station is to report the additional pilots which have pilot strengths exceeding T_ADD only in the Origination Message and the Page Response Message.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PilotReport";
+ }
+ leaf nghbr-set-entry-info {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Neighbor Set access entry handoff information included indicator. If the base station is including information on the Neighbor Set access entry handoff, the base station shall set this field to '1'; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetEntryInfo";
+ }
+ leaf access-ho-order {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Access entry handoff permitted indicator. If NghbrSetEntryInfo is set to '1', the base station shall set this field to '1' if the mobile station is permitted to perform an access entry handoff after receiving a message while performing the Mobile Station Order and Message Processing Operation in the Mobile Station Idle State; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOOrder";
+ }
+ leaf nghbr-set-access-info {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Neighbor Set access handoff included indicator. If the base station is including information on the Neighbor Set access handoff or access probe handoff, the base station shall set this field to '1', otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetAccessInfo";
+ }
+ leaf access-ho {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Access handoff permitted indicator. If NghbrSetEntryInfo is set to '1', the base station shall set this field to '1' if the mobile station is permitted to perform an access handoff; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHO";
+ }
+ leaf access-ho-msg-rsp {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Access handoff permitted for message response indicator. If AccessHO is set to '1', the base station shall include this field and set it as described below; otherwise, the base station shall omit this field. The base station shall set this field to '1' if the mobile station is permitted to perform an access handoff after receiving a message and before responding to that message in the System Access State; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOMsgRsp";
+ }
+ leaf access-probe-ho {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Access probe handoff permitted indicator. If NghbrSetEntryInfo is set to '1', the base station shall set this field to '1' if the base station is permitted to perform an access probe handoff; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessProbeHO";
+ }
+ leaf acc-ho-list-upd {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Access handoff list update permitted indicator. If AccessProbeHO is included and is set to '1', the base station shall set this field to '1' if the mobile station is permitted to update the access handoff list during an access attempt; otherwise, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccHOListUpd";
+ }
+ leaf acc-probe-ho-other-msg {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Access probe handoff permitted for messages other than the Origination Message and the Page Response Message. If AccessProbeHO is set to '1', the base station shall set this field to '1' if the mobile station is permitted to perform an access probe handoff for messages other than the Origination Message and the Page Response. The base station shall set this field to '0' if the mobile station is permitted to perform an access probe handoff only for the Origination Message and the Page Response Message.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccProbeHOOtherMsg";
+ }
+ leaf max-num-probe-ho {
+ type uint8 {
+ range "0..3";
+ }
+ config false;
+ description
+ "Maximum number of times that mobile station is permitted to perform an access probe handoff. If AccessProbeHO is set to '1', the base station shall set this field to the maximum number of times the mobile station is allowed to perform an access probe handoff within an access attempt minus one.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumProbeHO";
+ }
+ leaf brdcast-gps-assit {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "If {{param}} is set to 1, then Braodcast GPS assist is supported. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BrdcastGPSAssit";
+ }
+ leaf qpch-supported {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Quick Paging Channel Supported Indication. If the base station supports Quick Paging Channel operation, the base station shall set this field to '1'; otherwise the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHSupported";
+ }
+ leaf num-qpch {
+ type uint8 {
+ range "1..3";
+ }
+ config false;
+ description
+ "Number of Quick Paging Channels. If the base station sets QPCHSUPPORTED to '1', the base station shall include this field and set it as described below; otherwise, the base station shall omit this field. The base station shall set this field to the number of Quick Paging Channels on this CDMA Channel. The base station shall not set this field to '00'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NumQPCH";
+ }
+ leaf qpch-rate {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Quick Paging Channel indicator rate. See {{bibref|3GPP2-C.S0005}}. {{param}} is set as follows: 0: 4800bps; 1: 9600bps.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHRate";
+ }
+ leaf qpch-pwr-level-page {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Quick Paging Channel paging indicator transmit power level. {{param}} is set as follows: 0: 5 dB below; 1: 4 dB below; 2: 3 dB below; 3: 2 dB below; 4: 1 dB below; 5: Same; 6: 1 dB above; 7: 2dB above.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelPage";
+ }
+ leaf qpc-hcci-supported {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Quick Paging Channel configuration change indicator supported. {{param}} is set as follows: if the base station is to support configuration change indicators on the Quick Paging Channel, {{param}} to '1'; otherwise {{param}} is set to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHcciSupported";
+ }
+ leaf qpch-pwr-level-config {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "Quick Paging Channel configuration change indicator CONFIG transmit power level. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelConfig";
+ }
+ leaf sdb-supported {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Short Data Burst supported indicator. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SDBSupported";
+ }
+ leaf r-lgain-traffic-pilot {
+ type uint8 {
+ range "0..63";
+ }
+ units "0.125 dB";
+ config false;
+ description
+ "Gain adjustment of the Reverse Traffic Channel relative to the Reverse Pilot Channel for Radio Configurations greater than 2. {{param}} is set to the correction factor to be used by mobile stations in setting the power of a reverse traffic channel, expressed as a two's complement value in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RLgainTrafficPilot";
+ }
+ leaf rvs-pwr-ctrl-delay-incl {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Reverse Power Control Delay included indicator. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelayIncl";
+ }
+ leaf rvs-pwr-ctrl-delay {
+ type uint8 {
+ range "0..3";
+ }
+ units "1.25 ms";
+ config false;
+ description
+ "The reverse power control delay. {{param}} is setto the closed-loop reverse power control delay minus one (the closed-loop reverse power control delay is the time between the end of a gated-on reverse PCG and the beginning of the Forward Power Control Subchannel in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelay";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+ }
+
+ grouping cdma2000-one-x-ran-forward-pwr-ctr-g {
+ description
+ "The object used for configuring extended channel assignment messages for 1x";
+ leaf fpcfch-init-setpt {
+ type int64;
+ units "0.125 dB";
+ config false;
+ description
+ "Initial Fundamental Channel outer loop Eb/Nt setpoint in {{units}}. For example, 56 corresponds to 7 dB. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHInitSetpt";
+ }
+ leaf fpc-subchan-gain {
+ type int64;
+ units "0.25 dB";
+ config false;
+ description
+ "Forward power control subchannel relative to fwd traffic channel in {{units}}. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCSubchanGain";
+ }
+ leaf rl-gain-adj {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Reverse Traffic Channel power relative to access power in {{units}}. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.RLGainAdj";
+ }
+ leaf fpcfchfer {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "Fundamental Channel target frame error rate. Refer to table 3.7.3.3.2.25-2 of {{bibref|3GPP2-C.S0005}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHFER";
+ }
+ leaf fpcfch-min-setpt {
+ type int64;
+ units "0.125 dB";
+ config false;
+ description
+ "Minimum Fundamental Channel Outer Loop Eb/Nt setpoint in {{units}}. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMinSetpt";
+ }
+ leaf fpcfch-max-setpt {
+ type int64;
+ units "0.125 dB";
+ config false;
+ description
+ "Maximum Fundamental Channel Outer Loop Eb/Nt setpoint in {{units}}. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMaxSetpt";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+ }
+
+ grouping cdma2000-one-x-ran-hard-handoff-g {
+ description
+ "This object provides configurable parameters for 1x Handout";
+ leaf handout-enable {
+ type boolean;
+ config false;
+ description
+ "Enabling handout operation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HandoutEnable";
+ }
+ leaf ho-pilot-power-thresh {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "Pilot power threshold (in {{units}} relative to the FAP pilot power) for handout declaration";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotPowerThresh";
+ }
+ leaf ho-pilot-duration {
+ type uint8 {
+ range "20..50";
+ }
+ units "100ms";
+ config false;
+ description
+ "Timethreshold for handout declaration (in {{units}})";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotDuration";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+ }
+
+ grouping cdma2000-one-x-ran-hard-handoff-stats-g {
+ description
+ "This object contains statistics for all Handouts of the 1x FAP.";
+ leaf tx-ho-required {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of Handout Required messages sent to the MSC";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHORequired";
+ }
+ leaf rx-ho-command {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of Handout Command messegaes received from the MSC";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOCommand";
+ }
+ leaf ho-required-rejected {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of HO required requests rejected by the MSC";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredRejected";
+ }
+ leaf ho-required-unanswered {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of HO required requests for which no response received from the MSC";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredUnanswered";
+ }
+ leaf tx-uhdm {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number UHDMs sent to mobiles";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxUHDM";
+ }
+ leaf rx-ns-ack {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of MSAcks received from the mobile in response to UHDM";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxNSAck";
+ }
+ leaf ho-failure-count {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of Handout attempts declared as failure";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HOFailureCount";
+ }
+ leaf call-drop-count {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total numer of call drops after a HO attempt. RTC lost without MSack";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.CallDropCount";
+ }
+ leaf tx-ho-commence {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Number of Handout Commenced messages sent to MSC";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHOCommence";
+ }
+ leaf rx-ho-session-clear {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Number of session clear commands received form the core";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOSessionClear";
+ }
+ leaf return-on-failure-count {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of times a Return On Handoff failure was declared";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ReturnOnFailureCount";
+ }
+ leaf one-pilot-report-count {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Number of times only one pilot was reported in HO Required message";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.OnePilotReportCount";
+ }
+ leaf two-pilot-report-count {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Number of times only two pilot was reported in HO Required message";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TwoPilotReportCount";
+ }
+ leaf three-pilot-report-count {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Number of times only three pilot was reported in HO Required message";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ThreePilotReportCount";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+ }
+
+ grouping cdma2000-one-x-ran-power-control-g {
+ description
+ "Configuration Managed Object for OTA power control attribute.";
+ leaf one-xpcfpc-incl {
+ type int64;
+ config false;
+ description
+ "Whether Forward power control information included in Power Control message";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCIncl";
+ }
+ leaf one-xpcfpcfch-min-setpt {
+ type int64;
+ units "0.125 dB";
+ config false;
+ description
+ "The value for the minimum Fundamental Channel Outer Loop Eb/Nt setpoint, in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMinSetpt";
+ }
+ leaf one-xpcfpcfch-max-setpt {
+ type int64;
+ units "0.125 dB";
+ config false;
+ description
+ "The value for the maximum Fundamental Channel Outer Loop Eb/Nt setpoint, in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMaxSetpt";
+ }
+ leaf one-xpcrpc-incl {
+ type int64;
+ config false;
+ description
+ "Whether reverse Power control information included in the Power Control Message.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCRPCIncl";
+ }
+ leaf one-xpcfch-chan-adj-gain {
+ type int64;
+ units "0.125 dB";
+ config false;
+ description
+ "Channel adjustment gain (in {{units}}) for Reverse Fundamental Channel.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFCHChanAdjGain";
+ }
+ leaf one-xpc-pwr-rep-thresh {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "The number of bad frames to be received in a measurement period on the channel which carries the Power Control Subchannel before mobile stations are to generate a Power easurement Report Message";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepThresh";
+ }
+ leaf one-xpc-pwr-rep-frames {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "Power control reporting frame count. Number of frames over which the mobile station measures frame errors. For example, 7 corresponds to 55 frames. Refer to {{bibref|3GPP2-C.S0005}} for mapping between this value and the actual frame count.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepFrames";
+ }
+ leaf one-x-pwr-thresh-enable {
+ type int64;
+ config false;
+ description
+ "Threshold report mode indicator. If the mobile station is to generate threshold Power Measurement Report Messages, the base station shall set this field to '1'. If the mobile station is not to generate threshold Power Measurement Report Messages, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPwrThreshEnable";
+ }
+ leaf one-xpc-pwr-period-enable {
+ type int64;
+ config false;
+ description
+ "Periodic report mode indicator. If the mobile station is to generate periodic Power Measurement Report Messages, the base station shall set this field to '1'. If the mobile station is not to generate periodic Power Measurement Report Messages, the base station shall set this field to '0'.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrPeriodEnable";
+ }
+ leaf one-xpc-pwr-rep-delay {
+ type uint8 {
+ range "0..31";
+ }
+ units "4 frames";
+ config false;
+ description
+ "Power report delay. The period that the mobile station waits following a Power Measurement Report Message before restarting frame counting for power control purposes. The base station shall set this field to the power report delay values in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepDelay";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+ }
+
+ grouping cdma2000-one-x-ran-neighbor-list-g {
+ description
+ "This object contains information common to all neighbors of a sector. This object has only one instance.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Alias";
+ }
+ leaf pilot-inc {
+ type int64;
+ config false;
+ description
+ "pilot increment policy for this network. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.PilotInc";
+ }
+ leaf one-x-neighbor-index {
+ type int64;
+ description
+ "Macro neighbour index. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIndex";
+ }
+ leaf neighbor-config {
+ type enumeration {
+ enum "same-config" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig - SameConfig";
+ }
+ enum "same-paging" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig - SamePaging";
+ }
+ enum "diff-paging" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig - DiffPaging";
+ }
+ enum "unknown" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig - Unknown";
+ }
+ }
+ config false;
+ description
+ "Neighbor configuration in terms of number of frequencies having paging channels as defined in Section 3.7.2.3.2 of the {{bibref|3GPP2-C.S0005}} standard";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig";
+ }
+ leaf neighbor-pn {
+ type int64;
+ description
+ "PN offset of the neighbor. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborPN";
+ }
+ leaf search-priority {
+ type enumeration {
+ enum "low" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority - Low";
+ }
+ enum "medium" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority - Medium";
+ }
+ enum "high" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority - High";
+ }
+ enum "very-high" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority - VeryHigh";
+ }
+ }
+ config false;
+ description
+ "priority level for serching this neighbor. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority";
+ }
+ leaf neighbor-band {
+ type enumeration {
+ enum "0" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand - 0";
+ }
+ enum "1" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand - 1";
+ }
+ enum "2" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand - 2";
+ }
+ enum "3" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand - 3";
+ }
+ enum "4" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand - 4";
+ }
+ enum "5" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand - 5";
+ }
+ enum "6" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand - 6";
+ }
+ }
+ config false;
+ description
+ "Neighbor band class. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand";
+ }
+ leaf neighbor-frequency {
+ type int64;
+ config false;
+ description
+ "frequency of neighbor. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborFrequency";
+ }
+ leaf frequency-included {
+ type int64;
+ config false;
+ description
+ "Flag to indicate if the channel id included. See {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.FrequencyIncluded";
+ }
+ leaf in-traffic {
+ type int64;
+ config false;
+ description
+ "whether this neighbor can be used for in-traffic neighborlist message";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.InTraffic";
+ }
+ leaf overhead-msg {
+ type int64;
+ config false;
+ description
+ "whether this neighbor can be used for overhead neighborlist message";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OverheadMsg";
+ }
+ leaf base-identifier {
+ type int64;
+ config false;
+ description
+ "unique identifire of the neighboring cell (optional)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.BaseIdentifier";
+ }
+ leaf air-interface {
+ type enumeration {
+ enum "one-x" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface - OneX";
+ }
+ enum "is95" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface - IS95";
+ }
+ enum "hrpd" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface - HRPD";
+ }
+ enum "other" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface - Other";
+ }
+ }
+ config false;
+ description
+ "Air interface technology of the neighbor.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface";
+ }
+ leaf hand-out-capable {
+ type int64;
+ config false;
+ description
+ "Flag to indicate if the handOutCapability is possible.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.HandOutCapable";
+ }
+ leaf one-x-neighbor-longitude {
+ type string {
+ length "0..16";
+ }
+ config false;
+ description
+ "Longitude for this neighbor. Parameter is a string representing a floating point real number (+/- XXX.YY). Where + for East, - for West, XXX.Y ranges between 0.0 and 180.0 .";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLongitude";
+ }
+ leaf one-x-neighbor-latitude {
+ type string {
+ length "0..16";
+ }
+ config false;
+ description
+ "Lattitude for this neighbor. Parameter is a string representing a floating point number (+/-XX.Y). + for North, - for South, XX.Y ranges between 0.0 and 90.0.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLatitude";
+ }
+ leaf one-x-neighbor-msc-id {
+ type uint32 {
+ range "0..16777215";
+ }
+ config false;
+ description
+ "IOS MSCID of the neighbors. See {{bibref|3GPP2-A.S0014}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborMSCId";
+ }
+ leaf one-x-neighbor-ios-cell-id {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Cell Identifier of the neighbor (formatted according to Cell Identification Discriminator = '0000 0010', i.e., 12-bit cell value and 4-bit sector value). See {{bibref|3GPP2-A.S0014}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIOSCellId";
+ }
+ leaf force-in-overhead {
+ type boolean;
+ config false;
+ description
+ "If {{param}} is set to {{true}}, the FAP SHOULD include this Neighbor List entry in the Neighbor List overhead messages (see {{bibref|3GPP2-C.S0005}}. Otherwise, {{param}} is set to {{false}}, in which case the FAP MAY include this Neighbor List entry in the Neighbor List overhead messages.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.ForceInOverhead";
+ }
+ leaf included-in-overhead {
+ type boolean;
+ description
+ "If {{param}} is set to {{true}}, the FAP is currently including this Neighbor List entry in the Neighbor List overhead messages (see {{bibref|3GPP2-C.S0005}}. Otherwise, {{param}} is set to {{false}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.IncludedInOverhead";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+ }
+
+ grouping cdma2000-one-x-ran-apidm-g {
+ description
+ "This object can be configured only if {{param|.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable}} is set to {{true}}.";
+ leaf association-type {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "The FAP shall set this field to the value shown in {{bibref|3GPP2-C.S0005}} corresponding to the configuration of the base station.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.AssociationType";
+ }
+ leaf apidlen {
+ type uint8 {
+ range "0..15";
+ }
+ config false;
+ description
+ "The FAP shall set this field to the length of the access point identification in units of 16 bits. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDLEN";
+ }
+ leaf apid {
+ type binary {
+ length "0..16";
+ }
+ config false;
+ description
+ "Access Point Identification. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APID";
+ }
+ leaf apidmask {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "Access Point identification Mask. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDMASK";
+ }
+ leaf iosmscid {
+ type uint32 {
+ range "0..16777215";
+ }
+ config false;
+ description
+ "MSC_ID of the base station. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSMSCID";
+ }
+ leaf ioscellid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "CELL_ID of the base station. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSCELLID";
+ }
+ leaf intrafreqhohysincl {
+ type boolean;
+ config false;
+ description
+ "This field indicates whether the INTRAFREQHOHYS field is valid and included in Access Point Identification message. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYSINCL";
+ }
+ leaf intrafreqhohys {
+ type uint8 {
+ range "0..127";
+ }
+ config false;
+ description
+ "Intra Frequency Handoff Hysteresis. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYS";
+ }
+ leaf intrafreqhoslopeincl {
+ type boolean;
+ config false;
+ description
+ "This field indicates whether the INTRAFREQHOSLOPE field is valid and included in Access Point Identification message. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPEINCL";
+ }
+ leaf intrafreqhoslope {
+ type uint8 {
+ range "0..63";
+ }
+ config false;
+ description
+ "Intra Frequency Handoff Slope. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPE";
+ }
+ leaf interfreqhohysincl {
+ type boolean;
+ config false;
+ description
+ "This field indicates whether the INTERFREQHOHYS field is valid and included in Access Point Identification message. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYSINCL";
+ }
+ leaf interfreqhohys {
+ type uint8 {
+ range "0..127";
+ }
+ config false;
+ description
+ "Inter frequency handoff hysteresis. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYS";
+ }
+ leaf interfreqhoslopeincl {
+ type boolean;
+ config false;
+ description
+ "This field indicates whether the INTERFREQHOSLOPE field is valid and included in Access Point Identification message. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPEINCL";
+ }
+ leaf interfreqhoslope {
+ type uint8 {
+ range "0..63";
+ }
+ config false;
+ description
+ "Inter frequency handoff slope. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPE";
+ }
+ leaf interfreqsrchthincl {
+ type boolean;
+ config false;
+ description
+ "This field indicates whether the INTERFREQSRCHTH field is valid and included in Access Point Identification message. Refer {{bibref|3GPP2-C.S0005}} for definition.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTHINCL";
+ }
+ leaf interfreqsrchth {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "Inter-frequency search threshold. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTH";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+ }
+
+ grouping cdma2000-one-x-ran-apidtm-g {
+ description
+ "This object can be configured only if {{param|.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable}} is set to {{true}}.";
+ leaf apidtextcha-ri-len {
+ type uint16 {
+ range "0..256";
+ }
+ config false;
+ description
+ "Access Point identification Text CHARi field Length ({{param|APIDTEXTCHARi}}). Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARiLEN";
+ }
+ leaf apidtextmsgencoding {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "Access Point identification Text message encoding. Refer {{bibref|3GPP2-C.S0005}} and {{bibref|3GPP2-C.R1001}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTMSGENCODING";
+ }
+ leaf apidtextcha-ri {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "Access Point Identification Text. Refer {{bibref|3GPP2-C.S0005}} and {{bibref|3GPP2-C.R1001}} for definitions.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARi";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+ }
+
+ grouping cdma2000-one-x-ran-appim-g {
+ description
+ "This object can be configured only if {{param|.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable}} is set to {{true}}.";
+ leaf lifetime {
+ type uint8 {
+ range "0..255";
+ }
+ config false;
+ description
+ "Lifetime of the information in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.LIFETIME";
+ }
+ leaf numappirec {
+ type uint16 {
+ range "0..511";
+ }
+ config false;
+ description
+ "The number of entries for {{object|.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.NUMAPPIREC";
+ }
+ leaf appirec-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIRECNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+ }
+
+ grouping cdma2000-one-x-ran-appim-appirec-g {
+ description
+ "This object can be configured only if {{param|.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable}} is set to {{true}}.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Alias";
+ }
+ leaf apassntype {
+ type uint8 {
+ range "0..7";
+ }
+ config false;
+ description
+ "Access point association type the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APASSNTYPE";
+ }
+ leaf apsidsameasprevious {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "SID same as previous indicator in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSIDSAMEASPREVIOUS";
+ }
+ leaf apnidsameasprevious {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "NID same as previous indicator in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNIDSAMEASPREVIOUS";
+ }
+ leaf apbandsameasprevious {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Bandclass same as previous indicator in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBANDSAMEASPREVIOUS";
+ }
+ leaf apfreqsameasprevious {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Frequency same as previous indicator in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQSAMEASPREVIOUS";
+ }
+ leaf appnrecsameasprevious {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "PN offset same as previous indicator in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECSAMEASPREVIOUS";
+ }
+ leaf apsid {
+ type uint16 {
+ range "0..32767";
+ }
+ description
+ "Access point SID in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSID";
+ }
+ leaf apnid {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Access point NID in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNID";
+ }
+ leaf apband {
+ type uint8 {
+ range "0..31";
+ }
+ description
+ "Access point bandclass in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBAND";
+ }
+ leaf apfreq {
+ type uint16 {
+ range "0..2047";
+ }
+ description
+ "Access point frequency in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQ";
+ }
+ leaf appnrectype {
+ type uint8 {
+ range "0..7";
+ }
+ description
+ "Access point PN offset in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECTYPE";
+ }
+ leaf appnreclen {
+ type uint8 {
+ range "0..31";
+ }
+ description
+ "Length in octets of the access point PN record ({{param|APPNREC}}) in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECLEN";
+ }
+ leaf appnrec {
+ type binary {
+ length "0..31";
+ }
+ description
+ "Access point PN Record in the access point pilot information record. Refer {{bibref|3GPP2-C.S0005}} for definitions";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNREC";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+ }
+
+ grouping cdma2000-one-x-pcf-config-g {
+ description
+ "CDMA2000 1x PCF configuration information.";
+ leaf pcfpdsn-health-monitor-interval {
+ type uint8 {
+ range "0..180";
+ }
+ units "seconds";
+ config false;
+ description
+ "PDSN health check monitor interval in {{units}}. Setting the value to 0 disables the PDSN Health Monitoring Feature. Setting any non-zero value enables the PDSN Health Monitoring Feature and sets that non-zero value as the timer interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPDSNHealthMonitorInterval";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+ }
+
+ grouping cdma2000-one-x-pcf-config-pcf-performance-stats-g {
+ description
+ "This object is used in obtaining the PCF stats";
+ leaf a10-setup-failure-no-reason {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with an unspecified reason (A11 error code : 0x80)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+ }
+ leaf a10-setup-failure-admin-prohibit {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Admin Prohibited\" (A11 error code : 0x81).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+ }
+ leaf a10-setup-failure-insuff-resources {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Insufficient Resources\" (A11 error code: 0x82).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+ }
+ leaf a10-setup-failure-failed-auth {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Mobile Node Authentication Failure\" (A11 error code: 0x83).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+ }
+ leaf a10-setup-failure-id-mismatch {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Id Mismatch\" (A11 error code: 0x85)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+ }
+ leaf a10-setup-failure-malformed-req {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Malformed Request\" (A11 error code: 0x86)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+ }
+ leaf a10-setup-failure-unknown-pdsn {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Unknown PDSN\" (A11 error code: 0x88)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+ }
+ leaf a10-setup-failure-unsupp-vend-id {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Unsupported Vendor Id\" (A11 error code: 0x89)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+ }
+ leaf total-a10-closed-by-rnc {
+ type uint64;
+ description
+ "Number of A10 closed by the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+ }
+ leaf total-a10-closed-by-pdsn {
+ type uint64;
+ description
+ "Number of A10 closed by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+ }
+ leaf total-a10-success-pages {
+ type uint64;
+ description
+ "Numebr of A10 Pages initiated by PCFsucceeded.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+ }
+ leaf total-a10-failed-pages {
+ type uint64;
+ description
+ "Numebr of A10 Pages initiated by PCF failed.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+ }
+ leaf total-a10-ingress-bytes {
+ type uint64;
+ units "bytes";
+ description
+ "Number of {{units}} received from the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+ }
+ leaf total-a10-egress-bytes {
+ type uint64;
+ units "bytes";
+ description
+ "Number of {{units}} transmitted to the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+ }
+ leaf a10-reg-update-received {
+ type uint64;
+ description
+ "Number of A10 Registration updates received by the FAP PCF";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+ }
+ leaf total-a10-dropped-pages {
+ type uint64;
+ description
+ "Number of A10 Pages initiated by PCF dropped";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+ }
+
+ grouping cdma2000-one-x-batch-pcfpdsn-g {
+ description
+ "The Batch configuration Object used to configure PDSN table using a start and end IP address. The order of the address is used as part of PDSN selection algorithm, e.g., the first element is considered PDSN number 0. (Refer to {{bibref|3GPP2-A.S0013}}). To get individual PDSN entries use the {{object|.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.}}.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Alias";
+ }
+ leaf batch-table-number {
+ type int64;
+ description
+ "The BatchTable Number should be given only once during the creation of a Batch Table. This is the Key Attribute that uniquely identifies a BatchTable entry. This number indicates the index of this batch to determine the PDSN number in the PDSN selection algorithm ({{bibref|3GPP2-A.S0013}}).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableNumber";
+ }
+ leaf batch-table-start-ip-address {
+ type inet:ip-address;
+ config false;
+ description
+ "Start IP address of the range of PDSNs.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+ }
+ leaf batch-table-end-ip-address {
+ type inet:ip-address;
+ config false;
+ description
+ "End IP address of the range of PDSNs.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+ }
+ leaf batch-table-security-parameter-index {
+ type uint32 {
+ range "0 | 256..4294967295";
+ }
+ config false;
+ description
+ "Security Parameter Index to be used.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+ }
+ leaf batch-table-secret-key {
+ type binary {
+ length "0..16";
+ }
+ config false;
+ description
+ "Secret key in 32-digit hexidecimal representation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecretKey";
+ }
+ leaf batch-table-ios-version {
+ type enumeration {
+ enum "tia-878-ballot" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-ballot";
+ }
+ enum "tia-878-1" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-1";
+ }
+ enum "tia-878-a" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-a";
+ }
+ enum "tia-878-legacy" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-legacy";
+ }
+ }
+ config false;
+ description
+ "IOS Version of this PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+ }
+ leaf batch-table-pdsn-admin-status {
+ type int64;
+ config false;
+ description
+ "Administrative status of this PDSN. 0- UP 1-DOWN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+ }
+ leaf pdsn-type {
+ type enumeration {
+ enum "one-x" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType - OneX";
+ }
+ enum "hrpd-rev0" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType - HRPDRev0";
+ }
+ enum "hrpd-rev-a" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType - HRPDRevA";
+ }
+ }
+ config false;
+ description
+ "Indicates the PDSN type for this batch.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+ }
+
+ grouping cdma2000-one-x-pcfpdsn-g {
+ description
+ "PCFPDSN Object configured for 1x. {{object|.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.}} table should be used to configure PDSN details.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Alias";
+ }
+ leaf pdsn-number {
+ type int64;
+ description
+ "Index of this PDSN object in the PCFPDSNCollection array. The index is used as PDSN number in PDSN selection algorithm. ({{bibref|3GPP2-A.S0013}})";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNNumber";
+ }
+ leaf security-parameter-index {
+ type uint32 {
+ range "0 | 256..4294967295";
+ }
+ description
+ "Security Parameter Index used";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityParameterIndex";
+ }
+ leaf security-key {
+ type binary {
+ length "0..16";
+ }
+ description
+ "Secret key in 32-digit hexidecimal representation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityKey";
+ }
+ leaf ios-version {
+ type enumeration {
+ enum "tia-878-ballot" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion - TIA-878-ballot";
+ }
+ enum "tia-878-1" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion - TIA-878-1";
+ }
+ enum "tia-878-a" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion - TIA-878-a";
+ }
+ enum "tia-878-legacy" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion - TIA-878-legacy";
+ }
+ }
+ config false;
+ description
+ "HRPD IOS Version of this PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion";
+ }
+ leaf pds-nadmin-status {
+ type int64;
+ config false;
+ description
+ "Administrative status of this PDSN. 0- UP 1-DOWN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNadminStatus";
+ }
+ leaf pdsn-health-status {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Reachability status of this PDSN. 0-unreachable, 1-reachable.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNHealthStatus";
+ }
+ leaf pdsnip-address {
+ type inet:ip-address;
+ config false;
+ description
+ "IP address of the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNIPAddress";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+ }
+
+ grouping cdma2000-one-x-pcfpdsn-a11-reg-update-stats-g {
+ description
+ "This object is used in obtaining the A11 Registration Update stats for each PDSN";
+ leaf pdsn-number-reg-update-perf {
+ type int64;
+ description
+ "The PDSN Number";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+ }
+ leaf pdsnip-address-reg-update-perf {
+ type inet:ip-address;
+ description
+ "The IP Address of the PDSN for which the A11 Reg Update stats is obtained";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+ }
+ leaf a11-reg-update-received-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-update messages receieved from a PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+ }
+ leaf a11-reg-update-id-check-fail-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages receieved from a PDSN that failed ID validation";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+ }
+ leaf a11-reg-update-auth-check-fail-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN that failed Authentication";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+ }
+ leaf a11-reg-update-for-unknown-psipdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with unknown PSI";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+ }
+ leaf a11-reg-update-unspecified-reason-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with unspecified reason code";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+ }
+ leaf a11-reg-update-ppp-timeout-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"PPP Timeout\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+ }
+ leaf a11-reg-update-registration-timeout-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Registration Timeout\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+ }
+ leaf a11-reg-update-pdsn-error-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"PDSN Error\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+ }
+ leaf a11-reg-update-inter-pcf-handoff-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Inter PCF Handoff\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+ }
+ leaf a11-reg-update-inter-pdsn-handoff-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Inter PDSN Handoff\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+ }
+ leaf a11-reg-update-pdsnoamp-intervention-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"PDSN OAMP Intervention\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+ }
+ leaf a11-reg-update-accounting-error-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Accounting Error\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+ }
+ leaf a11-reg-update-user-failed-authentication-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"User Failed Authentication\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+ }
+ leaf a11-reg-update-unknown-cause-code-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with Unknown Cause Code";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+ }
+ leaf a11-reg-update-without-reason-code-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with PDSN Code Not Included";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+ }
+
+ grouping cdma2000-one-x-pcfpdsn-pcfpdsn-stats-g {
+ description
+ "This object is used in obtaining the PCF PDSN stats for each PDSN";
+ leaf a10-setup-attempts-pdsn {
+ type uint64;
+ description
+ "Number of attempts the PCF made to establish an A10 connection with PDSN. If PCF fails establishing such a connection on this PDSN and goes on to use another PDSN for that connection, it will be counted as two setup attempts.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+ }
+ leaf a10-setup-successes-pdsn {
+ type uint64;
+ description
+ "Number of times PCF succeeded in establishing an A10 connection with this PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+ }
+ leaf a10-setup-blocks-pdsn {
+ type uint64;
+ description
+ "Number of times PCF was blocked in establishing an A10 connection with this PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+ }
+ leaf a11-reg-req-denied-id-mismatch-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Id Mismatch\" (A11 error code: 0x85) by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+ }
+ leaf a11-reg-req-denied-unknown-pdsnpdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Unknown PDSN\" (A11 error code: 0x88)by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+ }
+ leaf a11-reg-req-denied-no-reason-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with no reason code by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+ }
+ leaf a11-reg-req-denied-admin-prohibit-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Admin Prohibited\" (A11 error code : 0x81) by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+ }
+ leaf a11-reg-req-denied-insuff-resources-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Insufficient Resources\" (A11 error code: 0x82) by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+ }
+ leaf a11-reg-req-denied-failed-auth-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Mobile Node Authentication Failure\" (A11 error code: 0x83) by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+ }
+ leaf a11-reg-req-denied-malformed-req-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Malformed Request\" (A11 error code: 0x86) by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+ }
+ leaf a11-reg-req-denied-unsupp-vend-id-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Unsupported Vendor Id\" (A11 error code: 0x8D)by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+ }
+ leaf a11-reg-req-denied-reverse-tunnel-unavailable-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Reverse Tunnel Unavailable\" (A11 error code: 0x89)by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+ }
+ leaf a11-reg-req-denied-reverse-tunnel-tbit-not-set-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Reverse Tunnel Tbit Not Set\" (A11 error code: 0x8A)by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+ }
+ leaf a11-reg-req-denied-unknown-error-code-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with an unspecified reason (A11 error code : 0x80) by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+ }
+ leaf a10-reg-req-for-registration-retransmissions-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Requests retransmitted during A10 setup";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+ }
+ leaf a10-reg-req-for-re-registration-retransmissions-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Requests retransmitted during A10 reregistration";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+ }
+ leaf a10-reg-req-for-release-retransmissions-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Requests retransmitted during A10 realease";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+ }
+ leaf pdsn-number-pdsn-perf {
+ type int64;
+ description
+ "The PDSN Number";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+ }
+ leaf pds-nip-address-pdsn-perf {
+ type inet:ip-address;
+ description
+ "The IP Address of the PDSN for which the PCF PDSN stats is obtained";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+ }
+
+ grouping cdma2000-one-x-stats-g {
+ description
+ "This object contains 1x FAP statistics aggregated over all connections of all users over all sectors.";
+ leaf registration-attempts {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of registration attempts";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationAttempts";
+ }
+ leaf registration-fails {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of registrations failed";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationFails";
+ }
+ leaf registrations-blocked {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Unauthorized registrations blocked by admission control";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationsBlocked";
+ }
+ leaf page-attempts {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of attemots to page requests received from the core";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageAttempts";
+ }
+ leaf page-fails {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of page requests rejected or not responded";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageFails";
+ }
+ leaf voice-call-attempts {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of voice call attempts";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallAttempts";
+ }
+ leaf voice-call-failures {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of voice call attempts which failed for various reasons";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallFailures";
+ }
+ leaf voice-calls-blocked {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of voice calls blocked due to lack of authorization";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsBlocked";
+ }
+ leaf voice-calls-dropped {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Number of voice calls dropped due to various reasons other than a normal call release";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsDropped";
+ }
+ leaf data-call-attempts {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of data call attempts";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallAttempts";
+ }
+ leaf data-call-failures {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of data call attemots failed for various reasons";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallFailures";
+ }
+ leaf data-calls-blocked {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of data calls failed due to lack of authorization";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsBlocked";
+ }
+ leaf data-calls-dropped {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of data calls dropped due to reasons other than a normal release.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsDropped";
+ }
+ leaf average-voice-call {
+ type uint32 {
+ range "0..4294967295";
+ }
+ units "milliseconds";
+ description
+ "Average voice call duration in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageVoiceCall";
+ }
+ leaf average-data-call {
+ type uint32 {
+ range "0..4294967295";
+ }
+ units "milliseconds";
+ description
+ "Average data call duration in {{units}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageDataCall";
+ }
+ leaf average-session-in-sec {
+ type uint32 {
+ range "0..4294967295";
+ }
+ units "seconds";
+ description
+ "Average session duration in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageSessionInSec";
+ }
+ leaf total-voice-calls {
+ type uint32 {
+ range "0..4294967295";
+ }
+ units "seconds";
+ description
+ "Total number of successful voice calls";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalVoiceCalls";
+ }
+ leaf total-data-calls {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Total number of successful data calls";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalDataCalls";
+ }
+ leaf fwd-voice-packet-drop-percentage {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Percentage of voice packets dropped in MAC due to signaling";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdVoicePacketDropPercentage";
+ }
+ leaf rev-voice-packet-drop-percentage {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Percentage of voice packets received with bad FQI";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevVoicePacketDropPercentage";
+ }
+ leaf fwd-avg-data-rate {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Average data rate of the scheduler on the forward link";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdAvgDataRate";
+ }
+ leaf rev-avg-data-rate {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Average data rate of the scheduler on reverse link";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevAvgDataRate";
+ }
+ leaf bc-index-zero-to-one-transitions {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Num of times the bcIndex was changed from 0 to 1 in the Extended System Parameters Message.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexZeroToOneTransitions";
+ }
+ leaf bc-index-one-to-zero-transitions {
+ type uint32 {
+ range "0..4294967295";
+ }
+ description
+ "Num of times the bcIndex was changed from 0 to 1 in the Extended System Parameters Message.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexOneToZeroTransitions";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+ }
+
+ grouping cdma2000-one-x-redirect-g {
+ description
+ "CDMA2000 1x service redirection parameters.";
+ leaf redirect-channel-number {
+ type uint16 {
+ range "0..2047";
+ }
+ config false;
+ description
+ "The channel number set from ACS that the FAP uses to redirect the MS in case of closed access or when exceeding session capacity. The ACS shall push this if the the operator has provided this information in a configuration file. If this is not configured, the FAP rejects the AT. The supported range is 0..2047.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectChannelNumber";
+ }
+ leaf redirect-band-class {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "The bandclass set from ACS that the FAP uses to redirect the MS incase of closed access or when exceeding session capacity. The ACS shall push this if the the operator has provided this information in a configuration file. If this is not configured, the FAP rejects the MS. The supported range is 0..9.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectBandClass";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+ }
+
+ grouping cdma2000-hrpd-g {
+ description
+ "The object contains attributes related to HRPD.";
+ leaf pcfpdsn-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSNNumberOfEntries";
+ }
+ leaf max-batch-pcfpdsn-entries {
+ type uint64;
+ description
+ "Maximum number of entries in the {{object|.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.MaxBatchPCFPDSNEntries";
+ }
+ leaf batch-pcfpdsn-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSNNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+ }
+
+ grouping cdma2000-hrpd-ran-g {
+ description
+ "The object contains attributes related to HRPD RAN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.";
+ }
+
+ grouping cdma2000-hrpd-ran-rf-g {
+ description
+ "Contains the details related to HRPD RF";
+ leaf hrpd-car-band-class {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "The Band Class this HRPD Carrier object is to operate on. Reference - {{bibref|3GPP2-C.S0057}}, Band Class Specification for CDMA2000 Spread Spectrum Systems.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDCarBandClass";
+ }
+ leaf-list rfcnfl {
+ type string {
+ length "0..64";
+ }
+ config false;
+ min-elements 1;
+ description
+ "{{list}} Each item is a FL Radio Frequency Channel Number (RFCN). Self-configuration for RFCNFL is controlled by {{param|.Capabilities.CDMA2000.HRPD.SelfConfig.RFCNFLConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.HRPD.SelfConfig.RFCNFLSelfConfigEnable}} from an enabled perspective. If the FAP's self-configuration capability for RFCNFL is available and enabled, this parameter MAY contain more than one item and the FAP is expected to select one from the list for {{param|RFCNFLInUse}}. If the self-configuration capability is not available or not enabled, then this parameter SHOULD contain only a single item. If multiple items are specified, they are done in the order of preference.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL";
+ }
+ leaf rfcnfl-in-use {
+ type uint64;
+ description
+ "The FL RFCN being used by the FAP. Self-configuration for RFCNFL is controlled by {{param|.Capabilities.CDMA2000.HRPD.SelfConfig.RFCNFLConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.HRPD.SelfConfig.RFCNFLSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in {{param|RFCNFL}}. If the self-configuration capability is not available or not enabled, then this parameter contains the first value in {{param|RFCNFL}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFLInUse";
+ }
+ leaf-list pilot-pn {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "{{list}} (maximum length 32) (minimum 1 items) of strings. Each item is a pilot PN offset in units of 64 PN chips. Self-configuration for pilot PN is controlled by {{param|.Capabilities.CDMA2000.HRPD.SelfConfig.PilotPNConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.HRPD.SelfConfig.PilotPNSelfConfigEnable}} from an enabled perspective. If the FAP's self-configuration capability for Pilot PN Offset is available and enabled, this parameter MAY contain more than one item and the FAP is expected to select one from the list for {{param|PilotPNInUse}}. If the self-configuration capability is not available or not enabled, then this parameter SHOULD contain only a single item. The multiplicity of the PN offsets values can also be expressed by defining a range using \"..\" (two periods) between two values. In this case, the combination of two values defines the lower-bound and upper-bound of the range inclusive. The order of the items has no significance.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN";
+ }
+ leaf pilot-pn-in-use {
+ type uint64;
+ config false;
+ description
+ "The Pilot PN Offset being used by the FAP. Self-configuration for Pilot PN Offset is controlled by {{param|.Capabilities.CDMA2000.HRPD.SelfConfig.PilotPNConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.HRPD.SelfConfig.PilotPNSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the choices provided in {{param|PilotPN}}. If the self-configuration capability is not available or not enabled, then this parameter contains the first value in {{param|PilotPN}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPNInUse";
+ }
+ leaf maxfap-tx-power {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Defines the maximum transmission power allowed on the FAP. {{param}} is expressed as a range of allowed maximum power levels with \"..\" (two periods) between the upper and lower values, i.e. \"<;Pmax_low>..<;Pmax_high>\". {{param}} identifies the limits between which the FAP can self-configure its maximum transmit power. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerSelfConfigEnable}} from an enabled perspective. <;Pmax_low> and <;Pmax_high> are measured in dBm and have a range of -40.0 to 20.0 incremented by 0.1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower";
+ }
+ leaf maxfap-tx-power-in-use {
+ type int64;
+ units "0.1 dBm";
+ config false;
+ description
+ "The maximum transmission power measured in {{units}} currently used by the FAP. Actual values of the maximum transmission power are -40.0 dBm to 20.0 dBm in steps of {{units}}. The value of {{param}} divided by 10 yields the actual value of the maximum transmission power. Self-configuration for maximum transmission power is controlled by {{param|.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerSelfConfigEnable}} from an enabled perspective. If the self-configuration capability is available and enabled, this parameter indicates the value selected by the FAP among the range provided in {{param|MaxFAPTxPower}}. If the self-configuration capability is not available or not enabled, then this parameter contains a value selected by the ACS.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPowerInUse";
+ }
+ leaf control-channel-rate {
+ type int64;
+ config false;
+ description
+ "The data rate of the Control Channel of this HRPD SectorElement object. Reference - {{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification, section-10.4.1.3.2.4";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ControlChannelRate";
+ }
+ leaf sync-capsule-offset {
+ type int64;
+ config false;
+ description
+ "The offset from the control channel cycle boundary at which the synchronous capsules are to be transmitted for this HRPD SectorElement object. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification, section-9.2.6.1.4.1.2";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SyncCapsuleOffset";
+ }
+ leaf rab-length {
+ type int64;
+ config false;
+ description
+ "The Reverse Activity Bit (RAB) length measured in slots for this HRPD SectorElement object. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification, section-7.8.6.2.2, Table 9.7.6.2-2.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabLength";
+ }
+ leaf rab-offset {
+ type int64;
+ config false;
+ description
+ "The Reverse Activity Bit (RAB) offset for this HRPD SectorElement object. Reference - {{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification, section-7.8.6.2.2.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabOffset";
+ }
+ leaf sector-id {
+ type binary {
+ length "16";
+ }
+ config false;
+ description
+ "The 128 bit Sector ID for this HRPD SectorElement object. The Sector ID is used in the computation of the long code mask. See {{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SectorID";
+ }
+ leaf color-code {
+ type int64;
+ config false;
+ description
+ "The HRPD color code associated with this sector-element. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ColorCode";
+ }
+ leaf subnet-mask-length {
+ type int64;
+ units "bits";
+ config false;
+ description
+ "{{param}} is the length of the HRPD SubnetMask in {{units}}. See {{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SubnetMaskLength";
+ }
+ leaf hrpd-sec-el-reverse-link-silence-duration {
+ type int64;
+ units "frames";
+ config false;
+ description
+ "Duration of the Reverse Link Silence Interval in units of {{units}}. The duration of the silence interval to be maintained on the reverse link. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification. Section-9.4.6.1.4.1.1.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilenceDuration";
+ }
+ leaf hrpd-sec-el-reverse-link-silence-period {
+ type int64;
+ units "frames";
+ config false;
+ description
+ "The Reverse Link Silence Interval is defined as the time interval of duration ReverseLinkSilenceDuration frames that starts at times T where T is the CDMA System Time in units of {{units}} and it satisfies the following equation: T mod (2048 x 2^(ReverseLinkSilencePeriod) - 1) = 0. The period in the access cycle duration for which the silence interval shall be maintained on the reverse link. {{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification. Section-9.4.6.1.4.1.1.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilencePeriod";
+ }
+ leaf open-loop-adjust {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "The open loop adjustment (in {{units}}) for the access parameters of this sector-element. FAP sets this field to the negative of the nominal power to be used by ATs in the open loop power estimate, expressed as an unsigned value in units of 1 dB. The value used by the AT is -1 times the value of this field. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification. Section-9.4.6.2.6";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.OpenLoopAdjust";
+ }
+ leaf probe-initial-adjust {
+ type int64;
+ units "dB";
+ config false;
+ description
+ "The probe initial adjustment (in {{units}}) for the access parameters of this sector-element. FAP sets this field to the correction factor to be used by ATs in the open loop power estimate for the initial transmission on the Access Channel, expressed as a two's complement value in units of 1 dB. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification. Section-9.4.6.2.6";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeInitialAdjust";
+ }
+ leaf probe-num-steps {
+ type int64;
+ config false;
+ description
+ "The number of power level steps for access probes for the access parameters of this sector-element. FAP sets this field to the maximum number of access probes ATs are to transmit in a single access probe sequence. The access network shall set this field to a value in the range [1 ... 15]. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification. Section-9.4.6.2.6";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeNumSteps";
+ }
+ leaf probe-power-step {
+ type int64;
+ units "0.5 dB";
+ config false;
+ description
+ "The power step size (in {{units}}) applied to successive probes on the access channel associated with this sector-element. Probe power increase step. FAPsets this field to the increase in power between probes, in resolution of 0.5 dB. Reference -{{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification. Section-9.4.6.2.6";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbePowerStep";
+ }
+ leaf a-persistence {
+ type string {
+ length "0..16";
+ }
+ config false;
+ description
+ "The A-Persistence vector, as per HRPD specification, for controlling contention access on the access channel associated with this sector-element. Reference - {{bibref|3GPP2-C.S0024-B}}, CDMA2000 High Rate Packet Data Air Interface Specification. Section-9.4.6.2.6. Format is \"0xAABBCCDD\", where AA, BB, CC, DD are in the range \"01\" through \"3F\" hex.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.APersistence";
+ }
+ leaf rssirab-threshold {
+ type int64;
+ units "0.125 dBm";
+ config false;
+ description
+ "RAB threshold for RSSI based RAB algorithm.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RSSIRABThreshold";
+ }
+ leaf load-rab-threshold {
+ type uint16 {
+ range "0..480";
+ }
+ units "0.125 dB";
+ config false;
+ description
+ "RAB threshold for Load based RAB algorithm in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.LoadRABThreshold";
+ }
+ leaf connection-rate-limit {
+ type uint8 {
+ range "0..3";
+ }
+ config false;
+ description
+ "4 different configurations.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ConnectionRateLimit";
+ }
+ leaf rfe-rl-balance-ratio {
+ type uint8 {
+ range "1..20";
+ }
+ config false;
+ description
+ "Config Parameter for DRC based rate control";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RfeRLBalanceRatio";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+ }
+
+ grouping cdma2000-hrpd-pcf-config-g {
+ description
+ "CDMA2000 HRPD PCF configuration parameters.";
+ leaf pcfpdsn-health-monitor-interval {
+ type uint8 {
+ range "0..180";
+ }
+ units "seconds";
+ config false;
+ description
+ "PDSN health check monitor interval in {{units}}. Setting the value to 0 disables the PDSN Health Monitoring Feature. Setting any non-zero value enables the PDSN Health Monitoring Feature and sets that non-zero value as the timer interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPDSNHealthMonitorInterval";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+ }
+
+ grouping cdma2000-hrpd-pcf-config-pcf-performance-stats-g {
+ description
+ "This object is used in obtaining the PCF stats";
+ leaf a10-setup-failure-no-reason {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with an unspecified reason (A11 error code : 0x80)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+ }
+ leaf a10-setup-failure-admin-prohibit {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Admin Prohibited\" (A11 error code : 0x81).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+ }
+ leaf a10-setup-failure-insuff-resources {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Insufficient Resources\" (A11 error code: 0x82).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+ }
+ leaf a10-setup-failure-failed-auth {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Mobile Node Authentication Failure\" (A11 error code: 0x83).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+ }
+ leaf a10-setup-failure-id-mismatch {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Id Mismatch\" (A11 error code: 0x85)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+ }
+ leaf a10-setup-failure-malformed-req {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Malformed Request\" (A11 error code: 0x86)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+ }
+ leaf a10-setup-failure-unknown-pdsn {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Unknown PDSN\" (A11 error code: 0x88)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+ }
+ leaf a10-setup-failure-unsupp-vend-id {
+ type uint64;
+ description
+ "Number of times the PCF was refused an A10 connection with a reason \"Unsupported Vendor Id\" (A11 error code: 0x89)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+ }
+ leaf total-a10-closed-by-rnc {
+ type uint64;
+ description
+ "Number of A10 closed by the FAP RNC";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+ }
+ leaf total-a10-closed-by-pdsn {
+ type uint64;
+ description
+ "Number of A10 closed by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+ }
+ leaf total-a10-success-pages {
+ type uint64;
+ description
+ "Numebr of A10 Pages initiated by PCFsucceeded";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+ }
+ leaf total-a10-failed-pages {
+ type uint64;
+ description
+ "Numebr of A10 Pages initiated by PCF failed";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+ }
+ leaf total-a10-ingress-bytes {
+ type uint64;
+ units "bytes";
+ description
+ "Number of {{units}} received from the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+ }
+ leaf total-a10-egress-bytes {
+ type uint64;
+ units "bytes";
+ description
+ "Number of {{units}} transmitted to the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+ }
+ leaf a10-reg-update-received {
+ type uint64;
+ description
+ "Number of A10 Registration updates received by the FAP PCF";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+ }
+ leaf total-a10-dropped-pages {
+ type uint64;
+ description
+ "Number of A10 Pages initiated by PCF dropped";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+ }
+
+ grouping cdma2000-hrpd-batch-pcfpdsn-g {
+ description
+ "The Batch configuration Object used to configure PDSN table using a start and end IP address. The order of the address is used as part of PDSN selection algorithm, e.g., the first element is considered PDSN number 0 (refer to {{bibref|3GPP2-A.S0008}} and {{bibref|3GPP2-A.S0009}}). To get individual PDSN entries use the {{object|.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.}}.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Alias";
+ }
+ leaf batch-table-number {
+ type int64;
+ description
+ "The BatchTable Number should be given only once during the creation of a Batch Table. This is the Key Attribute that uniquely identifies a BatchTable entry";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableNumber";
+ }
+ leaf batch-table-start-ip-address {
+ type inet:ip-address;
+ config false;
+ description
+ "Start IP address of the range of PDSNs";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+ }
+ leaf batch-table-end-ip-address {
+ type inet:ip-address;
+ config false;
+ description
+ "End IP address of the range of PDSNs";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+ }
+ leaf batch-table-security-parameter-index {
+ type uint32 {
+ range "0 | 256..4294967295";
+ }
+ description
+ "Security Parameter Index to be used";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+ }
+ leaf batch-table-secret-key {
+ type binary {
+ length "0..16";
+ }
+ description
+ "Secret key in 32-digit hexidecimal representation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecretKey";
+ }
+ leaf batch-table-ios-version {
+ type enumeration {
+ enum "tia-878-ballot" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-ballot";
+ }
+ enum "tia-878-1" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-1";
+ }
+ enum "tia-878-a" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-a";
+ }
+ enum "tia-878-legacy" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion - TIA-878-legacy";
+ }
+ }
+ config false;
+ description
+ "HRPD IOS Version of this PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+ }
+ leaf batch-table-pdsn-admin-status {
+ type int64;
+ config false;
+ description
+ "Administrative status of this PDSN. 0- UP 1-DOWN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+ }
+ leaf pdsn-type {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Indicates the PDSN type for this batch.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.PDSNType";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+ }
+
+ grouping cdma2000-hrpd-pcfpdsn-g {
+ description
+ "PCFPDSN Object configured for HRPD. {{object|.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.}} table should be used to configure PDSN details.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Alias";
+ }
+ leaf pdsn-number {
+ type int64;
+ description
+ "Index of this PDSN object in the PCFPDSNCollection array. The index is used as PDSN number in PDSN selection algorithm (refer to {{bibref|3GPP2-A.S0008}} and {{bibref|3GPP2-A.S0009}})";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNNumber";
+ }
+ leaf security-parameter-index {
+ type uint32 {
+ range "256..4294967295";
+ }
+ description
+ "Security Parameter Index used";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityParameterIndex";
+ }
+ leaf security-key {
+ type binary {
+ length "0..16";
+ }
+ description
+ "Secret key in 32-digit hexidecimal representation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityKey";
+ }
+ leaf ios-version {
+ type enumeration {
+ enum "tia-878-ballot" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion - TIA-878-ballot";
+ }
+ enum "tia-878-1" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion - TIA-878-1";
+ }
+ enum "tia-878-a" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion - TIA-878-a";
+ }
+ enum "tia-878-legacy" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion - TIA-878-legacy";
+ }
+ }
+ config false;
+ description
+ "HRPD IOS Version of this PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion";
+ }
+ leaf pds-nadmin-status {
+ type int64;
+ config false;
+ description
+ "Administrative status of this PDSN. 0- UP 1-DOWN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNadminStatus";
+ }
+ leaf pdsn-health-status {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Reachability status of this PDSN. 0-unreachable, 1-reachable.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNHealthStatus";
+ }
+ leaf pdsnip-address {
+ type inet:ip-address;
+ config false;
+ description
+ "IP address of the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNIPAddress";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+ }
+
+ grouping cdma2000-hrpd-pcfpdsn-a11-session-update-stats-g {
+ description
+ "This object is used in obtaining the A11 Session Update stats for each PDSN";
+ leaf pdsn-number-session-update-perf {
+ type int64;
+ description
+ "The PDSN Number";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNNumberSessionUpdatePerf";
+ }
+ leaf pdsnip-address-session-update-perf {
+ type inet:ip-address;
+ description
+ "The IP Address of the PDSN for which the A11 Session Update stats is obtained";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNIPAddressSessionUpdatePerf";
+ }
+ leaf a11-session-update-received-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from a PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateReceivedPDSN";
+ }
+ leaf a11-session-update-accepted-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates accepted for a PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateAcceptedPDSN";
+ }
+ leaf a11-session-update-extended-apipdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN that contained extended API";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateExtendedAPIPDSN";
+ }
+ leaf a11-session-update-for-unknown-psipdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN that conatained unknown PSI";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateForUnknownPSIPDSN";
+ }
+ leaf a11-session-update-denied-id-check-fail-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code \"ID Check Failed \"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedIDCheckFailPDSN";
+ }
+ leaf a11-session-update-denied-auth-check-fail-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code\"Auth Check Failed\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedAuthCheckFailPDSN";
+ }
+ leaf a11-session-update-denied-reason-unspecified-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code \"Unspecified Reason\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedReasonUnspecifiedPDSN";
+ }
+ leaf a11-session-update-denied-poorly-formed-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code \"Poorly Formed\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedPoorlyFormedPDSN";
+ }
+ leaf a11-session-update-denied-session-params-not-updated-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code \"Parameters Not Updated\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedSessionParamsNotUpdatedPDSN";
+ }
+ leaf a11-session-update-denied-qo-s-profile-id-not-supported-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code \"QoS Profile Id Not Updated\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedQoSProfileIdNotSupportedPDSN";
+ }
+ leaf a11-session-update-denied-insufficient-resources-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code \"Insufficient Resources\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedInsufficientResourcesPDSN";
+ }
+ leaf a11-session-update-denied-handoff-in-progress-pdsn {
+ type uint64;
+ description
+ "Number of A11 Session Updates received from this PDSN denied due to reason code\"Handoff In Progress\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedHandoffInProgressPDSN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+ }
+
+ grouping cdma2000-hrpd-pcfpdsn-a11-reg-update-stats-g {
+ description
+ "This object is used in obtaining the A11 Registration Update stats for each PDSN.";
+ leaf pdsn-number-reg-update-perf {
+ type int64;
+ description
+ "The PDSN Number";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+ }
+ leaf pdsnip-address-reg-update-perf {
+ type inet:ip-address;
+ description
+ "The IP Address of the PDSN for which the A11 Reg Update stats is obtained";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+ }
+ leaf a11-reg-update-received-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-update messages receieved from a PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+ }
+ leaf a11-reg-update-id-check-fail-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages receieved from a PDSN that failed ID validation";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+ }
+ leaf a11-reg-update-auth-check-fail-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN that failed Authentication";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+ }
+ leaf a11-reg-update-for-unknown-psipdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with unknown PSI";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+ }
+ leaf a11-reg-update-unspecified-reason-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with unspecified reason code";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+ }
+ leaf a11-reg-update-ppp-timeout-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"PPP Timeout\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+ }
+ leaf a11-reg-update-registration-timeout-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Registration Timeout\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+ }
+ leaf a11-reg-update-pdsn-error-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"PDSN Error\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+ }
+ leaf a11-reg-update-inter-pcf-handoff-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Inter PCF Handoff\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+ }
+ leaf a11-reg-update-inter-pdsn-handoff-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Inter PDSN Handoff\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+ }
+ leaf a11-reg-update-pdsnoamp-intervention-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"PDSN OAMP Intervention\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+ }
+ leaf a11-reg-update-accounting-error-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"Accounting Error\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+ }
+ leaf a11-reg-update-user-failed-authentication-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with reason code \"User Failed Authentication\"";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+ }
+ leaf a11-reg-update-unknown-cause-code-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with Unknown Cause Code";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+ }
+ leaf a11-reg-update-without-reason-code-pdsn {
+ type uint64;
+ description
+ "Number of A10 Reg-Update messages received from a PDSN with PDSN Code Not Included";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+ }
+
+ grouping cdma2000-hrpd-pcfpdsn-aux-a10-stats-g {
+ description
+ "This object is used in obtaining the Auxillary A10 Connection stats for each PDSN";
+ leaf pdsn-number-aux-a10-perf {
+ type int64;
+ description
+ "The PDSN Number";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNNumberAuxA10Perf";
+ }
+ leaf pdsnip-address-aux-a10-perf {
+ type inet:ip-address;
+ description
+ "The IP Address of the PDSN for which the PCF PDSN stats is obtained";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNIPAddressAuxA10Perf";
+ }
+ leaf aux-a10-connections-created-in-first-reg-req-pdsn {
+ type uint64;
+ description
+ "Number of Auxillary A10 Connections Created in the First Registration Request Message to the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInFirstRegReqPDSN";
+ }
+ leaf aux-a10-connections-created-in-subsequent-reg-req-pdsn {
+ type uint64;
+ description
+ "Number of Auxillary A10 Connections Created in Subsequent Registration Request Messages to the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInSubsequentRegReqPDSN";
+ }
+ leaf aux-a10-fwd-ip-flows-created-pdsn {
+ type uint64;
+ description
+ "Number of Forward IP Flows created with this PDSN for the Auxillary A10s";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10FwdIpFlowsCreatedPDSN";
+ }
+ leaf aux-a10-rev-ip-flows-created-pdsn {
+ type uint64;
+ description
+ "Number of Forward IP Flows created with this PDSN for the Auxillary A10s";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10RevIpFlowsCreatedPDSN";
+ }
+ leaf aux-a10-ip-flow-accounting-reg-requests-pdsn {
+ type uint64;
+ description
+ "Number of IP flow Accounting Reg Requests sent to the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10IpFlowAccountingRegRequestsPDSN";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+ }
+
+ grouping cdma2000-hrpd-pcfpdsn-pcfpdsn-stats-g {
+ description
+ "This object is used in obtaining the PCF PDSN stats for each PDSN";
+ leaf a10-setup-attempts-pdsn {
+ type uint64;
+ description
+ "Number of attempts the PCF made to establish an A10 connection with PDSN. If PCF fails establishing such a connection on this PDSN and goes on to use another PDSN for that connection, it will be counted as two setup attempts.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+ }
+ leaf a10-setup-successes-pdsn {
+ type uint64;
+ description
+ "Number of times PCF succeeded in establishing an A10 connection with this PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+ }
+ leaf a10-setup-blocks-pdsn {
+ type uint64;
+ description
+ "Number of times PCF was blocked in establishing an A10 connection with this PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+ }
+ leaf a11-reg-req-denied-id-mismatch-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Id Mismatch\" (A11 error code: 0x85) by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+ }
+ leaf a11-reg-req-denied-unknown-pdsnpdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Unknown PDSN\" (A11 error code: 0x88)by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+ }
+ leaf a11-reg-req-denied-no-reason-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with no reason code by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+ }
+ leaf a11-reg-req-denied-admin-prohibit-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Admin Prohibited\" (A11 error code : 0x81) by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+ }
+ leaf a11-reg-req-denied-insuff-resources-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Insufficient Resources\" (A11 error code: 0x82) by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+ }
+ leaf a11-reg-req-denied-failed-auth-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Mobile Node Authentication Failure\" (A11 error code: 0x83) by the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+ }
+ leaf a11-reg-req-denied-malformed-req-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with a reason \"Malformed Request\" (A11 error code: 0x86) by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+ }
+ leaf a11-reg-req-denied-unsupp-vend-id-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Unsupported Vendor Id\" (A11 error code: 0x8D)by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+ }
+ leaf a11-reg-req-denied-reverse-tunnel-unavailable-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Reverse Tunnel Unavailable\" (A11 error code: 0x89)by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+ }
+ leaf a11-reg-req-denied-reverse-tunnel-tbit-not-set-pdsn {
+ type uint64;
+ description
+ "Number ofA11 Registration Request denied with a reason \"Reverse Tunnel Tbit Not Set\" (A11 error code: 0x8A)by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+ }
+ leaf a11-reg-req-denied-unknown-error-code-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Request denied with an unspecified reason (A11 error code : 0x80) by the PDSN";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+ }
+ leaf a10-reg-req-for-registration-retransmissions-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Requests retransmitted during A10 setup";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+ }
+ leaf a10-reg-req-for-re-registration-retransmissions-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Requests retransmitted during A10 reregistration";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+ }
+ leaf a10-reg-req-for-release-retransmissions-pdsn {
+ type uint64;
+ description
+ "Number of A11 Registration Requests retransmitted during A10 realease";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+ }
+ leaf pdsn-number-pdsn-perf {
+ type int64;
+ description
+ "The PDSN Number";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+ }
+ leaf pds-nip-address-pdsn-perf {
+ type inet:ip-address;
+ description
+ "The IP Address of the PDSN for which the PCF PDSN stats is obtained";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+ }
+
+ grouping cdma2000-hrpd-redirect-g {
+ description
+ "CDMA2000 HRPD service redirection parameters.";
+ leaf redirect-channel-number {
+ type uint16 {
+ range "0..2047";
+ }
+ config false;
+ description
+ "The channel number set from ACS that the FAP uses to redirect the AT in case of closed access or when exceeding session capacity. The ACS shall push this if the the operator has provided this information in a configuration file. If this is not configured, the FAP rejects the AT. The supported range is 0..2047.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectChannelNumber";
+ }
+ leaf redirect-band-class {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "The bandclass set from ACS that the FAP uses to redirect the AT incase of closed access or when exceeding session capacity. The ACS shall push this if the the operator has provided this information in a configuration file. If this is not configured, the FAP rejects the AT. The supported range is 0..9.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectBandClass";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+ }
+
+ grouping cdma2000-hrpd-call-control-stats-g {
+ description
+ "Details on call control stats";
+ leaf num-session-setup-attempts {
+ type uint64;
+ description
+ "This parameter is a counter for the total number of session instances that are created on a specific FAP when a regular session setup attempt is initiated with an unknown RATI";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupAttempts";
+ }
+ leaf num-session-setup-successful {
+ type uint64;
+ description
+ "This parameter is a counter for the total number of successful regular session setup attempts that are initiated with an unknown RATI";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupSuccessful";
+ }
+ leaf num-current-sessions-established {
+ type uint64;
+ description
+ "This parameter is a counter for the total number of successfully established HRPD Sessions that exists on a specific picasso";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumCurrentSessionsEstablished";
+ }
+ leaf num-page-messages-to-at {
+ type uint64;
+ description
+ "The number of times a Page Message was sent to the AT to facilitate the setup of a connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPageMessagesToAt";
+ }
+ leaf num-pages-succeeded {
+ type uint64;
+ description
+ "The total number of pages succeeded";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPagesSucceeded";
+ }
+ leaf num-connections-opened {
+ type uint64;
+ description
+ "Total HRPD Connections Opened";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnectionsOpened";
+ }
+ leaf num-session-setups-failed-to-term-auth {
+ type uint64;
+ description
+ "This parameter is a counter for the total number of HRPD session setups that are aborted due to various failure reasons";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupsFailedToTermAuth";
+ }
+ leaf num-forward-rlp-bytes {
+ type uint64;
+ units "bytes";
+ description
+ "Number of HRPD packets(bytes) sent from PDSN to AT.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardRLPBytes";
+ }
+ leaf num-reverse-rlp-bytes {
+ type uint64;
+ units "bytes";
+ description
+ "No. of HRPD packets(bytes) sent from AT to PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumReverseRLPBytes";
+ }
+ leaf average-session-setup-time {
+ type uint64;
+ units "10 ms";
+ description
+ "This parameter maintains a record of the average session setup time for all successfully setup sessions on a specific FAP. The average session setup time is in units of {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AverageSessionSetupTime";
+ }
+ leaf average-page-setup-time {
+ type uint64;
+ description
+ "The average connection setup time in response to a FAP initiated page. The time is from initiation of Page to the time the connection is declared open";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AveragePageSetupTime";
+ }
+ leaf num-conn-setups-aborted {
+ type uint64;
+ description
+ "The number of connection setups that were aborted";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnSetupsAborted";
+ }
+ leaf num-forward-pre-rlp-dropped-pkts {
+ type uint64;
+ description
+ "Number of packets dropped at Pre-RLP queue due to overflow in forward direction. This counter will also be written to the performance log.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardPreRLPDroppedPkts";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+ }
+
+ grouping cdma2000-hrpd-qo-s-stats-g {
+ description
+ "This object is used in obtaining the QoS Common Performance stats";
+ leaf num-qo-s-subscriber-profile-updates-rcvd {
+ type uint64;
+ description
+ "Number of subscriber QoS profile updates received from the PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSubscriberProfileUpdatesRcvd";
+ }
+ leaf num-pdsnip-flow-updates-msg-rcvd {
+ type uint64;
+ description
+ "Number of PDSN IP flow update messages received from PDSN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgRcvd";
+ }
+ leaf num-pdsnip-flow-updates-msg-failed {
+ type uint64;
+ description
+ "Number of PDSN IP Flow updates messages that failed per RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgFailed";
+ }
+ leaf num-qo-s-setup-requests-received {
+ type uint64;
+ description
+ "Number of QoS setup requests received from the AT.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsReceived";
+ }
+ leaf num-qo-s-setup-requests-accepted {
+ type uint64;
+ description
+ "Number of QoS setup requests received from the AT that the FAP RNC accepted.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsAccepted";
+ }
+ leaf num-qo-s-setup-requests-rejected {
+ type uint64;
+ description
+ "Number of QoS setup requests from the AT that the FAP RNC rejected.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsRejected";
+ }
+ leaf num-reservation-on-requests-received {
+ type uint64;
+ description
+ "Number of ReservationOnRequest messages received from the AT.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsReceived";
+ }
+ leaf num-reservation-on-requests-accepted {
+ type uint64;
+ description
+ "Number of ReservationOnRequest messages received from the AT that the FAP RNC accepted.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsAccepted";
+ }
+ leaf num-reservation-on-requests-rejected {
+ type uint64;
+ description
+ "Number of ReservationOnRequest message received from the AT that the FAP RNC rejected.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsRejected";
+ }
+ leaf num-reservation-on-requests-failed {
+ type uint64;
+ description
+ "Number of ReservationOnRequest message received from the AT that the FAP RNC failed.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsFailed";
+ }
+ leaf num-fwd-reservation-on-messages-sent {
+ type uint64;
+ description
+ "Number of times the FAP RNC sent a FwdReservationOn message to the AT to activate a forward Reservation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOnMessagesSent";
+ }
+ leaf num-rev-reservation-on-messages-sent {
+ type uint64;
+ description
+ "Number of times the FAP RNC sent a RevReservationOn message to the AT to activate a reverse Reservation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOnMessagesSent";
+ }
+ leaf num-reservation-off-requests-received {
+ type uint64;
+ description
+ "Number of ReservationOffRequest message is received from the AT.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsReceived";
+ }
+ leaf num-reservation-off-requests-accepted {
+ type uint64;
+ description
+ "Number of ReservationOffRequest messages received from the AT that the FAP RNC accepted.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsAccepted";
+ }
+ leaf num-reservation-off-requests-rejected {
+ type uint64;
+ description
+ "Number of ReservationOffRequest messages received from the AT that the FAP RNC rejected.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsRejected";
+ }
+ leaf num-fwd-reservation-off-messages-sent {
+ type uint64;
+ description
+ "Number of times the FAP RNC sent a FwdReservationOff message to the AT to deactivate a forward Reservation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOffMessagesSent";
+ }
+ leaf num-rev-reservation-off-messages-sent {
+ type uint64;
+ description
+ "Number of times the FAP RNC sent a RevReservationOff message to the AT to deactivate a reverse Reservation.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOffMessagesSent";
+ }
+ leaf num-qo-s-release-requests-received {
+ type uint64;
+ description
+ "Number of QoS release requests received from the AT.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSReleaseRequestsReceived";
+ }
+ leaf num-connection-close-initiated-no-ran-rsr {
+ type uint64;
+ description
+ "Number of times FAP RNC initiated a connection close in response to the ReservationOnRequest because it did not have the RAN resources to satisfy one or more Reservations included in the request.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumConnectionCloseInitiatedNoRANRsr";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+ }
+
+ grouping cdma2000-hrpd-rnc-sig-apps-stats-g {
+ description
+ "Stats for HRPD RNC signaling procedures.";
+ leaf c-num-page-requests {
+ type uint64;
+ description
+ "Number of HRPD Page requests made after data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageRequests";
+ }
+ leaf s-num-page-requests {
+ type uint64;
+ description
+ "Number of HRPD Page requests made before data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageRequests";
+ }
+ leaf s-num-connection-setup-attempts {
+ type uint64;
+ description
+ "Number of HRPD Connection setups attempted before data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupAttempts";
+ }
+ leaf c-num-connection-setup-attempts {
+ type uint64;
+ description
+ "Number of HRPD Connection setups attempted after data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupAttempts";
+ }
+ leaf s-num-connection-setup-success {
+ type uint64;
+ description
+ "Number of HRPD Connection setups succeeded before data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupSuccess";
+ }
+ leaf c-num-connection-setup-success {
+ type uint64;
+ description
+ "Number of HRPD Connection setups succeeded after data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupSuccess";
+ }
+ leaf s-num-normal-connection-closes {
+ type uint64;
+ description
+ "The number of HRPD connections that were closed normally before data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNormalConnectionCloses";
+ }
+ leaf c-num-normal-connection-closes {
+ type uint64;
+ description
+ "The number of HRPD connections that were closed normally after data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNormalConnectionCloses";
+ }
+ leaf s-num-total-connection-closes {
+ type uint64;
+ description
+ "The total number of HRPD connections closed, normally or abnormally, data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumTotalConnectionCloses";
+ }
+ leaf c-num-total-connection-closes {
+ type uint64;
+ description
+ "The total number of HRPD connections closed, normally or abnormally, after data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumTotalConnectionCloses";
+ }
+ leaf s-num-rf-related-drops {
+ type uint64;
+ description
+ "Number of HRPD connection close because of RTC loss or No FTC before data has flowed on the A10 connection";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDrops";
+ }
+ leaf c-num-rf-related-drops {
+ type uint64;
+ description
+ "Number of HRPD connection close because of RTC loss or No FTC after data has flowed on the A10 connection";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDrops";
+ }
+ leaf s-num-page-responses {
+ type uint64;
+ description
+ "Total number of successful responses to HRPD page requests that were received from the AT before the final page timeout and before data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageResponses";
+ }
+ leaf c-num-page-responses {
+ type uint64;
+ description
+ "Total number of successful responses to HRPD page requests that were received from the AT before the final page timeout and after data has flowed on the A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageResponses";
+ }
+ leaf s-num-rf-related-drops-rtc-lost {
+ type uint64;
+ description
+ "This statistic counts the number of times the HRPD connection was dropped before data has flowed on the A10 connection because a Reverse Traffic Channel (RTC) lost indication was received, and as a result, no reverse link for the connection were available.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsRTCLost";
+ }
+ leaf c-num-rf-related-drops-rtc-lost {
+ type uint64;
+ description
+ "This statistic counts the number of times the HRPD connection was dropped after data has flowed on the A10 connection because a Reverse Traffic Channel (RTC) lost indication was received, and as a result, no reverse link for the connection were available.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsRTCLost";
+ }
+ leaf s-num-rf-related-drops-no-ftc {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were dropped before data has flowed on the A10 connection because of indications that there is no active Forward Traffic Channel (FTC) available.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsNoFTC";
+ }
+ leaf c-num-rf-related-drops-no-ftc {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were dropped after data has flowed on the A10 connection because of indications that there is no active Forward Traffic Channel (FTC) available.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsNoFTC";
+ }
+ leaf s-num-network-error-drops {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were closed before data has flowed on the A10 connection because the FAP closed the open A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDrops";
+ }
+ leaf c-num-network-error-drops {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were closed after data has flowed on the A10 connection because the FAP closed the open A10 connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDrops";
+ }
+ leaf s-num-network-error-drops-rnc-internal {
+ type uint64;
+ description
+ "This statistic counts the number of open HRPD connections that were closed before data has flowed on the A10 connection because the FAP closed the A10 connection due to internal failures.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCInternal";
+ }
+ leaf c-num-network-error-drops-rnc-internal {
+ type uint64;
+ description
+ "This statistic counts the number of open HRPD connections that were closed after data has flowed on the A10 connection because the FAP closed the A10 connection due to internal failures.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCInternal";
+ }
+ leaf s-num-network-error-drops-rnc-external {
+ type uint64;
+ description
+ "This statistic counts the number of open HRPD connections that were closed before data has flowed on the A10 connection because the FAP closed the A10 connection due to the PDSN unreachablity.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCExternal";
+ }
+ leaf c-num-network-error-drops-rnc-external {
+ type uint64;
+ description
+ "This statistic counts the number of open HRPD connections that were closed after data has flowed on the A10 connection because the FAP closed the A10 connection due to the PDSN unreachablity.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCExternal";
+ }
+ leaf s-num-network-error-drops-a10-setup-fail {
+ type uint64;
+ description
+ "This statistic counts the number of open HRPD connections that were closed before data has flowed on the A10 connection because there was failure in the A10 connection set-up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsA10SetupFail";
+ }
+ leaf c-num-network-error-drops-a10-setup-fail {
+ type uint64;
+ description
+ "This statistic counts the number of open HRPD connections that were closed after data has flowed on the A10 connection because there was failure in the A10 connection set-up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsA10SetupFail";
+ }
+ leaf s-num-misc-drops-sector-down {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were dropped before data has flowed on the A10 connection because there is only one pilot available for the connection and a sector down indication has been received for that pilot.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsSectorDown";
+ }
+ leaf c-num-misc-drops-sector-down {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were dropped after data has flowed on the A10 connection because there is only one pilot available for the connection and a sector down indication has been received for that pilot.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsSectorDown";
+ }
+ leaf s-num-misc-drops-internal-error {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were dropped before data has flowed on the A10 connection due to internal software errors.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsInternalError";
+ }
+ leaf c-num-misc-drops-internal-error {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were dropped after data has flowed on the A10 connection due to internal software errors.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsInternalError";
+ }
+ leaf c-num-misc-drops-state-mismatch {
+ type uint64;
+ description
+ "This statistic counts the number of HRPD connections that were dropped after data has flowed on the A10 connection when the FAP finds a state mismatch between itself andthe AT. Such a mismatch is found when a connection request message is received from the AT, and the connection is already open as perceived by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsStateMismatch";
+ }
+ leaf s-num-misc-drops-state-mismatch {
+ type uint64;
+ description
+ "This statistic counts the number of connections that were dropped before the demarcation point when the FAP finds a state mismatch between itself and the AT. Such a mismatch is found when a connection request message is received from the AT, and the connection is already open as perceived by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsStateMismatch";
+ }
+ leaf s-num-misc-drops-due-to-rlp {
+ type uint64;
+ description
+ "This statistic counts the number of times the HRPD connection was dropped before data has flowed on the A10 connection at the request of the Radio Link Protocol. This request is generated when the HDR Fast Path component finds that the reset acknowledgment timeout has expired for the connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsDueToRLP";
+ }
+ leaf c-num-misc-drops-due-to-rlp {
+ type uint64;
+ description
+ "This statistic counts the number of times the HRPD connection was dropped after data has flowed on the A10 connection at the request of the Radio Link Protocol. This request is generated when the HDR Fast Path component finds that the reset acknowledgment timeout has expired for the connection.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsDueToRLP";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+ }
+
+ grouping cdma2000-hrpd-access-auth-config-g {
+ description
+ "HRPD A12-related service stats.";
+ leaf a12-access-authentication-enable {
+ type int64;
+ config false;
+ description
+ "Flag to enable/Disable HRPD Access Authentication. {{true}} - Enabled, {{false}} - Disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.A12AccessAuthenticationEnable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+ }
+
+ grouping cdma2000-hrpd-access-auth-stats-g {
+ description
+ "This object is used in obtaining the Access Authentication related stats.";
+ leaf an-ppp-authentication-attempts-by-node {
+ type uint64;
+ description
+ "Number of AnPppAuthentications attempted by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AnPppAuthenticationAttemptsByNode";
+ }
+ leaf a12-requests-sent-from-node {
+ type uint64;
+ description
+ "Number of A12 Access Requests Sent from the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RequestsSentFromNode";
+ }
+ leaf a12-rejects-received-by-node {
+ type uint64;
+ description
+ "Number of A12 Access Rejects received from the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RejectsReceivedByNode";
+ }
+ leaf a12-accepts-received-by-node {
+ type uint64;
+ description
+ "Number of A12 Access Accepts received by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AcceptsReceivedByNode";
+ }
+ leaf a12-access-challenges-received-by-node {
+ type uint64;
+ description
+ "Number of A12 Access Challenges received by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AccessChallengesReceivedByNode";
+ }
+ leaf a12-retransmits-sent-from-node {
+ type uint64;
+ description
+ "Number of A12 Access Requests retransmitted from the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RetransmitsSentFromNode";
+ }
+ leaf a12-timeouts-events-for-node {
+ type uint64;
+ description
+ "Number of A12 Timeout events occurred at the FAP due to unreachability of the AAA server/ no response from the AAA server.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TimeoutsEventsForNode";
+ }
+ leaf a12-malformedresponse-received-by-node {
+ type uint64;
+ description
+ "Number of Malformed A12 Access Response received by the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12MalformedresponseReceivedByNode";
+ }
+ leaf a12-bad-authenticator-received-by-node {
+ type uint64;
+ description
+ "Number of A12 Access Response with Bad Authenticator received by the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12BadAuthenticatorReceivedByNode";
+ }
+ leaf a12-unknown-type-received-by-node {
+ type uint64;
+ description
+ "Number of A12 Packet of unknown type received by the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownTypeReceivedByNode";
+ }
+ leaf a12-unknown-pkt-received-by-node {
+ type uint64;
+ description
+ "Number of unknown A12 packets received by the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownPktReceivedByNode";
+ }
+ leaf a12-unknown-server-received-by-node {
+ type uint64;
+ description
+ "Number of A12 packets received from unknown AAA server by the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownServerReceivedByNode";
+ }
+ leaf a12-other-failure-occurences-in-node {
+ type uint64;
+ description
+ "Number of A12 packets failed due to other failure occurences in the AAA server.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12OtherFailureOccurencesInNode";
+ }
+ leaf a12-by-pass-num-ats-with-unknown-mfr-code-by-node {
+ type uint64;
+ description
+ "Number of ATs with UnknowMfrCode detected in the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12ByPassNumAtsWithUnknownMfrCodeByNode";
+ }
+ leaf a12-tx-path-fail-due-to-an-ppp-error-by-node {
+ type uint64;
+ description
+ "Number of times sending of A12 packet failed in Tx Path in the FAP RNC due to \"AnPPP Error\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToAnPppErrorByNode";
+ }
+ leaf a12-tx-path-fail-due-to-no-server-available-by-node {
+ type uint64;
+ description
+ "Number of times sending of A12 packet failed in Tx Path in the FAP RNC due to \"No Server Available\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoServerAvailableByNode";
+ }
+ leaf a12-tx-path-fail-due-to-internal-error-by-node {
+ type uint64;
+ description
+ "Number of times sending of A12 packet failed in Tx Path in the FAP RNC due to \"internal error\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToInternalErrorByNode";
+ }
+ leaf a12-tx-path-fail-due-to-no-packet-id-available-by-node {
+ type uint64;
+ description
+ "Number of times sending of A12 packet failed in Tx Path in the FAP RNC due to \"No packet id available\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoPacketIdAvailableByNode";
+ }
+ leaf a12-tx-path-fail-due-to-transmit-error-by-node {
+ type uint64;
+ description
+ "Number of times sending of A12 packet failed in Tx Path in the FAP RNC due to \"Transmit Error\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToTransmitErrorByNode";
+ }
+ leaf a12-svr-timeouts-for-node {
+ type uint64;
+ description
+ "Number of A12 server timeouts happened in the FAP RNC.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SvrTimeoutsForNode";
+ }
+ leaf a12-enh-ta-bypass-lcp-timeout-by-node {
+ type uint64;
+ description
+ "Number of LCP timeouts happened in the FAP RNC when Enhanced TA A12Bypass mode is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassLcpTimeoutByNode";
+ }
+ leaf a12-enh-ta-bypass-chap-timeout-by-node {
+ type uint64;
+ description
+ "Number of CHAP timeouts happened in the FAP RNC when Enhanced TA A12Bypass mode is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapTimeoutByNode";
+ }
+ leaf a12-enh-ta-bypass-chap-invalid-by-node {
+ type uint64;
+ description
+ "Number of CHAP Challenge response received from the AT when Enhanced TA A12Bypass mode is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapInvalidByNode";
+ }
+ leaf a12-enh-ta-bypass-chap-nai-matches-a12-bypass-list-by-node {
+ type uint64;
+ description
+ "Number of times the CHAP NAI received from the AT matches with A12Bypass List in the FAP RNC when Enhanced TA A12Bypass mode is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapNaiMatchesA12BypassListByNode";
+ }
+ leaf a12-session-ta-timeout-by-node {
+ type uint64;
+ description
+ "Number of times Session timeouts occurred due to TA.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SessionTaTimeoutByNode";
+ }
+ leaf access-auth-failed-due-to-session-close-total {
+ type uint64;
+ description
+ "Number of times the Access Authenticaiton failed due to Sesion close.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthFailedDueToSessionCloseTotal";
+ }
+ leaf access-auth-succeeded {
+ type uint64;
+ description
+ "Number of times the Access Authenticaiton succeeded.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthSucceeded";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+ }
+
+ grouping cdma2000-beacon-g {
+ description
+ "This object models the attributes to control the generalized beacon. The beacon is modeled as a beacon frame composed of multiple beacon intervals. The beacon frame start is time-aligned to the instant when 1x 80ms paging frames and HRPD control channel frames align (occurs once every 1.28s).";
+ leaf beacon-admin-status {
+ type enumeration {
+ enum "locked" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconAdminStatus - Locked";
+ }
+ enum "unlocked" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconAdminStatus - Unlocked";
+ }
+ }
+ config false;
+ description
+ "Allows administrative control of beacon.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconAdminStatus";
+ }
+ leaf beacon-oper-status {
+ type enumeration {
+ enum "locked" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus - Locked";
+ }
+ enum "unlocked" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus - Unlocked";
+ }
+ enum "fault" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus - Fault";
+ }
+ }
+ description
+ "Reports operational status of beacon.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus";
+ }
+ leaf hrpd-beacon-enable {
+ type boolean;
+ config false;
+ description
+ "If set to {{true}} the HRPD-specific beacon described by {{object|HRPDBeaconList}} object is enabled. If set to {{false}}, all HRPD beacons (if any) are contained in the BeaconList object.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconEnable";
+ }
+ leaf period {
+ type uint16 {
+ range "0..32767";
+ }
+ units "80 ms slots";
+ config false;
+ description
+ "Length and periodicity of the beacon frame in {{units}}. Reference - {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.Period";
+ }
+ leaf maxfap-beacon-tx-power {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Maximum transmission power allowed on the FAP Beacon frequencies. {{param}} is expressed as a range of allowed maximum power levels with \"..\" (two periods) between the upper and lower values, i.e. \"<;Pmax_low>..<;Pmax_high>\". {{param}} identifies the limits between which the FAP can self-configure its maximum beacon transmit power. Self-configuration for maximum beacon transmission power is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerSelfConfigEnable}} from an enabled perspective. <;Pmax_low> and <;Pmax_high> are measured in dBm and have a range of -40.0 to 20.0 incremented by 0.1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower";
+ }
+ leaf maxfap-beacon-tx-power-in-use {
+ type int64;
+ units "0.1 dBm";
+ description
+ "Maximum beacon transmission power measured in {{units}} currently used by the FAP on any beacon frequency. Actual values of the maximum transmission power are -40.0 dBm to 20.0 dBm in steps of 0.1 dB. The value of {{param}} divided by 10 yields the actual value of the maximum transmission power.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPowerInUse";
+ }
+ leaf beacon-pch-pwr-percentage {
+ type int64;
+ units "0.001 percent";
+ config false;
+ description
+ "Percentage of Max Sector Power Used By Paging Channel (expressed in {{units}}). For example, 93333 means 93.333% of the max sector power.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPchPwrPercentage";
+ }
+ leaf max-hrpd-beacon-tx-power {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Maximum transmission power allowed on the dedicated HRPD beacon. {{param}} is expressed as a range of allowed maximum power levels with \"..\" (two periods) between the upper and lower values, i.e. \"<Pmax_low>..<Pmax_high>\". MaxHRPDBeaconTxPower identifies the limits between which the FAP can self-configure its maximum beacon transmit power. Self-configuration for maximum beacon transmission power is controlled by {{param|.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerConfig}} from an availability perspective and {{param|.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerSelfConfigEnable}} from an enabled perspective. <Pmax_low> and <Pmax_high> are measured in dBm and have a range of -40.0 to 20.0 incremented by 0.1 dB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPower";
+ }
+ leaf max-hrpd-beacon-tx-power-in-use {
+ type int64;
+ units "0.1 dBm";
+ description
+ "Maximum beacon transmission power measured in dBm currently used by the FAP on any beacon frequency. Actual values of the maximum transmission power are -40.0 dBm to 20.0 in units of {{units}}. The value of {{param}} divided by 10 yields the actual value of the maximum transmission power.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPowerInUse";
+ }
+ leaf beacon-pilot-pwr-percentage {
+ type int64;
+ units "0.001 percent";
+ config false;
+ description
+ "Percentage of Max Sector Power Used By Pilot Channel (expressed in {{units}}). For example, 19950 means 19.950% of total.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPilotPwrPercentage";
+ }
+ leaf beacon-sync-pwr-percentage {
+ type int64;
+ units "0.001 percent";
+ config false;
+ description
+ "Percentage of Max Sector Power Used By Sync Channel (expressed in {{units}}). For example, 23458 means 23.458% of the max sector power.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconSyncPwrPercentage";
+ }
+ leaf max-beacon-list-entries {
+ type uint64;
+ description
+ "Maximum number of entries in the {{object|.CellConfig.CDMA2000.Beacon.BeaconList.{i}.}} object.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxBeaconListEntries";
+ }
+ leaf beacon-list-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconListNumberOfEntries";
+ }
+ leaf max-hrpd-beacon-list-entries {
+ type uint64;
+ description
+ "Maximum number of entries in the {{object|.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.}} object.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconListEntries";
+ }
+ leaf hrpd-beacon-list-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconListNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+ }
+
+ grouping cdma2000-beacon-beacon-list-g {
+ description
+ "This object models an individual beacon intervals. It may be used to model both 1x and HRPD beacons with offset from start of beacon frame measured in 80ms slots.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Alias";
+ }
+ leaf beacon-index {
+ type int64;
+ description
+ "Instance identifier for this beacon interval. Allowed range is 0..(BeaconListNumberOfEntries-1).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconIndex";
+ }
+ leaf offset {
+ type uint16 {
+ range "0..32767";
+ }
+ config false;
+ description
+ "Offset from the start of the beacon frame in 80ms slots.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Offset";
+ }
+ leaf duration {
+ type uint16 {
+ range "0..32767";
+ }
+ units "80 ms slots";
+ config false;
+ description
+ "Duration of this beacon interval in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Duration";
+ }
+ leaf transmission-format {
+ type enumeration {
+ enum "0" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TransmissionFormat - 0";
+ }
+ enum "1" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TransmissionFormat - 1";
+ }
+ }
+ config false;
+ description
+ "Determines if this beacon interval shall transmit HRPD (HRPD) or CDMA2000 1x.{HRPD=\"0\", 1x=\"1\"}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TransmissionFormat";
+ }
+ leaf beacon-band-class {
+ type int64;
+ config false;
+ description
+ "Band class for this beacon interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconBandClass";
+ }
+ leaf beacon-channel-freq {
+ type uint16 {
+ range "0..2016";
+ }
+ config false;
+ description
+ "Channel number for this beacon interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconChannelFreq";
+ }
+ leaf-list beacon-pn-offset {
+ type string {
+ length "0..32";
+ }
+ config false;
+ min-elements 1;
+ description
+ "{{list}} Each item is a pilot PN offset of the pilot beacon for this channel in units of 64 PN chips. If this parameter contains more than one item, then the FAP is expected to select one from the list as the PilotPN to be used for this channel. If the self-configuration capability is not to be used, then this parameter SHALL contain only a single item.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPNOffset";
+ }
+ leaf tx-power {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "TX power for the beacon interval (in {{units}}). If self-configuration of the Beacon Tx Power is enabled, then this value is determined by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TxPower";
+ }
+ leaf beacon-sid {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "SID for this beacon interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconSID";
+ }
+ leaf beacon-nid {
+ type uint16 {
+ range "0..32767";
+ }
+ config false;
+ description
+ "NID for this beacon interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconNID";
+ }
+ leaf beacon-pzid {
+ type uint64;
+ config false;
+ description
+ "PZID for this beacon interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPZID";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+ }
+
+ grouping cdma2000-beacon-hrpd-beacon-list-g {
+ description
+ "This object models individual HRPD beacon intervals where the beacon start is expressed as a number of HRPD control channel slots from the start of the beacon frame.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Alias";
+ }
+ leaf beacon-index {
+ type int64;
+ description
+ "Instance identifier for this beacon interval. Allowed range is 0..(HRPDBeaconListNumberOfEntries-1).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconIndex";
+ }
+ leaf c-coffset {
+ type uint16 {
+ range "0..2048";
+ }
+ config false;
+ description
+ "Offset of the current beacon interval from the start of the beacon frame, in Control Channel cycles. The HRPDBeaconList interval SHOULD not overlap in time with any beacon interval for the same channel defined in the BeaconList object.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.CCoffset";
+ }
+ leaf offset {
+ type int64;
+ config false;
+ description
+ "Start of beacon transmission with respect to the Control Channel boundary.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Offset";
+ }
+ leaf duration {
+ type uint16 {
+ range "0..256";
+ }
+ config false;
+ description
+ "Duration of the beacon transmission within a Control Channel cycle, in slots. Beacon is transmitted starting offset from the CC boundary for duration. Transmission restarts offset from the next CC boundary, given that beacon interval spans more than 1 CC cycles.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Duration";
+ }
+ leaf num-c-ccycles {
+ type uint8 {
+ range "0..48";
+ }
+ config false;
+ description
+ "Number of Control Channel Cycles this beacon interval spans.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.NumCCcycles";
+ }
+ leaf beacon-band-class {
+ type uint8 {
+ range "0..31";
+ }
+ config false;
+ description
+ "Band class for this beacon interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconBandClass";
+ }
+ leaf beacon-channel-freq {
+ type uint16 {
+ range "0..2016";
+ }
+ config false;
+ description
+ "Channel number for this beacon interval.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconChannelFreq";
+ }
+ leaf-list beacon-pn-offset {
+ type string {
+ length "0..256";
+ }
+ config false;
+ min-elements 1;
+ description
+ "{{list}} Each item is a pilot PN offset of the pilot beacon for this channel in units of 64 PN chips. If this parameter contains more than one item, then the FAP is expected to select one from the list as the PilotPN to be used for this channel. If the self-configuration capability is not to be used, then this parameter SHALL contain only a single item.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconPNOffset";
+ }
+ leaf tx-power {
+ type int64;
+ units "dBm";
+ config false;
+ description
+ "TX power for the beacon interval. If self-configuration of the HRPD Beacon Tx Power is enabled, then this value is determined by the FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.TxPower";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+ }
+
+ grouping rem-g {
+ description
+ "This object contains parameters relating to REM (Radio Environment Measurement).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.";
+ }
+
+ grouping rem-umts-g {
+ description
+ "This object contains Radio Environment Measurement parameters for UMTS FAP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.";
+ }
+
+ grouping rem-umts-wcdma-g {
+ description
+ "This object contains parameters relating to radio environment measurement capabilities for the UMTS system.";
+ leaf in-service-handling {
+ type enumeration {
+ enum "immediate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.InServiceHandling - Immediate";
+ }
+ enum "delayed" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.InServiceHandling - Delayed";
+ }
+ }
+ default "immediate";
+ config false;
+ description
+ "FAP REM behavior with respect to ongoing active connections.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.InServiceHandling";
+ }
+ leaf scan-on-boot {
+ type boolean;
+ default "true";
+ config false;
+ description
+ "Enables or disables Radio Environment Measurement during the FAP start up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanOnBoot";
+ }
+ leaf scan-periodically {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Enable Periodic Radio Environment Measurement on all enabled RAT.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanPeriodically";
+ }
+ leaf periodic-interval {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "When {{param|ScanPeriodically}} is {{true}}, this value indicates the interval in {{units}} which REM is performed while the FAP service is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.PeriodicInterval";
+ }
+ leaf periodic-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "An absolute time reference in UTC to determine when the CPE will initiate the periodic REM. Each REM MUST occur at (or as soon as possible after) this reference time plus or minus an integer multiple of the {{param|PeriodicInterval}}. {{param}} is used only to set the \"phase\" of the REM. The actual value of {{param}} can be arbitrarily far into the past or future. For example, if {{param|PeriodicInterval}} is 86400 (a day) and if {{param}} is set to UTC midnight on some day (in the past, present, or future) then periodic REMs will occur every day at UTC midnight. These MUST begin on the very next midnight, even if {{param}} refers to a day in the future. The Unknown Time value defined in {{bibref|TR-106a2|Section 3.2}} indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and needs only to adhere to the specified PeriodicInformInterval. If absolute time is not available to the CPE, its periodic REM behavior MUST be the same as if {{param}} parameter was set to the Unknown Time value.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.PeriodicTime";
+ }
+ leaf-list remplmn-list {
+ type string;
+ config false;
+ max-elements "32";
+ description
+ "{{list}} Each item is a PLMN ID to measure. PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. If {{empty}}, then no specific PLMN ID is provided, meaning that the FAP is required to scan all available PLMN IDs.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.REMPLMNList";
+ }
+ leaf-list rem-band-list {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "{{list}} Each item is a UMTS Band to measure. Each band is identified in by a roman numeral {{bibref|3GPP-TS.25.104}}. If {{empty}} then no specific UMTS band is provided, meaning that the FAP is required to scan all available bands. The order of the band indicator has no significance.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.REMBandList";
+ }
+ leaf-list uarfcndl-list {
+ type string;
+ config false;
+ max-elements "64";
+ description
+ "{{list}} Each entry is a UARFCN in the DL direction to measure. If {{empty}}, then no specific UARFCN is provided, meaning that the FAP is required to scan all UARFCNs that it is aware of.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.UARFCNDLList";
+ }
+ leaf scan-timeout {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Specifies the time-out value in {{units}}, measured from the start of the REM scan, before the REM scan will time out.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanTimeout";
+ }
+ leaf scan-status {
+ type enumeration {
+ enum "indeterminate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanStatus - Indeterminate";
+ }
+ enum "in-progress" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanStatus - InProgress";
+ }
+ enum "success" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanStatus - Success";
+ }
+ enum "error" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanStatus - Error";
+ }
+ enum "error-timeout" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanStatus - Error_TIMEOUT";
+ }
+ }
+ description
+ "Indicates the current status of this scan.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ScanStatus";
+ }
+ leaf error-details {
+ type string {
+ length "0..256";
+ }
+ description
+ "Provides more detail when the {{param|ScanStatus}} is either {{enum|Error|ScanStatus}} or {{enum|Error_TIMEOUT|ScanStatus}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.ErrorDetails";
+ }
+ leaf last-scan-time {
+ type yang:date-and-time;
+ description
+ "The time of the last UMTS system radio environment measurement.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.LastScanTime";
+ }
+ leaf max-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.REM.UMTS.WCDMA.Cell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.MaxCellEntries";
+ }
+ leaf cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.CellNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.";
+ }
+
+ grouping rem-umts-wcdma-cell-g {
+ leaf rem-umts-wcdma-cell-key {
+ type string;
+ description
+ "Key value for this object, which could be an item of a list.";
+ }
+ description
+ "Table indicating the components of the discovered cells.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.";
+ }
+
+ grouping rem-umts-wcdma-cell-rf-g {
+ description
+ "Table indicating the RF aspect of the discovered cells.";
+ leaf uarfcndl {
+ type uint16 {
+ range "0..16383";
+ }
+ description
+ "The UTRA Absolute Radio Frequency Channel Number (UARFCN) in the DL direction of an FDD mode cell. {{bibref|3GPP-TS.25.433}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.UARFCNDL";
+ }
+ leaf cpichrscp {
+ type int64;
+ units "dBm";
+ description
+ "Received signal level in {{units}} of the CPICH channel. (Ref. 3GPP TS 25.133)";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHRSCP";
+ }
+ leaf cpich-ec-no {
+ type int64;
+ units "dB";
+ description
+ "Measured EcNo. (energy per chip to interference power density) in {{units}} received in the downlink pilot channel. Actual values of the range are -24.0 {{units}} to 0.0 {{units}} in steps of 0.5 {{units}}. The value of {{param}} divided by 2 yields the actual value of the range. {{bibref|3GPP-TS.25.133|Section 9.1.2.3}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHEcNo";
+ }
+ leaf rssi {
+ type int64;
+ units "dBm";
+ description
+ "This measurement is for Inter-frequency handover evaluation, measured in total {{units}} in the band. {{bibref|3GPP-TS.25.133|Section9.1.3}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.RSSI";
+ }
+ leaf primary-scrambling-code {
+ type uint16 {
+ range "0..511";
+ }
+ description
+ "Primary scrambling code.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.PrimaryScramblingCode";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+ }
+
+ grouping rem-umts-wcdma-cell-bcch-g {
+ description
+ "Table containing the system information broadcast in the BCCH logical channel.";
+ leaf plmn-type {
+ type enumeration {
+ enum "gsm-map" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNType - GSM-MAP";
+ }
+ enum "ansi-41" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNType - ANSI-41";
+ }
+ }
+ description
+ "Type of Public Land Mobile Network (PLMN).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNType";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNID";
+ }
+ leaf lac {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Location Area Code (LAC) as defined in SIB 1 {{bibref|3GPP-TS.25.331}}. The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the LAI (Location Area ID) {{bibref|3GPP-TS.23.003}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "Routing Area Code (RAC) as defined in SIB 1 {{bibref|3GPP-TS.25.331}}. The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the RAI (Routing Area ID) {{bibref|3GPP-TS.23.003}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.RAC";
+ }
+ leaf cell-id {
+ type uint32 {
+ range "0..268435455";
+ }
+ description
+ "Cell Identity as defined in SIB3 {{bibref|3GPP-TS.25.331|Section10.3.2.2}}. {{bibref|3GPP-TS.24.008}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CellID";
+ }
+ leaf pcpich-tx-power {
+ type int64;
+ description
+ "Primary Common Pilot Channel (CPICH) power level on SIB 5/6 {{bibref|3GPP-TS.25.331|Section10.3.6.55}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PCPICHTxPower";
+ }
+ leaf csg-indicator {
+ type boolean;
+ description
+ "The CSG-indicator Information Element (IE) in the Master Information Block reflects the access mode of the CSG cell. It is hence dependent on the value of {{param|.AccessMgmt.UMTS.AccessMode}}. If {{true}} the CSG-indicator IE is present, reflecting closed access to the CSG cell. If {{false}} the CSG-indicator IE is absent, reflecting the access mode as \"not a closed-access\". {{bibref|3GPP-TS.25.331|Section 10.2.48.8.1}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGIndicator";
+ }
+ leaf csgid {
+ type uint32 {
+ range "0..134217727";
+ }
+ description
+ "Defines the Closed Subscriber Group of the Access Control List. FAP broadcasts this CSG ID in SIB3 {{bibref|3GPP-TS.25.331|Section10.3.2.8}} depending on the AccessMode.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGID";
+ }
+ leaf-list uarfcndl-list {
+ type uint16 {
+ range "0..16383";
+ }
+ max-elements "128";
+ description
+ "{{list}} Each item is a UTRA Absolute Radio Frequency Channel Number (UARFCN} in the DL direction dedicated to the CSG cells. {{param}} is broadcast in SIB 11bis {{bibref|3GPP-TS.25.331|Section 10.2.48.8.14a}}. The corresponding UTRA Absolute Radio Frequency Channel Number (UARFCN} in the UL direction is derived based on the fixed offset applicable for the frequency band.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.UARFCNDLList";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+ }
+
+ grouping rem-umts-wcdma-cell-bcch-csgpsc-split-info-g {
+ description
+ "This object contains parameters relating to the Primary Scambling Code (PSC) split information for the CSG. Defined in SIB3/11bis {{bibref|3GPP-TS.25.331|Section 10.3.2.8 and 10.3.2.9}}.";
+ leaf start-psc-range1-coefficient {
+ type uint8 {
+ range "0..63";
+ }
+ description
+ "The value of this Information Element (IE) multiplied by 8 specifies the start PSC value of the first PSC range as specified in {{bibref|3GPP-TS.25.331|Section 8.6.2.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+ }
+ leaf number-of-ps-cs {
+ type enumeration {
+ enum "5" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 5";
+ }
+ enum "10" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 10";
+ }
+ enum "15" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 15";
+ }
+ enum "20" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 20";
+ }
+ enum "30" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 30";
+ }
+ enum "40" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 40";
+ }
+ enum "50" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 50";
+ }
+ enum "64" {
+ value 8;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 64";
+ }
+ enum "80" {
+ value 9;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 80";
+ }
+ enum "120" {
+ value 10;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 120";
+ }
+ enum "160" {
+ value 11;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 160";
+ }
+ enum "256" {
+ value 12;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - 256";
+ }
+ enum "alltherest" {
+ value 13;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - alltherest";
+ }
+ enum "spare3" {
+ value 14;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - spare3";
+ }
+ enum "spare2" {
+ value 15;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - spare2";
+ }
+ enum "spare1" {
+ value 16;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs - spare1";
+ }
+ }
+ description
+ "This Information Element (IE) specifies the number of PSCs reserved for CSG cells in each PSC range.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs";
+ }
+ leaf psc-range2-offset {
+ type uint8 {
+ range "0..63";
+ }
+ description
+ "If this Information Element (IE) is included, the UE shall calculate the second PSC range as specified in {{bibref|3GPP-TS.25.331|Section 8.6.2.4}}. If this Information Element (IE) is not included, the UE shall consider the second PSC range to be not present.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.PSCRange2Offset";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+ }
+
+ grouping rem-umts-wcdma-cell-bcch-reference-position-g {
+ description
+ "This object defines parameters related to the surface point of the ellipsoid. {{bibref|3GPP-TS.23.032|Section 5}} It is characterized by the co-ordinates of an ellipsoid point with altitude, distances, and an angle of orientation. This information is used to refer to a point on the Earth's surface, or close to the Earth's surface, with the same longitude and latitude.";
+ leaf latitude {
+ type int64;
+ description
+ "This parameter specifies the latitude of the device's position in degrees, multiplied by 1 million. The positive value signifies the direction, north of the equator. The negative value signifies the direction, south of the equator. Range is from: 90.00.00' South (-90,000,000) to 90.00.00' North (90,000,000). Example: A latitude of 13.19.43' N would be represented as 13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60). Latitude of 50.00.00' S would be represented as value -50,000,000. If 0 then SIB15 is not detected in the specific cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Latitude";
+ }
+ leaf longitude {
+ type int64;
+ description
+ "This parameter specifies the longitude of the device's position in degrees, multiplied by 1 million. The positive value signifies the direction, east of the prime meridian. The negative value signifies the direction, west of the prime meridian. Range is from: 180.00.00' West (-180,000,000) to 180.00.00' East (180,000,000). Example: A longitude of 13.19.43' E would be represented as 13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60). A longitude of 50.00'0'' W would be represented as value -50,000,000. If 0 then SIB15 is not detected in the specific cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Longitude";
+ }
+ leaf uncertainty-semi-major {
+ type uint8 {
+ range "0..127";
+ }
+ description
+ "The uncertainty r is derived from the \"uncertainty code\" k by r = 10 x ( 1.1 <power> (k-1) ) {{bibref|3GPP-TS.23.032|Section6.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMajor";
+ }
+ leaf uncertainty-semi-minor {
+ type uint8 {
+ range "0..127";
+ }
+ description
+ "The uncertainty r is derived from the \"uncertainty code\" k by r = 10 x ( 1.1 <power> (k-1) ) {{bibref|3GPP-TS.23.032|Section6.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMinor";
+ }
+ leaf orientation-of-major-axis {
+ type uint8 {
+ range "0..89";
+ }
+ description
+ "The Information Element (IE) value 'N' is derived by this formula: 2N <= a < 2(N+1) Where 'a' is the orientation in degrees (0..179).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.OrientationOfMajorAxis";
+ }
+ leaf confidence {
+ type uint8 {
+ range "0..100";
+ }
+ units "percent";
+ description
+ "The degree of confidence in the ellipsoid's points expressed in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Confidence";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+ }
+
+ grouping rem-umts-gsm-g {
+ description
+ "This object contains parameters relating to GSM REM capabilities.";
+ leaf in-service-handling {
+ type enumeration {
+ enum "immediate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.InServiceHandling - Immediate";
+ }
+ enum "delayed" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.InServiceHandling - Delayed";
+ }
+ }
+ default "immediate";
+ config false;
+ description
+ "FAP REM behavior with respect to ongoing active connections.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.InServiceHandling";
+ }
+ leaf scan-on-boot {
+ type boolean;
+ default "true";
+ config false;
+ description
+ "Enables or disables Radio Environment Measurement during the FAP start up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanOnBoot";
+ }
+ leaf scan-periodically {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Enable Periodic Radio Environment Measurement on all enabled RAT.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanPeriodically";
+ }
+ leaf periodic-interval {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "When {{param|ScanPeriodically}} is {{true}}, this value indicates the interval in {{units}} which REM is performed while the FAP service is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.PeriodicInterval";
+ }
+ leaf periodic-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "An absolute time reference in UTC to determine when the CPE will initiate the periodic REM. Each REM MUST occur at (or as soon as possible after) this reference time plus or minus an integer multiple of the {{param|PeriodicInterval}}. {{param}} is used only to set the \"phase\" of the REM. The actual value of {{param}} can be arbitrarily far into the past or future. For example, if {{param|PeriodicInterval}} is 86400 (a day) and if {{param}} is set to UTC midnight on some day (in the past, present, or future) then periodic REMs will occur every day at UTC midnight. These MUST begin on the very next midnight, even if {{param}} refers to a day in the future. The Unknown Time value defined in {{bibref|TR-106a2|Section 3.2}} indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and needs only to adhere to the specified PeriodicInformInterval. If absolute time is not available to the CPE, its periodic REM behavior MUST be the same as if {{param}} parameter was set to the Unknown Time value.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.PeriodicTime";
+ }
+ leaf-list remplmn-list {
+ type string {
+ length "0..6";
+ }
+ config false;
+ description
+ "{{list}} Each item is a PLMNID. PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of the PLMNID is 5. If {{empty}} no specific PLMN ID is provided, meaning that the FAP is required to report all available PLMN IDs. If a list is provided, the FAP is expected to limit the REM measurement to the PLMN(s) specified in this list only and ignore others even if they are detected.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMPLMNList";
+ }
+ leaf-list rem-band-list {
+ type enumeration {
+ enum "t-gsm380" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - T-GSM380";
+ }
+ enum "t-gsm410" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - T-GSM410";
+ }
+ enum "gsm450" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - GSM450";
+ }
+ enum "gsm480" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - GSM480";
+ }
+ enum "gsm710" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - GSM710";
+ }
+ enum "gsm750" {
+ value 6;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - GSM750";
+ }
+ enum "t-gsm810" {
+ value 7;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - T-GSM810";
+ }
+ enum "gsm850" {
+ value 8;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - GSM850";
+ }
+ enum "p-gsm900" {
+ value 9;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - P-GSM900";
+ }
+ enum "e-gsm900" {
+ value 10;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - E-GSM900";
+ }
+ enum "r-gsm900" {
+ value 11;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - R-GSM900";
+ }
+ enum "t-gsm900" {
+ value 12;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - T-GSM900";
+ }
+ enum "dcs1800" {
+ value 13;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - DCS1800";
+ }
+ enum "pcs1900" {
+ value 14;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList - PCS1900";
+ }
+ }
+ config false;
+ description
+ "{{list}} Each item is a GSM Band to measure. {{enum}} If {{empty}} then no specific GSM band is provided, meaning that the FAP MUST scan all bands. If a list is provided, the FAP is expected to limit the REM measurement to the band(s) specified in this list only and ignore others even if they are detected.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.REMBandList";
+ }
+ leaf-list arfcn-list {
+ type string;
+ config false;
+ max-elements "64";
+ description
+ "{{list}} Each item is a GSM ARFCN to measure. If {{empty}} then no specific ARFCN is provided, meaning that the FAP is required to scan all ARFCNs. If a list is provided, the FAP is expected to limit the REM measurement to the ARFCN(s) specified in this list only and ignore others even if they are detected.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ARFCNList";
+ }
+ leaf scan-timeout {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Specifies the time-out value in {{units}}, measured from the start of the REM scan, before the REM scan will time out.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanTimeout";
+ }
+ leaf scan-status {
+ type enumeration {
+ enum "indeterminate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanStatus - Indeterminate";
+ }
+ enum "in-progress" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanStatus - InProgress";
+ }
+ enum "success" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanStatus - Success";
+ }
+ enum "error" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanStatus - Error";
+ }
+ enum "error-timeout" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanStatus - Error_TIMEOUT";
+ }
+ }
+ description
+ "Indicates the current status of this scan.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ScanStatus";
+ }
+ leaf error-details {
+ type string {
+ length "0..256";
+ }
+ description
+ "Provides more detail when the {{param|ScanStatus}} is either {{enum|Error|ScanStatus}} or {{enum|Error_TIMEOUT|ScanStatus}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.ErrorDetails";
+ }
+ leaf last-scan-time {
+ type yang:date-and-time;
+ description
+ "The time of the last GSM radio environment measurement.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.LastScanTime";
+ }
+ leaf max-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries allowed in the {{object|.REM.UMTS.GSM.Cell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.MaxCellEntries";
+ }
+ leaf cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.CellNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.";
+ }
+
+ grouping rem-umts-gsm-cell-g {
+ description
+ "Table indicating the components of the discovered cells.";
+ leaf band-indicator {
+ type enumeration {
+ enum "gsm 850" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator - GSM 850";
+ }
+ enum "gsm 900" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator - GSM 900";
+ }
+ enum "dcs 1800" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator - DCS 1800";
+ }
+ enum "pcs 1900" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator - PCS 1900";
+ }
+ }
+ description
+ "Indicates how to interpret the BCCH ARFCN.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator";
+ }
+ leaf arfcn {
+ type uint16 {
+ range "0..1023";
+ }
+ description
+ "Absolute Radio Frequency Channel Number (ARFCN) {{bibref|3GPP-TS.05.05}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.ARFCN";
+ }
+ leaf bsic {
+ type uint8 {
+ range "0..63";
+ }
+ description
+ "Base Station Identity Code {{bibref|3GPP-TS.03.03}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BSIC";
+ }
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of the PLMNID is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.PLMNID";
+ }
+ leaf lac {
+ type uint16 {
+ range "1..65535";
+ }
+ description
+ "Location Area Code (LAC) as defined in SIB1 {{bibref|3GPP-TS.25.331}}. The concatenation of PLMN ID (MCC+MNC) and LAC uniquely identifies the LAI (Location Area ID) {{bibref|3GPP-TS.23.003}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.LAC";
+ }
+ leaf rac {
+ type uint8 {
+ range "0..255";
+ }
+ description
+ "Routing Area Code (RAC) consists of up to 3 numerical characters. The concatenation of PLMN ID (MCC+MNC), LAC, and RAC uniquely identifies the Routing Area ID (RAI). {{bibref|3GPP-TS.23.003|Section 4.2}} {{bibref|3GPP-TS.25.413|Section 9.2.3.7}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RAC";
+ }
+ leaf ci {
+ type uint16 {
+ range "0..63535";
+ }
+ description
+ "Cell Identity. {{bibref|3GPP-TS.25.331|Section 10.3.2.2}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.CI";
+ }
+ leaf rssi {
+ type int64;
+ units "dBm";
+ description
+ "Received signal level in {{units}} of the BCCH carrier.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RSSI";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+ }
+
+ grouping rem-lte-g {
+ description
+ "This object contains parameters relating to radio environment measurement capabilities for the LTE system.";
+ leaf in-service-handling {
+ type enumeration {
+ enum "immediate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.InServiceHandling - Immediate";
+ }
+ enum "delayed" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.InServiceHandling - Delayed";
+ }
+ }
+ default "immediate";
+ config false;
+ description
+ "FAP REM behavior with respect to ongoing active connections.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.InServiceHandling";
+ }
+ leaf scan-on-boot {
+ type boolean;
+ default "true";
+ config false;
+ description
+ "Enables or disables Radio Environment Measurement during the FAP start up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanOnBoot";
+ }
+ leaf scan-periodically {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Enable Periodic Radio Environment Measurement on LTE EUTRAN bands.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanPeriodically";
+ }
+ leaf periodic-interval {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "When {{param|ScanPeriodically}} is {{true}}, this value indicates the interval in {{units}} which REM is performed while the FAP service is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.PeriodicInterval";
+ }
+ leaf periodic-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "An absolute time reference in UTC to determine when the CPE will initiate the periodic REM. Each REM MUST occur at (or as soon as possible after) this reference time plus or minus an integer multiple of the {{param|PeriodicInterval}}. {{param}} is used only to set the \"phase\" of the REM. The actual value of {{param}} can be arbitrarily far into the past or future. For example, if {{param|PeriodicInterval}} is 86400 (a day) and if {{param}} is set to UTC midnight on some day (in the past, present, or future) then periodic REMs will occur every day at UTC midnight. These MUST begin on the very next midnight, even if {{param}} refers to a day in the future. The Unknown Time value defined in {{bibref|TR-106a2|Section 3.2}} indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and needs only to adhere to the specified PeriodicInformInterval. If absolute time is not available to the CPE, its periodic REM behavior MUST be the same as if {{param}} parameter was set to the Unknown Time value.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.PeriodicTime";
+ }
+ leaf-list remplmn-list {
+ type string;
+ config false;
+ max-elements "32";
+ description
+ "{{list}} Each item is a PLMN ID to measure. PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. If {{empty}}, then no specific PLMN ID is provided, meaning that the FAP is required to scan all available PLMN IDs.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.REMPLMNList";
+ }
+ leaf-list rem-band-list {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "{{list}} Each item is a LTE Band to measure. Corresponds to frequency band indicator defined in {{bibref|3GPP-TS.36.101|Table 5.5-1}}. If {{empty}} then no specific LTE band is provided, meaning that the FAP is required to scan all available bands. The order of the band indicator has no significance.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.REMBandList";
+ }
+ leaf-list eutra-carrier-arfcndl-list {
+ type string;
+ config false;
+ max-elements "64";
+ description
+ "{{list}} Each entry is a EUTRA ARFCN in the DL direction to measure. Corrsponds to the parameter NDL in {{bibref|3GPP-TS.36.101|Section 5.7.3}}. If {{empty}}, then no specific EUTRA ARFCN is provided, meaning that the FAP is required to scan all ARFCNs that it is aware of.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.EUTRACarrierARFCNDLList";
+ }
+ leaf scan-timeout {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Specifies the time-out value in {{units}}, measured from the start of the REM scan, before the REM scan will time out.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanTimeout";
+ }
+ leaf scan-status {
+ type enumeration {
+ enum "indeterminate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanStatus - Indeterminate";
+ }
+ enum "in-progress" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanStatus - InProgress";
+ }
+ enum "success" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanStatus - Success";
+ }
+ enum "error" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanStatus - Error";
+ }
+ enum "error-timeout" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanStatus - Error_TIMEOUT";
+ }
+ }
+ description
+ "Indicates the current status of this scan.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ScanStatus";
+ }
+ leaf error-details {
+ type string {
+ length "0..256";
+ }
+ description
+ "Provides more detail when the {{param|ScanStatus}} is either {{enum|Error|ScanStatus}} or {{enum|Error_TIMEOUT|ScanStatus}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.ErrorDetails";
+ }
+ leaf last-scan-time {
+ type yang:date-and-time;
+ description
+ "The time of the last LTE system radio environment measurement.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.LastScanTime";
+ }
+ leaf max-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.REM.LTE.Cell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.MaxCellEntries";
+ }
+ leaf cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CellNumberOfEntries";
+ }
+ leaf max-carrier-meas-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.REM.LTE.CarrierMeas.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.MaxCarrierMeasEntries";
+ }
+ leaf carrier-meas-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CarrierMeasNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.";
+ }
+
+ grouping rem-lte-cell-g {
+ leaf rem-lte-cell-key {
+ type string;
+ description
+ "Key value for this object, which could be an item of a list.";
+ }
+ description
+ "Table indicating the components of the discovered cells.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.";
+ }
+
+ grouping rem-lte-cell-rf-g {
+ description
+ "Table indicating the RF aspect of the discovered cells.";
+ leaf eutra-carrier-arfcn {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Indicates the ARFCN of this carrier frequency. Corresponds to parameter dl-CarrierFreq in SIB5 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}, and parameter NDL in {{bibref|3GPP-TS.36.101|Section 5.7.3}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.RF.EUTRACarrierARFCN";
+ }
+ leaf phy-cell-id {
+ type uint16 {
+ range "0..503";
+ }
+ description
+ "Physical cell ID of the detected EUTRAN cell, as specified in {{bibref|3GPP-TS.36.101|Section 5.6}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.RF.PhyCellID";
+ }
+ leaf rsrp {
+ type int64;
+ units "dBm";
+ description
+ "Received RSRP level of the detected EUTRA cell, specified in {{units}}, as specified in {{bibref|3GPP-TS.36.214|Section 5.1.1}}. The reporting range is specified in {{bibref|3GPP-TS.36.133|Section 9.1.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRP";
+ }
+ leaf rsrq {
+ type int64;
+ units "dB";
+ description
+ "Received RSRQ level of the detected EUTRA cell, specified in {{units}}, as specified in {{bibref|3GPP-TS.36.214|Section 5.1.3}}. Actual measured values range between -24.0 {{units}} and 0.0 {{units}} in steps of 0.5 {{units}}. The value of {{param}} divided by 10 yields the actual measured value. Only values in multiple of 5 are valid.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRQ";
+ }
+ leaf rssi {
+ type int64;
+ units "dBm";
+ description
+ "E-UTRA Carrier Received Signal Strength Indicator (RSSI), specified in {{units}}, as specified in {{bibref|3GPP-TS.36.214|Section 5.1.3}}. It comprises the linear average of the total received power (in [W]) observed only in OFDM symbols containing reference symbols for antenna port 0, in the measurement bandwidth, over N number of resource blocks by the UE from all sources, including co-channel serving and non-serving cells, adjacent channel interference, thermal noise etc.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.RF.RSSI";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+ }
+
+ grouping rem-lte-cell-bcch-g {
+ description
+ "Table containing the system information broadcast in the BCCH logical channel.";
+ leaf dl-bandwidth {
+ type uint8 {
+ range "6 | 15 | 25 | 50 | 75 | 100";
+ }
+ units "resource blocks";
+ description
+ "Downlink transmission bandwidth, specified in number of {{units}}. Corresponds to parameter dl_Bandwidth in Master Information Block in {{bibref|3GPP-TS.36.331|Section 6.2.2}}. and to parameter NRB in {{bibref|3GPP-TS.36.101|Table 5.6-1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.DLBandwidth";
+ }
+ leaf ul-bandwidth {
+ type uint8 {
+ range "6 | 15 | 25 | 50 | 75 | 100";
+ }
+ units "resource blocks";
+ description
+ "Uplink transmission bandwidth, specified in number of {{units}}. Corresponds to parameter ul_Bandwidth in SIB2 in {{bibref|3GPP-TS.36.331|Section 6.3.1}}. and to parameter NRB in {{bibref|3GPP-TS.36.101|Table 5.6-1}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.ULBandwidth";
+ }
+ leaf rs-tx-power {
+ type int64;
+ units "dBm";
+ description
+ "The downlink reference-signal transmit power, specified in {{units}}. Defined as the linear average over the power contributions (in W) of all resource elements that carry cell-specific reference signals within the operating system bandwidth. Corresponds to parameter referenceSignalPower in SIB4 as a part of PDSCH-Config IE in {{bibref|3GPP-TS.36.331|Section 6.3.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.RSTxPower";
+ }
+ leaf tac {
+ type uint16 {
+ range "0..65535";
+ }
+ description
+ "Tracking Area Code that is common for all the PLMNs listed. Corresponds to trackingAreaCode as specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.TAC";
+ }
+ leaf cell-id {
+ type uint32 {
+ range "0..268435455";
+ }
+ description
+ "Defines the cell identify, defines as a 28-bit binary number. Corresponds to cellIdentity as specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2 and Section 6.3.4}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellID";
+ }
+ leaf cell-barred {
+ type boolean;
+ description
+ "Indicates whether the cell is barred or not. If {{true}}, the cell is barred. If {{false}}, the cell is not barred. Corresponds to cellBarred as specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}} and {{bibref|3GPP-TS.36.304}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellBarred";
+ }
+ leaf csg-indication {
+ type boolean;
+ description
+ "Indicates whether CSG is used in this cell or not. If {{true}}, the UE is only allowed to access the cell if the CSG identity matches an entry in the allowed CSG list that the UE has stored. Corresponds to csg-Indication as specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIndication";
+ }
+ leaf csg-identity {
+ type uint32 {
+ range "0..134217727";
+ }
+ description
+ "Defines the CSG ID value if {{param|CSGIndication}} parameter indicates that CSG is used in this cell. Corresponds to csg-Identity as specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIdentity";
+ }
+ leaf max-plmn-list-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.MaxPLMNListEntries";
+ }
+ leaf plmn-list-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNListNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+ }
+
+ grouping rem-lte-cell-bcch-plmn-list-g {
+ description
+ "Table containing the PLMN list in the system information broadcast in the BCCH logical channel. Correspnds to plmn-IdentityList as specified in SIB1 in {{bibref|3GPP-TS.36.331|Section 6.2.2}}. Each instance in this object is a PLMN-IdentityInfo which consists of plmn-Identity and cellReservedForOperatorUse IEs.";
+ leaf plmnid {
+ type string {
+ length "0..6";
+ }
+ description
+ "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.PLMNID";
+ }
+ leaf cell-reserved-for-operator-use {
+ type boolean;
+ description
+ "Indicates whether the cell is reserved for operator use or not. If {{true}}, it is reserved. If {{false}}, it is not reserved. Corresponds to \"reserved\" \"notReserved\" respectively as defined in PLMN-IdentityInfo in {{bibref|3GPP-TS.36.331|Section 6.2.2}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.CellReservedForOperatorUse";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+ }
+
+ grouping rem-lte-carrier-meas-g {
+ description
+ "Table indicating the measurement of the discovered carrier. The information stored in this object is strictly in the physical layer level and may not necessarily be associated with any particular E-UTRAN cell (e.g. interference level generated by sources other than E-UTRAN cell).";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the CarrierMeas entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CarrierMeas.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CarrierMeas.{i}.Alias";
+ }
+ leaf carrier-arfcndl {
+ type int64;
+ units "MHz";
+ description
+ "Lower bound of the EUTRA ARFCN as specified in {{bibref|3GPP-TS.36.101|Section 5.7.3}} in the DL direction that is requested to measure. Unit in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierARFCNDL";
+ }
+ leaf carrier-ch-width {
+ type int64;
+ units "ARFCN";
+ description
+ "Number of {{units}} in DL direction, as specified in {{bibref|3GPP-TS.36.101|Section 5.6}}, that is requested to measure. The range bounded by {{param|CarrierARFCNDL}} as the lower bound and the value of ({{param|CarrierARFCNDL}} + {{param}}) as the upper bound expresses the total carrier frequency range to be measured.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierChWidth";
+ }
+ leaf carrier-rssi {
+ type int64;
+ units "ARFCN";
+ description
+ "Received Signal Strength Indicator (RSSI) as specified in {{bibref|3GPP-TS.36.214|Sec 5.1.3}} over the carrier frequency range from {{param|CarrierARFCNDL}} as the lower bound and the value of ({{param|CarrierARFCNDL}} + {{param|CarrierChWidth}}) as the upper bound.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierRSSI";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+ }
+
+ grouping rem-cdma2000-g {
+ description
+ "This object contains parameters relating to radio environment measurement capabilities for the CDMA2000 system.";
+ leaf in-service-handling {
+ type enumeration {
+ enum "immediate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.InServiceHandling - Immediate";
+ }
+ enum "delayed" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.InServiceHandling - Delayed";
+ }
+ }
+ config false;
+ description
+ "FAP REM behavior with respect to ongoing active connections. {{enum}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.InServiceHandling";
+ }
+ leaf scan-on-boot {
+ type boolean;
+ config false;
+ description
+ "Enables or disables Radio Environment Measurement during the FAP start up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanOnBoot";
+ }
+ leaf scan-now {
+ type boolean;
+ config false;
+ description
+ "Directs FAP to perform radio environment measurements immediately (but respecting the setting of {{param|InServiceHandling}}) and report back. After performing the action, the FAP resets the ScanNow value to \"0\" ({{false}}).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanNow";
+ }
+ leaf return-timer {
+ type uint64 {
+ range "1..max";
+ }
+ units "seconds";
+ config false;
+ description
+ "Time in {{units}} within which the action should be performed by the FAP. Only applies if {{param|InServiceHandling}} is set to Delayed.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ReturnTimer";
+ }
+ leaf scan-periodically {
+ type boolean;
+ config false;
+ description
+ "Enables periodic reporting of radio environment measurements.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanPeriodically";
+ }
+ leaf periodic-interval {
+ type uint64 {
+ range "1..max";
+ }
+ units "seconds";
+ config false;
+ description
+ "When {{param|ScanPeriodically}} is {{true}}, this value indicates the interval in {{units}} which REM is performed while the FAP service is enabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.PeriodicInterval";
+ }
+ leaf periodic-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "An absolute time reference in UTC to determine when the CPE will initiate the periodic REM. Each REM MUST occur at (or as soon as possible after) this reference time plus or minus an integer multiple of the {{param|PeriodicInterval}}. {{param}} is used only to set the \"phase\" of the REM. The actual value of {{param}} can be arbitrarily far into the past or future. For example, if {{param|PeriodicInterval}} is 86400 (a day) and if {{param}} is set to UTC midnight on some day (in the past, present, or future) then periodic REMs will occur every day at UTC midnight. These MUST begin on the very next midnight, even if {{param}} refers to a day in the future. The Unknown Time value defined in {{bibref|TR-106a2|Section 3.2}} indicates that no particular time reference is specified. That is, the CPE MAY locally choose the time reference, and needs only to adhere to the specified PeriodicInformInterval. If absolute time is not available to the CPE, its periodic REM behavior MUST be the same as if {{param}} parameter was set to the Unknown Time value.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.PeriodicTime";
+ }
+ leaf report-overheads {
+ type enumeration {
+ enum "all" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ReportOverheads - All";
+ }
+ enum "one-x" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ReportOverheads - OneX";
+ }
+ enum "hrpd" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ReportOverheads - HRPD";
+ }
+ enum "none" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ReportOverheads - None";
+ }
+ }
+ config false;
+ description
+ "If {{param}} is set to {{enum|All}}, the FAP shall report the overheads from the sectors as well.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ReportOverheads";
+ }
+ leaf scan-timeout {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Specifies the time-out value in {{units}}, measured from the start of the REM scan, before the REM scan will time out.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanTimeout";
+ }
+ leaf scan-status {
+ type enumeration {
+ enum "indeterminate" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanStatus - Indeterminate";
+ }
+ enum "in-progress" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanStatus - InProgress";
+ }
+ enum "success" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanStatus - Success";
+ }
+ enum "error" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanStatus - Error";
+ }
+ enum "error-timeout" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanStatus - Error_TIMEOUT";
+ }
+ }
+ description
+ "Indicates the current status of this scan.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ScanStatus";
+ }
+ leaf error-details {
+ type string {
+ length "0..256";
+ }
+ description
+ "Provides more detail when the {{param|ScanStatus}} is either \"Error\" or \"Error_TIMEOUT\".";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.ErrorDetails";
+ }
+ leaf last-scan-time {
+ type yang:date-and-time;
+ description
+ "The time of the last system radio environment measurement.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.LastScanTime";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.";
+ }
+
+ grouping rem-cdma2000-one-x-g {
+ description
+ "This object contains parameters relating to radio environment measurement capabilities for the 1x system.";
+ leaf max-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.REM.CDMA2000.OneX.Cell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.MaxCellEntries";
+ }
+ leaf cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.CellNumberOfEntries";
+ }
+ leaf max-channel-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.REM.CDMA2000.OneX.Channel.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.MaxChannelEntries";
+ }
+ leaf channel-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.ChannelNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.";
+ }
+
+ grouping rem-cdma2000-one-x-channel-g {
+ description
+ "REM specific configuration and reporting.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Alias";
+ }
+ leaf sniffing-band-class {
+ type uint8 {
+ range "0..31";
+ }
+ description
+ "Config parameter to set band class. Reference - {{bibref|3GPP2-C.S0057}}, Band Class Specification for CDMA2000 Spread Spectrum Systems.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingBandClass";
+ }
+ leaf sniffing-channel-number {
+ type uint16 {
+ range "0..2016";
+ }
+ description
+ "The Radio Frequency Channel Number (RFCN) in the forward direction.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingChannelNumber";
+ }
+ leaf-list pn-list {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "{{list}} Each item is a (single value) PN offset in units of 64 PN chips or PNrange expressed in the following format: <Start-value>\"..\"<End-value>:<Increment> If an empty string, then no specific PNList is provided, meaning that the FAP is required to pick a PN list to scan on its own.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.PNList";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+ }
+
+ grouping rem-cdma2000-one-x-cell-g {
+ leaf rem-cdma2000-one-x-cell-key {
+ type string;
+ description
+ "Key value for this object, which could be an item of a list.";
+ }
+ description
+ "Table indicating the components of the discovered cells.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.";
+ }
+
+ grouping rem-cdma2000-one-x-cell-rf-g {
+ description
+ "RF REM results for each detected cell.";
+ leaf band {
+ type int64;
+ description
+ "CDMA band for the reported cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Band";
+ }
+ leaf rfcnfl {
+ type uint16 {
+ range "0..2016";
+ }
+ description
+ "The Radio Frequency Channel Number (RFCN) in the FL direction for the reported cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.RFCNFL";
+ }
+ leaf io {
+ type int64;
+ units "dBm";
+ description
+ "The total received power spectral density in {{units}}, including signal and interference.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Io";
+ }
+ leaf p-ilot-pn {
+ type uint16 {
+ range "0..511";
+ }
+ units "64 PN chips";
+ description
+ "Pilot PN Offset (in units of {{units}}).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPN";
+ }
+ leaf p-ilot-pn-phase {
+ type uint64;
+ units "chips";
+ description
+ "Pilot PN phase in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPNPhase";
+ }
+ leaf pilot-strength-ecp {
+ type int64;
+ units "dBm";
+ description
+ "The strength estimate of the received pilot energy per chip, Ecp, in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcp";
+ }
+ leaf pilot-strength-ecp-io {
+ type int64;
+ units "dB";
+ description
+ "The strength estimate of the received pilot energy per chip, Ecp, to total received spectral density, Io (signal and noise) in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcpIo";
+ }
+ leaf overheads-available {
+ type boolean;
+ description
+ "If set to {{true}}, the overhead messages for this particular cell is included in {{object|.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.OverheadsAvailable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+ }
+
+ grouping rem-cdma2000-one-x-cell-control-channel-g {
+ description
+ "Table containing information broadcast on control channel.";
+ leaf sid {
+ type int64;
+ description
+ "System identification. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.SID";
+ }
+ leaf nid {
+ type int64;
+ description
+ "Network identification. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.NID";
+ }
+ leaf regzone {
+ type int64;
+ description
+ "Registration Zone. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.REGZONE";
+ }
+ leaf baselat {
+ type int64;
+ description
+ "Basestation latitude. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELAT";
+ }
+ leaf baselong {
+ type int64;
+ description
+ "Basestation longtitude. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELONG";
+ }
+ leaf mcc {
+ type int64;
+ description
+ "Mobile Country Code. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MCC";
+ }
+ leaf mncimsi1112 {
+ type int64;
+ description
+ "the 11th and 12th digits of IMSI, i.e., Mobile Network Code. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MNCIMSI1112";
+ }
+ leaf baseid {
+ type int64;
+ description
+ "Basestation identification. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASEID";
+ }
+ leaf apid {
+ type string {
+ length "0..32";
+ }
+ description
+ "Access Point Identification. Set to empty string if not available. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APID";
+ }
+ leaf apidmask {
+ type int64;
+ description
+ "Access Point Identification Mask. Set to zero if not available. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDMASK";
+ }
+ leaf apidtext {
+ type string {
+ length "0..256";
+ }
+ description
+ "Access Point Identification Text. Set to empty string if not available. Refer to {{bibref|3GPP2-C.S0005}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDTEXT";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+ }
+
+ grouping rem-cdma2000-hrpd-g {
+ description
+ "This object contains parameters relating to radio environment measurement capabilities for the HRPD system.";
+ leaf max-cell-entries {
+ type uint64;
+ description
+ "The maximum number of entries available in the {{object|.REM.CDMA2000.HRPD.Cell.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.MaxCellEntries";
+ }
+ leaf cell-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.CellNumberOfEntries";
+ }
+ leaf max-channel-entries {
+ type uint64;
+ description
+ "The maximum number of entries in {{object|.REM.CDMA2000.HRPD.Channel.{i}.}} table.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.MaxChannelEntries";
+ }
+ leaf channel-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.ChannelNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.";
+ }
+
+ grouping rem-cdma2000-hrpd-channel-g {
+ description
+ "REM specific configuration and reporting.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Alias";
+ }
+ leaf sniffing-band-class {
+ type uint8 {
+ range "0..31";
+ }
+ description
+ "Config parameter to set band class. Reference - {{bibref|3GPP2-C.S0057}}, Band Class Specification for CDMA2000 Spread Spectrum Systems.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingBandClass";
+ }
+ leaf sniffing-channel-number {
+ type uint16 {
+ range "0..2016";
+ }
+ description
+ "The Radio Frequency Channel Number (RFCN) in the FL direction.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingChannelNumber";
+ }
+ leaf-list pn-list {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "{{list}} Each item is a (single value) PN offset in units of 64 PN chips or PNrange expressed in the following format: <Start-value>\"..\"<End-value>:<Increment>. If an empty string, then no specific PNList is provided, meaning that the FAP is required to pick a PN list to scan on its own.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.PNList";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+ }
+
+ grouping rem-cdma2000-hrpd-cell-g {
+ leaf rem-cdma2000-hrpd-cell-key {
+ type string;
+ description
+ "Key value for this object, which could be an item of a list.";
+ }
+ description
+ "Table indicating the components of the discovered cells.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.";
+ }
+
+ grouping rem-cdma2000-hrpd-cell-rf-g {
+ description
+ "RF REM results for each detected cell.";
+ leaf band {
+ type int64;
+ description
+ "CDMA band for the reported cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Band";
+ }
+ leaf rfcnfl {
+ type uint16 {
+ range "0..2016";
+ }
+ description
+ "The Radio Frequency Channel Number (RFCN) in the FL direction for the reported cell.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.RFCNFL";
+ }
+ leaf io {
+ type int64;
+ units "dBm";
+ description
+ "The total received power spectral density in {{units}}, including signal and interference.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Io";
+ }
+ leaf p-ilot-pn {
+ type uint16 {
+ range "0..511";
+ }
+ units "64 PN chips";
+ description
+ "Pilot PN Offset (in units of {{units}}).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPN";
+ }
+ leaf p-ilot-pn-phase {
+ type uint64;
+ units "chips";
+ description
+ "Pilot PN phase in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPNPhase";
+ }
+ leaf pilot-strength-ecp {
+ type int64;
+ units "dBm";
+ description
+ "The strength estimate of the received pilot energy per chip in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcp";
+ }
+ leaf pilot-strength-ecp-io {
+ type int64;
+ units "dB";
+ description
+ "The strength estimate of the received pilot energy per chip, Ecp, to total received spectral density, Io (signal and noise) in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcpIo";
+ }
+ leaf overheads-available {
+ type boolean;
+ description
+ "If set to {{true}}, the overhead messages for this particular cell is included in {{object|.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.OverheadsAvailable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+ }
+
+ grouping rem-cdma2000-hrpd-cell-control-channel-g {
+ description
+ "Table containing information braodcast on control channel.";
+ leaf color-code {
+ type int64;
+ description
+ "The color code of the measured sector as defined in {{bibref|3GPP2-C.S0024}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.ColorCode";
+ }
+ leaf sector-id {
+ type binary {
+ length "16";
+ }
+ description
+ "The sector ID of the measured sector as defined in {{bibref|3GPP2-C.S0024}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SectorID";
+ }
+ leaf subnet-mask {
+ type int64;
+ units "bits";
+ description
+ "The length of the subnet mask in {{units}} for the measured sector as defined in {{bibref|3GPP2-C.S0024}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SubnetMask";
+ }
+ leaf country-code {
+ type int64;
+ description
+ "The country code of the measured sector as defined in {{bibref|3GPP2-C.S0024}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.CountryCode";
+ }
+ leaf latitude {
+ type int64;
+ units "0.25 arc seconds";
+ description
+ "The reported lattitude of the cell in units of {{units}}, expressed as a two's complement signed number with positive numbers signifying North latitudes in the range -1296000 to 1296000 inclusive corresponding to a range of -90 to +90) Refer to {{bibref|3GPP2-C.S0024}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Latitude";
+ }
+ leaf longitude {
+ type int64;
+ units "0.25 arc seconds";
+ description
+ "The reported longitude of the cell in units of {{units}}, expressed as a two's complement signed number with positive numbers signifying East longitude in the range -2592000 to 2592000 inclusive (corresponding to a range of -180 to +180). Refer to {{bibref|3GPP2-C.S0024}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Longitude";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+ }
+
+ grouping rem-cdma2000-macro-timing-g {
+ description
+ "Parameters for controlling CDMA2000 system timing derived from macro system sniffing.";
+ leaf admin-state {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "This is the Admin State of Macro Timing. Lock means MacroTiming feature is Enabled. Unlock means MacroTiming feature is disabled. 0 - Lock (Enabled), 1 - Unlock (Disabled).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.AdminState";
+ }
+ leaf tracking-channel-number {
+ type uint64;
+ description
+ "Channel number of Macro Base Station currently used for MacroTiming.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingChannelNumber";
+ }
+ leaf tracking-band-class {
+ type uint8 {
+ range "0..31";
+ }
+ description
+ "BandClass of Macro Base Station currently used for MacroTiming.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingBandClass";
+ }
+ leaf-list tracking-pn-offset {
+ type string {
+ length "0..256";
+ }
+ description
+ "{{list}} Each item is a (single value) PN offset in units of 64 PN chips of a Macro Base Station currently used for MacroTiming.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingPNOffset";
+ }
+ leaf timing-source {
+ type uint8 {
+ range "0..1";
+ }
+ description
+ "This parameter indicates the timing source for the FAP: 0 - GPS 1 - Macro Timing The other read-only parameters in this object only have valid values when timingsource is set to 1.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.TimingSource";
+ }
+ leaf channel-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.ChannelNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.";
+ }
+
+ grouping rem-cdma2000-macro-timing-channel-g {
+ description
+ "Object used to configure list of channels to be used for Macto Timing.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the {{object}} entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Enable";
+ }
+ leaf alias {
+ type string {
+ length "1..64";
+ }
+ description
+ "{{datatype|expand}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Alias";
+ }
+ leaf air-interface-type {
+ type uint8 {
+ range "0..1";
+ }
+ config false;
+ description
+ "Air interface type of the configured Band class and Channel. 0 - 1x, 1 - HRPD.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.AirInterfaceType";
+ }
+ leaf band-class {
+ type uint8 {
+ range "0..31";
+ }
+ description
+ "Bandclass of the Macro timing channel.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.BandClass";
+ }
+ leaf channel-number {
+ type uint64;
+ description
+ "Macro timing acquisition channel.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.ChannelNumber";
+ }
+ leaf priority {
+ type uint64;
+ config false;
+ description
+ "Priority of the channle to use for acquisition. FAP should prioritize lower values over higher.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Priority";
+ }
+ leaf-list pn-list {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "{{list}} Each item is a (single value) PN offset in units of 64 PN chips or PNrange expressed in the following format: <Start-value>\"..\"<End-value>:<Increment> If an empty string, then no specific PNList is provided, meaning that the FAP is required to pick a PN list to scan on its own.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.PNList";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+ }
+
+ grouping transport-g {
+ description
+ "This object contains parameters relating to the transport.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.";
+ }
+
+ grouping transport-sip-g {
+ description
+ "This object contains parameters relating to SIP as a transport protocol. SIP is defined in {{bibref|RFC3261}}.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the whole SIP object and allows the setup or release of SIP associations and their related streams.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.Enable";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.";
+ }
+
+ grouping transport-sip-fcs-g {
+ description
+ "This object models SIP Femtocell Convergence Server (FCS) parameters.";
+ leaf fcsuri {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The request URI for MESSAGE method sent to Femtocell Convergence Server (FCS). The string MUST contain a URI as defined in {{bibref|RFC3986}}. The device MUST support SIP URI and MAY support other URI schemes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.FCSURI";
+ }
+ leaf out-going-proxy-uri {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The request URI for Outgoing Proxy. The string MUST contain a URI as defined in {{bibref|RFC3986}}. The device MUST support SIP URI and MAY support other URI schemes.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.OutGoingProxyURI";
+ }
+ leaf p-access-net-info-header {
+ type string {
+ length "0..256";
+ }
+ description
+ "This string will be populated as the value for P-Access-Network-Info header. This header is generated by the device. See {{bibref|3GPP2-X.S0059}} and {{bibref|RFC3455}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.PAccessNetInfoHeader";
+ }
+ leaf realm {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "The FQDN or IP Address representing the Home Domain of the device. The request URI for REGISTER will be formed by prefixing \"sip:\" to this value.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.Realm";
+ }
+ leaf impu {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The \"IP Multimedia Public User\" (IMPU) Identity.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.IMPU";
+ }
+ leaf impi {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "The \"IP Multimedia Private Identity\" (IMPI). This value is ignored when {{param|SIPAuthMethod}} is set to {{enum|TNA|SIPAuthMethod}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.IMPI";
+ }
+ leaf sip-password {
+ type string {
+ length "0..32";
+ }
+ config false;
+ description
+ "Password to Authenticate the IMS core. This value is ignored when {{param|SIPAuthMethod}} is set to {{enum|TNA|SIPAuthMethod}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPPassword";
+ }
+ leaf-list sip-auth-capability {
+ type enumeration {
+ enum "tna" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPAuthCapability - TNA";
+ }
+ enum "sip-digest" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPAuthCapability - SIPDigest";
+ }
+ }
+ description
+ "Represents the SIP authentication mechanisms supported by this device.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPAuthCapability";
+ }
+ leaf sip-auth-method {
+ type string {
+ length "0..256";
+ }
+ config false;
+ description
+ "Represents the authentication method used by this device for SIP registration. If value is {{enum|SIPDigest}}, the {{param|SIPPassword}} MUST not be {{empty}}. If value is {{enum|TNA}}, {{param|SIPPassword}} and {{param|IMPI}} are ignored.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPAuthMethod";
+ }
+ leaf sip-local-port {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "Local port number for initiating SIP traffic.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPLocalPort";
+ }
+ leaf rtp-port-low-limit {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "The low limit of port number for originating and receiving RTP/RTCP traffic.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.RTPPortLowLimit";
+ }
+ leaf rtp-port-high-limit {
+ type uint16 {
+ range "0..65535";
+ }
+ config false;
+ description
+ "The high limit of port number for originating and receiving RTP/RTCP traffic.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.RTPPortHighLimit";
+ }
+ leaf sip-reg-expiry {
+ type uint64;
+ config false;
+ description
+ "SIP registration expiry value, as defined in {{bibref|RFC3261}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPRegExpiry";
+ }
+ leaf sip-session-expiry {
+ type uint64 {
+ range "90..max";
+ }
+ units "seconds";
+ default "1800";
+ config false;
+ description
+ "SIP session timer expiry value, in {{units}}, as defined in {{bibref|RFC4028}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.SIPSessionExpiry";
+ }
+ leaf-list emergency-numbers-list {
+ type string {
+ length "0..64";
+ }
+ config false;
+ description
+ "Indicates the dialed digit pattern matching strings used to determine if the call is an emergency call that MAY bypass access control and receive priority treatment.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.EmergencyNumbersList";
+ }
+ leaf timer-t1 {
+ type uint64 {
+ range "1..max";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Value of SIP timer T1, in {{units}}, as defined in {{bibref|RFC3261}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.TimerT1";
+ }
+ leaf timer-t2 {
+ type uint64 {
+ range "1..max";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Value of SIP timer T2, in {{units}}, as defined in {{bibref|RFC3261}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.TimerT2";
+ }
+ leaf timer-t4 {
+ type uint64 {
+ range "1..max";
+ }
+ units "milliseconds";
+ config false;
+ description
+ "Value of SIP timer T4, in {{units}}, as defined in {{bibref|RFC3261}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.TimerT4";
+ }
+ leaf t3210 {
+ type uint8 {
+ range "1..20";
+ }
+ units "seconds";
+ config false;
+ description
+ "This value specifies how much time to wait, in {{units}}, before time out on location update accept/reject. See {{bibref|3GPP2-A.S0014}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.T3210";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SIP.FCS.";
+ }
+
+ grouping transport-sctp-g {
+ description
+ "This object contains parameters relating to SCTP as a transport protocol. SCTP is defined in {{bibref|RFC4960}} and {{bibref|RFC3873}}.";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enables or disables the whole SCTP object and allows the setup or release of SCTP associations and their related streams.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Enable";
+ }
+ leaf hb-interval {
+ type uint64 {
+ range "1..max";
+ }
+ units "seconds";
+ default "30";
+ config false;
+ description
+ "Heartbeat interval in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.HBInterval";
+ }
+ leaf max-association-retransmits {
+ type uint64;
+ default "10";
+ config false;
+ description
+ "Maximum number of consecutive retransmissions to a peer before an endpoint considers that the peer is unreachable and closes the association.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.MaxAssociationRetransmits";
+ }
+ leaf max-init-retransmits {
+ type uint64;
+ default "8";
+ config false;
+ description
+ "Number of retransmission per connection-attempt.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.MaxInitRetransmits";
+ }
+ leaf max-path-retransmits {
+ type uint64;
+ default "5";
+ config false;
+ description
+ "Maximum retransmission per destination address.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.MaxPathRetransmits";
+ }
+ leaf rto-initial {
+ type uint64;
+ units "milliseconds";
+ default "3000";
+ config false;
+ description
+ "Initial value for Retransmit timeout in {{units}}. A retransmission time value of zero means immediate retransmission.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.RTOInitial";
+ }
+ leaf rto-max {
+ type uint64;
+ units "milliseconds";
+ default "6000";
+ config false;
+ description
+ "Maximum value for Retransmit timeout in {{units}}. A retransmission time value of zero means immediate retransmission.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.RTOMax";
+ }
+ leaf rto-min {
+ type uint64;
+ units "milliseconds";
+ default "1000";
+ config false;
+ description
+ "Minimum value for Retransmit timeout in {{units}}. A retransmission time value of zero means immediate retransmission. The value of this parameter MUST be lower than or equal to {{param|RTOMax}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.RTOMin";
+ }
+ leaf val-cookie-life {
+ type uint64;
+ units "milliseconds";
+ default "60000";
+ config false;
+ description
+ "Valid cookie life in the 4-way start-up handshake procedure in {{units}}.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.ValCookieLife";
+ }
+ leaf out-of-blues {
+ type uint64;
+ description
+ "The number of correctly formed SCTP packets, including the proper checksum, but for which the receiver was unable to identify an appropriate association.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.OutOfBlues";
+ }
+ leaf checksum-errors {
+ type uint64;
+ description
+ "The number of SCTP packets received with an invalid checksum.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.ChecksumErrors";
+ }
+ leaf out-ctrl-chunks {
+ type uint64;
+ description
+ "The number of SCTP control chunks sent (retransmissions are not included).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.OutCtrlChunks";
+ }
+ leaf out-order-chunks {
+ type uint64;
+ description
+ "The number of SCTP ordered data chunks sent (retransmissions are not included).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.OutOrderChunks";
+ }
+ leaf out-unorder-chunks {
+ type uint64;
+ description
+ "The number of SCTP unordered chunks (data chunks in which the U bit is set to 1) sent (retransmissions are not included).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.OutUnorderChunks";
+ }
+ leaf in-ctrl-chunks {
+ type uint64;
+ description
+ "The number of SCTP control chunks received (no duplicate chunks included).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.InCtrlChunks";
+ }
+ leaf in-order-chunks {
+ type uint64;
+ description
+ "The number of SCTP ordered data chunks received (no duplicate chunks included).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.InOrderChunks";
+ }
+ leaf in-unorder-chunks {
+ type uint64;
+ description
+ "The number of SCTP unordered chunks (data chunks in which the U bit is set to 1) received (no duplicate chunks included).";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.InUnorderChunks";
+ }
+ leaf frag-usr-msgs {
+ type uint64;
+ description
+ "The number of user messages that have been sent fragmented.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.FragUsrMsgs";
+ }
+ leaf reasm-usr-msgs {
+ type uint64;
+ description
+ "The number of user messages that have been received fragmented and submitted to the reassembly process.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.ReasmUsrMsgs";
+ }
+ leaf out-sctp-packs {
+ type uint64;
+ description
+ "The number of SCTP packets sent. Retransmitted DATA chunks are included.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.OutSCTPPacks";
+ }
+ leaf in-sctp-packs {
+ type uint64;
+ description
+ "The number of SCTP packets received. Duplicates are included.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.InSCTPPacks";
+ }
+ leaf discontinuity {
+ type yang:date-and-time;
+ description
+ "The time of the last discontinuity.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Discontinuity";
+ }
+ leaf assoc-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.AssocNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.";
+ }
+
+ grouping transport-sctp-assoc-g {
+ description
+ "SCTP Association Table";
+ leaf status {
+ type enumeration {
+ enum "disabled" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.Status - Disabled";
+ }
+ enum "active" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.Status - Active";
+ }
+ enum "progressing" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.Status - Progressing";
+ }
+ enum "shutting-down" {
+ value 4;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.Status - ShuttingDown";
+ }
+ enum "error" {
+ value 5;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.Status - Error";
+ }
+ }
+ description
+ "The status of this SCTP association entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.Status";
+ }
+ leaf primary-peer-address {
+ type inet:ip-address;
+ description
+ "The primary IP address of the peer SCTP association entity.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.PrimaryPeerAddress";
+ }
+ leaf local-port {
+ type uint16 {
+ range "0..63999";
+ }
+ description
+ "The local SCTP port number used for this SCTP association.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.LocalPort";
+ }
+ leaf in-streams {
+ type uint64;
+ description
+ "The number of Inbound Streams according to the negotiation at association start-up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.InStreams";
+ }
+ leaf out-streams {
+ type uint64;
+ description
+ "The number of Outbound Streams according to the negotiation at association start-up.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.OutStreams";
+ }
+ leaf start-time {
+ type yang:date-and-time;
+ description
+ "The start Time for the present SCTP association.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.StartTime";
+ }
+ leaf discontinuity {
+ type yang:date-and-time;
+ description
+ "The time of the last discontinuity.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.Discontinuity";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+ }
+
+ grouping transport-real-time-g {
+ description
+ "This object contains parameters relating to Real Time Transport using RTP.";
+ leaf rtcp-enable {
+ type boolean;
+ config false;
+ description
+ "Enable or disable RTCP.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.RTCPEnable";
+ }
+ leaf sent-packets {
+ type uint64;
+ description
+ "The number of sent RTP packets.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.SentPackets";
+ }
+ leaf rcv-packets {
+ type uint64;
+ description
+ "The number of received RTP packets.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.RcvPackets";
+ }
+ leaf bytes-sent {
+ type uint64;
+ description
+ "Total number of RTP payload bytes sent.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.BytesSent";
+ }
+ leaf bytes-received {
+ type uint64;
+ description
+ "Total number of RTP payload bytes received.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.BytesReceived";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.";
+ }
+
+ grouping transport-real-time-perf-g {
+ description
+ "This object contains performances relating to Real Time Transport using RTP.";
+ leaf lost-rcv-packets {
+ type uint64;
+ description
+ "The number of Lost RTP packets in reception.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.LostRcvPackets";
+ }
+ leaf lost-far-end-packets {
+ type uint64;
+ description
+ "The number of Far End Lost RTP packets.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.LostFarEndPackets";
+ }
+ leaf overruns {
+ type uint64;
+ description
+ "Total number of times the receive jitter buffer has overrun.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.Overruns";
+ }
+ leaf underruns {
+ type uint64;
+ description
+ "Total number of times the receive jitter buffer has underrun for a CS-domain RAB.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.Underruns";
+ }
+ leaf mean-rtt {
+ type uint64;
+ units "microseconds";
+ description
+ "The mean Round Trip Time in {{units}} as computed by the source. {{bibref|RFC3550}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.MeanRTT";
+ }
+ leaf max-rtt {
+ type uint64;
+ units "microseconds";
+ description
+ "The maximum Round Trip Time in {{units}} as computed by the source. {{bibref|RFC3550}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.MaxRTT";
+ }
+ leaf mean-receive-jitter {
+ type uint64;
+ units "microseconds";
+ description
+ "The mean receive jitter in {{units}} as computed by the source. {{bibref|RFC3550}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.MeanReceiveJitter";
+ }
+ leaf max-receive-jitter {
+ type uint64;
+ units "microseconds";
+ description
+ "The maximum receive jitter in {{units}} as computed by the source. {{bibref|RFC3550}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.MaxReceiveJitter";
+ }
+ leaf mean-far-end-jitter {
+ type uint64;
+ units "microseconds";
+ description
+ "The mean far end jitter in {{units}} as computed by the source. {{bibref|RFC3550}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.MeanFarEndJitter";
+ }
+ leaf max-far-end-jitter {
+ type uint64;
+ units "microseconds";
+ description
+ "The maximum far end jitter in {{units}} as computed by the source. {{bibref|RFC3550}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.MaxFarEndJitter";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.RealTime.Perf.";
+ }
+
+ grouping transport-packet-g {
+ description
+ "This object contains parameters relating to Packet Transport using GTP-U.";
+ leaf echo-interval {
+ type uint64;
+ units "seconds";
+ config false;
+ description
+ "Echo interval in {{units}}. An Echo interval value of zero means echo is disabled.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Packet.EchoInterval";
+ }
+ leaf sent-packets {
+ type uint64;
+ description
+ "The number of sent GTP-U packets.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Packet.SentPackets";
+ }
+ leaf rcv-packets {
+ type uint64;
+ description
+ "The number of received GTP-U packets.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Packet.RcvPackets";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Packet.";
+ }
+
+ grouping transport-security-g {
+ description
+ "This object contains parameters relating to Security.";
+ leaf secret-number-of-entries {
+ type uint64;
+ description
+ "{{numentries}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.SecretNumberOfEntries";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.";
+ }
+
+ grouping transport-security-secret-g {
+ description
+ "Shared Secret Table. This table gathers information about all types of shared secret-based credentials (UICC).";
+ leaf enable {
+ type boolean;
+ config false;
+ description
+ "Enable or disable this Shared Secret entry";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Enable";
+ }
+ leaf type {
+ type enumeration {
+ enum "sim" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Type - SIM";
+ }
+ enum "usim" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Type - USIM";
+ }
+ }
+ description
+ "The type of this Shared Secret entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Type";
+ }
+ leaf status {
+ type enumeration {
+ enum "present" {
+ value 1;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Status - Present";
+ }
+ enum "not-present" {
+ value 2;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Status - Not_present";
+ }
+ enum "error" {
+ value 3;
+ description
+ "none";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Status - Error";
+ }
+ }
+ description
+ "The status of this Shared Secret entry.";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.Status";
+ }
+ leaf uicc-card-id {
+ type string {
+ length "0..19";
+ }
+ description
+ "The UICC Card Identifier (UICCID), only numeric values are allowed. {{bibref|ITU-E.118}}";
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.UICCCardID";
+ }
+ reference "BBF TR-196 2.0.3 full - FAPService.{i}.Transport.Security.Secret.{i}.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/core-model@2017-03-20.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/core-model@2017-03-20.yang
new file mode 100644
index 000000000..134062817
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/core-model@2017-03-20.yang
@@ -0,0 +1,1700 @@
+module core-model {
+ namespace "urn:onf:params:xml:ns:yang:core-model";
+ prefix core-model;
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga
+ <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Thorsten Heinze
+ <mailto:thorsten.heinze@telefonica.com>
+ Martin Skorupski
+ <mailto:martin.skorupski@highstreet-technologies.com>";
+ description "This module contains a collection of YANG definitions for managing wireless networks.";
+ revision 2017-03-20 {
+ description "Initial version";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+ /***********************
+ * package core-network-model
+ **********************/
+ /***********************
+ * package type-definitions
+ **********************/
+ /***********************
+ * package resilience
+ **********************/
+ typedef protection-reason {
+ type enumeration {
+ enum wait-to-revert {
+ description "removed";
+ }
+ enum signal-degrade {
+ description "removed";
+ }
+ enum signal-fail {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef route-selection-control {
+ type enumeration {
+ enum normal {
+ description "removed";
+ }
+ enum manual {
+ description "removed";
+ }
+ enum forced {
+ description "removed";
+ }
+ enum lock-out {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef route-selection-reason {
+ type enumeration {
+ enum wait-to-revert {
+ description "removed";
+ }
+ enum signal-degrade {
+ description "removed";
+ }
+ enum signal-fail {
+ description "removed";
+ }
+ enum normal {
+ description "removed";
+ }
+ enum manual {
+ description "removed";
+ }
+ enum forced {
+ description "removed";
+ }
+ enum lock-out {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef switch-control {
+ type enumeration {
+ enum normal {
+ description "removed";
+ }
+ enum manual {
+ description "removed";
+ }
+ enum forced {
+ description "removed";
+ }
+ }
+ description "none";
+ }
+ typedef switch-state-reason {
+ type enumeration {
+ enum wait-to-revert {
+ description "removed";
+ }
+ enum signal-degrade {
+ description "removed";
+ }
+ enum signal-fail {
+ description "removed";
+ }
+ enum normal {
+ description "removed";
+ }
+ enum manual {
+ description "removed";
+ }
+ enum forced {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef reversion-mode {
+ type enumeration {
+ enum revertive {
+ description "removed";
+ }
+ enum non-revertive {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ grouping global-pac-g {
+ uses global-class-g;
+ description "removed";
+ }
+ grouping local-pac-g {
+ uses local-class-g;
+ description "removed";
+ }
+ typedef protection-type {
+ type string;
+ description "removed";
+ }
+
+ typedef layer-protocol-name {
+ type string;
+ description "removed";
+ }
+ typedef port-role {
+ type string;
+ description "removed";
+ }
+ typedef port-direction {
+ type enumeration {
+ enum bidirectional {
+ description "removed";
+ }
+ enum input {
+ description "removed";
+ }
+ enum output {
+ description "removed";
+ }
+ enum unidentified-or-unknown {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef forwarding-direction {
+ type enumeration {
+ enum bidirectional {
+ description "removed";
+ }
+ enum unidirectional {
+ description "removed";
+ }
+ enum undefined-or-unknown {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef termination-direction {
+ type enumeration {
+ enum bidirectional {
+ description "removed";
+ }
+ enum sink {
+ description "removed";
+ }
+ enum source {
+ description "removed";
+ }
+ enum undefined-or-unknown {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef extended-termination-direction {
+ type enumeration {
+ enum bidirectional {
+ description "removed";
+ }
+ enum sink {
+ description "removed";
+ }
+ enum source {
+ description "removed";
+ }
+ enum undefined-or-unknown {
+ description "removed";
+ }
+ enum contra-direction-sink {
+ description "removed";
+ }
+ enum contra-direction-source {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef termination-state {
+ type enumeration {
+ enum lp-can-never-terminate {
+ description "removed";
+ }
+ enum lt-not-terminated {
+ description "removed";
+ }
+ enum terminated-server-to-client-flow {
+ description "removed";
+ }
+ enum terminated-client-to-server-flow {
+ description "removed";
+ }
+ enum terminated-bidirectional {
+ description "removed";
+ }
+ enum lt-permenantly-terminated {
+ description "removed";
+ }
+ enum termination-state-unknown {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+
+ /***********************
+ * package object-classes
+ **********************/
+ /***********************
+ * package resilience
+ **********************/
+ grouping configuration-and-switch-controller-g {
+ leaf switch-rule {
+ type to-be-defined;
+ description "removed";
+ }
+ leaf-list fc-switch {
+ type leafref {
+ path '/forwarding-construct/fc-switch/uuid';
+ }
+ description "removed";
+ }
+ container control-parameters {
+ uses control-parameters-pac-g;
+ description "removed";
+ }
+ leaf-list profile-proxy {
+ type string;
+ description "removed";
+ }
+ container local-pac {
+ uses local-pac-g;
+ description "none";
+ }
+ container global-pac {
+ uses global-pac-g;
+ description "none";
+ }
+ leaf is-frozen {
+ type boolean;
+ description "removed";
+ }
+ leaf is-coordinated-switching-both-ends {
+ type boolean;
+ description "removed";
+ }
+ leaf-list subordinate-controller {
+ type leafref {
+ path '/network-element/ltp/lp/config-and-switch-controller/switch-rule';
+ }
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping control-parameters-pac-g {
+ leaf reversion-mode {
+ type reversion-mode;
+ description "removed";
+ }
+ leaf wait-to-revert-time {
+ type int64;
+ default 15;
+ description "removed";
+ }
+ leaf prot-type {
+ type protection-type;
+ description "removed";
+ }
+ leaf hold-off-time {
+ type int64;
+ description "removed";
+ }
+ leaf network-scheme-specification {
+ type string;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping fc-switch-g {
+ leaf hold-off-time {
+ type int64;
+ description "removed";
+ }
+ leaf prot-type {
+ type protection-type;
+ description "removed";
+ }
+ leaf reversion-mode {
+ type reversion-mode;
+ description "removed";
+ }
+ leaf-list selected-fc-port {
+ type leafref {
+ path '/forwarding-construct/fc-port/uuid';
+ }
+ description "removed";
+ }
+ leaf-list profile-proxy {
+ type string;
+ description "removed";
+ }
+ container internal-configuration-and-switch-control {
+ uses configuration-and-switch-controller-g;
+ description "removed";
+ }
+ leaf switch-control {
+ type switch-control;
+ description "removed";
+ }
+ leaf switch-selects-ports {
+ type port-direction;
+ description "removed";
+ }
+ leaf switch-selection-reason {
+ type switch-state-reason;
+ config false;
+ description "removed";
+ }
+ container control-parameters {
+ uses control-parameters-pac-g;
+ description "none";
+ }
+ leaf wait-to-restore-time {
+ type int64;
+ description "removed";
+ }
+ uses local-class-g;
+ description "removed";
+ }
+
+ grouping forwarding-domain-g {
+ leaf-list layer-protocol-name {
+ type layer-protocol-name;
+ min-elements 1;
+ description "removed";
+ }
+ leaf-list lower-level-fd {
+ type leafref {
+ path '/network-element/fd/uuid';
+ }
+ description "removed";
+ }
+ leaf-list fc {
+ type leafref {
+ path '/forwarding-construct/uuid';
+ }
+ description "removed";
+ }
+ leaf-list ltp {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ description "removed";
+ }
+ leaf-list lower-level-link {
+ type string;
+ description "removed";
+ }
+ uses global-class-g;
+ description "removed";
+ }
+ grouping forwarding-construct-g {
+ leaf layer-protocol-name {
+ type layer-protocol-name;
+ description "removed";
+ }
+ leaf-list lower-level-fc {
+ type leafref {
+ path '/forwarding-construct/uuid';
+ }
+ description "removed";
+ }
+ leaf-list fc-route {
+ type string;
+ description "removed";
+ }
+ list fc-port {
+ key 'uuid';
+ min-elements 2;
+ uses fc-port-g;
+ description "removed";
+ }
+ list fc-switch {
+ key 'uuid';
+ uses fc-switch-g;
+ description "removed";
+ }
+ leaf forwarding-direction {
+ type forwarding-direction;
+ description "removed";
+ }
+ leaf is-protection-lock-out {
+ if-feature protection-exclude-server;
+ type boolean;
+ description "removed";
+ }
+ leaf service-priority {
+ type int64;
+ description "removed";
+ }
+ leaf-list supported-link {
+ type string;
+ description "removed";
+ }
+ uses global-class-g;
+ description "removed";
+ }
+ container network-element {
+ presence "";
+ list fd {
+ key 'uuid';
+ uses forwarding-domain-g;
+ description "removed";
+ }
+ list ltp {
+ key 'uuid';
+ uses logical-termination-point-g;
+ description "removed";
+ }
+ uses global-class-g;
+ description "removed";
+ }
+ list forwarding-construct {
+ key 'uuid';
+ uses forwarding-construct-g;
+ description "none";
+ }
+ grouping fc-port-g {
+ leaf-list ltp {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ max-elements 2;
+ description "removed";
+ }
+ leaf role {
+ type port-role;
+ description "removed";
+ }
+ leaf fc-port-direction {
+ type port-direction;
+ description "removed";
+ }
+ leaf is-protection-lock-out {
+ if-feature protection-exclude-fc-port;
+ type boolean;
+ description "removed";
+ }
+ leaf selection-priority {
+ type int64;
+ description "removed";
+ }
+ leaf is-internal-port {
+ type boolean;
+ config false;
+ description "removed";
+ }
+ leaf-list fc-route-feeds-fc-port-egress {
+ type string;
+ description "removed";
+ }
+ uses local-class-g;
+ description "removed";
+ }
+ grouping layer-protocol-g {
+ leaf layer-protocol-name {
+ type layer-protocol-name;
+ description "removed";
+ }
+ leaf configured-client-capacity {
+ type to-be-defined;
+ description "removed";
+ }
+ leaf lp-direction {
+ type termination-direction;
+ description "removed";
+ }
+ leaf termination-state {
+ type termination-state;
+ description "removed";
+ }
+ list config-and-switch-controller {
+ key 'switch-rule';
+ uses configuration-and-switch-controller-g;
+ description "removed";
+ }
+ leaf is-protection-lock-out {
+ if-feature protection-exclude-ltp;
+ type boolean;
+ description "removed";
+ }
+ leaf fc-blocks-signal-to-lp {
+ type string;
+ description "none";
+ }
+ uses local-class-g;
+ description "removed";
+ }
+ grouping logical-termination-point-g {
+ leaf-list server-ltp {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ description "removed";
+ }
+ leaf-list client-ltp {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ description "removed";
+ }
+ list lp {
+ key 'uuid';
+ min-elements 1;
+ uses layer-protocol-g;
+ description "removed";
+ }
+ leaf connected-ltp {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ description "removed";
+ }
+ leaf peer-ltp {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ description "removed";
+ }
+ leaf-list physical-port-reference {
+ type string;
+ description "removed";
+ }
+ leaf-list ltp-in-other-view {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ description "removed";
+ }
+ leaf ltp-direction {
+ type termination-direction;
+ description "removed";
+ }
+ uses global-class-g;
+ description "removed";
+ }
+ feature protection-exclude-server {
+ description "In protection context if server of protection where entire server is to be excluded from use for protection.";
+ }
+ feature protection-exclude-fc-port {
+ description "In protection context where the FcPort is to be excluded from use for protection.";
+ }
+ feature protection-exclude-ltp {
+ description "In protection context if LTP of protection where entire LTP is to be excluded from use for protection.";
+ }
+
+ /***********************
+ * package diagrams
+ **********************/
+
+ /***********************
+ * package associations
+ **********************/
+
+
+ /***********************
+ * package core-foundation-model
+ **********************/
+ /***********************
+ * package type-definitions
+ **********************/
+ typedef date-and-time {
+ type string;
+ description "removed";
+ }
+ typedef bit-string {
+ type string;
+ description "removed";
+ }
+ typedef real {
+ type string;
+ description "removed";
+ }
+ typedef printable-string {
+ type string;
+ description "removed";
+ }
+ typedef to-be-defined {
+ type string;
+ description "removed";
+ }
+
+ /***********************
+ * package super-classes-and-common-packages
+ **********************/
+ /***********************
+ * package object-classes
+ **********************/
+ grouping name-g {
+ list name {
+ key 'value-name';
+ min-elements 1;
+ uses name-and-value-g;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping global-class-g {
+ list local-id {
+ key 'value-name';
+ uses name-and-value-g;
+ description "removed";
+ }
+ leaf uuid {
+ type universal-id;
+ description "removed";
+ }
+ uses name-g;
+ uses label-g;
+ uses extension-g;
+ uses state-pac-g;
+ description "removed";
+ }
+ grouping local-class-g {
+ list local-id {
+ key 'value-name';
+ min-elements 1;
+ uses name-and-value-g;
+ description "removed";
+ }
+ leaf uuid {
+ type universal-id;
+ description "A global identifier for the LocalClass, which is used as reference.";
+ }
+ uses name-g;
+ uses label-g;
+ uses extension-g;
+ uses state-pac-g;
+ description "removed";
+ }
+ grouping label-g {
+ list label {
+ key 'value-name';
+ uses name-and-value-g;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping extension-g {
+ list extension {
+ key 'value-name';
+ uses name-and-value-g;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping universal-id-authority-g {
+ leaf uuid {
+ type universal-id;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping name-and-value-authority-g {
+ leaf uuid {
+ type universal-id;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping conditional-package-g {
+ uses extension-g;
+ uses label-g;
+ description "removed";
+ }
+
+ /***********************
+ * package type-definitions
+ **********************/
+ grouping name-and-value-g {
+ leaf value-name {
+ type string;
+ description "removed";
+ }
+ leaf value {
+ type string;
+ description "removed";
+ }
+ description "removed";
+ }
+ typedef universal-id {
+ type string;
+ description "removed";
+ }
+ grouping address-g {
+ leaf address-name {
+ type string;
+ description "removed";
+ }
+ list address-element {
+ key 'uuid';
+ uses address-element-g;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping local-id-and-class-g {
+ leaf class-of-instance {
+ type string;
+ description "removed";
+ }
+ container local-id {
+ uses name-and-value-g;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping name-and-class-g {
+ leaf class-of-instance {
+ type string;
+ description "removed";
+ }
+ container name {
+ uses name-and-value-g;
+ description "removed";
+ }
+ description "removed";
+ }
+ grouping address-element-g {
+ leaf address-element-name {
+ type string;
+ description "removed";
+ }
+ container local-id {
+ uses local-id-and-class-g;
+ description "removed";
+ }
+ leaf uuid {
+ type universal-id;
+ description "removed";
+ }
+ container name {
+ uses name-and-class-g;
+ description "removed";
+ }
+ leaf arbitrary-element {
+ type string;
+ description "removed";
+ }
+ description "removed";
+ }
+
+
+ /***********************
+ * package state-model
+ **********************/
+ /***********************
+ * package object-classes
+ **********************/
+ grouping state-pac-g {
+ leaf operational-state {
+ type operational-state;
+ config false;
+ description "removed";
+ }
+ leaf administrative-control {
+ type administrative-control;
+ description "removed";
+ }
+ leaf administrative-state {
+ type administrative-state;
+ config false;
+ description "removed";
+ }
+ leaf lifecycle-state {
+ type lifecycle-state;
+ description "removed";
+ }
+ description "removed";
+ }
+
+ /***********************
+ * package type-definitions
+ **********************/
+ typedef operational-state {
+ type enumeration {
+ enum disabled {
+ description "removed";
+ }
+ enum enabled {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef administrative-state {
+ type enumeration {
+ enum locked {
+ description "removed";
+ }
+ enum unlocked {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef administrative-control {
+ type enumeration {
+ enum unlock {
+ description "removed";
+ }
+ enum lock-passive {
+ description "removed";
+ }
+ enum lock-active {
+ description "removed";
+ }
+ enum lock-immediate {
+ description "removed";
+ }
+ }
+ description "removed
+ removed";
+ }
+ typedef extended-admin-state {
+ type enumeration {
+ enum locked {
+ description "removed";
+ }
+ enum unlocked {
+ description "removed";
+ }
+ enum shutting-down-active {
+ description "removed";
+ }
+ enum shutting-down-passive {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef lifecycle-state {
+ type enumeration {
+ enum planned {
+ description "removed";
+ }
+ enum potential {
+ description "removed";
+ }
+ enum installed {
+ description "removed";
+ }
+ enum pending-removal {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+
+
+
+ /***********************
+ * package core-operations-model
+ **********************/
+ /***********************
+ * package pattern
+ **********************/
+ /***********************
+ * package data-types
+ **********************/
+ typedef action-verbs {
+ type enumeration {
+ enum create-post-add {
+ description "none";
+ }
+ enum set-update-put-modify-write-add {
+ description "none";
+ }
+ enum get-read {
+ description "none";
+ }
+ enum delete-remove {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef test-type {
+ type string;
+ description "none";
+ }
+ typedef activity-directive {
+ type enumeration {
+ enum structure-is-not {
+ description "none";
+ }
+ enum new-structure-and-values {
+ description "none";
+ }
+ enum incremental-structure-and-values {
+ description "none";
+ }
+ enum only-values-in-existing-structure {
+ description "none";
+ }
+ enum defined-by-verb {
+ description "none";
+ }
+ }
+ description "none";
+ }
+
+ /***********************
+ * package diagrams
+ **********************/
+ typedef action-effort {
+ type enumeration {
+ enum best-effort {
+ description "none";
+ }
+ enum exact-match {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef pause-resume-rule {
+ type enumeration {
+ enum no-pause-possible {
+ description "none";
+ }
+ }
+ description "none";
+ }
+
+ /***********************
+ * package object-classes
+ **********************/
+ grouping general-directives-g {
+ description "none";
+ }
+ grouping necessary-initial-condition-constraints-g {
+ leaf is-not {
+ type boolean;
+ description "none";
+ }
+ description "none";
+ }
+ grouping operation-details-g {
+ leaf action-verb {
+ type action-verbs;
+ description "none";
+ }
+ list necessary-initialcondition-constraints {
+ key 'is-not';
+ uses necessary-initial-condition-constraints-g;
+ description "none";
+ }
+ description "none";
+ }
+ container operation-envelope {
+ presence "";
+ list operation-set {
+ key 'effort-and-action';
+ min-elements 1;
+ uses operation-set-g;
+ description "none";
+ }
+ container generaldirectives {
+ uses general-directives-g;
+ description "none";
+ }
+ container operationidentifiers {
+ uses operation-identifiers-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping operation-identifiers-g {
+ description "none";
+ }
+ grouping operation-set-g {
+ leaf-list after-operation-set {
+ type action-effort;
+ description "none";
+ }
+ leaf-list before-operation-set {
+ type action-effort;
+ description "none";
+ }
+ leaf effort-and-action {
+ type action-effort;
+ description "none";
+ }
+ leaf pause-resume-rule {
+ type pause-resume-rule;
+ description "none";
+ }
+ leaf-list operationset {
+ type action-effort;
+ description "none";
+ }
+ leaf is-short-lived {
+ type boolean;
+ default true;
+ description "none";
+ }
+ list operation-details {
+ key 'action-verb';
+ min-elements 1;
+ uses operation-details-g;
+ description "none";
+ }
+ description "none";
+ }
+
+
+
+ /***********************
+ * package core-physical-model-initial
+ **********************/
+ /***********************
+ * package rule-models
+ **********************/
+ /***********************
+ * package connector-rules
+ **********************/
+ /***********************
+ * package object-classes
+ **********************/
+ grouping connector-in-holder-g {
+ leaf connector-on-equipment-for-holder {
+ type universal-id;
+ description "none";
+ }
+ uses connector-g;
+ description "removed";
+ }
+ grouping connector-cable-end-g {
+ leaf connector-on-equipment-for-cable {
+ type universal-id;
+ description "none";
+ }
+ uses connector-g;
+ description "removed";
+ }
+ grouping connector-on-equipment-for-cable-g {
+ leaf connector-cable-end {
+ type universal-id;
+ description "none";
+ }
+ uses connector-g;
+ description "removed";
+ }
+ grouping connector-on-equipment-for-holder-g {
+ leaf connector-in-holder {
+ type universal-id;
+ description "none";
+ }
+ uses connector-g;
+ description "removed";
+ }
+
+
+
+ /***********************
+ * package equipment-detail
+ **********************/
+ /***********************
+ * package object-classes
+ **********************/
+ /***********************
+ * package dynamic-details
+ **********************/
+ grouping function-enablers-g {
+ leaf power-state {
+ type to-be-defined;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping mechanical-functions-g {
+ leaf rotation-speed {
+ type to-be-defined;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping physical-properties-g {
+ leaf temperature {
+ type to-be-defined;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping holder-monitors-g {
+ leaf is-active {
+ type boolean;
+ description "none";
+ }
+ leaf is-actual-mismatch-with-expected {
+ type boolean;
+ description "none";
+ }
+ leaf aggregate-function {
+ type string;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping location-g {
+ container equipment-location {
+ uses address-g;
+ description "none";
+ }
+ container geographical-location {
+ uses address-g;
+ description "none";
+ }
+ description "none";
+ }
+
+ /***********************
+ * package invariant-details
+ **********************/
+ grouping category-g {
+ leaf category {
+ type equipment-category;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping equipment-instance-g {
+ leaf manufacture-date {
+ type string;
+ description "none";
+ }
+ leaf serial-number {
+ type string;
+ description "none";
+ }
+ leaf asset-instance-identifier {
+ type string;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping equipment-type-g {
+ leaf description {
+ type string;
+ description "none";
+ }
+ leaf model-identifier {
+ type string;
+ description "none";
+ }
+ leaf part-type-identifier {
+ type string;
+ description "none";
+ }
+ leaf type-name {
+ type string;
+ description "none";
+ }
+ leaf version {
+ type string;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping holder-structure-g {
+ leaf holder-category {
+ type holder-category;
+ description "none";
+ }
+ leaf is-captive {
+ type boolean;
+ description "none";
+ }
+ leaf is-guided {
+ type boolean;
+ description "none";
+ }
+ leaf is-quantized-space {
+ type boolean;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping manufactured-thing-g {
+ container manufacturer-properties {
+ uses manufacturer-properties-g;
+ description "none";
+ }
+ container equipment-type {
+ uses equipment-type-g;
+ description "none";
+ }
+ container equipment-instance {
+ uses equipment-instance-g;
+ description "none";
+ }
+ container operator-augmented-equipment-type {
+ uses operator-augmented-equipment-type-g;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping manufacturer-properties-g {
+ leaf manufacturer-identifier {
+ type string;
+ description "none";
+ }
+ leaf manufacturer-name {
+ type string;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping mechanical-features-g {
+ description "removed";
+ }
+ grouping operator-augmented-equipment-type-g {
+ leaf asset-type-identifier {
+ type string;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping physical-characteristics-g {
+ leaf weight-characteristics {
+ type to-be-defined;
+ description "none";
+ }
+ leaf fire-characteristics {
+ type to-be-defined;
+ description "none";
+ }
+ leaf materials {
+ type to-be-defined;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping physical-rating-g {
+ leaf thermal-rating {
+ type to-be-defined;
+ description "none";
+ }
+ leaf power-rating {
+ type to-be-defined;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping position-g {
+ leaf relative-position {
+ type to-be-defined;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping spatial-properties-of-type-g {
+ leaf height {
+ type to-be-defined;
+ description "none";
+ }
+ leaf width {
+ type to-be-defined;
+ description "none";
+ }
+ leaf length {
+ type to-be-defined;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping swapability-g {
+ leaf is-hot-swappable {
+ type boolean;
+ default true;
+ description "none";
+ }
+ description "removed";
+ }
+
+
+
+ /***********************
+ * package equipment-pattern-structure
+ **********************/
+ /***********************
+ * package object-classes
+ **********************/
+ grouping cable-g {
+ list connector {
+ key 'uuid';
+ min-elements 1;
+ uses connector-g;
+ description "none";
+ }
+ container manufactured-thing {
+ uses manufactured-thing-g;
+ description "none";
+ }
+ container physical-characteristics {
+ uses physical-characteristics-g;
+ description "none";
+ }
+ container mechanical-features {
+ uses mechanical-features-g;
+ description "none";
+ }
+ container spatial-properties-of-type {
+ uses spatial-properties-of-type-g;
+ description "none";
+ }
+ uses global-class-g;
+ description "removed";
+ }
+ grouping connector-g {
+ leaf connector {
+ type string;
+ description "none";
+ }
+ list pin {
+ key 'position';
+ min-elements 1;
+ uses pin-g;
+ description "none";
+ }
+ leaf orientation {
+ type connector-and-pin-orientation;
+ description "none";
+ }
+ container manufactured-thing {
+ uses manufactured-thing-g;
+ description "none";
+ }
+ container position {
+ uses position-g;
+ description "none";
+ }
+ container mechanical-features {
+ uses mechanical-features-g;
+ description "none";
+ }
+ container pin-layout {
+ uses pin-layout-g;
+ description "none";
+ }
+ leaf connector-type {
+ type to-be-defined;
+ description "none";
+ }
+ uses local-class-g;
+ uses group-of-pins-g;
+ description "removed";
+ }
+ grouping equipment-g {
+ list connector {
+ key 'uuid';
+ uses connector-g;
+ description "none";
+ }
+ list contained-holder {
+ key 'uuid';
+ uses holder-g;
+ description "none";
+ }
+ list exposed-cable {
+ key 'uuid';
+ uses cable-g;
+ description "none";
+ }
+ container manufactured-thing {
+ uses manufactured-thing-g;
+ description "none";
+ }
+ container spatial-properties-of-type {
+ uses spatial-properties-of-type-g;
+ description "none";
+ }
+ container mechanical-features {
+ uses mechanical-features-g;
+ description "none";
+ }
+ container physical-properties {
+ uses physical-properties-g;
+ description "none";
+ }
+ container function-enablers {
+ uses function-enablers-g;
+ description "none";
+ }
+ container mechanical-functions {
+ uses mechanical-functions-g;
+ description "none";
+ }
+ container physical-characteristics {
+ uses physical-characteristics-g;
+ description "none";
+ }
+ container swapability {
+ uses swapability-g;
+ description "none";
+ }
+ container category {
+ uses category-g;
+ description "none";
+ }
+ container physical-rating {
+ uses physical-rating-g;
+ description "none";
+ }
+ leaf is-field-replaceable {
+ type boolean;
+ default true;
+ config false;
+ description "removed";
+ }
+ leaf-list function-block {
+ type string;
+ description "none";
+ }
+ container expected-equipment {
+ uses expected-equipment-g;
+ description "none";
+ }
+ container actual-equipment {
+ uses actual-equipment-g;
+ description "none";
+ }
+ container location {
+ uses location-g;
+ description "none";
+ }
+ uses global-class-g;
+ description "removed";
+ }
+ list equipment {
+ key 'uuid';
+ uses equipment-g;
+ description "none";
+}
+ grouping holder-g {
+ leaf-list connector {
+ type leafref {
+ path '/equipment/exposed-cable/connector/uuid';
+ }
+ description "none";
+ }
+ leaf occupying-fru {
+ type leafref {
+ path '/equipment/uuid';
+ }
+ description "removed";
+ }
+ container spatial-properties-of-type {
+ uses spatial-properties-of-type-g;
+ description "none";
+ }
+ container holder-monitors {
+ uses holder-monitors-g;
+ description "none";
+ }
+ container holder-location {
+ uses address-g;
+ description "none";
+ }
+ container position {
+ uses position-g;
+ description "none";
+ }
+ container holder-structure {
+ uses holder-structure-g;
+ description "none";
+ }
+ container physical-rating {
+ uses physical-rating-g;
+ description "none";
+ }
+ leaf-list supported-equipment {
+ type string;
+ min-elements 1;
+ description "none";
+ }
+ container expected-holder {
+ uses expected-holder-g;
+ description "none";
+ }
+ container actual-holder {
+ uses actual-holder-g;
+ description "none";
+ }
+ uses local-class-g;
+ description "removed";
+ }
+
+ /***********************
+ * package data-types
+ **********************/
+ typedef connector-and-pin-orientation {
+ type enumeration {
+ enum male {
+ description "removed";
+ }
+ enum female {
+ description "removed";
+ }
+ enum symmetric-neutral {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef equipment-category {
+ type enumeration {
+ enum subrack {
+ description "removed";
+ }
+ enum circuit-pack {
+ description "removed";
+ }
+ enum small-formfactor-pluggable {
+ description "removed";
+ }
+ enum stand-alone-unit {
+ description "removed";
+ }
+ enum rack {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+ typedef holder-category {
+ type enumeration {
+ enum slot {
+ description "removed";
+ }
+ }
+ description "removed";
+ }
+
+
+ /***********************
+ * package expected-and-actual
+ **********************/
+ /***********************
+ * package object-classes
+ **********************/
+ grouping actual-holder-g {
+ description "removed";
+ }
+ grouping expected-holder-g {
+ description "removed";
+ }
+ grouping actual-equipment-g {
+ description "removed";
+ }
+ grouping expected-equipment-g {
+ description "removed";
+ }
+
+
+ /***********************
+ * package connector-and-pin
+ **********************/
+ /***********************
+ * package object-classes
+ **********************/
+ grouping pin-g {
+ leaf position {
+ type leafref {
+ path '/equipment/exposed-cable/connector/position/relative-position';
+ }
+ description "none";
+ }
+ leaf orientation {
+ type connector-and-pin-orientation;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping pin-group-g {
+ leaf-list pin {
+ type leafref {
+ path '/equipment/exposed-cable/connector/pin/position';
+ }
+ min-elements 1;
+ description "none";
+ }
+ uses port-g;
+ uses group-of-pins-g;
+ description "removed";
+ }
+ grouping pin-layout-g {
+ list position {
+ key 'relative-position';
+ min-elements 1;
+ uses position-g;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping port-g {
+ description "removed";
+ }
+ grouping signal-ref-pt-g {
+ leaf ltp {
+ type leafref {
+ path '/network-element/ltp/uuid';
+ }
+ description "none";
+ }
+ leaf-list elemental-signals {
+ type universal-id;
+ min-elements 1;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping signal-ref-pt-group-g {
+ leaf pin-group {
+ type universal-id;
+ description "none";
+ }
+ leaf-list signal-ref-pt {
+ type universal-id;
+ min-elements 1;
+ description "none";
+ }
+ uses port-g;
+ description "removed";
+ }
+ grouping elemental-signals-g {
+ leaf-list pin {
+ type leafref {
+ path '/equipment/exposed-cable/connector/pin/position';
+ }
+ min-elements 1;
+ description "none";
+ }
+ description "removed";
+ }
+ grouping group-of-pins-g {
+ description "removed";
+ }
+
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/g.874.1-model@2017-03-20.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/g.874.1-model@2017-03-20.yang
new file mode 100644
index 000000000..4a14783a2
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/g.874.1-model@2017-03-20.yang
@@ -0,0 +1,646 @@
+module g.874.1-model {
+ namespace "urn:onf:params:xml:ns:yang:g.874.1-model";
+ prefix g.874.1-model;
+
+ import core-model {
+ prefix core-model;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga
+ <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Thorsten Heinze
+ <mailto:thorsten.heinze@telefonica.com>
+ Martin Skorupski
+ <mailto:martin.skorupski@highstreet-technologies.com>";
+ description "<p>Version 2.02; outcome of the 10/2013 Nuremberg meeting.<br>Version 2.03; updates for Geneva 03-2014<br>Version 2.04; updates for Shanghai 09-2014<br>Version 2.05; input to Geneva 11-2014<br>Version 2.06; output from Geneva 11-2014<br>Version 2.07; using OpenProfile 3-2015<br>Version 2.08; output from Geneva 06-2015</p>";
+ revision 2017-03-20 {
+ description "Initial version";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+ /***********************
+ * package object-classes
+ **********************/
+ grouping otn-current-data-g {
+ leaf timestamp {
+ type date-and-time;
+ description "The timestamp associated with when the current data was collected.";
+ }
+ uses q.822-current-data-g;
+ description "This object class is an abstract class from which the OTN layer-specific CurrentData object classes are inherited. This object class is a subclass of the Q.822 CurrentData object class, which in turn is a subclass of X.739 Scanner object class. It inherits the following attributes: scannerId, operationalState, granularityPeriod, administrativeState, suspectIntervalFlag, elapsedTime, observedObjectClass, and observedObjectInstance.";
+ }
+ grouping otn-history-data-g {
+ leaf suspect-interval-flag {
+ type boolean;
+ default false;
+ description "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ uses q.822-history-data-g;
+ description "This object class is an abstract class from which the OTN layer-specific HistoryData object classes are inherited. ";
+ }
+
+ /***********************
+ * package type-definitions
+ **********************/
+ typedef directionality {
+ type enumeration {
+ enum sink {
+ description "none";
+ }
+ enum source {
+ description "none";
+ }
+ enum bidirectional {
+ description "none";
+ }
+ }
+ description "The enumeration with the options for directionality of the termination point.";
+ }
+ typedef gcc-access {
+ type enumeration {
+ enum gcc1 {
+ description "none";
+ }
+ enum gcc2 {
+ description "none";
+ }
+ enum gcc1-and-gcc2 {
+ description "none";
+ }
+ }
+ description "This enumeration indicates the GCC access represented by the entity.";
+ }
+ typedef operational-state {
+ type enumeration {
+ enum enabled {
+ description "none";
+ }
+ enum disabled {
+ description "none";
+ }
+ }
+ description "The list of valid operational states for the connection.";
+ }
+ typedef oper-type {
+ type enumeration {
+ enum revertive {
+ description "none";
+ }
+ enum non-revertive {
+ description "none";
+ }
+ }
+ description "The operation type associated with the protection mechanism (either non-revertive or revertive).";
+ }
+ typedef ext-cmd-operation {
+ type enumeration {
+ enum exercise {
+ description "none";
+ }
+ enum manual-switch {
+ description "none";
+ }
+ enum forced-switch {
+ description "none";
+ }
+ enum lockout {
+ description "none";
+ }
+ enum release-of-manual-switch {
+ description "none";
+ }
+ enum release-of-forced-switch {
+ description "none";
+ }
+ enum release-of-lockout {
+ description "none";
+ }
+ }
+ description "This enumeration contains the options for the actions that instruct the protection system for performing specific protection switching operations.";
+ }
+ typedef administrative-state {
+ type enumeration {
+ enum unlocked {
+ description "none";
+ }
+ enum locked {
+ description "none";
+ }
+ enum shutting-down {
+ description "none";
+ }
+ }
+ description "For more information on Administrative State, See ITU-T Recs. X.731 and M.3100.";
+ }
+ typedef oc-tk-nim-k-bit-rate {
+ type enumeration {
+ enum 2.5-g {
+ description "none";
+ }
+ enum 10-g {
+ description "none";
+ }
+ enum 40-g {
+ description "none";
+ }
+ enum 100-g {
+ description "none";
+ }
+ }
+ description "Provides an enumeration with the meaning of each 'k' value.";
+ }
+ typedef tim-det-mo {
+ type enumeration {
+ enum dapi {
+ description "none";
+ }
+ enum sapi {
+ description "none";
+ }
+ enum both {
+ description "none";
+ }
+ }
+ description "List of modes for trace identifier mismatch detection.";
+ }
+ typedef oc-tk-nim-problem-list {
+ type enumeration {
+ enum los-p {
+ description "Loss of Signal -- Payload";
+ }
+ enum oci {
+ description "Open Connection Indicator";
+ }
+ enum ssf-p {
+ description "Server Signal Failure -- Payload -- can not co-exist with SSF or SSF-O";
+ }
+ enum ssf-o {
+ description "Server Signal Failure -- Overhead; can not co-exist with SSF or SSF-P";
+ }
+ enum ssf {
+ description "Server Signal Failure; can not co-exist with SSF-P or SSF-O";
+ }
+ enum tim {
+ description "Trail Trace Identifier Mismatch";
+ }
+ enum deg {
+ description "Signal Degraded";
+ }
+ enum bdi {
+ description "Backward Defect Indication";
+ }
+ }
+ description "The valid list of problems for the entity.";
+ }
+ typedef tcm-monitoring {
+ type enumeration {
+ enum intrusive {
+ description "none";
+ }
+ enum non-intrusive {
+ description "none";
+ }
+ }
+ description "Monitoring types for the tandem connection monitoring function.";
+ }
+ typedef tcm-mode {
+ type enumeration {
+ enum operational {
+ description "none";
+ }
+ enum transparent {
+ description "none";
+ }
+ enum monitor {
+ description "none";
+ }
+ }
+ description "List of value modes for the sink side of the tandem connection monitoring function.";
+ }
+ typedef ops-mnk-ttp-k-bit-rate {
+ type enumeration {
+ enum 40-g {
+ description "none";
+ }
+ enum 100-g {
+ description "none";
+ }
+ }
+ description "Provides an enumeration with the meaning of each 'k' value.";
+ }
+ typedef ops-mnk-ttp-problem-list {
+ type enumeration {
+ enum los {
+ description "Loss of Signal";
+ }
+ enum lol {
+ description "Loss of Lane Alignment";
+ }
+ }
+ description "The valid list of problems for the entity.";
+ }
+ typedef op-sn-ttp-problem-list {
+ type enumeration {
+ enum los {
+ description "Loss of Signal";
+ }
+ }
+ description "The valid list of problems for the entity.";
+ }
+ typedef otm-n-k-bit-rates {
+ type enumeration {
+ enum 2.5-g {
+ description "none";
+ }
+ enum 10-g {
+ description "none";
+ }
+ enum 40-g {
+ description "none";
+ }
+ enum 2.5-10-g {
+ description "none";
+ }
+ enum 10-40-g {
+ description "none";
+ }
+ enum 2.5-10-40-g {
+ description "none";
+ }
+ }
+ description "Provides an enumeration with the meaning of each 'k' value.";
+ }
+ typedef domain-interface {
+ type enumeration {
+ enum intra-domain {
+ description "none";
+ }
+ enum inter-domain {
+ description "none";
+ }
+ }
+ description "This enumeration provides the options for the interface associated with OTMn.";
+ }
+ typedef otm-n-optical-reach {
+ type enumeration {
+ enum intra-office {
+ description "none";
+ }
+ enum shorthaul {
+ description "none";
+ }
+ enum longhaul {
+ description "none";
+ }
+ }
+ description "The valid options for reach of the optical cable.";
+ }
+ typedef apr-status {
+ type enumeration {
+ enum on {
+ description "none";
+ }
+ enum off {
+ description "none";
+ }
+ }
+ description "The enumeration of the options for the Automatic Power Reduction Status.";
+ }
+ typedef ot-sn-ttp-problem-list {
+ type enumeration {
+ enum bdi-p {
+ description "BDI-P (Backward Defect Indication - Payload); not co-exist with BDI-O or BDI";
+ }
+ enum bdi-o {
+ description "BDI-O (Backward Defect Indication - Overhead); not co-exist with BDI-P or BDI";
+ }
+ enum bdi {
+ description "BDI (Backward Defect Indication); not co-exist with BDI-P or BDI-O";
+ }
+ enum tim {
+ description "TIM (Trail Trace Identifier Mismatch);";
+ }
+ enum los-p {
+ description "-P (Loss of Signal - Payload); not co-exist with LOS-O or LOS";
+ }
+ enum los-o {
+ description "LOS-O (Loss of Signal - Overhead); not co-exist with LOS-P or LOS";
+ }
+ enum los {
+ description "LOS (Loss of Signal); not co-exist with LOS-P or LOS-O. ";
+ }
+ }
+ description "The valid list of problems for the entity.";
+ }
+ typedef ot-uk-ctp-adaptation {
+ type enumeration {
+ enum regular {
+ description "i.e. OPSM/OTUk-a, OCh[r]/OTUk-a";
+ }
+ enum none {
+ description "i.e. OPSM/OTUk-b, OCh[r]/OTUk-b";
+ }
+ enum vendor-specific {
+ description "i.e. OCh[r]/OTUk-v";
+ }
+ enum functionally-standardized {
+ description "i.e. OCh[r]/OTUkV";
+ }
+ }
+ description "The adaptation options for OTUk_ConnectionTermationPoints.";
+ }
+ typedef ot-uk-ctp-k-bit-rate {
+ type enumeration {
+ enum 2.5-g {
+ description "none";
+ }
+ enum 10-g {
+ description "none";
+ }
+ enum 40-g {
+ description "none";
+ }
+ enum 100-g {
+ description "none";
+ }
+ }
+ description "Provides an enumeration with the meaning of each 'k' value.";
+ }
+ typedef ot-uk-ctp-problem-list {
+ type enumeration {
+ enum lof {
+ description "Loss of Frame";
+ }
+ enum ais {
+ description "Alarm Indication Signal";
+ }
+ enum lom {
+ description "Loss of MultiFrame";
+ }
+ }
+ description "The valid list of problems for the entity.";
+ }
+ typedef ot-uk-ttp-problem-list {
+ type enumeration {
+ enum tim {
+ description "Trail Trace Identifier Mismatch";
+ }
+ enum deg {
+ description "Signal Degraded";
+ }
+ enum bdi {
+ description "Backward Defect Indication";
+ }
+ enum ssf {
+ description "Server Signal Failure";
+ }
+ }
+ description "The valid list of problems for the entity.";
+ }
+ typedef monitored-direction {
+ type enumeration {
+ enum sink {
+ description "none";
+ }
+ enum source {
+ description "none";
+ }
+ }
+ description "The enumeration with the options for directionality for nonintrusive monitoring.";
+ }
+ typedef deg-thr-type {
+ type enumeration {
+ enum percentage {
+ description "<p>Choice of % or Number of errored blocks</p>";
+ }
+ enum number-errored-blocks {
+ description "<p>Number of % or blocks</p>";
+ }
+ }
+ description "<p>The value of the threshold can be provisioned in terms of number of errored blocks or in terms of percentage of errored blocks. For percentage-based specification, in order to support provision of less than 1%, the specification consists of two fields. The first field indicates the granularity of percentage. For examples, in 1%, in 0.1%, or in 0.01%, etc. The second field indicates the multiple of the granularity. For number of errored block based, the value is a positive integer.</p>";
+ }
+ typedef link-type {
+ type enumeration {
+ enum dwdm {
+ description "none";
+ }
+ enum cwdm {
+ description "none";
+ }
+ enum no-wdm {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef application-identifier-type {
+ type enumeration {
+ enum standard {
+ description "none";
+ }
+ enum proprietary {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef printable-string {
+ type string;
+ description "none";
+ }
+ typedef date-and-time {
+ type string;
+ description "This primitive type defines the date and time according to the following structure:
+ 'yyyyMMddhhmmss.s[Z|{+|-}HHMm]' where:
+ yyyy '0000'..'9999' year
+ MM '01'..'12' month
+ dd '01'..'31' day
+ hh '00'..'23' hour
+ mm '00'..'59' minute
+ ss '00'..'59' second
+ s '.0'..'.9' tenth of second (set to '.0' if EMS or NE cannot support this granularity)
+ Z 'Z' indicates UTC (rather than local time)
+ {+|-} '+' or '-' delta from UTC
+ HH '00'..'23' time zone difference in hours
+ Mm '00'..'59' time zone difference in minutes.";
+ }
+ typedef aps-channel {
+ type enumeration {
+ enum path {
+ description "none";
+ }
+ enum tcm1 {
+ description "none";
+ }
+ enum tcm2 {
+ description "none";
+ }
+ enum tcm3 {
+ description "none";
+ }
+ enum tcm4 {
+ description "none";
+ }
+ enum tcm5 {
+ description "none";
+ }
+ enum tcm6 {
+ description "none";
+ }
+ enum section {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef bit-string {
+ type string;
+ description "This primitive type defines a bit oriented string.
+ The size of the BitString will be defined in the valueRange property of the attribute; according to ASN.1 (X.680).
+ The semantic of each bit position will be defined in the Documentation field of the attribute.";
+ }
+ typedef delay-measurement-role {
+ type enumeration {
+ enum controller {
+ description "none";
+ }
+ enum responder {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef resize-operation-type {
+ type enumeration {
+ enum increase-bw {
+ description "Increase Bandwidth";
+ }
+ enum decrease-bw {
+ description "Decrease Bandwidth";
+ }
+ }
+ description "none";
+ }
+ typedef granularity-period-type {
+ type enumeration {
+ enum unknown {
+ description "none";
+ }
+ enum period-15-min {
+ description "none";
+ }
+ enum period-24-hours {
+ description "none";
+ }
+ }
+ description "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ /***********************
+ * package illustrative-object-diagrams
+ **********************/
+
+ /***********************
+ * package imported-information-object-classes
+ **********************/
+ /***********************
+ * package q.822
+ **********************/
+ grouping q.822-current-data-g {
+ leaf suspect-interval-flag {
+ type boolean;
+ description "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:- Suspect data were detected by the actual resource doing data collection.- Transition of the administrativeState attribute to/from the 'lock' state.- Transition of the operationalState to/from the 'disabled' state.- Scheduler setting that inhibits the collection function.- The performance counters were reset during the interval.- The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ description "none";
+ }
+ uses x.739-scanner-g;
+ description "none";
+ }
+ grouping q.822-history-data-g {
+ leaf history-data-id {
+ type string;
+ description "none";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ description "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ description "none";
+ }
+ uses x.721-top-g;
+ description "none";
+ }
+
+ /***********************
+ * package x.739
+ **********************/
+ grouping x.739-scanner-g {
+ leaf scanner-id {
+ type string;
+ description "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ description "none";
+ }
+ leaf administrative-state {
+ type core-model:administrative-state;
+ description "none";
+ }
+ uses x.721-top-g;
+ description "none";
+ }
+
+ /***********************
+ * package x.721
+ **********************/
+ grouping x.721-top-g {
+ leaf object-class {
+ type object-identifier;
+ description "ObjectClass ::= CHOICE{ globalForm [0] OBJECT IDENTIFIER,
+ localForm [1] INTEGER}";
+ }
+ leaf name-binding {
+ type object-identifier;
+ description "none";
+ }
+ description "This is the top level of managed object class hierarchy and every other managed object class is a specialization of either this generic class (top) or a specialization of subclass of top. The parameter miscellaneousError is to be used when a processing failure has occurred and the error condition encountered does not match any of object's defined specific error types.";
+ }
+
+
+ /***********************
+ * package imported-data-types
+ **********************/
+ typedef object-instance {
+ type string;
+ description "none";
+ }
+ typedef name {
+ type string;
+ description "none";
+ }
+ typedef object-identifier {
+ type string;
+ description "none";
+ }
+ typedef generalized-time {
+ type string;
+ description "none";
+ }
+ typedef time-period {
+ type string;
+ description "This primitive Type is imported from X.739.";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/ietf-ptp-dataset@2017-02-08.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/ietf-ptp-dataset@2017-02-08.yang
new file mode 100644
index 000000000..d899e5692
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/ietf-ptp-dataset@2017-02-08.yang
@@ -0,0 +1,605 @@
+ module ietf-ptp-dataset{
+ namespace "urn:ietf:params:xml:ns:yang:ietf-ptp-dataset";
+ prefix "ptp-dataset";
+ organization "IETF TICTOC Working Group";
+ contact
+ "WG Web: http://tools.ietf.org/wg/tictoc/
+ WG List: <mailto:tictoc@ietf.org>
+ WG Chair: Karen O'Donoghue
+ <mailto:odonoghue@isoc.org>
+ WG Chair: Yaakov Stein
+ <mailto: Yaakov_s@rad.com>
+ Editor: Yuanlong Jiang
+ <mailto:jiangyuanlong@huawei.com>
+ Editor: Rodney Cummings
+ <mailto:rodney.cummings@ni.com>";
+ description
+ "This YANG module defines a data model for the configuration
+ of IEEE 1588-2008 clocks, and also for retrieval of the state
+ data of IEEE 1588-2008 clocks.";
+
+ revision "2017-02-08" {
+ description "Version 4.0";
+ reference "draft-ietf-tictoc-1588v2-yang";
+ }
+
+ typedef delay-mechanism-enumeration {
+ type enumeration {
+ enum E2E {
+ value 1;
+ description
+ "The port uses the delay request-response
+ mechanism.";
+ }
+ enum P2P {
+ value 2;
+ description
+ "The port uses the peer delay mechanism.";
+ }
+ enum DISABLED {
+ value 254;
+ description
+ "The port does not implement any delay
+ mechanism.";
+ }
+ }
+ description
+ "The propagation delay measuring option used by the
+ port. Values for this enumeration are specified
+ by the IEEE 1588 standard exclusively.";
+ reference
+ "IEEE Std 1588-2008: 8.2.5.4.4";
+ }
+
+ typedef port-state-enumeration {
+ type enumeration {
+ enum INITIALIZING {
+ value 1;
+ description
+ "The port is initializing its data sets, hardware, and
+ communication facilities.";
+ }
+ enum FAULTY {
+ value 2;
+ description
+ "The port is in the fault state.";
+ }
+ enum DISABLED {
+ value 3;
+ description
+ "The port is disabled, and is not communicating PTP
+ messages (other than possibly PTP management
+ messages).";
+ }
+ enum LISTENING {
+ value 4;
+ description
+ "The port is listening for an Announce message.";
+ }
+ enum PRE_MASTER {
+ value 5;
+ description
+ "The port is in the pre-master state.";
+ }
+ enum MASTER {
+ value 6;
+ description
+ "The port is behaving as a master port.";
+ }
+ enum PASSIVE {
+ value 7;
+ description
+ "The port is in the passive state.";
+ }
+ enum UNCALIBRATED {
+ value 8;
+ description
+ "A master port has been selected, but the port is still
+ in the uncalibrated state.";
+ }
+ enum SLAVE {
+ value 9;
+ description
+ "The port is synchronizing to the selected
+ master port.";
+ }
+ }
+ description
+ "The current state of the protocol engine associated
+ with the port. Values for this enumeration are specified
+ by the IEEE 1588 standard exclusively.";
+ reference
+ "IEEE Std 1588-2008: 8.2.5.3.1, 9.2.5";
+ }
+
+ typedef time-interval-type {
+ type int64;
+ description
+ "Derived data type for time interval,
+ represented in units of nanoseconds and
+ multipled by 2^16";
+ reference
+ "IEEE Std 1588-2008: 5.3.2";
+ }
+
+ typedef clock-identity-type {
+ type binary {
+ length "8";
+ }
+ description
+ "Derived data type to identify a clock";
+ reference
+ "IEEE Std 1588-2008: 5.3.4";
+ }
+
+ grouping port-identity-grouping {
+ description
+ "Derived data type to identify a port, which contains
+ two members: clockIdentity and portNumber.";
+ reference
+ "IEEE Std 1588-2008: 5.3.5";
+
+ leaf clock-identity {
+ type clock-identity-type;
+ description
+ "Identity of the clock";
+ }
+
+ leaf port-number {
+ type uint16;
+ description
+ "Port number";
+ }
+ }
+
+ grouping clock-quality-grouping {
+ description
+ "Derived data type for quality of a clock, which contains
+ clockClass, clockAccuracy and offsetScaledLogVariance.";
+ reference
+ "IEEE Std 1588-2008: 5.3.7";
+
+ leaf clock-class {
+ type uint8;
+ default 248;
+ description
+ "The clockClass denotes the traceability of the time
+ or frequency distributed by the clock.";
+ }
+
+ leaf clock-accuracy {
+ type uint8;
+ description
+ "The clockAccuracy indicates the expected accuracy
+ of the clock.";
+ }
+
+ leaf offset-scaled-log-variance {
+ type uint16;
+ description
+ "The offsetScaledLogVariance provides an
+ estimate of the variations of the clock
+ from a linear timescale when it is not synchronized
+ to another clock using the protocol.";
+ }
+ }
+
+ grouping default-ds-entry {
+ description
+ "Collection of members of the default data set.";
+
+ leaf two-step-flag {
+ type boolean;
+ description
+ "When set, the clock is a two-step clock; otherwise,
+ the clock is a one-step clock.";
+ }
+
+ leaf clock-identity {
+ type clock-identity-type;
+ description
+ "The clockIdentity of the local clock";
+ }
+
+ leaf number-ports {
+ type uint16;
+ description
+ "The number of PTP ports on the device.";
+ }
+
+ container clock-quality {
+ description
+ "The clockQuality of the local clock.";
+
+ uses clock-quality-grouping;
+ }
+
+ leaf priority1 {
+ type uint8;
+ description
+ "The priority1 attribute of the local clock.";
+ }
+
+ leaf priority2{
+ type uint8;
+ description
+ "The priority2 attribute of the local clock. ";
+ }
+
+ leaf domain-number {
+ type uint8;
+ description
+ "The domain number of the current syntonization
+ domain.";
+ }
+
+ leaf slave-only {
+ type boolean;
+ description
+ "When set, the clock is a slave-only clock.";
+ }
+ }
+
+ grouping current-ds-entry {
+ description
+ "Collection of members of current data set.";
+
+ leaf steps-removed {
+ type uint16;
+ default 0;
+ description
+ "The number of communication paths traversed
+ between the local clock and the grandmaster clock.";
+ }
+ leaf offset-from-master {
+ type time-interval-type;
+ description
+ "The current value of the time difference between
+ a master and a slave clock as computed by the slave.";
+ }
+
+ leaf mean-path-delay {
+ type time-interval-type;
+ description
+ "The current value of the mean propagation time between
+ a master and a slave clock as computed by the slave.";
+
+ }
+ }
+
+ grouping parent-ds-entry {
+ description
+ "Collection of members of the parent data set.";
+
+ container parent-port-identity {
+ description
+ "The portIdentity of the port on the master";
+ uses port-identity-grouping;
+ }
+ leaf parent-stats {
+ type boolean;
+ default false;
+ description
+ "When set, the values of
+ observedParentOffsetScaledLogVariance and
+ observedParentClockPhaseChangeRate of parentDS
+ have been measured and are valid.";
+ }
+ leaf observed-parent-offset-scaled-log-variance {
+ type uint16;
+ default 0xFFFF;
+ description
+ "An estimate of the parent clock's PTP variance
+ as observed by the slave clock.";
+ }
+ leaf observed-parent-clock-phase-change-rate {
+ type int32;
+ description
+ "An estimate of the parent clock's phase change rate
+ as observed by the slave clock.";
+ }
+ leaf grandmaster-identity {
+ type binary{
+ length "8";
+ }
+
+ description
+ "The clockIdentity attribute of the grandmaster clock.";
+
+ }
+ container grandmaster-clock-quality {
+ description
+ "The clockQuality of the grandmaster clock.";
+ uses clock-quality-grouping;
+ }
+ leaf grandmaster-priority1 {
+ type uint8;
+ description
+ "The priority1 attribute of the grandmaster clock.";
+ }
+ leaf grandmaster-priority2 {
+ type uint8;
+ description
+ "The priority2 attribute of the grandmaster clock.";
+ }
+ }
+
+ grouping time-properties-ds-entry {
+ description
+ "Collection of members of the timeProperties data set.";
+ leaf current-utc-offset-valid {
+ type boolean;
+ description
+ "When set, the current UTC offset is valid.";
+ }
+ leaf current-utc-offset {
+ type int16;
+ description
+ "The offset between TAI and UTC when the epoch of the
+ PTP system is the PTP epoch, i.e., when ptp-timescale
+ is TRUE; otherwise, the value has no meaning.";
+ }
+ leaf leap59 {
+ type boolean;
+ description
+ "When set, the last minute of the current UTC day
+ contains 59 seconds.";
+ }
+ leaf leap61 {
+ type boolean;
+ description
+ "When set, the last minute of the current UTC day
+ contains 61 seconds.";
+ }
+ leaf time-traceable {
+ type boolean;
+ description
+ "When set, the timescale and the currentUtcOffset are
+ traceable to a primary reference.";
+ }
+ leaf frequency-traceable {
+ type boolean;
+ description
+ "When set, the frequency determining the timescale
+ is traceable to a primary reference.";
+ }
+ leaf ptp-timescale {
+ type boolean;
+ description
+ "When set, the clock timescale of the grandmaster
+ clock is PTP; otherwise, the timescale is ARB
+ (arbitrary).";
+ }
+ leaf time-source {
+ type uint8;
+ description
+ "The source of time used by the grandmaster clock.";
+
+ }
+ }
+
+ grouping port-ds-entry {
+ description
+ "Collection of members of the port data set.";
+
+ container port-identity {
+ description
+ "The portIdentity attribute of the local port.";
+ uses port-identity-grouping;
+ }
+
+ leaf port-state {
+ type port-state-enumeration;
+ default "INITIALIZING";
+ description
+ "Current state associated with the port.";
+ }
+
+ leaf log-min-delay-req-interval {
+ type int8;
+ description
+ "The base-two logarithm of the minDelayReqInterval
+ (the minimum permitted mean time interval between
+ successive Delay_Req messages).";
+ }
+
+ leaf peer-mean-path-delay {
+ type time-interval-type;
+ default 0;
+ description
+ "An estimate of the current one-way propagation delay
+ on the link when the delayMechanism is P2P; otherwise,
+ it is zero.";
+ }
+
+ leaf log-announce-interval {
+ type int8;
+ description
+ "The base-two logarithm of the mean
+ announceInterval (mean time interval between
+ successive Announce messages).";
+ }
+
+ leaf announce-receipt-timeout {
+ type uint8;
+ description
+ "The number of announceInterval that have to pass
+ without receipt of an Announce message before the
+ occurrence of the event ANNOUNCE_RECEIPT_TIMEOUT_
+ EXPIRES.";
+ }
+
+ leaf log-sync-interval {
+ type int8;
+ description
+ "The base-two logarithm of the mean SyncInterval
+ for multicast messages. The rates for unicast
+ transmissions are negotiated separately on a per port
+ basis and are not constrained by this attribute.";
+ }
+
+ leaf delay-mechanism {
+ type delay-mechanism-enumeration;
+ description
+ "The propagation delay measuring option used by the
+ port in computing meanPathDelay.";
+ }
+
+ leaf log-min-pdelay-req-interval {
+ type int8;
+ description
+ "The base-two logarithm of the
+ minPdelayReqInterval (minimum permitted mean time
+ interval between successive Pdelay_Req messages).";
+
+ }
+
+ leaf version-number {
+ type uint8;
+ description
+ "The PTP version in use on the port.";
+ }
+ }
+
+ grouping transparent-clock-default-ds-entry {
+ description
+ "Collection of members of the transparentClockDefault data
+ set (default data set for a transparent clock).";
+
+ leaf clock-identity {
+ type clock-identity-type;
+ description
+ "The clockIdentity of the transparent clock.";
+ }
+ leaf number-ports {
+ type uint16;
+ description
+ "The number of PTP ports on the device.";
+ }
+ leaf delay-mechanism {
+ type delay-mechanism-enumeration;
+ description
+ "The propagation delay measuring option
+ used by the transparent clock.";
+ }
+ leaf primary-domain {
+ type uint8;
+ default 0;
+ description
+ "The domainNumber of the primary syntonization domain.";
+
+ }
+ }
+
+ grouping transparent-clock-port-ds-entry {
+ description
+ "Collection of members of the transparentClockPort data
+ set (port data set for a transparent clock).";
+
+ container port-identity {
+ description
+ "The portIdentity of the local port.";
+
+ uses port-identity-grouping;
+ }
+ leaf log-min-pdelay-req-interval {
+ type int8;
+ description
+ "The logarithm to the base 2 of the
+ minPdelayReqInterval (minimum permitted mean time
+ interval between successive Pdelay_Req messages).";
+ }
+ leaf faulty-flag {
+ type boolean;
+ default false;
+ description
+ "When set, the port is faulty.";
+ }
+ leaf peer-mean-path-delay {
+ type time-interval-type;
+ default 0;
+ description
+ "An estimate of the current one-way propagation delay
+ on the link when the delayMechanism is P2P; otherwise,
+ it is zero.";
+ }
+ }
+
+ list instance-list {
+
+ key "instance-number";
+
+ description
+ "List of one or more PTP datasets in the device, one for
+ each domain (see IEEE 1588-2008 subclause 6.3).
+ Each PTP dataset represents a distinct instance of
+ PTP implementation in the device (i.e. distinct
+ Ordinary Clock or Boundary Clock).";
+
+ leaf instance-number {
+ type uint16;
+ description
+ "The instance number of the current PTP instance";
+ }
+ container default-ds {
+ description
+ "The default data set of the clock.";
+ uses default-ds-entry;
+ }
+
+ container current-ds {
+ description
+ "The current data set of the clock.";
+ uses current-ds-entry;
+ }
+
+ container parent-ds {
+ description
+ "The parent data set of the clock.";
+ uses parent-ds-entry;
+ }
+
+ container time-properties-ds {
+ description
+ "The timeProperties data set of the clock.";
+ uses time-properties-ds-entry;
+ }
+
+ list port-ds-list {
+ key "port-number";
+ description
+ "List of port data sets of the clock.";
+ leaf port-number{
+ type leafref{
+ path "../port-identity/port-number";
+ }
+ description
+ "Refers to the portNumber memer of
+ portDS.portIdentity.";
+ }
+ uses port-ds-entry;
+ }
+ }
+
+ container transparent-clock-default-ds {
+ description
+ "The members of the transparentClockDefault Data Set";
+ uses transparent-clock-default-ds-entry;
+ }
+
+ list transparent-clock-port-ds-list {
+ key "port-number";
+ description
+ "List of transparentClockPort data sets
+ of the transparent clock.";
+ leaf port-number {
+ type leafref {
+ path "../port-identity/port-number";
+ }
+ description
+ "Refers to the portNumber memer
+ of transparentClockPortDS.portIdentity.";
+ }
+ uses transparent-clock-port-ds-entry;
+ }
+ }
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2017-03-24.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2017-03-24.yang
new file mode 100644
index 000000000..e6b6bb382
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2017-03-24.yang
@@ -0,0 +1,2262 @@
+module microwave-model {
+ namespace "urn:onf:params:xml:ns:yang:microwave-model";
+ prefix microwave-model;
+
+ import core-model {
+ prefix core-model;
+ }
+ import g.874.1-model {
+ prefix g;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga
+ <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Thorsten Heinze
+ <mailto:thorsten.heinze@telefonica.com>
+ Martin Skorupski
+ <mailto:martin.skorupski@highstreet-technologies.com>";
+ description "This module contains a collection of YANG definitions for managing wireless networks.";
+ revision 2017-03-24 {
+ description "Initial version";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+ /***********************
+ * package type-definitions
+ **********************/
+ typedef loop-back-type {
+ type enumeration {
+ enum none {
+ description "none";
+ }
+ enum if {
+ description "Intermediate Frequency on the interface between indoor and outdoor unit.";
+ }
+ enum rf {
+ description "Radio Frequency on the interface between outdoor unit and outdoor unit at the remote site.";
+ }
+ }
+ description "none";
+ }
+ typedef severity-type {
+ type enumeration {
+ enum non-alarmed {
+ description "none";
+ }
+ enum warning {
+ description "none";
+ }
+ enum minor {
+ description "none";
+ }
+ enum major {
+ description "none";
+ }
+ enum critical {
+ description "none";
+ }
+ }
+ description "According to ITU-T M.3160";
+ }
+ grouping channel-plan-type-g {
+ leaf supported-channel-plan {
+ type string;
+ default "Channel plan name not defined.";
+ config false;
+ description "Unique name (e.g. ECC/REC/(01)04_Annex 5) of a document, which describes a frequency grid that can be adjusted at the air interface. Corresponding channel plans to be delivered by the hardware vendor and to be stored by the operator in an controller/application attached database.";
+ }
+ leaf duplex-distance-is-variable {
+ type boolean;
+ default false;
+ config false;
+ description "To be set on 'true', if the distance between transmitted and received frequency is variable.";
+ }
+ leaf duplex-distance {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Distance between transmitted and received frequency.";
+ }
+ leaf auto-freq-select-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of automatically selecting the transmit frequency in unlicensed bands, this field shall contain a 'true'.";
+ }
+ list transmission-mode-list {
+ key 'transmission-mode-id';
+ config false;
+ min-elements 1;
+ uses transmission-mode-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping transmission-mode-type-g {
+ leaf transmission-mode-id {
+ type core-model:universal-id;
+ config false;
+ description "Indentifies the transmissionMode for internal reference.";
+ }
+ leaf channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf modulation-scheme {
+ type int16;
+ units "symbols";
+ default -1;
+ config false;
+ description "Modulation scheme, which is base to the other characteristics described in the same transmissionModeType data type. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256').";
+ }
+ leaf code-rate {
+ type int8;
+ units "%";
+ default -1;
+ config false;
+ description "Code rate of the coding scheme in % (Net bit rate ? Gross bit rate ? code rate).";
+ }
+ leaf tx-power-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the minimum transmit power the modem can operate in dBm.";
+ }
+ leaf tx-power-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the maximum transmit power the modem can operate in dBm.";
+ }
+ leaf rx-threshold {
+ type int16;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level required to decode the received signal with a Bit Error Rate of 1e-6 or less.";
+ }
+ leaf am-upshift-level {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level that has to be exceeded to shift into a higher modulation scheme.";
+ }
+ leaf am-downshift-level {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level that has to be exceeded for not shifting into a lower modulation scheme.";
+ }
+ leaf xpic-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case this air interface type is capable of XPIC, this field shall contain a 'true'. This information shall purely relate to capabilities of the equipment type, but not to the operational capability of a specific hardware composition on site. Means for example that this attribute might contain a 'true' statement, even if an additional cable would have been required to actually operate XPIC in a specific case.";
+ }
+ description "none";
+ }
+ typedef polarization-type {
+ type enumeration {
+ enum not-specified {
+ description "none";
+ }
+ enum horizontal {
+ description "none";
+ }
+ enum vertical {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ grouping air-interface-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ default "Problem kind name not defined.";
+ description "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping air-interface-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping air-interface-performance-type-g {
+ leaf es {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of errored seconds.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of severely errored seconds.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of consecutive severely errored seconds.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total time of unavailability in seconds.";
+ }
+ leaf tx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged transmit power. Signed integers are required.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum receive level. Signed integers are required.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum receive level. Signed integers are required.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged receive level. Signed integers are required.";
+ }
+ leaf time2-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Sum of all seconds the transmitter operated in e.g. BPSK.";
+ }
+ leaf time4-states-s {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time4-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time8-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time16-states-s {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time16-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time32-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time64-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time128-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time256-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time512-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time512-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time1024-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time1024-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time2048-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time2048-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time4096-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time4096-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time8192-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf time8192-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "none";
+ }
+ leaf snir-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum signal to (noise+interference) ratio.";
+ }
+ leaf snir-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum signal to (noise+interference) ratio.";
+ }
+ leaf snir-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Averaged signal to (noise+interference) ratio.";
+ }
+ leaf xpd-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum cross polarization discrimination.";
+ }
+ leaf xpd-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum cross polarization discrimination.";
+ }
+ leaf xpd-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Averaged cross polarization discrimination.";
+ }
+ leaf rf-temp-min {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Lowest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-max {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Highest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-avg {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Averaged temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf defect-blocks-sum {
+ type int16;
+ units "blocks";
+ default -1;
+ config false;
+ description "Total number of blocks that were defect after receiving and could not be corrected by the FEC.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period.";
+ }
+ description "Consolidated performance information of the air interface.";
+ }
+ grouping air-interface-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping air-interface-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ typedef protection-type {
+ type enumeration {
+ enum hsb {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef role-type {
+ type enumeration {
+ enum working {
+ description "none";
+ }
+ enum protection {
+ description "none";
+ }
+ enum protected {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ grouping diversity-type-g {
+ leaf diversity-name {
+ type string;
+ default "Diversity name not defined.";
+ config false;
+ description "Names to be chosen from the following list: 'spaceDiversity', 'frequencyDiversity'";
+ }
+ leaf number-of-air-interfaces-max {
+ type int8;
+ units "air interfaces";
+ default 1;
+ config false;
+ description "Maximum number of air interfaces that could be part of this kind of diversity.";
+ }
+ description "none";
+ }
+ typedef air-interface-diversity-status-type {
+ type enumeration {
+ enum group-down {
+ description "All air interfaces that are members of the diversity configuration are down.";
+ }
+ enum not-all-ai-active {
+ description "At least one, but not all of the air interfaces that are part of the diversity configuration is not working.";
+ }
+ enum all-ai-active {
+ description "All air interfaces that are part of the diversity configuration are working.";
+ }
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ default "Problem kind name not defined.";
+ description "Name of the alarm according to AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping air-interface-diversity-performance-type-g {
+ leaf snir-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf snir-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf snir-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Average signal to (noise+interference) ratio of the combined signals.";
+ }
+ description "Consolidated performance information of the air interface diversity group.";
+ }
+ grouping air-interface-diversity-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-diversity-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping air-interface-diversity-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-diversity-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ grouping tdm-structure-type-g {
+ leaf tdm-structure-name {
+ type string;
+ default "TDM structure name not defined.";
+ config false;
+ description "Names to be chosen from the following list: 'e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-segment-size {
+ type int32;
+ units "kbit/s";
+ default -1;
+ config false;
+ description "Size of the TDM segment in kbit/s. Values to be chosen from the following list: '2048','1544','34000','44736 ','155520','614400','1228800','2457600','3072000','4915200','6144000' or '9830400;";
+ }
+ leaf max-number-of-segments-reservable {
+ type int8;
+ units "segments";
+ default -1;
+ config false;
+ description "Device specific maximum number of segments (not depending on current air interface configuration) that can be reserved for this type of segment on a single air interface.";
+ }
+ description "none";
+ }
+ grouping structure-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ default "Problem kind name not defined.";
+ description "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping structure-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ typedef structure-performance-type {
+ type int32;
+ description "Consolidated performance information of the Structure.";
+ }
+ grouping structure-current-performance-type-g {
+ leaf performance-data {
+ type structure-performance-type;
+ config false;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping structure-historical-performance-type-g {
+ leaf performance-data {
+ type structure-performance-type;
+ config false;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ grouping container-type-g {
+ leaf container-name {
+ type string;
+ default "Container name not yet defined.";
+ config false;
+ description "Names to be chosen from the following list: 'ethernet','e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf number-of-time-slots-required {
+ type int16;
+ units "timeslots";
+ default -1;
+ config false;
+ description "Number of time slots required for transporting this type of container. Value must be calculated by the vendor after defining the timeSlotCapacity. For containers of fixed size: numberOfTimeSlotsRequired = required bandwidth of the container divided by timeSlotCapacity. For containers of variable size the minimum (most probably 1) is to be stated.";
+ }
+ leaf tdm-time-slots-is-required {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be set to '1', if this container type requires bandwidth (times slots) reserved for TDM transport.";
+ }
+ leaf bundling-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "If it is possible to combine transport resources of several radio links to transport this container type, this attribute shall be set to '1'.";
+ }
+ description "none";
+ }
+ grouping tdm-container-type-g {
+ leaf tdm-container-name {
+ type string;
+ default "TDM container name not defined.";
+ config false;
+ description "Names to be chosen from the following list: 'e1','t1','j1','e3','t3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-container-size {
+ type int32;
+ units "kbit/s";
+ default -1;
+ config false;
+ description "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;";
+ }
+ description "none";
+ }
+ grouping segment-id-type-g {
+ leaf structure-id-ref {
+ type core-model:universal-id;
+ description "none";
+ }
+ leaf segment-id-ref {
+ type int16;
+ description "Combinations of structureId and segmentId must be unique inside the device to assure that every resource is used just once.";
+ }
+ description "Identifies the segments, which are used to transport the container.";
+ }
+ grouping segment-status-type-g {
+ leaf segment-status-type-id {
+ type int16;
+ config false;
+ description "none";
+ }
+ leaf segment-is-reserved-for-tdm {
+ type boolean;
+ default false;
+ config false;
+ description "The number of segments, which is configured by Structure::StructureConfiguration::tdmReservedNumberOfSegements, has to be reserved for TDM. Starting from the lowest index value, these segments have to be marked with a 'true' in segmentIsReservedForTdm.
+ ";
+ }
+ leaf operational-status {
+ type core-model:operational-state;
+ default disabled;
+ config false;
+ description "Current operational status of each segment.";
+ }
+ leaf obsolete-priority-class {
+ type int8;
+ default -1;
+ config false;
+ description "PriorityClass as inherited from the associated Container::ContainerConfiguration::priorityClass. In case the device is capable of adapting the sequence, in which segments are being dropped in case of decreasing capacity of the air interface, priorityClass shall be considered, while calculating the dropOrderRank.";
+ }
+ leaf obsolete-drop-order-rank {
+ type int16;
+ default -1;
+ config false;
+ description "In case the device is NOT capable of adapting the sequence, in which segments are being dropped in case of decreasing capacity of the air interface, dropOrderRank is number of segments minus sequence number of the segment. In case the device is capable of adapting the sequence, dropOrderRank has to be calculated by the device in dependency to the assigned priorityClass.
+ _unique: within Structure::StructureStatus::segmentStatusList";
+ }
+ description "none";
+ }
+ grouping container-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ default "Problem kind name not defined.";
+ description "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping container-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping container-performance-type-g {
+ leaf tx-ethernet-bytes-max-s {
+ type int32;
+ units "Bytes/s";
+ default -1;
+ config false;
+ description "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a second and keeps the highest value within the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-max-m {
+ type int64;
+ units "Bytes/min";
+ default -1;
+ config false;
+ description "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a minute and keeps the highest value with in the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-sum {
+ type int64;
+ units "Bytes";
+ default -1;
+ config false;
+ description "Total number of Bytes of Ethernet traffic (before header compression) transmitted (in direction out of the device) during the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period in seconds.";
+ }
+ description "Consolidated performance information of the Container.";
+ }
+ grouping container-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses container-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping container-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses container-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+
+ /***********************
+ * package object-classes
+ **********************/
+ /***********************
+ * package air-interface
+ **********************/
+ list mw-air-interface-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container air-interface-capability {
+ config false;
+ uses air-interface-capability-g;
+ description "none";
+ }
+ container air-interface-configuration {
+ uses air-interface-configuration-g;
+ description "none";
+ }
+ container air-interface-status {
+ config false;
+ uses air-interface-status-g;
+ description "none";
+ }
+ container air-interface-current-problems {
+ config false;
+ uses air-interface-current-problems-g;
+ description "none";
+ }
+ container air-interface-current-performance {
+ config false;
+ uses air-interface-current-performance-g;
+ description "none";
+ }
+ container air-interface-historical-performances {
+ config false;
+ uses air-interface-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-capability-g {
+ leaf type-of-equipment {
+ type string;
+ default "Type of equipment not yet defined.";
+ config false;
+ description "This parameter indicates the equipment type. Instead of uploading the complete set of capabilities, capabilities of the same equipment type could be reused. Should be unique for a combination of modem, radio and their respective firmware.";
+ }
+ leaf tx-frequency-min {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the minimum transmit frequency tunable at the air interface.";
+ }
+ leaf tx-frequency-max {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the maximum transmit frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-min {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the minimum receive frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-max {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the maximum receive frequency tunable at the air interface.";
+ }
+ leaf adaptive-modulation-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the device is capable of adaptive modulation, this field shall contain a 'true'.";
+ }
+ leaf mimo-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the device is capable of MIMO, this field shall contain a 'true'.";
+ }
+ leaf mimo-channels {
+ type int8;
+ units "channels";
+ default 1;
+ config false;
+ description "Maximum number (n) of spatial multiplexing streams that can be conveyed by an n x n MIMO configuration.";
+ }
+ leaf alic-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of Adjacent Link Interference Cancelation (canceling of interference cause by transmitters located at the same site), this field shall contain a 'true'.";
+ }
+ leaf atpc-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of ATPC, this field shall contain a 'true'.";
+ }
+ leaf atpc-range {
+ type int8;
+ units "dB";
+ default 0;
+ config false;
+ description "Extent of the ATPC range.";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be marked 'true', if payload encryption is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 2;
+ description "List of supported kinds of looping back of header information to the remote site.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ units "s";
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description "Available time periods for maintenance configurations (e.g. the loop back of microwave header information) 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').";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description "Available alarms to be listed. Mandatory:'signalIsLost','rslIsExceeded','temperatureIsExceeded','modemIsFaulty','radioIsFaulty' and 'modulationIsDownShifted'. Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ list supported-channel-plan-list {
+ key 'supported-channel-plan';
+ config false;
+ min-elements 1;
+ uses channel-plan-type-g;
+ description "List of channel spacing that are supported by the device.";
+ }
+ description "Describes the 'analog' capabilities of modem and transmitter of the microwave device. Value ranges of attributes are not independently (e.g. min. and max. transmit power depends on modulation). Legal combinations of values are expressed in transmissionModeTypes.";
+ }
+ grouping air-interface-configuration-g {
+ leaf air-interface-name {
+ type string;
+ default "Air interface ID not yet defined.";
+ description "Operator specific microwave link ID (often used for coding area, type of element and sequential number).";
+ }
+ leaf radio-signal-id {
+ type string;
+ default "Radio signal ID not yet defined.";
+ description "The radioSignalId is transmitted on the air interface so the remote site of the link synchronizes on the correct transmitter. The local radio MUST NOT synchronize on a radio signal with a different radioSignalId. The link ID is neither an ID necessary to span the model nor an ID referencing external data. It is just some sort of name of the link transmitted so the correct remote site can be identified in an interference situation. The value zero might be used to make the microwave to disable the link ID check.";
+ }
+ leaf tx-frequency {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Center frequency of the transmit channel. The values to be configured have to exactly match the values listed in the international agreement referenced in channelPlanID. In case of automated selection of the transmit frequency this field shall describe the lowest center frequency selectable.";
+ }
+ leaf rx-frequency {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Center frequency of the receive channel.";
+ }
+ leaf tx-channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf rx-channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Bandwidth of the receive channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf polarization {
+ type polarization-type;
+ default not-specified;
+ description "Allows documenting the polarization of the air interface.";
+ }
+ leaf power-is-on {
+ type boolean;
+ default true;
+ description "Power ON. Activation of the entire radio in a split mount configuration shall be expressed as a 'true'.";
+ }
+ leaf transmitter-is-on {
+ type boolean;
+ default false;
+ description "Activation of the transmitter inside the radio shall be expressed as a 'true'.";
+ }
+ leaf receiver-is-on {
+ type boolean;
+ default true;
+ description "Maintenance Feature. Activation of the receiver inside the radio shall be expressed as a 'true'. Attribute shall also be used for RX main and RX diversity squelches in case of diversity configurations.
+ ";
+ }
+ leaf tx-power {
+ type int8;
+ units "dBm";
+ default 99;
+ description "Transmit power to be configured on the microwave link. Signed Byte is required. The actually operated transmit power might be lower depending on adaptive modulation and ATPC.";
+ }
+ leaf adaptive-modulation-is-on {
+ type boolean;
+ default false;
+ description "Adaptive Modulation. Activation of adaptive modulation shall be expressed as a 'true'.";
+ }
+ leaf modulation-min {
+ type int16;
+ units "symbols";
+ default -1;
+ description "Minimum modulation to be configured (in case adaptive modulation is not used, this value represents also the fixed modulation). The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf modulation-max {
+ type int16;
+ units "symbols";
+ default -1;
+ description "Maximum modulation to be configured. The value of this field is only relevant, if Adaptive Modulation has been activated. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf xpic-is-on {
+ type boolean;
+ default false;
+ description "Activation of Cross Polarization Interference Cancelation shall be expressed as a 'true'. In case XPIC is not available for the current combination of channel bandwidth and modulation or the hardware in general, this parameter shall always be set to 'false'.";
+ }
+ leaf mimo-is-on {
+ type boolean;
+ default false;
+ description "Activation of Multiple Input Multiple Output (MIMO) shall be expressed as a 'true'.";
+ }
+ leaf alic-is-on {
+ type boolean;
+ default false;
+ description "Activation of Adjacent Link Interference Cancelation (ALIC) shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-on {
+ type boolean;
+ default false;
+ description "ATPC. Activation of Automated Transmit Power Control shall be expressed as a 'true'.";
+ }
+ leaf atpc-thresh-upper {
+ type int16;
+ units "dBm";
+ default 99;
+ description "If the receive level is higher than the upper threshold value, the transmitter is notified to decrease transmit power.";
+ }
+ leaf atpc-thresh-lower {
+ type int16;
+ units "dBm";
+ default 99;
+ description "If the receive level is lower than the lower threshold value, the transmitter is notified to increase transmit power.";
+ }
+ leaf auto-freq-select-is-on {
+ type boolean;
+ default false;
+ description "Activation of automatically selecting the transmit frequency in unlicensed bands shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-range {
+ type int8;
+ units "channels";
+ default -1;
+ description "Number of transmit channels (starting at the center frequency defined in txFrequency and with channel bandwidth according to txChannelBandwidth) that define the range within the transmit frequency can automatically been chosen. ";
+ }
+ leaf modulation-is-on {
+ type boolean;
+ default true;
+ description "Maintenance Feature. De-activation of the modulation of the carrier signal for fault management shall be expressed as a 'false'.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default false;
+ description "Activates encryption of the payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description "Key for transforming plaintext into ciphertext data.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default none;
+ description "Maintenance Feature. The currently configured type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default -1;
+ description "Time of existence of any maintenance configuration (e.g. the loop back of microwave header information). Valid values are defined in AirInterface::AirInterfaceCapability::maintenanceTimerRange.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 6;
+ uses air-interface-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "Configuration of the radio link.";
+ }
+ grouping air-interface-status-g {
+ leaf tx-frequency-cur {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Center frequency of the currently operated transmit channel.";
+ }
+ leaf rx-frequency-cur {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Center frequency of the currently operated receive channel.";
+ }
+ leaf tx-level-cur {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Current transmit level.";
+ }
+ leaf rx-level-cur {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Current receive level.";
+ }
+ leaf modulation-cur {
+ type int16;
+ units "symbols";
+ default -1;
+ config false;
+ description "Currently operated modulation on transmit path. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf code-rate-cur {
+ type int8;
+ units "%";
+ default -1;
+ config false;
+ description "Code rate of the currently operated coding scheme (Net bit rate ? Gross bit rate ? code rate).";
+ }
+ leaf snir-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured signal to (noise+interference) ratio.";
+ }
+ leaf xpd-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured cross polarization discrimination.";
+ }
+ leaf rf-temp-cur {
+ type int8;
+ units "Celsius";
+ default -99;
+ config false;
+ description "Current temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Air Interface entered its current operational status. ";
+ }
+ leaf radio-power-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If the radio unit has power and is switched on, this shall be expressed as a 'true'.";
+ }
+ leaf link-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If connection is established to the remote site with the same linkID, this shall be expressed as a 'true'.";
+ }
+ leaf xpic-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If XPIC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf mimo-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If MIMO is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf alic-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If Adjacent Link Interference Cancelation (ALIC) is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If ATPC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If automated frequency selection is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default none;
+ config false;
+ description "The currently active (not just configured) type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf local-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description "The value of the localEndPointId is a vendor specific identifier of the air interface, used by the node to discover a microwave radio link.";
+ }
+ leaf remote-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description "The value of the remoteEndPointId is a vendor specific identifier or the airinterface at the remote side, used to by the node to discover a microwave radio link.";
+ }
+ description "Measurements of current values on the air interface and operational status of the device.";
+ }
+ grouping air-interface-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses air-interface-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses air-interface-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the air interface at a particular moment.";
+ }
+ grouping air-interface-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses air-interface-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+ }
+ list co-channel-group {
+ key 'co-channel-group-id';
+ uses co-channel-group-g;
+ description "none";
+ }
+ grouping co-channel-group-g {
+ leaf co-channel-group-id {
+ type core-model:universal-id;
+ description "none";
+ }
+ leaf-list air-interface-list {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ description "List of air interfaces, which are part of the co-channel (XPIC, MIMO, ALIC) group.";
+ }
+ leaf sort-of-co-channel-group {
+ type string;
+ default "Kind of co-channel group not specified.";
+ description "Type of group of air interfaces with the same transmit and receive frequency. The values shall be chosen from the following _list:'XPIC', 'MIMO', 'ALIC';";
+ }
+ leaf-list logical-termination-point {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ description "none";
+ }
+ description "Required for configuring XPIC, MIMO and ALIC.";
+ }
+
+ /***********************
+ * package air-interface-hsb
+ **********************/
+ list mw-air-interface-hsb-end-point-pac {
+ key 'endpoint';
+ leaf role {
+ type role-type;
+ default working;
+ description "none";
+ }
+ leaf endpoint {
+ type leafref {
+ path '/core-model:forwarding-construct/core-model:fc-port/core-model:uuid';
+ }
+ description "none";
+ }
+ description "The EndPoint (EP) object class models the access to the FC function. Each EndPoint instance has a role (e.g., working, protection, protected, hub, spoke, leaf, root, etc.) with respect to the FC function. The association of the FC to LTPs is made via EndPoints (essentially the ports of the FC) where each EndPoint (EP) of the FC has a role in the context of the FC. The traffic forwarding between the associated End PointsEPs of the FC depends upon the type of FC and may be associated with FCSwitch object instances. In cases where there is protection conveys the protecting role of the access to the FC. The EP replaces the Protection Unit of a traditional protection model. It represents a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.";
+ }
+ list mw-air-interface-hsb-fc-switch-pac {
+ key 'fcswitch';
+ leaf prot-type {
+ type protection-type;
+ default hsb;
+ description "Indicates the protection scheme that is used for the ProtectionGroup.";
+ }
+ leaf air-interface-hsb-configuration-is-faulty-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity of an airInterfaceHsbConfigurationIsFaulty alarm shall be chosen from an enumeration.";
+ }
+ leaf air-interface-hsb-is-partly-down-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity for one link out of the HSB configuration being down shall be chosen from an enumeration.";
+ }
+ leaf air-interface-hsb-is-down-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity of the total HSB configuration being down shall be chosen from an enumeration.";
+ }
+ leaf fcswitch {
+ type leafref {
+ path '/core-model:forwarding-construct/core-model:fc-switch/core-model:uuid';
+ }
+ description "none";
+ }
+ description "Represents and defines a protection switch structure encapsulated in the forwarding construct. Essentially performs the function of Protection Group. Associates to 2 or more Endpoints each playing the role of a Protection Unit. One or more protection EndPoints (standby/backup) provide protection for one or more working (i.e. regular/main/preferred) Endpoints where either protection or working can feed one or more protected Endpoint. May be used in revertive or non-revertive (symmetric) mode. When in revertive mode may define waitToRestore time. May be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as 1+1 ane 1:1). May be lockout (prevented from switching), force switched or manual switched. Will indicate switch state and change of state.";
+ }
+
+ /***********************
+ * package air-interface-diversity
+ **********************/
+ list mw-air-interface-diversity-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container air-interface-diversity-capability {
+ config false;
+ uses air-interface-diversity-capability-g;
+ description "none";
+ }
+ container air-interface-diversity-configuration {
+ uses air-interface-diversity-configuration-g;
+ description "none";
+ }
+ container air-interface-diversity-status {
+ config false;
+ uses air-interface-diversity-status-g;
+ description "none";
+ }
+ container air-interface-diversity-current-problems {
+ config false;
+ uses air-interface-diversity-current-problems-g;
+ description "none";
+ }
+ container air-interface-diversity-current-performance {
+ config false;
+ uses air-interface-diversity-current-performance-g;
+ description "none";
+ }
+ container air-interface-diversity-historical-performances {
+ config false;
+ uses air-interface-diversity-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-capability-g {
+ list available-kinds-of-diversity {
+ key 'diversity-name';
+ config false;
+ uses diversity-type-g;
+ description "Available types of diversity to be listed.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description "Available alarms to be listed. Mandatory:'airInterfaceDiversityConfigurationIsPartlyDown' (at least one air interface is down, but not all of them) and 'airInterfaceDiversityConfigurationIsDown' (all air interfaces are down). Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ description "Describes the capabilities in implementing different types of air interface diversity.";
+ }
+ grouping air-interface-diversity-configuration-g {
+ container air-interface-diversity {
+ uses diversity-type-g;
+ description "Type of air interface diversity configured at the link.";
+ }
+ leaf-list air-interface-ltp-list {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ min-elements 2;
+ description "_multiplicity:2-ThisAirInterfaceDiversity::AirInterfaceDiversityConfiguration::airInterfaceDiversity::diversityType::numberOfAirInterfacesMax";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 3;
+ uses air-interface-diversity-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-status-g {
+ leaf snir-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf air-interface-diversity-status {
+ type air-interface-diversity-status-type;
+ default group-down;
+ config false;
+ description "Status of the air interface bundle. ";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Diversity Group entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses air-interface-diversity-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses air-interface-diversity-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the air interface diversity configuration at a particular moment.";
+ }
+ grouping air-interface-diversity-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses air-interface-diversity-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the air interface diversity configuration for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package pure-ethernet-structure
+ **********************/
+ list mw-pure-ethernet-structure-pac {
+ if-feature pure-ethernet;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container pure-ethernet-structure-capability {
+ config false;
+ uses pure-ethernet-structure-capability-g;
+ description "none";
+ }
+ container pure-ethernet-structure-configuration {
+ uses pure-ethernet-structure-configuration-g;
+ description "none";
+ }
+ container pure-ethernet-structure-status {
+ config false;
+ uses pure-ethernet-structure-status-g;
+ description "none";
+ }
+ container pure-ethernet-structure-current-problems {
+ config false;
+ uses pure-ethernet-structure-current-problems-g;
+ description "none";
+ }
+ container pure-ethernet-structure-current-performance {
+ config false;
+ uses pure-ethernet-structure-current-performance-g;
+ description "none";
+ }
+ container pure-ethernet-structure-historical-performances {
+ config false;
+ uses pure-ethernet-structure-historical-performances-g;
+ description "none";
+ }
+ description "The pureEthernetStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting Ethernet traffic only.";
+ }
+ grouping pure-ethernet-structure-capability-g {
+ leaf structure-id {
+ type core-model:universal-id;
+ config false;
+ description "Identifies the Structure for bundling and container.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the device.";
+ }
+ description "Describes the logical structuring of the physical capacity provided by a pure Ethernet microwave device. Segmentation is not available. No fixed segment size. No TDM transport.";
+ }
+ grouping pure-ethernet-structure-configuration-g {
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ uses structure-problem-severity-type-g;
+ description "Severity of the type of problem to be configured.";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-status-g {
+ container segment-status-list {
+ config false;
+ uses segment-status-type-g;
+ description "Status of the Ethernet transport segment. Always just one segment.";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the last update of the status information. ";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses structure-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the structure of an pure Ethernet microwave at a particular moment.";
+ }
+ grouping pure-ethernet-structure-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses structure-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the structure of an pure Ethernet microwave for a pre-defined measurement interval.";
+ }
+ feature pure-ethernet {
+ description "Feature 'pure-ethernet' is mandatory for device types transporting pure Ethernet.";
+ }
+
+ /***********************
+ * package hybrid-mw-structure
+ **********************/
+ list mw-hybrid-mw-structure-pac {
+ if-feature hybrid-microwave;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container hybrid-mw-structure-capability {
+ config false;
+ uses hybrid-mw-structure-capability-g;
+ description "none";
+ }
+ container hybrid-mw-structure-configuration {
+ uses hybrid-mw-structure-configuration-g;
+ description "none";
+ }
+ container hybrid-mw-structure-status {
+ config false;
+ uses hybrid-mw-structure-status-g;
+ description "none";
+ }
+ container hybrid-mw-structure-current-problems {
+ config false;
+ uses hybrid-mw-structure-current-problems-g;
+ description "none";
+ }
+ container hybrid-mw-structure-current-performance {
+ config false;
+ uses hybrid-mw-structure-current-performance-g;
+ description "none";
+ }
+ container hybrid-mw-structure-historical-performances {
+ config false;
+ uses hybrid-mw-structure-historical-performances-g;
+ description "none";
+ }
+ description "The HybridMwStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM and Ethernet traffic.";
+ }
+ grouping hybrid-mw-structure-capability-g {
+ leaf structure-id {
+ type core-model:universal-id;
+ config false;
+ description "Identifies the Structure for bundling and container.";
+ }
+ list supported-tdm-structure-types-list {
+ key 'tdm-structure-name';
+ config false;
+ min-elements 1;
+ uses tdm-structure-type-g;
+ description "Lists the TDM frame types that are supported.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the device.";
+ }
+ description "Describes the logical structuring of the physical capacity provided by a hybrid microwave device (TDM + Ethernet). Segmentation is available. TDM transport is available.";
+ }
+ grouping hybrid-mw-structure-configuration-g {
+ container structure-type {
+ uses tdm-structure-type-g;
+ description "TDM frame to be applied.";
+ }
+ leaf number-of-tdm-segments-to-be-reserved {
+ type int16;
+ default -1;
+ description "Allows to configure the number of segments reserved for TDM frames of the type specified in HybridMwStructure::HybridMwStructureConfiguration::structureType";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ uses structure-problem-severity-type-g;
+ description "Severity of the type of problem to be configured.";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-status-g {
+ list segment-status-list {
+ key 'segment-status-type-id';
+ config false;
+ uses segment-status-type-g;
+ description "Status of each segment (all TDM and one Ethernet). Multiplicity = HybridMwStructure::StructureConfiguration::tdmReservedNumberOfSegments + 1";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the last update of the status information. ";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses structure-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the structure of a hybrid microwave at a particular moment.";
+ }
+ grouping hybrid-mw-structure-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses structure-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the structure of a hybrid microwave for a pre-defined measurement interval.";
+ }
+ feature hybrid-microwave {
+ description "Feature 'hybrid-microwave' is mandatory for device types transporting Ethernet + TDM.";
+ }
+
+ /***********************
+ * package ethernet-container
+ **********************/
+ list mw-ethernet-container-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container ethernet-container-capability {
+ config false;
+ uses ethernet-container-capability-g;
+ description "none";
+ }
+ container ethernet-container-configuration {
+ uses ethernet-container-configuration-g;
+ description "none";
+ }
+ container ethernet-container-status {
+ config false;
+ uses ethernet-container-status-g;
+ description "none";
+ }
+ container ethernet-container-current-problems {
+ config false;
+ uses ethernet-container-current-problems-g;
+ description "none";
+ }
+ container ethernet-container-current-performance {
+ config false;
+ uses ethernet-container-current-performance-g;
+ description "none";
+ }
+ container ethernet-container-historical-performances {
+ config false;
+ uses ethernet-container-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping ethernet-container-capability-g {
+ leaf bundling-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "This attribute has to be set on 'true', if the device allows combining resources from several air interfaces for transporting this Ethernet container.";
+ }
+ leaf packet-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case packet compression can be activated, but not configured to a certain type, packetCompressionAvail shall be set on 'true', but none of the compression level specific booleans.";
+ }
+ leaf layer2-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 2 available at the device.";
+ }
+ leaf vlan-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on VLAN layer available at the device.";
+ }
+ leaf q-in-q-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer of a second VLAN available at the device.";
+ }
+ leaf mpls-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on mpls layer available at the device.";
+ }
+ leaf ipv4-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 3 for IPv4 available at the device.";
+ }
+ leaf ipv6-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 3 for IPv6 available at the device.";
+ }
+ leaf layer4-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 4 (TCP and UDP header) available at the device.";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be marked 'true', if Ethernet payload encryption is available.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the device.";
+ }
+ description "none";
+ }
+ grouping ethernet-container-configuration-g {
+ leaf container-id {
+ type string;
+ default "No Ethernet Flow associated yet.";
+ description "ContainterID in Netconf must be the same as EthernetPortID in OpenFlow so a connection can be made between the two items, which separately exist in the controller.";
+ }
+ list segments-id-list {
+ key 'structure-id-ref segment-id-ref';
+ min-elements 1;
+ uses segment-id-type-g;
+ description "Lists the segments used for transporting this Ethernet container. In case EthernetContainer::ContainerCapability::bundlingIsAvail==0, all TypeDefinitions::segmentIdType::structureId must be identical in the list.";
+ }
+ leaf packet-compression-is-on {
+ type boolean;
+ default false;
+ description "In case packet compression is activated, but no type is activated, it is assumed that the device chooses the optimum.";
+ }
+ leaf layer2-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 2 configured at the device.";
+ }
+ leaf vlan-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on VLAN layer configured at the device.";
+ }
+ leaf q-in-q-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer of a second VLAN configured at the device.";
+ }
+ leaf mpls-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on MPLS layer configured at the device.";
+ }
+ leaf ipv4-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 3 for IPv4 configured at the device.";
+ }
+ leaf ipv6-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 3 for IPv6 configured at the device.";
+ }
+ leaf layer4-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 4 (TCP and UDP header) configured at the device.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default false;
+ description "Activates encryption of the Ethernet payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description "Key for transforming plaintext into cipher text data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 2;
+ uses container-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping ethernet-container-status-g {
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Container entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping ethernet-container-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses container-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping ethernet-container-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the Ethernet container at a particular moment.";
+ }
+ grouping ethernet-container-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses container-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the Ethernet container for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package tdm-container
+ **********************/
+ list mw-tdm-container-pac {
+ if-feature hybrid-microwave;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container tdm-container-capability {
+ config false;
+ uses tdm-container-capability-g;
+ description "none";
+ }
+ container tdm-container-configuration {
+ uses tdm-container-configuration-g;
+ description "none";
+ }
+ container tdm-container-status {
+ config false;
+ uses tdm-container-status-g;
+ description "none";
+ }
+ container tdm-container-current-problems {
+ config false;
+ uses tdm-container-current-problems-g;
+ description "none";
+ }
+ container tdm-container-current-performance {
+ config false;
+ uses tdm-container-current-performance-g;
+ description "none";
+ }
+ container tdm-container-historical-performances {
+ config false;
+ uses tdm-container-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping tdm-container-capability-g {
+ list supported-tdm-container-types-list {
+ key 'tdm-container-name';
+ config false;
+ min-elements 1;
+ uses tdm-container-type-g;
+ description "Lists the TDM containers that are supported.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the device.";
+ }
+ description "Bundling is not available.";
+ }
+ grouping tdm-container-configuration-g {
+ leaf container-id {
+ type string;
+ default "No TDM Flow associated yet.";
+ description "ContainterID in Netconf must be the same as TDM Flow ID so a connection can be made between the two items, which separately exist in the controller.";
+ }
+ container container-type {
+ uses tdm-container-type-g;
+ description "Type of TDM container.";
+ }
+ container segment-id {
+ uses segment-id-type-g;
+ description "Multiplicity = 1; One segment per TDM container; Type of segment must match type of container;";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 2;
+ uses container-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping tdm-container-status-g {
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Container entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping tdm-container-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses container-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping tdm-container-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the TDM container at a particular moment.";
+ }
+ grouping tdm-container-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses container-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the TDM container for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package super-classes
+ **********************/
+ grouping mw-current-problem-g {
+ leaf sequence-number {
+ type int32;
+ config false;
+ description "Unique sequence number of the current problem object.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the problem. ";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default warning;
+ config false;
+ description "Severity of the alarm.";
+ }
+ description "none";
+ }
+
+
+ /***********************
+ * package notifications
+ **********************/
+ notification object-creation-notification {
+ uses object-creation-notification-g;
+ description "none";
+ }
+ grouping object-creation-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts object creation notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ description "Type of Object to be chosen from the following list of values: 'MW_AirInterface_Pac', 'MW_AirInterfaceDiversity_Pac', 'MW_Structure_Pac', 'MW_PureEthernetStructure_Pac', 'MW_HybridMwStructure_Pac', 'MW_Container_Pac', 'MW_EthernetContainer_Pac' or 'MW_TdmContainer_Pac'.";
+ }
+ description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac has to be instancieted in the controller.";
+ }
+ notification object-deletion-notification {
+ uses object-deletion-notification-g;
+ description "none";
+ }
+ grouping object-deletion-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts object deletion notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac instance has to be deleted in the controller.";
+ }
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification-g;
+ description "none";
+ }
+ grouping attribute-value-changed-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts attribute value changed notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ description "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ description "Attribute value converted to a string (xml, json, ...)";
+ }
+ description "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+ notification problem-notification {
+ uses problem-notification-g;
+ description "none";
+ }
+ grouping problem-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts problem notifications";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ description "Name of the problem according to AirInterface::AirInterfaceCapability::supportedAlarms or AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms or Structure::StructureCapability::supportedAlarms or PureEthernetStructure::PureEthernetStructureCapability::supportedAlarms or HybridMwStructure::HybridMwStructureCapability::supportedAlarms or Container::ContainerCapability::supportedAlarms or EthernetContainer::EthernetContainerCapability::supportedAlarms or TdmContainer::TdmContainerCapability::supportedAlarms.";
+ }
+ leaf severity {
+ type severity-type;
+ default warning;
+ description "Severity of the problem according to AirInterface::AirInterfaceConfiguration::problemSeverityList, AirInterfaceDiversity::AirInterfaceDiversityConfiguration::problemSeverityList, Structure::StructureConfiguration::problemSeverityList, PureEthernetStructure::PureEthernetStructureConfiguration::problemSeverityList, HybridMwStructure::HybridMwStructureConfiguration::problemSeverityList, Container::ContainerConfiguration::problemSeverityList, EthernetContainer::EthernetContainerConfiguration::problemSeverityList or TdmContainer::TdmContainerConfiguration::problemSeverityList";
+ }
+ description "To be sent when a problem occurs at a MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-09-07.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-09-07.yang
new file mode 100644
index 000000000..db94e09c5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-09-07.yang
@@ -0,0 +1,2567 @@
+module microwave-model {
+ namespace "urn:onf:params:xml:ns:yang:microwave-model";
+ prefix microwave-model;
+
+ import core-model {
+ prefix core-model;
+ }
+ import g.874.1-model {
+ prefix g;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/software-defined-standards/models-apis/>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga
+ <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Thorsten Heinze
+ <mailto:thorsten.heinze@telefonica.com>
+ Shrikanth Malavalli Divakar
+ <mailto:shrikanth.divakar@wipro.com>";
+ description "This module contains a collection of YANG definitions for managing wireless networks.
+ This model is for vendor agnostic management of wireless network elements.";
+ revision 2018-09-07 {
+ description "Version 1.1";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+
+ revision 2017-03-24 {
+ description "Initial version";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+
+ /***********************
+ * package type-definitions
+ **********************/
+ typedef loop-back-type {
+ type enumeration {
+ enum rf-to-remote {
+ description "Returning the header information of the remote site back to the remote site on the radio interface between both outdoor units.";
+ }
+ enum rf-to-local {
+ description "Returning the header information of the local site back to the local site on the radio interface between both outdoor units.";
+ }
+ enum if-to-remote {
+ description "Returning the header information of the remote site back to the remote site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+ }
+ enum if-to-local {
+ description "Returning the header information of the local site back to the local site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+ }
+ enum none {
+ description "none";
+ }
+ enum if {
+ status deprecated;
+ description "Intermediate Frequency on the interface between indoor and outdoor unit.";
+ }
+ enum rf {
+ status deprecated;
+ description "Radio Frequency on the interface between outdoor unit and outdoor unit at the remote site.";
+ }
+ }
+ description "none";
+ }
+ typedef severity-type {
+ type enumeration {
+ enum non-alarmed {
+ description "none";
+ }
+ enum warning {
+ description "none";
+ }
+ enum minor {
+ description "none";
+ }
+ enum major {
+ description "none";
+ }
+ enum critical {
+ description "none";
+ }
+ }
+ description "According to ITU-T M.3160";
+ }
+ grouping channel-plan-type-g {
+ leaf supported-channel-plan {
+ type string;
+ config false;
+ description "Unique name (e.g. ECC/REC/(01)04_Annex 5) of a document, which describes a frequency grid that can be adjusted at the air interface. Corresponding channel plans to be delivered by the hardware vendor and to be stored by the operator in an controller/application attached database.";
+ }
+ leaf duplex-distance-is-variable {
+ type boolean;
+ default false;
+ config false;
+ description "To be set on 'true', if the distance between transmitted and received frequency is variable.";
+ }
+ leaf-list duplex-distance-list {
+ type int32;
+ units "kHz";
+ config false;
+ min-elements 1;
+ description "Distance between transmitted and received frequency. To be filled with single value, in case duplex distance is not variable. To be filled with all configurable values, in case duplex distance is variable.";
+ }
+ leaf duplex-distance {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ status deprecated;
+ description "Distance between transmitted and received frequency.";
+ }
+ leaf auto-freq-select-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of automatically selecting the transmit frequency in unlicensed bands, this field shall contain a 'true'.";
+ }
+ list transmission-mode-list {
+ key 'transmission-mode-id';
+ config false;
+ min-elements 1;
+ uses transmission-mode-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping transmission-mode-type-g {
+ leaf transmission-mode-id {
+ type core-model:universal-id;
+ description "Indentifies the transmissionMode for internal reference.";
+ }
+ leaf transmission-mode-name {
+ type string;
+ default "Name of the transmission mode not yet defined.";
+ config false;
+ description "Name of the transmission mode. BBBB-m*-i*/t*-r*. B=four digits of channel bandwidth in MHz. m*=required number of digits for modulation name. (i*/t*=code rate.) i*=required number of digits for number of information bits. t*=required number of digits for total bits. r*=required number of digits for rate reduction factor. Example: 028-4QAM-188/204-1";
+ }
+ leaf channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf modulation-scheme {
+ type int16;
+ units "symbols";
+ default -1;
+ config false;
+ description "Modulation scheme, which is base to the other characteristics described in the same transmissionModeType data type. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256').";
+ }
+ leaf code-rate {
+ type int8;
+ units "%";
+ default -1;
+ config false;
+ description "Code rate of the coding scheme in % (Net bit rate ≤ Gross bit rate · code rate).";
+ }
+ leaf symbol-rate-reduction-factor {
+ type int8;
+ default 1;
+ config false;
+ description "Reduction factor for the symbol rate. Example: value would be 4 for 1/4BPSK.";
+ }
+ leaf tx-power-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the minimum transmit power the modem can operate in dBm.";
+ }
+ leaf tx-power-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the maximum transmit power the modem can operate in dBm.";
+ }
+ leaf rx-threshold {
+ type int16;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level required to decode the received signal with a Bit Error Rate of 1e-6 or less.";
+ }
+ leaf am-upshift-level {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level that has to be exceeded to shift into a higher modulation scheme.";
+ }
+ leaf am-downshift-level {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level that has to be exceeded for not shifting into a lower modulation scheme.";
+ }
+ leaf xpic-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case this air interface type is capable of XPIC, this field shall contain a 'true'. This information shall purely relate to capabilities of the equipment type, but not to the operational capability of a specific hardware composition on site. Means for example that this attribute might contain a 'true' statement, even if an additional cable would have been required to actually operate XPIC in a specific case.";
+ }
+ description "none";
+ }
+ typedef polarization-type {
+ type enumeration {
+ enum not-specified {
+ description "none";
+ }
+ enum horizontal {
+ description "none";
+ }
+ enum vertical {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef g826-type {
+ type enumeration {
+ enum es {
+ description "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+ }
+ enum ses {
+ description "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+ }
+ enum cses {
+ description "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+ }
+ enum not-specified {
+ description "none";
+ }
+ }
+ description "none";
+ }
+
+ grouping threshold-cross-alarm-type-g {
+ leaf g826-value-kind {
+ type g826-type;
+ description "Kind of performance value that shall be equipped with a threshold alarm.";
+ }
+ leaf granularity-period {
+ type g:granularity-period-type;
+ description "Period of the performance data collection.";
+ }
+ leaf alarm-raising-threshold {
+ type int32;
+ units "s";
+ default -1;
+ description "Number of events required for raising the threshold cross alarm.";
+ }
+ leaf alarm-clearing-threshold {
+ type int32;
+ units "s";
+ default -1;
+ description "Number of events required for clearing the threshold cross alarm.";
+ }
+ description "Allows defining a threshold cross alarm.
+ ";
+ }
+ grouping air-interface-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping air-interface-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping time-x-states-type-g {
+ leaf transmission-mode {
+ type leafref{
+ path '/mw-air-interface-pac/air-interface-capability/supported-channel-plan-list/transmission-mode-list/transmission-mode-id';
+ }
+ config false;
+ description "Operated transmission mode.";
+ }
+ leaf time {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Sum of all seconds the transmitter operated the transmission mode.";
+ }
+ description "none";
+ }
+ grouping air-interface-performance-type-g {
+ leaf es {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of errored seconds.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of severely errored seconds.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of consecutive severely errored seconds.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total time of unavailability in seconds.";
+ }
+ leaf tx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged transmit power. Signed integers are required.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum receive level. Signed integers are required.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum receive level. Signed integers are required.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged receive level. Signed integers are required.";
+ }
+ list time-x-states-list {
+ key 'transmission-mode';
+ config false;
+ min-elements 1;
+ uses time-x-states-type-g;
+ description "Time period the transmitter operated in the respective transmission mode.";
+ }
+ leaf time2-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "Sum of all seconds the transmitter operated in e.g. BPSK.";
+ }
+ leaf time4-states-s {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time4-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time8-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time16-states-s {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time16-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time32-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time64-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time128-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time256-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time512-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time512-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time1024-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time1024-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time2048-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time2048-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time4096-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time4096-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time8192-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time8192-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf snir-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum signal to (noise+interference) ratio.";
+ }
+ leaf snir-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum signal to (noise+interference) ratio.";
+ }
+ leaf snir-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Averaged signal to (noise+interference) ratio.";
+ }
+ leaf xpd-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum cross polarization discrimination.";
+ }
+ leaf xpd-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum cross polarization discrimination.";
+ }
+ leaf xpd-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Averaged cross polarization discrimination.";
+ }
+ leaf rf-temp-min {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Lowest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-max {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Highest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-avg {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Averaged temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf defect-blocks-sum {
+ type int16;
+ units "blocks";
+ default -1;
+ config false;
+ description "Total number of blocks that were defect after receiving and could not be corrected by the FEC.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period.";
+ }
+ description "Consolidated performance information of the air interface.";
+ }
+ grouping air-interface-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping air-interface-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ typedef protection-type {
+ type enumeration {
+ enum hsb {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef role-type {
+ type enumeration {
+ enum working {
+ description "none";
+ }
+ enum protection {
+ description "none";
+ }
+ enum protected {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ grouping diversity-type-g {
+ leaf diversity-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'spaceDiversity', 'frequencyDiversity'";
+ }
+ leaf number-of-air-interfaces-max {
+ type int8;
+ units "air interfaces";
+ default 1;
+ config false;
+ description "Maximum number of air interfaces that could be part of this kind of diversity.";
+ }
+ description "none";
+ }
+ typedef air-interface-diversity-status-type {
+ type enumeration {
+ enum group-down {
+ description "All air interfaces that are members of the diversity configuration are down.";
+ }
+ enum not-all-ai-active {
+ description "At least one, but not all of the air interfaces that are part of the diversity configuration is not working.";
+ }
+ enum all-ai-active {
+ description "All air interfaces that are part of the diversity configuration are working.";
+ }
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping air-interface-diversity-performance-type-g {
+ leaf snir-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf snir-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf snir-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Average signal to (noise+interference) ratio of the combined signals.";
+ }
+ description "Consolidated performance information of the air interface diversity group.";
+ }
+ grouping air-interface-diversity-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-diversity-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping air-interface-diversity-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-diversity-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ grouping tdm-structure-type-g {
+ leaf tdm-structure-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-segment-size {
+ type int32;
+ units "kbit/s";
+ default -1;
+ config false;
+ description "Size of the TDM segment in kbit/s. Values to be chosen from the following list: '2048','1544','34000','44736 ','155520','614400','1228800','2457600','3072000','4915200','6144000' or '9830400;";
+ }
+ leaf max-number-of-segments-reservable {
+ type int8;
+ units "segments";
+ default -1;
+ config false;
+ description "Device specific maximum number of segments (not depending on current air interface configuration) that can be reserved for this type of segment on a single air interface.";
+ }
+ description "none";
+ }
+ grouping structure-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping structure-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping structure-performance-type-g {
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period in seconds.";
+ }
+ leaf es {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of consecutive severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total time of unavailability in seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ description "Consolidated performance information of the Structure.";
+ }
+ grouping structure-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses structure-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping structure-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses structure-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ grouping container-type-g {
+ leaf container-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'ethernet','e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf number-of-time-slots-required {
+ type int16;
+ units "timeslots";
+ default -1;
+ config false;
+ description "Number of time slots required for transporting this type of container. Value must be calculated by the vendor after defining the timeSlotCapacity. For containers of fixed size: numberOfTimeSlotsRequired = required bandwidth of the container divided by timeSlotCapacity. For containers of variable size the minimum (most probably 1) is to be stated.";
+ }
+ leaf tdm-time-slots-is-required {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be set to '1', if this container type requires bandwidth (times slots) reserved for TDM transport.";
+ }
+ leaf bundling-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "If it is possible to combine transport resources of several radio links to transport this container type, this attribute shall be set to '1'.";
+ }
+ description "none";
+ }
+ grouping tdm-container-type-g {
+ leaf tdm-container-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'e1','t1','j1','e3','t3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-container-size {
+ type int32;
+ units "kbit/s";
+ default -1;
+ config false;
+ description "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;";
+ }
+ description "none";
+ }
+ grouping segment-id-type-g {
+ leaf structure-id-ref {
+ type core-model:universal-id;
+ description "none";
+ }
+ leaf segment-id-ref {
+ type int16;
+ description "Combinations of structureId and segmentId must be unique inside the device to assure that every resource is used just once.";
+ }
+ description "Identifies the segments, which are used to transport the container.";
+ }
+ grouping segment-status-type-g {
+ leaf segment-status-type-id {
+ type int16;
+ config false;
+ description "none";
+ }
+ leaf segment-is-reserved-for-tdm {
+ type boolean;
+ default false;
+ config false;
+ description "The number of segments, which is configured by Structure::StructureConfiguration::tdmReservedNumberOfSegements, has to be reserved for TDM. Starting from the lowest index value, these segments have to be marked with a 'true' in segmentIsReservedForTdm.
+ ";
+ }
+ leaf operational-status {
+ type core-model:operational-state;
+ default disabled;
+ config false;
+ description "Current operational status of each segment.";
+ }
+ leaf obsolete-priority-class {
+ type int8;
+ default -1;
+ config false;
+ description "PriorityClass as inherited from the associated Container::ContainerConfiguration::priorityClass. In case the device is capable of adapting the sequence, in which segments are being dropped in case of decreasing capacity of the air interface, priorityClass shall be considered, while calculating the dropOrderRank.";
+ }
+ leaf obsolete-drop-order-rank {
+ type int16;
+ default -1;
+ config false;
+ description "In case the device is NOT capable of adapting the sequence, in which segments are being dropped in case of decreasing capacity of the air interface, dropOrderRank is number of segments minus sequence number of the segment. In case the device is capable of adapting the sequence, dropOrderRank has to be calculated by the device in dependency to the assigned priorityClass.
+ _unique: within Structure::StructureStatus::segmentStatusList";
+ }
+ description "none";
+ }
+ grouping container-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping container-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping container-performance-type-g {
+ leaf tx-ethernet-bytes-max-s {
+ type int32;
+ units "Bytes/s";
+ default -1;
+ config false;
+ description "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a second and keeps the highest value within the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-max-m {
+ type int64;
+ units "Bytes/min";
+ default -1;
+ config false;
+ description "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a minute and keeps the highest value with in the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-sum {
+ type int64;
+ units "Bytes";
+ default -1;
+ config false;
+ description "Total number of Bytes of Ethernet traffic (before header compression) transmitted (in direction out of the device) during the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period in seconds.";
+ }
+ description "Consolidated performance information of the Container.";
+ }
+ grouping container-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses container-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping container-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses container-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+
+ /***********************
+ * package object-classes
+ **********************/
+ /***********************
+ * package air-interface
+ **********************/
+ list mw-air-interface-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container air-interface-capability {
+ config false;
+ uses air-interface-capability-g;
+ description "none";
+ }
+ container air-interface-configuration {
+ uses air-interface-configuration-g;
+ description "none";
+ }
+ container air-interface-status {
+ config false;
+ uses air-interface-status-g;
+ description "none";
+ }
+ container air-interface-current-problems {
+ config false;
+ uses air-interface-current-problems-g;
+ description "none";
+ }
+ container air-interface-current-performance {
+ config false;
+ uses air-interface-current-performance-g;
+ description "none";
+ }
+ container air-interface-historical-performances {
+ config false;
+ uses air-interface-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-capability-g {
+ leaf type-of-equipment {
+ type string;
+ default "Type of equipment not yet defined.";
+ config false;
+ description "This parameter indicates the equipment type. Instead of uploading the complete set of capabilities, capabilities of the same equipment type could be reused. Should be unique for a combination of modem, radio and their respective firmware.";
+ }
+ leaf tx-frequency-min {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the minimum transmit frequency tunable at the air interface.";
+ }
+ leaf tx-frequency-max {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the maximum transmit frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-min {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the minimum receive frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-max {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the maximum receive frequency tunable at the air interface.";
+ }
+ leaf adaptive-modulation-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the device is capable of adaptive modulation, this field shall contain a 'true'.";
+ }
+ leaf mimo-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the device is capable of MIMO, this field shall contain a 'true'.";
+ }
+ leaf mimo-channels {
+ type int8;
+ units "channels";
+ default 1;
+ config false;
+ description "Maximum number (n) of spatial multiplexing streams that can be conveyed by an n x n MIMO configuration.";
+ }
+ leaf alic-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of Adjacent Link Interference Cancelation (canceling of interference cause by transmitters located at the same site), this field shall contain a 'true'.";
+ }
+ leaf atpc-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of ATPC, this field shall contain a 'true'.";
+ }
+ leaf atpc-range {
+ type int8;
+ units "dB";
+ default 0;
+ config false;
+ description "Extent of the ATPC range. This value represents a device specific maximum value. The actual range of the ATPC at a specific link might be limited by the difference between configured transmit power (AirInterface::AirInterfaceConfiguration::txPower) and minimum transmit power of the device (TypeDefinitions::TransmissionModeType::txPowerMin).";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be marked 'true', if payload encryption is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 2;
+ description "List of supported kinds of looping back of header information to the remote site.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ units "s";
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description "Available time periods for maintenance configurations (e.g. the loop back of microwave header information) 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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 7;
+ description "Available alarms to be listed. Mandatory:'signalIsLost','rslIsExceeded','signalIDMismatching','temperatureIsExceeded','modemIsFaulty','radioIsFaulty' and 'modulationIsDownShifted'. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'signalIsLost','rslIsExceeded','temperatureIsExceeded','modemIsFaulty','radioIsFaulty' and 'modulationIsDownShifted'. Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ list supported-channel-plan-list {
+ key 'supported-channel-plan';
+ config false;
+ min-elements 1;
+ uses channel-plan-type-g;
+ description "List of channel spacing that are supported by the device.";
+ }
+ description "Describes the 'analog' capabilities of modem and transmitter of the microwave device. Value ranges of attributes are not independently (e.g. min. and max. transmit power depends on modulation). Legal combinations of values are expressed in transmissionModeTypes.";
+ }
+ grouping air-interface-configuration-g {
+ leaf air-interface-name {
+ type string;
+ default "Air interface ID not yet defined.";
+ description "Operator specific microwave link ID (often used for coding area, type of element and sequential number).";
+ }
+ leaf remote-air-interface-name {
+ type string;
+ default "Air interface ID at the remote site not yet defined.";
+ description "Name of the air interface, which belongs to the same link, at the remote site.";
+ }
+ leaf expected-signal-id {
+ type int16;
+ description "If set on '0', the receiver ignores the signal ID of the received signal. If set on any other value, the receiver exclusively synchronizes on signals with the same signal ID.";
+ }
+ leaf transmitted-signal-id {
+ type int16;
+ description "Transmitted radio signal ID for synchronizing the receiver.";
+ }
+ leaf radio-signal-id {
+ type string;
+ default "Radio signal ID not yet defined.";
+ status deprecated;
+ description "The radioSignalId is transmitted on the air interface so the remote site of the link synchronizes on the correct transmitter. The local radio MUST NOT synchronize on a radio signal with a different radioSignalId. The link ID is neither an ID necessary to span the model nor an ID referencing external data. It is just some sort of name of the link transmitted so the correct remote site can be identified in an interference situation. The value zero might be used to make the microwave to disable the link ID check.";
+ }
+ leaf tx-frequency {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Center frequency of the transmit channel. The values to be configured have to exactly match the values listed in the international agreement referenced in channelPlanID. In case of automated selection of the transmit frequency this field shall describe the lowest center frequency selectable.";
+ }
+ leaf rx-frequency {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Center frequency of the receive channel.";
+ }
+ leaf transmission-mode-min {
+ type core-model:universal-id;
+ description "Minimum transmission mode to be configured (in case adaptive modulation is not used, this value represents also the fixed transmission mode).";
+ }
+ leaf transmission-mode-max {
+ type core-model:universal-id;
+ description "Maximum transmission mode to be configured.";
+ }
+ leaf tx-channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ status deprecated;
+ description "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf rx-channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Bandwidth of the receive channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf polarization {
+ type polarization-type;
+ default not-specified;
+ description "Allows documenting the polarization of the air interface.";
+ }
+ leaf power-is-on {
+ type boolean;
+ default true;
+ description "Power ON. Activation of the entire radio in a split mount configuration shall be expressed as a 'true'.";
+ }
+ leaf transmitter-is-on {
+ type boolean;
+ default false;
+ description "Activation of the transmitter inside the radio shall be expressed as a 'true'.";
+ }
+ leaf receiver-is-on {
+ type boolean;
+ default true;
+ description "Maintenance Feature. Activation of the receiver inside the radio shall be expressed as a 'true'. Attribute shall also be used for RX main and RX diversity squelches in case of diversity configurations.
+ ";
+ }
+ leaf tx-power {
+ type int8;
+ units "dBm";
+ default 99;
+ description "Transmit power to be configured on the microwave link. Signed Byte is required. The actually operated transmit power might be lower depending on adaptive modulation and ATPC.";
+ }
+ leaf adaptive-modulation-is-on {
+ type boolean;
+ default false;
+ description "Adaptive Modulation. Activation of adaptive modulation shall be expressed as a 'true'.";
+ }
+ leaf modulation-min {
+ type int16;
+ units "symbols";
+ default -1;
+ status deprecated;
+ description "Minimum modulation to be configured (in case adaptive modulation is not used, this value represents also the fixed modulation). The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf modulation-max {
+ type int16;
+ units "symbols";
+ default -1;
+ status deprecated;
+ description "Maximum modulation to be configured. The value of this field is only relevant, if Adaptive Modulation has been activated. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf xpic-is-on {
+ type boolean;
+ default false;
+ description "Activation of Cross Polarization Interference Cancelation shall be expressed as a 'true'. In case XPIC is not available for the current combination of channel bandwidth and modulation or the hardware in general, this parameter shall always be set to 'false'.";
+ }
+ leaf mimo-is-on {
+ type boolean;
+ default false;
+ description "Activation of Multiple Input Multiple Output (MIMO) shall be expressed as a 'true'.";
+ }
+ leaf alic-is-on {
+ type boolean;
+ default false;
+ description "Activation of Adjacent Link Interference Cancelation (ALIC) shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-on {
+ type boolean;
+ default false;
+ description "ATPC. Activation of Automated Transmit Power Control shall be expressed as a 'true'.";
+ }
+ leaf atpc-thresh-upper {
+ type int16;
+ units "dBm";
+ default 99;
+ description "If the receive level is higher than the upper threshold value, the transmitter is notified to decrease transmit power.";
+ }
+ leaf atpc-thresh-lower {
+ type int16;
+ units "dBm";
+ default 99;
+ description "If the receive level is lower than the lower threshold value, the transmitter is notified to increase transmit power.";
+ }
+ leaf atpc-tx-power-min {
+ type int8;
+ units "dBm";
+ default -99;
+ description "Transmit power, which is not to be undercut, while operating ATPC.";
+ }
+ leaf auto-freq-select-is-on {
+ type boolean;
+ default false;
+ description "Activation of automatically selecting the transmit frequency in unlicensed bands shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-range {
+ type int8;
+ units "channels";
+ default -1;
+ description "Number of transmit channels (starting at the center frequency defined in txFrequency and with channel bandwidth according to txChannelBandwidth) that define the range within the transmit frequency can automatically been chosen. ";
+ }
+ leaf modulation-is-on {
+ type boolean;
+ default true;
+ description "Maintenance Feature. De-activation of the modulation of the carrier signal for fault management shall be expressed as a 'false'.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default false;
+ description "Activates encryption of the payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description "Key for transforming plaintext into ciphertext data.";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list threshold-cross-alarm-list {
+ key 'g826-value-kind granularity-period';
+ max-elements 6;
+ uses threshold-cross-alarm-type-g;
+ description "List of threshold cross alarms to be configured.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default none;
+ description "Maintenance Feature. The currently configured type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default -1;
+ description "Time of existence of any maintenance configuration (e.g. the loop back of microwave header information). Valid values are defined in AirInterface::AirInterfaceCapability::maintenanceTimerRange.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 6;
+ uses air-interface-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "Configuration of the radio link.";
+ }
+ grouping air-interface-status-g {
+ leaf tx-frequency-cur {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Center frequency of the currently operated transmit channel.";
+ }
+ leaf rx-frequency-cur {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Center frequency of the currently operated receive channel.";
+ }
+ leaf tx-level-cur {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Current transmit level.";
+ }
+ leaf rx-level-cur {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Current receive level.";
+ }
+ leaf transmission-mode-cur {
+ type leafref {
+ path '/mw-air-interface-pac/air-interface-capability/supported-channel-plan-list/transmission-mode-list/transmission-mode-id';
+ }
+ config false;
+ description "Currently operated transmission mode according to definitions in Capabilities.";
+ }
+ leaf modulation-cur {
+ type int16;
+ units "symbols";
+ default -1;
+ config false;
+ status deprecated;
+ description "Currently operated modulation on transmit path. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf code-rate-cur {
+ type int8;
+ units "%";
+ default -1;
+ config false;
+ status deprecated;
+ description "Code rate of the currently operated coding scheme (Net bit rate ? Gross bit rate ? code rate).";
+ }
+ leaf received-signal-id {
+ type int16;
+ default -1;
+ config false;
+ description "ID of the signal, which the receiver is currently synchronized on.";
+ }
+ leaf snir-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured signal to (noise+interference) ratio.";
+ }
+ leaf xpd-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured cross polarization discrimination.";
+ }
+ leaf rf-temp-cur {
+ type int8;
+ units "Celsius";
+ default -99;
+ config false;
+ description "Current temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Air Interface entered its current operational status. ";
+ }
+ leaf radio-power-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If the radio unit has power and is switched on, this shall be expressed as a 'true'.";
+ }
+ leaf link-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If connection is established to the remote site with the same linkID, this shall be expressed as a 'true'.";
+ }
+ leaf xpic-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If XPIC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf mimo-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If MIMO is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf alic-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If Adjacent Link Interference Cancelation (ALIC) is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If ATPC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If automated frequency selection is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default none;
+ config false;
+ description "The currently active (not just configured) type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf local-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description "The value of the localEndPointId is a vendor specific identifier of the air interface, used by the node to discover a microwave radio link.";
+ }
+ leaf remote-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description "The value of the remoteEndPointId is a vendor specific identifier or the airinterface at the remote side, used to by the node to discover a microwave radio link.";
+ }
+ description "Measurements of current values on the air interface and operational status of the device.";
+ }
+ grouping air-interface-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses air-interface-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses air-interface-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the air interface at a particular moment.";
+ }
+ grouping air-interface-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses air-interface-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+ }
+ list co-channel-group {
+ key 'co-channel-group-id';
+ uses co-channel-group-g;
+ description "none";
+ }
+ grouping co-channel-group-g {
+ leaf co-channel-group-id {
+ type core-model:universal-id;
+ description "none";
+ }
+ leaf-list air-interface-list {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ description "List of air interfaces, which are part of the co-channel (XPIC, MIMO, ALIC) group.";
+ }
+ leaf sort-of-co-channel-group {
+ type string;
+ default "Kind of co-channel group not specified.";
+ description "Type of group of air interfaces with the same transmit and receive frequency. The values shall be chosen from the following _list:'XPIC', 'MIMO', 'ALIC';";
+ }
+ leaf-list logical-termination-point {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ status deprecated;
+ description "none";
+ }
+ description "Required for configuring XPIC, MIMO and ALIC.";
+ }
+
+ /***********************
+ * package air-interface-hsb
+ **********************/
+ list mw-air-interface-hsb-end-point-pac {
+ key 'endpoint';
+ leaf role {
+ type role-type;
+ default working;
+ description "none";
+ }
+ leaf endpoint {
+ type leafref {
+ path '/core-model:forwarding-construct/core-model:fc-port/core-model:uuid';
+ }
+ description "none";
+ }
+ description "The EndPoint (EP) object class models the access to the FC function. Each EndPoint instance has a role (e.g., working, protection, protected, hub, spoke, leaf, root, etc.) with respect to the FC function. The association of the FC to LTPs is made via EndPoints (essentially the ports of the FC) where each EndPoint (EP) of the FC has a role in the context of the FC. The traffic forwarding between the associated End PointsEPs of the FC depends upon the type of FC and may be associated with FCSwitch object instances. In cases where there is protection conveys the protecting role of the access to the FC. The EP replaces the Protection Unit of a traditional protection model. It represents a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.";
+ }
+ list mw-air-interface-hsb-fc-switch-pac {
+ key 'fcswitch';
+ leaf prot-type {
+ type protection-type;
+ default hsb;
+ description "Indicates the protection scheme that is used for the ProtectionGroup.";
+ }
+ leaf air-interface-hsb-configuration-is-faulty-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity of an airInterfaceHsbConfigurationIsFaulty alarm shall be chosen from an enumeration.";
+ }
+ leaf air-interface-hsb-is-partly-down-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity for one link out of the HSB configuration being down shall be chosen from an enumeration.";
+ }
+ leaf air-interface-hsb-is-down-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity of the total HSB configuration being down shall be chosen from an enumeration.";
+ }
+ leaf fcswitch {
+ type leafref {
+ path '/core-model:forwarding-construct/core-model:fc-switch/core-model:uuid';
+ }
+ description "none";
+ }
+ description "Represents and defines a protection switch structure encapsulated in the forwarding construct. Essentially performs the function of Protection Group. Associates to 2 or more Endpoints each playing the role of a Protection Unit. One or more protection EndPoints (standby/backup) provide protection for one or more working (i.e. regular/main/preferred) Endpoints where either protection or working can feed one or more protected Endpoint. May be used in revertive or non-revertive (symmetric) mode. When in revertive mode may define waitToRestore time. May be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as 1+1 ane 1:1). May be lockout (prevented from switching), force switched or manual switched. Will indicate switch state and change of state.";
+ }
+
+ /***********************
+ * package air-interface-diversity
+ **********************/
+ list mw-air-interface-diversity-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container air-interface-diversity-capability {
+ config false;
+ uses air-interface-diversity-capability-g;
+ description "none";
+ }
+ container air-interface-diversity-configuration {
+ uses air-interface-diversity-configuration-g;
+ description "none";
+ }
+ container air-interface-diversity-status {
+ config false;
+ uses air-interface-diversity-status-g;
+ description "none";
+ }
+ container air-interface-diversity-current-problems {
+ config false;
+ uses air-interface-diversity-current-problems-g;
+ description "none";
+ }
+ container air-interface-diversity-current-performance {
+ config false;
+ uses air-interface-diversity-current-performance-g;
+ description "none";
+ }
+ container air-interface-diversity-historical-performances {
+ config false;
+ uses air-interface-diversity-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-capability-g {
+ list available-kinds-of-diversity {
+ key 'diversity-name';
+ config false;
+ uses diversity-type-g;
+ description "Available types of diversity to be listed.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description "Available alarms to be listed. Mandatory:'airInterfaceDiversityConfigurationIsPartlyDown' (at least one air interface is down, but not all of them) and 'airInterfaceDiversityConfigurationIsDown' (all air interfaces are down). Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'airInterfaceDiversityConfigurationIsPartlyDown' (at least one air interface is down, but not all of them) and 'airInterfaceDiversityConfigurationIsDown' (all air interfaces are down). Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ description "Describes the capabilities in implementing different types of air interface diversity.";
+ }
+ grouping air-interface-diversity-configuration-g {
+ container air-interface-diversity {
+ uses diversity-type-g;
+ description "Type of air interface diversity configured at the link.";
+ }
+ leaf-list air-interface-ltp-list {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ min-elements 2;
+ description "_multiplicity:2-ThisAirInterfaceDiversity::AirInterfaceDiversityConfiguration::airInterfaceDiversity::diversityType::numberOfAirInterfacesMax";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list threshold-cross-alarm-list {
+ key 'g826-value-kind granularity-period';
+ max-elements 6;
+ uses threshold-cross-alarm-type-g;
+ description "List of threshold cross alarms to be configured.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 3;
+ uses air-interface-diversity-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-status-g {
+ leaf snir-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf air-interface-diversity-status {
+ type air-interface-diversity-status-type;
+ default group-down;
+ config false;
+ description "Status of the air interface bundle. ";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Diversity Group entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses air-interface-diversity-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses air-interface-diversity-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the air interface diversity configuration at a particular moment.";
+ }
+ grouping air-interface-diversity-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses air-interface-diversity-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the air interface diversity configuration for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package pure-ethernet-structure
+ **********************/
+ list mw-pure-ethernet-structure-pac {
+ if-feature pure-ethernet;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container pure-ethernet-structure-capability {
+ config false;
+ uses pure-ethernet-structure-capability-g;
+ description "none";
+ }
+ container pure-ethernet-structure-configuration {
+ uses pure-ethernet-structure-configuration-g;
+ description "none";
+ }
+ container pure-ethernet-structure-status {
+ config false;
+ uses pure-ethernet-structure-status-g;
+ description "none";
+ }
+ container pure-ethernet-structure-current-problems {
+ config false;
+ uses pure-ethernet-structure-current-problems-g;
+ description "none";
+ }
+ container pure-ethernet-structure-current-performance {
+ config false;
+ uses pure-ethernet-structure-current-performance-g;
+ description "none";
+ }
+ container pure-ethernet-structure-historical-performances {
+ config false;
+ uses pure-ethernet-structure-historical-performances-g;
+ description "none";
+ }
+ description "The pureEthernetStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting Ethernet traffic only.";
+ }
+ grouping pure-ethernet-structure-capability-g {
+ leaf structure-id {
+ type core-model:universal-id;
+ config false;
+ description "Identifies the Structure for bundling and container.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the device.";
+ }
+ description "Describes the logical structuring of the physical capacity provided by a pure Ethernet microwave device. Segmentation is not available. No fixed segment size. No TDM transport.";
+ }
+ grouping pure-ethernet-structure-configuration-g {
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ uses structure-problem-severity-type-g;
+ description "Severity of the type of problem to be configured.";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-status-g {
+ container segment-status-list {
+ config false;
+ uses segment-status-type-g;
+ description "Status of the Ethernet transport segment. Always just one segment.";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the last update of the status information. ";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses structure-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the structure of an pure Ethernet microwave at a particular moment.";
+ }
+ grouping pure-ethernet-structure-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses structure-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the structure of an pure Ethernet microwave for a pre-defined measurement interval.";
+ }
+ feature pure-ethernet {
+ description "Feature 'pure-ethernet' is mandatory for device types transporting pure Ethernet.";
+ }
+
+ /***********************
+ * package hybrid-mw-structure
+ **********************/
+ list mw-hybrid-mw-structure-pac {
+ if-feature hybrid-microwave;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container hybrid-mw-structure-capability {
+ config false;
+ uses hybrid-mw-structure-capability-g;
+ description "none";
+ }
+ container hybrid-mw-structure-configuration {
+ uses hybrid-mw-structure-configuration-g;
+ description "none";
+ }
+ container hybrid-mw-structure-status {
+ config false;
+ uses hybrid-mw-structure-status-g;
+ description "none";
+ }
+ container hybrid-mw-structure-current-problems {
+ config false;
+ uses hybrid-mw-structure-current-problems-g;
+ description "none";
+ }
+ container hybrid-mw-structure-current-performance {
+ config false;
+ uses hybrid-mw-structure-current-performance-g;
+ description "none";
+ }
+ container hybrid-mw-structure-historical-performances {
+ config false;
+ uses hybrid-mw-structure-historical-performances-g;
+ description "none";
+ }
+ description "The HybridMwStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM and Ethernet traffic.";
+ }
+ grouping hybrid-mw-structure-capability-g {
+ leaf structure-id {
+ type core-model:universal-id;
+ config false;
+ description "Identifies the Structure for bundling and container.";
+ }
+ list supported-tdm-structure-types-list {
+ key 'tdm-structure-name';
+ config false;
+ min-elements 1;
+ uses tdm-structure-type-g;
+ description "Lists the TDM frame types that are supported.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the device.";
+ }
+ description "Describes the logical structuring of the physical capacity provided by a hybrid microwave device (TDM + Ethernet). Segmentation is available. TDM transport is available.";
+ }
+ grouping hybrid-mw-structure-configuration-g {
+ container structure-kind {
+ uses tdm-structure-type-g;
+ description "TDM frame to be applied.";
+ }
+ container structure-type {
+ uses tdm-structure-type-g;
+ status deprecated;
+ description "TDM frame to be applied.";
+ }
+ leaf number-of-tdm-segments-to-be-reserved {
+ type int16;
+ default -1;
+ description "Allows to configure the number of segments reserved for TDM frames of the type specified in HybridMwStructure::HybridMwStructureConfiguration::structureType";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ uses structure-problem-severity-type-g;
+ description "Severity of the type of problem to be configured.";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-status-g {
+ list segment-status-list {
+ key 'segment-status-type-id';
+ config false;
+ uses segment-status-type-g;
+ description "Status of each segment (all TDM and one Ethernet). Multiplicity = HybridMwStructure::StructureConfiguration::tdmReservedNumberOfSegments + 1";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the last update of the status information. ";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses structure-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the structure of a hybrid microwave at a particular moment.";
+ }
+ grouping hybrid-mw-structure-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses structure-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the structure of a hybrid microwave for a pre-defined measurement interval.";
+ }
+ feature hybrid-microwave {
+ description "Feature 'hybrid-microwave' is mandatory for device types transporting Ethernet + TDM.";
+ }
+
+ /***********************
+ * package ethernet-container
+ **********************/
+ list mw-ethernet-container-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container ethernet-container-capability {
+ config false;
+ uses ethernet-container-capability-g;
+ description "none";
+ }
+ container ethernet-container-configuration {
+ uses ethernet-container-configuration-g;
+ description "none";
+ }
+ container ethernet-container-status {
+ config false;
+ uses ethernet-container-status-g;
+ description "none";
+ }
+ container ethernet-container-current-problems {
+ config false;
+ uses ethernet-container-current-problems-g;
+ description "none";
+ }
+ container ethernet-container-current-performance {
+ config false;
+ uses ethernet-container-current-performance-g;
+ description "none";
+ }
+ container ethernet-container-historical-performances {
+ config false;
+ uses ethernet-container-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping ethernet-container-capability-g {
+ leaf bundling-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "This attribute has to be set on 'true', if the device allows combining resources from several air interfaces for transporting this Ethernet container.";
+ }
+ leaf packet-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case packet compression can be activated, but not configured to a certain type, packetCompressionAvail shall be set on 'true', but none of the compression level specific booleans.";
+ }
+ leaf layer2-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 2 available at the device.";
+ }
+ leaf vlan-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on VLAN layer available at the device.";
+ }
+ leaf q-in-q-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer of a second VLAN available at the device.";
+ }
+ leaf mpls-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on mpls layer available at the device.";
+ }
+ leaf ipv4-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 3 for IPv4 available at the device.";
+ }
+ leaf ipv6-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 3 for IPv6 available at the device.";
+ }
+ leaf layer4-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 4 (TCP and UDP header) available at the device.";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be marked 'true', if Ethernet payload encryption is available.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the device.";
+ }
+ description "none";
+ }
+ grouping ethernet-container-configuration-g {
+ leaf container-id {
+ type string;
+ default "No Ethernet Flow associated yet.";
+ description "ContainterID in Netconf must be the same as EthernetPortID in OpenFlow so a connection can be made between the two items, which separately exist in the controller.";
+ }
+ list segments-id-list {
+ key 'structure-id-ref segment-id-ref';
+ min-elements 1;
+ uses segment-id-type-g;
+ description "Lists the segments used for transporting this Ethernet container. In case EthernetContainer::ContainerCapability::bundlingIsAvail==0, all TypeDefinitions::segmentIdType::structureId must be identical in the list.";
+ }
+ leaf packet-compression-is-on {
+ type boolean;
+ default false;
+ description "In case packet compression is activated, but no type is activated, it is assumed that the device chooses the optimum.";
+ }
+ leaf layer2-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 2 configured at the device.";
+ }
+ leaf vlan-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on VLAN layer configured at the device.";
+ }
+ leaf q-in-q-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer of a second VLAN configured at the device.";
+ }
+ leaf mpls-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on MPLS layer configured at the device.";
+ }
+ leaf ipv4-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 3 for IPv4 configured at the device.";
+ }
+ leaf ipv6-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 3 for IPv6 configured at the device.";
+ }
+ leaf layer4-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 4 (TCP and UDP header) configured at the device.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default false;
+ description "Activates encryption of the Ethernet payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description "Key for transforming plaintext into cipher text data.";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 2;
+ uses container-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping ethernet-container-status-g {
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Container entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping ethernet-container-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses container-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping ethernet-container-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the Ethernet container at a particular moment.";
+ }
+ grouping ethernet-container-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses container-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the Ethernet container for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package tdm-container
+ **********************/
+ list mw-tdm-container-pac {
+ if-feature hybrid-microwave;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container tdm-container-capability {
+ config false;
+ uses tdm-container-capability-g;
+ description "none";
+ }
+ container tdm-container-configuration {
+ uses tdm-container-configuration-g;
+ description "none";
+ }
+ container tdm-container-status {
+ config false;
+ uses tdm-container-status-g;
+ description "none";
+ }
+ container tdm-container-current-problems {
+ config false;
+ uses tdm-container-current-problems-g;
+ description "none";
+ }
+ container tdm-container-current-performance {
+ config false;
+ uses tdm-container-current-performance-g;
+ description "none";
+ }
+ container tdm-container-historical-performances {
+ config false;
+ uses tdm-container-historical-performances-g;
+ description "none";
+ }
+ description "The TdmContainer_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM traffic.";
+ }
+ grouping tdm-container-capability-g {
+ list supported-tdm-container-types-list {
+ key 'tdm-container-name';
+ config false;
+ min-elements 1;
+ uses tdm-container-type-g;
+ description "Lists the TDM containers that are supported.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the device.";
+ }
+ description "Bundling is not available.";
+ }
+ grouping tdm-container-configuration-g {
+ leaf container-id {
+ type string;
+ default "No TDM Flow associated yet.";
+ description "ContainterID in Netconf must be the same as TDM Flow ID so a connection can be made between the two items, which separately exist in the controller.";
+ }
+ container container-type {
+ uses tdm-container-type-g;
+ description "Type of TDM container.";
+ }
+ container segment-id {
+ uses segment-id-type-g;
+ description "Multiplicity = 1; One segment per TDM container; Type of segment must match type of container;";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 2;
+ uses container-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping tdm-container-status-g {
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Container entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping tdm-container-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses container-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping tdm-container-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the TDM container at a particular moment.";
+ }
+ grouping tdm-container-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses container-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the TDM container for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package super-classes
+ **********************/
+ grouping mw-current-problem-g {
+ leaf sequence-number {
+ type int32;
+ config false;
+ description "Unique sequence number of the current problem object.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the problem. ";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default warning;
+ config false;
+ description "Severity of the alarm.";
+ }
+ description "none";
+ }
+
+
+ /***********************
+ * package notifications
+ **********************/
+ notification object-creation-notification {
+ uses object-creation-notification-g;
+ description "none";
+ }
+ grouping object-creation-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts object creation notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ description "Type of Object to be chosen from the following list of values: 'MW_AirInterface_Pac', 'MW_AirInterfaceDiversity_Pac', 'MW_Structure_Pac', 'MW_PureEthernetStructure_Pac', 'MW_HybridMwStructure_Pac', 'MW_Container_Pac', 'MW_EthernetContainer_Pac' or 'MW_TdmContainer_Pac'.";
+ }
+ description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac has to be instancieted in the controller.";
+ }
+ notification object-deletion-notification {
+ uses object-deletion-notification-g;
+ description "none";
+ }
+ grouping object-deletion-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts object deletion notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac instance has to be deleted in the controller.";
+ }
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification-g;
+ description "none";
+ }
+ grouping attribute-value-changed-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts attribute value changed notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ description "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ description "Attribute value converted to a string (xml, json, ...)";
+ }
+ description "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+ notification problem-notification {
+ uses problem-notification-g;
+ description "none";
+ }
+ grouping problem-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts problem notifications";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ description "Name of the problem according to AirInterface::AirInterfaceCapability::supportedAlarms or AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms or Structure::StructureCapability::supportedAlarms or PureEthernetStructure::PureEthernetStructureCapability::supportedAlarms or HybridMwStructure::HybridMwStructureCapability::supportedAlarms or Container::ContainerCapability::supportedAlarms or EthernetContainer::EthernetContainerCapability::supportedAlarms or TdmContainer::TdmContainerCapability::supportedAlarms.";
+ }
+ leaf severity {
+ type severity-type;
+ default warning;
+ description "Severity of the problem according to AirInterface::AirInterfaceConfiguration::problemSeverityList, AirInterfaceDiversity::AirInterfaceDiversityConfiguration::problemSeverityList, Structure::StructureConfiguration::problemSeverityList, PureEthernetStructure::PureEthernetStructureConfiguration::problemSeverityList, HybridMwStructure::HybridMwStructureConfiguration::problemSeverityList, Container::ContainerConfiguration::problemSeverityList, EthernetContainer::EthernetContainerConfiguration::problemSeverityList or TdmContainer::TdmContainerConfiguration::problemSeverityList";
+ }
+ description "To be sent when a problem occurs at a MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-10-10.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-10-10.yang
new file mode 100644
index 000000000..d13122d28
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/microwave-model@2018-10-10.yang
@@ -0,0 +1,3581 @@
+module microwave-model {
+ namespace "urn:onf:params:xml:ns:yang:microwave-model";
+ prefix microwave-model;
+
+ import core-model {
+ prefix core-model;
+ }
+ import g.874.1-model {
+ prefix g;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ }
+
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/software-defined-standards/models-apis/>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga
+ <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Thorsten Heinze
+ <mailto:thorsten.heinze@telefonica.com>
+ Shrikanth Malavalli Divakar
+ <mailto:shrikanth.divakar@wipro.com>";
+ description "This module contains a collection of YANG definitions for managing wireless networks.
+ This model is for vendor agnostic management of wireless network elements.";
+ revision 2018-10-10 {
+ description "Version 1.1";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+ revision 2017-03-24 {
+ description "Initial version";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+ /***********************
+ * package type-definitions
+ **********************/
+ typedef loop-back-type {
+ type enumeration {
+ enum rf-to-remote {
+ description "Returning the header information of the remote site back to the remote site on the radio interface between both outdoor units.";
+ }
+ enum rf-to-local {
+ description "Returning the header information of the local site back to the local site on the radio interface between both outdoor units.";
+ }
+ enum if-to-remote {
+ description "Returning the header information of the remote site back to the remote site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+ }
+ enum if-to-local {
+ description "Returning the header information of the local site back to the local site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+ }
+ enum none {
+ description "none";
+ }
+ enum if {
+ status deprecated;
+ description "Intermediate Frequency on the interface between indoor and outdoor unit.";
+ }
+ enum rf {
+ status deprecated;
+ description "Radio Frequency on the interface between outdoor unit and outdoor unit at the remote site.";
+ }
+ }
+ description "none";
+ }
+ typedef severity-type {
+ type enumeration {
+ enum non-alarmed {
+ description "none";
+ }
+ enum warning {
+ description "none";
+ }
+ enum minor {
+ description "none";
+ }
+ enum major {
+ description "none";
+ }
+ enum critical {
+ description "none";
+ }
+ }
+ description "According to ITU-T M.3160";
+ }
+ grouping channel-plan-type-g {
+ leaf supported-channel-plan {
+ type string;
+ config false;
+ description "Unique name (e.g. ECC/REC/(01)04_Annex 5) of a document, which describes a frequency grid that can be adjusted at the air interface. Corresponding channel plans to be delivered by the hardware vendor and to be stored by the operator in an controller/application attached database.";
+ }
+ leaf duplex-distance-is-variable {
+ type boolean;
+ default false;
+ config false;
+ description "To be set on 'true', if the distance between transmitted and received frequency is variable.";
+ }
+ leaf-list duplex-distance-list {
+ type int32;
+ units "kHz";
+ config false;
+ min-elements 1;
+ description "Distance between transmitted and received frequency. To be filled with single value, in case duplex distance is not variable. To be filled with all configurable values, in case duplex distance is variable.";
+ }
+ leaf duplex-distance {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ status deprecated;
+ description "Distance between transmitted and received frequency.";
+ }
+ leaf auto-freq-select-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of automatically selecting the transmit frequency in unlicensed bands, this field shall contain a 'true'.";
+ }
+ list transmission-mode-list {
+ key 'transmission-mode-id';
+ config false;
+ min-elements 1;
+ uses transmission-mode-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping transmission-mode-type-g {
+ leaf transmission-mode-id {
+ type core-model:universal-id;
+ description "Indentifies the transmissionMode for internal reference.";
+ }
+ leaf transmission-mode-name {
+ type string;
+ default "Name of the transmission mode not yet defined.";
+ config false;
+ description "Name of the transmission mode. BBBB-m*-i*/t*-r*. B=four digits of channel bandwidth in MHz. m*=required number of digits for modulation name. (i*/t*=code rate.) i*=required number of digits for number of information bits. t*=required number of digits for total bits. r*=required number of digits for rate reduction factor. Example: 028-4QAM-188/204-1";
+ }
+ leaf channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf modulation-scheme {
+ type int16;
+ units "symbols";
+ default -1;
+ config false;
+ description "Modulation scheme, which is base to the other characteristics described in the same transmissionModeType data type. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256').";
+ }
+ leaf code-rate {
+ type int8;
+ units "%";
+ default -1;
+ config false;
+ description "Code rate of the coding scheme in % (Net bit rate ≤ Gross bit rate · code rate).";
+ }
+ leaf symbol-rate-reduction-factor {
+ type int8;
+ default 1;
+ config false;
+ description "Reduction factor for the symbol rate. Example: value would be 4 for 1/4BPSK.";
+ }
+ leaf tx-power-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the minimum transmit power the modem can operate in dBm.";
+ }
+ leaf tx-power-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the maximum transmit power the modem can operate in dBm.";
+ }
+ leaf rx-threshold {
+ type int16;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level required to decode the received signal with a Bit Error Rate of 1e-6 or less.";
+ }
+ leaf am-upshift-level {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level that has to be exceeded to shift into a higher modulation scheme.";
+ }
+ leaf am-downshift-level {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Value of the receive level that has to be exceeded for not shifting into a lower modulation scheme.";
+ }
+ leaf xpic-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case this air interface type is capable of XPIC, this field shall contain a 'true'. This information shall purely relate to capabilities of the equipment type, but not to the operational capability of a specific hardware composition on site. Means for example that this attribute might contain a 'true' statement, even if an additional cable would have been required to actually operate XPIC in a specific case.";
+ }
+ description "none";
+ }
+ typedef polarization-type {
+ type enumeration {
+ enum not-specified {
+ description "none";
+ }
+ enum horizontal {
+ description "none";
+ }
+ enum vertical {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef g826-type {
+ type enumeration {
+ enum es {
+ description "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+ }
+ enum ses {
+ description "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+ }
+ enum cses {
+ description "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+ }
+ enum not-specified {
+ description "none";
+ }
+ }
+ description "none";
+ }
+
+ grouping threshold-cross-alarm-type-g {
+ leaf g826-value-kind {
+ type g826-type;
+ description "Kind of performance value that shall be equipped with a threshold alarm.";
+ }
+ leaf granularity-period {
+ type g:granularity-period-type;
+ description "Period of the performance data collection.";
+ }
+ leaf alarm-raising-threshold {
+ type int32;
+ units "s";
+ default -1;
+ description "Number of events required for raising the threshold cross alarm.";
+ }
+ leaf alarm-clearing-threshold {
+ type int32;
+ units "s";
+ default -1;
+ description "Number of events required for clearing the threshold cross alarm.";
+ }
+ description "Allows defining a threshold cross alarm.
+ ";
+ }
+ grouping air-interface-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping air-interface-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping time-x-states-type-g {
+ leaf transmission-mode {
+ type leafref{
+ path '/mw-air-interface-pac/air-interface-capability/supported-channel-plan-list/transmission-mode-list/transmission-mode-id';
+ }
+ config false;
+ description "Operated transmission mode.";
+ }
+ leaf time {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Sum of all seconds the transmitter operated the transmission mode.";
+ }
+ description "none";
+ }
+ grouping air-interface-performance-type-g {
+ leaf es {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of errored seconds.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of severely errored seconds.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of consecutive severely errored seconds.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total time of unavailability in seconds.";
+ }
+ leaf tx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged transmit power. Signed integers are required.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum receive level. Signed integers are required.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum receive level. Signed integers are required.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged receive level. Signed integers are required.";
+ }
+ list time-x-states-list {
+ key 'transmission-mode';
+ config false;
+ min-elements 1;
+ uses time-x-states-type-g;
+ description "Time period the transmitter operated in the respective transmission mode.";
+ }
+ leaf time2-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "Sum of all seconds the transmitter operated in e.g. BPSK.";
+ }
+ leaf time4-states-s {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time4-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time8-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time16-states-s {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time16-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time32-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time64-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time128-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time256-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time512-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time512-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time1024-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time1024-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time2048-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time2048-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time4096-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time4096-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time8192-states {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf time8192-states-l {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ status deprecated;
+ description "none";
+ }
+ leaf snir-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum signal to (noise+interference) ratio.";
+ }
+ leaf snir-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum signal to (noise+interference) ratio.";
+ }
+ leaf snir-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Averaged signal to (noise+interference) ratio.";
+ }
+ leaf xpd-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum cross polarization discrimination.";
+ }
+ leaf xpd-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum cross polarization discrimination.";
+ }
+ leaf xpd-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Averaged cross polarization discrimination.";
+ }
+ leaf rf-temp-min {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Lowest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-max {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Highest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-avg {
+ type int8;
+ units "C";
+ default -99;
+ config false;
+ description "Averaged temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf defect-blocks-sum {
+ type int16;
+ units "blocks";
+ default -1;
+ config false;
+ description "Total number of blocks that were defect after receiving and could not be corrected by the FEC.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period.";
+ }
+ description "Consolidated performance information of the air interface.";
+ }
+ grouping air-interface-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping air-interface-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ typedef protection-type {
+ type enumeration {
+ enum hsb {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef role-type {
+ type enumeration {
+ enum working {
+ description "none";
+ }
+ enum protection {
+ description "none";
+ }
+ enum protected {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ grouping diversity-type-g {
+ leaf diversity-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'spaceDiversity', 'frequencyDiversity'";
+ }
+ leaf number-of-air-interfaces-max {
+ type int8;
+ units "air interfaces";
+ default 1;
+ config false;
+ description "Maximum number of air interfaces that could be part of this kind of diversity.";
+ }
+ description "none";
+ }
+ typedef air-interface-diversity-status-type {
+ type enumeration {
+ enum group-down {
+ description "All air interfaces that are members of the diversity configuration are down.";
+ }
+ enum not-all-ai-active {
+ description "At least one, but not all of the air interfaces that are part of the diversity configuration is not working.";
+ }
+ enum all-ai-active {
+ description "All air interfaces that are part of the diversity configuration are working.";
+ }
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping air-interface-diversity-performance-type-g {
+ leaf snir-min {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Minimum signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf snir-max {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Maximum signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf snir-avg {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Average signal to (noise+interference) ratio of the combined signals.";
+ }
+ description "Consolidated performance information of the air interface diversity group.";
+ }
+ grouping air-interface-diversity-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-diversity-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping air-interface-diversity-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses air-interface-diversity-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ grouping tdm-structure-type-g {
+ leaf tdm-structure-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-segment-size {
+ type int32;
+ units "kbit/s";
+ default -1;
+ config false;
+ description "Size of the TDM segment in kbit/s. Values to be chosen from the following list: '2048','1544','34000','44736 ','155520','614400','1228800','2457600','3072000','4915200','6144000' or '9830400;";
+ }
+ leaf max-number-of-segments-reservable {
+ type int8;
+ units "segments";
+ default -1;
+ config false;
+ description "Device specific maximum number of segments (not depending on current air interface configuration) that can be reserved for this type of segment on a single air interface.";
+ }
+ description "none";
+ }
+ grouping structure-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping structure-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping structure-performance-type-g {
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period in seconds.";
+ }
+ leaf es {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Number of consecutive severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total time of unavailability in seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Minimum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Maximum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Averaged receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ description "Consolidated performance information of the Structure.";
+ }
+ grouping structure-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses structure-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping structure-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses structure-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ grouping container-type-g {
+ leaf container-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'ethernet','e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf number-of-time-slots-required {
+ type int16;
+ units "timeslots";
+ default -1;
+ config false;
+ description "Number of time slots required for transporting this type of container. Value must be calculated by the vendor after defining the timeSlotCapacity. For containers of fixed size: numberOfTimeSlotsRequired = required bandwidth of the container divided by timeSlotCapacity. For containers of variable size the minimum (most probably 1) is to be stated.";
+ }
+ leaf tdm-time-slots-is-required {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be set to '1', if this container type requires bandwidth (times slots) reserved for TDM transport.";
+ }
+ leaf bundling-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "If it is possible to combine transport resources of several radio links to transport this container type, this attribute shall be set to '1'.";
+ }
+ description "none";
+ }
+ grouping tdm-container-type-g {
+ leaf tdm-container-name {
+ type string;
+ config false;
+ description "Names to be chosen from the following list: 'e1','t1','j1','e3','t3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-container-size {
+ type int32;
+ units "kbit/s";
+ default -1;
+ config false;
+ description "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;";
+ }
+ description "none";
+ }
+ grouping segment-id-type-g {
+ leaf structure-id-ref {
+ type core-model:universal-id;
+ description "none";
+ }
+ leaf segment-id-ref {
+ type int16;
+ description "Combinations of structureId and segmentId must be unique inside the device to assure that every resource is used just once.";
+ }
+ description "Identifies the segments, which are used to transport the container.";
+ }
+ grouping segment-status-type-g {
+ leaf segment-status-type-id {
+ type int16;
+ config false;
+ description "none";
+ }
+ leaf segment-is-reserved-for-tdm {
+ type boolean;
+ default false;
+ config false;
+ description "The number of segments, which is configured by Structure::StructureConfiguration::tdmReservedNumberOfSegements, has to be reserved for TDM. Starting from the lowest index value, these segments have to be marked with a 'true' in segmentIsReservedForTdm.
+ ";
+ }
+ leaf operational-status {
+ type core-model:operational-state;
+ default disabled;
+ config false;
+ description "Current operational status of each segment.";
+ }
+ leaf obsolete-priority-class {
+ type int8;
+ default -1;
+ config false;
+ description "PriorityClass as inherited from the associated Container::ContainerConfiguration::priorityClass. In case the device is capable of adapting the sequence, in which segments are being dropped in case of decreasing capacity of the air interface, priorityClass shall be considered, while calculating the dropOrderRank.";
+ }
+ leaf obsolete-drop-order-rank {
+ type int16;
+ default -1;
+ config false;
+ description "In case the device is NOT capable of adapting the sequence, in which segments are being dropped in case of decreasing capacity of the air interface, dropOrderRank is number of segments minus sequence number of the segment. In case the device is capable of adapting the sequence, dropOrderRank has to be calculated by the device in dependency to the assigned priorityClass.
+ _unique: within Structure::StructureStatus::segmentStatusList";
+ }
+ description "none";
+ }
+ grouping container-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping container-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping container-performance-type-g {
+ leaf tx-ethernet-bytes-max-s {
+ type int32;
+ units "Bytes/s";
+ default -1;
+ config false;
+ description "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a second and keeps the highest value within the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-max-m {
+ type int64;
+ units "Bytes/min";
+ default -1;
+ config false;
+ description "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a minute and keeps the highest value with in the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-sum {
+ type int64;
+ units "Bytes";
+ default -1;
+ config false;
+ description "Total number of Bytes of Ethernet traffic (before header compression) transmitted (in direction out of the device) during the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "Total length of the measurement period in seconds.";
+ }
+ description "Consolidated performance information of the Container.";
+ }
+ grouping container-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses container-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping container-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses container-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+ typedef mii-kind-type {
+ type enumeration {
+ enum gbic {
+ description "none";
+ }
+ enum soldered-connector {
+ description "none";
+ }
+ enum sfp-sfp-plus-sfp28 {
+ description "none";
+ }
+ enum xbi-300-pin {
+ description "none";
+ }
+ enum xenpak {
+ description "none";
+ }
+ enum xfp {
+ description "none";
+ }
+ enum xfp-e {
+ description "none";
+ }
+ enum xpak {
+ description "none";
+ }
+ enum x2 {
+ description "none";
+ }
+ enum dwdm-sfp-sfp-plus {
+ description "none";
+ }
+ enum qsfp {
+ description "none";
+ }
+ enum qsfp-plus {
+ description "none";
+ }
+ enum cxp {
+ description "none";
+ }
+ enum shielded-mini-multilane-hd-4-x {
+ description "none";
+ }
+ enum shielded-mini-multilane-hd-8-x {
+ description "none";
+ }
+ enum qsfp28 {
+ description "none";
+ }
+ enum cxp2 {
+ description "none";
+ }
+ enum cdfp-style1-style2 {
+ description "none";
+ }
+ enum shielded-mini-multilane-hd-4-x-fan-out {
+ description "none";
+ }
+ enum shielded-mini-multilane-hd-8-x-fan-out {
+ description "none";
+ }
+ enum cdfp-style3 {
+ description "none";
+ }
+ enum qsfp-micro {
+ description "none";
+ }
+ enum qsfp-dd {
+ description "none";
+ }
+ enum qsfp-plus-rate-select-v1 {
+ description "none";
+ }
+ enum qsfp-plus-rate-select-v2 {
+ description "none";
+ }
+ enum not-yet-defined {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef mdi-kind-type {
+ type enumeration {
+ enum sc {
+ description "Subscriber Connector";
+ }
+ enum fibre-channel-style-1 {
+ description "Copper connector";
+ }
+ enum fibre-channel-style-2 {
+ description "Copper connector";
+ }
+ enum bnc-tnc {
+ description "Bayonet/Threaded Neill-Concelman";
+ }
+ enum fc {
+ description "Fibre Channel coax headers";
+ }
+ enum fiber-jack {
+ description "none";
+ }
+ enum lc {
+ description "Lucent Connector";
+ }
+ enum mt-rj {
+ description "Mechanical Transfer - Registered Jack";
+ }
+ enum mu {
+ description "Multiple Optical";
+ }
+ enum sg {
+ description "none";
+ }
+ enum optical-pigtail {
+ description "none";
+ }
+ enum mpo1-x12 {
+ description "Multifiber Parallel Optic";
+ }
+ enum mpo2-x16 {
+ description "Multifiber Parallel Optic";
+ }
+ enum hssdc-ii {
+ description "High Speed Serial Data Connector";
+ }
+ enum copper-pigtail {
+ description "none";
+ }
+ enum rj45 {
+ description "8P8C, according to Clause 3 and Figures 1 through 5 of IEC 60603-7";
+ }
+ enum no-seperable-connector {
+ description "none";
+ }
+ enum mxc2-x16 {
+ description "none";
+ }
+ enum st {
+ description "according to IEC 60874-10:1992, also often called BFOC/2.5";
+ }
+ enum not-yet-defined {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef medium-kind-type {
+ type enumeration {
+ enum tp-cat3 {
+ description "none";
+ }
+ enum tp-cat5 {
+ description "none";
+ }
+ enum tp-cat6 {
+ description "none";
+ }
+ enum tp-cat8 {
+ description "none";
+ }
+ enum single-mode {
+ description "none";
+ }
+ enum multi-mode {
+ description "none";
+ }
+ enum not-yet-defined {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef pmd-name-type {
+ type enumeration {
+ enum 10-base5 {
+ description "Thick coax Medium Attachment Unit (MAU) as specified in 802.3 Clause 8";
+ }
+ enum foirl {
+ description "FOIRL Medium Attachment Unit (MAU) as specified in 802.3 Clause 9.9";
+ }
+ enum 10-base2 {
+ description "Thin coax Medium Attachment Unit (MAU) as specified in 802.3 Clause 10";
+ }
+ enum 10-broad36 {
+ description "Broadband DTE Medium Attachment Unit (MAU) as specified in 802.3 Clause 11";
+ }
+ enum 10-base-t {
+ description "Twisted-pair cabling Medium Attachment Unit (MAU) as specified in 802.3 Clause 14. Only to be applied when duplex mode unknown";
+ }
+ enum 10-base-thd {
+ description "Twisted-pair cabling Medium Attachment Unit (MAU) as specified in 802.3 Clause 14 in half duplex mode";
+ }
+ enum 10-base-tfd {
+ description "Twisted-pair cabling Medium Attachment Unit (MAU) as specified in 802.3 Clause 14 in full duplex mode";
+ }
+ enum 10-base-fp {
+ description "Passive fiber Medium Attachment Unit (MAU) as specified in 802.3 Clause 16";
+ }
+ enum 10-base-fb {
+ description "Synchronous fiber Medium Attachment Unit (MAU) as specified in 802.3 Clause 17";
+ }
+ enum 10-base-fl {
+ description "Asynchronous fiber Medium Attachment Unit (MAU) as specified in 802.3 Clause 18. Only to be applied when duplex mode unknown";
+ }
+ enum 10-base-flhd {
+ description "Asynchronous fiber Medium Attachment Unit (MAU) as specified in 802.3 Clause 18 in half duplex mode";
+ }
+ enum 10-base-flfd {
+ description "Asynchronous fiber Medium Attachment Unit (MAU) as specified in 802.3 Clause 18 in full duplex mode";
+ }
+ enum 100-base-t4 {
+ description "Four-pair Category 3 twisted-pair cabling as specified in 802.3 Clause 23";
+ }
+ enum 100-base-tx {
+ description "Two-pair Category 5 twisted-pair cabling as specified in 802.3 Clause 25. Only to be applied when duplex mode unknown";
+ }
+ enum 100-base-txhd {
+ description "Two-pair Category 5 twisted-pair cabling as specified in 802.3 Clause 25 in half duplex mode";
+ }
+ enum 100-base-txfd {
+ description "Two-pair Category 5 twisted-pair cabling as specified in 802.3 Clause 25 in full duplex mode";
+ }
+ enum 100-base-bx10-d {
+ description "One single-mode fiber Optical Line Terminal (OLT=>office side) Physical layer entity (PHY) as specified in 802.3 Clause 58";
+ }
+ enum 100-base-bx10-u {
+ description "One single-mode fiber Optical Network Unit (ONU=>customer side) Physical layer entity (PHY) as specified in 802.3 Clause 58";
+ }
+ enum 100-base-fx {
+ description "X fiber over Physical Medium Dependent (PMD) as specified in 802.3 Clause 26. Only to be applied when duplex mode unknown";
+ }
+ enum 100-base-fxhd {
+ description "X fiber over Physical Medium Dependent (PMD) as specified in 802.3 Clause 26 in half duplex mode";
+ }
+ enum 100-base-fxfd {
+ description "X fiber over Physical Medium Dependent (PMD) as specified in 802.3 Clause 26 in full duplex mode";
+ }
+ enum 100-base-lx10 {
+ description "Two fiber Physical layer entity (PHY) as specified in 802.3 Clause 58";
+ }
+ enum 100-base-t2 {
+ description "Two-pair Category 3 twisted-pair cabling as specified in 802.3 Clause 32. Only to be applied when duplex mode unknown";
+ }
+ enum 100-base-t2-hd {
+ description "Two-pair Category 3 twisted-pair cabling as specified in 802.3 Clause 32 in half duplex mode";
+ }
+ enum 100-base-t2-fd {
+ description "Two-pair Category 3 twisted-pair cabling as specified in 802.3 Clause 32 in full duplex mode";
+ }
+ enum 1000-base-x {
+ description "X as specified in 802.3 Clause 36 over undefined Physical Medium Dependent (PMD). Not to be configured and only to be returned when underlying PMD and duplex mode unknown";
+ }
+ enum 1000-base-bx10-d {
+ description "One single-mode fiber Optical Line Terminal (OLT=>office side) Physical layer entity (PHY) as specified in 802.3 Clause 59";
+ }
+ enum 1000-base-bx10-u {
+ description "One single-mode fiber Optical Network Unit (ONU=>customer side) Physical layer entity (PHY) as specified in 802.3 Clause 59";
+ }
+ enum 1000-base-xhd {
+ description "X Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) as specified in 802.3 Clause 36 over undefined Physical Medium Dependent (PMD) in half duplex mode. Not to be configured and only to be returned when underlying PMD unknown";
+ }
+ enum 1000-base-xfd {
+ description "X Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) as specified in 802.3 Clause 36 over undefined Physical Medium Dependent (PMD) in full duplex mode. Not to be configured and only to be returned when underlying PMD unknown";
+ }
+ enum 1000-base-lx {
+ description "X fiber over long-wavelength laser Physical Medium Dependent (PMD) as specified in 802.3 Clause 38. Only to be applied when duplex mode unknown";
+ }
+ enum 1000-base-lxhd {
+ description "X fiber over long-wavelength laser Physical Medium Dependent (PMD) as specified in 802.3 Clause 38 in half duplex mode";
+ }
+ enum 1000-base-lxfd {
+ description "X fiber over long-wavelength laser Physical Medium Dependent (PMD) as specified in 802.3 Clause 38 in full duplex mode";
+ }
+ enum 1000-base-lx10 {
+ description "Two fiber 10km Physical layer entity (PHY) as specified in 802.3 Clause 59";
+ }
+ enum 1000-base-sx {
+ description "X fiber over short-wavelength laser Physical Medium Dependent (PMD) as specified in 802.3 Clause 38. Only to be applied when duplex mode unknown";
+ }
+ enum 1000-base-sxhd {
+ description "X fiber over short-wavelength laser Physical Medium Dependent (PMD) as specified in 802.3 Clause 38 in half duplex mode";
+ }
+ enum 1000-base-sxfd {
+ description "X fiber over short-wavelength laser Physical Medium Dependent (PMD) as specified in 802.3 Clause 38 in full duplex mode";
+ }
+ enum 1000-base-cx {
+ description "X copper over 150-Ohm balanced cable Physical Medium Dependent (PMD) as specified in 802.3 Clause 39. Only to be applied when duplex mode unknown";
+ }
+ enum 1000-base-cxhd {
+ description "X copper over 150-Ohm balanced cable Physical Medium Dependent (PMD) as specified in 802.3 Clause 39 in half duplex mode";
+ }
+ enum 1000-base-cxfd {
+ description "X copper over 150-Ohm balanced cable Physical Medium Dependent (PMD) as specified in 802.3 Clause 39 in full duplex mode";
+ }
+ enum 1000-base-kx {
+ description "X Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over an electrical backplane Physical Medium Dependent (PMD) as specified in 802.3 Clause 70";
+ }
+ enum 1000-base-t {
+ description "Four-pair Category 5 twisted-pair cabling Physical layer entity (PHY) as specified in 802.3 Clause 40. Only to be applied when duplex mode unknown";
+ }
+ enum 1000-base-thd {
+ description "Four-pair Category 5 twisted-pair cabling Physical layer entity (PHY) as specified in 802.3 Clause 40 in half duplex mode";
+ }
+ enum 1000-base-tfd {
+ description "Four-pair Category 5 twisted-pair cabling Physical layer entity (PHY) as specified in 802.3 Clause 40 in full duplex mode";
+ }
+ enum 10-gbase-x {
+ description "X Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) as specified in 802.3 Clause 48 over undefined Physical Medium Dependent (PMD). Not to be configured and only to be returned when underlying PMD unknown";
+ }
+ enum 10-gbase-lx4 {
+ description "X fiber over 4 lane 1310nm optics as specified in 802.3 Clause 53";
+ }
+ enum 10-gbase-cx4 {
+ description "X copper over 8 pair 100-Ohm balanced cable as specified in 802.3 Clause 54";
+ }
+ enum 10-gbase-kx4 {
+ description "X Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over an electrical backplane Physical Medium Dependent (PMD) as specified in 802.3 Clause 71";
+ }
+ enum 10-gbase-r {
+ description "R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) as specified in 802.3 Clause 49 over undefined Physical Medium Dependent (PMD). Not to be configured and only to be returned when underlying PMD unknown";
+ }
+ enum 10-gbase-er {
+ description "R fiber over 1550nm optics as specified in 802.3 Clause 52";
+ }
+ enum 10-gbase-lr {
+ description "R fiber over 1310nm optics as specified in 802.3 Clause 52";
+ }
+ enum 10-gbase-sr {
+ description "R fiber over 850nm optics as specified in 802.3 Clause 52";
+ }
+ enum 10-gbase-lrm {
+ description "R fiber over 1310 nm optics as specified in 802.3 Clause 68";
+ }
+ enum 10-gbase-kr {
+ description "R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over an electrical backplane Physical Medium Dependent (PMD) as specified in 802.3 Clause 72";
+ }
+ enum 10-gbase-t {
+ description "Four-pair twisted-pair balanced copper cabling Physical layer entity (PHY) as specified in 802.3 Clause 55";
+ }
+ enum 10-gbase-pr-d1 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Line Terminal (OLT=>office side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 10-gbase-pr-d2 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Line Terminal (OLT=>office side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 10-gbase-pr-d3 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Line Terminal (OLT=>office side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 10-gbase-pr-d4 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Line Terminal (OLT=>office side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 10-gbase-pr-u1 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Network Unit (ONU=>customer side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 10-gbase-pr-u2 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Network Unit (ONU=>customer side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 10-gbase-pr-u3 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Network Unit (ONU=>customer side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 10-gbase-pr-u4 {
+ description "One single-mode fiber 10.3125 GBd continuous downstream / burst mode upstream Optical Network Unit (ONU=>customer side) Physical layer entity (PHY) as specified in 802.3 Clause 75";
+ }
+ enum 40-gbase-r {
+ description "Multi-lane PCS as specified in 802.3 Clause 82 over undefined Physical Medium Attachment (PMA) and Physical Medium Dependent (PMD). Not to be configured and only to be returned when underlying PMD unknown";
+ }
+ enum 40-gbase-kr4 {
+ description "40GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over an electrical backplane Physical Medium Dependent (PMD) as specified in 802.3 Clause 84";
+ }
+ enum 40-gbase-cr4 {
+ description "40GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 lane shielded copper balanced cable Physical Medium Dependent (PMD) as specified in 802.3 Clause 85";
+ }
+ enum 40-gbase-sr4 {
+ description "40GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 lane multimode fiber Physical Medium Dependent (PMD) as specified in 802.3 Clause 86";
+ }
+ enum 4-x10-gbase-sr {
+ description "4 times 10GBASE-S compatible to 802.3 Clause 52 over 4 lane multimode fiber";
+ }
+ enum 40-gbase-lr4 {
+ description "40GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 WDM lane single mode fiber Physical Medium Dependent (PMD), with long reach, as specified in 802.3 Clause 87";
+ }
+ enum 40-gbase-er4 {
+ description "40GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 WDM lane single mode fiber Physical Medium Dependent (PMD), with extended reach, as specified in 802.3 Clause 87";
+ }
+ enum 40-gbase-fr {
+ description "40GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over single mode fiber Physical Medium Dependent (PMD) as specified in 802.3 Clause 89";
+ }
+ enum 100-gbase-r {
+ description "Multi-lane PCS as specified in 802.3 Clause 82 over undefined 100GBASE-R or 100GBASE-P Physical Medium Attachment (PMA) and Physical Medium Dependent (PMD). Not to be configured and only to be returned when underlying PMD unknown";
+ }
+ enum 100-gbase-cr4 {
+ description "100GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 lane shielded copper balanced cable Physical Medium Dependent (PMD) as specified in 802.3 Clause 92";
+ }
+ enum 100-gbase-kr4 {
+ description "100GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over an electrical backplane Physical Medium Dependent (PMD) as specified in 802.3 Clause 93";
+ }
+ enum 100-gbase-kp4 {
+ description "100GBASE-P Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over an electrical backplane Physical Medium Dependent (PMD) as specified in 802.3 Clause 94";
+ }
+ enum 100-gbase-cr10 {
+ description "100GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 10 lane shielded copper balanced cable Physical Medium Dependent (PMD) as specified in 802.3 Clause 85";
+ }
+ enum 100-gbase-sr4 {
+ description "100GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 lane multimode fiber Physical Medium Dependent (PMD) as specified in 802.3 Clause 95";
+ }
+ enum 100-gbase-sr10 {
+ description "100GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 10 lane multimode fiber Physical Medium Dependent (PMD) as specified in 802.3 Clause 86";
+ }
+ enum 2-x40-gbase-sr {
+ description "2 times 40GBASE-S compatible to 802.3 Clause 86 over 10 lane multimode fiber";
+ }
+ enum 10-x10-gbase-sr {
+ description "10 times 10GBASE-S compatible to 802.3 Clause 52 over 10 lane multimode fiber";
+ }
+ enum 12-x10-gbase-sr {
+ description "12 times 10GBASE-S compatible to 802.3 Clause 52 over 12 lane multimode fiber";
+ }
+ enum 100-gbase-lr4 {
+ description "100GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 WDM lane single mode fiber Physical Medium Dependent (PMD), with long reach, as specified in 802.3 Clause 88";
+ }
+ enum 100-gbase-er4 {
+ description "100GBASE-R Physical Coding Sublayer (PCS) and Physical Medium Attachment (PMA) over 4 WDM lane single mode fiber Physical Medium Dependent (PMD), with extended reach, as specified in 802.3 Clause 88";
+ }
+ enum not-yet-defined {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ grouping signal-ordering-type-g {
+ leaf signal-ordering-kind-name {
+ type string;
+ config false;
+ description "To be filled according to TR-541. Must be unique for referencing during configuration of the interface.";
+ }
+ leaf-list signal-list {
+ type string;
+ config false;
+ min-elements 2;
+ description "Desciption of the signals on the Media Dependent Interface (MDI), might be e.g. 'TX+' in case of e.g. 10BASE-T, might be e.g. '1,295.56 nm' in case of e.g. 100GBASE-LR4";
+ }
+ description "none";
+ }
+ grouping mau-type-g {
+ leaf mau-id {
+ type core-model:universal-id;
+ config false;
+ description "802.3 according to 30.5.1.1.1 aMAUID
+ Unique identifier of the Medium Attachment Unit (MAU) instance within the data about the device";
+ }
+ leaf mii-kind {
+ type mii-kind-type;
+ default not-yet-defined;
+ config false;
+ description "SFF8472_SFF8636
+ Kind of Medium Independent Interface (MII) provided by this Medium Attachment Unit (MAU) (e.g. SFP, moldered port)";
+ }
+ leaf mdi-kind {
+ type mdi-kind-type;
+ default not-yet-defined;
+ config false;
+ description "Kind of Medium Dependent Interface (MDI) provided by this Medium Attachment Unit (MAU)";
+ }
+ leaf required-medium-kind {
+ type medium-kind-type;
+ default not-yet-defined;
+ config false;
+ description "Kind of medium required for operating this Medium Attachment Unit (MAU), more like an information field";
+ }
+ leaf-list wavelength-min {
+ type int32;
+ units "pm";
+ config false;
+ max-elements 3;
+ description "SFF-8690
+ Minimum laser wavelength in pico meter, -1 = not applicable, 0 = not known, wavelengthMax = wavelength cannot be configured; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5";
+ }
+ leaf-list wavelength-max {
+ type int32;
+ units "pm";
+ config false;
+ max-elements 3;
+ description "Maximum laser wavelength in pico meter, -1 = not applicable, 0 = not known, wavelengthMin = wavelength cannot be configured; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5
+ SFF-8690";
+ }
+ leaf wavelength-grid-min {
+ type int32;
+ units "pm";
+ default -1;
+ config false;
+ description "Minimum grid spacing supported by the transceiver, -1 = not applicable, 0 = not known
+ SFF-8690";
+ }
+ leaf link-length-max {
+ type int32;
+ units "m";
+ default -1;
+ config false;
+ description "Indicates the maximum link length that is supported by the transceiver on the medium, which is specified in the standard referenced in TypeDefinitions::phyType::phyKind.";
+ }
+ leaf vendor-name {
+ type string;
+ default "NOT_YET_DEFINED";
+ config false;
+ description "Name of the vendor of the transceiver
+ Will be moved to CoreModel::CorePhysicalModel-Initial::EquipmentDetail::ObjectClasses::InvariantDetails::ManufacturerProperties::manufacturerName";
+ }
+ leaf vendor-oui {
+ type string;
+ default "NOT_YET_DEFINED";
+ config false;
+ description "Describes the IEEE Company identifier of the vendor of the transceiver (1st part of 802.3 ResourceTypeID)
+ 802.3 22.2.4.3.1 PHY Identifier; also referenced in 45.2.1.13 PMA/PMD package identifier
+ Will be moved to CoreModel::CorePhysicalModel-Initial::EquipmentDetail::ObjectClasses::InvariantDetails::ManufacturerProperties::manufacturerIdentifier";
+ }
+ leaf part-number {
+ type string;
+ default "NOT_YET_DEFINED";
+ config false;
+ description "802.3 22.2.4.3.1 PHY Identifier; also referenced in 45.2.1.13 PMA/PMD package identifier as six bit model number
+ Uniquely identifies the transceiver in the vendor's product lists
+ Will be moved to CoreModel::CorePhysicalModel-Initial::EquipmentDetail::ObjectClasses::InvariantDetails::EquipmentType::partTypeIdentifier";
+ }
+ leaf revision-number {
+ type string;
+ default "NOT_YET_DEFINED";
+ config false;
+ description "Identifies the revision number of the transceiver (3rd part of 802.3 ResourceTypeID)
+ 802.3 22.2.4.3.1 PHY Identifier; also referenced in 45.2.1.13 PMA/PMD package identifier as four-bit revision number
+ Will be moved to CoreModel::CorePhysicalModel-Initial::EquipmentDetail::ObjectClasses::InvariantDetails::EquipmentType::version";
+ }
+ leaf serial-number {
+ type string;
+ default "NOT_YET_DEFINED";
+ config false;
+ description "Vendor's serial number for the transceiver. 0 = not applicable
+ Will be moved to CoreModel::CorePhysicalModel-Initial::EquipmentDetail::ObjectClasses::InvariantDetails::EquipmentInstance::serialNumber";
+ }
+ leaf date-code {
+ type string;
+ default "NOT_YET_DEFINED";
+ config false;
+ description "Vendor's date code for the transceiver
+ Will be moved to CoreModel::CorePhysicalModel-Initial::EquipmentDetail::ObjectClasses::InvariantDetails::EquipmentInstance::manufactureDate";
+ }
+ leaf-list pmd-list {
+ type pmd-name-type;
+ config false;
+ min-elements 1;
+ description "List of Physical Medium Dependent (PMD) that can be operated
+ *** In case ordering of the signals depends on the PMD, pmdList has to be put into the datatype for the signal ordering ***";
+ }
+ list signal-ordering-list {
+ key 'signal-ordering-kind-name';
+ config false;
+ min-elements 1;
+ uses signal-ordering-type-g;
+ description "Describes the different (e.g. MDI, MDI-X) ways of ordering the signals on the physical medium";
+ }
+ leaf auto-signal-ordering-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "1 = there is a mechanism for automatically crossing over tx and rx implemented";
+ }
+ leaf short-reach-mode-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "1 = Indicates that Short Reach Mode for 10GBASE-T according to 802.3 45.2.1.64 is available";
+ }
+ leaf eee-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "1 = Indicates that Energy-Efficient Ethernet (EEE) is available at the device.";
+ }
+ leaf unidirectional-operation-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "1 = Medium Attachment Unit (MAU) able to transmit from Media Independent Interface (MII) regardless of whether the MAU has determined that a valid link has been established, 0 = MAU able to transmit from MII only when the MAU has determined that a valid link has been established
+ 802.3";
+ }
+ leaf-list supported-alarms {
+ type string;
+ config false;
+ min-elements 6;
+ description "MW IM
+ Available alarms to be listed. Mandatory:'txFault', 'rxLos', 'tempHigh', 'tempLow', 'rxLevelHigh', 'rxLevelLow'. Optional:'vccHigh', 'vccLow', 'txBiasHigh', 'txBiasLow', 'txPowerHigh', 'txPowerLow', 'laserTempHigh', 'laserTempLow', 'tecCurrentHigh', 'tecCurrentLow'. Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ description "none";
+ }
+ grouping wire-interface-problem-severity-type-g {
+ leaf problem-kind-name {
+ type string;
+ description "Name of the alarm according to WireInterface::WireInterfaceCapability::supportedAlarms";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default warning;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ grouping wire-interface-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description "Name of the alarm according to WireInterface::WireInterfaceCapability::supportedAlarms";
+ }
+ uses mw-current-problem-g;
+ description "none";
+ }
+ grouping wire-interface-performance-type-g {
+ leaf es {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "802.3 30.8.1.1.13 aLineESs
+ Number of errored seconds";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default -1;
+ config false;
+ description "802.3 30.8.1.1.12 aLineSESs
+ Number of severely errored seconds";
+ }
+ leaf symbol-error-during-carrier {
+ type int32;
+ default -1;
+ config false;
+ description "802.3 according to 30.3.2.1.5 aSymbolErrorDuringCarrier
+ Number of times when valid carrier was present and an invalid data symbol occured.";
+ }
+ leaf low-power-idle-transmitter-ms {
+ type int32;
+ units "ms";
+ default -1;
+ config false;
+ description "802.3 similar to 30.3.2.1.8 aTransmitLPIMicroseconds
+ Number of milliseconds (original counter expresses microseconds), during which the transmitter was in power save mode";
+ }
+ leaf low-power-idle-receiver-ms {
+ type int32;
+ units "ms";
+ default -1;
+ config false;
+ description "802.3 similar to 30.3.2.1.9 aReceiveLPIMicroseconds
+ Number of milliseconds (original counter expresses microseconds), during which the receiver was in power save mode";
+ }
+ description "none";
+ }
+ grouping wire-interface-current-performance-type-g {
+ container performance-data {
+ config false;
+ uses wire-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-current-data-g;
+ description "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+ grouping wire-interface-historical-performance-type-g {
+ container performance-data {
+ config false;
+ uses wire-interface-performance-type-g;
+ description "none";
+ }
+ uses g:otn-history-data-g;
+ description "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+
+ /***********************
+ * package object-classes
+ **********************/
+ /***********************
+ * package air-interface
+ **********************/
+ list mw-air-interface-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container air-interface-capability {
+ config false;
+ uses air-interface-capability-g;
+ description "none";
+ }
+ container air-interface-configuration {
+ uses air-interface-configuration-g;
+ description "none";
+ }
+ container air-interface-status {
+ config false;
+ uses air-interface-status-g;
+ description "none";
+ }
+ container air-interface-current-problems {
+ config false;
+ uses air-interface-current-problems-g;
+ description "none";
+ }
+ container air-interface-current-performance {
+ config false;
+ uses air-interface-current-performance-g;
+ description "none";
+ }
+ container air-interface-historical-performances {
+ config false;
+ uses air-interface-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-capability-g {
+ leaf type-of-equipment {
+ type string;
+ default "Type of equipment not yet defined.";
+ config false;
+ description "This parameter indicates the equipment type. Instead of uploading the complete set of capabilities, capabilities of the same equipment type could be reused. Should be unique for a combination of modem, radio and their respective firmware.";
+ }
+ leaf tx-frequency-min {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the minimum transmit frequency tunable at the air interface.";
+ }
+ leaf tx-frequency-max {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the maximum transmit frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-min {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the minimum receive frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-max {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Value of the maximum receive frequency tunable at the air interface.";
+ }
+ leaf adaptive-modulation-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the device is capable of adaptive modulation, this field shall contain a 'true'.";
+ }
+ leaf mimo-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the device is capable of MIMO, this field shall contain a 'true'.";
+ }
+ leaf mimo-channels {
+ type int8;
+ units "channels";
+ default 1;
+ config false;
+ description "Maximum number (n) of spatial multiplexing streams that can be conveyed by an n x n MIMO configuration.";
+ }
+ leaf alic-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of Adjacent Link Interference Cancelation (canceling of interference cause by transmitters located at the same site), this field shall contain a 'true'.";
+ }
+ leaf atpc-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case the microwave radio is capable of ATPC, this field shall contain a 'true'.";
+ }
+ leaf atpc-range {
+ type int8;
+ units "dB";
+ default 0;
+ config false;
+ description "Extent of the ATPC range. This value represents a device specific maximum value. The actual range of the ATPC at a specific link might be limited by the difference between configured transmit power (AirInterface::AirInterfaceConfiguration::txPower) and minimum transmit power of the device (TypeDefinitions::TransmissionModeType::txPowerMin).";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be marked 'true', if payload encryption is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 2;
+ description "List of supported kinds of looping back of header information to the remote site.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ units "s";
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description "Available time periods for maintenance configurations (e.g. the loop back of microwave header information) 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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 7;
+ description "Available alarms to be listed. Mandatory:'signalIsLost','rslIsExceeded','signalIDMismatching','temperatureIsExceeded','modemIsFaulty','radioIsFaulty' and 'modulationIsDownShifted'. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'signalIsLost','rslIsExceeded','temperatureIsExceeded','modemIsFaulty','radioIsFaulty' and 'modulationIsDownShifted'. Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ list supported-channel-plan-list {
+ key 'supported-channel-plan';
+ config false;
+ min-elements 1;
+ uses channel-plan-type-g;
+ description "List of channel spacing that are supported by the device.";
+ }
+ description "Describes the 'analog' capabilities of modem and transmitter of the microwave device. Value ranges of attributes are not independently (e.g. min. and max. transmit power depends on modulation). Legal combinations of values are expressed in transmissionModeTypes.";
+ }
+ grouping air-interface-configuration-g {
+ leaf air-interface-name {
+ type string;
+ default "Air interface ID not yet defined.";
+ description "Operator specific microwave link ID (often used for coding area, type of element and sequential number).";
+ }
+ leaf remote-air-interface-name {
+ type string;
+ default "Air interface ID at the remote site not yet defined.";
+ description "Name of the air interface, which belongs to the same link, at the remote site.";
+ }
+ leaf expected-signal-id {
+ type int16;
+ description "If set on '0', the receiver ignores the signal ID of the received signal. If set on any other value, the receiver exclusively synchronizes on signals with the same signal ID.";
+ }
+ leaf transmitted-signal-id {
+ type int16;
+ description "Transmitted radio signal ID for synchronizing the receiver.";
+ }
+ leaf radio-signal-id {
+ type string;
+ default "Radio signal ID not yet defined.";
+ status deprecated;
+ description "The radioSignalId is transmitted on the air interface so the remote site of the link synchronizes on the correct transmitter. The local radio MUST NOT synchronize on a radio signal with a different radioSignalId. The link ID is neither an ID necessary to span the model nor an ID referencing external data. It is just some sort of name of the link transmitted so the correct remote site can be identified in an interference situation. The value zero might be used to make the microwave to disable the link ID check.";
+ }
+ leaf tx-frequency {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Center frequency of the transmit channel. The values to be configured have to exactly match the values listed in the international agreement referenced in channelPlanID. In case of automated selection of the transmit frequency this field shall describe the lowest center frequency selectable.";
+ }
+ leaf rx-frequency {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Center frequency of the receive channel.";
+ }
+ leaf transmission-mode-min {
+ type core-model:universal-id;
+ description "Minimum transmission mode to be configured (in case adaptive modulation is not used, this value represents also the fixed transmission mode).";
+ }
+ leaf transmission-mode-max {
+ type core-model:universal-id;
+ description "Maximum transmission mode to be configured.";
+ }
+ leaf tx-channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ status deprecated;
+ description "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf rx-channel-bandwidth {
+ type int32;
+ units "kHz";
+ default -1;
+ description "Bandwidth of the receive channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf polarization {
+ type polarization-type;
+ default not-specified;
+ description "Allows documenting the polarization of the air interface.";
+ }
+ leaf power-is-on {
+ type boolean;
+ default true;
+ description "Power ON. Activation of the entire radio in a split mount configuration shall be expressed as a 'true'.";
+ }
+ leaf transmitter-is-on {
+ type boolean;
+ default false;
+ description "Activation of the transmitter inside the radio shall be expressed as a 'true'.";
+ }
+ leaf receiver-is-on {
+ type boolean;
+ default true;
+ description "Maintenance Feature. Activation of the receiver inside the radio shall be expressed as a 'true'. Attribute shall also be used for RX main and RX diversity squelches in case of diversity configurations.
+ ";
+ }
+ leaf tx-power {
+ type int8;
+ units "dBm";
+ default 99;
+ description "Transmit power to be configured on the microwave link. Signed Byte is required. The actually operated transmit power might be lower depending on adaptive modulation and ATPC.";
+ }
+ leaf adaptive-modulation-is-on {
+ type boolean;
+ default false;
+ description "Adaptive Modulation. Activation of adaptive modulation shall be expressed as a 'true'.";
+ }
+ leaf modulation-min {
+ type int16;
+ units "symbols";
+ default -1;
+ status deprecated;
+ description "Minimum modulation to be configured (in case adaptive modulation is not used, this value represents also the fixed modulation). The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf modulation-max {
+ type int16;
+ units "symbols";
+ default -1;
+ status deprecated;
+ description "Maximum modulation to be configured. The value of this field is only relevant, if Adaptive Modulation has been activated. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf xpic-is-on {
+ type boolean;
+ default false;
+ description "Activation of Cross Polarization Interference Cancelation shall be expressed as a 'true'. In case XPIC is not available for the current combination of channel bandwidth and modulation or the hardware in general, this parameter shall always be set to 'false'.";
+ }
+ leaf mimo-is-on {
+ type boolean;
+ default false;
+ description "Activation of Multiple Input Multiple Output (MIMO) shall be expressed as a 'true'.";
+ }
+ leaf alic-is-on {
+ type boolean;
+ default false;
+ description "Activation of Adjacent Link Interference Cancelation (ALIC) shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-on {
+ type boolean;
+ default false;
+ description "ATPC. Activation of Automated Transmit Power Control shall be expressed as a 'true'.";
+ }
+ leaf atpc-thresh-upper {
+ type int16;
+ units "dBm";
+ default 99;
+ description "If the receive level is higher than the upper threshold value, the transmitter is notified to decrease transmit power.";
+ }
+ leaf atpc-thresh-lower {
+ type int16;
+ units "dBm";
+ default 99;
+ description "If the receive level is lower than the lower threshold value, the transmitter is notified to increase transmit power.";
+ }
+ leaf atpc-tx-power-min {
+ type int8;
+ units "dBm";
+ default -99;
+ description "Transmit power, which is not to be undercut, while operating ATPC.";
+ }
+ leaf auto-freq-select-is-on {
+ type boolean;
+ default false;
+ description "Activation of automatically selecting the transmit frequency in unlicensed bands shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-range {
+ type int8;
+ units "channels";
+ default -1;
+ description "Number of transmit channels (starting at the center frequency defined in txFrequency and with channel bandwidth according to txChannelBandwidth) that define the range within the transmit frequency can automatically been chosen. ";
+ }
+ leaf modulation-is-on {
+ type boolean;
+ default true;
+ description "Maintenance Feature. De-activation of the modulation of the carrier signal for fault management shall be expressed as a 'false'.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default false;
+ description "Activates encryption of the payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description "Key for transforming plaintext into ciphertext data.";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list threshold-cross-alarm-list {
+ key 'g826-value-kind granularity-period';
+ max-elements 6;
+ uses threshold-cross-alarm-type-g;
+ description "List of threshold cross alarms to be configured.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default none;
+ description "Maintenance Feature. The currently configured type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default -1;
+ description "Time of existence of any maintenance configuration (e.g. the loop back of microwave header information). Valid values are defined in AirInterface::AirInterfaceCapability::maintenanceTimerRange.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 6;
+ uses air-interface-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "Configuration of the radio link.";
+ }
+ grouping air-interface-status-g {
+ leaf tx-frequency-cur {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Center frequency of the currently operated transmit channel.";
+ }
+ leaf rx-frequency-cur {
+ type int32;
+ units "kHz";
+ default -1;
+ config false;
+ description "Center frequency of the currently operated receive channel.";
+ }
+ leaf tx-level-cur {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Current transmit level.";
+ }
+ leaf rx-level-cur {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Current receive level.";
+ }
+ leaf transmission-mode-cur {
+ type leafref {
+ path '/mw-air-interface-pac/air-interface-capability/supported-channel-plan-list/transmission-mode-list/transmission-mode-id';
+ }
+ config false;
+ description "Currently operated transmission mode according to definitions in Capabilities.";
+ }
+ leaf modulation-cur {
+ type int16;
+ units "symbols";
+ default -1;
+ config false;
+ status deprecated;
+ description "Currently operated modulation on transmit path. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256'). Allowed values are defined in TypeDefinitions::transmissionModeType::modulationScheme.";
+ }
+ leaf code-rate-cur {
+ type int8;
+ units "%";
+ default -1;
+ config false;
+ status deprecated;
+ description "Code rate of the currently operated coding scheme (Net bit rate ? Gross bit rate ? code rate).";
+ }
+ leaf received-signal-id {
+ type int16;
+ default -1;
+ config false;
+ description "ID of the signal, which the receiver is currently synchronized on.";
+ }
+ leaf snir-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured signal to (noise+interference) ratio.";
+ }
+ leaf xpd-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured cross polarization discrimination.";
+ }
+ leaf rf-temp-cur {
+ type int8;
+ units "Celsius";
+ default -99;
+ config false;
+ description "Current temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Air Interface entered its current operational status. ";
+ }
+ leaf radio-power-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If the radio unit has power and is switched on, this shall be expressed as a 'true'.";
+ }
+ leaf link-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If connection is established to the remote site with the same linkID, this shall be expressed as a 'true'.";
+ }
+ leaf xpic-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If XPIC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf mimo-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If MIMO is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf alic-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If Adjacent Link Interference Cancelation (ALIC) is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If ATPC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "If automated frequency selection is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default none;
+ config false;
+ description "The currently active (not just configured) type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf local-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description "The value of the localEndPointId is a vendor specific identifier of the air interface, used by the node to discover a microwave radio link.";
+ }
+ leaf remote-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description "The value of the remoteEndPointId is a vendor specific identifier or the airinterface at the remote side, used to by the node to discover a microwave radio link.";
+ }
+ description "Measurements of current values on the air interface and operational status of the device.";
+ }
+ grouping air-interface-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses air-interface-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses air-interface-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the air interface at a particular moment.";
+ }
+ grouping air-interface-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses air-interface-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+ }
+ list co-channel-group {
+ key 'co-channel-group-id';
+ uses co-channel-group-g;
+ description "none";
+ }
+ grouping co-channel-group-g {
+ leaf co-channel-group-id {
+ type core-model:universal-id;
+ description "none";
+ }
+ leaf-list air-interface-list {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ description "List of air interfaces, which are part of the co-channel (XPIC, MIMO, ALIC) group.";
+ }
+ leaf sort-of-co-channel-group {
+ type string;
+ default "Kind of co-channel group not specified.";
+ description "Type of group of air interfaces with the same transmit and receive frequency. The values shall be chosen from the following _list:'XPIC', 'MIMO', 'ALIC';";
+ }
+ leaf-list logical-termination-point {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ status deprecated;
+ description "none";
+ }
+ description "Required for configuring XPIC, MIMO and ALIC.";
+ }
+
+ /***********************
+ * package air-interface-hsb
+ **********************/
+ list mw-air-interface-hsb-end-point-pac {
+ key 'endpoint';
+ leaf role {
+ type role-type;
+ default working;
+ description "none";
+ }
+ leaf endpoint {
+ type leafref {
+ path '/core-model:forwarding-construct/core-model:fc-port/core-model:uuid';
+ }
+ description "none";
+ }
+ description "The EndPoint (EP) object class models the access to the FC function. Each EndPoint instance has a role (e.g., working, protection, protected, hub, spoke, leaf, root, etc.) with respect to the FC function. The association of the FC to LTPs is made via EndPoints (essentially the ports of the FC) where each EndPoint (EP) of the FC has a role in the context of the FC. The traffic forwarding between the associated End PointsEPs of the FC depends upon the type of FC and may be associated with FCSwitch object instances. In cases where there is protection conveys the protecting role of the access to the FC. The EP replaces the Protection Unit of a traditional protection model. It represents a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.";
+ }
+ list mw-air-interface-hsb-fc-switch-pac {
+ key 'fcswitch';
+ leaf prot-type {
+ type protection-type;
+ default hsb;
+ description "Indicates the protection scheme that is used for the ProtectionGroup.";
+ }
+ leaf air-interface-hsb-configuration-is-faulty-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity of an airInterfaceHsbConfigurationIsFaulty alarm shall be chosen from an enumeration.";
+ }
+ leaf air-interface-hsb-is-partly-down-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity for one link out of the HSB configuration being down shall be chosen from an enumeration.";
+ }
+ leaf air-interface-hsb-is-down-severity {
+ type severity-type;
+ default warning;
+ description "The level of severity of the total HSB configuration being down shall be chosen from an enumeration.";
+ }
+ leaf fcswitch {
+ type leafref {
+ path '/core-model:forwarding-construct/core-model:fc-switch/core-model:uuid';
+ }
+ description "none";
+ }
+ description "Represents and defines a protection switch structure encapsulated in the forwarding construct. Essentially performs the function of Protection Group. Associates to 2 or more Endpoints each playing the role of a Protection Unit. One or more protection EndPoints (standby/backup) provide protection for one or more working (i.e. regular/main/preferred) Endpoints where either protection or working can feed one or more protected Endpoint. May be used in revertive or non-revertive (symmetric) mode. When in revertive mode may define waitToRestore time. May be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as 1+1 ane 1:1). May be lockout (prevented from switching), force switched or manual switched. Will indicate switch state and change of state.";
+ }
+
+ /***********************
+ * package air-interface-diversity
+ **********************/
+ list mw-air-interface-diversity-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container air-interface-diversity-capability {
+ config false;
+ uses air-interface-diversity-capability-g;
+ description "none";
+ }
+ container air-interface-diversity-configuration {
+ uses air-interface-diversity-configuration-g;
+ description "none";
+ }
+ container air-interface-diversity-status {
+ config false;
+ uses air-interface-diversity-status-g;
+ description "none";
+ }
+ container air-interface-diversity-current-problems {
+ config false;
+ uses air-interface-diversity-current-problems-g;
+ description "none";
+ }
+ container air-interface-diversity-current-performance {
+ config false;
+ uses air-interface-diversity-current-performance-g;
+ description "none";
+ }
+ container air-interface-diversity-historical-performances {
+ config false;
+ uses air-interface-diversity-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-capability-g {
+ list available-kinds-of-diversity {
+ key 'diversity-name';
+ config false;
+ uses diversity-type-g;
+ description "Available types of diversity to be listed.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description "Available alarms to be listed. Mandatory:'airInterfaceDiversityConfigurationIsPartlyDown' (at least one air interface is down, but not all of them) and 'airInterfaceDiversityConfigurationIsDown' (all air interfaces are down). Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'airInterfaceDiversityConfigurationIsPartlyDown' (at least one air interface is down, but not all of them) and 'airInterfaceDiversityConfigurationIsDown' (all air interfaces are down). Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ description "Describes the capabilities in implementing different types of air interface diversity.";
+ }
+ grouping air-interface-diversity-configuration-g {
+ container air-interface-diversity {
+ uses diversity-type-g;
+ description "Type of air interface diversity configured at the link.";
+ }
+ leaf-list air-interface-ltp-list {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ min-elements 2;
+ description "_multiplicity:2-ThisAirInterfaceDiversity::AirInterfaceDiversityConfiguration::airInterfaceDiversity::diversityType::numberOfAirInterfacesMax";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list threshold-cross-alarm-list {
+ key 'g826-value-kind granularity-period';
+ max-elements 6;
+ uses threshold-cross-alarm-type-g;
+ description "List of threshold cross alarms to be configured.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 3;
+ uses air-interface-diversity-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-status-g {
+ leaf snir-cur {
+ type int8;
+ units "dB";
+ default -99;
+ config false;
+ description "Currently measured signal to (noise+interference) ratio of the combined signals.";
+ }
+ leaf air-interface-diversity-status {
+ type air-interface-diversity-status-type;
+ default group-down;
+ config false;
+ description "Status of the air interface bundle. ";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Diversity Group entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses air-interface-diversity-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping air-interface-diversity-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses air-interface-diversity-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the air interface diversity configuration at a particular moment.";
+ }
+ grouping air-interface-diversity-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses air-interface-diversity-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the air interface diversity configuration for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package pure-ethernet-structure
+ **********************/
+ list mw-pure-ethernet-structure-pac {
+ if-feature pure-ethernet;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container pure-ethernet-structure-capability {
+ config false;
+ uses pure-ethernet-structure-capability-g;
+ description "none";
+ }
+ container pure-ethernet-structure-configuration {
+ uses pure-ethernet-structure-configuration-g;
+ description "none";
+ }
+ container pure-ethernet-structure-status {
+ config false;
+ uses pure-ethernet-structure-status-g;
+ description "none";
+ }
+ container pure-ethernet-structure-current-problems {
+ config false;
+ uses pure-ethernet-structure-current-problems-g;
+ description "none";
+ }
+ container pure-ethernet-structure-current-performance {
+ config false;
+ uses pure-ethernet-structure-current-performance-g;
+ description "none";
+ }
+ container pure-ethernet-structure-historical-performances {
+ config false;
+ uses pure-ethernet-structure-historical-performances-g;
+ description "none";
+ }
+ description "The pureEthernetStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting Ethernet traffic only.";
+ }
+ grouping pure-ethernet-structure-capability-g {
+ leaf structure-id {
+ type core-model:universal-id;
+ config false;
+ description "Identifies the Structure for bundling and container.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the device.";
+ }
+ description "Describes the logical structuring of the physical capacity provided by a pure Ethernet microwave device. Segmentation is not available. No fixed segment size. No TDM transport.";
+ }
+ grouping pure-ethernet-structure-configuration-g {
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ uses structure-problem-severity-type-g;
+ description "Severity of the type of problem to be configured.";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-status-g {
+ container segment-status-list {
+ config false;
+ uses segment-status-type-g;
+ description "Status of the Ethernet transport segment. Always just one segment.";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the last update of the status information. ";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses structure-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping pure-ethernet-structure-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the structure of an pure Ethernet microwave at a particular moment.";
+ }
+ grouping pure-ethernet-structure-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses structure-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the structure of an pure Ethernet microwave for a pre-defined measurement interval.";
+ }
+ feature pure-ethernet {
+ description "Feature 'pure-ethernet' is mandatory for device types transporting pure Ethernet.";
+ }
+
+ /***********************
+ * package hybrid-mw-structure
+ **********************/
+ list mw-hybrid-mw-structure-pac {
+ if-feature hybrid-microwave;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container hybrid-mw-structure-capability {
+ config false;
+ uses hybrid-mw-structure-capability-g;
+ description "none";
+ }
+ container hybrid-mw-structure-configuration {
+ uses hybrid-mw-structure-configuration-g;
+ description "none";
+ }
+ container hybrid-mw-structure-status {
+ config false;
+ uses hybrid-mw-structure-status-g;
+ description "none";
+ }
+ container hybrid-mw-structure-current-problems {
+ config false;
+ uses hybrid-mw-structure-current-problems-g;
+ description "none";
+ }
+ container hybrid-mw-structure-current-performance {
+ config false;
+ uses hybrid-mw-structure-current-performance-g;
+ description "none";
+ }
+ container hybrid-mw-structure-historical-performances {
+ config false;
+ uses hybrid-mw-structure-historical-performances-g;
+ description "none";
+ }
+ description "The HybridMwStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM and Ethernet traffic.";
+ }
+ grouping hybrid-mw-structure-capability-g {
+ leaf structure-id {
+ type core-model:universal-id;
+ config false;
+ description "Identifies the Structure for bundling and container.";
+ }
+ list supported-tdm-structure-types-list {
+ key 'tdm-structure-name';
+ config false;
+ min-elements 1;
+ uses tdm-structure-type-g;
+ description "Lists the TDM frame types that are supported.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:non. Names are to be separated by commas. Further alarms might be added by the device.";
+ }
+ description "Describes the logical structuring of the physical capacity provided by a hybrid microwave device (TDM + Ethernet). Segmentation is available. TDM transport is available.";
+ }
+ grouping hybrid-mw-structure-configuration-g {
+ container structure-kind {
+ uses tdm-structure-type-g;
+ description "TDM frame to be applied.";
+ }
+ container structure-type {
+ uses tdm-structure-type-g;
+ status deprecated;
+ description "TDM frame to be applied.";
+ }
+ leaf number-of-tdm-segments-to-be-reserved {
+ type int16;
+ default -1;
+ description "Allows to configure the number of segments reserved for TDM frames of the type specified in HybridMwStructure::HybridMwStructureConfiguration::structureType";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ uses structure-problem-severity-type-g;
+ description "Severity of the type of problem to be configured.";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-status-g {
+ list segment-status-list {
+ key 'segment-status-type-id';
+ config false;
+ uses segment-status-type-g;
+ description "Status of each segment (all TDM and one Ethernet). Multiplicity = HybridMwStructure::StructureConfiguration::tdmReservedNumberOfSegments + 1";
+ }
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the last update of the status information. ";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses structure-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping hybrid-mw-structure-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the structure of a hybrid microwave at a particular moment.";
+ }
+ grouping hybrid-mw-structure-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses structure-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the structure of a hybrid microwave for a pre-defined measurement interval.";
+ }
+ feature hybrid-microwave {
+ description "Feature 'hybrid-microwave' is mandatory for device types transporting Ethernet + TDM.";
+ }
+
+ /***********************
+ * package ethernet-container
+ **********************/
+ list mw-ethernet-container-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container ethernet-container-capability {
+ config false;
+ uses ethernet-container-capability-g;
+ description "none";
+ }
+ container ethernet-container-configuration {
+ uses ethernet-container-configuration-g;
+ description "none";
+ }
+ container ethernet-container-status {
+ config false;
+ uses ethernet-container-status-g;
+ description "none";
+ }
+ container ethernet-container-current-problems {
+ config false;
+ uses ethernet-container-current-problems-g;
+ description "none";
+ }
+ container ethernet-container-current-performance {
+ config false;
+ uses ethernet-container-current-performance-g;
+ description "none";
+ }
+ container ethernet-container-historical-performances {
+ config false;
+ uses ethernet-container-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping ethernet-container-capability-g {
+ leaf bundling-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "This attribute has to be set on 'true', if the device allows combining resources from several air interfaces for transporting this Ethernet container.";
+ }
+ leaf packet-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "In case packet compression can be activated, but not configured to a certain type, packetCompressionAvail shall be set on 'true', but none of the compression level specific booleans.";
+ }
+ leaf layer2-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 2 available at the device.";
+ }
+ leaf vlan-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on VLAN layer available at the device.";
+ }
+ leaf q-in-q-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer of a second VLAN available at the device.";
+ }
+ leaf mpls-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on mpls layer available at the device.";
+ }
+ leaf ipv4-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 3 for IPv4 available at the device.";
+ }
+ leaf ipv6-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 3 for IPv6 available at the device.";
+ }
+ leaf layer4-compression-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Packet compression on layer 4 (TCP and UDP header) available at the device.";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Shall be marked 'true', if Ethernet payload encryption is available.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the device.";
+ }
+ description "none";
+ }
+ grouping ethernet-container-configuration-g {
+ leaf container-id {
+ type string;
+ default "No Ethernet Flow associated yet.";
+ description "ContainterID in Netconf must be the same as EthernetPortID in OpenFlow so a connection can be made between the two items, which separately exist in the controller.";
+ }
+ list segments-id-list {
+ key 'structure-id-ref segment-id-ref';
+ min-elements 1;
+ uses segment-id-type-g;
+ description "Lists the segments used for transporting this Ethernet container. In case EthernetContainer::ContainerCapability::bundlingIsAvail==0, all TypeDefinitions::segmentIdType::structureId must be identical in the list.";
+ }
+ leaf packet-compression-is-on {
+ type boolean;
+ default false;
+ description "In case packet compression is activated, but no type is activated, it is assumed that the device chooses the optimum.";
+ }
+ leaf layer2-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 2 configured at the device.";
+ }
+ leaf vlan-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on VLAN layer configured at the device.";
+ }
+ leaf q-in-q-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer of a second VLAN configured at the device.";
+ }
+ leaf mpls-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on MPLS layer configured at the device.";
+ }
+ leaf ipv4-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 3 for IPv4 configured at the device.";
+ }
+ leaf ipv6-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 3 for IPv6 configured at the device.";
+ }
+ leaf layer4-compression-is-on {
+ type boolean;
+ default false;
+ description "Packet compression on layer 4 (TCP and UDP header) configured at the device.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default false;
+ description "Activates encryption of the Ethernet payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description "Key for transforming plaintext into cipher text data.";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 2;
+ uses container-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping ethernet-container-status-g {
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Container entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping ethernet-container-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses container-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping ethernet-container-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the Ethernet container at a particular moment.";
+ }
+ grouping ethernet-container-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses container-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the Ethernet container for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package tdm-container
+ **********************/
+ list mw-tdm-container-pac {
+ if-feature hybrid-microwave;
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container tdm-container-capability {
+ config false;
+ uses tdm-container-capability-g;
+ description "none";
+ }
+ container tdm-container-configuration {
+ uses tdm-container-configuration-g;
+ description "none";
+ }
+ container tdm-container-status {
+ config false;
+ uses tdm-container-status-g;
+ description "none";
+ }
+ container tdm-container-current-problems {
+ config false;
+ uses tdm-container-current-problems-g;
+ description "none";
+ }
+ container tdm-container-current-performance {
+ config false;
+ uses tdm-container-current-performance-g;
+ description "none";
+ }
+ container tdm-container-historical-performances {
+ config false;
+ uses tdm-container-historical-performances-g;
+ description "none";
+ }
+ description "The TdmContainer_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM traffic.";
+ }
+ grouping tdm-container-capability-g {
+ list supported-tdm-container-types-list {
+ key 'tdm-container-name';
+ config false;
+ min-elements 1;
+ uses tdm-container-type-g;
+ description "Lists the TDM containers that are supported.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+ }
+ leaf supported-alarms {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ status deprecated;
+ description "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the device.";
+ }
+ description "Bundling is not available.";
+ }
+ grouping tdm-container-configuration-g {
+ leaf container-id {
+ type string;
+ default "No TDM Flow associated yet.";
+ description "ContainterID in Netconf must be the same as TDM Flow ID so a connection can be made between the two items, which separately exist in the controller.";
+ }
+ container container-type {
+ uses tdm-container-type-g;
+ description "Type of TDM container.";
+ }
+ container segment-id {
+ uses segment-id-type-g;
+ description "Multiplicity = 1; One segment per TDM container; Type of segment must match type of container;";
+ }
+ leaf performance-monitoring-collection-is-on {
+ type boolean;
+ default false;
+ description "Enables measurement, collection, storage and access to performance data.";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 2;
+ uses container-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping tdm-container-status-g {
+ leaf last-status-change {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time the Container entered its current operational status. ";
+ }
+ description "none";
+ }
+ grouping tdm-container-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses container-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping tdm-container-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the TDM container at a particular moment.";
+ }
+ grouping tdm-container-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses container-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the TDM container for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package wire-interface
+ **********************/
+ list wire-interface-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/_ltpRefList/_lpList/uuid";
+ }
+ container wirebased-interface-capability {
+ config false;
+ uses wire-interface-capability-g;
+ description "none";
+ }
+ container wirebased-interface-configuration {
+ uses wire-interface-configuration-g;
+ description "none";
+ }
+ container wirebased-interface-status {
+ config false;
+ uses wire-interface-status-g;
+ description "none";
+ }
+ container wirebased-interface-current-problems {
+ config false;
+ uses wire-interface-current-problems-g;
+ description "none";
+ }
+ container wirebased-interface-current-performance {
+ config false;
+ uses wire-interface-current-performance-g;
+ description "none";
+ }
+ container wirebased-interface-historical-performances {
+ config false;
+ uses wire-interface-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping wire-interface-capability-g {
+ list available-mau-list {
+ key 'mau-id';
+ config false;
+ uses mau-type-g;
+ description "List of Medium Attachment Units (MAUs) that are available for being selected. If rate and service configuration (e.g. SFF-8079) are not supported, the MAU determined by hardware shall be described.
+ ";
+ }
+ leaf auto-pmd-negotiation-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "Parameter
+ 1 = Indicates that device is supporting Auto-negotiation";
+ }
+ leaf auto-pmd-negotiation-max-is-avail {
+ type boolean;
+ default false;
+ config false;
+ description "1 = Indicates that device is supporting definition of the maximum speed/Medium Attached Unit (MAU) automatically chosen when (autoNegotiationIsOn=1)";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 5;
+ description "List of supported kinds of looping back of header information to the remote site.
+ 802.3 45.2.1.12.1 PMA remote loopback ability";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ units "Byte";
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description "MW IM
+ Available time periods for maintenance configurations (e.g. the loop back) 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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 6;
+ description "Available alarms to be listed. Mandatory:'txFault', 'rxLos', 'tempHigh', 'tempLow', 'rxLevelHigh', 'rxLevelLow'. Optional:'vccHigh', 'vccLow', 'txBiasHigh', 'txBiasLow', 'txPowerHigh', 'txPowerLow', 'laserTempHigh', 'laserTempLow', 'tecCurrentHigh', 'tecCurrentLow'. Further alarms might be added by the device. Names are to be separated by commas.";
+ }
+ description "none";
+ }
+ grouping wire-interface-configuration-g {
+ leaf wire-interface-name {
+ type string;
+ default "Not yet defined.";
+ description "Text field for the wire interface being named by the operator. Ideally used for entering unique numbers or names for unambiguously identifying the connection within the network
+ Parameter";
+ }
+ leaf remote-wire-interface-name {
+ type string;
+ default "Not yet defined.";
+ description "Learning from MW IM
+ Text field for defining the wire interface this one is connected with. Ideally used for entering unique numbers or names for unambiguously identifying the connection within the network";
+ }
+ leaf interface-is-on {
+ type boolean;
+ default true;
+ description "1 = Activation of the interface (it gets powered and can be managed even if the transceiver is not yet transmitting or receiving). In case there is no Medium Attachment Unit (MAU) (e.g. no SFP in the cage) SETting (interfaceIsOn=1) must be ignored and GETing must return (interfaceIsOn=0)
+ 802.3 according 30.3.2.2.1 acPhyAdminControl";
+ }
+ leaf-list transceiver-is-on-list {
+ type boolean;
+ min-elements 1;
+ max-elements 11;
+ description "802.3 22.?.? and additionally 802.3 45.2.1.8 PMD transmit disable register (Register 1.9)
+ 1 = Activation of the transmitter and receiver (e.g. laser) of the PHY; transceiverIsOnList[0]:total interface; transceiverIsOnList[1..10] different lanes of a multilane Medium Attachment Unit (MAU)";
+ }
+ leaf auto-pmd-negotiation-is-on {
+ type boolean;
+ default false;
+ description "Parameter
+ 1 = Auto-negotiation is switched on";
+ }
+ leaf fixed-pmd {
+ type pmd-name-type;
+ default not-yet-defined;
+ description "If (autoPmdNegotiationIsOn=0) configuration of the concrete kind of Physical Medium Dependent (PMD). If (autoNegotiationIsOn=1) value of this field becomes irrelevant";
+ }
+ leaf auto-pmd-negotiation-max {
+ type pmd-name-type;
+ default not-yet-defined;
+ description "Parameter
+ If (autoNegotiationIsOn=1) AND (autoNegotiationMauMaxIsAvail=1) configuration of the maximum speed/Physical Medium Dependent (PMD), which is automatically chosen by Auto-negotiation";
+ }
+ leaf auto-signal-ordering-is-on {
+ type boolean;
+ default false;
+ description "1 = e.g. auto-MDI-X is switched on";
+ }
+ leaf fixed-signal-ordering {
+ type core-model:universal-id;
+ description "If (autoSignalOrderingIsOn=0) configuration of the concrete kind of signal ordering on the media (e.g. MDI, or MDI-X). If (autoSignalOrderingIsOn=1) value of this field becomes irrelevant";
+ }
+ leaf short-reach-mode-is-on {
+ type boolean;
+ default false;
+ description "Activation of the Short Reach Mode for 10GBASE-T according to 802.3 45.2.1.64";
+ }
+ leaf unidirectional-operation-is-on {
+ type boolean;
+ default false;
+ description "If (autoNegotiationIsOn=1) OR manualDuplexSelection=0 (=half duplex), this bit is ignored. When autoNegotiationIsOn=0 AND manualDuplexSelection=1 (=full duplex): 1 = Enable transmit from media independent interface regardless of whether the PHY has determined that a valid link has been established, 0 = Enable transmit from media independent interface only when the PHY has determined that a valid link has been established
+ 802.3
+ Parameter";
+ }
+ leaf-list wavelength-list {
+ type int32;
+ units "pm";
+ max-elements 4;
+ description "Wavelength of the signal of laser in pico meter; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5
+ SFF-8690";
+ }
+ leaf temperature-high-threshold {
+ type int8;
+ units "Celsius";
+ default -99;
+ description "Threshold for alarming high temperature values.
+ Will move to somewhere in the Physical Segment of the Core IM";
+ }
+ leaf temperature-low-threshold {
+ type int8;
+ units "Celsius";
+ default -99;
+ description "Threshold for alarming low temperature values.
+ Will move to somewhere in the Physical Segment of the Core IM";
+ }
+ leaf rxlevel-high-threshold {
+ type int8;
+ units "dBm";
+ default 99;
+ description "Threshold for alarming high RX levels.";
+ }
+ leaf rxlevel-low-threshold {
+ type int8;
+ units "dBm";
+ default 99;
+ description "Threshold for alarming low RX levels.";
+ }
+ leaf loop-back-kind-on {
+ type string;
+ description "Parameter
+ 802.3 according 22.2.4.1.2 Loopback
+ Maintenance Feature. The currently configured type of looping back of the wire interface header shall be expressed here. The received header is returned to the remote site.
+ Activation of local loopback mode on physical layer";
+ }
+ leaf isolation-is-on {
+ type boolean;
+ default false;
+ description "1 = Activation of the separation of the PHY from higher network layers
+ 802.3";
+ }
+ leaf restart-pmd-negotiation-is-on {
+ type boolean;
+ default false;
+ description "Restarts the auto negotiation process
+ 802.3";
+ }
+ leaf reset-mau-is-on {
+ type boolean;
+ default false;
+ description "802.3
+ Resets the entire Medium Access Unit (MAU)";
+ }
+ leaf maintenance-timer {
+ type int32;
+ default -1;
+ description "Parameter and MW IM
+ Time of existence of any maintenance configuration (e.g. the loop back). Valid values are defined in WireInterface::WireInterfaceCapability::maintenanceTimerRange";
+ }
+ list problem-kind-severity-list {
+ key 'problem-kind-name';
+ min-elements 6;
+ uses wire-interface-problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping wire-interface-status-g {
+ leaf interface-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "802.3 according 30.3.2.1.7 aPhyAdminState
+ 1 = A Physical layer entity (PHY) exists (including Medium Attachment Unit (e.g. SFP) ) and it is powered and can be managed";
+ }
+ leaf-list receive-signal-is-detected {
+ type boolean;
+ config false;
+ min-elements 1;
+ max-elements 11;
+ description "802.3 45.2.1.9 PMD receive signal detect
+ 1 = Receiver (e.g. laser) detects signal; receiveSignalIsDetected[0]:total interface; receiveSignalIsDetected[1..10] different lanes of a multilane Medium Attachment Unit (MAU)";
+ }
+ leaf pmd-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "Inverse of 802.3 45.2.1.2.3 Fault (1.1.7)
+ If (interfaceIsUp=1) BUT 0 = there is a fault in either transmit or receive path";
+ }
+ leaf pmd-cur {
+ type pmd-name-type;
+ default not-yet-defined;
+ config false;
+ description "Indicates the kind of Physical Medium Dependent (PMD) currently operated at this interface";
+ }
+ container signal-ordering-kind-cur {
+ config false;
+ uses signal-ordering-type-g;
+ description "Reference on a SignalOrderingType for expressing the currently active way of ordering the signals on the physical medium. Must contain a value as defined in TypeDefinitions::SignalOrderingType::signalOrderingKindName";
+ }
+ leaf eee-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "1 = Energy Efficient Ethernet is supported at both ends of the link and it is activated";
+ }
+ leaf link-is-up {
+ type boolean;
+ default false;
+ config false;
+ description "Parameter
+ 1 = (transceiverIsUp=1) AND communication is established to the remote site";
+ }
+ leaf link-is-idle {
+ type boolean;
+ default false;
+ config false;
+ description "1 = (linkIsUp=1) AND (eeeIsAvail=1) AND (eeeIsOn=1) AND link is currently in idle mode. If Energy Efficient Ethernet is not supported or switched off, this attribute must be 0.";
+ }
+ leaf tx-level-cur {
+ type int8;
+ units "dBm";
+ default 99;
+ config false;
+ description "Current transmit power";
+ }
+ leaf-list rx-level-cur {
+ type int8;
+ units "dBm";
+ config false;
+ min-elements 1;
+ max-elements 4;
+ description "Current receive power; Also used for receive signal power measured at the Medium Dependent Interface (MDI) of 10GBASE-T during training as described in 802.3 55.4.3.1";
+ }
+ leaf temp-cur {
+ type int8;
+ units "Celsius";
+ default -99;
+ config false;
+ description "Current temperature (in degree Celsius) inside the transceiver
+ To be moved to CoreModel::CorePhysicalModel-Initial::EquipmentDetail::ObjectClasses::DynamicDetails::PhysicalProperties ";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default none;
+ config false;
+ description "Paramter and MW IM
+ The currently active (not just configured) type of looping back of the wire interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ description "none";
+ }
+ grouping wire-interface-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses wire-interface-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping wire-interface-current-performance-g {
+ list current-performance-data-list {
+ key 'scanner-id';
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses wire-interface-current-performance-type-g;
+ description "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.";
+ }
+ description "Aggregated performance information of the air interface at a particular moment.";
+ }
+ grouping wire-interface-historical-performances-g {
+ list historical-performance-data-list {
+ key 'history-data-id';
+ config false;
+ uses wire-interface-historical-performance-type-g;
+ description "none";
+ }
+ description "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+ }
+
+ /***********************
+ * package super-classes
+ **********************/
+ grouping mw-current-problem-g {
+ leaf sequence-number {
+ type int32;
+ config false;
+ description "Unique sequence number of the current problem object.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ config false;
+ description "Time and date of the problem. ";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default warning;
+ config false;
+ description "Severity of the alarm.";
+ }
+ description "none";
+ }
+
+
+ /***********************
+ * package notifications
+ **********************/
+ notification object-creation-notification {
+ uses object-creation-notification-g;
+ description "none";
+ }
+ grouping object-creation-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts object creation notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ description "Type of Object to be chosen from the following list of values: 'MW_AirInterface_Pac', 'MW_AirInterfaceDiversity_Pac', 'MW_Structure_Pac', 'MW_PureEthernetStructure_Pac', 'MW_HybridMwStructure_Pac', 'MW_Container_Pac', 'MW_EthernetContainer_Pac' or 'MW_TdmContainer_Pac'.";
+ }
+ description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac has to be instancieted in the controller.";
+ }
+ notification object-deletion-notification {
+ uses object-deletion-notification-g;
+ description "none";
+ }
+ grouping object-deletion-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts object deletion notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac instance has to be deleted in the controller.";
+ }
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification-g;
+ description "none";
+ }
+ grouping attribute-value-changed-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts attribute value changed notifications.";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ description "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ description "Attribute value converted to a string (xml, json, ...)";
+ }
+ description "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+ notification problem-notification {
+ uses problem-notification-g;
+ description "none";
+ }
+ grouping problem-notification-g {
+ leaf counter {
+ type int32;
+ default -1;
+ description "Counts problem notifications";
+ }
+ leaf time-stamp {
+ type yang:date-and-time;
+ default "2017-01-01T00:00:00.0Z";
+ description "none";
+ }
+ leaf object-id-ref {
+ type core-model:universal-id;
+ description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ description "Name of the problem according to AirInterface::AirInterfaceCapability::supportedAlarms or AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms or Structure::StructureCapability::supportedAlarms or PureEthernetStructure::PureEthernetStructureCapability::supportedAlarms or HybridMwStructure::HybridMwStructureCapability::supportedAlarms or Container::ContainerCapability::supportedAlarms or EthernetContainer::EthernetContainerCapability::supportedAlarms or TdmContainer::TdmContainerCapability::supportedAlarms.";
+ }
+ leaf severity {
+ type severity-type;
+ default warning;
+ description "Severity of the problem according to AirInterface::AirInterfaceConfiguration::problemSeverityList, AirInterfaceDiversity::AirInterfaceDiversityConfiguration::problemSeverityList, Structure::StructureConfiguration::problemSeverityList, PureEthernetStructure::PureEthernetStructureConfiguration::problemSeverityList, HybridMwStructure::HybridMwStructureConfiguration::problemSeverityList, Container::ContainerConfiguration::problemSeverityList, EthernetContainer::EthernetContainerConfiguration::problemSeverityList or TdmContainer::TdmContainerConfiguration::problemSeverityList";
+ }
+ description "To be sent when a problem occurs at a MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-core-model-conditional-packages@2017-04-02.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-core-model-conditional-packages@2017-04-02.yang
new file mode 100644
index 000000000..44c99b10e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-core-model-conditional-packages@2017-04-02.yang
@@ -0,0 +1,350 @@
+module onf-core-model-conditional-packages {
+ namespace "urn:onf:params:xml:ns:yang:onf-core-model-conditional-packages";
+ prefix onf-core-model-conditional-packages;
+ import core-model {
+ prefix core-model;
+ }
+ import microwave-model {
+ prefix microwave-model;
+ }
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga
+ <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Thorsten Heinze
+ <mailto:thorsten.heinze@telefonica.com>
+ Martin Skorupski
+ <mailto:martin.skorupski@highstreet-technologies.com>";
+ description "This model adds conditional packages to the ONF CoreModel in order to support fault management for object classes NetworkElement, Equipment and Holder.";
+ revision 2017-04-02 {
+ description "Initial version";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+ /***********************
+ * package type-definitions
+ **********************/
+ grouping current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "not-specified";
+ config false;
+ description "Name of the alarm according capability::supportedAlarms.";
+ }
+ uses microwave-model:mw-current-problem-g;
+ description "none";
+ }
+ grouping network-element-current-problem-type-g {
+ leaf problem-name {
+ type string;
+ default "not-specified";
+ config false;
+ description "Name of the alarm according capability::supportedAlarms.";
+ }
+ leaf object-reference {
+ type string;
+ config false;
+ description "An explaining string of the related object class. This is necesseary, because the current problem list of the NetworkElement object class acts as a container for all alarms, where its object classes are not modeled.";
+ }
+ uses microwave-model:mw-current-problem-g;
+ description "none";
+ }
+ grouping problem-severity-type-g {
+ leaf problem-type-name {
+ type string;
+ description "Name of the alarm according to Capability::supportedAlarms";
+ }
+ leaf problem-type-severity {
+ type microwave-model:severity-type;
+ description "Severity of this type of alarm.";
+ }
+ description "none";
+ }
+ typedef processing-type {
+ type enumeration {
+ enum done {
+ description "none";
+ }
+ enum processing {
+ description "none";
+ }
+ }
+ description "none";
+ }
+
+ /***********************
+ * package object-classes
+ **********************/
+ /***********************
+ * package network-element
+ **********************/
+ container network-element-pac {
+ leaf network-element {
+ type leafref {
+ path '/core-model:network-element/core-model:uuid';
+ }
+ description "none";
+ }
+ container network-element-capability {
+ config false;
+ uses network-element-capability-g;
+ description "none";
+ }
+ container network-element-configuration {
+ uses network-element-configuration-g;
+ description "none";
+ }
+ container network-element-status {
+ config false;
+ uses network-element-status-g;
+ description "none";
+ }
+ container network-element-current-problems {
+ config false;
+ uses network-element-current-problems-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping network-element-capability-g {
+ leaf-list supported-alarms {
+ type string;
+ config false;
+ description "none";
+ }
+ description "none";
+ }
+ grouping network-element-configuration-g {
+ list problem-type-severity-list {
+ key 'problem-type-name';
+ uses problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ leaf trigger-refresh {
+ type boolean;
+ description "A trigger to instruct the netconf server to refresh its internal database/cache.
+ It is primary used for alarms status, but could be used for anything else too.
+ It is assumed that the refresh mechanism takes some time.
+ In order to indicate the process to the controller a refreshStatus attribute is used.";
+ }
+ description "none";
+ }
+ grouping network-element-status-g {
+ leaf refresh-status {
+ type processing-type;
+ config false;
+ description "none";
+ }
+ description "none";
+ }
+ grouping network-element-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses network-element-current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+
+ /***********************
+ * package equipment
+ **********************/
+ list equipment-pac {
+ key 'equipment';
+ leaf equipment {
+ type leafref {
+ path '/core-model:equipment/core-model:uuid';
+ }
+ description "none";
+ }
+ container equipment-capability {
+ config false;
+ uses equipment-capability-g;
+ description "none";
+ }
+ container equipment-configuration {
+ uses equipment-configuration-g;
+ description "none";
+ }
+ container equipment-status {
+ config false;
+ uses equipment-status-g;
+ description "none";
+ }
+ container equipment-current-problems {
+ config false;
+ uses equipment-current-problems-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping equipment-capability-g {
+ leaf-list supported-alarms {
+ type string;
+ config false;
+ description "Available alarms to be listed. Names are to be separated by commas.";
+ }
+ description "none";
+ }
+ grouping equipment-configuration-g {
+ list problem-type-severity-list {
+ key 'problem-type-name';
+ uses problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping equipment-status-g {
+ description "none";
+ }
+ grouping equipment-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+
+ /***********************
+ * package holder
+ **********************/
+ list holder-pac {
+ key 'holder';
+ leaf holder {
+ type leafref {
+ path '/core-model:equipment/core-model:contained-holder/core-model:uuid';
+ }
+ description "none";
+ }
+ container holder-capability {
+ config false;
+ uses holder-capability-g;
+ description "none";
+ }
+ container holder-configuration {
+ uses holder-configuration-g;
+ description "none";
+ }
+ container holder-status {
+ config false;
+ uses holder-status-g;
+ description "none";
+ }
+ container holder-current-problems {
+ config false;
+ uses holder-current-problems-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping holder-capability-g {
+ leaf-list supported-alarms {
+ type string;
+ config false;
+ description "Available alarms to be listed. Names are to be separated by commas.";
+ }
+ description "none";
+ }
+ grouping holder-configuration-g {
+ list problem-type-severity-list {
+ key 'problem-type-name';
+ uses problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ description "none";
+ }
+ grouping holder-status-g {
+ description "none";
+ }
+ grouping holder-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+
+ /***********************
+ * package connector
+ **********************/
+ list connector-pac {
+ key 'connector';
+ leaf connector {
+ type leafref {
+ path '/core-model:equipment/core-model:exposed-cable/core-model:connector/core-model:uuid';
+ }
+ description "none";
+ }
+ container connector-capability {
+ config false;
+ uses connector-capability-g;
+ description "none";
+ }
+ container connector-configuration {
+ uses connector-configuration-g;
+ description "none";
+ }
+ container connector-status {
+ config false;
+ uses connector-status-g;
+ description "none";
+ }
+ container connector-current-problems {
+ config false;
+ uses connector-current-problems-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping connector-capability-g {
+ leaf-list supported-alarms {
+ type string;
+ config false;
+ description "Available alarms to be listed. Names are to be separated by commas.";
+ }
+ description "none";
+ }
+ grouping connector-configuration-g {
+ list problem-type-severity-list {
+ key 'problem-type-name';
+ uses problem-severity-type-g;
+ description "Severity of the problem to be configured.";
+ }
+ leaf remote-end-point {
+ type string;
+ description "A network wide identifier of the remote connector. The value is used for topology discovery.
+Please see also ConnectorStatus::localEndPoint.";
+ }
+ description "none";
+ }
+ grouping connector-status-g {
+ leaf local-end-point {
+ type string;
+ description "A network wide global identifier of the this connector, which can be used to discover the physical connectivitiy.
+The value should contain the network element name, because the network element software can assume that the network element name is unique in the network.
+The value should be formated:
+<connector:uuid>@<network-element-name>
+
+Please see also ConnectorConfiguration::remoteEndPoint";
+ }
+ description "none";
+ }
+ grouping connector-current-problems-g {
+ list current-problem-list {
+ key 'sequence-number';
+ config false;
+ uses current-problem-type-g;
+ description "none";
+ }
+ description "none";
+ }
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ethernet-conditional-packages@2017-04-02.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ethernet-conditional-packages@2017-04-02.yang
new file mode 100644
index 000000000..4d6fb7c25
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ethernet-conditional-packages@2017-04-02.yang
@@ -0,0 +1,88 @@
+module onf-ethernet-conditional-packages {
+ namespace "urn:onf:params:xml:ns:yang:onf-ethernet-conditional-packages";
+ prefix onf-ethernet-conditional-packages;
+ import core-model {
+ prefix core-model;
+ }
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ WG Chair: Giorgio Cazzaniga
+ <mailto:giorgio.cazzaniga@sm-optics.com>
+ Editors: Thorsten Heinze
+ <mailto:thorsten.heinze@telefonica.com>
+ Martin Skorupski
+ <mailto:martin.skorupski@highstreet-technologies.com>";
+ description "This model adds conditional packages to the ONF CoreModel in order address Ethernet use cases.";
+ revision 2017-04-02 {
+ description "Initial version";
+ reference "ONF TR 532: A YANG Data Model for Wireless Networks.";
+ }
+ /***********************
+ * package object-classes
+ **********************/
+ list ethernet-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "none";
+ }
+ container ethernet-capability {
+ config false;
+ uses ethernet-capability-g;
+ description "none";
+ }
+ container ethernet-configuration {
+ uses ethernet-configuration-g;
+ description "none";
+ }
+ container ethernet-status {
+ config false;
+ uses ethernet-status-g;
+ description "none";
+ }
+ container ethernet-current-problems {
+ config false;
+ uses ethernet-current-problems-g;
+ description "none";
+ }
+ container ethernet-current-performance {
+ config false;
+ uses ethernet-current-performance-g;
+ description "none";
+ }
+ container ethernet-historical-performances {
+ config false;
+ uses ethernet-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping ethernet-capability-g {
+ description "none";
+ }
+ grouping ethernet-configuration-g {
+ leaf vlan-id {
+ type int16;
+ description "value = 0: frames on ingress must be untagged, frames on egress get untagged; value = any other positive integer < 4096: frames on ingress must be tagged with this VLAN ID, frames on egress either already have or get this VLAN ID attached;";
+ }
+ description "none";
+ }
+ grouping ethernet-status-g {
+ description "none";
+ }
+ grouping ethernet-current-problems-g {
+ description "none";
+ }
+ grouping ethernet-current-performance-g {
+ description "none";
+ }
+ grouping ethernet-historical-performances-g {
+ description "none";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-otn-odu-conditional-packages@2017-10-20.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-otn-odu-conditional-packages@2017-10-20.yang
new file mode 100644
index 000000000..89d6cbfcf
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-otn-odu-conditional-packages@2017-10-20.yang
@@ -0,0 +1,361 @@
+module onf-otn-odu-conditional-packages {
+ namespace "urn:onf:params:xml:ns:yang:onf-otn-odu-conditional-packages";
+ prefix onf-otn-odu-conditional-packages;
+ import core-model {
+ prefix core-model;
+ }
+ organization "ONF (Open Networking Foundation) Open Transport Working Group";
+ contact "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ Editors: Mohit Chamania
+ <MChamania@advaoptical.com>
+ Dzmitry Khomchanka
+ <dzmitry.khomchanka@vpi-minsk.com>
+ Martin Skorupski
+ <mailto:martin.skorupski@highstreet-technologies.com>";
+ description "This model adds conditional packages to the ONF CoreModel 1.2
+ in order address OTN ODU use cases. It is a temorary model for
+ demontration purposes and bases on the ideas an concepts of
+ TAPI. However, modifications for a pure southbound were
+ nessesary.";
+ revision 2017-10-20 {
+ description "Initial version";
+ reference "ONF TR 512: Core Model.";
+ }
+ /***********************
+ * package type-definitions (copied from TAPI; revision: 2017-05-31)
+ **********************/
+ typedef mapping-type {
+ type enumeration {
+ enum amp {
+ description "none";
+ }
+ enum bmp {
+ description "none";
+ }
+ enum gfp-f {
+ description "none";
+ }
+ enum gmp {
+ description "none";
+ }
+ enum ttp-gfp-bmp {
+ description "none";
+ }
+ enum null {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef odu-named-payload-type {
+ type enumeration {
+ enum unknown {
+ description "none";
+ }
+ enum uninterpretable {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef odu-slot-size {
+ type enumeration {
+ enum 1-g-25 {
+ description "none";
+ }
+ enum 2-g-5 {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ typedef odu-type {
+ type enumeration {
+ enum odu-0 {
+ description "none";
+ }
+ enum odu-1 {
+ description "none";
+ }
+ enum odu-2 {
+ description "none";
+ }
+ enum odu-2-e {
+ description "none";
+ }
+ enum odu-3 {
+ description "none";
+ }
+ enum odu-4 {
+ description "none";
+ }
+ enum odu-flex {
+ description "none";
+ }
+ enum odu-cn {
+ description "none";
+ }
+ }
+ description "none";
+ }
+ grouping odu-payload-type-g {
+ leaf named-payload-type {
+ type odu-named-payload-type;
+ description "none";
+ }
+ leaf hex-payload-type {
+ type uint64;
+ description "none";
+ }
+ description "none";
+ }
+ /***********************
+ * package object-classes
+ **********************/
+
+ /***********************
+ * OTN ODU Connection (ODU-CTP)
+ **********************/
+ list otn-odu-connection-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "none";
+ }
+ container otn-odu-connection-capability {
+ config false;
+ uses otn-odu-connection-capability-g;
+ description "none";
+ }
+ container otn-odu-connection-configuration {
+ uses otn-odu-connection-configuration-g;
+ description "none";
+ }
+ container otn-odu-connection-status {
+ config false;
+ uses otn-odu-connection-status-g;
+ description "none";
+ }
+ container otn-odu-connection-current-problems {
+ config false;
+ uses otn-odu-connection-current-problems-g;
+ description "none";
+ }
+ container otn-odu-connection-current-performance {
+ config false;
+ uses otn-odu-connection-current-performance-g;
+ description "none";
+ }
+ container otn-odu-connection-historical-performances {
+ config false;
+ uses otn-odu-connection-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping otn-odu-connection-capability-g {
+ container accepted-payload-type {
+ uses odu-payload-type-g;
+ description
+ "This attribute is applicable when the ODU CTP object
+ instance represents a lower order ODU CTP Sink at the
+ client layer of the ODUP/ODU[i]j or ODUP/ODUj-21 adaptation
+ function.
+ This attribute is a 2-digit Hex code that indicates the new
+ accepted payload type.
+ Valid values are defined in Table 15-8 of ITU-T
+ Recommendation G.709 with one additional value
+ UN_INTERPRETABLE.";
+ }
+ description "none";
+ }
+ grouping otn-odu-connection-configuration-g {
+ leaf-list tributary-slot-list {
+ type uint64;
+ description
+ "This attribute contains a set of distinct (i.e. unique)
+ integers (e.g. 2, 3, 5, 9, 15 representing the tributary
+ slots TS2, TS3, TS5, TS9 and TS15) which represents the
+ resources occupied by the Low Order ODU Link Connection
+ (e.g. carrying an ODUflex with a bit rate of 6.25G).
+ This attribute applies when the LO ODU_ConnectionTerminationPoint
+ connects with an HO ODU_TrailTerminationPoint object.
+ It will not apply if this ODU_ConnectionTerminationPoint
+ object directly connects to an OTU_TrailTerminationPoint
+ object (i.e. OTU has no trib slots).
+ The upper bound of the integer allowed in this set is a
+ function of the HO-ODU server layer to which the ODU
+ connection has been mapped (adapted).
+ Thus, for example, M=8/32/80 for ODU2/ODU3/ODU4 server
+ layers (respectively). Note that the value of this
+ attribute can be changed only in the case of ODUflex and
+ has to be through specific operations (i.e. not be changing
+ the attribute tributarySlotList directly).";
+ }
+ leaf tributary-port-number {
+ type uint64;
+ description
+ "This attribute identifies the tributary port number that is
+ associated with the ODU CTP.
+ range of type : The value range depends on the size of the
+ Tributary Port Number (TPN) field used which depends on th
+ server-layer ODU or OTU.
+ In case of ODUk mapping into OTUk, there is no TPN field,
+ so the tributaryPortNumber shall be zero.
+ In case of LO ODUj mapping over ODU1, ODU2 or ODU3, the TPN
+ is encoded in a 6-bit field so the value range is 0-63.
+ See clause 14.4.1/G.709-2016.
+ In case of LO ODUj mapping over ODU4, the TPN is encoded in
+ a 7-bit field so the value range is 0-127.
+ See clause 14.4.1.4/G.709-2016.
+ In case of ODUk mapping over ODUCn, the TPN is encoded in a
+ 14-bit field so the value range is 0-16383. See clause
+ 20.4.1.1/G.709-2016.
+ ";
+ }
+ leaf accepted-m-si {
+ type string;
+ description
+ "This attribute is applicable when the ODU CTP object
+ instance represents a lower order ODU1 or ODU2 CTP Sink at
+ the client layer of the ODU3P/ODU12 adaptation function or
+ represents a lower order ODUj CTP Sink at the client layer
+ of the ODUP/ODUj-21 adaptation function. This attribute is
+ a 1-byte field that represents the accepted multiplex
+ structure of the adaptation function. ";
+ }
+ leaf opu-tributary-slot-size {
+ type odu-slot-size;
+ description
+ "This attribute is applicable for ODU2 and ODU3 CTP only.
+ [sko] Why that?
+ It indicates the slot size of the ODU CTP.";
+ }
+ leaf auto-payload-type {
+ type boolean;
+ description
+ "This attribute is applicable when the ODU CTP object
+ instance represents a lower order ODU CTP Source at the
+ client layer of the ODUP/ODUj-21 adaptation function. The
+ value of true of this attribute configures that the
+ adaptation source function shall fall back to the payload
+ type PT=20 if the conditions specified in 14.3.10.1/G.798
+ are satisfied. ";
+ }
+ leaf configured-mapping-type {
+ type mapping-type;
+ description
+ "This attributes indicates the configured mapping type.";
+ }
+ leaf configured-client-type {
+ type string;
+ description
+ "This attribute configures the type of the client CTP of the
+ server ODU TTP.";
+ }
+ description
+ "This Pac contains the attributes associated with the ODU-CTP.";
+ }
+ grouping otn-odu-connection-status-g {
+ description "none";
+ }
+ grouping otn-odu-connection-current-problems-g {
+ description "none";
+ }
+ grouping otn-odu-connection-current-performance-g {
+ description "none";
+ }
+ grouping otn-odu-connection-historical-performances-g {
+ description "none";
+ }
+
+
+ /***********************
+ * OTN ODU Termination (ODU-TTP)
+ **********************/
+ list otn-odu-termination-pac {
+ key 'layer-protocol';
+ leaf layer-protocol {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:lp/core-model:uuid';
+ }
+ description "none";
+ }
+ container otn-odu-termination-capability {
+ config false;
+ uses otn-odu-termination-capability-g;
+ description "none";
+ }
+ container otn-odu-termination-configuration {
+ uses otn-odu-termination-configuration-g;
+ description "none";
+ }
+ container otn-odu-termination-status {
+ config false;
+ uses otn-odu-termination-status-g;
+ description "none";
+ }
+ container otn-odu-termination-current-problems {
+ config false;
+ uses otn-odu-termination-current-problems-g;
+ description "none";
+ }
+ container otn-odu-termination-current-performance {
+ config false;
+ uses otn-odu-termination-current-performance-g;
+ description "none";
+ }
+ container otn-odu-termination-historical-performances {
+ config false;
+ uses otn-odu-termination-historical-performances-g;
+ description "none";
+ }
+ description "none";
+ }
+ grouping otn-odu-termination-capability-g {
+ description "none";
+ }
+ grouping otn-odu-termination-configuration-g {
+ leaf odu-type {
+ type odu-type;
+ description "This attribute specifies the type of the ODU
+ termination point.";
+ }
+ leaf odu-rate {
+ type uint64;
+ description "This attribute indicates the rate of the ODU
+ terminatinon point.
+ This attribute is Set at create; i.e., once created
+ it cannot be changed directly.
+ In case of resizable ODU flex, its value can be
+ changed via HAO (not directly on the attribute).";
+ }
+ leaf odu-rate-tolerance {
+ type uint64;
+ units "ppm";
+ description "This attribute indicates the rate tolerance of the
+ ODU termination point.
+ Valid values are real value in the unit of ppm.
+ Standardized values are defined in Table 7-2/G.709.
+ ";
+ }
+ description "none";
+ }
+ grouping otn-odu-termination-status-g {
+ description "none";
+ }
+ grouping otn-odu-termination-current-problems-g {
+ description "none";
+ }
+ grouping otn-odu-termination-current-performance-g {
+ description "none";
+ }
+ grouping otn-odu-termination-historical-performances-g {
+ description "none";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ptp-dataset@2017-05-08.yang b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ptp-dataset@2017-05-08.yang
new file mode 100644
index 000000000..41a1c3935
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/main/yang/onf-ptp-dataset@2017-05-08.yang
@@ -0,0 +1,125 @@
+module onf-ptp-dataset {
+ namespace "urn:onf:params:xml:ns:yang:onf-ptp-dataset";
+ prefix ptp-ex;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model {
+ prefix core-model;
+ }
+ import ietf-ptp-dataset {
+ prefix ptp;
+ }
+
+ organization "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Transport Project";
+ contact "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+ WG List: <mailto:wireless-transport@login.opennetworking.org>
+ WG Chair: Lyndon Ong
+ <mailto:lyong@ciena.com>
+ Editors: Alfons Mittermaier
+ <mailto:alfons.mittermaier@@highstreet-technologies.com>
+ Martin Skorupski
+ <mailto:martin.skorupski@highstreet-technologies.com>";
+ description "This module contains a collection of YANG definitions to extent ptp-dataset.";
+ revision 2017-05-08 {
+ description "Initial version";
+ reference "A YANG Data Model extending ptp-dataset.";
+ }
+
+ augment "/ptp:instance-list/ptp:default-ds" {
+ description
+ "Addition of data nodes for the default data set of the clock.";
+
+ leaf local-priority {
+ type uint8;
+ default 128;
+ description
+ "none";
+ reference
+ "ITU-T G.8275.1 Precision time protocol telecom profile for phase/time
+ synchronization with full timing support from the network
+ Chapter 6.3.2";
+ }
+
+ leaf max-steps-removed {
+ type uint8;
+ default 128;
+ description
+ "none";
+ reference
+ "ITU-T G.8275.1 Precision time protocol telecom profile for phase/time
+ synchronization with full timing support from the network
+ Chapter 6.3";
+ }
+
+ leaf multicast-mac-address {
+ type yang:mac-address;
+ description
+ "none";
+ }
+
+ leaf designated-enabled {
+ type boolean;
+ default true;
+ description
+ "A PTP Clock needs to be enabled by management.";
+ }
+ }
+
+ augment "/ptp:instance-list/ptp:port-ds-list" {
+ description
+ "Addition of data nodes for the default data set of the clock.";
+
+ leaf master-only {
+ type boolean;
+ default true;
+ description
+ "Indicates that port can only be a master.";
+ }
+
+ leaf local-priority {
+ type uint8;
+ default 128;
+ description
+ "Local priority as used for alternate BMCA";
+ reference
+ "ITU-T G.8275.1 Precision time protocol telecom profile for phase/time
+ synchronization with full timing support from the network
+ Chapter 6.3.2";
+ }
+
+ leaf designated-enabled {
+ type boolean;
+ default true;
+ description
+ "A PTP Port needs to be enabled by management.";
+ reference
+ "IEEE 1588-2008 IEEE Standard for a Precision Clock Synchronization Protocol
+ for Networked Measurement and Control Systems
+ Chapter 9.2";
+ }
+
+ leaf delay-asymmetry {
+ type int64;
+ default 0;
+ description
+ "As per PTP Known path asymmetry in ns.";
+ reference
+ "ITU-T G.8275.1 Precision time protocol telecom profile for phase/time
+ synchronization with full timing support from the network
+ Chapter 7.4.2";
+ }
+
+ leaf logical-termination-point {
+ type leafref {
+ path '/core-model:network-element/core-model:ltp/core-model:uuid';
+ }
+ description
+ "A reference to a LTP of layer-protocol-name 'ETY' or 'MWPS', which is used
+ to discover the PTP topology.";
+ }
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/TestSerializer.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/TestSerializer.java
new file mode 100644
index 000000000..d4c587b6d
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/TestSerializer.java
@@ -0,0 +1,53 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf;
+
+import static org.junit.Assert.fail;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ProblemNotificationBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.SeverityType;
+
+public class TestSerializer {
+
+ @Test
+ public void testProblemNotification() {
+ ProblemNotification notification = new ProblemNotificationBuilder().setCounter(32)
+ .setObjectIdRef(new UniversalId("abc")).setProblem("problem").setSeverity(SeverityType.Critical)
+ .setTimeStamp(DateAndTime.getDefaultInstance("2020-01-01T01:01:02.0Z")).build();
+
+
+ YangToolsMapper mapper = new YangToolsMapper();
+ String result=null;
+ try {
+ result = mapper.writeValueAsString(notification);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ System.out.println(result);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java
new file mode 100644
index 000000000..20d479efa
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestExtendedEquipment.java
@@ -0,0 +1,81 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment.test;
+
+import static org.junit.Assert.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.WrapperPTPModelRev170208;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment.ExtendedEquipment;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.Equipment;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.EquipmentBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ContainedHolderBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ManufacturedThing;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.equipment.g.ManufacturedThingBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.EquipmentInstance;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.EquipmentInstanceBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.EquipmentType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.EquipmentTypeBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.ManufacturerProperties;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.manufactured.thing.g.ManufacturerPropertiesBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TestExtendedEquipment {
+
+ UniversalId id = new UniversalId("1234567");
+ private static final String NODEID = "NODE1";
+ private static final Logger LOG = LoggerFactory.getLogger(TestExtendedEquipment.class);
+
+ @Test
+ public void test() {
+ final @NonNull List<ContainedHolder> holder = Arrays.asList(new ContainedHolderBuilder().setUuid(id).build());
+ final @NonNull ManufacturerProperties manufacturerProps = new ManufacturerPropertiesBuilder()
+ .setManufacturerIdentifier("NOK").setManufacturerName("Nokia").build();
+
+ final @NonNull EquipmentType eqptType =
+ new EquipmentTypeBuilder().setDescription("5G RAN Equipment").setModelIdentifier("NOK-987-1T")
+ .setPartTypeIdentifier("ABCDEF").setTypeName("12345").setVersion("5T9V4567").build();
+
+ final @NonNull EquipmentInstance eqptInstance =
+ new EquipmentInstanceBuilder().setAssetInstanceIdentifier("NOK1234-ABCD")
+ .setManufactureDate("2020-02-11").setSerialNumber("123456ABCD").build();
+
+ final @NonNull ManufacturedThing manufacturedThing =
+ new ManufacturedThingBuilder().setManufacturerProperties(manufacturerProps).setEquipmentType(eqptType)
+ .setEquipmentInstance(eqptInstance).build();
+
+ Equipment equipment = new EquipmentBuilder().setUuid(id).setContainedHolder(holder)
+ .setManufacturedThing(manufacturedThing).build();
+
+ ExtendedEquipment extEqpt = new ExtendedEquipment(NODEID, "1234567890", equipment, "/var/opt", 3);
+ assertEquals(extEqpt.getNodeId(), NODEID);
+ assertEquals(extEqpt.getParentUuid(), "1234567890");
+ assertEquals(extEqpt.getEquipment(), equipment);
+ LOG.info(extEqpt.toString());
+ extEqpt.getCreateInventoryInput();
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestONFCoreNetworkElement12Equipment.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestONFCoreNetworkElement12Equipment.java
new file mode 100644
index 000000000..30cd7647a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/equipment/test/TestONFCoreNetworkElement12Equipment.java
@@ -0,0 +1,101 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment.test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.NetworkElementCoreData;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment.ONFCoreNetworkElement12Equipment;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.equipment.WrapperEquipmentPacRev170402;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.EquipmentPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.EquipmentPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.equipment.pac.EquipmentCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class TestONFCoreNetworkElement12Equipment {
+
+ NetconfBindingAccessor netconfAccessor;
+ Capabilities capabilities;
+ NetworkElementCoreData coreData;
+ FaultData faultData;
+ TransactionUtils transactionUtils;
+ EquipmentCurrentProblems eqptCurrProblems;
+ DataBroker dataBroker;
+ UniversalId uid = new UniversalId("ID");
+
+
+ @Before
+ public void init() throws Exception {
+ netconfAccessor = mock(NetconfBindingAccessor.class);
+ capabilities = mock(Capabilities.class);
+ coreData = mock(NetworkElementCoreData.class);
+ faultData = mock(FaultData.class);
+ eqptCurrProblems = mock(EquipmentCurrentProblems.class);
+ dataBroker = mock(DataBroker.class);
+ transactionUtils = mock(TransactionUtils.class);
+
+ final Class<EquipmentPac> clazzPac = EquipmentPac.class;
+ final Class<EquipmentPacKey> clazzPacKey = EquipmentPacKey.class;
+ final Class<EquipmentCurrentProblems> clazzProblems = EquipmentCurrentProblems.class;
+ Constructor<EquipmentPacKey> cons = clazzPacKey.getConstructor(UniversalId.class);
+ InstanceIdentifier<EquipmentCurrentProblems> interfaceIID =
+ InstanceIdentifier.builder(clazzPac, cons.newInstance(uid)).child(clazzProblems).build();
+ when(netconfAccessor.getCapabilites()).thenReturn(capabilities);
+ when(netconfAccessor.getTransactionUtils()).thenReturn(transactionUtils);
+ when(netconfAccessor.getDataBroker()).thenReturn(dataBroker);
+ when(netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, interfaceIID)).thenReturn(eqptCurrProblems);
+ }
+
+ @Test
+ public void test() {
+ when(capabilities.isSupportingNamespaceAndRevision(WrapperEquipmentPacRev170402.QNAME)).thenReturn(true);
+ ONFCoreNetworkElement12Equipment onfCoreEqpt = new ONFCoreNetworkElement12Equipment(netconfAccessor, coreData);
+ onfCoreEqpt.addProblemsofNode(faultData);
+ onfCoreEqpt.addProblemsofNodeObject("ABCD");
+ onfCoreEqpt.getInventoryInformation(Arrays.asList("TESTINV"));
+ onfCoreEqpt.getEquipmentAll();
+ onfCoreEqpt.getEquipmentData();
+ onfCoreEqpt.getEquipmentPac();
+ onfCoreEqpt.readNetworkElementEquipment();
+
+ }
+
+ @Test
+ public void test1() {
+ when(capabilities.isSupportingNamespaceAndRevision(WrapperEquipmentPacRev170402.QNAME)).thenReturn(false);
+ ONFCoreNetworkElement12Equipment onfCoreEqpt = new ONFCoreNetworkElement12Equipment(netconfAccessor, coreData);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestHelper.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestHelper.java
new file mode 100644
index 000000000..337dc2644
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestHelper.java
@@ -0,0 +1,49 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.test;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.Helper;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.LayerProtocolName;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType;
+
+public class TestHelper {
+
+ @Test
+ public void test() {
+
+ assertEquals(GranularityPeriodType.Period24Hours,
+ Helper.nnGetGranularityPeriodType(GranularityPeriodType.Period24Hours));
+ assertEquals(GranularityPeriodType.Unknown, Helper.nnGetGranularityPeriodType(null));
+
+ assertEquals(new LayerProtocolName("TDM"),
+ Helper.nnGetLayerProtocolName(LayerProtocolName.getDefaultInstance("TDM")));
+ assertEquals(new LayerProtocolName("default"), Helper.nnGetLayerProtocolName(null));
+
+ assertEquals("TEST", Helper.nnGetString("TEST"));
+ assertEquals("", Helper.nnGetString(null));
+
+ assertEquals(new UniversalId("ABC"), Helper.nnGetUniversalId(new UniversalId("ABC")));
+ assertEquals(new UniversalId("Default"), Helper.nnGetUniversalId(null));
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java
new file mode 100644
index 000000000..bee34b5b5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev170324.java
@@ -0,0 +1,342 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Constructor;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev170324;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.LpBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfaceDiversityPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfaceDiversityPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwAirInterfacePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwEthernetContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwEthernetContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwHybridMwStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwHybridMwStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwPureEthernetStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwPureEthernetStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwTdmContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.MwTdmContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceHistoricalPerformancesBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.ethernet.container.pac.EthernetContainerHistoricalPerformancesBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.tdm.container.pac.TdmContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.tdm.container.pac.TdmContainerCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.air._interface.pac.AirInterfaceConfigurationBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.current.problems.g.CurrentProblemList;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.current.problems.g.CurrentProblemListBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.diversity.current.performance.g.CurrentPerformanceDataList;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performance.type.g.PerformanceDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performance.type.g.PerformanceData;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class TestWrapperMicrowaveModelRev170324 {
+
+ NetconfBindingAccessor accessor;
+ DeviceManagerServiceProvider serviceProvider;
+ FaultData resultList;
+ UniversalId uid;
+ TransactionUtils transactionUtils;
+ DataBroker dataBroker;
+
+ InstanceIdentifier<AirInterfaceCurrentProblems> mwAirInterfaceIID;
+ @NonNull
+ AirInterfaceCurrentProblems airInterfaceCurrentProblems;
+
+ InstanceIdentifier<EthernetContainerCurrentProblems> mwEthInterfaceIID;
+ @NonNull
+ EthernetContainerCurrentProblems ethernetContainerCurrentProblems;
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ resultList = mock(FaultData.class);
+ transactionUtils = mock(TransactionUtils.class);
+ dataBroker = mock(DataBroker.class);
+
+ uid = new UniversalId("ABCD");
+
+ mwAirInterfaceIID = InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceCurrentProblems.class).build();
+ List<CurrentProblemList> currentProblemList =
+ Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal")
+ .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build());
+ airInterfaceCurrentProblems =
+ new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+
+ mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
+ .child(EthernetContainerCurrentProblems.class).build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.current.problems.g.CurrentProblemList> ethCurrentProblemsList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Link Negotiation Unsuccessful")
+ .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null)
+ .build());
+ ethernetContainerCurrentProblems =
+ new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build();
+
+ NodeId nNodeId = new NodeId("nSky");
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getTransactionUtils()).thenReturn(transactionUtils);
+ when(accessor.getDataBroker()).thenReturn(dataBroker);
+
+ }
+
+ @Test
+ public void testMWAirInterfaceWithProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceIID)).thenReturn(airInterfaceCurrentProblems);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.MWAIRINTERFACE, null, uid,
+ resultList);
+ }
+
+ @Test
+ public void testMWAirInterfaceWithoProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceIID)).thenReturn(null);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.MWAIRINTERFACE, null, uid,
+ resultList);
+ }
+
+ @Test
+ public void testEthernetContainer12WithProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(ethernetContainerCurrentProblems);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.ETHERNETCONTAINER12, null,
+ uid, resultList);
+ }
+
+ @Test
+ public void testEthernetContainer12WithNoProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(null);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.ETHERNETCONTAINER12, null,
+ uid, resultList);
+ }
+
+ @Test
+ public void testTdmContainer12WithProblems() throws Exception {
+ final Class<MwTdmContainerPac> clazzPac = MwTdmContainerPac.class;
+ final Class<MwTdmContainerPacKey> clazzPacKey = MwTdmContainerPacKey.class;
+ final Class<TdmContainerCurrentProblems> clazzProblems = TdmContainerCurrentProblems.class;
+
+ Constructor<MwTdmContainerPacKey> cons = clazzPacKey.getConstructor(UniversalId.class); // Avoid new()
+ InstanceIdentifier<TdmContainerCurrentProblems> mwEthInterfaceIID =
+ InstanceIdentifier.builder(clazzPac, cons.newInstance(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.tdm.container.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.tdm.container.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ TdmContainerCurrentProblems tdmInterfaceCurrentProblems =
+ new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.TDMCONTAINER, null, uid,
+ resultList);
+
+ }
+
+ @Test
+ public void testMwHybridMwStructureWithProblems() throws Exception {
+ final Class<MwHybridMwStructurePac> clazzPac = MwHybridMwStructurePac.class;
+ final Class<HybridMwStructureCurrentProblems> clazzProblems = HybridMwStructureCurrentProblems.class;
+
+ InstanceIdentifier<HybridMwStructureCurrentProblems> mwEthInterfaceIID =
+ InstanceIdentifier.builder(clazzPac, new MwHybridMwStructurePacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.hybrid.mw.structure.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.hybrid.mw.structure.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems =
+ new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwHybridMwStructurePac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testMwAirInterfaceDiversityStructureWithProblems() throws Exception {
+ final Class<MwAirInterfaceDiversityPac> clazzPac = MwAirInterfaceDiversityPac.class;
+ final Class<AirInterfaceDiversityCurrentProblems> clazzProblems = AirInterfaceDiversityCurrentProblems.class;
+
+ InstanceIdentifier<AirInterfaceDiversityCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwAirInterfaceDiversityPacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.diversity.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.diversity.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems =
+ new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwAirInterfaceDiversityPac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testMwPureEthernetStructureWithProblems() throws Exception {
+ final Class<MwPureEthernetStructurePac> clazzPac = MwPureEthernetStructurePac.class;
+ final Class<PureEthernetStructureCurrentProblems> clazzProblems = PureEthernetStructureCurrentProblems.class;
+
+ InstanceIdentifier<PureEthernetStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwPureEthernetStructurePacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.pure.ethernet.structure.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.pure.ethernet.structure.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems =
+ new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwPureEthernetStructurePac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testNullStructureWithProblems() throws Exception {
+
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+ wrapperMicrowaveModelRev170324.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE, null, uid,
+ resultList);
+
+ }
+
+ @Test
+ public void testgetLtpHistoricalPerformanceData() {
+ InstanceIdentifier<AirInterfaceConfiguration> mwAirInterfaceConfigurationIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceConfiguration.class).build();
+
+ AirInterfaceConfiguration airConfiguration =
+ new AirInterfaceConfigurationBuilder().setAirInterfaceName("TESTINTF").build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceConfigurationIID)).thenReturn(airConfiguration);
+
+ InstanceIdentifier<AirInterfaceHistoricalPerformances> mwAirInterfaceHistoricalPerformanceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceHistoricalPerformances.class).build();
+
+ PerformanceData performanceData = new PerformanceDataBuilder().build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder()
+ .setGranularityPeriod(GranularityPeriodType.Period15Min)
+ .setPerformanceData(performanceData).build());
+ AirInterfaceHistoricalPerformances airHistoricalPerformanceData =
+ new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData);
+
+ InstanceIdentifier<EthernetContainerHistoricalPerformances> ethContainerIID =
+ InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
+ .child(EthernetContainerHistoricalPerformances.class).build();
+
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.container.historical.performance.type.g.PerformanceData ethPerformanceData =
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.container.historical.performance.type.g.PerformanceDataBuilder()
+ .build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> ethHistPMList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder()
+ .setGranularityPeriod(GranularityPeriodType.Period24Hours)
+ .setPerformanceData(ethPerformanceData).build());
+ EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData =
+ new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList)
+ .build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData);
+
+ Lp lp = new LpBuilder().setUuid(uid).build();
+ WrapperMicrowaveModelRev170324 wrapperMicrowaveModelRev170324 =
+ new WrapperMicrowaveModelRev170324(accessor, serviceProvider);
+
+ wrapperMicrowaveModelRev170324.getLtpHistoricalPerformanceData(ONFLayerProtocolName.ETHERNET, lp);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java
new file mode 100644
index 000000000..4c4c9734a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev180907.java
@@ -0,0 +1,339 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Constructor;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev180907;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.label.g.Label;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.LpBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performance.type.g.PerformanceData;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performance.type.g.PerformanceDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceConfigurationBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceHistoricalPerformancesBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerHistoricalPerformancesBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfaceDiversityPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfaceDiversityPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwAirInterfacePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwEthernetContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwEthernetContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwHybridMwStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwHybridMwStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwPureEthernetStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwPureEthernetStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwTdmContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.MwTdmContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.air._interface.pac.AirInterfaceCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.ethernet.container.pac.EthernetContainerCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.tdm.container.pac.TdmContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.mw.tdm.container.pac.TdmContainerCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.current.problems.g.CurrentProblemList;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.current.problems.g.CurrentProblemListBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.diversity.current.performance.g.CurrentPerformanceDataList;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class TestWrapperMicrowaveModelRev180907 {
+
+ NetconfBindingAccessor accessor;
+ DeviceManagerServiceProvider serviceProvider;
+ FaultData resultList;
+ UniversalId uid;
+ TransactionUtils transactionUtils;
+
+ InstanceIdentifier<AirInterfaceCurrentProblems> mwAirInterfaceIID;
+ @NonNull
+ AirInterfaceCurrentProblems airInterfaceCurrentProblems;
+
+ InstanceIdentifier<EthernetContainerCurrentProblems> mwEthInterfaceIID;
+ @NonNull
+ EthernetContainerCurrentProblems ethernetContainerCurrentProblems;
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ resultList = mock(FaultData.class);
+ transactionUtils = mock(TransactionUtils.class);
+
+ uid = new UniversalId("ABCD");
+
+ mwAirInterfaceIID = InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceCurrentProblems.class).build();
+ List<CurrentProblemList> currentProblemList =
+ Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal")
+ .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build());
+ airInterfaceCurrentProblems =
+ new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+
+ mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
+ .child(EthernetContainerCurrentProblems.class).build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.current.problems.g.CurrentProblemList> ethCurrentProblemsList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Link Negotiation Unsuccessful")
+ .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null)
+ .build());
+ ethernetContainerCurrentProblems =
+ new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build();
+
+ NodeId nNodeId = new NodeId("nSky");
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getTransactionUtils()).thenReturn(transactionUtils);
+
+ }
+
+ @Test
+ public void testMWAirInterfaceWithProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceIID)).thenReturn(airInterfaceCurrentProblems);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.MWAIRINTERFACE, null, uid,
+ resultList);
+ }
+
+ @Test
+ public void testMWAirInterfaceWithoProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceIID)).thenReturn(null);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.MWAIRINTERFACE, null, uid,
+ resultList);
+ }
+
+ @Test
+ public void testEthernetContainer12WithProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(ethernetContainerCurrentProblems);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.ETHERNETCONTAINER12, null,
+ uid, resultList);
+ }
+
+ @Test
+ public void testEthernetContainer12WithNoProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(null);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.ETHERNETCONTAINER12, null,
+ uid, resultList);
+ }
+
+ @Test
+ public void testTdmContainer12WithProblems() throws Exception {
+ final Class<MwTdmContainerPac> clazzPac = MwTdmContainerPac.class;
+ final Class<MwTdmContainerPacKey> clazzPacKey = MwTdmContainerPacKey.class;
+ final Class<TdmContainerCurrentProblems> clazzProblems = TdmContainerCurrentProblems.class;
+
+ Constructor<MwTdmContainerPacKey> cons = clazzPacKey.getConstructor(UniversalId.class); // Avoid new()
+ InstanceIdentifier<TdmContainerCurrentProblems> mwEthInterfaceIID =
+ InstanceIdentifier.builder(clazzPac, cons.newInstance(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.tdm.container.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.tdm.container.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ TdmContainerCurrentProblems tdmInterfaceCurrentProblems =
+ new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.TDMCONTAINER, null, uid,
+ resultList);
+
+ }
+
+ @Test
+ public void testMwHybridMwStructureWithProblems() throws Exception {
+ final Class<MwHybridMwStructurePac> clazzPac = MwHybridMwStructurePac.class;
+ final Class<HybridMwStructureCurrentProblems> clazzProblems = HybridMwStructureCurrentProblems.class;
+
+ InstanceIdentifier<HybridMwStructureCurrentProblems> mwEthInterfaceIID =
+ InstanceIdentifier.builder(clazzPac, new MwHybridMwStructurePacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.hybrid.mw.structure.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.hybrid.mw.structure.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems =
+ new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwHybridMwStructurePac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testMwAirInterfaceDiversityStructureWithProblems() throws Exception {
+ final Class<MwAirInterfaceDiversityPac> clazzPac = MwAirInterfaceDiversityPac.class;
+ final Class<AirInterfaceDiversityCurrentProblems> clazzProblems = AirInterfaceDiversityCurrentProblems.class;
+
+ InstanceIdentifier<AirInterfaceDiversityCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwAirInterfaceDiversityPacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.diversity.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.diversity.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems =
+ new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwAirInterfaceDiversityPac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testMwPureEthernetStructureWithProblems() throws Exception {
+ final Class<MwPureEthernetStructurePac> clazzPac = MwPureEthernetStructurePac.class;
+ final Class<PureEthernetStructureCurrentProblems> clazzProblems = PureEthernetStructureCurrentProblems.class;
+
+ InstanceIdentifier<PureEthernetStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwPureEthernetStructurePacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.pure.ethernet.structure.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.pure.ethernet.structure.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems =
+ new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwPureEthernetStructurePac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testNullStructureWithProblems() throws Exception {
+
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+ wrapperMicrowaveModelRev180907.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE, null, uid,
+ resultList);
+
+ }
+
+ @Test
+ public void testgetLtpHistoricalPerformanceData() {
+ InstanceIdentifier<AirInterfaceConfiguration> mwAirInterfaceConfigurationIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceConfiguration.class).build();
+
+ AirInterfaceConfiguration airConfiguration =
+ new AirInterfaceConfigurationBuilder().setAirInterfaceName("TESTINTF").build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceConfigurationIID)).thenReturn(airConfiguration);
+
+ InstanceIdentifier<AirInterfaceHistoricalPerformances> mwAirInterfaceHistoricalPerformanceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceHistoricalPerformances.class).build();
+
+ PerformanceData performanceData = new PerformanceDataBuilder().build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder()
+ .setGranularityPeriod(GranularityPeriodType.Period15Min)
+ .setPerformanceData(performanceData).build());
+ AirInterfaceHistoricalPerformances airHistoricalPerformanceData =
+ new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData);
+
+ InstanceIdentifier<EthernetContainerHistoricalPerformances> ethContainerIID =
+ InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
+ .child(EthernetContainerHistoricalPerformances.class).build();
+
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.container.historical.performance.type.g.PerformanceData ethPerformanceData =
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.container.historical.performance.type.g.PerformanceDataBuilder()
+ .build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> ethHistPMList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder()
+ .setGranularityPeriod(GranularityPeriodType.Period24Hours)
+ .setPerformanceData(ethPerformanceData).build());
+ EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData =
+ new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList)
+ .build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData);
+
+ Lp lp = new LpBuilder().setUuid(uid).build();;
+ WrapperMicrowaveModelRev180907 wrapperMicrowaveModelRev180907 =
+ new WrapperMicrowaveModelRev180907(accessor, serviceProvider);
+
+ wrapperMicrowaveModelRev180907.getLtpHistoricalPerformanceData(ONFLayerProtocolName.MWAIRINTERFACE, lp);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java
new file mode 100644
index 000000000..0259fea5e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperMicrowaveModelRev181010.java
@@ -0,0 +1,343 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Constructor;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev181010;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.label.g.Label;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.LpBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerHistoricalPerformancesBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performance.type.g.PerformanceData;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performance.type.g.PerformanceDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfaceDiversityPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfaceDiversityPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwAirInterfacePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwEthernetContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwEthernetContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwHybridMwStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwHybridMwStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwPureEthernetStructurePac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwPureEthernetStructurePacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwTdmContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.MwTdmContainerPacKey;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.diversity.pac.AirInterfaceDiversityCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceConfiguration;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceConfigurationBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceHistoricalPerformances;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.air._interface.pac.AirInterfaceHistoricalPerformancesBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.ethernet.container.pac.EthernetContainerCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.tdm.container.pac.TdmContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.mw.tdm.container.pac.TdmContainerCurrentProblemsBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.current.problems.g.CurrentProblemList;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.current.problems.g.CurrentProblemListBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.diversity.current.performance.g.CurrentPerformanceDataList;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+@SuppressWarnings("deprecation")
+public class TestWrapperMicrowaveModelRev181010 {
+
+ NetconfBindingAccessor accessor;
+ DeviceManagerServiceProvider serviceProvider;
+ FaultData resultList;
+ UniversalId uid;
+ TransactionUtils transactionUtils;
+ DataBroker dataBroker;
+
+ InstanceIdentifier<AirInterfaceCurrentProblems> mwAirInterfaceIID;
+ @NonNull
+ AirInterfaceCurrentProblems airInterfaceCurrentProblems;
+
+ InstanceIdentifier<EthernetContainerCurrentProblems> mwEthInterfaceIID;
+ @NonNull
+ EthernetContainerCurrentProblems ethernetContainerCurrentProblems;
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ resultList = mock(FaultData.class);
+ transactionUtils = mock(TransactionUtils.class);
+ dataBroker = mock(DataBroker.class);
+
+ uid = new UniversalId("ABCD");
+
+ mwAirInterfaceIID = InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceCurrentProblems.class).build();
+ List<CurrentProblemList> currentProblemList =
+ Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal")
+ .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build());
+ airInterfaceCurrentProblems =
+ new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+
+ mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
+ .child(EthernetContainerCurrentProblems.class).build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.current.problems.g.CurrentProblemList> ethCurrentProblemsList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Link Negotiation Unsuccessful")
+ .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null)
+ .build());
+ ethernetContainerCurrentProblems =
+ new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build();
+
+ NodeId nNodeId = new NodeId("nSky");
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getTransactionUtils()).thenReturn(transactionUtils);
+ when(accessor.getDataBroker()).thenReturn(dataBroker);
+
+ }
+
+ @Test
+ public void testMWAirInterfaceWithProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceIID)).thenReturn(airInterfaceCurrentProblems);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.MWAIRINTERFACE, null, uid,
+ resultList);
+ }
+
+ @Test
+ public void testMWAirInterfaceWithoProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceIID)).thenReturn(null);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.MWAIRINTERFACE, null, uid,
+ resultList);
+ }
+
+ @Test
+ public void testEthernetContainer12WithProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(ethernetContainerCurrentProblems);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.ETHERNETCONTAINER12, null,
+ uid, resultList);
+ }
+
+ @Test
+ public void testEthernetContainer12WithNoProblems() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(null);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.ETHERNETCONTAINER12, null,
+ uid, resultList);
+ }
+
+ @Test
+ public void testTdmContainer12WithProblems() throws Exception {
+ final Class<MwTdmContainerPac> clazzPac = MwTdmContainerPac.class;
+ final Class<MwTdmContainerPacKey> clazzPacKey = MwTdmContainerPacKey.class;
+ final Class<TdmContainerCurrentProblems> clazzProblems = TdmContainerCurrentProblems.class;
+
+ Constructor<MwTdmContainerPacKey> cons = clazzPacKey.getConstructor(UniversalId.class); // Avoid new()
+ InstanceIdentifier<TdmContainerCurrentProblems> mwEthInterfaceIID =
+ InstanceIdentifier.builder(clazzPac, cons.newInstance(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.tdm.container.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.tdm.container.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ TdmContainerCurrentProblems tdmInterfaceCurrentProblems =
+ new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.TDMCONTAINER, null, uid,
+ resultList);
+
+ }
+
+ @Test
+ public void testMwHybridMwStructureWithProblems() throws Exception {
+ final Class<MwHybridMwStructurePac> clazzPac = MwHybridMwStructurePac.class;
+ final Class<HybridMwStructureCurrentProblems> clazzProblems = HybridMwStructureCurrentProblems.class;
+
+ InstanceIdentifier<HybridMwStructureCurrentProblems> mwEthInterfaceIID =
+ InstanceIdentifier.builder(clazzPac, new MwHybridMwStructurePacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.hybrid.mw.structure.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.hybrid.mw.structure.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems =
+ new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwHybridMwStructurePac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testMwAirInterfaceDiversityStructureWithProblems() throws Exception {
+ final Class<MwAirInterfaceDiversityPac> clazzPac = MwAirInterfaceDiversityPac.class;
+ final Class<AirInterfaceDiversityCurrentProblems> clazzProblems = AirInterfaceDiversityCurrentProblems.class;
+
+ InstanceIdentifier<AirInterfaceDiversityCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwAirInterfaceDiversityPacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.diversity.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.diversity.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems =
+ new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwAirInterfaceDiversityPac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testMwPureEthernetStructureWithProblems() throws Exception {
+ final Class<MwPureEthernetStructurePac> clazzPac = MwPureEthernetStructurePac.class;
+ final Class<PureEthernetStructureCurrentProblems> clazzProblems = PureEthernetStructureCurrentProblems.class;
+
+ InstanceIdentifier<PureEthernetStructureCurrentProblems> mwEthInterfaceIID = InstanceIdentifier
+ .builder(clazzPac, new MwPureEthernetStructurePacKey(uid)).child(clazzProblems).build();
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.pure.ethernet.structure.current.problems.g.CurrentProblemList> currentProblemList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.pure.ethernet.structure.current.problems.g.CurrentProblemListBuilder()
+ .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major)
+ .setSequenceNumber(2).setTimeStamp(null).build());
+ PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems =
+ new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems);
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE,
+ MwPureEthernetStructurePac.class, uid, resultList);
+
+ }
+
+ @Test
+ public void testNullStructureWithProblems() throws Exception {
+
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+ wrapperMicrowaveModelRev181010.readTheFaultsOfMicrowaveModel(ONFLayerProtocolName.STRUCTURE, null, uid,
+ resultList);
+
+ }
+
+ @Test
+ public void testgetLtpHistoricalPerformanceData() {
+ InstanceIdentifier<AirInterfaceConfiguration> mwAirInterfaceConfigurationIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceConfiguration.class).build();
+
+ AirInterfaceConfiguration airConfiguration = new AirInterfaceConfigurationBuilder().build();
+ when(accessor.getTransactionUtils().readData(dataBroker, LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceConfigurationIID)).thenReturn(airConfiguration);
+
+ InstanceIdentifier<AirInterfaceHistoricalPerformances> mwAirInterfaceHistoricalPerformanceIID =
+ InstanceIdentifier.builder(MwAirInterfacePac.class, new MwAirInterfacePacKey(uid))
+ .child(AirInterfaceHistoricalPerformances.class).build();
+
+ PerformanceData performanceData = new PerformanceDataBuilder().build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder()
+ .setGranularityPeriod(GranularityPeriodType.Period15Min)
+ .setPerformanceData(performanceData).build());
+ AirInterfaceHistoricalPerformances airHistoricalPerformanceData =
+ new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData);
+
+ InstanceIdentifier<EthernetContainerHistoricalPerformances> ethContainerIID =
+ InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid))
+ .child(EthernetContainerHistoricalPerformances.class).build();
+
+ org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.container.historical.performance.type.g.PerformanceData ethPerformanceData =
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.container.historical.performance.type.g.PerformanceDataBuilder()
+ .build();
+ List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> ethHistPMList =
+ Arrays.asList(
+ new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder()
+ .setGranularityPeriod(GranularityPeriodType.Period24Hours)
+ .setPerformanceData(ethPerformanceData).build());
+ EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData =
+ new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList)
+ .build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData);
+
+ Lp lp = new LpBuilder().setUuid(uid).build();
+ WrapperMicrowaveModelRev181010 wrapperMicrowaveModelRev181010 =
+ new WrapperMicrowaveModelRev181010(accessor, serviceProvider);
+
+ wrapperMicrowaveModelRev181010.getLtpHistoricalPerformanceData(ONFLayerProtocolName.MWAIRINTERFACE, lp);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java
new file mode 100644
index 000000000..0694bcecc
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/test/TestWrapperPTPModelRev170208.java
@@ -0,0 +1,93 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.test;
+
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.WrapperPTPModelRev170208;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceList;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceListBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.InstanceListKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.instance.list.PortDsList;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.instance.list.PortDsListBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.port.ds.entry.PortIdentity;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset.rev170208.port.ds.entry.PortIdentityBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.mockito.Mockito.*;
+
+public class TestWrapperPTPModelRev170208 {
+
+ private static final String NODEID = "node1";
+ NetconfBindingAccessor netconfAccessor;
+ Capabilities capabilities;
+ TransactionUtils transactionUtils;
+ DataBroker dataBroker;
+
+ @Before
+ public void init() {
+ netconfAccessor = mock(NetconfBindingAccessor.class);
+ capabilities = mock(Capabilities.class);
+ dataBroker = mock(DataBroker.class);
+ transactionUtils = mock(TransactionUtils.class);
+
+ when(netconfAccessor.getNodeId()).thenReturn(new NodeId(NODEID));
+ when(netconfAccessor.getCapabilites()).thenReturn(capabilities);
+ when(netconfAccessor.getTransactionUtils()).thenReturn(transactionUtils);
+ when(netconfAccessor.getDataBroker()).thenReturn(dataBroker);
+
+ PortIdentity portIdentity = new PortIdentityBuilder().setPortNumber(10).build();
+ List<PortDsList> portDsList = Arrays.asList(new PortDsListBuilder().setPortIdentity(portIdentity).build());
+ InstanceList instanceList = new InstanceListBuilder().setPortDsList(portDsList).build();
+ InstanceIdentifier<InstanceList> PTPINSTANCES_IID =
+ InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(1)).build();
+ when(netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, PTPINSTANCES_IID)).thenReturn(instanceList);
+ }
+
+ @Test
+ public void test() {
+
+ when(capabilities.isSupportingNamespaceAndRevision(InstanceList.QNAME)).thenReturn(false);
+
+ WrapperPTPModelRev170208.initSynchronizationExtension(netconfAccessor);
+ }
+
+ @Test
+ public void test1() {
+
+ when(capabilities.isSupportingNamespaceAndRevision(InstanceList.QNAME)).thenReturn(true);
+
+ WrapperPTPModelRev170208.initSynchronizationExtension(netconfAccessor);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/test/TestONFCoreNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/test/TestONFCoreNetworkElementFactory.java
new file mode 100644
index 000000000..be0191f87
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/impl/test/TestONFCoreNetworkElementFactory.java
@@ -0,0 +1,127 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.test;
+
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.io.File;
+import java.io.IOException;
+import java.util.Optional;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev170324;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev180907;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.WrapperMicrowaveModelRev181010;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.DeviceManagerOnfConfiguration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.ONFCoreNetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.QName;
+
+public class TestONFCoreNetworkElementFactory {
+
+ static NetconfBindingAccessor accessor;
+ static DeviceManagerServiceProvider serviceProvider;
+ static Capabilities capabilities;
+ static DataBroker dataBroker;
+ static NodeId nNodeId;
+ static DeviceManagerOnfConfiguration configuration;
+ QName qCapability;
+ static File configFile;
+
+
+ @BeforeClass
+ public static void init() throws InterruptedException, IOException {
+
+ capabilities = mock(Capabilities.class);
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ dataBroker = mock(DataBroker.class);
+
+ configFile = new File("devicemanager.properties");
+ ConfigurationFileRepresentation configFileRep = new ConfigurationFileRepresentation(configFile);
+ configuration = new DeviceManagerOnfConfiguration(configFileRep);
+
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ //when(serviceProvider.getDataProvider()).thenReturn(dataProvider);
+ nNodeId = new NodeId("nSky");
+ NetconfBindingAccessor bindingAccessor = mock(NetconfBindingAccessor.class);
+ when(bindingAccessor.getNodeId()).thenReturn(nNodeId);
+ when(bindingAccessor.getCapabilites()).thenReturn(capabilities);
+
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor));
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(NetworkElement.QNAME)).thenReturn(true);
+
+ }
+
+ @AfterClass
+ public static void after() {
+ configFile.delete();
+ }
+
+ @Test
+ public void testCreateMWModelRev170324() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev170324.QNAME))
+ .thenReturn(true);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev180907.QNAME))
+ .thenReturn(false);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev181010.QNAME))
+ .thenReturn(false);
+ ONFCoreNetworkElementFactory factory = new ONFCoreNetworkElementFactory(configuration);
+ assertTrue(factory.create(accessor, serviceProvider).isPresent());
+ }
+
+ @Test
+ public void testCreateMWModelRev180907() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev170324.QNAME))
+ .thenReturn(false);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev180907.QNAME))
+ .thenReturn(true);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev181010.QNAME))
+ .thenReturn(false);
+ ONFCoreNetworkElementFactory factory = new ONFCoreNetworkElementFactory(configuration);
+ assertTrue(factory.create(accessor, serviceProvider).isPresent());
+ }
+
+ @Test
+ public void testCreateMWModelRev181010() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev170324.QNAME))
+ .thenReturn(false);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev180907.QNAME))
+ .thenReturn(false);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(WrapperMicrowaveModelRev181010.QNAME))
+ .thenReturn(true);
+ ONFCoreNetworkElementFactory factory = new ONFCoreNetworkElementFactory(configuration);
+ assertTrue(factory.create(accessor, serviceProvider).isPresent());
+ }
+
+ @After
+ public void cleanUp() throws Exception {
+
+ }
+}
+
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Basic.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Basic.java
new file mode 100644
index 000000000..25fba9281
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Basic.java
@@ -0,0 +1,98 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.util.Optional;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.OnfMicrowaveModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.DeviceManagerOnfConfiguration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne.ONFCoreNetworkElement12Microwave;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.EquipmentService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.NetworkElementPac;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class TestONFCoreNetworkElement12Basic {
+
+ NetconfBindingAccessor accessor;
+ DeviceManagerServiceProvider serviceProvider;
+ Capabilities capabilities;
+ TransactionUtils transactionUtils;
+ NetworkElement optionalNe;
+ OnfMicrowaveModel onfMicrowaveModel;
+ FaultService faultService;
+ EquipmentService equipmentService;
+ DeviceManagerOnfConfiguration configuration;
+
+ protected static final InstanceIdentifier<NetworkElement> NETWORKELEMENT_IID =
+ InstanceIdentifier.builder(NetworkElement.class).build();
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ capabilities = mock(Capabilities.class);
+ transactionUtils = mock(TransactionUtils.class);
+ onfMicrowaveModel = mock(OnfMicrowaveModel.class);
+ faultService = mock(FaultService.class);
+ equipmentService = mock(EquipmentService.class);
+ configuration = mock(DeviceManagerOnfConfiguration.class);
+
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+ when(serviceProvider.getEquipmentService()).thenReturn(equipmentService);
+
+ NodeId nNodeId = new NodeId("nSky");
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(NetworkElementPac.QNAME)).thenReturn(true);
+ when(accessor.getTransactionUtils()).thenReturn(transactionUtils);
+ NetconfBindingAccessor bindingAccessor = mock(NetconfBindingAccessor.class);
+ when(bindingAccessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor));
+
+ }
+
+ @Test
+ public void test1() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ NETWORKELEMENT_IID)).thenReturn(null);
+
+ ONFCoreNetworkElement12Microwave onfCoreNetworkElement12MW =
+ new ONFCoreNetworkElement12Microwave(accessor, serviceProvider, configuration, onfMicrowaveModel);
+ onfCoreNetworkElement12MW.prepareCheck();
+
+ EventlogEntity eventlogEntity = mock(EventlogEntity.class);
+ when(eventlogEntity.getObjectId()).thenReturn("ABCD");
+ when(eventlogEntity.getAttributeName()).thenReturn("/equipment-pac/equipment-current-problems");
+
+ onfCoreNetworkElement12MW.notificationActor(eventlogEntity);
+ }
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Microwave.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Microwave.java
new file mode 100644
index 000000000..ab907ead7
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ne/test/TestONFCoreNetworkElement12Microwave.java
@@ -0,0 +1,113 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.OnfMicrowaveModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.impl.DeviceManagerOnfConfiguration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ne.ONFCoreNetworkElement12Microwave;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.EquipmentService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.NetworkElement;
+import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.onf.core.model.conditional.packages.rev170402.NetworkElementPac;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class TestONFCoreNetworkElement12Microwave {
+
+ NetconfBindingAccessor accessor;
+ DeviceManagerServiceProvider serviceProvider;
+ Capabilities capabilities;
+ TransactionUtils transactionUtils;
+ NetworkElement optionalNe;
+ OnfMicrowaveModel onfMicrowaveModel;
+ FaultService faultService;
+ EquipmentService equipmentService;
+ DeviceManagerOnfConfiguration configuration;
+
+ protected static final InstanceIdentifier<NetworkElement> NETWORKELEMENT_IID =
+ InstanceIdentifier.builder(NetworkElement.class).build();
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ capabilities = mock(Capabilities.class);
+ transactionUtils = mock(TransactionUtils.class);
+ onfMicrowaveModel = mock(OnfMicrowaveModel.class);
+ faultService = mock(FaultService.class);
+ equipmentService = mock(EquipmentService.class);
+ configuration = mock(DeviceManagerOnfConfiguration.class);
+
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+ when(serviceProvider.getEquipmentService()).thenReturn(equipmentService);
+
+ NodeId nNodeId = new NodeId("nSky");
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(NetworkElementPac.QNAME)).thenReturn(true);
+ when(accessor.getTransactionUtils()).thenReturn(transactionUtils);
+ }
+
+ @Test
+ public void test() {
+ optionalNe = mock(NetworkElement.class);
+
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ NETWORKELEMENT_IID)).thenReturn(optionalNe);
+
+ ONFCoreNetworkElement12Microwave onfCoreNetworkElement12MW =
+ new ONFCoreNetworkElement12Microwave(accessor, serviceProvider, configuration, onfMicrowaveModel);
+ onfCoreNetworkElement12MW.prepareCheck();
+
+ EventlogEntity eventlogEntity = mock(EventlogEntity.class);
+ when(eventlogEntity.getObjectId()).thenReturn("ABCD");
+ when(eventlogEntity.getAttributeName()).thenReturn("/network-element/extension[value-name=\"top-level-equipment\"]/value");
+
+ onfCoreNetworkElement12MW.notificationActor(eventlogEntity);
+
+ }
+
+
+ @Test
+ public void test1() {
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ NETWORKELEMENT_IID)).thenReturn(null);
+
+ ONFCoreNetworkElement12Microwave onfCoreNetworkElement12MW =
+ new ONFCoreNetworkElement12Microwave(accessor, serviceProvider, configuration, onfMicrowaveModel);
+ onfCoreNetworkElement12MW.prepareCheck();
+
+ EventlogEntity eventlogEntity = mock(EventlogEntity.class);
+ when(eventlogEntity.getObjectId()).thenReturn("ABCD");
+ when(eventlogEntity.getAttributeName()).thenReturn("/equipment-pac/equipment-current-problems");
+
+ onfCoreNetworkElement12MW.notificationActor(eventlogEntity);
+ }
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/resources/simplelogger.properties b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/resources/simplelogger.properties
new file mode 100644
index 000000000..9af26dc96
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/resources/simplelogger.properties
@@ -0,0 +1,61 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# SLF4J's SimpleLogger configuration file
+# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err.
+
+# Default logging detail level for all instances of SimpleLogger.
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, defaults to "info".
+org.slf4j.simpleLogger.defaultLogLevel=info
+
+# Logging detail level for a SimpleLogger instance named "xxx.yyy.zzz".
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, the default logging detail level is used.
+# org.slf4j.simpleLogger.log.xxx.yyy=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.test=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.database=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.archiveservice=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes.Resources=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container=info
+
+# Set to true if you want the current date and time to be included in output messages.
+# Default is false, and will output the number of milliseconds elapsed since startup.
+#org.slf4j.simpleLogger.showDateTime=false
+
+# The date and time format to be used in the output messages.
+# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat.
+# If the format is not specified or is invalid, the default format is used.
+# The default format is yyyy-MM-dd HH:mm:ss:SSS Z.
+#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
+
+# Set to true if you want to output the current thread name.
+# Defaults to true.
+#org.slf4j.simpleLogger.showThreadName=true
+
+# Set to true if you want the Logger instance name to be included in output messages.
+# Defaults to true.
+#org.slf4j.simpleLogger.showLogName=true
+
+# Set to true if you want the last component of the name to be included in output messages.
+# Defaults to false.
+#org.slf4j.simpleLogger.showShortLogName=false
diff --git a/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml b/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml
new file mode 100644
index 000000000..7e9cf4cae
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>single-feature-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf14-feature</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>feature</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf14-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml b/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml
new file mode 100755
index 000000000..01a2e4a0e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf14-installer</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <properties>
+ <application.name>sdnr-wt-devicemanager-onf14</application.name>
+ <include.transitive.dependencies>false</include.transitive.dependencies>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-feature</artifactId>
+ <version>${project.version}</version>
+ <type>xml</type>
+ <classifier>features</classifier>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>maven-repo-zip</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <attach>true</attach>
+ <finalName>stage/${application.name}-${project.version}</finalName>
+ <descriptors>
+ <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
+ </descriptors>
+ <appendAssemblyId>true</appendAssemblyId>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-nested-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <transitive>true</transitive>
+ <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>true</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf14/installer/src/assembly/assemble_mvnrepo_zip.xml b/sdnr/wt/devicemanager-onap/onf14/installer/src/assembly/assemble_mvnrepo_zip.xml
new file mode 100644
index 000000000..dfe5060bf
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -0,0 +1,47 @@
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<!-- Defines how we build the .zip file which is our distribution. -->
+
+<assembly
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <id>repo</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <!-- we want "system" and related files right at the root level
+ as this file is suppose to be unzip on top of a karaf
+ distro. -->
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>target/assembly/</directory>
+ <outputDirectory>.</outputDirectory>
+ <excludes>
+ </excludes>
+ </fileSet>
+ </fileSets>
+
+</assembly>
diff --git a/sdnr/wt/devicemanager-onap/onf14/model/pom.xml b/sdnr/wt/devicemanager-onap/onf14/model/pom.xml
new file mode 100644
index 000000000..52fc456a6
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/model/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf14-model</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ </properties>
+
+ <dependencies>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf14/model/src/main/yang/devicemanager-onf14.yang b/sdnr/wt/devicemanager-onap/onf14/model/src/main/yang/devicemanager-onf14.yang
new file mode 100644
index 000000000..4dc210f38
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/model/src/main/yang/devicemanager-onf14.yang
@@ -0,0 +1,37 @@
+module devicemanager-onf14 {
+
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:devicemanager-onf14";
+ prefix devicemanager-onf14;
+
+ organization
+ "highstreet technologies GmbH";
+ contact
+ "Web: <https://highstreet-technologies.com>
+ ONF14: reference";
+
+ description
+ "DeviceManager ONF Core model 1.4 Api Module
+
+ Copyright 2020 9 highstreet technologies GmbH Intellectual Property.
+ All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-06-26 {
+ description
+ "Initial revision";
+ reference
+ "https://jira.onap.org/browse/SDNC-???";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/pom.xml b/sdnr/wt/devicemanager-onap/onf14/pom.xml
new file mode 100755
index 000000000..10c5f9e5e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2018 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf14-top</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <modules>
+ <module>model</module>
+ <module>provider</module>
+ <module>feature</module>
+ <module>installer</module>
+ </modules>
+
+ <properties>
+ <feature-name>sdnr-wt-devicemanager-onap-onf14</feature-name>
+ </properties>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/copyright b/sdnr/wt/devicemanager-onap/onf14/provider/copyright
new file mode 100644
index 000000000..754b6218f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/copyright
@@ -0,0 +1,17 @@
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml b/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml
new file mode 100644
index 000000000..89a83d909
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf14-provider</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
+ <buildtime>${maven.build.timestamp} UTC</buildtime>
+ <databaseport>49400</databaseport>
+ </properties>
+
+ <dependencies>
+ <!-- begin for testing -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- end for testing -->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-onf14-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-core-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-dom-codec-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-netconfnode-state-service-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>sal-netconf-connector</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-singleton-common-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+ <artifactId>rfc6991-ietf-yang-types</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java
new file mode 100644
index 000000000..5c57054ff
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java
@@ -0,0 +1,89 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
+
+import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DeviceManagerOnf14Impl implements AutoCloseable {
+
+ private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerOnf14Impl.class);
+ private static final String APPLICATION_NAME = "DeviceManagerOnf14";
+ @SuppressWarnings("unused")
+ private static final String CONFIGURATIONFILE = "etc/devicemanager-onf14.properties";
+
+
+ private NetconfNetworkElementService netconfNetworkElementService;
+
+ private HtDatabaseClient htDatabaseClient;
+ private Boolean devicemanagerInitializationOk = false;
+ private FactoryRegistration<Onf14NetworkElementFactory> resOnf;
+
+ // Blueprint begin
+ public DeviceManagerOnf14Impl() {
+ LOG.info("Creating provider for {}", APPLICATION_NAME);
+ resOnf = null;
+ }
+
+ public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) {
+ this.netconfNetworkElementService = netconfNetworkElementService;
+ }
+
+ public void init() throws Exception {
+
+ LOG.info("Session Initiated start {}", APPLICATION_NAME);
+
+ resOnf = netconfNetworkElementService.registerBindingNetworkElementFactory(new Onf14NetworkElementFactory());
+
+
+ netconfNetworkElementService.writeToEventLog(APPLICATION_NAME, "startup", "done");
+ this.devicemanagerInitializationOk = true;
+
+ LOG.info("Session Initiated end. Initialization done {}", devicemanagerInitializationOk);
+ }
+ // Blueprint end
+
+ @Override
+ public void close() throws Exception {
+ LOG.info("closing ...");
+ close(htDatabaseClient);
+ close(resOnf);
+ LOG.info("closing done");
+ }
+
+ /**
+ * Used to close all Services, that should support AutoCloseable Pattern
+ *
+ * @param toClose
+ * @throws Exception
+ */
+ private void close(AutoCloseable... toCloseList) {
+ for (AutoCloseable element : toCloseList) {
+ if (element != null) {
+ try {
+ element.close();
+ } catch (Exception e) {
+ LOG.warn("Fail during close: ", e);
+ }
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java
new file mode 100644
index 000000000..8396e8d9c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java
@@ -0,0 +1,54 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
+
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.Configuration;
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
+
+public class Onf14Configuration implements Configuration {
+
+ private static final String SECTION_MARKER_DMONF = "dmonf14";
+
+ private static final String DEFAULT_VALUE_ENABLED = "${SDNR_ONF14_USEDOMAPI}";
+ private static final String PROPERTY_KEY_USEDOMAPI = "useDomApi";
+
+ private final ConfigurationFileRepresentation configuration;
+
+ public Onf14Configuration(ConfigurationFileRepresentation configuration) {
+ this.configuration = configuration;
+ this.configuration.addSection(SECTION_MARKER_DMONF);
+ defaults();
+ }
+
+ public boolean isUseDomApiEnabled() {
+
+ return configuration.getPropertyBoolean(SECTION_MARKER_DMONF, PROPERTY_KEY_USEDOMAPI);
+ }
+
+ @Override
+ public String getSectionName() {
+ return SECTION_MARKER_DMONF;
+ }
+
+ @Override
+ public void defaults() {
+ //Add default if not available
+ configuration.setPropertyIfNotAvailable(SECTION_MARKER_DMONF, PROPERTY_KEY_USEDOMAPI, DEFAULT_VALUE_ENABLED);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java
new file mode 100644
index 000000000..177f25e1e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java
@@ -0,0 +1,218 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.equipment.Onf14DomEquipmentManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14DomInterfacePacManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.StreamKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.Equipment;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Representation of ONF Core model 1.4 device Top level element is "ControlConstruct" (replaces "NetworkElement" of
+ * older ONF Version) NOTE: This class is still under development due to unmet dependencies (especially the ones related
+ * to DOM notifications) in ODL. Once the dependencies are complete, this class will replace the ONF14NetworkElement
+ */
+public class Onf14DomNetworkElement implements NetworkElement {
+
+ private static final Logger log = LoggerFactory.getLogger(Onf14DomNetworkElement.class);
+
+ // protected static final InstanceIdentifier<ControlConstruct> CONTROLCONSTRUCT_IID =
+ // InstanceIdentifier.builder(ControlConstruct.class).build();
+ protected static final YangInstanceIdentifier CONTROLCONSTRUCT_IID =
+ YangInstanceIdentifier.builder().node(ControlConstruct.QNAME).build();
+
+ private final NetconfDomAccessor netconfDomAccessor;
+ private final DataProvider databaseService;
+ private final @NonNull FaultService faultService;
+ private final @NonNull NotificationService notificationService;
+
+ private final Onf14ToInternalDataModel onf14Mapper;
+
+ private final @NonNull Onf14DomEquipmentManager equipmentManager;
+ private final @NonNull Onf14DomInterfacePacManager interfacePacManager;
+ private final @NonNull String namespaceRevision;
+
+ private boolean experimental;
+
+
+ public Onf14DomNetworkElement(NetconfDomAccessor netconfDomAccessor, DeviceManagerServiceProvider serviceProvider,
+ String namespaceRevision) {
+ log.info("Create {}", Onf14DomNetworkElement.class.getSimpleName());
+ this.netconfDomAccessor = netconfDomAccessor;
+ this.databaseService = serviceProvider.getDataProvider();
+ this.notificationService = serviceProvider.getNotificationService();
+ this.faultService = serviceProvider.getFaultService();
+ this.namespaceRevision = namespaceRevision;
+ this.onf14Mapper = new Onf14ToInternalDataModel();
+ this.equipmentManager = new Onf14DomEquipmentManager(netconfDomAccessor, databaseService, onf14Mapper);
+
+ this.interfacePacManager = new Onf14DomInterfacePacManager(netconfDomAccessor, serviceProvider);
+ this.experimental = false;
+ }
+
+ /**
+ * reading the inventory (CoreModel 1.4 Equipment Model) and adding it to the DB
+ */
+ public void initialReadFromNetworkElement() {
+
+ //Read complete device tree
+ Optional<ControlConstruct> oControlConstruct = readControlConstruct(netconfDomAccessor);
+
+ if (oControlConstruct.isPresent()) {
+ ControlConstruct controlConstruct = oControlConstruct.get();
+
+ equipmentManager.setEquipmentData(controlConstruct);
+
+ //-- Start for experimental purpose
+ if (experimental) {
+ log.warn("Experimental code activated");
+ for (UniversalId uuid : equipmentManager.getEquipmentUuidList()) {
+ log.info("Read data with id {}", uuid);
+ Optional<Equipment> res1 = equipmentManager.readEquipmentInstance(netconfDomAccessor, uuid);
+ log.info("Res1: {}", res1.isPresent() ? res1.get() : "No data1");
+
+ /*List<DataObject> res2 = equipmentManager.readEquipmentList(netconfDomAccessor);
+ log.info("Res2: {}", res2.isPresent() ? res2.get() : "No data2");*/
+
+ equipmentManager.readTopLevelEquipment(netconfDomAccessor);
+ //Do it only once for test purpose and break
+ break;
+ }
+ List<DataObject> res2 = equipmentManager.readEquipmentList(netconfDomAccessor);
+ //log.info("Res2: {}", res2.isPresent() ? res2.get() : "No data2");
+ for (DataObject dobj : res2) {
+ Equipment eqpt = (Equipment) dobj;
+ log.info("Equipment local ID is : {}", eqpt.getLocalId());
+ }
+
+ equipmentManager.readTopLevelEquipment(netconfDomAccessor);
+ }
+ //-- End for experimental purpose
+
+ // storing all the LTP UUIDs internally, for later usage, for air-interface and ethernet-container
+ interfacePacManager.readKeys(controlConstruct);
+
+ // Read all fault data
+ FaultData resultList = new FaultData();
+
+ int problems = faultService.removeAllCurrentProblemsOfNode(netconfDomAccessor.getNodeId());
+ log.debug("Removed all {} problems from database at registration", problems);
+
+ interfacePacManager.readAllAirInterfaceCurrentProblems(netconfDomAccessor, controlConstruct, resultList);
+ problems = resultList.size();
+ log.debug("NETCONF read air interface current problems completed. Got back {} problems.", problems);
+ /*
+ readAllEhernetContainerCurrentProblems(resultList);
+ problems = resultList.size() - problems;
+ log.debug("NETCONF read current problems completed. Got back {} problems.", resultList.size());
+
+ readAllWireInterfaceCurrentProblems(resultList);
+ problems = resultList.size();
+ log.debug("NETCONF read wire interface current problems completed. Got back {} problems.", problems);
+ */
+ faultService.initCurrentProblemStatus(netconfDomAccessor.getNodeId(), resultList);
+ log.debug("DB write current problems completed");
+ }
+ }
+
+ /**
+ * @param nNode set core-model-capability
+ */
+ public void setCoreModel() {
+ NetworkElementConnectionBuilder eb = new NetworkElementConnectionBuilder();
+ eb.setCoreModelCapability(namespaceRevision);
+ databaseService.updateNetworkConnection22(eb.build(), netconfDomAccessor.getNodeId().getValue());
+ }
+
+ @Override
+ public void register() {
+ // Set core-model revision value in "core-model-capability" field
+ setCoreModel();
+ initialReadFromNetworkElement();
+
+ if (netconfDomAccessor.isNotificationsRFC5277Supported()) {
+ // register listener
+ interfacePacManager.subscribeNotifications();
+ // Output notification streams to LOG
+ Map<StreamKey, Stream> streams = netconfDomAccessor.getNotificationStreamsAsMap();
+ log.info("Available notifications streams: {}", streams);
+ // Register to default stream
+ netconfDomAccessor.invokeCreateSubscription();
+ }
+ }
+
+ @Override
+ public void deregister() {}
+
+
+ @Override
+ public NodeId getNodeId() {
+ return netconfDomAccessor.getNodeId();
+ }
+
+ @Override
+ public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
+ return Optional.empty();
+ }
+
+ @Override
+ public void warmstart() {}
+
+ @Override
+ public Optional<NetconfAccessor> getAcessor() {
+ return Optional.of(netconfDomAccessor);
+ }
+
+ @Override
+ public NetworkElementDeviceType getDeviceType() {
+ return NetworkElementDeviceType.Wireless;
+ }
+
+ private static Optional<ControlConstruct> readControlConstruct(NetconfDomAccessor netconfDomAccessor) {
+ return netconfDomAccessor.readData(LogicalDatastoreType.CONFIGURATION, CONTROLCONSTRUCT_IID,
+ ControlConstruct.class);
+ }
+
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java
new file mode 100644
index 000000000..f7a49e2d5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java
@@ -0,0 +1,548 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterface;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14EthernetContainer;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14EthernetContainerNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterface;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LAYERPROTOCOLNAMETYPEAIRLAYER;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.lp.spec.AirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.LAYERPROTOCOLNAMETYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.Equipment;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.EquipmentKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPoint;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocol;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.lp.spec.EthernetContainerPac;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.pac.EthernetContainerCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LAYERPROTOCOLNAMETYPEWIRELAYER;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.lp.spec.WireInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.pac.WireInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Repesentation of ONF Core model 1.4 device Top level element is "ControlConstruct" (replaces "NetworkElement" of
+ * older ONF Version)
+ */
+public class Onf14NetworkElement implements NetworkElement {
+
+ private static final Logger log = LoggerFactory.getLogger(Onf14NetworkElement.class);
+
+ protected static final InstanceIdentifier<ControlConstruct> CONTROLCONSTRUCT_IID =
+ InstanceIdentifier.builder(ControlConstruct.class).build();
+
+ private static final int EQUIPMENTROOTLEVEL = 0;
+
+ private final NetconfBindingAccessor netconfAccessor;
+ private final DataProvider databaseService;
+ private final Onf14ToInternalDataModel onf14Mapper;
+ private final @NonNull FaultService faultService;
+
+ // for storing the Equipment UUIDs that are inserted in the DB
+ private final List<String> equipmentUuidList = new ArrayList<String>();
+
+ // air interface related members
+ private final List<TechnologySpecificPacKeys> airInterfaceList = new ArrayList<TechnologySpecificPacKeys>();
+ @SuppressWarnings("unused")
+ private ListenerRegistration<NotificationListener> airInterfaceNotificationListenerHandler;
+ private @NonNull final Onf14AirInterfaceNotificationListener airInterfaceNotificationListener;
+
+ // ethernet container related members
+ private final List<TechnologySpecificPacKeys> ethernetContainerList = new ArrayList<TechnologySpecificPacKeys>();
+ @SuppressWarnings("unused")
+ private ListenerRegistration<NotificationListener> etherneContainerNotificationListenerHandler;
+ private @NonNull final Onf14EthernetContainerNotificationListener ethernetContainerNotificationListener;
+
+ // wire interface related members
+ private final List<TechnologySpecificPacKeys> wireInterfaceList = new ArrayList<TechnologySpecificPacKeys>();
+ @SuppressWarnings("unused")
+ private ListenerRegistration<NotificationListener> wireInterfaceNotificationListenerHandler;
+ private @NonNull final Onf14WireInterfaceNotificationListener wireInterfaceNotificationListener;
+
+ Onf14NetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) {
+ log.info("Create {}", Onf14NetworkElement.class.getSimpleName());
+ this.netconfAccessor = netconfAccess;
+ this.databaseService = serviceProvider.getDataProvider();
+ this.faultService = serviceProvider.getFaultService();
+ this.onf14Mapper = new Onf14ToInternalDataModel();
+ this.airInterfaceNotificationListenerHandler = null;
+ this.airInterfaceNotificationListener =
+ new Onf14AirInterfaceNotificationListener(netconfAccess, serviceProvider);
+ this.etherneContainerNotificationListenerHandler = null;
+ ethernetContainerNotificationListener =
+ new Onf14EthernetContainerNotificationListener(netconfAccess, serviceProvider);
+ this.wireInterfaceNotificationListenerHandler = null;
+ wireInterfaceNotificationListener = new Onf14WireInterfaceNotificationListener(netconfAccess, serviceProvider);
+ }
+
+ public void initialReadFromNetworkElement() {
+
+ // reading the inventory (CoreModel 1.4 Equipment Model) and adding it to the DB
+ readEquipmentData();
+
+ FaultData resultList = new FaultData();
+
+ int problems = faultService.removeAllCurrentProblemsOfNode(netconfAccessor.getNodeId());
+ log.debug("Removed all {} problems from database at registration", problems);
+
+ readAllAirInterfaceCurrentProblems(resultList);
+ problems = resultList.size();
+ log.debug("NETCONF read air interface current problems completed. Got back {} problems.", problems);
+
+ readAllEhernetContainerCurrentProblems(resultList);
+ problems = resultList.size() - problems;
+ log.debug("NETCONF read current problems completed. Got back {} problems.", resultList.size());
+
+ readAllWireInterfaceCurrentProblems(resultList);
+ problems = resultList.size();
+ log.debug("NETCONF read wire interface current problems completed. Got back {} problems.", problems);
+
+ faultService.initCurrentProblemStatus(netconfAccessor.getNodeId(), resultList);
+ log.debug("DB write current problems completed");
+
+ }
+
+ public void readAllAirInterfaceCurrentProblems(FaultData resultList) {
+
+ int idxStart; // Start index for debug messages
+
+ for (TechnologySpecificPacKeys key : airInterfaceList) {
+ idxStart = resultList.size();
+
+ readAirInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+ debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
+ }
+ }
+
+ public void readAllEhernetContainerCurrentProblems(FaultData resultList) {
+
+ int idxStart; // Start index for debug messages
+
+ for (TechnologySpecificPacKeys key : ethernetContainerList) {
+ idxStart = resultList.size();
+
+ readEthernetConainerCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+ debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
+ }
+ }
+
+ public void readAllWireInterfaceCurrentProblems(FaultData resultList) {
+
+ int idxStart; // Start index for debug messages
+
+ for (TechnologySpecificPacKeys key : wireInterfaceList) {
+ idxStart = resultList.size();
+
+ readWireInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+ debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
+ }
+ }
+
+ /**
+ * @param nNode set core-model-capability
+ */
+ public void setCoreModel(@NonNull NetconfNode nNode) {
+ NetworkElementConnectionBuilder eb = new NetworkElementConnectionBuilder();
+ log.info("In setCoreModel for Onf14NetworkElement");
+ String namespaceRevision;
+ QName QNAME_COREMODEL14 = QName.create("urn:onf:yang:core-model-1-4", "2019-11-27", "core-model-1-4").intern();
+
+ Capabilities availableCapabilities = Capabilities.getAvailableCapabilities(nNode);
+ namespaceRevision = availableCapabilities.getRevisionForNamespace(QNAME_COREMODEL14);
+ log.info("In setCoreModel for Onf14NetworkElement- namespaceRevision = " + namespaceRevision);
+ if (Capabilities.isNamespaceSupported(namespaceRevision)) {
+ eb.setCoreModelCapability(namespaceRevision);
+ } else {
+ eb.setCoreModelCapability("Unsupported");
+ }
+ databaseService.updateNetworkConnection22(eb.build(), netconfAccessor.getNodeId().getValue());
+ }
+
+ @Override
+ public void register() {
+ // Set core-model revision value in "core-model-capability" field
+ setCoreModel(netconfAccessor.getNetconfNode());
+ initialReadFromNetworkElement();
+
+ // Register netconf stream
+ airInterfaceNotificationListenerHandler =
+ netconfAccessor.doRegisterNotificationListener(airInterfaceNotificationListener);
+ etherneContainerNotificationListenerHandler =
+ netconfAccessor.doRegisterNotificationListener(ethernetContainerNotificationListener);
+ wireInterfaceNotificationListenerHandler =
+ netconfAccessor.doRegisterNotificationListener(wireInterfaceNotificationListener);
+ //netconfAccessor.registerNotificationsStream(NetconfBindingAccessor.DefaultNotificationsStream);
+ }
+
+ @Override
+ public void deregister() {}
+
+
+ @Override
+ public NodeId getNodeId() {
+ return netconfAccessor.getNodeId();
+ }
+
+ @Override
+ public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
+ return Optional.empty();
+ }
+
+ @Override
+ public void warmstart() {}
+
+ @Override
+ public Optional<NetconfAccessor> getAcessor() {
+ return Optional.of(netconfAccessor);
+ }
+
+ @Override
+ public NetworkElementDeviceType getDeviceType() {
+ return NetworkElementDeviceType.Wireless;
+ }
+
+ private void readEquipmentData() {
+
+ Optional<ControlConstruct> controlConstruct = readControlConstruct(netconfAccessor);
+
+ if (controlConstruct.isPresent()) {
+ // the top-level-equipment list contains the root objects of the Equipment Model
+ log.debug("Getting list of topLevelEquipment for mountpoint {}", netconfAccessor.getNodeId());
+ @Nullable
+ List<UniversalId> topLevelEquipment = controlConstruct.get().getTopLevelEquipment();
+
+ if (topLevelEquipment != null) {
+ List<Inventory> inventoryList = new ArrayList<>();
+ for (UniversalId uuid : topLevelEquipment) {
+ log.debug("Got back topLevelEquipment with uuid {}", uuid.getValue());
+
+ // adding all root Equipment objects to the DB
+ @Nullable
+ Equipment equipmentInstance = readEquipmentInstance(netconfAccessor, uuid);
+ if (equipmentInstance != null) {
+ // recursively adding the root equipment and all its children into the DB
+ collectEquipment(inventoryList, equipmentInstance, null, EQUIPMENTROOTLEVEL);
+ }
+ }
+ this.databaseService.writeInventory(this.netconfAccessor.getNodeId().getValue(), inventoryList);
+
+ }
+ }
+
+ // storing all the LTP UUIDs internally, for later usage, for air-interface and ethernet-container
+ readKeys(controlConstruct);
+ }
+
+ private List<Inventory> collectEquipment(List<Inventory> list, Equipment currentEq, Equipment parentEq,
+ long treeLevel) {
+
+ // if the Equipment UUID is already in the list, it was already processed
+ // needed for solving possible circular dependencies
+ if (equipmentUuidList.contains(currentEq.getUuid().getValue())) {
+ log.debug("Not adding equipment with uuid {} because it was aleady added...",
+ currentEq.getUuid().getValue());
+ return list;
+ }
+
+ // we add this to our internal list, such that we avoid circular dependencies
+ equipmentUuidList.add(currentEq.getUuid().getValue());
+ log.debug("Adding equipment with uuid {} to the database...", currentEq.getUuid().getValue());
+
+ // we add our current equipment to the database
+ list.add(onf14Mapper.getInternalEquipment(netconfAccessor.getNodeId(), currentEq, parentEq, treeLevel));
+
+ // we iterate the kids of our current equipment and add them to the database recursively
+ // the actual reference is here: /core-model:control-construct/equipment/contained-holder/occupying-fru
+ @NonNull
+ Collection<ContainedHolder> holderList = YangHelper.getCollection(currentEq.nonnullContainedHolder());
+
+ for (ContainedHolder holder : holderList) {
+ @Nullable
+ UniversalId occupyingFru = holder.getOccupyingFru();
+ if (occupyingFru != null) {
+ @Nullable
+ Equipment childEq = readEquipmentInstance(netconfAccessor, occupyingFru);
+
+ if (childEq != null) {
+ // current becomes parent and tree level increases by 1
+ collectEquipment(list, childEq, currentEq, treeLevel + 1);
+ }
+ }
+ }
+ return list;
+ }
+
+ private void readKeys(Optional<ControlConstruct> controlConstruct) {
+
+ if (controlConstruct.isPresent()) {
+ @NonNull
+ Collection<LogicalTerminationPoint> ltpList =
+ YangHelper.getCollection(controlConstruct.get().nonnullLogicalTerminationPoint());
+ log.debug("Iterating the LTP list for node {}", netconfAccessor.getNodeId().getValue());
+
+ // iterating all the Logical Termination Point list
+ for (LogicalTerminationPoint ltp : ltpList) {
+ @NonNull
+ List<LayerProtocol> lpList = YangHelper.getList(ltp.nonnullLayerProtocol());
+ // the Layer Protocol list should contain only one item, since we have an 1:1 relationship between the LTP and the LP
+ if (lpList.size() != 1) {
+ log.debug("Layer protocol has no 1:1 relationship with the LTP.");
+ return;
+ }
+ // accessing the LP, which should be only 1
+ LayerProtocol lp = lpList.get(0);
+ @Nullable
+ Class<? extends LAYERPROTOCOLNAMETYPE> layerProtocolName = lp.getLayerProtocolName();
+ if (layerProtocolName != null) {
+ // if the LTP has an airInterface technology extension, the layer protocol name is air-layer
+ if (layerProtocolName.getTypeName() == LAYERPROTOCOLNAMETYPEAIRLAYER.class.getName()) {
+ TechnologySpecificPacKeys airInterfaceKey =
+ new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
+ airInterfaceList.add(airInterfaceKey);
+ log.debug("Adding Ltp with uuid {} and local-id {} to the air-interface list",
+ ltp.getUuid().getValue(), lp.getLocalId());
+ }
+ // if the LTP has an ethernetContainier technology extension, the layer protocol name is ethernet-container-layer
+ else if (layerProtocolName.getTypeName() == LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class
+ .getName()) {
+ TechnologySpecificPacKeys ethernetContainerKey =
+ new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
+ ethernetContainerList.add(ethernetContainerKey);
+ log.debug("Adding Ltp with uuid {} and local-id {} to the ethernet-contatinier list",
+ ltp.getUuid().getValue(), lp.getLocalId());
+ } else if (layerProtocolName.getTypeName() == LAYERPROTOCOLNAMETYPEWIRELAYER.class.getName()) {
+ TechnologySpecificPacKeys wireInterfaceKey =
+ new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
+ wireInterfaceList.add(wireInterfaceKey);
+ log.debug("Adding Ltp with uuid {} and local-id {} to the wire-interface list",
+ ltp.getUuid().getValue(), lp.getLocalId());
+ }
+ }
+ }
+ }
+ }
+
+ private void readAirInterfaceCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
+
+ final Class<AirInterfacePac> clazzPac = AirInterfacePac.class;
+
+ log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
+ clazzPac.getSimpleName(), netconfAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
+
+ // constructing the IID needs the augmentation exposed byy the air-interface-2-0 model
+ InstanceIdentifier<AirInterfaceCurrentProblems> airInterfaceCurrentProblem_IID = InstanceIdentifier
+ .builder(ControlConstruct.class)
+ .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
+ .child(LayerProtocol.class, new LayerProtocolKey(localId))
+ .augmentation(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.class)
+ .child(AirInterfacePac.class).child(AirInterfaceCurrentProblems.class).build();
+
+ // reading all the current-problems list for this specific LTP and LP
+ AirInterfaceCurrentProblems problems = netconfAccessor.getTransactionUtils().readData(
+ netconfAccessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, airInterfaceCurrentProblem_IID);
+
+ if (problems == null) {
+ log.debug("DBRead Id {} no AirInterfaceCurrentProblems", ltpUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+ } else {
+ for (org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.current.problems.CurrentProblemList problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(netconfAccessor.getNodeId(), (int) problem.getSequenceNumber(), problem.getTimestamp(),
+ ltpUuid.getValue(), problem.getProblemName(),
+ Onf14AirInterface.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ }
+
+ private void readEthernetConainerCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
+
+ final Class<EthernetContainerPac> clazzPac = EthernetContainerPac.class;
+
+ log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
+ clazzPac.getSimpleName(), netconfAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
+
+ // constructing the IID needs the augmentation exposed by the ethernet-container-2-0 model
+ InstanceIdentifier<EthernetContainerCurrentProblems> etherneContainerCurrentProblem_IID = InstanceIdentifier
+ .builder(ControlConstruct.class)
+ .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
+ .child(LayerProtocol.class, new LayerProtocolKey(localId))
+ .augmentation(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LayerProtocol1.class)
+ .child(EthernetContainerPac.class).child(EthernetContainerCurrentProblems.class).build();
+
+ // reading all the current-problems list for this specific LTP and LP
+ EthernetContainerCurrentProblems problems = netconfAccessor.getTransactionUtils().readData(
+ netconfAccessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, etherneContainerCurrentProblem_IID);
+
+ if (problems == null) {
+ log.debug("DBRead Id {} no EthernetContainerCurrentProblems", ltpUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+ } else {
+ for (org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.current.problems.CurrentProblemList problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(netconfAccessor.getNodeId(), (int) problem.getSequenceNumber(), problem.getTimestamp(),
+ ltpUuid.getValue(), problem.getProblemName(),
+ Onf14EthernetContainer.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ }
+
+ private void readWireInterfaceCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
+
+ final Class<WireInterfacePac> clazzPac = WireInterfacePac.class;
+
+ log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
+ clazzPac.getSimpleName(), netconfAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
+
+ // constructing the IID needs the augmentation exposed by the wire-interface-2-0 model
+ InstanceIdentifier<WireInterfaceCurrentProblems> wireInterfaceCurrentProblem_IID = InstanceIdentifier
+ .builder(ControlConstruct.class)
+ .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
+ .child(LayerProtocol.class, new LayerProtocolKey(localId))
+ .augmentation(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LayerProtocol1.class)
+ .child(WireInterfacePac.class).child(WireInterfaceCurrentProblems.class).build();
+
+ // reading all the current-problems list for this specific LTP and LP
+ WireInterfaceCurrentProblems problems = netconfAccessor.getTransactionUtils().readData(
+ netconfAccessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, wireInterfaceCurrentProblem_IID);
+
+ if (problems == null) {
+ log.debug("DBRead Id {} no WireInterfaceCurrentProblems", ltpUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+ } else {
+ for (org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.current.problems.CurrentProblemList problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(netconfAccessor.getNodeId(), (int) problem.getSequenceNumber(), problem.getTimestamp(),
+ ltpUuid.getValue(), problem.getProblemName(),
+ Onf14WireInterface.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ }
+
+ private Optional<ControlConstruct> readControlConstruct(NetconfBindingAccessor netconfAccessor) {
+ return Optional.ofNullable(netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(),
+ LogicalDatastoreType.CONFIGURATION, CONTROLCONSTRUCT_IID));
+ }
+
+ private @Nullable Equipment readEquipmentInstance(NetconfBindingAccessor accessData, UniversalId equipmentUuid) {
+
+ final Class<?> clazzPac = Equipment.class;
+
+ log.info("DBRead Get equipment for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ accessData.getNodeId().getValue(), equipmentUuid.getValue());
+
+ InstanceIdentifier<Equipment> equipmentIID = InstanceIdentifier.builder(ControlConstruct.class)
+ .child(Equipment.class, new EquipmentKey(equipmentUuid)).build();
+
+ return accessData.getTransactionUtils().readData(accessData.getDataBroker(), LogicalDatastoreType.CONFIGURATION,
+ equipmentIID);
+ }
+
+ // defining a structure that can map the LP local-id and its corresponding LTP uuid
+ private class TechnologySpecificPacKeys {
+
+ private UniversalId ltpUuid;
+ private String localId;
+
+ public TechnologySpecificPacKeys(UniversalId uuid, String lId) {
+ this.ltpUuid = uuid;
+ this.localId = lId;
+ }
+
+ public UniversalId getLtpUuid() {
+ return ltpUuid;
+ }
+
+ public String getLocalId() {
+ return localId;
+ }
+
+ @SuppressWarnings("unused")
+ public void setLtpUuid(UniversalId uuid) {
+ this.ltpUuid = uuid;
+ }
+
+ @SuppressWarnings("unused")
+ public void setLocalId(String lId) {
+ this.localId = lId;
+ }
+ }
+
+
+ /**
+ * LOG the newly added problems of the interface pac
+ *
+ * @param idxStart
+ * @param uuid
+ * @param resultList
+ */
+ private void debugResultList(String uuid, FaultData resultList, int idxStart) {
+ StringBuilder sb = new StringBuilder();
+ int idx = 0;
+ for (int t = idxStart; t < resultList.size(); t++) {
+ sb.append(idx++);
+ sb.append(":{");
+ sb.append(resultList.get(t));
+ sb.append('}');
+ }
+ log.debug("Found problems {} {}", uuid, sb);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java
new file mode 100644
index 000000000..ecf53a1fa
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java
@@ -0,0 +1,66 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14NetworkElementFactory implements NetworkElementFactory {
+
+ private static final Logger log = LoggerFactory.getLogger(Onf14NetworkElementFactory.class);
+ private Optional<Onf14Configuration> configuration = Optional.empty();
+
+ @Override
+ public Optional<NetworkElement> create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) {
+
+ Optional<NetworkElement> ne = Optional.empty();
+ Capabilities capabilities = accessor.getCapabilites();
+ if (capabilities.isSupportingNamespace(ControlConstruct.QNAME)) {
+ String namespaceRevision = capabilities.getRevisionForNamespace(ControlConstruct.QNAME);
+
+ if (configuration.isPresent() && configuration.get().isUseDomApiEnabled()) {
+ Optional<NetconfDomAccessor> domAccessor = accessor.getNetconfDomAccessor();
+ if (domAccessor.isPresent()) {
+ ne = Optional.of(new Onf14DomNetworkElement(domAccessor.get(), serviceProvider, namespaceRevision));
+ }
+ } else {
+ Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
+ if (bindingAccessor.isPresent()) {
+ ne = Optional.of(new Onf14NetworkElement(bindingAccessor.get(), serviceProvider));
+ }
+ }
+ log.info("Create device:{}", ne.isPresent() ? ne.get().getClass().getSimpleName() : "not");
+ }
+ return ne;
+ }
+
+ @Override
+ public void init(DeviceManagerServiceProvider serviceProvider) {
+ configuration = Optional.of(new Onf14Configuration(serviceProvider.getConfigurationFileRepresentation()));
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java
new file mode 100644
index 000000000..97395f496
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java
@@ -0,0 +1,55 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider;
+
+import java.util.Map;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.opendaylight.yangtools.yang.binding.BaseIdentity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class InternalDataModelSeverity {
+
+ @SuppressWarnings("unused")
+ private static final Logger LOG = LoggerFactory.getLogger(InternalDataModelSeverity.class);
+
+ private static final Map<String, SeverityType> SEVERITYMAP = Map.of(
+ SEVERITYTYPEMAJOR.class.getSimpleName(), SeverityType.Major,
+ SEVERITYTYPECRITICAL.class.getSimpleName(), SeverityType.Critical,
+ SEVERITYTYPEMINOR.class.getSimpleName(), SeverityType.Minor,
+ SEVERITYTYPEWARNING.class.getSimpleName(), SeverityType.Warning);
+
+ public static SeverityType mapSeverity(@Nullable Class<? extends BaseIdentity> severity) {
+ SeverityType res = null;
+ if (severity != null) {
+ String severityName = severity.getSimpleName();
+ res = severityName != null ? SEVERITYMAP.get(severity.getSimpleName()) : null;
+ }
+ return res == null ? SeverityType.NonAlarmed : res;
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java
new file mode 100644
index 000000000..52436da61
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java
@@ -0,0 +1,130 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.Equipment;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.EquipmentInstance;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.EquipmentType;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ManufacturedThing;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ManufacturerProperties;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ActualEquipment;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author alexs
+ *
+ */
+public class Onf14ToInternalDataModel {
+
+ private static final Logger LOG = LoggerFactory.getLogger(Onf14ToInternalDataModel.class);
+
+ public Inventory getInternalEquipment(NodeId nodeId, Equipment currentEq, Equipment parentEq, long treeLevel) {
+
+ Objects.requireNonNull(nodeId);
+ Objects.requireNonNull(currentEq);
+
+ InventoryBuilder inventoryBuilder = new InventoryBuilder();
+ String parentUuid = parentEq != null ? parentEq.getUuid().getValue() : "None";
+
+ @Nullable
+ ActualEquipment component = currentEq.getActualEquipment();
+ if (component != null) {
+ // General
+ inventoryBuilder.setNodeId(nodeId.getValue());
+ inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
+ inventoryBuilder.setUuid(currentEq.getUuid().getValue());
+ inventoryBuilder.setParentUuid(parentUuid);
+
+ List<String> containedHolderKeyList = new ArrayList<String>();
+ @NonNull
+ Collection<ContainedHolder> containedHolderList =
+ YangHelper.getCollection(currentEq.nonnullContainedHolder());
+ for (ContainedHolder holder : containedHolderList) {
+ @Nullable
+ UniversalId occupyingFru = holder.getOccupyingFru();
+
+ if (occupyingFru != null) {
+ containedHolderKeyList.add(occupyingFru.getValue());
+ }
+ }
+ inventoryBuilder.setContainedHolder(containedHolderKeyList);
+
+ @Nullable
+ ManufacturedThing manThing = component.getManufacturedThing();
+ if (manThing != null) {
+ // Manufacturer properties
+ @Nullable
+ ManufacturerProperties manProp = manThing.getManufacturerProperties();
+ if (manProp != null) {
+ inventoryBuilder.setManufacturerName(manProp.getManufacturerName());
+ inventoryBuilder.setManufacturerIdentifier(manProp.getManufacturerIdentifier());
+ } else {
+ LOG.debug("manufacturer-properties is not present in Equipment with uuid={}",
+ currentEq.getUuid().getValue());
+ }
+
+ // Equipment instance
+ @Nullable
+ EquipmentInstance eqInstance = manThing.getEquipmentInstance();
+ if (eqInstance != null) {
+ inventoryBuilder.setSerial(eqInstance.getSerialNumber());
+ inventoryBuilder.setDate(eqInstance.getManufactureDate().getValue());
+ } else {
+ LOG.debug("equipment-instance is not present in Equipment with uuid={}",
+ currentEq.getUuid().getValue());
+ }
+
+ // Equipment type
+ @Nullable
+ EquipmentType eqType = manThing.getEquipmentType();
+ if (eqType != null) {
+ inventoryBuilder.setVersion(eqType.getVersion());
+ inventoryBuilder.setDescription(eqType.getDescription());
+ inventoryBuilder.setPartTypeId(eqType.getPartTypeIdentifier());
+ inventoryBuilder.setModelIdentifier(eqType.getModelIdentifier());
+ inventoryBuilder.setTypeName(eqType.getTypeName());
+ } else {
+ LOG.debug("equipment-type is not present in Equipment with uuid={}",
+ currentEq.getUuid().getValue());
+ }
+ } else {
+ LOG.debug("manufactured-thing is not present in Equipment with uuid={}",
+ currentEq.getUuid().getValue());
+ }
+ } else {
+ LOG.debug("actual-equipment is not present in Equipment with uuid={}", currentEq.getUuid().getValue());
+ }
+
+ return inventoryBuilder.build();
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java
new file mode 100644
index 000000000..092ad4a8f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java
@@ -0,0 +1,265 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.equipment;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.Equipment;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.EquipmentKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yangtools.util.UnmodifiableCollection;
+import org.opendaylight.yangtools.yang.binding.CodeHelpers;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14DomEquipmentManager {
+
+
+ // constants
+ private static final Logger log = LoggerFactory.getLogger(Onf14DomEquipmentManager.class);
+ private static final int EQUIPMENTROOTLEVEL = 0;
+ // end of constants
+
+ // variables
+ private final NetconfDomAccessor netconfDomAccessor;
+ private final DataProvider databaseService;
+ private final Onf14ToInternalDataModel onf14Mapper;
+ // for storing the Equipment UUIDs that are inserted in the DB
+ private final List<UniversalId> equipmentUuidList;
+ // end of variables
+ private final BindingNormalizedNodeSerializer serializer;
+
+ // constructors
+ public Onf14DomEquipmentManager(NetconfDomAccessor netconfDomAccessor, DataProvider databaseService,
+ Onf14ToInternalDataModel onf14Mapper) {
+ super();
+ this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
+ this.databaseService = Objects.requireNonNull(databaseService);
+ this.onf14Mapper = Objects.requireNonNull(onf14Mapper);
+ this.serializer = Objects.requireNonNull(netconfDomAccessor.getBindingNormalizedNodeSerializer());
+
+ this.equipmentUuidList = new ArrayList<>();
+ }
+ // end of constructors
+
+ // getters and setters
+ public List<UniversalId> getEquipmentUuidList() {
+ return equipmentUuidList;
+ }
+ // end of getters and setters
+
+ // private methods
+ private List<Inventory> collectEquipment(List<Inventory> list, Equipment currentEq, Equipment parentEq,
+ long treeLevel, Map<EquipmentKey, Equipment> equipmentMap, EquipmentKey equipmentKey) {
+ Objects.requireNonNull(list);
+ if (currentEq == null) {
+ log.info("Ignore empty equipment with key {}", equipmentKey);
+ return list;
+ }
+
+ // if the Equipment UUID is already in the list, it was already processed
+ // needed for solving possible circular dependencies
+ if (equipmentUuidList.contains(currentEq.getUuid())) {
+ log.debug("Not adding equipment with uuid {} because it was aleady added...",
+ currentEq.getUuid().getValue());
+ return list;
+ }
+
+ // we add this to our internal list, such that we avoid circular dependencies
+ equipmentUuidList.add(currentEq.getUuid());
+ log.debug("Adding equipment with uuid {} to the database...", currentEq.getUuid().getValue());
+
+ // we add our current equipment to the database
+ list.add(onf14Mapper.getInternalEquipment(netconfDomAccessor.getNodeId(), currentEq, parentEq, treeLevel));
+
+ // we iterate the kids of our current equipment and add them to the database recursively
+ // the actual reference is here: /core-model:control-construct/equipment/contained-holder/occupying-fru
+ for (ContainedHolder holder : YangHelper.getCollection(currentEq.nonnullContainedHolder())) {
+ @Nullable
+ UniversalId occupyingFru = holder.getOccupyingFru();
+ if (occupyingFru != null) {
+ equipmentKey = new EquipmentKey(occupyingFru);
+ collectEquipment(list, equipmentMap.get(equipmentKey), currentEq, treeLevel + 1, equipmentMap,
+ equipmentKey);
+ }
+ }
+ return list;
+ }
+ // end of private methods
+
+ // public methods
+ /**
+ * Set all equipment data from controlConstruct into database and into this manager.
+ *
+ * @param controlConstruct with complete device data
+ */
+ public void setEquipmentData(ControlConstruct controlConstruct) {
+ Objects.requireNonNull(controlConstruct);
+
+ // the top-level-equipment list contains the root objects of the Equipment Model
+ log.debug("Getting list of topLevelEquipment for mountpoint {}", netconfDomAccessor.getNodeId());
+ // adding all root Equipment objects to the DB
+ for (UniversalId uuid : CodeHelpers.nonnull(controlConstruct.getTopLevelEquipment())) {
+ log.debug("Got back topLevelEquipment with uuid {}", uuid.getValue());
+ EquipmentKey equipmentKey = new EquipmentKey(uuid);
+
+ // adding all root Equipment objects to the DB
+ Map<EquipmentKey, Equipment> equipmentMap = controlConstruct.nonnullEquipment();
+ // recursively adding the root equipment and all its children into the DB
+ List<Inventory> dbInventory = collectEquipment(new ArrayList<>(), equipmentMap.get(equipmentKey), null,
+ EQUIPMENTROOTLEVEL, equipmentMap, equipmentKey);
+ this.databaseService.writeInventory(netconfDomAccessor.getNodeId().getValue(), dbInventory);
+ }
+ }
+
+ /**
+ * Experimental see section in {@link #Onf14DomNetworkElement.initialReadFromNetworkElement()}
+ * Read one equipment from device
+ *
+ * @param accessData to access device
+ * @param equipmentUuid uuid of equipment to be read
+ * @return Optional Equipment
+ */
+ public Optional<Equipment> readEquipmentInstance(NetconfDomAccessor accessData, UniversalId equipmentUuid) {
+
+ final Class<?> clazzPac = Equipment.class;
+
+ log.info("DBRead Get equipment for class {} from mountpoint {} for uuid {}", clazzPac.getSimpleName(),
+ accessData.getNodeId().getValue(), equipmentUuid.getValue());
+
+ InstanceIdentifierBuilder equipmentIIDBuilder =
+ YangInstanceIdentifier.builder().node(ControlConstruct.QNAME).node(Equipment.QNAME).nodeWithKey(
+ Equipment.QNAME, QName.create(Equipment.QNAME, "uuid").intern(), equipmentUuid.getValue());
+
+ return accessData.readData(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build(), Equipment.class);
+ }
+
+ /**
+ * Experimental see section in {@link #Onf14DomNetworkElement.initialReadFromNetworkElement()}
+ * Read one equipment list from device.
+ *
+ * @param accessData to access device
+ * @param equipmentUuid uuid of equipment to be read
+ * @return Optional Equipment
+ */
+ public List<DataObject> readEquipmentList(NetconfDomAccessor accessData) {
+ log.info("DBRead Get equipment-list for mountpoint {} ", accessData.getNodeId().getValue());
+
+ InstanceIdentifierBuilder equipmentIIDBuilder =
+ YangInstanceIdentifier.builder().node(ControlConstruct.QNAME).node(Equipment.QNAME);
+
+ InstanceIdentifierBuilder equipmentIIDBuilderOnly = YangInstanceIdentifier.builder().node(Equipment.QNAME);
+
+ Optional<NormalizedNode<?, ?>> oData =
+ accessData.readDataNode(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build());
+ if (oData.isPresent()) {
+ NormalizedNode<?, ?> data = oData.get();
+
+ log.debug("convertNormalizedNode data identifier: {} data nodetype: {}", data.getIdentifier(),
+ data.getNodeType());
+ final List<DataObject> mapEntries1 = ((MapNode) data).getValue().stream().map(mapEntryNode -> {
+ final YangInstanceIdentifier mapEntryPath =
+ equipmentIIDBuilderOnly.build().node(mapEntryNode.getIdentifier());
+ return serializer.fromNormalizedNode(mapEntryPath, mapEntryNode).getValue();
+ }).collect(Collectors.toList());
+ return mapEntries1;
+ } else {
+ log.warn("Device does not provide any equipment");
+ return Collections.emptyList();
+ }
+ }
+
+ /**
+ * Experimental see section in {@link #Onf14DomNetworkElement.initialReadFromNetworkElement()}
+ * Read one equipment list from device
+ *
+ * @param accessData to access device
+ * @param equipmentUuid uuid of equipment to be read
+ * @return Optional Equipment
+ */
+ public void readTopLevelEquipment(NetconfDomAccessor accessData) {
+
+ log.info("DBRead Get top-level-equipment for mountpoint {}", accessData.getNodeId().getValue());
+
+ InstanceIdentifierBuilder equipmentIIDBuilder = YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
+ .node(QName.create(ControlConstruct.QNAME, "top-level-equipment"));
+
+ Optional<NormalizedNode<?, ?>> oData =
+ accessData.readDataNode(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build());
+ log.info("Checking for existence of data");
+ if (oData.isPresent()) {
+ log.info("data exists");
+ NormalizedNode<?, ?> data = oData.get();
+ Object value = data.getValue();
+ log.info("DataNode: {} {}", data.getNodeType(), data.getIdentifier());
+ if (value != null) {
+ log.info("DataNode value: {} {}", value.getClass().getName(), value);
+ if (value instanceof UnmodifiableCollection) {
+ @SuppressWarnings("unchecked")
+ UnmodifiableCollection<LeafSetEntryNode<String>> topLevelEquipmentCollection =
+ (UnmodifiableCollection<LeafSetEntryNode<String>>) value;
+ @NonNull
+ Iterator<LeafSetEntryNode<String>> it = topLevelEquipmentCollection.iterator();
+ while (it.hasNext()) {
+ LeafSetEntryNode<String> topLevelEquipmentUuid = it.next();
+ if (topLevelEquipmentUuid != null) {
+ log.info("LeafSetEntryNode: {} {} {}", topLevelEquipmentUuid.getValue(),
+ topLevelEquipmentUuid.getNodeType(),
+ topLevelEquipmentUuid.getValue().getClass().getName());
+ }
+ }
+ }
+ }
+ }
+ }
+ // end of public methods
+
+ // static methods
+ // end of static methods
+
+ // private classes
+ // end of private classes
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java
new file mode 100644
index 000000000..2d0d3c52d
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java
@@ -0,0 +1,39 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.InternalDataModelSeverity;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author alexs
+ *
+ */
+public class Onf14AirInterface {
+
+ @SuppressWarnings("unused")
+ private static final Logger LOG = LoggerFactory.getLogger(Onf14AirInterface.class);
+
+ public static SeverityType mapSeverity(
+ Class<? extends SEVERITYTYPE> severity) {
+ return InternalDataModelSeverity.mapSeverity(severity);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java
new file mode 100644
index 000000000..e1ca58055
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java
@@ -0,0 +1,146 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk feature sdnr wt
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AirInterface20Listener;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPECRITICAL;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMAJOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMINOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPENONALARMED;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEWARNING;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14AirInterfaceNotificationListener implements AirInterface20Listener, DOMNotificationListener {
+
+ private static final Logger log = LoggerFactory.getLogger(Onf14AirInterfaceNotificationListener.class);
+
+ private final NetconfAccessor netconfAccessor;
+ private final DeviceManagerServiceProvider serviceProvider;
+
+ private static final Map<Class<? extends SEVERITYTYPE>,SeverityType> severityMap = initSeverityMap();
+
+ public Onf14AirInterfaceNotificationListener(NetconfAccessor netconfAccessor,
+ DeviceManagerServiceProvider serviceProvider) {
+ this.netconfAccessor = netconfAccessor;
+ this.serviceProvider = serviceProvider;
+ }
+
+ private static Map<Class<? extends SEVERITYTYPE>, SeverityType> initSeverityMap() {
+ Map<Class<? extends SEVERITYTYPE>, SeverityType> map = new HashMap<>();
+ map.put(SEVERITYTYPECRITICAL.class,SeverityType.Critical);
+ map.put(SEVERITYTYPEMAJOR.class,SeverityType.Major);
+ map.put(SEVERITYTYPEMINOR.class,SeverityType.Minor);
+ map.put(SEVERITYTYPEWARNING.class,SeverityType.Warning);
+ map.put(SEVERITYTYPENONALARMED.class,SeverityType.NonAlarmed);
+ return map;
+ }
+
+ @Override
+ public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
+ log.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName("")
+ .setCounter(notification.getCounter()).setNewValue("deleted")
+ .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ ObjectDeletionNotification.QNAME, notification.getTimestamp());
+
+ log.debug("onObjectDeletionNotification log entry written");
+ }
+
+ @Override
+ public void onProblemNotification(ProblemNotification notification) {
+ log.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
+ FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
+ .setProblem(notification.getProblem()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp())
+ .setNodeId(this.netconfAccessor.getNodeId().getValue())
+ .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter())
+ .build();
+ serviceProvider.getFaultService().faultNotification(faultAlarm);
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ ProblemNotification.QNAME, notification.getTimestamp());
+
+ }
+
+ private SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
+ return severityMap.getOrDefault(severity,SeverityType.NonAlarmed);
+ }
+
+ @Override
+ public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
+ log.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
+ .setAttributeName(notification.getAttributeName()).setCounter(notification.getCounter())
+ .setNewValue(notification.getNewValue()).setObjectId(notification.getObjectIdRef().getValue())
+ .setSourceType(SourceType.Netconf).setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ AttributeValueChangedNotification.QNAME, notification.getTimestamp());
+ log.debug("onAttributeValueChangedNotification log entry written");
+ }
+
+ @Override
+ public void onObjectCreationNotification(ObjectCreationNotification notification) {
+ log.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName(notification.getObjectType())
+ .setCounter(notification.getCounter()).setNewValue("created")
+ .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ ObjectCreationNotification.QNAME, notification.getTimestamp());
+ log.debug("onObjectCreationNotification log entry written");
+ }
+
+ @Override
+ public void onNotification(@NonNull DOMNotification notification) {
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java
new file mode 100644
index 000000000..7fca996e9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java
@@ -0,0 +1,419 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.equipment.Onf14DomEquipmentManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.util.Debug;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LAYERPROTOCOLNAMETYPEAIRLAYER;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.lp.spec.AirInterfacePac;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.pac.AirInterfaceCurrentProblems;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.LAYERPROTOCOLNAMETYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPoint;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocol;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.logical.termination.point.LayerProtocolKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LAYERPROTOCOLNAMETYPEWIRELAYER;
+import org.opendaylight.yangtools.yang.binding.Notification;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/*
+* Notifications streams provided by device NTSSim ONF14
+* Stream{getName=StreamNameType{_value=nc-notifications}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=hybrid-mw-structure-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=vlan-interface-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=tdm-container-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ethernet-container-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ietf-yang-library}, isReplaySupport=false, augmentation=[]},
+* Stream{getDescription=Default NETCONF stream containing all the Event Notifications., getName=StreamNameType{_value=NETCONF}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=vlan-fd-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=wire-interface-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=mac-fd-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=co-channel-profile-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=mac-interface-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ietf-keystore}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=pure-ethernet-structure-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ietf-netconf-notifications}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=mac-fc-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=wred-profile-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=air-interface-2-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=ip-interface-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=qos-profile-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=vlan-fc-1-0}, isReplaySupport=true, augmentation=[]},
+* Stream{getName=StreamNameType{_value=l-3vpn-profile-1-0}, isReplaySupport=true, augmentation=[]}]
+*/
+
+public class Onf14DomInterfacePacManager implements DOMNotificationListener {
+
+ // constants
+ private static final Logger log = LoggerFactory.getLogger(Onf14DomEquipmentManager.class);
+ // end of constants
+
+ // variables
+ private final NetconfDomAccessor netconfDomAccessor;
+ private final @NonNull DeviceManagerServiceProvider serviceProvider;
+
+ // air interface related members
+ private final List<TechnologySpecificPacKeys> airInterfaceList = new ArrayList<TechnologySpecificPacKeys>();
+ private @NonNull final Onf14AirInterfaceNotificationListener airInterfaceNotificationListener;
+
+ // ethernet container related members
+ private final List<TechnologySpecificPacKeys> ethernetContainerList = new ArrayList<TechnologySpecificPacKeys>();
+ private @NonNull final Onf14EthernetContainerNotificationListener ethernetContainerNotificationListener;
+
+ // wire interface related members
+ private final List<TechnologySpecificPacKeys> wireInterfaceList = new ArrayList<TechnologySpecificPacKeys>();
+ private @NonNull final Onf14WireInterfaceNotificationListener wireInterfaceNotificationListener;
+ private @NonNull final BindingNormalizedNodeSerializer serializer;
+ // end of variables
+
+
+ // constructors
+ public Onf14DomInterfacePacManager(@NonNull NetconfDomAccessor netconfDomAccessor,
+ @NonNull DeviceManagerServiceProvider serviceProvider) {
+
+ this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor);
+ this.serviceProvider = Objects.requireNonNull(serviceProvider);
+ this.serializer = Objects.requireNonNull(netconfDomAccessor.getBindingNormalizedNodeSerializer());
+
+ this.airInterfaceNotificationListener =
+ new Onf14AirInterfaceNotificationListener(netconfDomAccessor, serviceProvider);
+ this.ethernetContainerNotificationListener =
+ new Onf14EthernetContainerNotificationListener(netconfDomAccessor, serviceProvider);
+ this.wireInterfaceNotificationListener =
+ new Onf14WireInterfaceNotificationListener(netconfDomAccessor, serviceProvider);
+ }
+ // end of constructors
+
+ // getters and setters
+ // end of getters and setters
+
+ // private methods
+ // end of private methods
+
+ // public methods
+ public void readAllAirInterfaceCurrentProblems(NetconfDomAccessor netconfDomAccessor,
+ ControlConstruct controlConstruct, FaultData resultList) {
+
+ int idxStart; // Start index for debug messages
+
+ for (TechnologySpecificPacKeys key : airInterfaceList) {
+ idxStart = resultList.size();
+
+ readAirInterfaceCurrentProblemForLtp(netconfDomAccessor, controlConstruct, key.getLtpUuid(),
+ key.getLocalId(), resultList);
+ Debug.debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
+ }
+ }
+
+ /*
+ public void readAllEhernetContainerCurrentProblems(FaultData resultList) {
+
+ int idxStart; // Start index for debug messages
+
+ for (TechnologySpecificPacKeys key : ethernetContainerList) {
+ idxStart = resultList.size();
+
+ readEthernetConainerCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+ debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
+ }
+ }
+
+ public void readAllWireInterfaceCurrentProblems(FaultData resultList) {
+
+ int idxStart; // Start index for debug messages
+
+ for (TechnologySpecificPacKeys key : wireInterfaceList) {
+ idxStart = resultList.size();
+
+ readWireInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList);
+ debugResultList(key.getLtpUuid().getValue(), resultList, idxStart);
+ }
+ }*/
+ public void readKeys(ControlConstruct controlConstruct) {
+
+ @NonNull
+ Collection<LogicalTerminationPoint> ltpList =
+ YangHelper.getCollection(controlConstruct.nonnullLogicalTerminationPoint());
+ log.debug("Iterating the LTP list for node {}", netconfDomAccessor.getNodeId().getValue());
+
+ // iterating all the Logical Termination Point list
+ for (LogicalTerminationPoint ltp : ltpList) {
+ @NonNull
+ List<LayerProtocol> lpList = YangHelper.getList(ltp.nonnullLayerProtocol());
+ // the Layer Protocol list should contain only one item, since we have an 1:1 relationship between the LTP and the LP
+ if (lpList.size() != 1) {
+ log.debug("Layer protocol has no 1:1 relationship with the LTP.");
+ return;
+ }
+ // accessing the LP, which should be only 1
+ LayerProtocol lp = lpList.get(0);
+ @Nullable
+ Class<? extends LAYERPROTOCOLNAMETYPE> layerProtocolName = lp.getLayerProtocolName();
+ if (layerProtocolName != null) {
+ // if the LTP has an airInterface technology extension, the layer protocol name is air-layer
+ if (layerProtocolName.getTypeName() == LAYERPROTOCOLNAMETYPEAIRLAYER.class.getName()) {
+ TechnologySpecificPacKeys airInterfaceKey =
+ new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
+ airInterfaceList.add(airInterfaceKey);
+ log.debug("Adding Ltp with uuid {} and local-id {} to the air-interface list",
+ ltp.getUuid().getValue(), lp.getLocalId());
+ }
+ // if the LTP has an ethernetContainier technology extension, the layer protocol name is ethernet-container-layer
+ else if (layerProtocolName.getTypeName() == LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class
+ .getName()) {
+ TechnologySpecificPacKeys ethernetContainerKey =
+ new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
+ ethernetContainerList.add(ethernetContainerKey);
+ log.debug("Adding Ltp with uuid {} and local-id {} to the ethernet-contatinier list",
+ ltp.getUuid().getValue(), lp.getLocalId());
+ } else if (layerProtocolName.getTypeName() == LAYERPROTOCOLNAMETYPEWIRELAYER.class.getName()) {
+ TechnologySpecificPacKeys wireInterfaceKey =
+ new TechnologySpecificPacKeys(ltp.getUuid(), lp.getLocalId());
+ wireInterfaceList.add(wireInterfaceKey);
+ log.debug("Adding Ltp with uuid {} and local-id {} to the wire-interface list",
+ ltp.getUuid().getValue(), lp.getLocalId());
+ }
+ }
+ }
+ }
+
+ private static void readAirInterfaceCurrentProblemForLtp(NetconfDomAccessor netconfDomAccessor,
+ ControlConstruct controlConstruct, UniversalId ltpUuid, String localId, FaultData resultList) {
+
+ final Class<AirInterfacePac> clazzPac = AirInterfacePac.class;
+
+ log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
+ clazzPac.getSimpleName(), netconfDomAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
+
+ // constructing the IID needs the augmentation exposed byy the air-interface-2-0 model
+ // InstanceIdentifier<AirInterfaceCurrentProblems> airInterfaceCurrentProblem_IID = InstanceIdentifier
+ // .builder(ControlConstruct.class)
+ // .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
+ // .child(LayerProtocol.class, new LayerProtocolKey(localId))
+ // .augmentation(
+ // org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.class)
+ // .child(AirInterfacePac.class)
+ // .child(AirInterfaceCurrentProblems.class).build();
+ /*
+ final YangInstanceIdentifier airInterfaceCurrentProblem_IID =
+ YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
+ .nodeWithKey(LogicalTerminationPoint.QNAME,
+ QName.create(LogicalTerminationPoint.QNAME, "logical-termination-point-key").intern(),
+ ltpUuid.getValue())
+ .nodeWithKey(LayerProtocol.QNAME,
+ QName.create(LayerProtocol.QNAME, "layer-protocol-key").intern(), localId)
+ //.node(org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.QNAME)
+ .node(AirInterfacePac.QNAME).node(AirInterfaceCurrentProblems.QNAME).build();
+
+ // reading all the current-problems list for this specific LTP and LP
+ AirInterfaceCurrentProblems problems =
+ netconfDomAccessor.readData(LogicalDatastoreType.OPERATIONAL, airInterfaceCurrentProblem_IID);
+ */
+
+ @NonNull
+ Map<LogicalTerminationPointKey, LogicalTerminationPoint> ltpMap =
+ controlConstruct.nonnullLogicalTerminationPoint();
+ LogicalTerminationPoint ltp = ltpMap.get(new LogicalTerminationPointKey(ltpUuid));
+ if (ltp != null) {
+ @NonNull
+ Map<LayerProtocolKey, LayerProtocol> lpMap = ltp.nonnullLayerProtocol();
+ LayerProtocol lp = lpMap.get(new LayerProtocolKey(localId));
+ @Nullable
+ LayerProtocol1 lp1 = lp.augmentation(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.LayerProtocol1.class);
+ if (lp1 != null) {
+ @Nullable
+ AirInterfacePac airInterfacePack = lp1.getAirInterfacePac();
+ if (airInterfacePack != null) {
+ @Nullable
+ AirInterfaceCurrentProblems cp = airInterfacePack.getAirInterfaceCurrentProblems();
+ if (cp == null) {
+ log.debug("DBRead Id {} no AirInterfaceCurrentProblems", ltpUuid);
+ } else {
+ for (org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.air._interface.current.problems.CurrentProblemList problem : YangHelper
+ .getCollection(cp.nonnullCurrentProblemList())) {
+ resultList.add(netconfDomAccessor.getNodeId(), (int) problem.getSequenceNumber(),
+ problem.getTimestamp(), ltpUuid.getValue(), problem.getProblemName(),
+ Onf14AirInterface.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onNotification(@NonNull DOMNotification domNotification) {
+ @Nullable
+ Notification notification =
+ serializer.fromNormalizedNodeNotification(domNotification.getType(), domNotification.getBody());
+ if (notification instanceof ProblemNotification) {
+ ProblemNotification problemNotification = (ProblemNotification) notification;
+ log.debug("DOM ProblemNotification: {}", problemNotification);
+ airInterfaceNotificationListener.onProblemNotification(problemNotification);
+ } else if (notification instanceof AttributeValueChangedNotification) {
+ AttributeValueChangedNotification attributeValueChangeNotification =
+ (AttributeValueChangedNotification) notification;
+ log.debug("DOM AttributeValueChangedNotification: {}", attributeValueChangeNotification);
+ airInterfaceNotificationListener.onAttributeValueChangedNotification(attributeValueChangeNotification);
+ } else if (notification instanceof ObjectDeletionNotification) {
+ ObjectDeletionNotification objectDeletionNotification = (ObjectDeletionNotification) notification;
+ log.debug("DOM ObjectDeletionNotification: {}", objectDeletionNotification);
+ airInterfaceNotificationListener.onObjectDeletionNotification(objectDeletionNotification);
+ } else if (notification instanceof ObjectCreationNotification) {
+ ObjectCreationNotification objectCreationNotification = (ObjectCreationNotification) notification;
+ log.debug("DOM ObjectDeletionNotification: {}", objectCreationNotification);
+ airInterfaceNotificationListener.onObjectCreationNotification(objectCreationNotification);
+ } else {
+ log.warn("DOM Notification ignored: {}", domNotification);
+ }
+ }
+
+ /**
+ * Register notifications to handle
+ */
+ public void subscribeNotifications() {
+ QName[] notifications = { ObjectCreationNotification.QNAME, ObjectDeletionNotification.QNAME,
+ AttributeValueChangedNotification.QNAME, ProblemNotification.QNAME };
+ netconfDomAccessor.doRegisterNotificationListener(this, notifications);
+ }
+
+ /*
+ private void readEthernetConainerCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
+
+ final Class<EthernetContainerPac> clazzPac = EthernetContainerPac.class;
+
+ log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
+ clazzPac.getSimpleName(), netconfDomAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
+
+ // constructing the IID needs the augmentation exposed by the ethernet-container-2-0 model
+ // InstanceIdentifier<EthernetContainerCurrentProblems> etherneContainerCurrentProblem_IID = InstanceIdentifier
+ // .builder(ControlConstruct.class)
+ // .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
+ // .child(LayerProtocol.class, new LayerProtocolKey(localId))
+ // .augmentation(
+ // org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LayerProtocol1.class)
+ // .child(EthernetContainerPac.class).child(EthernetContainerCurrentProblems.class).build();
+ final YangInstanceIdentifier etherneContainerCurrentProblem_IID =
+ YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
+ .nodeWithKey(LogicalTerminationPoint.QNAME,
+ QName.create(LogicalTerminationPoint.QNAME, "logical-termination-point-key").intern(),
+ ltpUuid.getValue())
+ .nodeWithKey(LayerProtocol.QNAME,
+ QName.create(LayerProtocol.QNAME, "layer-protocol-key").intern(), localId)
+ //.node(org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.LayerProtocol1.QNAME)
+ .node(EthernetContainerPac.QNAME).node(EthernetContainerCurrentProblems.QNAME).build();
+
+ // reading all the current-problems list for this specific LTP and LP
+ EthernetContainerCurrentProblems problems =
+ netconfDomAccessor.readData(LogicalDatastoreType.OPERATIONAL, etherneContainerCurrentProblem_IID);
+
+ if (problems == null) {
+ log.debug("DBRead Id {} no EthernetContainerCurrentProblems", ltpUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+ } else {
+ for (org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ethernet.container.current.problems.CurrentProblemList problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(netconfDomAccessor.getNodeId(), (int) problem.getSequenceNumber(),
+ problem.getTimestamp(), ltpUuid.getValue(), problem.getProblemName(),
+ Onf14EthernetContainer.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ }
+
+ private void readWireInterfaceCurrentProblemForLtp(UniversalId ltpUuid, String localId, FaultData resultList) {
+
+ final Class<WireInterfacePac> clazzPac = WireInterfacePac.class;
+
+ log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}",
+ clazzPac.getSimpleName(), netconfDomAccessor.getNodeId().getValue(), ltpUuid.getValue(), localId);
+
+ // constructing the IID needs the augmentation exposed by the wire-interface-2-0 model
+ // InstanceIdentifier<WireInterfaceCurrentProblems> wireInterfaceCurrentProblem_IID = InstanceIdentifier
+ // .builder(ControlConstruct.class)
+ // .child(LogicalTerminationPoint.class, new LogicalTerminationPointKey(ltpUuid))
+ // .child(LayerProtocol.class, new LayerProtocolKey(localId))
+ // .augmentation(
+ // org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LayerProtocol1.class)
+ // .child(WireInterfacePac.class).child(WireInterfaceCurrentProblems.class).build();
+ final YangInstanceIdentifier wireInterfaceCurrentProblem_IID =
+ YangInstanceIdentifier.builder().node(ControlConstruct.QNAME)
+ .nodeWithKey(LogicalTerminationPoint.QNAME,
+ QName.create(LogicalTerminationPoint.QNAME, "logical-termination-point-key").intern(),
+ ltpUuid.getValue())
+ .nodeWithKey(LayerProtocol.QNAME,
+ QName.create(LayerProtocol.QNAME, "layer-protocol-key").intern(), localId)
+ //.node(org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.LayerProtocol1.QNAME)
+ .node(WireInterfacePac.QNAME).node(WireInterfaceCurrentProblems.QNAME).build();
+
+ // reading all the current-problems list for this specific LTP and LP
+ WireInterfaceCurrentProblems problems =
+ netconfDomAccessor.readData(LogicalDatastoreType.OPERATIONAL, wireInterfaceCurrentProblem_IID);
+
+ if (problems == null) {
+ log.debug("DBRead Id {} no WireInterfaceCurrentProblems", ltpUuid);
+ } else if (problems.getCurrentProblemList() == null) {
+ log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid);
+ } else {
+ for (org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.wire._interface.current.problems.CurrentProblemList problem : YangHelper
+ .getCollection(problems.nonnullCurrentProblemList())) {
+ resultList.add(netconfDomAccessor.getNodeId(), (int) problem.getSequenceNumber(),
+ problem.getTimestamp(), ltpUuid.getValue(), problem.getProblemName(),
+ Onf14WireInterface.mapSeverity(problem.getProblemSeverity()));
+ }
+ }
+ }
+ */
+
+ // end of public methods
+
+ // static methods
+ // end of static methods
+
+ // private classes
+ // end of private classes
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java
new file mode 100644
index 000000000..f9769951f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java
@@ -0,0 +1,40 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.InternalDataModelSeverity;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author alexs
+ *
+ */
+public class Onf14EthernetContainer {
+
+ @SuppressWarnings("unused")
+ private static final Logger LOG = LoggerFactory.getLogger(Onf14EthernetContainer.class);
+
+ public static SeverityType mapSeverity(
+ Class<? extends SEVERITYTYPE> severity) {
+ return InternalDataModelSeverity.mapSeverity(severity);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java
new file mode 100644
index 000000000..fb67a24ab
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java
@@ -0,0 +1,141 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk feature sdnr wt
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.EthernetContainer20Listener;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPECRITICAL;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMAJOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMINOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPENONALARMED;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEWARNING;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14EthernetContainerNotificationListener implements EthernetContainer20Listener {
+
+ private static final Logger log = LoggerFactory.getLogger(Onf14EthernetContainerNotificationListener.class);
+
+ private final NetconfAccessor netconfAccessor;
+ private final DeviceManagerServiceProvider serviceProvider;
+
+ private static final Map<Class<? extends SEVERITYTYPE>, SeverityType> severityMap = initSeverityMap();
+
+ public Onf14EthernetContainerNotificationListener(NetconfAccessor netconfAccessor,
+ DeviceManagerServiceProvider serviceProvider) {
+ this.netconfAccessor = netconfAccessor;
+ this.serviceProvider = serviceProvider;
+ }
+
+ private static Map<Class<? extends SEVERITYTYPE>, SeverityType> initSeverityMap() {
+ Map<Class<? extends SEVERITYTYPE>, SeverityType> map = new HashMap<>();
+ map.put(SEVERITYTYPECRITICAL.class, SeverityType.Critical);
+ map.put(SEVERITYTYPEMAJOR.class, SeverityType.Major);
+ map.put(SEVERITYTYPEMINOR.class, SeverityType.Minor);
+ map.put(SEVERITYTYPEWARNING.class, SeverityType.Warning);
+ map.put(SEVERITYTYPENONALARMED.class, SeverityType.NonAlarmed);
+ return map;
+ }
+
+ @Override
+ public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
+ log.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName("")
+ .setCounter(notification.getCounter().intValue()).setNewValue("deleted")
+ .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getNotificationService().deletionNotification(netconfAccessor.getNodeId(),
+ notification.getCounter().intValue(), notification.getTimestamp(),
+ notification.getObjectIdRef().getValue());
+
+ log.debug("onObjectDeletionNotification log entry written");
+ }
+
+ @Override
+ public void onProblemNotification(ProblemNotification notification) {
+ log.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
+ FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
+ .setProblem(notification.getProblem()).setTimestamp(notification.getTimestamp())
+ .setNodeId(this.netconfAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf)
+ .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter().intValue())
+ .build();
+ serviceProvider.getFaultService().faultNotification(faultAlarm);
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ ProblemNotification.QNAME, notification.getTimestamp());
+
+ }
+
+ private SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
+ return severityMap.getOrDefault(severity, SeverityType.NonAlarmed);
+ }
+
+ @Override
+ public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
+ log.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
+ .setAttributeName(notification.getAttributeName()).setCounter(notification.getCounter().intValue())
+ .setNewValue(notification.getNewValue()).setObjectId(notification.getObjectIdRef().getValue())
+ .setSourceType(SourceType.Netconf).setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ AttributeValueChangedNotification.QNAME, notification.getTimestamp());
+
+ log.debug("onAttributeValueChangedNotification log entry written");
+ }
+
+ @Override
+ public void onObjectCreationNotification(ObjectCreationNotification notification) {
+ log.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()).setAttributeName(notification.getObjectType())
+ .setCounter(notification.getCounter().intValue()).setNewValue("created")
+ .setObjectId(notification.getObjectIdRef().getValue()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ ObjectCreationNotification.QNAME, notification.getTimestamp());
+
+ log.debug("onObjectCreationNotification log entry written");
+ }
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java
new file mode 100644
index 000000000..acb262fcb
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java
@@ -0,0 +1,40 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.InternalDataModelSeverity;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author alexs
+ *
+ */
+public class Onf14WireInterface {
+
+ @SuppressWarnings("unused")
+ private static final Logger LOG = LoggerFactory.getLogger(Onf14WireInterface.class);
+
+ public static SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
+ return InternalDataModelSeverity.mapSeverity(severity);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java
new file mode 100644
index 000000000..8a1d42fa4
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java
@@ -0,0 +1,149 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk feature sdnr wt
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.jdt.annotation.Nullable;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPENONALARMED;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.WireInterface20Listener;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Onf14WireInterfaceNotificationListener implements WireInterface20Listener {
+
+ private static final Logger log = LoggerFactory.getLogger(Onf14WireInterfaceNotificationListener.class);
+
+ private final NetconfAccessor netconfAccessor;
+ private final DeviceManagerServiceProvider serviceProvider;
+
+ private static final Map<Class<? extends SEVERITYTYPE>,SeverityType> severityMap = initSeverityMap();
+
+ public Onf14WireInterfaceNotificationListener(NetconfAccessor netconfAccessor,
+ DeviceManagerServiceProvider serviceProvider) {
+ this.netconfAccessor = netconfAccessor;
+ this.serviceProvider = serviceProvider;
+ }
+
+ private static Map<Class<? extends SEVERITYTYPE>, SeverityType> initSeverityMap() {
+ Map<Class<? extends SEVERITYTYPE>, SeverityType> map = new HashMap<>();
+ map.put(SEVERITYTYPECRITICAL.class,SeverityType.Critical);
+ map.put(SEVERITYTYPEMAJOR.class,SeverityType.Major);
+ map.put(SEVERITYTYPEMINOR.class,SeverityType.Minor);
+ map.put(SEVERITYTYPEWARNING.class,SeverityType.Warning);
+ map.put(SEVERITYTYPENONALARMED.class,SeverityType.NonAlarmed);
+ return map;
+ }
+
+ @Override
+ public void onObjectDeletionNotification(ObjectDeletionNotification notification) {
+ log.debug("Got event of type :: {}", ObjectDeletionNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
+ .setAttributeName("")
+ .setCounter(notification.getCounter())
+ .setNewValue("deleted")
+ .setObjectId(notification.getObjectIdRef().getValue())
+ .setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ ObjectDeletionNotification.QNAME, notification.getTimestamp());
+
+ log.debug("onObjectDeletionNotification log entry written");
+ }
+
+ @Override
+ public void onProblemNotification(ProblemNotification notification) {
+ log.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
+ FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
+ .setProblem(notification.getProblem()).setTimestamp(notification.getTimestamp())
+ .setNodeId(this.netconfAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf)
+ .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter().intValue())
+ .build();
+ serviceProvider.getFaultService().faultNotification(faultAlarm);
+ serviceProvider.getWebsocketService().sendNotification( notification, netconfAccessor.getNodeId().getValue(),
+ ProblemNotification.QNAME, notification.getTimestamp());
+
+ }
+
+ private SeverityType mapSeverity(@Nullable Class<? extends SEVERITYTYPE> severity) {
+ return severityMap.getOrDefault(severity,SeverityType.NonAlarmed);
+ }
+
+ @Override
+ public void onAttributeValueChangedNotification(AttributeValueChangedNotification notification) {
+ log.debug("Got event of type :: {}", AttributeValueChangedNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
+ .setAttributeName(notification.getAttributeName())
+ .setCounter(notification.getCounter())
+ .setNewValue(notification.getNewValue())
+ .setObjectId(notification.getObjectIdRef().getValue())
+ .setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ AttributeValueChangedNotification.QNAME, notification.getTimestamp());
+
+
+ log.debug("onAttributeValueChangedNotification log entry written");
+ }
+
+ @Override
+ public void onObjectCreationNotification(ObjectCreationNotification notification) {
+ log.debug("Got event of type :: {}", ObjectCreationNotification.class.getSimpleName());
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue())
+ .setAttributeName(notification.getObjectType())
+ .setCounter(notification.getCounter())
+ .setNewValue("created")
+ .setObjectId(notification.getObjectIdRef().getValue())
+ .setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getTimestamp());
+ serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build());
+ serviceProvider.getWebsocketService().sendNotification(notification, netconfAccessor.getNodeId().getValue(),
+ ObjectCreationNotification.QNAME, notification.getTimestamp());
+
+ log.debug("onObjectCreationNotification log entry written");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java
new file mode 100644
index 000000000..552ba6604
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java
@@ -0,0 +1,54 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces;
+
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+
+/**
+ * Defining a structure that can map the LP local-id and its corresponding LTP uuid
+ */
+class TechnologySpecificPacKeys {
+
+ private UniversalId ltpUuid;
+ private String localId;
+
+ public TechnologySpecificPacKeys(UniversalId uuid, String lId) {
+ this.ltpUuid = uuid;
+ this.localId = lId;
+ }
+
+ public UniversalId getLtpUuid() {
+ return ltpUuid;
+ }
+
+ public String getLocalId() {
+ return localId;
+ }
+
+ public void setLtpUuid(UniversalId uuid) {
+ this.ltpUuid = uuid;
+ }
+
+ public void setLocalId(String lId) {
+ this.localId = lId;
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java
new file mode 100644
index 000000000..efa3cf169
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java
@@ -0,0 +1,72 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.util;
+
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Debug {
+
+ // constants
+ private static final Logger log = LoggerFactory.getLogger(Debug.class);
+ // end of constants
+
+ // variables
+ // end of variables
+
+ // constructors
+ // end of constructors
+
+ // getters and setters
+ // end of getters and setters
+
+ // private methods
+ // end of private methods
+
+ // public methods
+ /**
+ * LOG the newly added problems of the interface pac
+ *
+ * @param idxStart
+ * @param uuid
+ * @param resultList
+ */
+ public static void debugResultList(String uuid, FaultData resultList, int idxStart) {
+ StringBuilder sb = new StringBuilder();
+ int idx = 0;
+ for (int t = idxStart; t < resultList.size(); t++) {
+ sb.append(idx++);
+ sb.append(":{");
+ sb.append(resultList.get(t));
+ sb.append('}');
+ }
+ log.debug("Found problems {} {}", uuid, sb);
+ }
+ // end of public methods
+
+ // static methods
+ // end of static methods
+
+ // private classes
+ // end of private classes
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java
new file mode 100644
index 000000000..fc4de9104
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java
@@ -0,0 +1,26 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
+
+public class Control {
+
+ public class MaxAlarmStatusChanges {
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java
new file mode 100644
index 000000000..9b516bb67
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java
@@ -0,0 +1,22 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
+
+public enum OperatorState {
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java
new file mode 100644
index 000000000..7966c1c71
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java
@@ -0,0 +1,22 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
+
+public class Resource {
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java
new file mode 100644
index 000000000..c7e9103a1
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java
@@ -0,0 +1,22 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
+
+public class ResourceMatch {
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java
new file mode 100644
index 000000000..1b39bf928
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java
@@ -0,0 +1,22 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
+
+public enum SeverityWithClear {
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java
new file mode 100644
index 000000000..0769687e8
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java
@@ -0,0 +1,18 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.yang;
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
new file mode 100644
index 000000000..0be800784
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true">
+
+ <reference id="netconfNetworkElementService"
+ availability="mandatory" activation="eager"
+ interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/>
+
+ <bean id="provider"
+ class="org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.DeviceManagerOnf14Impl"
+ init-method="init" destroy-method="close">
+ <property name="netconfNetworkElementService" ref="netconfNetworkElementService"/>
+ </bean>
+</blueprint>
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/version.properties b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/version.properties
new file mode 100644
index 000000000..6638c04f9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/resources/version.properties
@@ -0,0 +1,24 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# Properties filled in by maven during build process
+version = ${project.version}
+build = ${buildtime}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/air-interface-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/air-interface-2-0.yang
new file mode 100644
index 000000000..906a91c7e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/air-interface-2-0.yang
@@ -0,0 +1,1832 @@
+module air-interface-2-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:air-interface-2-0";
+ prefix air-interface;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: AirInterface@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-21 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/airInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/airInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-11-22 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/airInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/airInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-11 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/airInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/airInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'air-interface:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER')";
+ uses air-interface-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to AirInterface::AirInterfaceCapability::supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to AirInterface::AirInterfaceConfiguration::problemSeverityList";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping air-interface-lp-spec {
+ container air-interface-pac {
+ uses air-interface-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping air-interface-pac {
+ container air-interface-capability {
+ config false;
+ uses air-interface-capability;
+ description
+ "none";
+ }
+ container air-interface-configuration {
+ uses air-interface-configuration;
+ description
+ "none";
+ }
+ container air-interface-status {
+ config false;
+ uses air-interface-status;
+ description
+ "none";
+ }
+ container air-interface-current-problems {
+ config false;
+ uses air-interface-current-problems;
+ description
+ "none";
+ }
+ container air-interface-current-performance {
+ config false;
+ uses air-interface-current-performance;
+ description
+ "none";
+ }
+ container air-interface-historical-performances {
+ config false;
+ uses air-interface-historical-performances;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping air-interface-capability {
+ leaf type-of-equipment {
+ type string;
+ default "Type of equipment not yet defined.";
+ config false;
+ description
+ "This parameter indicates the equipment type. Instead of uploading the complete set of capabilities, capabilities of the same equipment type could be reused. Should be unique for a combination of modem, radio and their respective firmware.";
+ }
+ leaf tx-frequency-min {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Value of the minimum transmit frequency tunable at the air interface.";
+ }
+ leaf tx-frequency-max {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Value of the maximum transmit frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-min {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Value of the minimum receive frequency tunable at the air interface.";
+ }
+ leaf rx-frequency-max {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Value of the maximum receive frequency tunable at the air interface.";
+ }
+ list transmission-mode-list {
+ key "transmission-mode-name";
+ config false;
+ min-elements 1;
+ uses transmission-mode;
+ description
+ "List of supported Transmission Modes.";
+ }
+ leaf duplex-distance-is-freely-configurable {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Transmitted and received frequency can be freely chosen between the given minimum and maximum values.";
+ }
+ leaf-list duplex-distance-list {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (duplexDistanceIsFreelyConfigurable==0). Lists all supported distances between transmitted and received frequency.";
+ }
+ leaf auto-freq-select-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "In case the microwave radio is capable of automatically selecting the transmit frequency in unlicensed bands, this field shall contain a 'true'.";
+ }
+ leaf adaptive-modulation-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "In case the device is capable of adaptive modulation, this field shall contain a 'true'.";
+ }
+ leaf atpc-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "In case the microwave radio is capable of ATPC, this field shall contain a 'true'.";
+ }
+ leaf atpc-range {
+ type int8;
+ units "dB";
+ default "0";
+ config false;
+ description
+ "Extent of the ATPC range. This value represents a device specific maximum value. The actual range of the ATPC at a specific link might be limited by the difference between configured transmit power (AirInterface::AirInterfaceConfiguration::txPower) and minimum transmit power of the device (TypeDefinitions::TransmissionModeType::txPowerMin).";
+ }
+ leaf supported-radio-signal-id-datatype {
+ type radio-signal-id-datatype-type;
+ default "RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "This attribute is for expressing the datatype, which is supported as a Radio Signal ID by the device.";
+ }
+ leaf supported-radio-signal-id-length {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "If (supportedRadioSignalIdDatatype==INTEGER): Maximum value of the Radio Signal ID supported by the device; If (supportedRadioSignalIdDatatype==STRING): Maximum number of letters supported by the device.";
+ }
+ leaf expected-equals-transmitted-radio-signal-id {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = It is not possible to configure an expectedRadioSignalID different from the transmittedRadioSignalID.";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Shall be marked 'true', if payload encryption is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 4;
+ description
+ "List of supported kinds of looping back of header information to the remote site.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "Available time periods for maintenance configurations (e.g. the loop back of microwave header information) 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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 7;
+ description
+ "Available alarms to be listed. Mandatory:'signalIsLost','rslIsExceeded','signalIDMismatching','temperatureIsExceeded','modemIsFaulty','radioIsFaulty' and 'modulationIsDownShifted'. Further alarms might be added by the vendor.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Collection and aggregation of performance values is available.";
+ }
+ leaf direction-of-acm-performance-values {
+ type direction-type;
+ default "DIRECTION_TYPE_NONE";
+ config false;
+ description
+ "Expresses, whether the ACM performance values (timeXStatesList) are measured at the transmitter (TX) or at the receiver (RX).";
+ }
+ description
+ "Describes the 'analog' capabilities of modem and transmitter of the microwave device. Value ranges of attributes are not independently (e.g. min. and max. transmit power depends on modulation). Legal combinations of values are expressed in transmissionModeTypes.";
+ }
+
+ grouping air-interface-configuration {
+ leaf air-interface-name {
+ type string;
+ default "Air interface ID not yet defined.";
+ description
+ "Operator specific microwave link ID (often used for coding area, type of element and sequential number).";
+ }
+ leaf remote-air-interface-name {
+ type string;
+ default "Air interface ID at the remote site not yet defined.";
+ description
+ "Name of the air interface, which belongs to the same link, at the remote site.";
+ }
+ container transmitted-radio-signal-id {
+ uses radio-signal-id-type;
+ description
+ "Transmitted radio signal ID for synchronizing the remote receiver.";
+ }
+ container expected-radio-signal-id {
+ uses radio-signal-id-type;
+ description
+ "Received radio signal ID for identifying the correct transmitter to synchronize on.";
+ }
+ leaf tx-frequency {
+ type int32;
+ units "kHz";
+ default "-1";
+ description
+ "Center frequency of the transmit channel. The values to be configured have to exactly match the values listed in the international agreement referenced in channelPlanID. In case of automated selection of the transmit frequency this field shall describe the lowest center frequency selectable.";
+ }
+ leaf rx-frequency {
+ type int32;
+ units "kHz";
+ default "-1";
+ description
+ "Center frequency of the receive channel.";
+ }
+ leaf transmission-mode-min {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+ require-instance false;
+ }
+ must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list[transmission-mode-name=current()])';
+ description
+ "Minimum transmission mode to be configured (in case adaptive modulation is not used, this value represents also the fixed transmission mode).";
+ }
+ leaf transmission-mode-max {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+ require-instance false;
+ }
+ must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list[transmission-mode-name=current()])';
+ description
+ "Maximum transmission mode to be configured.";
+ }
+ leaf power-is-on {
+ type boolean;
+ default "true";
+ description
+ "Power ON. Activation of the entire radio in a split mount configuration shall be expressed as a 'true'.";
+ }
+ leaf transmitter-is-on {
+ type boolean;
+ default "false";
+ description
+ "Activation of the transmitter inside the radio shall be expressed as a 'true'.";
+ }
+ leaf receiver-is-on {
+ type boolean;
+ default "true";
+ description
+ "Maintenance Feature. Activation of the receiver inside the radio shall be expressed as a 'true'. Attribute shall also be used for RX main and RX diversity squelches in case of diversity configurations.";
+ }
+ leaf tx-power {
+ type int8;
+ units "dBm";
+ default "99";
+ description
+ "Transmit power to be configured on the microwave link. Signed Byte is required. The actually operated transmit power might be lower depending on adaptive modulation and ATPC.";
+ }
+ leaf adaptive-modulation-is-on {
+ type boolean;
+ default "false";
+ description
+ "Adaptive Modulation. Activation of adaptive modulation shall be expressed as a 'true'.";
+ }
+ leaf xpic-is-on {
+ type boolean;
+ default "false";
+ description
+ "Activation of Cross Polarization Interference Cancelation shall be expressed as a 'true'. In case XPIC is not available for the current combination of channel bandwidth and modulation or the hardware in general, this parameter shall always be set to 'false'.";
+ }
+ leaf mimo-is-on {
+ type boolean;
+ default "false";
+ description
+ "Activation of Multiple Input Multiple Output (MIMO) shall be expressed as a 'true'.";
+ }
+ leaf alic-is-on {
+ type boolean;
+ default "false";
+ description
+ "Activation of Adjacent Link Interference Cancelation (ALIC) shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-on {
+ type boolean;
+ default "false";
+ description
+ "ATPC. Activation of Automated Transmit Power Control shall be expressed as a 'true'.";
+ }
+ leaf atpc-thresh-upper {
+ type int16;
+ units "dBm";
+ default "99";
+ description
+ "If the receive level is higher than the upper threshold value, the transmitter is notified to decrease transmit power.";
+ }
+ leaf atpc-thresh-lower {
+ type int16;
+ units "dBm";
+ default "99";
+ description
+ "If the receive level is lower than the lower threshold value, the transmitter is notified to increase transmit power.";
+ }
+ leaf atpc-tx-power-min {
+ type int8;
+ units "dBm";
+ default "-99";
+ description
+ "Transmit power, which is not to be undercut, while operating ATPC.";
+ }
+ leaf auto-freq-select-is-on {
+ type boolean;
+ default "false";
+ description
+ "Activation of automatically selecting the transmit frequency in unlicensed bands shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-range {
+ type int8;
+ units "channels";
+ default "-1";
+ description
+ "Number of transmit channels (starting at the center frequency defined in txFrequency and with channel bandwidth according to txChannelBandwidth) that define the range within the transmit frequency can automatically been chosen. ";
+ }
+ leaf modulation-is-on {
+ type boolean;
+ default "true";
+ description
+ "Maintenance Feature. De-activation of the modulation of the carrier signal for fault management shall be expressed as a 'false'.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default "false";
+ description
+ "Activates encryption of the payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description
+ "Key for transforming plaintext into ciphertext data.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NONE";
+ description
+ "Maintenance Feature. The currently configured type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration (e.g. the loop back of microwave header information). 0 = maintenance timer is switched off. Valid values are defined in AirInterface::AirInterfaceCapability::maintenanceTimerRange. ";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ min-elements 6;
+ uses problem-kind-severity-type;
+ description
+ "Severity of the problem to be configured.";
+ }
+ list g-826-threshold-cross-alarm-list {
+ key "g-826-value-kind granularity-period";
+ uses g-826-threshold-cross-alarm-type;
+ description
+ "List of G826 related threshold cross alarms to be configured.";
+ }
+ list xlts-threshold-cross-alarm-list {
+ key "level-threshold-second-kind granularity-period xlts-threshold-cross-alarm-definition-number";
+ uses xlts-threshold-cross-alarm-type;
+ description
+ "List of RLTS or TLTS (ETSI EN 301 129) related threshold cross alarms to be configured.";
+ }
+ list acm-threshold-cross-alarm-list {
+ key "acm-threshold-cross-alarm-definition-number granularity-period";
+ uses acm-threshold-cross-alarm-type;
+ description
+ "List threshold cross alarms, which relate to the time period of operation of a specific transmission mode.";
+ }
+ leaf clearing-threshold-cross-alarms-is-on {
+ type boolean;
+ default "false";
+ description
+ "Setting this bit is clearing all the currently active threshold cross alarms.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Enables measurement, collection, storage and access to performance data.";
+ }
+ description
+ "Configuration of the radio link.";
+ }
+
+ grouping air-interface-status {
+ leaf interface-status {
+ type interface-status-type;
+ default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the interface.";
+ }
+ leaf tx-frequency-cur {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Center frequency of the currently operated transmit channel.";
+ }
+ leaf rx-frequency-cur {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Center frequency of the currently operated receive channel.";
+ }
+ leaf transmission-mode-cur {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+ require-instance false;
+ }
+ config false;
+ description
+ "Currently operated transmission mode according to definitions in Capabilities.";
+ }
+ container received-radio-signal-id {
+ config false;
+ uses radio-signal-id-type;
+ description
+ "Radio signal ID of the signal, which the receiver is currently synchronized on.";
+ }
+ leaf radio-power-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If the radio unit has power and is switched on, this shall be expressed as a 'true'.";
+ }
+ leaf link-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If connection is established to the remote site with the same linkID, this shall be expressed as a 'true'.";
+ }
+ leaf xpic-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If XPIC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf mimo-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If MIMO is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf alic-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If Adjacent Link Interference Cancelation (ALIC) is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf atpc-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If ATPC is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf auto-freq-select-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If automated frequency selection is currently actually working (not just configured), this shall be expressed as a 'true'.";
+ }
+ leaf local-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description
+ "The value of the localEndPointId is a vendor specific identifier of the air interface, used by the node to discover a microwave radio link.";
+ }
+ leaf remote-end-point-id {
+ type string;
+ default "not-supported";
+ config false;
+ description
+ "The value of the remoteEndPointId is a vendor specific identifier of the airinterface at the remote side, used to by the node to discover a microwave radio link.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NONE";
+ config false;
+ description
+ "The currently active (not just configured) type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Performance values are currently collected and aggregated.";
+ }
+ leaf rx-level-cur {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Current receive level.";
+ }
+ leaf tx-level-cur {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Current transmit level.";
+ }
+ leaf snir-cur {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Currently measured signal to (noise+interference) ratio.";
+ }
+ leaf xpd-cur {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Currently measured cross polarization discrimination.";
+ }
+ leaf rf-temp-cur {
+ type int8;
+ units "Celsius";
+ default "-99";
+ config false;
+ description
+ "Current temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ description
+ "Measurements of current values on the air interface and operational status of the device.";
+ }
+
+ grouping air-interface-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses air-interface-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this air interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ grouping air-interface-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses air-interface-current-performance-type;
+ description
+ "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.";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "Aggregated performance information of the air interface at a particular moment.";
+ }
+
+ grouping air-interface-historical-performances {
+ list historical-performance-data-list {
+ key "granularity-period period-end-time";
+ config false;
+ uses air-interface-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+ }
+
+ grouping transmission-mode {
+ leaf transmission-mode-name {
+ type string;
+ config false;
+ description
+ "Name of the transmission mode. BBBB-m*-i*/t*-r*. B=four digits of channel bandwidth in MHz. m*=required number of digits for modulation name. (i*/t*=code rate.) i*=required number of digits for number of information bits. t*=required number of digits for total bits. r*=required number of digits for rate reduction factor. Example: 0028-4QAM-188/204-1";
+ }
+ leaf transmission-mode-rank {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Configuring adaptive modulation by selecting _transmissionModeMin and _transmissionModeMin requires the transmission modes to be ordered. The vendor shall rank all available transmission modes according to the respective payload data rate. The application providers shall order the transmission modes according to the rank.";
+ }
+ leaf channel-bandwidth {
+ type int32;
+ units "kHz";
+ default "-1";
+ config false;
+ description
+ "Bandwidth of the transmit channel. The value shall be expressed explicitly (means in kHz) not as a reference to an international agreement. The values shall be chosen from the following _list: 3.500, 7.000, 14.000, 27.500, 28.000, 29.000, 29.650, 30.000, 40.000, 50.000, 55.000, 56.000, 59.300, 60.000, 80.000, 100.000, 112.000, 120.000, 150.000, 200.000, 250.000, 500.000, 750.000, 1.000.000, 1.250.000, 1.500.000, 1.750.000, 2.000.000;";
+ }
+ leaf modulation-scheme {
+ type int16;
+ units "symbols";
+ default "-1";
+ config false;
+ description
+ "Modulation scheme, which is base to the other characteristics described in the same transmissionModeType data type. The modulation scheme shall be described by the number of states in the phase diagram (e.g. BPSK->'2' or 256QAM->'256').";
+ }
+ leaf code-rate {
+ type int8;
+ units "%";
+ default "-1";
+ config false;
+ description
+ "Code rate of the coding scheme in % (Net bit rate ≤ Gross bit rate · code rate).";
+ }
+ leaf symbol-rate-reduction-factor {
+ type int8;
+ default "1";
+ config false;
+ description
+ "Reduction factor for the symbol rate. Example: value would be 4 for 1/4BPSK.";
+ }
+ leaf tx-power-min {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Value of the minimum transmit power the modem can operate in dBm.";
+ }
+ leaf tx-power-max {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Value of the maximum transmit power the modem can operate in dBm.";
+ }
+ leaf rx-threshold {
+ type int16;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Value of the receive level required to decode the received signal with a Bit Error Rate of 1e-6 or less.";
+ }
+ leaf am-upshift-level {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Value of the receive level that has to be exceeded to shift into a higher modulation scheme.";
+ }
+ leaf am-downshift-level {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Value of the receive level that has to be exceeded for not shifting into a lower modulation scheme.";
+ }
+ leaf xpic-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "In case this air interface type is capable of XPIC, this field shall contain a 'true'. This information shall purely relate to capabilities of the equipment type, but not to the operational capability of a specific hardware composition on site. Means for example that this attribute might contain a 'true' statement, even if an additional cable would have been required to actually operate XPIC in a specific case.";
+ }
+ leaf supported-as-fixed-configuration {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = This transmission mode is available for manual configuration when Adaptive Modulation is switched off.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef radio-signal-id-datatype-type {
+ type identityref {
+ base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef loop-back-type {
+ type identityref {
+ base LOOP_BACK_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef direction-type {
+ type identityref {
+ base DIRECTION_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef g-826-type {
+ type identityref {
+ base G_826_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef xlevel-threshold-second-kind-type {
+ type identityref {
+ base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+ }
+ description
+ "According to ETSI EN 301 129 V1.1.2 (1999-05) chapter B.1.1";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity RADIO_SIGNAL_ID_DATATYPE_TYPE {
+ description
+ "none";
+ }
+
+ identity RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER {
+ base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+ description
+ "none";
+ }
+
+ identity RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING {
+ base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+ description
+ "none";
+ }
+
+ identity RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED {
+ base RADIO_SIGNAL_ID_DATATYPE_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE {
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_RF_TO_REMOTE {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the header information of the remote site back to the remote site on the radio interface between both outdoor units.";
+ }
+
+ identity LOOP_BACK_TYPE_RF_TO_LOCAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the header information of the local site back to the local site on the radio interface between both outdoor units.";
+ }
+
+ identity LOOP_BACK_TYPE_IF_TO_REMOTE {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the header information of the remote site back to the remote site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+ }
+
+ identity LOOP_BACK_TYPE_IF_TO_LOCAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the header information of the local site back to the local site on the intermediate frequency interface between local indoor unit and outdoor unit.";
+ }
+
+ identity LOOP_BACK_TYPE_NONE {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity DIRECTION_TYPE {
+ description
+ "none";
+ }
+
+ identity DIRECTION_TYPE_TX {
+ base DIRECTION_TYPE;
+ description
+ "none";
+ }
+
+ identity DIRECTION_TYPE_RX {
+ base DIRECTION_TYPE;
+ description
+ "none";
+ }
+
+ identity DIRECTION_TYPE_NONE {
+ base DIRECTION_TYPE;
+ description
+ "none";
+ }
+
+ identity G_826_TYPE {
+ description
+ "none";
+ }
+
+ identity G_826_TYPE_ES {
+ base G_826_TYPE;
+ description
+ "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+ }
+
+ identity G_826_TYPE_SES {
+ base G_826_TYPE;
+ description
+ "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+ }
+
+ identity G_826_TYPE_CSES {
+ base G_826_TYPE;
+ description
+ "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+ }
+
+ identity G_826_TYPE_UAS {
+ base G_826_TYPE;
+ description
+ "Unavailable Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::unavailability.";
+ }
+
+ identity G_826_TYPE_NOT_SPECIFIED {
+ base G_826_TYPE;
+ description
+ "none";
+ }
+
+ identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE_RLTS {
+ base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE_TLTS {
+ base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity XLEVEL_THRESHOLD_SECOND_KIND_TYPE_NOT_YET_DEFINED {
+ base XLEVEL_THRESHOLD_SECOND_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_TESTING {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UNKNOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DORMANT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ typedef interface-status-type {
+ type identityref {
+ base INTERFACE_STATUS_TYPE;
+ }
+ description
+ "Current Interface Status";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping radio-signal-id-type {
+ leaf numeric-radio-signal-id {
+ type uint16;
+ default "0";
+ description
+ "Only relevant if (supportedRadioSignalIdDatatype==INTEGER): 0 = the receiver ignores the signal ID of the received signal. Any other value = the receiver exclusively synchronizes on signals with the same signal ID.";
+ }
+ leaf alphanumeric-radio-signal-id {
+ type string;
+ default "Not yet defined.";
+ description
+ "Only relevant if (supportedRadioSignalIdDatatype==STRING): Empty String = the receiver synchronizes on the received signal regardless of the signal ID of the received signal. Any other entry = the receiver exclusively synchronizes on signals with the same signal ID.";
+ }
+ description
+ "none";
+ }
+
+ grouping g-826-threshold-cross-alarm-type {
+ leaf g-826-value-kind {
+ type g-826-type;
+ description
+ "Kind of performance value that shall be equipped with a threshold alarm.";
+ }
+ leaf alarm-raising-threshold {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Number of events required for raising the threshold cross alarm.";
+ }
+ leaf alarm-clearing-threshold {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Number of events required for clearing the threshold cross alarm.";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ description
+ "Period of the performance data collection.";
+ }
+ description
+ "Allows defining a threshold cross alarm.";
+ }
+
+ grouping xlts-threshold-cross-alarm-type {
+ leaf level-threshold-second-kind {
+ type xlevel-threshold-second-kind-type;
+ description
+ "Defines whether receive (RLTS) or transmit (TLTS) level triggers the threshold cross alarm.";
+ }
+ leaf xlts-level {
+ type int8;
+ units "dBm";
+ description
+ "If (LevelThresholdSecondKindType==RLTS): Receive level, which has to be undercut, for the performance counter incrementing the number of seconds. If (LevelThresholdSecondKindType==TLTS): Transmit level, which has to be exceeded, for the performance counter incrementing the number of seconds. See also ETSI EN 301 129 V1.1.2 (1999-05).";
+ }
+ leaf amount-of-seconds {
+ type int16;
+ units "s";
+ default "-1";
+ description
+ "Number of seconds, which has to be exceeded for causing the threshold cross alarm to raise for this period.";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ description
+ "Period of the performance data collection.";
+ }
+ leaf xlts-threshold-cross-alarm-definition-number {
+ type int8;
+ description
+ "Sequence number of the definitions.";
+ }
+ description
+ "none";
+ }
+
+ grouping acm-threshold-cross-alarm-type {
+ leaf acm-threshold-cross-alarm-definition-number {
+ type int8;
+ description
+ "Sequence number of the definitions.";
+ }
+ leaf transmission-mode {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+ require-instance false;
+ }
+ must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list[transmission-mode-name=current()])';
+ description
+ "none";
+ }
+ leaf amount-of-seconds {
+ type int16;
+ units "s";
+ description
+ "Number of seconds, in which the referenced transmission mode has to be operated until the threshold cross alarm is raised for this 15min or 24hour period.";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ description
+ "Period of the performance data collection.";
+ }
+ description
+ "none";
+ }
+
+ grouping air-interface-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to AirInterface::AirInterfaceCapability::supportedAlarms";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+
+ grouping time-xstates-type {
+ leaf time-xstate-sequence-number {
+ type int8;
+ units "s";
+ config false;
+ description
+ "Sequence number of the performance value.";
+ }
+ leaf transmission-mode {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/air-interface:air-interface-pac/air-interface:air-interface-capability/air-interface:transmission-mode-list/air-interface:transmission-mode-name";
+ require-instance false;
+ }
+ config false;
+ description
+ "Operated transmission mode.";
+ }
+ leaf time {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Sum of all seconds the transmitter operated the transmission mode.";
+ }
+ description
+ "none";
+ }
+
+ grouping air-interface-performance-type {
+ leaf es {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of errored seconds.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of severely errored seconds.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of consecutive severely errored seconds.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Total time of unavailability in seconds.";
+ }
+ leaf tx-level-min {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Minimum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-max {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Maximum transmit power. Signed integers are required.";
+ }
+ leaf tx-level-avg {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Averaged transmit power. Signed integers are required.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Minimum receive level. Signed integers are required.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Maximum receive level. Signed integers are required.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Averaged receive level. Signed integers are required.";
+ }
+ list time-xstates-list {
+ key "time-xstate-sequence-number";
+ config false;
+ min-elements 1;
+ uses time-xstates-type;
+ description
+ "Time period the transmitter operated in the respective transmission mode.";
+ }
+ leaf snir-min {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Minimum signal to (noise+interference) ratio.";
+ }
+ leaf snir-max {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Maximum signal to (noise+interference) ratio.";
+ }
+ leaf snir-avg {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Averaged signal to (noise+interference) ratio.";
+ }
+ leaf xpd-min {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Minimum cross polarization discrimination.";
+ }
+ leaf xpd-max {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Maximum cross polarization discrimination.";
+ }
+ leaf xpd-avg {
+ type int8;
+ units "dB";
+ default "-99";
+ config false;
+ description
+ "Averaged cross polarization discrimination.";
+ }
+ leaf rf-temp-min {
+ type int8;
+ units "Celsius";
+ default "-99";
+ config false;
+ description
+ "Lowest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-max {
+ type int8;
+ units "Celsius";
+ default "-99";
+ config false;
+ description
+ "Highest temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf rf-temp-avg {
+ type int8;
+ units "Celsius";
+ default "-99";
+ config false;
+ description
+ "Averaged temperature (in degree Celsius) of the radio module inside the outdoor unit.";
+ }
+ leaf defect-blocks-sum {
+ type int16;
+ units "blocks";
+ default "-1";
+ config false;
+ description
+ "Total number of blocks that were defect after receiving and could not be corrected by the FEC.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Total length of the measurement period.";
+ }
+ description
+ "Consolidated performance information of the air interface.";
+ }
+
+ grouping air-interface-current-performance-type {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+
+ grouping air-interface-historical-performance-type {
+ container performance-data {
+ config false;
+ uses air-interface-performance-type;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/co-channel-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/co-channel-profile-1-0.yang
new file mode 100644
index 000000000..9906cf6ba
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/co-channel-profile-1-0.yang
@@ -0,0 +1,285 @@
+module co-channel-profile-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:co-channel-profile-1-0";
+ prefix co-channel-profile;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: CoChannelProfile@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific definition for groups of microwave radio interfaces, which are using the same frequency channel (XPIC, MIMO and ALIC).
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-27 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/coChannelProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/coChannelProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-11-02 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/coChannelProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/coChannelProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-17 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/coChannelProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/coChannelProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE {
+ base core-model:PROFILE_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+ when "derived-from-or-self(./core-model:profile-name, 'co-channel-profile:PROFILE_NAME_TYPE_CO_CHANNEL_PROFILE')";
+ uses co-channel-profile-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping co-channel-profile-spec {
+ container co-channel-profile-pac {
+ uses co-channel-profile-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping co-channel-profile-pac {
+ container co-channel-profile-capability {
+ config false;
+ uses co-channel-profile-capability;
+ description
+ "none";
+ }
+ container co-channel-profile-configuration {
+ uses co-channel-profile-configuration;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping co-channel-profile-capability {
+ leaf xpic-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "In case this device is in general capable of XPIC, this field shall contain a 'true'. This information shall purely relate to capabilities of the equipment type, but not to the operational capability of a specific hardware composition on site. Means for example that this attribute might contain a 'true' statement, even if an additional cable would have been required to actually operate XPIC in a specific case.";
+ }
+ leaf mimo-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "In case the device is capable of MIMO, this field shall contain a 'true'.";
+ }
+ leaf number-of-mimo-channels-max {
+ type int8;
+ units "channels";
+ default "1";
+ config false;
+ description
+ "Maximum number (n) of spatial multiplexing streams that can be conveyed by an n x n MIMO configuration.";
+ }
+ leaf alic-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "In case the device is capable of Adjacent Link Interference Cancelation (canceling of interference cause by transmitters located at the same site), this field shall contain a 'true'.";
+ }
+ description
+ "none";
+ }
+
+ grouping co-channel-profile-configuration {
+ leaf profile-name {
+ type string;
+ default "Name of profile not yet defined.";
+ description
+ "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf kind-of-co-channel-group {
+ type kind-of-co-channel-group-type;
+ default "KIND_OF_CO_CHANNEL_GROUP_TYPE_NOT_YET_DEFINED";
+ description
+ "Type of group (XPIC, MIMO, ALIC) of air interfaces with the same transmit and receive frequency.";
+ }
+ leaf-list logical-termination-point-list {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ description
+ "List of AirInterfaces, which are part of the co-channel group. Referenced LTP must associate a LayerProtocol class with layerProtocolName attribute having LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER as value.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef kind-of-co-channel-group-type {
+ type identityref {
+ base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+ }
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity KIND_OF_CO_CHANNEL_GROUP_TYPE {
+ description
+ "none";
+ }
+
+ identity KIND_OF_CO_CHANNEL_GROUP_TYPE_XPIC {
+ base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+ description
+ "Cross Polarization Interference Cancellation";
+ }
+
+ identity KIND_OF_CO_CHANNEL_GROUP_TYPE_MIMO {
+ base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+ description
+ "Multiple Input Multiple Output";
+ }
+
+ identity KIND_OF_CO_CHANNEL_GROUP_TYPE_ALIC {
+ base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+ description
+ "Adjacent Link Interference Cancellation";
+ }
+
+ identity KIND_OF_CO_CHANNEL_GROUP_TYPE_NOT_YET_DEFINED {
+ base KIND_OF_CO_CHANNEL_GROUP_TYPE;
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/core-model-1-4.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/core-model-1-4.yang
new file mode 100644
index 000000000..990ddd350
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/core-model-1-4.yang
@@ -0,0 +1,3133 @@
+module core-model-1-4 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:core-model-1-4";
+ prefix core-model;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+
+ organization
+ "Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://wiki.opennetworking.org/pages/viewpage.action?pageId=262963204
+ WG List: <mailto:information-modeling@opennetworking.org>
+ Editor : Nigel Davis
+ Email : <mailto:ndavis@ciena.com>";
+ description
+ "This module contains a collection of YANG definitions for management and control of network fuctions.
+
+ Copyright 2019 Open Networking Foundation (ONF). All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2019-11-27 {
+ description
+ "Package equipment-specification has been deleted,
+ because of wrong key statements and overall grouping never applied.
+ ";
+ }
+ revision 2019-11-22 {
+ description
+ "Module name and name space changed to core-model-1-4
+ ";
+ reference
+ "ONF-TR-512, RFC 6020 and RFC 6087";
+ }
+ revision 2019-07-09 {
+ description
+ "Corrected version derived from ONF-TR-512 v1.4
+ - Type of LayerProtocol/layerProtocolName simplfied to LayerProtocolNameType
+ - Type of Profile/profileName changed to ProfileNameType (same concept as for layerProtocolName
+ - FcSwitch added.
+ - remove references to UML model.";
+ reference
+ "ONF-TR-512, RFC 6020 and RFC 6087";
+ }
+ revision 2019-07-05 {
+ description
+ "Corrected version derived from ONF-TR-512 v1.4
+ - renaming of attribute lp to layer-protocol
+ - presence statement in root container according to RFC8407 4.10. Top-Level Data Definitions
+ - Feature names introduced";
+ reference
+ "ONF-TR-512, RFC 6020 and RFC 6087";
+ }
+ revision 2019-05-25 {
+ description
+ "Initial version derived from ONF-TR-512 v1.4
+ Please view https://github.com/OpenNetworkingFoundation/5G-xHaul/tree/experimental/models/tools for changes.
+ Additional information: Additional manual changes";
+ reference
+ "ONF-TR-512, RFC 6020 and RFC 6087";
+ }
+ revision 2019-05-05 {
+ description
+ "Initial version
+ Please view https://github.com/OpenNetworkingFoundation/5G-xHaul/tree/experimental/models/tools for changes.
+ Additional information: Initial version";
+ reference
+ "ONF-TR-512, RFC 6020 and RFC 6087";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef port-role {
+ type string;
+ description
+ "The role of a port in the context of the function of the forwarding entity that it bounds.";
+ }
+
+ typedef port-direction {
+ type identityref {
+ base PORT_DIRECTION;
+ }
+ description
+ "The orientation of flow at the Port of a Forwarding entity.";
+ }
+
+ typedef forwarding-direction {
+ type identityref {
+ base FORWARDING_DIRECTION;
+ }
+ description
+ "The directionality of a Forwarding entity.";
+ }
+
+ typedef termination-direction {
+ type identityref {
+ base TERMINATION_DIRECTION;
+ }
+ description
+ "The directionality of a termination entity.";
+ }
+
+ typedef termination-state {
+ type identityref {
+ base TERMINATION_STATE;
+ }
+ description
+ "Provides support for the range of behaviors and specific states that an LP can take with respect to termination of the signal.
+ Indicates to what degree the LayerTermination is terminated.";
+ }
+
+ typedef layer-protocol-name-type {
+ type identityref {
+ base LAYER_PROTOCOL_NAME_TYPE;
+ }
+ description
+ "A controlled list of LayerProtocol names.";
+ }
+
+ typedef bit-string {
+ type string;
+ description
+ "This primitive type defines a bit oriented string.
+ The size of the BitString will be defined in the valueRange property of the attribute; according to ASN.1 (X.680).
+ The semantic of each bit position will be defined in the Documentation field of the attribute.";
+ }
+
+ typedef printable-string {
+ type string;
+ description
+ "A string that only includes printable characters.";
+ }
+
+ typedef universal-id {
+ type string;
+ description
+ "The universal ID value where the mechanism for generation is defined by some authority not directly referenced in the structure.
+ An example structure is [IETF RFC4122].";
+ }
+
+ typedef dt-address {
+ type string;
+ description
+ "A description of location via a hierarchy of narrowing contexts.";
+ }
+
+ typedef operational-state {
+ type identityref {
+ base OPERATIONAL_STATE;
+ }
+ description
+ "The operational state is used to indicate whether or not the resource is installed and working. ";
+ }
+
+ typedef administrative-state {
+ type identityref {
+ base ADMINISTRATIVE_STATE;
+ }
+ description
+ "The administrative state is used to show whether use of a resource is allowed or prohibited.
+ The administrative state can be observed and directly controlled by certain operational roles.
+ Typically, only a user (in the provider context) with administrative privileges is allowed to write the administrative state, any other users are restricted to read only.";
+ }
+
+ typedef administrative-control {
+ type identityref {
+ base ADMINISTRATIVE_CONTROL;
+ }
+ description
+ "Reflects the current control action when the entity is not in the desired state.";
+ }
+
+ typedef lifecycle-state {
+ type identityref {
+ base LIFECYCLE_STATE;
+ }
+ description
+ "This state is used to track the planned deployment, allocation to clients and withdrawal of resources.";
+ }
+
+ typedef forwarding-rule {
+ type identityref {
+ base FORWARDING_RULE;
+ }
+ description
+ "Rule that restricts the creation/deletion of an FC between points grouped by FD or related by the Link between FDs.";
+ }
+
+ typedef rule-type {
+ type identityref {
+ base RULE_TYPE;
+ }
+ description
+ "Indicates the focus of the rule.";
+ }
+
+ typedef port-role-rule-option {
+ type identityref {
+ base PORT_ROLE_RULE_OPTION;
+ }
+ description
+ "Indicates how to interpret the PortRole list.";
+ }
+
+ typedef signal-property-value-rule {
+ type identityref {
+ base SIGNAL_PROPERTY_VALUE_RULE;
+ }
+ description
+ "none";
+ }
+
+ typedef metaclass-class-name {
+ type string;
+ description
+ "none";
+ }
+
+ typedef profile-name-type {
+ type identityref {
+ base PROFILE_NAME_TYPE;
+ }
+ description
+ "A controlled list of Profile names.";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity PORT_DIRECTION {
+ description
+ "none";
+ }
+
+ identity PORT_DIRECTION_BIDIRECTIONAL {
+ base PORT_DIRECTION;
+ description
+ "The Port has both an INPUT flow and an OUTPUT flow defined.";
+ }
+
+ identity PORT_DIRECTION_INPUT {
+ base PORT_DIRECTION;
+ description
+ "The Port only has definition for a flow into the Forwarding entity (i.e. an ingress flow).";
+ }
+
+ identity PORT_DIRECTION_OUTPUT {
+ base PORT_DIRECTION;
+ description
+ "The Port only has definition for a flow out of the Forwarding entity (i.e. an egress flow).";
+ }
+
+ identity PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN {
+ base PORT_DIRECTION;
+ description
+ "Not a normal state. The system is unable to determine the correct value.";
+ }
+
+ identity PORT_DIRECTION_OMNIDIRECTIONAL {
+ base PORT_DIRECTION;
+ description
+ "none";
+ }
+
+ identity FORWARDING_DIRECTION {
+ description
+ "none";
+ }
+
+ identity FORWARDING_DIRECTION_BIDIRECTIONAL {
+ base FORWARDING_DIRECTION;
+ description
+ "The Forwarding entity supports both BIDIRECTIONAL flows at all Ports (i.e. all Ports have both an INPUT flow and an OUTPUT flow defined).";
+ }
+
+ identity FORWARDING_DIRECTION_UNIDIRECTIONAL {
+ base FORWARDING_DIRECTION;
+ description
+ "The Forwarding entity has Ports that are either INPUT or OUTPUT. It has no BIDIRECTIONAL Ports.";
+ }
+
+ identity FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN {
+ base FORWARDING_DIRECTION;
+ description
+ "Not a normal state. The system is unable to determine the correct value.";
+ }
+
+ identity FORWARDING_DIRECTION_OMNIDIRECTIONAL {
+ base FORWARDING_DIRECTION;
+ description
+ "none";
+ }
+
+ identity TERMINATION_DIRECTION {
+ description
+ "none";
+ }
+
+ identity TERMINATION_DIRECTION_BIDIRECTIONAL {
+ base TERMINATION_DIRECTION;
+ description
+ "A Termination with both SINK and SOURCE flows.";
+ }
+
+ identity TERMINATION_DIRECTION_SINK {
+ base TERMINATION_DIRECTION;
+ description
+ "The flow is up the layer stack from the server side to the client side.
+ Considering an example of a Termination function within the termination entity, a SINK flow:
+ - will arrive at the base of the termination function (the server side) where it is essentially at an INPUT to the termination component
+ - then will be decoded and deconstructed
+ - then relevant parts of the flow will be sent out of the termination function (the client side) where it is essentially at an OUTPUT from the termination component
+ A SINK termination is one that only supports a SINK flow.
+ A SINK termination can be bound to an OUTPUT Port of a Forwarding entity";
+ }
+
+ identity TERMINATION_DIRECTION_SOURCE {
+ base TERMINATION_DIRECTION;
+ description
+ "The flow is down the layer stack from the server side to the client side.
+ Considering an example of a Termination function within the termination entity, a SOURCE flow:
+ - will arrive at the top of the termination function (the client side) where it is essentially at an INPUT to the termination component
+ - then will be assembled with various overheads etc. and will be coded
+ - then coded form of the assembly of flow will be sent out of the termination function (the server side) where it is essentially at an OUTPUT from the termination component
+ A SOURCE termination is one that only supports a SOURCE flow.
+ A SOURCE termination can be bound to an INPUT Port of a Forwarding entity";
+ }
+
+ identity TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN {
+ base TERMINATION_DIRECTION;
+ description
+ "Not a normal state. The system is unable to determine the correct value.";
+ }
+
+ identity TERMINATION_STATE {
+ description
+ "none";
+ }
+
+ identity TERMINATION_STATE_LP_CAN_NEVER_TERMINATE {
+ base TERMINATION_STATE;
+ description
+ "A non-flexible case that can never be terminated.";
+ }
+
+ identity TERMINATION_STATE_LP_NOT_TERMINATED {
+ base TERMINATION_STATE;
+ description
+ "A flexible termination that can terminate but is currently not terminated.";
+ }
+
+ identity TERMINATION_STATE_TERMINATED_SERVER_TO_CLIENT_FLOW {
+ base TERMINATION_STATE;
+ description
+ "A flexible termination that is currently terminated for server to client flow only.";
+ }
+
+ identity TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW {
+ base TERMINATION_STATE;
+ description
+ "A flexible termination that is currently terminated for client to server flow only.";
+ }
+
+ identity TERMINATION_STATE_TERMINATED_BIDIRECTIONAL {
+ base TERMINATION_STATE;
+ description
+ "A flexible termination that is currently terminated in both directions of flow.";
+ }
+
+ identity TERMINATION_STATE_LP_PERMENANTLY_TERMINATED {
+ base TERMINATION_STATE;
+ description
+ "A non-flexible termination that is always terminated (in both directions of flow for a bidirectional case and in the one direction of flow for both unidirectional cases).";
+ }
+
+ identity TERMINATION_STATE_TERMINATION_STATE_UNKNOWN {
+ base TERMINATION_STATE;
+ description
+ "There TerminationState cannot be determined.";
+ }
+
+ identity PROTECTION_REASON {
+ description
+ "none";
+ }
+
+ identity PROTECTION_REASON_WAIT_TO_REVERT {
+ base PROTECTION_REASON;
+ description
+ "The resource is selected as control is waiting to restore to a preferred resource.";
+ }
+
+ identity PROTECTION_REASON_SIGNAL_DEGRADE {
+ base PROTECTION_REASON;
+ description
+ "The resource is selected as the best preferred resource is in signal degrade.";
+ }
+
+ identity PROTECTION_REASON_SIGNAL_FAIL {
+ base PROTECTION_REASON;
+ description
+ "The resource is selected as the best preferred resource is in signal fail.";
+ }
+
+ identity ROUTE_SELECTION_CONTROL {
+ description
+ "none";
+ }
+
+ identity ROUTE_SELECTION_CONTROL_LOCK_OUT {
+ base ROUTE_SELECTION_CONTROL;
+ description
+ "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+ This overrides all other protection control states including forced.
+ If the item is locked out, then it cannot be used under any circumstances.
+ Note: Only relevant when part of a protection scheme.
+ Note: if a protection process that has a relationship to the item (i.e. is one of the options the protection process may choose) is deactivated by being isFrozen = true) then the lockout request will be rejected. ";
+ }
+
+ identity ROUTE_SELECTION_REASON {
+ description
+ "none";
+ }
+
+ identity ROUTE_SELECTION_REASON_NONE {
+ base ROUTE_SELECTION_REASON;
+ description
+ "No reason";
+ }
+
+ identity SWITCH_CONTROL {
+ description
+ "none";
+ }
+
+ identity SWITCH_CONTROL_NORMAL {
+ base SWITCH_CONTROL;
+ description
+ "No administrative control applied to the switch.";
+ }
+
+ identity SWITCH_CONTROL_MANUAL {
+ base SWITCH_CONTROL;
+ description
+ "Resource temporarily chosen by control configuration where the resource is not the preferred resource.
+ Preferred resource has highest priority.
+ Temporarily overrides reversion.
+ If this resource fails, it will switch to best available resource.
+ If resource selected is shared and another FC requires the resource, then the selection control will change to Normal and switch to best available based upon normal rules.
+ Cannot manually switch a Forced switch, cannot remove a forced switch, cannot switch to a locked out item and will be rejected if the protection process is deactivated by being Freeze = true).
+ A manual switch/route that is selecting an FcPort, LTP, FC, Link or Route that is subsequently set to LOCK_OUT will have the manual removed (changed to NORMAL) and will switch away from the FcPort with LOCK_OUT to best available based upon normal rules.
+ A manual switch that is selecting an FcPort that is subsequently selected by a Forced switch will be restored to normal operation and the manual will be removed.
+ A manual switch/route that is selecting an FcPort, LTP, FC, Link or Route that is subsequently manual selected by another switch/route will have the manual removed and will switch away from the FcPort.
+ Can be returned to NORMAL by configuration action.";
+ }
+
+ identity SWITCH_CONTROL_FORCED {
+ base SWITCH_CONTROL;
+ description
+ "Resource temporarily chosen by control configuration where the resource is not the preferred resource.
+ Preferred resource has highest priority.
+ Temporarily overrides reversion.
+ If this resource fails it will NOT switch.
+ If resource selected is shared and another FC requires the resource through a FORCE on that FC and the FC is of a higher FcPriority then the selection control on this FC will change to NORMAL and switch to best available based upon normal rules.
+ If the resource selected is then set to LOCK_OUT then the selection control will change to NORMAL and switch to best available based upon normal rules.
+ Can be returned to NORMAL by configuration action.";
+ }
+
+ identity SWITCH_STATE_REASON {
+ description
+ "none";
+ }
+
+ identity SWITCH_STATE_REASON_NONE {
+ base SWITCH_STATE_REASON;
+ description
+ "No reason";
+ }
+
+ identity REVERSION_MODE {
+ description
+ "none";
+ }
+
+ identity REVERSION_MODE_REVERTIVE {
+ base REVERSION_MODE;
+ description
+ "An FC switched to a lower priority (non-preferred) resource will revert to a higher priority (preferred) resource when that recovers (potentially after some hold-off time).";
+ }
+
+ identity REVERSION_MODE_NON-REVERTIVE {
+ base REVERSION_MODE;
+ description
+ "An FC switched to a lower priority (non-preferred) resource will not revert to a higher priority (preferred) resource when that recovers.";
+ }
+
+ identity RESILIENCE_CONTROL {
+ description
+ "none";
+ }
+
+ identity RESILIENCE_CONTROL_QUIESCENT {
+ base RESILIENCE_CONTROL;
+ description
+ "none";
+ }
+
+ identity RESILIENCE_CONTROL_RESTORING {
+ base RESILIENCE_CONTROL;
+ description
+ "none";
+ }
+
+ identity RESILIENCE_CONTROL_RECOVERY_FAILED {
+ base RESILIENCE_CONTROL;
+ description
+ "none";
+ }
+
+ identity RESILIENCE_CONTROL_UNKNOWN {
+ base RESILIENCE_CONTROL;
+ description
+ "none";
+ }
+
+ identity RUN_MODE {
+ description
+ "none";
+ }
+
+ identity RUN_MODE_FREE_RUN {
+ base RUN_MODE;
+ description
+ "The clock is not synchronized to another clock.";
+ }
+
+ identity RUN_MODE_LOCKED {
+ base RUN_MODE;
+ description
+ "The clock is synchronized to another clock.";
+ }
+
+ identity RUN_MODE_HOLD_OVER {
+ base RUN_MODE;
+ description
+ "The clock was previously synchronized to another clock but that timing input has been lost.
+ The clock is set to the last known synchronization.";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE {
+ description
+ "none";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_PHOTONIC_MEDIA {
+ base LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "The characteristic information is that of a channel able to carry photons and of the photon source/sink.";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_OTU_AND_ODU {
+ base LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "The characteristic information is that of a channel able to carry ODU/OTU protocol (OTN) and of the ODU/OTU source/sink.";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_ETHERNET {
+ base LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "The characteristic information is that of a channel able to carry Ethernet protocol and of the Ethernet protocol source/sink.";
+ }
+
+ identity OPERATIONAL_STATE {
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_DISABLED {
+ base OPERATIONAL_STATE;
+ description
+ "The resource is unable to meet the SLA of the user of the resource.
+ If no (explicit) SLA is defined the resource is disabled if it is totally inoperable and unable to provide service to the user.";
+ }
+
+ identity OPERATIONAL_STATE_ENABLED {
+ base OPERATIONAL_STATE;
+ description
+ "The resource is partially or fully operable and available for use.";
+ }
+
+ identity ADMINISTRATIVE_STATE {
+ description
+ "none";
+ }
+
+ identity ADMINISTRATIVE_STATE_LOCKED {
+ base ADMINISTRATIVE_STATE;
+ description
+ "Users are administratively prohibited from making use of the resource.";
+ }
+
+ identity ADMINISTRATIVE_STATE_UNLOCKED {
+ base ADMINISTRATIVE_STATE;
+ description
+ "Users are allowed to use the resource.";
+ }
+
+ identity ADMINISTRATIVE_STATE_SHUTTING_DOWN {
+ base ADMINISTRATIVE_STATE;
+ description
+ "The entity is administratively restricted to existing instances of use only. There may be specific actions to remove existing uses. No new instances of use can be enabled.
+ The resource automatically transitions to “locked” when the last user quits.
+ The administrative state is not visible in the client context.
+ The lifecycle state “pending removal” should be used to indicate to the client that the provider intends to remove the resource.";
+ }
+
+ identity ADMINISTRATIVE_CONTROL {
+ description
+ "none";
+ }
+
+ identity ADMINISTRATIVE_CONTROL_UNLOCK {
+ base ADMINISTRATIVE_CONTROL;
+ description
+ "The intention is for the entity to become unlocked.
+ The entity may already be UNLOCKED.";
+ }
+
+ identity ADMINISTRATIVE_CONTROL_LOCK_PASSIVE {
+ base ADMINISTRATIVE_CONTROL;
+ description
+ "The intention is for the entity to become locked but no effort is expected to move to the Locked state (the state will be achieved once all users stop using the resource).
+ The entity may be LOCKED.";
+ }
+
+ identity ADMINISTRATIVE_CONTROL_LOCK_ACTIVE {
+ base ADMINISTRATIVE_CONTROL;
+ description
+ "The intention is for the entity to become locked and it is expected that effort will be made to move to the Locked state (users will be actively removed).
+ The entity may already be LOCKED.";
+ }
+
+ identity ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE {
+ base ADMINISTRATIVE_CONTROL;
+ description
+ "The intention is for the entity to become locked and it is expected to move to the Locked state immediately (users will be force removed).
+ The entity may already be LOCKED.";
+ }
+
+ identity ADMINISTRATIVE_CONTROL_QUIESCENT {
+ base ADMINISTRATIVE_CONTROL;
+ description
+ "The administrative state is at a stable value (LOCKED/UNLOCKED) and no action is being taken.";
+ }
+
+ identity LIFECYCLE_STATE {
+ description
+ "none";
+ }
+
+ identity LIFECYCLE_STATE_PLANNED {
+ base LIFECYCLE_STATE;
+ description
+ "The resource is planned but is not present in the network.
+ Should include a 'time' when the resources are expected to be installed.";
+ }
+
+ identity LIFECYCLE_STATE_POTENTIAL_AVAILABLE {
+ base LIFECYCLE_STATE;
+ description
+ "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.
+ (1) When a potential resource is configured and allocated to a client it is moved to the INSTALLED state for that client.
+ (2) If the potential resource has been consumed (e.g. allocated to another client) it is moved to the POTENTIAL BUSY state for all other clients.";
+ }
+
+ identity LIFECYCLE_STATE_POTENTIAL_BUSY {
+ base LIFECYCLE_STATE;
+ description
+ "The supporting resources are present in the network but have been allocated to other clients.";
+ }
+
+ identity LIFECYCLE_STATE_INSTALLED {
+ base LIFECYCLE_STATE;
+ description
+ "The resource is present in the network and is capable of providing the service.";
+ }
+
+ identity LIFECYCLE_STATE_PENDING_REMOVAL {
+ base LIFECYCLE_STATE;
+ description
+ "The resource has been marked for removal. Should include a “time” when the resources are expected to be removed.";
+ }
+
+ identity FORWARDING_RULE {
+ description
+ "none";
+ }
+
+ identity FORWARDING_RULE_CANNOT_FORWARD_ACROSS_FD_LINK {
+ base FORWARDING_RULE;
+ description
+ "LTPs referenced by the FD (or indirectly by the Link between FDs) cannot have FCs created between them.
+ This rule overrides all others.";
+ }
+
+ identity FORWARDING_RULE_MUST_FORWARD_ACROSS_FD_LINK {
+ base FORWARDING_RULE;
+ description
+ "LTPs referenced by the FD (or indirectly by the Link between FDs) MUST have FCs created between them.
+ This rule overrides all others except the CANNOT_FORWARD rule.";
+ }
+
+ identity FORWARDING_RULE_MAY_FORWARD_ACROSS_FD_LINK {
+ base FORWARDING_RULE;
+ description
+ "LTPs referenced by the FD (or indirectly by the Link between FDs) may have FCs created between them.
+ FCs may not be created between points that are not related by this rule either directly in an FD or indirectly via a Link linking two or more FDs.
+ For a Link points in an FD at one end of the Link can be connected to points in an FD at an other end of the Link.";
+ }
+
+ identity FORWARDING_RULE_NULL_FORWARDING_RULE {
+ base FORWARDING_RULE;
+ description
+ "none";
+ }
+
+ identity RULE_TYPE {
+ description
+ "none";
+ }
+
+ identity RULE_TYPE_FORWARDING {
+ base RULE_TYPE;
+ description
+ "The rule relates to creation of FCs.";
+ }
+
+ identity RULE_TYPE_COST {
+ base RULE_TYPE;
+ description
+ "The rule relates to forwarding cost.";
+ }
+
+ identity RULE_TYPE_RISK {
+ base RULE_TYPE;
+ description
+ "The rule relates to forwarding risk.";
+ }
+
+ identity RULE_TYPE_CAPACITY {
+ base RULE_TYPE;
+ description
+ "none";
+ }
+
+ identity PORT_ROLE_RULE_OPTION {
+ description
+ "none";
+ }
+
+ identity PORT_ROLE_RULE_OPTION_SAME_ROLE {
+ base PORT_ROLE_RULE_OPTION;
+ description
+ "The ports to which the rule applies must have role from the list in PortRole.";
+ }
+
+ identity PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE {
+ base PORT_ROLE_RULE_OPTION;
+ description
+ "The ports to which the rule applies must not have a role from the list in PortRole.";
+ }
+
+ identity PORT_ROLE_RULE_OPTION_ANY_ROLE {
+ base PORT_ROLE_RULE_OPTION;
+ description
+ "The rule applies to any role of port.";
+ }
+
+ identity SIGNAL_PROPERTY_VALUE_RULE {
+ description
+ "none";
+ }
+
+ identity SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE {
+ base SIGNAL_PROPERTY_VALUE_RULE;
+ description
+ "none";
+ }
+
+ identity SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE {
+ base SIGNAL_PROPERTY_VALUE_RULE;
+ description
+ "none";
+ }
+
+ identity PROFILE_NAME_TYPE {
+ description
+ "none";
+ }
+
+ identity PROFILE_NAME_TYPE_USER_PROFILE {
+ base PROFILE_NAME_TYPE;
+ description
+ "none";
+ }
+
+ identity CONNECTOR_AND_PIN_ORIENTATION {
+ description
+ "none";
+ }
+
+ identity CONNECTOR_AND_PIN_ORIENTATION_MALE {
+ base CONNECTOR_AND_PIN_ORIENTATION;
+ description
+ "The connecting elements are dominantly protrusions.";
+ }
+
+ identity CONNECTOR_AND_PIN_ORIENTATION_FEMALE {
+ base CONNECTOR_AND_PIN_ORIENTATION;
+ description
+ "The connecting elements are dominantly indentations.";
+ }
+
+ identity CONNECTOR_AND_PIN_ORIENTATION_SYMMETRIC_NEUTRAL {
+ base CONNECTOR_AND_PIN_ORIENTATION;
+ description
+ "The pin (and housing) orientation combination is such that it is symmetric so a connector is compatible with itself.
+ The connecting element may be a surface rather than protrusions or indentations.";
+ }
+
+ identity EQUIPMENT_CATEGORY {
+ description
+ "none";
+ }
+
+ identity EQUIPMENT_CATEGORY_SUBRACK {
+ base EQUIPMENT_CATEGORY;
+ description
+ "An assembly with holders designed to accommodate CIRCUIT_PACKs.
+ The assembly is designed to be mounted in a RACK.";
+ }
+
+ identity EQUIPMENT_CATEGORY_CIRCUIT_PACK {
+ base EQUIPMENT_CATEGORY;
+ description
+ "An assembly with connectors compatible with those in a holder.
+ The assembly is designed to be mounted in a holder (SLOT) of a SUBRACK.
+ May also support holders (SLOTs) for SMALL_FORMFACTOR_PLUGGABLEs.";
+ }
+
+ identity EQUIPMENT_CATEGORY_SMALL_FORMFACTOR_PLUGGABLE {
+ base EQUIPMENT_CATEGORY;
+ description
+ "A small assembly (compared to a CIRCUIT_PACK) with connectors compatible with those in a holder.
+ The assembly is designed to be mounted in a holder (SLOT) of a CIRCUIT_PACK or STAND_ALONE_UNIT.";
+ }
+
+ identity EQUIPMENT_CATEGORY_STAND_ALONE_UNIT {
+ base EQUIPMENT_CATEGORY;
+ description
+ "An assembly with connectors for cabling and potentially with holders.
+ The assembly is designed to be mounted in a freeform environment (on a table or simple mechanical cabinet).
+ May support holders (SLOTs) for CIRCUIT_PACKs or for SMALL_FORMFACTOR_PLUGGABLEs.";
+ }
+
+ identity EQUIPMENT_CATEGORY_RACK {
+ base EQUIPMENT_CATEGORY;
+ description
+ "A mechanical assembly with cabling and predefined mounting points for particular SUBRACK types.
+ The assembly is designed to be mounted on the floor in a row with other RACKs.";
+ }
+
+ identity HOLDER_CATEGORY {
+ description
+ "none";
+ }
+
+ identity HOLDER_CATEGORY_SLOT {
+ base HOLDER_CATEGORY;
+ description
+ "A guided holder with fixed connectors.
+ The guided holder is designed to take a particular form of CIRCUIT_PACK or SMALL_FORMFACTOR_PLUGGABLE";
+ }
+
+ /****************************************
+ * package resilience
+ **************************************/
+
+ typedef protection-reason {
+ type identityref {
+ base PROTECTION_REASON;
+ }
+ description
+ "The cause of the current protection state.";
+ }
+
+ typedef route-selection-control {
+ type identityref {
+ base ROUTE_SELECTION_CONTROL;
+ }
+ description
+ "Possible degrees of administrative control applied to the Route selection.";
+ }
+
+ typedef route-selection-reason {
+ type identityref {
+ base ROUTE_SELECTION_REASON;
+ }
+ description
+ "The cause of the current route selection.";
+ }
+
+ typedef switch-control {
+ type identityref {
+ base SWITCH_CONTROL;
+ }
+ description
+ "none";
+ }
+
+ typedef switch-state-reason {
+ type identityref {
+ base SWITCH_STATE_REASON;
+ }
+ description
+ "Explains the reason for the current switch state.";
+ }
+
+ typedef reversion-mode {
+ type identityref {
+ base REVERSION_MODE;
+ }
+ description
+ "The reversion mode associated with protection.";
+ }
+
+ typedef protection-type {
+ type string;
+ description
+ "Identifies the type of protection of an FcSwitch.";
+ }
+
+ typedef resilience-control {
+ type identityref {
+ base RESILIENCE_CONTROL;
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * package timing
+ **************************************/
+
+ typedef run-mode {
+ type identityref {
+ base RUN_MODE;
+ }
+ description
+ "none";
+ }
+
+ grouping layer-protocol-name-and-qualifier {
+ leaf layer-protocol-qualifier {
+ type string;
+ description
+ "Qualifies the use of the LayerProtocol where the same LayerProtocol may be used recursively such that each recursion has the same characteristic information in the main traffic path but where there is some distinction in some other aspect.
+ An example of use is in the case of the PHOTONIC_MEDIA LayerProtocol. All photonic media is of the same characteristic in the main traffic path, just a channel that enables the flow of photons, but may differ in overhead and with respect to level of nesting.
+ For the PHOTONIC_MEDIA, qualifiers may include OMS (Optical Multiplex Section), OTS (Optical Transmission Section) and NMCA (Network Media Channel Assembly).";
+ }
+ leaf layer-protocol-name {
+ type layer-protocol-name-type;
+ description
+ "The name of the LayerProtocol chosen from a controlled list.
+ LayerProtocol names include:
+ - PHOTONIC_MEDIA
+ - ODU
+ - ETHERNET";
+ }
+ description
+ "Provides a controlled list of layer protocol names and indicates the naming authority.
+ Note that it is expected that attributes will be added to this structure to convey the naming authority name, the name of the layer protocol using a human readable string and any particular standard reference.
+ Layer protocol names include:
+ - Layer 1 (L1): OTU, ODU
+ - Layer 2 (L2): Carrier Grade Ethernet (ETY, ETH), MPLS-TP (MT)
+ ";
+ }
+
+ grouping name-and-value {
+ leaf value-name {
+ type string;
+ description
+ "The name of the value. The value need not have a name.";
+ }
+ leaf value {
+ type string;
+ description
+ "The value.";
+ }
+ description
+ "A scoped name-value pair.";
+ }
+
+ grouping local-id-and-class {
+ leaf class-of-instance {
+ type string;
+ description
+ "The class to which the name refers.";
+ }
+ leaf local-id {
+ type string;
+ description
+ "The localId of the entity.";
+ }
+ description
+ "The localId and the class of entity that it identifies.";
+ }
+
+ grouping port-role-rule {
+ leaf-list port-role {
+ type port-role;
+ description
+ "The role of the port considered.";
+ }
+ leaf-list port-role-rule {
+ type port-role-rule-option;
+ description
+ "none";
+ }
+ description
+ "Constrains which ports the rule applies to.";
+ }
+
+ grouping signal-property-rule {
+ leaf signal-property-name {
+ type string;
+ description
+ "The name of the signal property to which the rule applies.";
+ }
+ leaf signal-property-value-rule {
+ type signal-property-value-rule;
+ description
+ "Indicates whether signal properties should be accounted for or not.";
+ }
+ description
+ "none";
+ }
+
+ grouping metaclass-class {
+ leaf name {
+ type metaclass-class-name;
+ description
+ "The text name of the Class";
+ }
+ description
+ "This datatype represents the '<<Metaclass>> Class' from the UML metamodel.
+ An instance of the referencing Class (e.g. LTP) will reference a Class (not an instance).
+ This referenced Class will provide definition to extend the referencing instance.
+ So, for example, an LTP instance will have the attributes defined in the LTP class and also the attributes defined in the referenced Class (an LtpSpec).
+ The referenced Class may:
+ (1) provide invariant properties (that are the same for many instances) that then are not conveyed with the referencing instance.
+ (2) provide definitions for attributes that are present in the instance that are not defined in the Class of the instance (these attribute may have been pruned and refactored from one or more external definition sources).
+ (3) apply constraints to attributes in the instance that were defined in the class of the referencing instance.
+ (4) replace attributes that were present in the class of the referencing instance by a new definition (same name).;
+ ";
+ }
+
+ grouping external-managed-universal-id {
+ leaf manager-identifier {
+ type string;
+ description
+ "none";
+ }
+ leaf external-managed-uuid {
+ type string;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * package core-network-model
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package resilience
+ **************************************/
+
+ grouping control-parameters-pac {
+ leaf reversion-mode {
+ type reversion-mode;
+ description
+ "Indicates whether the protection scheme is revertive or non-revertive.";
+ }
+ leaf wait-to-revert-time {
+ type int64;
+ default "15";
+ description
+ "If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before switching to the preferred resource.
+ If a further fault occurs on the preferred resource in the waitToRevertTime then the reversion attempt is cancelled.
+ The WTR timer is overridden by the needs of a higher priority signal. Depending upon which resource is requested this may simply cancel the attempt to revert of may cause immediate reversion.";
+ }
+ leaf prot-type {
+ type protection-type;
+ description
+ "Indicates the protection scheme that is used for the ProtectionGroup.";
+ }
+ leaf hold-off-time {
+ type int64;
+ description
+ "This attribute indicates the time, in milliseconds, between declaration of a switch trigger condition (e.g. signal degrade or signal fail), and the initialization of the protection switching algorithm.";
+ }
+ leaf network-scheme-specification {
+ type string;
+ description
+ "none";
+ }
+ description
+ "A list of control parameters to apply to a switch.";
+ }
+
+ grouping fc-switch {
+ leaf hold-off-time {
+ type int64;
+ description
+ "Moved to ControlParameter_Pac. This attribute indicates the time, in seconds, between declaration of unacceptable quality of signal on the currently selected FcPort, and the initialization of the protection switching algorithm. ";
+ }
+ leaf prot-type {
+ type protection-type;
+ description
+ "Indicates the protection scheme that is used for the ProtectionGroup.";
+ }
+ leaf reversion-mode {
+ type reversion-mode;
+ description
+ "Moved to ControlParameter_Pac. This attribute whether or not the protection scheme is revertive or non-revertive. ";
+ }
+ list selected-fc-port {
+ key "local-id";
+ uses fc-port;
+ description
+ "Indicates which points are selected by the switch.
+ Depending on the switch spec (via FcSpec)
+ - more than one FcPort can be selected at any one time (e.g. egress switch, ingress packet switch)
+ - zero FcPorts can be selected. For an ingress switch this indicates that the switch common (egress) is 'high impedance'
+ .";
+ }
+ leaf-list profile-proxy {
+ type string;
+ description
+ "Provides a set of predefined values for switch control in place of the direct values available via the FcSwitch or via _configurationAndSwitchControl.";
+ }
+ leaf configuration-and-switch-control {
+ type string;
+ description
+ "A ConfigurationAndSwitchController that is external to the switch (it is coordinating many switches and hence cannot be encapsulated in the FcSwitch.";
+ }
+ leaf internal-configuration-and-switch-control {
+ type string;
+ description
+ "A ConfigurationAndSwitchController encapsulated in the FcSwitch that controls the FcSwitch alone.";
+ }
+ leaf switch-control {
+ type switch-control;
+ description
+ "Degree of administrative control applied to the switch selection.";
+ }
+ leaf switch-selects-ports {
+ type port-direction;
+ description
+ "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
+ }
+ leaf switch-selection-reason {
+ type switch-state-reason;
+ config false;
+ description
+ "The reason for the current switch selection.";
+ }
+ container control-parameters {
+ uses control-parameters-pac;
+ description
+ "none";
+ }
+ leaf wait-to-restore-time {
+ type int64;
+ description
+ "Moved to ControlParameter_Pac and changed to waitToRevert. If the protection system is revertive, this attribute specifies the amount of time, in seconds, to wait after the preferred FcPort returns to an acceptable state of operation (e.g. a fault has cleared) before restoring traffic to that preferred FcPort.";
+ }
+ uses local-class;
+ description
+ "The FcSwitch class models the switched forwarding of traffic (traffic flow) between FcPorts and is present where there is protection functionality in the FC.
+ If an FC exposes protection (having two or more FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects to represent the alternative flow choices visible at the edge of the FC.
+ The FC switch represents and defines a protection switch structure encapsulated in the FC and essentially 'decorates' FCs that are involved in resilience schemes that use switching in a protection mechanism.
+ Essentially FcSwitch performs one of the functions of the Protection Group in a traditional model. It associates 2 or more FcPorts each playing the role of a Protection Unit.
+ One or more protection, i.e. standby/backup, FcPorts provide protection for one or more working (i.e. regular/main/preferred) FcPorts where either protection or working can feed one or more protected FcPort.
+ The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
+ It may be used in one of several modes including source switched, destination switched, source and destination switched etc. (covering cases such as 1+1 and 1:1).
+ It may be locked out (prevented from switching), force switched or manual switched.
+ It will indicate switch state and change of state.
+ The switch can be switched away from all sources such that it becomes open and hence two coordinated switches can both feed the same LTP so long as at least one of the two is switched away from all sources (is 'open').
+ The ability for a Switch to be 'high impedance' allows bidirectional ForwardingConstructs to be overlaid on the same bidirectional LTP where the appropriate control is enabled to prevent signal conflict.
+ This ability allows multiple alternate routes to be present that otherwise would be in conflict.";
+ }
+
+ grouping casc-port {
+ leaf port-role {
+ type string;
+ description
+ "The role of the port of a C&SC.
+ The interpretation of the role is provided by the C&SC spec.
+ The C&SC spec will set out the role in the context of C&SC functions.
+ The role will indicate how the port relates to the associated entity, e.g. is conveying messages.";
+ }
+ container port-role-properties {
+ uses casc-port-role-properties;
+ description
+ "A link to properties associated with the port role as defined by the CascSpec.";
+ }
+ list logical-termination-point {
+ key "uuid";
+ uses logical-termination-point;
+ description
+ "The LTP that conveys the messages related to the port and/or is subject to control action and/or provides indications of state etc.
+ For direct association, there may be up to 2 LTPs (to account for directionality differences).
+ In the specification representation, there may be a number rules that provide further LTP relationships that are implicit in the instantiated model.";
+ }
+ leaf encapsulating-casc-port {
+ type leafref {
+ path "/core-model:casc-port/core-model:uuid";
+ }
+ description
+ "In a case where there is nested C&SC the ports are also nested and this references the superior port.";
+ }
+ leaf is-related-control-flow-disabled {
+ type boolean;
+ default "true";
+ description
+ "If TRUE, then any Control signal flow related to this controller (to, from or drop-and-continue) is prevented from passing through the related LTP carrying the signaling for this controller.
+ This can be considered as being realized using an FcSwitch in an FC embedded in the LP at the layer of signaling to disconnect the FcPort bidirectionally.
+ This FcSwitch should be represented in the LTP spec.
+ Note that the FcSwitch will be at the granularity of the relevant control signal and other flows may be passed uninterrupted.";
+ }
+ leaf is-controlled-fc-port-disabled {
+ type boolean;
+ description
+ "If TRUE, then the related FcPort on the FC is disabled and hence signal will not flow through that FcPort.
+ This is realized using an FcSwitch to disconnect the FcPort bidirectionally.
+ Note that as the controller may control many FCs and may switch them all together as one, in an implementation the FcSwitch could be omitted from the FC instance model.
+ Any omission should be explained by the FcSpec.
+ This is equivalent to a blocked indication on the LTP used in other representations.";
+ }
+ leaf is-protection-lock-out {
+ type boolean;
+ description
+ "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+ This overrides all other protection control states including forced.
+ If the item is locked out, then it cannot be used under any circumstances.
+ This causes isRelatedControlFlowDisabled to become TRUE and isControlledFcPortDisabled to become TRUE.";
+ }
+ uses global-class;
+ description
+ "A port of a C&SC that can be used where there is significant asymmetry to be represented.
+ This can represent any combination of:
+ - the conveying of messaging to/from the C&SC
+ - the conveying of control action
+ - the providing of indications of state etc.";
+ }
+
+ grouping casc-port-role-properties {
+ leaf signalling-format {
+ type string;
+ description
+ "A reference to the definition of the signalling format used by the instance referenced by the related port.
+ This is a placeholder for a more sophisticated capability.";
+ }
+ leaf monitoring-details {
+ type string;
+ description
+ "Information on what is being monitored in the instance referenced by the related port.
+ This is a placeholder for a more sophisticated capability.";
+ }
+ leaf control-details {
+ type string;
+ description
+ "Information on what is being controlled in the instance referenced by the related port.
+ This is a placeholder for a more sophisticated capability.";
+ }
+ description
+ " Container for properties associated with the port role as defined by the CascSpec.";
+ }
+
+ /****************************************
+ * package timing
+ **************************************/
+
+ grouping clock {
+ leaf run-mode {
+ type run-mode;
+ config false;
+ description
+ "The run-mode of the frequency system clock, such as free-run, locked, and holdover.";
+ }
+ leaf-list encompassed-clock {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:embedded-clock/core-model:local-id";
+ }
+ description
+ "A clock may be emergent from and may effectively encompass several clocks in a resilient solution.";
+ }
+ list encapsulated-fc {
+ key "uuid";
+ uses forwarding-construct;
+ description
+ "A Clock may encapsulate an FC related to resilience where the clock provides an output that is essentially that of one of several other clocks in the resilience scheme.";
+ }
+ leaf-list sync-ltp {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ description
+ "A clock may feed one or more LTPs with timing information to propagate across the network (it may feed no LTPs).";
+ }
+ leaf-list encapsulated-casc {
+ type string;
+ description
+ "The clock may encapsulate a complex FC where there is a resilience mechanism active and that FC will need to be controlled.
+ The Casc to control the FC can be encapsulated in the Clock.";
+ }
+ leaf-list phase-aligned-clock {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:embedded-clock/core-model:local-id";
+ }
+ description
+ "One or more clocks can be actively phase aligned (this is especially relevant in a hitless resilience scheme).";
+ }
+ uses local-class;
+ description
+ "Clock function processes the input sync information (frequency and ssm or time stamp and PTP announce messages) and provides the modified sync information to the sync distribution function.
+ If none of the inputs meet the quality defined by the controller the clock may enter a hold-over or free run mode.
+ The status of the clock will be reported to the controller.";
+ }
+
+ grouping forwarding-domain {
+ leaf-list layer-protocol-name {
+ type layer-protocol-name-type;
+ min-elements 1;
+ description
+ "One or more protocol layers at which the FD represents the opportunity to enable forwarding between LTP that bound it.";
+ }
+ leaf-list lower-level-fd {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ }
+ description
+ "The FD class supports a recursive aggregation relationship (HigherLevelFdEncompassesLowerLevelFds) such that the internal construction of an FD can be exposed as multiple lower level FDs and associated Links (partitioning).
+ The aggregated FDs and Links form an interconnected topology that provides and describes the capability of the aggregating FD.
+ Note that the model actually represents an aggregation of lower level FDs into higher level FDs as views rather than FD partition, and supports multiple views.
+ Aggregation allow reallocation of capacity from lower level FDs to different higher level FDs as if the network is reorganized (as the association is aggregation not composition).";
+ }
+ list fc {
+ key "uuid";
+ uses forwarding-construct;
+ description
+ "An FD aggregates one or more FCs. An aggregated FC connects LTPs that bound the FD.";
+ }
+ leaf-list logical-termination-point {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ description
+ "An instance of FD is associated with zero or more LTP objects.
+ The LTPs that bound the FD provide capacity for forwarding.
+ For asymmetric FDs, the association to the LTP is via the FdPort.";
+ }
+ list fd-port {
+ key "local-id";
+ uses fd-port;
+ description
+ "The association of the FD to LTPs is either made directly for symmetric FDs or via FdPort for asymmetric FDs.";
+ }
+ uses global-class;
+ description
+ "The ForwardingDomain (FD) class models the topological component that represents a forwarding capability that provides the opportunity to enable forwarding (of specific transport characteristic information at one or more protocol layers) between points.
+ The FD object provides the context for and constrains the formation, adjustment and removal of FCs and hence offers the potential to enable forwarding.
+ The FCs may be formed between LTPs at the boundary of the FD or between AccessPorts at the boundary of the FD (for the most basic media layers cases - most media cases use LTPs).
+ A number of FDs (related by Links) may be grouped and abstracted to form an FD where that FD represents the effect of the underlying FDs but where the detailed structure is not apparent.
+ This grouping and abstraction is potentially recursive.
+ This aspect is essentially equivalent to ITU-T partitioning but this is an aggregation not a composition, so it allows an FD to be in multiple higher level FDs.
+ The notion of abstraction/grouping assumes that small things are brought together into larger things as opposed to ITU-T partitioning that assumes large things are broken down into smaller things.
+ An FD represents an abstraction of some combination of software behavior, electronic behavior and physical structure that provides a forwarding capability.
+ At a lower level of recursion an FD could represent a forwarding capability within a device.
+ A device may encompass two or more disjoint forwarding capabilities and may support more than one layer protocol, hence more than one FD.
+ A routing fabric may be logically partitioned to represent connectivity constraints, hence the FD representing the routing fabric may be partitioned into a number of FDs representing the constraints.
+ The FD represents a subnetwork [ITU-T G.800], FlowDomain [TMF 612] and a MultiLayerSubNetwork (MLSN) [TMF 612].
+ As in the TMF concept of MLSN the FD can support more than one layer-protocol.
+ Note that the ITU-T G.800 subnetwork is a single layer entity.";
+ }
+
+ grouping forwarding-construct {
+ leaf layer-protocol-name {
+ type layer-protocol-name-type;
+ description
+ "The layerProtocol at which the FC enables the potential for forwarding.";
+ }
+ leaf-list lower-level-fc {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ }
+ description
+ "An FC object supports a recursive aggregation relationship such that the internal construction of an FC can be exposed as multiple lower level FC objects (partitioning).
+ Aggregation is used as for the FD to allow changes in hierarchy.
+ FC aggregation reflects FD aggregation.
+ For example a low level FC could represent what would have traditionally been considered as a 'Cross-Connection' in an 'NE'. The 'Cross-Connection' in an 'NE' is not necessarily the lowest level of FC partitioning.
+ ";
+ }
+ leaf fc-route {
+ type string;
+ description
+ "An FC object can have zero or more routes, each of which is defined as a list of lower level FC objects describing the flow across the network.";
+ }
+ list fc-port {
+ key "local-id";
+ uses fc-port;
+ description
+ "The FcPorts define the boundary of the FC.
+ The FC is accessed via the FcPorts.
+ Flow within the FC is defined in terms of its FcPorts.";
+ }
+ list fc-switch {
+ key "local-id";
+ uses fc-switch;
+ description
+ "If an FC exposes protection (having two FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects.
+ The arrangement of switches for a particular instance is described by a referenced FcSpec.";
+ }
+ leaf-list configuration-and-switch-control {
+ type string;
+ description
+ "Reference to a ConfigurationAndSwitchController that coordinates switches encapsulated in the FC.
+ The controller coordinates multiple switches in the same FC.";
+ }
+ leaf forwarding-direction {
+ type forwarding-direction;
+ description
+ "The directionality of the ForwardingConstruct.
+ Is applicable to simple ForwardingConstructs where all FcPorts are BIDIRECTIONAL (the ForwardingConstruct will be BIDIRECTIONAL) or UNIDIRECTIONAL (the ForwardingConstruct will be UNIDIRECTIONAL).
+ Is not present in more complex cases.
+ In the case of media the FcPorts and FC may also be omni-directional.";
+ }
+ leaf is-protection-lock-out {
+ if-feature "forwardingconstructisprotectionlockout";
+ type boolean;
+ description
+ "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+ This overrides all other protection control states including forced.
+ If the item is locked out then it cannot be used under any circumstances.
+ Note: Only relevant when part of a protection scheme.";
+ }
+ leaf service-priority {
+ type int64;
+ description
+ "Relevant where 'service' FCs are competing for server resources.
+ Used to determine which signal FC is allocated resource.
+ The priority of the 'service' with respect to other 'services'.
+ Lower numeric value means higher priority.
+ Covers cases such as pre-emptible in a resilience solution. ";
+ }
+ leaf-list supported-link {
+ type string;
+ description
+ "An FC that spans between LTPs that terminate the LayerProtocol usually supports one or more links in the client layer.";
+ }
+ leaf supporting-pc {
+ type string;
+ description
+ "The functionality supporting this entity.";
+ }
+ uses global-class;
+ description
+ "The ForwardingConstruct (FC) represents enabled constrained potential for forwarding between two or more FcPorts at a particular specific layerProtocol .
+ The constraint is explained by the FcSpec. Even when an FC is in place enabling potential for flow, it is possible that no information is flowing as there is no flow matching the constraint, hence 'potential'.
+ Like the LTP, the FC supports any transport protocol including all analogue, circuit and packet forms.
+ The FC is used to effect forwarding of transport characteristic (layer protocol) information.
+ An FC can be in only one ForwardingDomain (FD).
+ The FC is a forwarding entity.
+ At a low level of the recursion, a FC represents a cross-connection within an NE. It may also represent a fragment of a cross-connection under certain circumstances.
+ The FC object can be used to represent many different structures including point-to-point (P2P), point-to-multipoint (P2MP), rooted-multipoint (RMP) and multipoint-to-multipoint (MP2MP) bridge and selector structures for linear, ring or mesh protection schemes.
+ When applied to media, the FC represents the ability for a flow/wave (potentially containing information), to be propagated between FcPorts.
+ The existence of a FC instance is independent of the presence (or absence) of a flow/wave (and any information encoded within it) where flow/wave covers the progressing of any analogue or digital (packet/frame etc.) structure.
+ A flow/wave cannot propagate in the absence of a FC instance.";
+ }
+
+ grouping fc-port {
+ leaf-list logical-termination-point {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ max-elements 2;
+ description
+ "The FcPort may be associated with more than one LTP when the FcPort is bidirectional and the LTPs are unidirectional.
+ Multiple LTP
+ - Bidirectional FcPort to two Uni-directional LTPs
+ Zero LTP
+ - BreakBeforeMake transition
+ - Planned LTP not yet in place
+ - Off-network LTP referenced through other mechanism.";
+ }
+ leaf role {
+ type port-role;
+ description
+ "Each FcPort of the FC has an assigned role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root) in the context of the FC with respect to the FC function.
+ The role is fixed by the referenced FcSpec.";
+ }
+ leaf fc-port-direction {
+ type port-direction;
+ description
+ "The orientation of the defined flow at the FcPort.";
+ }
+ leaf is-protection-lock-out {
+ if-feature "fcportisprotectionlockout";
+ type boolean;
+ description
+ "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+ This overrides all other protection control states including forced.
+ If the item is locked out, then it cannot be used under any circumstances.
+ Note: Only relevant when part of a protection scheme.";
+ }
+ leaf selection-priority {
+ type int64;
+ description
+ "The preference priority of the resource in the protection scheme for a particular FC.
+ The lower the value the higher the priority.
+ A lower value of selection priority is preferred
+ If two resources have the same value they are of equal priority.
+ There is no preference between equal priorities.
+ If a resource with the lowest value selection priority fails,, then the next lowest value available (may be the same value) is picked.
+ Hence on failure of the current resource the next best available will be selected.
+ If there are several equal values, the choice is essentially arbitrary.
+ If the scheme is revertive then when a resource of higher priority than the currently selected resource recovers it will be selected.
+ This is equivalent to working/protection but allows for all static scheme types with n:m capability.
+ In simple schemes 0 = working and 1 = protecting.
+ If selection priority of an FcPort is increased in value and the FC is currently selecting this FcPort then if another FcPort of a lower selection priority value is available, the wait to restore process will come into action as if the other FcPort had just become available.
+ If selection priority of a FcPort is changed and the FC is not currently selecting this FcPort but is selecting an item that is now of a higher numeric value than the changed FcPort then the wait to restore process will come into action as if the other FcPort had just become available.";
+ }
+ leaf is-internal-port {
+ type boolean;
+ config false;
+ description
+ "The FcPort is not exposed and cannot have associated LTPs.
+ This form of FcPort is used to enable chaining of FcSwitches or FcRoutes in complex network protection scenarios.";
+ }
+ leaf-list fc-route-feeds-fc-port-egress {
+ type string;
+ description
+ "Identifies which route(s) currently actively forward to the FcPort to exit the FC to an LTP (or for an internal FcPort to propagate to the next internal switch/route).";
+ }
+ leaf-list fc-port {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:fc-port/core-model:local-id";
+ }
+ max-elements 2;
+ description
+ "An FcPort may have a direct association to another FcPort where there is a transition from one domain to another but where there has been no termination.";
+ }
+ leaf-list port-of-internal-fc {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:fc-port/core-model:local-id";
+ }
+ description
+ "none";
+ }
+ uses local-class;
+ description
+ "The association of the FC to LTPs is always made via FcPorts.
+ In the case of media the association between FCs is made via their FcPorts and the association of an FC to the physical Pin is made via the FcPort.
+ The FcPort class models the access to the FC function.
+ The traffic forwarding between the associated FcPorts of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
+ In cases where there is resilience, the FcPort may convey the resilience role of the access to the FC.
+ It can represent a protected (resilient/reliable) point or a protecting (unreliable working/main or protection/spare) point.
+ The FcPort replaces the Protection Unit of a traditional protection model (e.g., ITU-T).
+ The ForwardingConstruct can be considered as a component and the FcPort as a Port on that component.";
+ }
+
+ grouping layer-protocol {
+ leaf layer-protocol-name {
+ type layer-protocol-name-type;
+ description
+ "Indicate the specific layer-protocol described by the LayerProtocol entity.";
+ }
+ leaf configured-client-capacity {
+ type string;
+ description
+ "Provides a summarized view of the client capacity that is configurable for use.
+ Note the client LTP association should provide all necessary detail hence this attribute is questionable.";
+ }
+ leaf lp-direction {
+ type termination-direction;
+ description
+ "The overall directionality of the LP.
+ - A BIDIRECTIONAL LP will have some SINK and/or SOURCE flows.
+ - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE flows
+ - A SOURCE LP can only contain SOURCE flows or CONTRA_DIRECTION_SINK flows";
+ }
+ leaf termination-state {
+ type termination-state;
+ description
+ "Indicates whether the layer is terminated and if so how.";
+ }
+ leaf-list configuration-and-switch-control {
+ type string;
+ description
+ "A switch controller external to the LayerProtocol.
+ The controller will coordinate one or more switches in one or more FCs related to the LayerProtocol";
+ }
+ leaf is-protection-lock-out {
+ type boolean;
+ description
+ "The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of.
+ This overrides all other protection control states including forced.
+ If the item is locked out, then it cannot be used under any circumstances.
+ Note: Only relevant when part of a protection scheme.";
+ }
+ leaf fc-blocks-signal-to-lp {
+ type string;
+ description
+ "Indicates whether the associated FC is blocking signal to/from the LTP.";
+ }
+ uses local-class;
+ description
+ "The projection of an LTP into each transport layer is represented by a LayerProtocol (LP) instance. A LayerProtocol instance can be used for controlling termination and monitoring functionality.
+ It can also be used for controlling the adaptation (i.e. aggregation, encapsulation and/or multiplexing of client signal), tandem connection monitoring, traffic conditioning and/or shaping functionality at an intermediate point along a connection.
+ Where the client – server relationship is fixed 1:1 and immutable, the layers can be encapsulated in a single LTP instance. Where there is a n:1 relationship between client and server, the layers must be split over two separate instances of LTP. ";
+ }
+
+ grouping logical-termination-point {
+ leaf-list server-ltp {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ description
+ "References contained LTPs representing servers of this LTP in an inverse multiplexing configuration (e.g. VCAT).";
+ }
+ leaf-list client-ltp {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ description
+ "References contained LTPs representing client traffic of this LTP for normal cases of multiplexing.";
+ }
+ list layer-protocol {
+ key "local-id";
+ min-elements 1;
+ uses layer-protocol;
+ description
+ "Ordered list of LayerProtocols that this LTP is comprised of where the first entry in the list is the lowest server layer (e.g. physical).";
+ }
+ leaf connected-ltp {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ description
+ "Applicable in a simple context where two LTPs are associated via a non-adjustable enabled forwarding.
+ Reduces clutter removing the need for two additional LTPs and an FC with a pair of FcPorts.";
+ }
+ leaf peer-ltp {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ description
+ "References contained LTPs representing the reversal of orientation of flow where two LTPs are associated via a non-adjustable enabled forwarding and where the referenced LTP is fully dependent on this LTP.";
+ }
+ leaf-list physical-port-reference {
+ type leafref {
+ path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+ require-instance true;
+ }
+ description
+ "One or more text labels for the unmodeled physical port associated with the LTP.
+ In many cases there is no associated physical port.";
+ }
+ leaf-list ltp-in-other-view {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ description
+ "References one or more LTPs in other views that represent this LTP.
+ The referencing LTP is the provider of capability.";
+ }
+ leaf ltp-direction {
+ type termination-direction;
+ description
+ "The overall directionality of the LTP.
+ - A BIDIRECTIONAL LTP must have at least some LPs that are BIDIRECTIONAL but may also have some SINK and/or SOURCE LPs.
+ - A SINK LTP can only contain SINK LPs
+ - A SOURCE LTP can only contain SOURCE LPs";
+ }
+ leaf transfer-capacity-pac {
+ type string;
+ description
+ "The LTP has as an inherent capacity derived from underlying capability.
+ The capacity of a particular LTP may be dependent upon other uses of resource in the device and hence it may vary over time.
+ The capacity of a Link is dependent upon the capacity of the LTPs at its ends.
+ An LTP may be an abstraction and virtualization of a subset of the underlying capability offered in a view or may be directly reflecting the underlying realization.";
+ }
+ leaf-list fd-rule-group {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ }
+ description
+ "An LTP can reference FD rules that the FD that aggregates it also references so that the rules can then apply to the LTP.";
+ }
+ list embedded-clock {
+ key "local-id";
+ uses clock;
+ description
+ "none";
+ }
+ leaf supporting-pc {
+ type string;
+ description
+ "The functionality supporting this entity.";
+ }
+ uses global-class;
+ description
+ "The LogicalTerminationPoint (LTP) class encapsulates the termination and adaptation functions of one or more transport layers represented by instances of LayerProtocol.
+ The encapsulated transport layers have a simple fixed 1:1 client-server relationship defined by association end ordering.
+ The structure of LTP supports all transport protocols including analogue, circuit and packet forms.";
+ }
+
+ grouping fd-port {
+ leaf-list logical-termination-point {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ }
+ max-elements 2;
+ description
+ "An instance of FD is associated with zero or more LTP objects.
+ The LTPs that bound the FD provide capacity for forwarding.
+ For asymmetric FDs, the association to the LTP is via the FdPort.";
+ }
+ leaf role {
+ type port-role;
+ description
+ "Each FdPort of the FD has a role (e.g., symmetric, hub, spoke, leaf, root) in the context of the FD with respect to the FD capability. ";
+ }
+ leaf fd-port-direction {
+ type port-direction;
+ description
+ "The orientation of the defined flow at the FdPort.";
+ }
+ leaf-list fc-port {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:fc-port/core-model:local-id";
+ }
+ description
+ "Where an FD is asymmetric and hence has FdPorts and where that FD and supports FCs, appropriate FdPorts of that FD support the corresponding FcPorts.";
+ }
+ leaf-list fd-port {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fd-port/core-model:local-id";
+ }
+ max-elements 2;
+ description
+ "An FdPort may have a direct association to another FdPort where there is a transition from one domain to another but where there has been no termination.";
+ }
+ uses local-class;
+ description
+ "The association of the FD to LTPs may be direct for symmetric FDs and may be via FdPort for asymmetric FDs.
+ The FdPort class models the role of the access to the FD function.
+ The capability to set up FCs between the associated FdPorts of the FD depends upon the type of FD. It is asymmetry in this capability that brings the need for FdPort.
+ The FD can be considered as a component and the FdPort as a Port on that component.";
+ }
+
+ feature forwardingconstructisprotectionlockout {
+ description
+ "none";
+ }
+
+ feature fcportisprotectionlockout {
+ description
+ "none";
+ }
+
+ /****************************************
+ * package associations
+ **************************************/
+ /****************************************
+ * package core-foundation-model
+ **************************************/
+ /****************************************
+ * package super-classes-and-common-packages
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping name {
+ list name {
+ key "value-name";
+ uses name-and-value;
+ description
+ "List of names.";
+ }
+ description
+ "Name: A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.";
+ }
+
+ grouping global-class {
+ container external-managed-id {
+ uses external-managed-universal-id;
+ description
+ "A list of external managed universal identifiers, set by an external tool. There must not be any function implemented on the ControlConstruct itself next to updating the list on request and storing it persitenly. ";
+ }
+ leaf local-id {
+ type string;
+ description
+ "An identifier that is unique in the context of some scope that is less than the global scope.
+ (This should be considered in the context of Identifier: A property of an entity/role with a value that is unique within an identifier space, where the identifier space is itself unique, and immutable. The identifier therefore represents the identity of the entity/role. An identifier carries no semantics with respect to the purpose of the entity.)";
+ }
+ leaf uuid {
+ type universal-id;
+ description
+ "UUID: An identifier that is universally unique
+ (This should be considered in the context of Identifier: A property of an entity/role with a value that is unique within an identifier space, where the identifier space is itself globally unique, and immutable. An identifier carries no semantics with respect to the purpose or state of the entity)
+ The uuid should be treated as opaque by the user.";
+ }
+ uses name;
+ uses label;
+ uses extension;
+ uses state-pac;
+ uses address;
+ description
+ "Represents a type of thing (an Entity) that has instances which can exist in their own right (independently of any others).
+ Entity: Has identity, defined boundary, properties, functionality and lifecycle in a global context.
+ (This should be considered in the context of a Class: (usage) The representation of a thing that may be an entity or an inseparable Entity Feature).";
+ }
+
+ grouping local-class {
+ leaf local-id {
+ type string;
+ description
+ "An identifier that is unique in the context of some scope that is less than the global scope.
+ (This should be considered in the context of Identifier: A property of an entity/role with a value that is unique within an identifier space, where the identifier space is itself unique, and immutable. The identifier therefore represents the identity of the entity/role. An identifier carries no semantics with respect to the purpose of the entity.)";
+ }
+ uses name;
+ uses label;
+ uses extension;
+ uses state-pac;
+ uses address;
+ description
+ "A LocalClass represents a Feature of an Entity. It is inseparable from a GlobalClass but is a distinct feature of that GlobalClass such that the instances of LocalClass are able to have associations to other instances.
+ Feature of an Entity: An inseparable, externally distinguishable part of an entity.
+ The mandatory LocalId of the LocalClass instance is unique in the context of the GlobalClass from which it is inseparable.
+ (This should be considered in the context of a Class: (usage) The representation of a thing that may be an entity or an inseparable feature of an entity.)
+ ";
+ }
+
+ grouping label {
+ list label {
+ key "value-name";
+ uses name-and-value;
+ description
+ "List of labels.";
+ }
+ description
+ "A property of an entity with a value that is not expected to be unique and is allowed to change. A label carries no semantics with respect to the purpose of the entity and has no effect on the entity behavior or state.";
+ }
+
+ grouping extension {
+ list extension {
+ key "value-name";
+ uses name-and-value;
+ description
+ "List of simple name-value extensions.";
+ }
+ description
+ "Extension provides an opportunity to define properties not declared in the class that extend the class enabling a realization with simple ad-hoc extension of standard classes to be conformant.";
+ }
+
+ grouping universal-id-authority {
+ leaf uuid {
+ type universal-id;
+ description
+ "The UUID for the UUID authority.";
+ }
+
+ description
+ "Represents the authority that controls the allocation of UUIDs.";
+ }
+
+ grouping name-and-value-authority {
+ leaf uuid {
+ type universal-id;
+ description
+ "The UUID for the NameAndValueAuthority.";
+ }
+ description
+ "Represents the authority that controls the legal values for the names and values of a name/value attribute.";
+ }
+
+ grouping conditional-package {
+ uses extension;
+ uses label;
+ description
+ "The base class for conditional packages.";
+ }
+
+ grouping address {
+ leaf-list address {
+ type dt-address;
+ description
+ "One or more descriptions of the location.";
+ }
+ description
+ "Provides an opportunity to state the location of the entity via one or more hierarchies of narrowing contexts.";
+ }
+
+ /****************************************
+ * package assocations
+ **************************************/
+ /****************************************
+ * package state-model
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping state-pac {
+ leaf operational-state {
+ type operational-state;
+ config false;
+ description
+ "The operational state is used to indicate whether or not the resource is installed and working.";
+ }
+ leaf administrative-control {
+ type administrative-control;
+ description
+ "The administrativeControl state provides control of the availability of specific resources without modification to the provisioning of those resources.
+ The value is the current control target. The actual administrativeState may or may not be at target.";
+ }
+ leaf administrative-state {
+ type administrative-state;
+ config false;
+ description
+ "Shows whether or not the client has permission to use or has a prohibition against using the resource.
+ The administrative state expresses usage permissions for specific resources without modification to the provisioning of those resources.";
+ }
+ leaf lifecycle-state {
+ type lifecycle-state;
+ description
+ "Used to track the planned deployment, allocation to clients and withdrawal of resources.";
+ }
+ description
+ "Provides general state attributes.";
+ }
+
+ /****************************************
+ * package state-machines
+ **************************************/
+ /****************************************
+ * package core-physical-model
+ **************************************/
+ /****************************************
+ * package rule-models
+ **************************************/
+ /****************************************
+ * package fru-non-fru-rules
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping field-replaceable {
+ list equipment-non-fru {
+ key "uuid";
+ uses non-field-replaceable;
+ description
+ "none";
+ }
+ list holder {
+ key "local-id";
+ uses holder;
+ description
+ "none";
+ }
+ container holder-address {
+ uses holder;
+ description
+ "none";
+ }
+ uses equipment;
+ description
+ "A rule class (an abstract specialization of Equipment) that represents an equipment that can be replaced in the field.
+ May plug in to a holder in another equipment (if not stand-alone).
+ Realization could use an FRU Boolean on Equipment.";
+ }
+
+ grouping non-field-replaceable {
+ uses equipment;
+ description
+ "A rule class (an abstract specialization of Equipment) that represents an equipment that cannot be replaced in the field.
+ Is simply a subordinate part of an FRU (or another NFRU – where there must be an FRU at the top of the hierarchy).
+ Does not have any exposed holders (any associated holders are assumed to belong to the containing FRU).
+ Does not have any connectors (any associated connectors are assumed to belong to the containing FRU).
+ ";
+ }
+
+ /****************************************
+ * package connector-rules
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping connector-on-equipment-for-holder {
+ leaf connector-in-holder {
+ type string;
+ description
+ "The equipment connector is plugged into the referenced holder connector.";
+ }
+ uses connector;
+ description
+ "A rule class (an abstract specialization of Connector) that represents a connector on an equipment that is intended to mate with a connector in a holder.";
+ }
+
+ /****************************************
+ * package equipment-detail
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package dynamic-details
+ **************************************/
+
+ grouping function-enablers {
+ leaf power-state {
+ type string;
+ description
+ "The state of the power being supplied to the equipment.
+ Note that this attribute summarizes the power state.
+ Full details on the actual power system would be provided from a number of PC instances representing the relevant parts of the Power function (e.g. different voltage supplies).";
+ }
+ description
+ "Represents the dynamic aspects of the properties that relate to the motive force that directly enable functionality to emerge from the equipment.";
+ }
+
+ grouping mechanical-functions {
+ leaf rotation-speed {
+ type string;
+ description
+ "none";
+ }
+ description
+ "Represents the dynamic aspects of the mechanical functions of the equipment.";
+ }
+
+ grouping physical-properties {
+ leaf temperature {
+ type string;
+ description
+ "none";
+ }
+ description
+ "Represents the dynamic aspects of the physical environmental properties of the equipment.";
+ }
+
+ grouping location {
+ leaf equipment-location {
+ type dt-address;
+ description
+ "none";
+ }
+ leaf geographical-location {
+ type dt-address;
+ description
+ "none";
+ }
+ description
+ "Represents where the equipment is.";
+ }
+
+ /****************************************
+ * package invariant-details
+ **************************************/
+
+ grouping equipment-structure {
+ leaf category {
+ type equipment-category;
+ description
+ "This attribute provides the identifier for a category of equipments regarded as having particular shared characteristics.";
+ }
+ description
+ "Represents the form of the equipment.";
+ }
+
+ grouping equipment-instance {
+ leaf manufacture-date {
+ type yang:date-and-time;
+ description
+ "This attribute represents the date on which this instance is manufactured.";
+ }
+ leaf serial-number {
+ type string;
+ description
+ "This attribute represents the serial number of this instance.";
+ }
+ leaf asset-instance-identifier {
+ type string;
+ description
+ "This attribute represents the asset identifier of this instance from the manufacturer's perspective.";
+ }
+ description
+ "Represents the per instance invariant properties of the equipment.";
+ }
+
+ grouping equipment-type {
+ leaf description {
+ type string;
+ description
+ "Text describing the type of Equipment.";
+ }
+ leaf model-identifier {
+ type string;
+ description
+ "This attribute identifies the model of the equipment.";
+ }
+ leaf part-type-identifier {
+ type string;
+ description
+ "This attribute identifies the part type of the equipment.";
+ }
+ leaf type-name {
+ type string;
+ description
+ "This attribute identifies the type of the equipment.";
+ }
+ leaf version {
+ type string;
+ description
+ "This attribute identifies the version of the equipment.";
+ }
+ description
+ "Represents the invariant properties of the equipment that define and characterize the type.";
+ }
+
+ grouping holder-structure {
+ leaf holder-category {
+ type holder-category;
+ description
+ "none";
+ }
+ leaf is-captive {
+ type boolean;
+ description
+ "none";
+ }
+ leaf is-guided {
+ type boolean;
+ description
+ "This attribute indicates whether the holder has guides that constrain the position of the equipment in the holder or not.";
+ }
+ leaf is-quantised-space {
+ type boolean;
+ description
+ "none";
+ }
+ description
+ "Represents the form of the holder.";
+ }
+
+ grouping manufactured-thing {
+ container manufacturer-properties {
+ uses manufacturer-properties;
+ description
+ "none";
+ }
+ container equipment-type {
+ uses equipment-type;
+ description
+ "none";
+ }
+ container equipment-instance {
+ uses equipment-instance;
+ description
+ "none";
+ }
+ container operator-augmented-equipment-type {
+ uses operator-augmented-equipment-type;
+ description
+ "none";
+ }
+ container operator-augmented-equipment-instance {
+ uses operator-augmented-equipment-instance;
+ description
+ "none";
+ }
+ description
+ "Collects all invariant aspects of a manufactured thing.";
+ }
+
+ grouping manufacturer-properties {
+ leaf manufacturer-identifier {
+ type string;
+ description
+ "none";
+ }
+ leaf manufacturer-name {
+ type string;
+ description
+ "none";
+ }
+ description
+ "Represents the properties of the manufacturer.";
+ }
+
+ grouping mechanical-features {
+ description
+ "Represents the invariant characteristics of dynamic mechanical features of a physical thing.";
+ }
+
+ grouping operator-augmented-equipment-type {
+ leaf asset-type-identifier {
+ type string;
+ description
+ "none";
+ }
+ description
+ "Represents the invariant properties of the equipment asset allocated by the operator that define and characterize the type.";
+ }
+
+ grouping physical-characteristics {
+ leaf weight-characeristics {
+ type string;
+ description
+ "none";
+ }
+ leaf fire-characteristics {
+ type string;
+ description
+ "none";
+ }
+ leaf materials {
+ type string;
+ description
+ "none";
+ }
+ description
+ "Represents the invariant physical characteristics (including composition and physical robustness) of the type.";
+ }
+
+ grouping environmental-rating {
+ container thermal-rating {
+ uses thermal-rating;
+ description
+ "This attribute represents the thermal characteristics (preferred maximum/minimum, absolute maximum/minimum etc) that the entity can tolerate.";
+ }
+ container power-rating {
+ uses power-rating;
+ description
+ "This attribute represents the power chracteristics (peak and mean per power source) of the entity.
+ For an Equipment this is the power consumption.
+ For a Holder this is the power that can be conveyed.";
+ }
+ leaf humidity-rating {
+ type string;
+ description
+ "This attribute represents the humidity characteristics (preferred maximum/minimum, absolute maximum/minimum etc.) that the entity can tolerate.";
+ }
+ description
+ "Represents the invariant physical operational boundaries for the equipment/holder type.";
+ }
+
+ grouping position {
+ leaf relative-position {
+ type string;
+ description
+ "none";
+ }
+ description
+ "Represents the invariant relative position of the holder (with respect to some frame of reference in an equipment) or connector on an equipment or pin in a connector.";
+ }
+
+ grouping spatial-properties-of-type {
+ leaf height {
+ type string;
+ description
+ "none";
+ }
+ leaf width {
+ type string;
+ description
+ "none";
+ }
+ leaf length {
+ type string;
+ description
+ "none";
+ }
+ description
+ "Represents the basic invariant spatial properties of a physical thing.";
+ }
+
+ grouping swappability {
+ leaf is-hot-swappable {
+ type boolean;
+ default "true";
+ description
+ "none";
+ }
+ description
+ "Represents the degree of field replacement that is possible for the equipment type.";
+ }
+
+ grouping operator-augmented-equipment-instance {
+ leaf asset-instance-identifier {
+ type string;
+ description
+ "This attribute represents the asset identifier of this instance from the operator's perspective.";
+ }
+ description
+ "Represents the invariant properties of the equipment asset allocated by the operator that define and characterize the type.";
+ }
+
+ /****************************************
+ * package pattern-classes
+ **************************************/
+
+ grouping cable-details {
+ container spatial-properties-of-type {
+ uses spatial-properties-of-type;
+ description
+ "none";
+ }
+ container physical-characteristics {
+ uses physical-characteristics;
+ description
+ "none";
+ }
+ container manufactured-thing {
+ uses manufactured-thing;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping connector-details {
+ container position {
+ uses position;
+ description
+ "none";
+ }
+ container mechanical-features {
+ uses mechanical-features;
+ description
+ "none";
+ }
+ container manufactured-thing {
+ uses manufactured-thing;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping equipment-detail {
+ container location {
+ uses location;
+ description
+ "none";
+ }
+ container structure {
+ uses equipment-structure;
+ description
+ "none";
+ }
+ container swappability {
+ uses swappability;
+ description
+ "none";
+ }
+ container physical-properties {
+ uses physical-properties;
+ description
+ "none";
+ }
+ container function-enablers {
+ uses function-enablers;
+ description
+ "none";
+ }
+ container mechanical-functions {
+ uses mechanical-functions;
+ description
+ "none";
+ }
+ container physical-characteristics {
+ uses physical-characteristics;
+ description
+ "none";
+ }
+ container mechanical-features {
+ uses mechanical-features;
+ description
+ "none";
+ }
+ container spatial-properties-of-type {
+ uses spatial-properties-of-type;
+ description
+ "none";
+ }
+ container environmental-rating {
+ uses environmental-rating;
+ description
+ "none";
+ }
+ container manufactured-thing {
+ uses manufactured-thing;
+ description
+ "none";
+ }
+ uses local-class;
+ description
+ "none";
+ }
+
+ grouping holder-details {
+ container spatial-properties-of-type {
+ uses spatial-properties-of-type;
+ description
+ "none";
+ }
+ container environmental-rating {
+ uses environmental-rating;
+ description
+ "none";
+ }
+ container position {
+ uses position;
+ description
+ "none";
+ }
+ container holder-structure {
+ uses holder-structure;
+ description
+ "none";
+ }
+ uses local-class;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package data-types
+ **************************************/
+
+ grouping thermal-rating {
+ leaf thermal-rating-name {
+ type string;
+ description
+ "Name of the rating property, e.g. Absolute.";
+ }
+ leaf maximum-temperature {
+ type decimal64 {
+ fraction-digits 3;
+ }
+ description
+ "The maximum temperature in Celsius.";
+ }
+ leaf minimum-temperature {
+ type decimal64 {
+ fraction-digits 3;
+ }
+ description
+ "The minimum temperature in Celsius.";
+ }
+ description
+ "A thermal rating value range.";
+ }
+
+ grouping power-rating {
+ leaf power-rating-name {
+ type string;
+ description
+ "Name of the rating property, e.g. Absolute.";
+ }
+ leaf power-rating-value {
+ type string;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * package equipment-pattern-structure
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping connector {
+ leaf connector {
+ type string;
+ description
+ "The Connector that is attached to this Connector so as to join the Equipment/Cable with this Connector to another Equipment/Cable.
+ This may provide physical support and/or allow signal flow.";
+ }
+ leaf orientation {
+ type connector-and-pin-orientation;
+ description
+ "The physical orientation of the connector, such as whether it is a male, or female, or neutral structure.";
+ }
+ leaf pin-layout {
+ type string;
+ description
+ "none";
+ }
+ leaf connector-type {
+ type string;
+ description
+ "The type of the connector.";
+ }
+ leaf role {
+ type string;
+ description
+ "The purpose of the Connector in the physical space and the functional space.";
+ }
+ uses local-class;
+ description
+ "Represents a connector that may be fully exposed (e.g. to plug in a cable or on the end of a cable) or partially exposed (e.g. backplane to plug in another piece of equipment such as a module).
+ A physical port on the Equipment. A place where signals produced by the functionality of the Equipment may be accessed.";
+ }
+
+ grouping equipment {
+ list connector {
+ key "local-id";
+ uses connector;
+ description
+ "A Connector on the Equipment.";
+ }
+ list contained-holder {
+ key "local-id";
+ uses holder;
+ description
+ "References the Holder in an Equipment that is available to take other Equipments.
+ For example:
+ - Slot in a sub-rack
+ - Slot in a Field Replaceable Unit that can take a small form-factor pluggable.";
+ }
+ leaf is-field-replaceable {
+ type boolean;
+ default "true";
+ config false;
+ description
+ "Indicates whether or not the equipment can be removed and replaced 'in the field' (i.e. in a deployment) by normal operations personnel.";
+ }
+ leaf-list function-block {
+ type string;
+ description
+ "none";
+ }
+ list expected-equipment {
+ key "local-id";
+ uses expected-equipment;
+ description
+ "none";
+ }
+ container actual-equipment {
+ uses actual-equipment;
+ description
+ "none";
+ }
+ leaf equipment-functional-boundary {
+ type string;
+ description
+ "none";
+ }
+ uses global-class;
+ description
+ "Represents any relevant physical thing.
+ Can be either field replaceable or not field replaceable.
+ Note: The model is currently constrained to inside plant.";
+ }
+
+ grouping holder {
+ leaf occupying-fru {
+ type leafref {
+ path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+ }
+ description
+ "The FRU that is occupying the holder.
+ A holder may be unoccupied.
+ An FRU may occupy more hat one holder (using or blocking are intentionally not distinguished here).";
+ }
+ leaf holder-location {
+ type dt-address;
+ description
+ "The relative position of the holder in the context of its containing equipment along with the position of that containing Equipment (and further recursion).";
+ }
+ container expected-holder {
+ uses expected-holder;
+ description
+ "none";
+ }
+ container actual-holder {
+ uses actual-holder;
+ description
+ "none";
+ }
+ uses local-class;
+ description
+ "Represents a space in an equipment in which another equipment can be fitted in the field.";
+ }
+
+ /****************************************
+ * package data-types
+ **************************************/
+
+ typedef connector-and-pin-orientation {
+ type identityref {
+ base CONNECTOR_AND_PIN_ORIENTATION;
+ }
+ description
+ "Most connector schemes are asymmetric such that there are two orientations of the connector where a mating is only possible between two connectors of different orientations.
+ A multi-pin connector may have a mix of pin orientations. In this case, it is expected that the dominant orientation of pin is chosen for the connector orientation.";
+ }
+
+ typedef equipment-category {
+ type identityref {
+ base EQUIPMENT_CATEGORY;
+ }
+ description
+ "The form of equipment.";
+ }
+
+ typedef holder-category {
+ type identityref {
+ base HOLDER_CATEGORY;
+ }
+ description
+ "The form of holder.";
+ }
+
+ /****************************************
+ * package expected-and-actual
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping actual-holder {
+ uses holder-details;
+ description
+ "A holder in the ActualEquipment.";
+ }
+
+ grouping expected-holder {
+ uses holder-details;
+ description
+ "A definition of a holder expected in the ActualEquipment (i.e. an ActualHolder) as part of the constraints provided by the ExpectedEquipment.";
+ }
+
+ grouping actual-equipment {
+ uses equipment-detail;
+ description
+ "The equipment that is actually present in the physical network.
+ It will expose all dynamic properties and some critical static properties.";
+ }
+
+ grouping expected-equipment {
+ uses equipment-detail;
+ description
+ "A definition of the restrictions on the equipment that is expected to be present in the physical network at a particular 'place'.
+ The expected equipment will state the type and may constrain any other invariant properties.
+ It may also provide desired ranges for dynamic properties.";
+ }
+
+ /****************************************
+ * package connector-and-pin
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping signal-ref-pt {
+ container logical-termination-point {
+ uses logical-termination-point;
+ description
+ "none";
+ }
+ list elemental-signals {
+ min-elements 1;
+ uses elemental-signals;
+ description
+ "none";
+ }
+ description
+ "A single coherent signal as processed by a single LTP.";
+ }
+
+ grouping signal-ref-pt-group {
+ description
+ "A conceptual access for a group of signals (where that group of signals cannot be separated).
+ A physical indivisible group of signals.";
+ }
+
+ grouping elemental-signals {
+ description
+ "The elemental (sub-atomic) parts of an 'indivisible' signal where processing in the LTP is required to extract the elemental signals.";
+ }
+
+ /****************************************
+ * package general-controller-model
+ **************************************/
+ /****************************************
+ * package associations
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ container control-construct {
+ presence "Enables SDN";
+ uses control-construct;
+ description
+ "none";
+ }
+
+ grouping control-construct {
+ leaf-list top-level-equipment {
+ type leafref {
+ path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+ }
+ description
+ "none";
+ }
+ list equipment {
+ key "uuid";
+ uses equipment;
+ description
+ "none";
+ }
+ list logical-termination-point {
+ key "uuid";
+ uses logical-termination-point;
+ description
+ "none";
+ }
+ list forwarding-domain {
+ key "uuid";
+ uses forwarding-domain;
+ description
+ "none";
+ }
+ container profile-collection {
+ uses profile-collection;
+ description
+ "none";
+ }
+ uses global-class;
+ description
+ "Represents control capability/functionality.
+ ControlConstructs communicate with other ControlConstructs through ControlPorts about things within the related ConstraintDomains.
+ The ControlConstruct applies to all Control/Management cases including:
+ - the controller in the Network/Managed Element e.g. an SNMP agent).
+ - an SDN Controller.
+ - an EMS.
+ - an NMS.
+ This specific model follows a subset of the Component-System Pattern.
+ Root element for controller southbound APIs.";
+ }
+
+ grouping profile-collection {
+ list profile {
+ key "uuid";
+ uses profile;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping profile {
+ leaf profile-name {
+ type profile-name-type;
+ description
+ "none";
+ }
+ uses global-class;
+ description
+ "none";
+ }
+
+ grouping control-port {
+ container logical-termination-point {
+ uses logical-termination-point;
+ description
+ "The LTP through which the control messaging/signaling flows.";
+ }
+ leaf provider-role {
+ type string;
+ description
+ "Properties relevant when the ControlPort is exposing the ControlConstruct as a provider of capability.";
+ }
+ leaf user-role {
+ type string;
+ description
+ "Properties relevant when the ControlPort is exposing the ControlConstruct as a user of capability.";
+ }
+ uses global-class;
+ description
+ "The access to the ControlConstruct following the normal Component-Port pattern (i.e., the functions of a component are accessed via ports).
+ Is assumed to usually be bidirectional.";
+ }
+
+ /****************************************
+ * package interfaces
+ **************************************/
+
+ rpc apply-system-structure-state-defined-by-constraint {
+ description
+ "none";
+ input {
+ leaf input-constraint-structure {
+ type string;
+ description
+ "none";
+ }
+ }
+ output {
+ leaf output-constraint-structure {
+ type string;
+ description
+ "none";
+ }
+ }
+ }
+
+ rpc retrieve-system-structure-defined-by-constraint {
+ description
+ "none";
+ input {
+ leaf input-constraint-structure {
+ type string;
+ description
+ "none";
+ }
+ }
+ output {
+ leaf output-constraint-structure {
+ type string;
+ description
+ "none";
+ }
+ }
+ }
+
+ /****************************************
+ * package core-software-model
+ **************************************/
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package file-system
+ **************************************/
+
+ grouping file {
+ leaf size {
+ type string;
+ description
+ "The size of the File, in bytes.";
+ }
+ leaf last-modify-time {
+ type yang:date-and-time;
+ description
+ "The date time that the File was last modified.";
+ }
+ leaf checksum {
+ type string;
+ description
+ "A checksum that can be used to validate the contents of the File (in case of corruption or malicious changes) using a hashing algorithm like MD5 or SHA1.";
+ }
+ uses file-system-entry;
+ description
+ "A File is a data structure used to store information (user data, commands, software etc.) in a computer system. Note that in this CIM class, we are only storing the metadata associated with the File, not the actual contents of the File.";
+ }
+
+ grouping file-system {
+ list file-system-entry {
+ uses file-system-entry;
+ description
+ "The root FileSystem entries, which can be Files or Directories.";
+ }
+ description
+ "A FileSystem organizes the data on a storage system so that it can be easily created, updated and accessed. It manages the Directories and also the metadata for the Files.";
+ }
+
+ grouping file-system-entry {
+ leaf is-read-only {
+ type boolean;
+ description
+ "If the File contents can be modified or not.";
+ }
+ leaf is-hidden {
+ type boolean;
+ description
+ "If the File is hidden by the FileSystem.";
+ }
+ leaf path-name {
+ type string;
+ description
+ "The full pathname of the entry, back to the root Directory.";
+ }
+ leaf local-name {
+ type string;
+ description
+ "The name of the entry in its Directory.";
+ }
+ leaf create-date {
+ type yang:date-and-time;
+ description
+ "The date that the entry was created.";
+ }
+ description
+ "FileSystemEntry is an abstraction of File and Directory, useful when there is a need to reference both classes. It also allows for an easy representation of a hierarchical filesystem.";
+ }
+
+ grouping symbolic-link {
+ container file-system-entry {
+ uses file-system-entry;
+ description
+ "The FileSystemEntry that this SymbolicLink refers to.";
+ }
+ uses file;
+ description
+ "A SymbolicLink is a File that contains a path reference to a File or a Directory.";
+ }
+
+ grouping directory {
+ list file-system-entry {
+ uses file-system-entry;
+ description
+ "Directory entry, which can be a File or another Directory.";
+ }
+ uses file-system-entry;
+ description
+ "A Directory is a collection of Files and other Directories. Because a Directory can contain other Directories, this allows a hierarchical file system to be represented.";
+ }
+
+ /****************************************
+ * package running-software
+ **************************************/
+
+ grouping installed-software-component {
+ leaf name {
+ type string;
+ description
+ "The name of the installed component as returned by the operating system.";
+ }
+ leaf version {
+ type string;
+ description
+ "The version of the installed component as returned by the operating system.";
+ }
+ leaf serial-number {
+ type string;
+ description
+ "As part of software licensing, a serial number may be available for the installation.";
+ }
+ container installation-file {
+ uses file;
+ description
+ "If available, the File that the installation was from.";
+ }
+// leaf-list child-installed-software-component {
+// type leafref {
+// path "/core-model:installed-software-component/core-model:child-installed-software-component/core-model:serial-number";
+// }
+// description
+// "References to any child installations.";
+// }
+ list installed-file-system-entry {
+ uses file-system-entry;
+ description
+ "References to any Directories or Files created or used by the installation. Note that installations may share files. So installation 1 may create key.dll in a common area, and installation 2 would create this if it wasn’t present. Because it is already present, installation 2 just references the file. Now if installation 1 is uninstalled, key.dll is not removed as there is still a reference to it.";
+ }
+ description
+ "InstalledSoftwareComponent is part of the software inventory. It represents an application or an application suite or an application (feature) option. It is the unit of installation. Note that this is operating system dependent. For example, Microsoft DOS 3.3 didn’t have an installation manager.";
+ }
+
+ grouping running-software-process {
+ leaf process-id {
+ type string;
+ description
+ "The identifier provided by the operating system.";
+ }
+ leaf priority {
+ type string;
+ description
+ "The process priority which is used by a multi-tasking operating system to assign resource allocations for the different running software processes.";
+ }
+ leaf invoking-user {
+ type string;
+ description
+ "The username of the account that invoked the process.";
+ }
+ leaf invoking-command {
+ type string;
+ description
+ "The command string that invoked the process.";
+ }
+ leaf time-invoked {
+ type yang:date-and-time;
+ description
+ "The date time when the process was invoked.";
+ }
+ leaf run-state {
+ type string;
+ description
+ "The current run state. A software process may be actively running or suspended (or some other state supported by the operating system).";
+ }
+ leaf name {
+ type string;
+ description
+ "The name of the process as assigned by the operating system.";
+ }
+ leaf description {
+ type string;
+ description
+ "The description of the process as assigned by the operating system.";
+ }
+ container executable {
+ uses file;
+ description
+ "A reference to the executable file (invoked via the invokingCommand). Note that the invoking command may not list the full file path.";
+ }
+ leaf-list child-software-process {
+ type string;
+ description
+ "References to a software process’s subprocesses and threads.";
+ }
+ list open-file {
+ uses file;
+ description
+ "References to any files opened and/or locked by the running process.";
+ }
+ description
+ "This is the unit of software execution. It could be a running application or a thread (the smallest level of software execution).";
+ }
+
+ grouping running-operating-system {
+ list running-software-process {
+ uses running-software-process;
+ description
+ "The software processes running under this operating system.";
+ }
+ list running-container-engine {
+ uses running-container-engine;
+ description
+ "The running container engines supported by the running operating system.";
+ }
+ leaf-list running-host-os-vmm {
+ type string;
+ description
+ "The host OS VMMs running under this operating system.";
+ }
+ uses running-software-process;
+ description
+ "An operating system is a running software process that enables software applications to utilize the computer’s hardware.";
+ }
+
+ grouping running-software-application {
+ uses running-software-process;
+ description
+ "This covers generic software processes that don’t have a special subclass (operating system, virtual machine and container special cases have their own specific subclasses).";
+ }
+
+ /****************************************
+ * package software-container
+ **************************************/
+
+ grouping running-container {
+ leaf container-boundary {
+ type string;
+ description
+ "The constraints defining the boundary of the Container.";
+ }
+ uses running-software-process;
+ description
+ "A container that has been activated by its container engine and hence can provide and consume resources.";
+ }
+
+ grouping running-container-engine {
+ list running-container {
+ uses running-container;
+ description
+ "The containers running in this container engine.";
+ }
+ uses running-software-process;
+ description
+ "A software process that abstracts running applications from the operating system. It provides some level of isolation, but not as much as a hypervisor.";
+ }
+
+ /****************************************
+ * package associations
+ **************************************/
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ethernet-container-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ethernet-container-2-0.yang
new file mode 100644
index 000000000..1f163f533
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ethernet-container-2-0.yang
@@ -0,0 +1,1955 @@
+module ethernet-container-2-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:ethernet-container-2-0";
+ prefix ethernet-container;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: Thorsten.Heinze@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific amendment to the LayerProtocol class of the ONF Core IM for a transport resource for Ethernet.
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-21 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany
+ Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-11-23 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany
+ Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-06-14 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany
+ Please view https://github.com/openBackhaul/ethernetContainer/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/ethernetContainer/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'ethernet-container:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER')";
+ uses ethernet-container-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "none";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to problemKindSeverity";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised.";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping ethernet-container-lp-spec {
+ container ethernet-container-pac {
+ uses ethernet-container-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping ethernet-container-pac {
+ container ethernet-container-capability {
+ config false;
+ uses ethernet-container-capability;
+ description
+ "none";
+ }
+ container ethernet-container-configuration {
+ uses ethernet-container-configuration;
+ description
+ "none";
+ }
+ container ethernet-container-status {
+ config false;
+ uses ethernet-container-status;
+ description
+ "none";
+ }
+ container ethernet-container-current-problems {
+ config false;
+ uses ethernet-container-current-problems;
+ description
+ "none";
+ }
+ container ethernet-container-current-performance {
+ config false;
+ uses ethernet-container-current-performance;
+ description
+ "none";
+ }
+ container ethernet-container-historical-performances {
+ config false;
+ uses ethernet-container-historical-performances;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping ethernet-container-capability {
+ list available-queue-list {
+ key "queue-name";
+ config false;
+ min-elements 1;
+ max-elements 8;
+ uses available-queue-type;
+ description
+ "List of queues, which are available at the physical interface.";
+ }
+ leaf explicit-congestion-notification-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Explicit Congestion Notification is available at this queue.";
+ }
+ leaf ingress-policing-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = This interface supports policing.";
+ }
+ leaf egress-shaping-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = This interface supports shaping.";
+ }
+ leaf information-rate-min {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Minimum configurable throuput in kbit/s.";
+ }
+ leaf information-rate-max {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Maximum configurable throuput in kbit/s.";
+ }
+ leaf burst-size-min {
+ type int16;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Minimum configurable value for the number of kBytes, which could be sent in a single burst.";
+ }
+ leaf burst-size-max {
+ type int16;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Maximum configurable value for the number of kBytes, which could be sent in a single burst.";
+ }
+ leaf bundling-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute has to be set on 'true', if the device allows combining resources from several air interfaces for transporting this Ethernet container.";
+ }
+ leaf bundling-group-size-max {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "802.3 according to 30.11.1.1.6 aLocalPAFCapacity and ITU-T Rec. G.998.3 Appendix II aGroupCapacity. No Mbit/s value, but number of Ethernet Segments that can be aggregated for transporting this Ethernet Container. Reasonable values are between1 and 32.";
+ }
+ leaf support-of-management-frames-without-preamble-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "802.3. 1 = Management frames with suppressed preamble are also accepted.";
+ }
+ list supported-header-compression-kind-list {
+ key "header-compression-name";
+ config false;
+ min-elements 1;
+ uses header-compression-kind;
+ description
+ "Lists the kinds of header compression, which are supported by the device.";
+ }
+ leaf fec-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "802.3 according to 30.5.1.1.15 aFECAbility, 45.2.1.92.1 BASE-R FEC ability and 45.2.3.37 10GBASE-PR and 10/1GBASE-PRX FEC ability register and ITU-T Rec. G.998.3 Appendix II aFECSupported. 1 = Indicates that an optional Forward Error Correction (FEC) is supported.";
+ }
+ leaf fec-word-size-max {
+ type int16;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECWordSize. Indicates maximum supported Forward Error Correction (FEC) code word size in Bytes. Expected values between 20 and 255.";
+ }
+ leaf-list supported-fec-redundancy-size-list {
+ type fec-redundancy-size-type;
+ config false;
+ min-elements 1;
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECRedundancySize. Indicates maximum supported Forward Error Correction (FEC) redundancy word size.";
+ }
+ leaf-list supported-fec-interleaver-kind-list {
+ type fec-interleaver-kind-type;
+ config false;
+ min-elements 1;
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECInterleaverType. Supported kinds of Forward Error Correction (FEC) interleaver";
+ }
+ leaf-list supported-fec-interleaver-depth-list {
+ type fec-interleaver-depth-type;
+ config false;
+ min-elements 1;
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth. Indicates the supported depths of the Forward Error Correction (FEC) interleaver.";
+ }
+ leaf encryption-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Shall be marked 'true', if Ethernet payload encryption is available.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 3;
+ description
+ "List of supported kinds of looping back.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "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').";
+ }
+ leaf statistics-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Continuous statistics counters are available.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description
+ "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Collection and aggregation of performance values is available.";
+ }
+ description
+ "none";
+ }
+
+ grouping ethernet-container-configuration {
+ leaf interface-name {
+ type string;
+ default "Interface name not yet defined.";
+ description
+ "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf interface-is-on {
+ type boolean;
+ default "false";
+ description
+ "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).";
+ }
+ list queue-behavior-list {
+ key "queue-name";
+ min-elements 1;
+ max-elements 8;
+ uses queue-behavior-type;
+ description
+ "Defines scheduling and dropping behavior of all queues.";
+ }
+ leaf explicit-congestion-notification-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Explicit Congestion Notification is activitated at this queue.";
+ }
+ leaf ingress-policing-profile {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ description
+ "Reference to the policing profile, which is active on this interface. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_POLICING_PROFILE'.";
+ }
+ leaf egress-shaping-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Shaping on the egress is activated.";
+ }
+ leaf maximum-information-rate {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ description
+ "Only relevant if (egressShapingIsAvail==1): Limits the throughput on the egress.";
+ }
+ leaf maximum-burst-size {
+ type int16;
+ units "kByte";
+ default "-1";
+ description
+ "Only relevant if (egressShapingIsAvail==1): Limits the number of kBytes, which are sent in a single burst.";
+ }
+ leaf bundling-is-on {
+ type boolean;
+ default "false";
+ description
+ "802.3 according to 30.11.1.1.5 aPAFAdminState and 45.2.3.26.3 PAF enable. 1 = Algorithm for bundling Ethernet segments is activated (, even if only a single Structure would be associated).";
+ }
+ leaf header-compression-kind {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/ethernet-container:ethernet-container-pac/ethernet-container:ethernet-container-capability/ethernet-container:supported-header-compression-kind-list/ethernet-container:header-compression-name";
+ require-instance false;
+ }
+ must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/ethernet-container:ethernet-container-pac/ethernet-container:ethernet-container-capability/ethernet-container:supported-header-compression-kind-list[header-compression-name=current()])';
+ description
+ "Defines the kind of header compression to be used.";
+ }
+ leaf fec-is-on {
+ type boolean;
+ default "false";
+ description
+ "802.3 according to 30.5.1.1.16 aFECmode, 45.2.1.93.1 FEC enable and 45.2.3.38.2 10 Gb/s FEC Enable and ITU-T Rec. G.998.3 Appendix II aFECAdminState. Only relevant if (fecIsAvail==1). 1 = Activation of the Forward Error Correction (FEC).";
+ }
+ leaf fec-word-size {
+ type int16;
+ units "Byte";
+ default "-1";
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECWordSize. Only relevant if (fecIsSupported==1). Defining the Forward Error Correction (FEC) code word size in Bytes. Expected values between 20 and 255.";
+ }
+ leaf fec-redundancy-size {
+ type fec-redundancy-size-type;
+ default "FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED";
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECRedundancySize. Only relevant if (fecIsSupported==1). Defining the Forward Error Correction (FEC) redundancy word size.";
+ }
+ leaf fec-interleaver-kind {
+ type fec-interleaver-kind-type;
+ default "FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECInterleaverType. Only relevant if (fecIsSupported==1). Defining the kind of Forward Error Correction (FEC) interleaver.";
+ }
+ leaf fec-interleaver-depth {
+ type fec-interleaver-depth-type;
+ default "FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED";
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth. Only relevant if (fecIsSupported==1). Defining the depth of Forward Error Correction (FEC) interleaver.";
+ }
+ leaf encryption-is-on {
+ type boolean;
+ default "false";
+ description
+ "Activates encryption of the Ethernet payload.";
+ }
+ leaf cryptographic-key {
+ type string;
+ default "Cryptographic key not yet defined.";
+ description
+ "Key for transforming plaintext into cipher text data.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ description
+ "Maintenance Feature. Configuration of a loop back of TDM time slots on this interface.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+ }
+ leaf statistics-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (statisticsIsAvail==1). 1 = Continuous statistics counters are switched on.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ min-elements 2;
+ uses problem-kind-severity-type;
+ description
+ "Severity of the problem to be configured.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (performanceMonitoringIsAvail==1). 1 = Collection and aggregation of performance values is switched on.";
+ }
+ description
+ "Serving Structures are identified by LogicalTerminationPoint::_serverLtpRefList. If (bundlingIsAvail==1), multiplicity might be *. If (bundlingIsAvail==0), multiplicity must be 0..1. It is assumed that there is just one Ethernet segment per Structure.";
+ }
+
+ grouping ethernet-container-status {
+ leaf interface-status {
+ type interface-status-type;
+ default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the interface.";
+ }
+ leaf bundling-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "802.3 and ITU-T Rec. G.998.3 Appendix II aGroupStatus. 1 = Algorithm for bundling Ethernet segments is operative (, even if only a single Structure would be associated).";
+ }
+ leaf remote-site-is-faulty {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "802.3. 1 = remote fault condition detected.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "The currently active (not just configured) type of loop back.";
+ }
+ leaf statistics-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Statistics are currently counted";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Performance values are currently collected and aggregated.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the statistic values were read/retrieved.";
+ }
+ leaf last-10-sec-data-input-rate {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Data receive rate over the last 10 second interval in kbit/s.";
+ }
+ leaf last-10-sec-data-output-rate {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Data transmit rate over the last 10 second interval in kbit/s.";
+ }
+ leaf total-bytes-input {
+ type uint64;
+ units "Byte";
+ default "0";
+ config false;
+ description
+ "Received data volume in Byte.";
+ }
+ leaf total-bytes-output {
+ type uint64;
+ units "Byte";
+ default "0";
+ config false;
+ description
+ "Sent data volume in Byte.";
+ }
+ leaf forwarded-bytes-input {
+ type uint64;
+ units "Byte";
+ default "0";
+ config false;
+ description
+ "Number of received Bytes, for which the device was not their final destination and for which the device attempted to find a route to forward them to that final destination.";
+ }
+ leaf forwarded-bytes-output {
+ type uint64;
+ units "Byte";
+ default "0";
+ config false;
+ description
+ "Number of Bytes, for which the device was not their final destination and for which it was successful in finding a path to their final destination.";
+ }
+ description
+ "none";
+ }
+
+ grouping ethernet-container-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses container-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ grouping ethernet-container-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "Aggregated performance information of the Ethernet container at a particular moment.";
+ }
+
+ grouping ethernet-container-historical-performances {
+ list historical-performance-data-list {
+ key "granularity-period period-end-time";
+ config false;
+ uses container-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "Aggregated performance information of the Ethernet container for a pre-defined measurement interval.";
+ }
+
+ grouping header-compression-kind {
+ leaf header-compression-name {
+ type string;
+ config false;
+ description
+ "none";
+ }
+ leaf header-compression-mode {
+ type header-compression-mode-type;
+ default "HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Defines the way of configuring the header compression.";
+ }
+ leaf-list compressed-protocol-layer-list {
+ type protocol-layer-type;
+ config false;
+ min-elements 1;
+ description
+ "Only relevant if (headerCompressionMode==PROTOCOL_BASED). List of protocol layers that get compressed with this kind of header compression.";
+ }
+ leaf-list mpls-payload-kind-list {
+ type mpls-payload-kind-type;
+ config false;
+ min-elements 1;
+ description
+ "Defines how the header bytes inside the MPLS header has to be interpreted.";
+ }
+ leaf compressed-header-length {
+ type int16;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (headerCompressionMode==LENGTH_BASED). Number of Bytes of header information that get compressed.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef loop-back-type {
+ type identityref {
+ base LOOP_BACK_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef header-compression-mode-type {
+ type identityref {
+ base HEADER_COMPRESSION_MODE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef protocol-layer-type {
+ type identityref {
+ base PROTOCOL_LAYER_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef mpls-payload-kind-type {
+ type identityref {
+ base MPLS_PAYLOAD_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef queue-name-type {
+ type identityref {
+ base QUEUE_NAME_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef drop-precedence-type {
+ type identityref {
+ base DROP_PRECEDENCE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef dropping-behavior-kind-type {
+ type identityref {
+ base DROPPING_BEHAVIOR_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef scheduler-kind-type {
+ type identityref {
+ base SCHEDULER_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef fec-redundancy-size-type {
+ type identityref {
+ base FEC_REDUNDANCY_SIZE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef fec-interleaver-kind-type {
+ type identityref {
+ base FEC_INTERLEAVER_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef fec-interleaver-depth-type {
+ type identityref {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ }
+ description
+ "ITU-T Rec. G.998.3 Appendix II aFECInterleaverDepth";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity LOOP_BACK_TYPE {
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_NONE {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the Ethernet frames of the local site on the outgoing interface back to the local site.";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the incoming Ethernet frames back to the remote site.";
+ }
+
+ identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity HEADER_COMPRESSION_MODE_TYPE {
+ description
+ "none";
+ }
+
+ identity HEADER_COMPRESSION_MODE_TYPE_AUTO {
+ base HEADER_COMPRESSION_MODE_TYPE;
+ description
+ "The header compression algorithm determines the optimum compression.";
+ }
+
+ identity HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED {
+ base HEADER_COMPRESSION_MODE_TYPE;
+ description
+ "Predefined protocol layers are to be compressed.";
+ }
+
+ identity HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED {
+ base HEADER_COMPRESSION_MODE_TYPE;
+ description
+ "Predefined amount of header bytes are to be compressed.";
+ }
+
+ identity HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED {
+ base HEADER_COMPRESSION_MODE_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE {
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_NONE {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_ETHERNET_MAC {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_VLAN {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_Q_IN_Q {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_MPLS {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_IPV4 {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_IPV6 {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_TCP {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_UDP {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_RTP {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_GTP_U {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_OTHERS {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_LAYER_TYPE_NOT_YET_DEFINED {
+ base PROTOCOL_LAYER_TYPE;
+ description
+ "none";
+ }
+
+ identity MPLS_PAYLOAD_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity MPLS_PAYLOAD_KIND_TYPE_NONE {
+ base MPLS_PAYLOAD_KIND_TYPE;
+ description
+ "Parameter not required.";
+ }
+
+ identity MPLS_PAYLOAD_KIND_TYPE_AUTO {
+ base MPLS_PAYLOAD_KIND_TYPE;
+ description
+ "If the Control Word (CW) will be present, it would be Ethernet Over MPLS. OtherwiseI, it would be Pv4/IPv6.";
+ }
+
+ identity MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS {
+ base MPLS_PAYLOAD_KIND_TYPE;
+ description
+ "Always Ethernet over MPLS ";
+ }
+
+ identity MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS {
+ base MPLS_PAYLOAD_KIND_TYPE;
+ description
+ "Always IPv4/IPv6 over MPLS";
+ }
+
+ identity MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED {
+ base MPLS_PAYLOAD_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity QUEUE_NAME_TYPE {
+ description
+ "none";
+ }
+
+ identity QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=0;";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1 {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=1;";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2 {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=2;";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3 {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=3;";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4 {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=4;";
+ }
+
+ identity QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=5;";
+ }
+
+ identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6 {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=6;";
+ }
+
+ identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7 {
+ base QUEUE_NAME_TYPE;
+ description
+ "QueueNumber=7;";
+ }
+
+ identity QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED {
+ base QUEUE_NAME_TYPE;
+ description
+ "none";
+ }
+
+ identity DROP_PRECEDENCE_TYPE {
+ description
+ "none";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_ALL {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "If all drop precedence are affected. This includes the case of drop precedences are not implemented.";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_LOW {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "Would be equal to GREEN.";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_MEDIUM {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "Would be equal to YELLOW.";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_HIGH {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "Would be equal to RED.";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "none";
+ }
+
+ identity DROPPING_BEHAVIOR_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL {
+ base DROPPING_BEHAVIOR_KIND_TYPE;
+ description
+ "When the queue is filled to capacity, newly arriving packets are discarded until there is room in the queue to accept new traffic. Packets are not differentiated, i.e., all packets are treated identically.";
+ }
+
+ identity DROPPING_BEHAVIOR_KIND_TYPE_RED {
+ base DROPPING_BEHAVIOR_KIND_TYPE;
+ description
+ "Queue management based on Random Early Detection (RED). RED drops packets based on a drop probability that is based on the average queue length, and settings of mininum and maximum queue thresholds. On ECN-capable devices, packets may be marked instead of dropped to signal congestion to the sender.";
+ }
+
+ identity DROPPING_BEHAVIOR_KIND_TYPE_WRED {
+ base DROPPING_BEHAVIOR_KIND_TYPE;
+ description
+ "Queue management based on a variant of RED in which the packet drop probability is based on its traffic class.";
+ }
+
+ identity DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED {
+ base DROPPING_BEHAVIOR_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity SCHEDULER_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity SCHEDULER_KIND_TYPE_STRICT {
+ base SCHEDULER_KIND_TYPE;
+ description
+ "Strict Priority";
+ }
+
+ identity SCHEDULER_KIND_TYPE_WFQ {
+ base SCHEDULER_KIND_TYPE;
+ description
+ "Weighted-Fair-Queuing";
+ }
+
+ identity SCHEDULER_KIND_TYPE_WRR {
+ base SCHEDULER_KIND_TYPE;
+ description
+ "Weighted Round Robin";
+ }
+
+ identity SCHEDULER_KIND_TYPE_DWRR {
+ base SCHEDULER_KIND_TYPE;
+ description
+ "Deficit Weighted Round Robin";
+ }
+
+ identity SCHEDULER_KIND_TYPE_NOT_YET_DEFINED {
+ base SCHEDULER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_REDUNDANCY_SIZE_TYPE {
+ description
+ "none";
+ }
+
+ identity FEC_REDUNDANCY_SIZE_TYPE_2 {
+ base FEC_REDUNDANCY_SIZE_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_REDUNDANCY_SIZE_TYPE_4 {
+ base FEC_REDUNDANCY_SIZE_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_REDUNDANCY_SIZE_TYPE_8 {
+ base FEC_REDUNDANCY_SIZE_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_REDUNDANCY_SIZE_TYPE_16 {
+ base FEC_REDUNDANCY_SIZE_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_REDUNDANCY_SIZE_TYPE_20 {
+ base FEC_REDUNDANCY_SIZE_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED {
+ base FEC_REDUNDANCY_SIZE_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_KIND_TYPE_NONE {
+ base FEC_INTERLEAVER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_KIND_TYPE_BLOCK {
+ base FEC_INTERLEAVER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION {
+ base FEC_INTERLEAVER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED {
+ base FEC_INTERLEAVER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE {
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_1 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_2 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_3 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_4 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_6 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_8 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_12 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_16 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_24 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_32 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_48 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_96 {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED {
+ base FEC_INTERLEAVER_DEPTH_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_TESTING {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UNKNOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DORMANT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ typedef interface-status-type {
+ type identityref {
+ base INTERFACE_STATUS_TYPE;
+ }
+ description
+ "Current Interface Status";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping available-queue-type {
+ leaf queue-name {
+ type queue-name-type;
+ config false;
+ description
+ "Name of the queue.";
+ }
+ leaf max-queue-depth {
+ type int32;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "Maximum configurable depth of the queue in Byte. openconfig-qos-interfaces.yang";
+ }
+ leaf queue-depth-configuration-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Size of the individual queue is configurable (setting thresholdHigh of a WRED profile might be an alternative way of configuring the effective queue depth).";
+ }
+ leaf-list available-dropping-behavior-kind-list {
+ type dropping-behavior-kind-type;
+ config false;
+ min-elements 1;
+ max-elements 4;
+ description
+ "Lists the available types of behavior in case of congestions.";
+ }
+ leaf-list available-drop-precedence-kind-list {
+ type drop-precedence-type;
+ config false;
+ min-elements 1;
+ max-elements 3;
+ description
+ "Explicit list (ALL not to be used here) of drop precedences, which are available for this queue.";
+ }
+ leaf wred-profile-per-drop-precedence-is-available {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Separate WRED profiles can be defined for every drop precedence.";
+ }
+ leaf-list available-scheduling-kind-list {
+ type scheduler-kind-type;
+ config false;
+ min-elements 1;
+ max-elements 4;
+ description
+ "Lists the available types of scheduling.";
+ }
+ description
+ "none";
+ }
+
+ grouping wred-behavior-type {
+ leaf affected-drop-precedence {
+ type drop-precedence-type;
+ description
+ "Definition of the drop precedence, for which the WRED profile shall apply on.";
+ }
+ leaf affected-protocol {
+ type protocol-layer-type;
+ description
+ "Definition of the kind of protocol, for which the WRED profile shall apply on.";
+ }
+ leaf wred-profile {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ description
+ "Associates a WRED profile to the queue, respectively drop precedence. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_WRED_PROFILE'.";
+ }
+ description
+ "none";
+ }
+
+ grouping queue-behavior-type {
+ leaf queue-name {
+ type queue-name-type;
+ description
+ "Name of the queue.";
+ }
+ leaf queue-depth {
+ type int32;
+ units "Byte";
+ default "-1";
+ description
+ "Only relevant if (queueDepthConfigurationIsAvail==1). Size of the queue in Byte.";
+ }
+ leaf dropping-behavior-kind {
+ type dropping-behavior-kind-type;
+ default "DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "Defines the behavior in case of congestions.";
+ }
+ list wred-behavior-list {
+ key "affected-drop-precedence affected-protocol";
+ uses wred-behavior-type;
+ description
+ "Only relevant if (droppingBehaviorKind==WRED).";
+ }
+ leaf scheduler-kind {
+ type scheduler-kind-type;
+ default "SCHEDULER_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "Type of scheduler to be used for this queue.";
+ }
+ leaf weighting {
+ type int8;
+ units "%";
+ default "-1";
+ description
+ "Only relevant if (schedulerKind==WFQ) OR (schedulerKind==DWRR) OR (schedulerKind==WRR). Serving rate for this weighted fair queueing queue as a percentage value.";
+ }
+ description
+ "none";
+ }
+
+ grouping container-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+
+ grouping queue-utilization-type {
+ leaf queue-name {
+ type queue-name-type;
+ config false;
+ description
+ "Name of the queue.";
+ }
+ leaf max-queue-length {
+ type int32;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "Maximum observed queue length. openconfig-qos-interfaces.yang";
+ }
+ leaf avg-queue-length {
+ type int32;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "Average observed queue length. openconfig-qos-interfaces.yang";
+ }
+ description
+ "none";
+ }
+
+ grouping container-performance-type {
+ leaf tx-ethernet-bytes-max-s {
+ type int32;
+ units "Bytes/s";
+ default "-1";
+ config false;
+ description
+ "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a second and keeps the highest value within the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-max-m {
+ type int64;
+ units "Bytes/min";
+ default "-1";
+ config false;
+ description
+ "Counts the number of Bytes of Ethernet traffic (before header compression) transmitted within a minute and keeps the highest value with in the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ leaf tx-ethernet-bytes-sum {
+ type int64;
+ units "Bytes";
+ default "-1";
+ config false;
+ description
+ "Total number of Bytes of Ethernet traffic (before header compression) transmitted (in direction out of the device) during the measurement period. Field to be left blank for all types of TDM containers.";
+ }
+ list queue-utilization-list {
+ key "queue-name";
+ config false;
+ max-elements 8;
+ uses queue-utilization-type;
+ description
+ "Utilization of the respective queue. openconfig-qos-interfaces.yang";
+ }
+ leaf fec-corrected-blocks {
+ type int32;
+ units "Blocks";
+ default "-1";
+ config false;
+ description
+ "802.3 according to 30.5.1.1.17 aFECCorrectedBlocks and 30.11.2.1.8 aPMEFECCorrectedBlocks and 45.2.1.94 10GBASE-R FEC corrected blocks counter. Counts received blocks that have been corrected by the Forward Error Correction (FEC) function.";
+ }
+ leaf fec-uncorrectable-blocks {
+ type int32;
+ units "Blocks";
+ default "-1";
+ config false;
+ description
+ "802.3 according to 30.5.1.1.18 aFECUncorrectableBlocks and 30.11.2.1.9 aPMEFECUncorrectableBlocks and 45.2.1.95 10GBASE-R FEC uncorrected blocks counter. Counts received blocks that could not been corrected by the Forward Error Correction (FEC) function.";
+ }
+ leaf time-period {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Total length of the measurement period in seconds.";
+ }
+ description
+ "Consolidated performance information of the Container.";
+ }
+
+ grouping container-current-performance-type {
+ container performance-data {
+ config false;
+ uses container-performance-type;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+
+ grouping container-historical-performance-type {
+ container performance-data {
+ config false;
+ uses container-performance-type;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/hybrid-mw-structure-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/hybrid-mw-structure-2-0.yang
new file mode 100644
index 000000000..73d84d52c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/hybrid-mw-structure-2-0.yang
@@ -0,0 +1,945 @@
+module hybrid-mw-structure-2-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:hybrid-mw-structure-2-0";
+ prefix hybrid-mw-structure;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: HybridMwStructure@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific interface definition for a hybrid microwave structure on a physical media
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-22 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/hybridMwStructure/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/hybridMwStructure/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-11-23 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/hybridMwStructure/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/hybridMwStructure/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-08 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/hybridMwStructure/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/hybridMwStructure/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'hybrid-mw-structure:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER')";
+ uses hybrid-mw-structure-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "none";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to problemKindSeverity";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised.";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping hybrid-mw-structure-lp-spec {
+ container hybrid-mw-structure-pac {
+ uses hybrid-mw-structure-pac;
+ description
+ "none";
+ }
+ description
+ "The HybridMwStructureLpSpec and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM and Ethernet traffic.";
+ }
+
+ grouping hybrid-mw-structure-pac {
+ container hybrid-mw-structure-capability {
+ config false;
+ uses hybrid-mw-structure-capability;
+ description
+ "none";
+ }
+ container hybrid-mw-structure-configuration {
+ uses hybrid-mw-structure-configuration;
+ description
+ "none";
+ }
+ container hybrid-mw-structure-status {
+ config false;
+ uses hybrid-mw-structure-status;
+ description
+ "none";
+ }
+ container hybrid-mw-structure-current-problems {
+ config false;
+ uses hybrid-mw-structure-current-problems;
+ description
+ "none";
+ }
+ container hybrid-mw-structure-current-performance {
+ config false;
+ uses hybrid-mw-structure-current-performance;
+ description
+ "none";
+ }
+ container hybrid-mw-structure-historical-performances {
+ config false;
+ uses hybrid-mw-structure-historical-performances;
+ description
+ "none";
+ }
+ description
+ "The HybridMwStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM and Ethernet traffic.";
+ }
+
+ grouping hybrid-mw-structure-capability {
+ list supported-tdm-structure-kind-list {
+ key "tdm-structure-name";
+ config false;
+ min-elements 1;
+ uses tdm-structure-kind;
+ description
+ "Lists the TDM frame types that are supported.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description
+ "Available alarms to be listed. Mandatory:none. Names are to be separated by commas. Further alarms might be added by the vendor.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Collection and aggregation of performance values is available.";
+ }
+ description
+ "Describes the logical structuring of the physical capacity provided by a hybrid microwave device (TDM + Ethernet). Segmentation is available. TDM transport is available.";
+ }
+
+ grouping hybrid-mw-structure-configuration {
+ leaf tdm-structure-kind {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/hybrid-mw-structure:hybrid-mw-structure-pac/hybrid-mw-structure:hybrid-mw-structure-capability/hybrid-mw-structure:supported-tdm-structure-kind-list/hybrid-mw-structure:tdm-structure-name";
+ require-instance false;
+ }
+ must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/hybrid-mw-structure:hybrid-mw-structure-pac/hybrid-mw-structure:hybrid-mw-structure-capability/hybrid-mw-structure:supported-tdm-structure-kind-list[tdm-structure-name=current()])';
+ description
+ "TDM frame to be applied.";
+ }
+ leaf number-of-tdm-segments-to-be-reserved {
+ type int8;
+ default "-1";
+ description
+ "Allows to configure the number of segments reserved for TDM frames of the type specified in HybridMwStructure::HybridMwStructureConfiguration::structureType";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of the type of problem to be configured.";
+ }
+ list g-826-threshold-cross-alarm-list {
+ key "g-826-value-kind granularity-period";
+ uses g-826-threshold-cross-alarm-type;
+ description
+ "List of G826 related threshold cross alarms to be configured.";
+ }
+ leaf clearing-threshold-cross-alarms-is-on {
+ type boolean;
+ default "false";
+ description
+ "Setting this bit is clearing all the currently active threshold cross alarms.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Enables measurement, collection, storage and access to performance data.";
+ }
+ description
+ "none";
+ }
+
+ grouping hybrid-mw-structure-status {
+ list segment-status-list {
+ key "segment-status-type-id";
+ config false;
+ min-elements 1;
+ uses segment-status-type;
+ description
+ "Status of each segment (all TDM and one Ethernet). Multiplicity = HybridMwStructure::StructureConfiguration::tdmReservedNumberOfSegments + 1";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Performance values are currently collected and aggregated.";
+ }
+ description
+ "none";
+ }
+
+ grouping hybrid-mw-structure-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses structure-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ grouping hybrid-mw-structure-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type;
+ description
+ "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.";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "Aggregated performance information of the structure of a hybrid microwave at a particular moment.";
+ }
+
+ grouping hybrid-mw-structure-historical-performances {
+ list historical-performance-data-list {
+ key "granularity-period period-end-time";
+ config false;
+ uses structure-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "Aggregated performance information of the structure of a hybrid microwave for a pre-defined measurement interval.";
+ }
+
+ grouping tdm-structure-kind {
+ leaf tdm-structure-name {
+ type string;
+ config false;
+ description
+ "Names to be chosen from the following list: 'e1','t1','j1','e3','ds3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-segment-size {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Size of the TDM segment in kbit/s. Values to be chosen from the following list: '2048','1544','34000','44736 ','155520','614400','1228800','2457600','3072000','4915200','6144000' or '9830400;";
+ }
+ leaf max-number-of-segments-reservable {
+ type int8;
+ units "segments";
+ default "-1";
+ config false;
+ description
+ "Device specific maximum number of segments (not depending on current air interface configuration) that can be reserved for this type of segment on a single air interface.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef g-826-type {
+ type identityref {
+ base G_826_TYPE;
+ }
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity G_826_TYPE {
+ description
+ "none";
+ }
+
+ identity G_826_TYPE_ES {
+ base G_826_TYPE;
+ description
+ "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+ }
+
+ identity G_826_TYPE_SES {
+ base G_826_TYPE;
+ description
+ "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+ }
+
+ identity G_826_TYPE_CSES {
+ base G_826_TYPE;
+ description
+ "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+ }
+
+ identity G_826_TYPE_UAS {
+ base G_826_TYPE;
+ description
+ "Unavailable Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::unavailability.";
+ }
+
+ identity G_826_TYPE_NOT_SPECIFIED {
+ base G_826_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE {
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE_ENABLED {
+ base OPERATIONAL_STATE_TYPE;
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE_DISABLED {
+ base OPERATIONAL_STATE_TYPE;
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED {
+ base OPERATIONAL_STATE_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ typedef operational-state-type {
+ type identityref {
+ base OPERATIONAL_STATE_TYPE;
+ }
+ description
+ "The list of valid operational states for the connection.";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping g-826-threshold-cross-alarm-type {
+ leaf g-826-value-kind {
+ type g-826-type;
+ description
+ "Kind of performance value that shall be equipped with a threshold alarm.";
+ }
+ leaf alarm-raising-threshold {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Number of events required for raising the threshold cross alarm.";
+ }
+ leaf alarm-clearing-threshold {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Number of events required for clearing the threshold cross alarm.";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ description
+ "Period of the performance data collection.";
+ }
+ description
+ "Allows defining a threshold cross alarm.\n";
+ }
+
+ grouping segment-status-type {
+ leaf segment-status-type-id {
+ type int16;
+ config false;
+ description
+ "none";
+ }
+ leaf segment-is-reserved-for-tdm {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "The number of segments, which is configured by Structure::StructureConfiguration::tdmReservedNumberOfSegements, has to be reserved for TDM. Starting from the lowest index value, these segments have to be marked with a 'true' in segmentIsReservedForTdm.\n";
+ }
+ leaf operational-status {
+ type operational-state-type;
+ default "OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Current operational status of each segment.";
+ }
+ description
+ "none";
+ }
+
+ grouping structure-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+
+ grouping structure-performance-type {
+ leaf time-period {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Total length of the measurement period in seconds.";
+ }
+ leaf es {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of consecutive severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Total time of unavailability in seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Minimum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Maximum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Averaged receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ description
+ "Consolidated performance information of the Structure.";
+ }
+
+ grouping structure-current-performance-type {
+ container performance-data {
+ config false;
+ uses structure-performance-type;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+
+ grouping structure-historical-performance-type {
+ container performance-data {
+ config false;
+ uses structure-performance-type;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ip-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ip-interface-1-0.yang
new file mode 100644
index 000000000..b3b86e24a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ip-interface-1-0.yang
@@ -0,0 +1,1198 @@
+module ip-interface-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:ip-interface-1-0";
+ prefix ip-interface;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: Thorsten.Heinze@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific amendment to the LayerProtocol class for an IPv4 interface according to IETF RFC 791.
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-24 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany
+ Please view https://github.com/openBackhaul/ipInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/ipInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-09 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany
+ Please view https://github.com/openBackhaul/ipInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/ipInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_IP_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'ip-interface:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER')";
+ uses ip-interface-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "Type of created object not specified.";
+ }
+ description
+ "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac has to be instancieted in the controller.";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac instance has to be deleted in the controller.";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to problemKindSeverity";
+ }
+ description
+ "To be sent when a problem occurs at a MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac.";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised.";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping ip-interface-lp-spec {
+ container ip-interface-pac {
+ uses ip-interface-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping ip-interface-pac {
+ container ip-interface-capability {
+ config false;
+ uses ip-interface-capability;
+ description
+ "none";
+ }
+ container ip-interface-configuration {
+ uses ip-interface-configuration;
+ description
+ "none";
+ }
+ container ip-interface-status {
+ config false;
+ uses ip-interface-status;
+ description
+ "none";
+ }
+ container ip-interface-current-problems {
+ config false;
+ uses ip-interface-current-problems;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping ip-interface-capability {
+ leaf maximum-number-of-ip-v-4-addresses {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Maximum number of IP addresses at this IP interface (translates into maximum multiplicity of IpInterfaceConfiguration::fixedIpV4AddressList)";
+ }
+ leaf dhcp-client-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Interface is able to operate as a DHCP client.";
+ }
+ leaf fixed-default-gateway-configuration-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Default route per IP Interface can be configuered, 0 if multiple Default routes are not supported";
+ }
+ leaf maximum-transmission-unit-min {
+ type int16;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "Minimum layer 3 MTU size configurable.";
+ }
+ leaf maximum-transmission-unit-max {
+ type int16;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "Maximum layer 3 MTU size configurable.";
+ }
+ leaf ip-v-6-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = interface supports IPv6 (even if not yet supported by this information model).";
+ }
+ leaf arp-proxy-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Interface is able to forward ARP requests.";
+ }
+ leaf ingress-policing-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Shaping on the ingress is available at this interface.";
+ }
+ leaf egress-shaping-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = This interface supports shaping.";
+ }
+ leaf information-rate-min {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Minimum configurable throuput in kbit/s.";
+ }
+ leaf information-rate-max {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Maximum configurable throuput in kbit/s.";
+ }
+ leaf burst-size-min {
+ type int16;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Minimum configurable value for the number of kBytes, which could be sent in a single burst.";
+ }
+ leaf burst-size-max {
+ type int16;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "Only relevant if (egressShapingIsAvail==1): Maximum configurable value for the number of kBytes, which could be sent in a single burst.";
+ }
+ leaf vpn-binding-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Interface supports being part of a Virtual Private Network.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 3;
+ description
+ "List of supported kinds of looping back.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "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').";
+ }
+ leaf statistics-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Statistics collection and aggregation is supported on this interface.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description
+ "Available alarms to be listed. Mandatory: 'IpInterfaceDown' and 'MtuMissmatch'. Further alarms might be added by the device vendors.";
+ }
+ description
+ "none";
+ }
+
+ grouping ip-interface-configuration {
+ leaf interface-name {
+ type string;
+ default "Interface name not yet defined.";
+ description
+ "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf interface-is-on {
+ type boolean;
+ default "false";
+ description
+ "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).";
+ }
+ leaf dhcp-client-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (dhcpClientIsAvail==1). 1 = Activation of a DHCP client on the interface.";
+ }
+ list fixed-ip-v-4-address-list {
+ key "fixed-ip-v-4-address fixed-ip-v-4-address-prefix-length";
+ min-elements 1;
+ uses ip-v-4-address-type;
+ description
+ "Only relevant if (dhcpClientIsOn==0). Secondary IP addresses.";
+ }
+ leaf maximum-transmission-unit-ip {
+ type int16;
+ units "Byte";
+ default "-1";
+ description
+ "Layer 3 maximum transmission unit size in Byte. The MTU describes the maximum IP packet size that can be put into the Ethernet frame before sending";
+ }
+ leaf arp-proxy {
+ type arp-proxy-type;
+ default "ARP_PROXY_TYPE_NOT_YET_DEFINED";
+ description
+ "openconfig-if-ip. Only relevant if (arpProxyIsAvail == 1). If set to a value different from 'DISABLE', the local system should respond to ARP requests that are for target addresses other than those that are configured on the local subinterface using its own MAC address as the target hardware address. If configured to 'REMOTE_ONLY', replies are only sent when the target address falls outside the locally configured subnets on the interface. If configured to 'ALL', all requests regardless of their target address are answered.";
+ }
+ leaf ingress-policing-profile {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ description
+ "Only relevant if (ingressPolicingIsAvail ==1). Reference to the definition of a policing profile. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_POLICING_PROFILE'.";
+ }
+ leaf egress-shaping-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Shaping on the egress is activated.";
+ }
+ leaf maximum-information-rate {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ description
+ "Only relevant if (egressShapingIsAvail==1): Limits the throughput on the egress.";
+ }
+ leaf maximum-burst-size {
+ type int16;
+ units "kByte";
+ default "-1";
+ description
+ "Only relevant if (egressShapingIsAvail==1): Limits the number of kBytes, which are sent in a single burst.";
+ }
+ leaf l-3vpn-profile {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ description
+ "Reference to the definition of a Virtual Private Network, to which this interface belongs to. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_L3VPN_PROFILE'.";
+ }
+ leaf qos-profile {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ description
+ "Reference to the definition of the QoS profile, which shall be applied on this interface. Attribute to point to an instance of Profile with profileName=='PROFILE_NAME_TYPE_QOS_PROFILE'.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ description
+ "Maintenance Feature. Configuration of a loop back of Ethernet frames on this interface.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration. Valid values are defined in *Capability::maintenanceTimerRange.";
+ }
+ leaf statistics-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (FlowStatisticsIsAvail==1). 1 = Collection and aggregation of statistics is switched on.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of each entry of the SupportedAlarmList to be configured.";
+ }
+ description
+ "none";
+ }
+
+ grouping ip-interface-status {
+ leaf interface-status {
+ type interface-status-type;
+ default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the interface.";
+ }
+ list ip-v-4-address-cur-list {
+ key "fixed-ip-v-4-address fixed-ip-v-4-address-prefix-length";
+ config false;
+ min-elements 1;
+ uses ip-v-4-address-type;
+ description
+ "IPv4 address, which is currently active on this interface. The format is IPv4.";
+ }
+ leaf ip-address-origin {
+ type ip-address-origin-type;
+ default "IP_ADDRESS_ORIGIN_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "openconfig-if-ip. Describes the origin of the currently active IP address information, e.g. statically configured, assigned by DHCP, etc..";
+ }
+ list neighbor-list {
+ key "neighbor-mac-address";
+ config false;
+ uses neighbor-type;
+ description
+ "openconfig-if-ip. Current IP and MAC addresses of the remote site of the IP link.";
+ }
+ leaf vpn-binding-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Binding to a VPN definition is currently effective.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "The currently active (not just configured) type of looping back of the air interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf statistics-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Statistics are currently counted";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf last-10-sec-data-input-rate {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Data receive rate over the last 10 second interval in kbit/s.";
+ }
+ leaf last-10-sec-data-output-rate {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "Data transmit rate over the last 10 second interval in kbit/s.";
+ }
+ leaf last-10-sec-packet-input-rate {
+ type int32;
+ units "packet/s";
+ default "-1";
+ config false;
+ description
+ "Packet receive rate over the last 10 second interval.";
+ }
+ leaf last-10-sec-packet-output-rate {
+ type int32;
+ units "packet/s";
+ default "-1";
+ config false;
+ description
+ "Packet transmit rate over the last 10 second interval.";
+ }
+ leaf data-volume-input {
+ type int32;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "Received data volume in kByte.";
+ }
+ leaf data-volume-output {
+ type int32;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "Sent data volume in kByte.";
+ }
+ leaf total-packets-input {
+ type int64;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "The total number of IP packets received for the specified address family, including those received in error";
+ }
+ leaf total-packets-output {
+ type int64;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "The total number of IP packets for the specified address family that the device supplied to the lower layers for transmission.This includes packets generated locally and those forwarded by the device.";
+ }
+ leaf forwarded-data-volume-input {
+ type int32;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "The number of octets received in input IP packets for the specified address family for which the device was not their final IP destination and for which the device attempted to find a route to forward them to that final destination.\n";
+ }
+ leaf forwarded-data-volume-output {
+ type int32;
+ units "kByte";
+ default "-1";
+ config false;
+ description
+ "The number of octets in packets for which this entity was not their final IP destination and for which it was successful in finding a path to their final destination.\n";
+ }
+ leaf forwarded-packets-input {
+ type int64;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "The number of input packets for which the device was not their final IP destination and for which the device attempted to find a route to forward them to that final destination.";
+ }
+ leaf forwarded-packets-output {
+ type int64;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "The number of packets for which this entity was not their final IP destination and for which it was successful in finding a path to their final destination. ";
+ }
+ leaf unicast-packets-input {
+ type int64;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of received unicast packets.";
+ }
+ leaf unicast-packets-output {
+ type int64;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of sent unicast packets.";
+ }
+ leaf multicast-packets-input {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of received multicast packets.";
+ }
+ leaf multicast-packets-output {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of sent multicast packets.";
+ }
+ leaf broadcast-packets-input {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of received broadcast packets.";
+ }
+ leaf broadcast-packets-output {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of sent broadcast packets.";
+ }
+ leaf fragmented-packets-input {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of received fragmented packets.";
+ }
+ leaf errored-packets-input {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of received errored packets.";
+ }
+ leaf errored-packets-output {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Number of IP packets for the specified address family locally generated and discarded due to errors, including no route found to the IP destination.";
+ }
+ leaf dropped-packets-input {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "Total number of packets dropped at the receiver. The number of input IP packets for the specified address family, for which no problems were encountered to prevent their continued processing, but were discarded (e.g., for lack of buffer space).";
+ }
+ leaf dropped-packets-output {
+ type int32;
+ units "packets";
+ default "-1";
+ config false;
+ description
+ "The number of output IP packets for the specified address family for which no problem was encountered to prevent their transmission to their destination, but were discarded (e.g., for lack of buffer space).";
+ }
+ description
+ "none";
+ }
+
+ grouping ip-interface-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses ip-interface-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef loop-back-type {
+ type identityref {
+ base LOOP_BACK_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef arp-proxy-type {
+ type identityref {
+ base ARP_PROXY_TYPE;
+ }
+ description
+ "openconfig-if-ip. ";
+ }
+
+ typedef ip-address-origin-type {
+ type identityref {
+ base IP_ADDRESS_ORIGIN_TYPE;
+ }
+ description
+ "openconfig-if-ip. The origin of the interface's own IP address.";
+ }
+
+ typedef neighbor-origin-type {
+ type identityref {
+ base NEIGHBOR_ORIGIN_TYPE;
+ }
+ description
+ "openconfig-if-ip. The origin of a neighbor entry.";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity LOOP_BACK_TYPE {
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_NONE {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning Ethernet frames of the local site on the Ethernet MAC interface back to the local site.";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning Ethernet frames of the remote site on the Ethernet MAC interface back to the remote site.";
+ }
+
+ identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity ARP_PROXY_TYPE {
+ description
+ "none";
+ }
+
+ identity ARP_PROXY_TYPE_DISABLE {
+ base ARP_PROXY_TYPE;
+ description
+ "The system should not respond to ARP requests that do not specify an IP address configured on the local subinterface as the target address.";
+ }
+
+ identity ARP_PROXY_TYPE_REMOTE_ONLY {
+ base ARP_PROXY_TYPE;
+ description
+ "The system responds to ARP requests only when the sender and target IP addresses are in different subnets.";
+ }
+
+ identity ARP_PROXY_TYPE_ALL {
+ base ARP_PROXY_TYPE;
+ description
+ "The system responds to ARP requests where the sender and target IP addresses are in different subnets, as well as those where they are in the same subnet.";
+ }
+
+ identity ARP_PROXY_TYPE_NOT_YET_DEFINED {
+ base ARP_PROXY_TYPE;
+ description
+ "none";
+ }
+
+ identity IP_ADDRESS_ORIGIN_TYPE {
+ description
+ "none";
+ }
+
+ identity IP_ADDRESS_ORIGIN_TYPE_OTHER {
+ base IP_ADDRESS_ORIGIN_TYPE;
+ description
+ "None of the following.";
+ }
+
+ identity IP_ADDRESS_ORIGIN_TYPE_STATIC {
+ base IP_ADDRESS_ORIGIN_TYPE;
+ description
+ "Indicates that the address has been statically configured - for example, using NETCONF or a Command Line Interface.";
+ }
+
+ identity IP_ADDRESS_ORIGIN_TYPE_DHCP {
+ base IP_ADDRESS_ORIGIN_TYPE;
+ description
+ "Indicates an address that has been assigned to this system by a DHCP server.";
+ }
+
+ identity IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER {
+ base IP_ADDRESS_ORIGIN_TYPE;
+ description
+ "Indicates an address created by IPv6 stateless autoconfiguration that embeds a link-layer address in its interface identifier.";
+ }
+
+ identity IP_ADDRESS_ORIGIN_TYPE_RANDOM {
+ base IP_ADDRESS_ORIGIN_TYPE;
+ description
+ "Indicates an address chosen by the system at random, e.g., an IPv4 address within 169.254/16, an RFC 4941 temporary address, or an RFC 7217 semantically opaque address.";
+ }
+
+ identity IP_ADDRESS_ORIGIN_TYPE_NOT_YET_DEFINED {
+ base IP_ADDRESS_ORIGIN_TYPE;
+ description
+ "none";
+ }
+
+ identity NEIGHBOR_ORIGIN_TYPE {
+ description
+ "none";
+ }
+
+ identity NEIGHBOR_ORIGIN_TYPE_OTHER {
+ base NEIGHBOR_ORIGIN_TYPE;
+ description
+ "None of the following.";
+ }
+
+ identity NEIGHBOR_ORIGIN_TYPE_STATIC {
+ base NEIGHBOR_ORIGIN_TYPE;
+ description
+ "Indicates that the mapping has been statically configured - for example, using NETCONF or a Command Line Interface.";
+ }
+
+ identity NEIGHBOR_ORIGIN_TYPE_DYNAMIC {
+ base NEIGHBOR_ORIGIN_TYPE;
+ description
+ "Indicates that the mapping has been dynamically resolved using, e.g., IPv4 ARP.";
+ }
+
+ identity NEIGHBOR_ORIGIN_TYPE_NOT_YET_DEFINED {
+ base NEIGHBOR_ORIGIN_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON-ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_TESTING {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UNKNOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DORMANT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef interface-status-type {
+ type identityref {
+ base INTERFACE_STATUS_TYPE;
+ }
+ description
+ "Current Operational Interface Status";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping ip-v-4-address-type {
+ leaf fixed-ip-v-4-address {
+ type string;
+ description
+ "IPv4 address fixed assigned to this interface. The format is e.g. 172.168.0.5";
+ }
+ leaf fixed-ip-v-4-address-prefix-length {
+ type int8;
+ description
+ "Fixed assigned routing prefix (sub network) length (e.g. for 198.51.100.0/24 the fixedIpV4AddressPrefixLength would be 24).\n";
+ }
+ leaf fixed-default-gateway-ip-v-4-address {
+ type string;
+ default "0.0.0.0";
+ description
+ "Only relevant if ( (dhcpClientIsOn==0) AND (fixedDefaultGatewayConfigurationIsAvail==1) ). Fixed assigned IPv4 address of the default gateway.";
+ }
+ description
+ "none";
+ }
+
+ grouping neighbor-type {
+ leaf neighbor-mac-address {
+ type string;
+ config false;
+ description
+ "MAC address of the neighbor node. The format is e.g. 00:80:41:ae:fd:7e";
+ }
+ leaf neighbor-ip-v-4-address-list {
+ type string;
+ default "0.0.0.0";
+ config false;
+ description
+ "IPv4 address of the neighbor node. The format is IPv4, e.g. 172.168.0.5";
+ }
+ leaf neighbor-origin {
+ type neighbor-origin-type;
+ config false;
+ description
+ "The origin of a neighbor entry.";
+ }
+ description
+ "openconfig-if-ip. Neighbor entries are analagous to static ARP entries, i.e. they create a correspondence between IP and link-layer addresses.";
+ }
+
+ grouping ip-interface-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "NOT_YET_DEFINED";
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/l-3vpn-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/l-3vpn-profile-1-0.yang
new file mode 100644
index 000000000..b5682c9cc
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/l-3vpn-profile-1-0.yang
@@ -0,0 +1,499 @@
+module l-3vpn-profile-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:l-3vpn-profile-1-0";
+ prefix l-3vpn-profile;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: L3vpnProfile@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific profile definition for Layer 3 Virtual Private Networks
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-27 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/l3vpnProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/l3vpnProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-12 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/l3vpnProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/l3vpnProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity PROFILE_NAME_TYPE_L3VPN_PROFILE {
+ base core-model:PROFILE_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+ when "derived-from-or-self(./core-model:profile-name, 'l-3vpn-profile:PROFILE_NAME_TYPE_L3VPN_PROFILE')";
+ uses l-3vpn-profile-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping l-3vpn-profile-spec {
+ container l-3vpn-pac {
+ uses l-3vpn-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping l-3vpn-pac {
+ container l-3vpn-capability {
+ config false;
+ uses l-3vpn-capability;
+ description
+ "none";
+ }
+ container l-3vpn-configuration {
+ config false;
+ uses l-3vpn-configuration;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping l-3vpn-capability {
+ leaf profile-naming-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = There is a free text field available for naming the profile.";
+ }
+ leaf l-3vpn-based-on-ip-v-6-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Virtual Private Networks based on IP v6 addresses is available at the device.";
+ }
+ description
+ "none";
+ }
+
+ grouping l-3vpn-configuration {
+ leaf profile-name {
+ type string;
+ default "Name of profile not yet defined.";
+ description
+ "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf l-3vpn-description {
+ type string;
+ default "VPN description not yet defined.";
+ description
+ "Short description of the VPN.";
+ }
+ list l-3vpn-configuration-list {
+ key "label-mode";
+ min-elements 1;
+ max-elements 2;
+ uses l-3vpn-configuration-type;
+ description
+ "L3 VPN instance Configuration.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef label-mode-type {
+ type identityref {
+ base LABEL_MODE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef device-identifier-kind-type {
+ type identityref {
+ base DEVICE_IDENTIFIER_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef address-family-type {
+ type identityref {
+ base ADDRESS_FAMILY_TYPE;
+ }
+ description
+ "Address family of the VRF IPv4/IPV6.";
+ }
+
+ typedef route-pritority-type {
+ type identityref {
+ base ROUTE_PRITORITY_TYPE;
+ }
+ description
+ "The priority of the Route";
+ }
+
+ typedef route-state-type {
+ type identityref {
+ base ROUTE_STATE_TYPE;
+ }
+ description
+ "The state of the route as per the routing table. It is a combination of the one or more of the following states: ADV, NOADV,ACTIVE, INACTIVE, RELIED.";
+ }
+
+ typedef route-flag-type {
+ type identityref {
+ base ROUTE_FLAG_TYPE;
+ }
+ description
+ "Indicates the route flag, that is, Route Flags in the heading of the routing table displayed. It is a combination of one or more of the following flags: D and,R Meaning of each of the flag is availble under corresponding flag value.";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity LABEL_MODE_TYPE {
+ description
+ "none";
+ }
+
+ identity LABEL_MODE_TYPE_PER_INSTANCE {
+ base LABEL_MODE_TYPE;
+ description
+ "Labels are assigned to VPN instances in one label per instance mode, that is, all routes in a VPN instance are assigned with the same label.";
+ }
+
+ identity LABEL_MODE_TYPE_PER_ROUTE {
+ base LABEL_MODE_TYPE;
+ description
+ "Labels are assigned to routes in the 'one label per route' mode, that is, each route is assigned with one label.";
+ }
+
+ identity DEVICE_IDENTIFIER_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity DEVICE_IDENTIFIER_KIND_TYPE_LOOP_BACK_IP_ADDRESS {
+ base DEVICE_IDENTIFIER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity DEVICE_IDENTIFIER_KIND_TYPE_AS_NUMBER {
+ base DEVICE_IDENTIFIER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity DEVICE_IDENTIFIER_KIND_TYPE_NOT_YET_DEFINED {
+ base DEVICE_IDENTIFIER_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity ADDRESS_FAMILY_TYPE {
+ description
+ "none";
+ }
+
+ identity ADDRESS_FAMILY_TYPE_IPV4-FAMILY {
+ base ADDRESS_FAMILY_TYPE;
+ description
+ "none";
+ }
+
+ identity ADDRESS_FAMILY_TYPE_IPV6-FAMILY {
+ base ADDRESS_FAMILY_TYPE;
+ description
+ "none";
+ }
+
+ identity ADDRESS_FAMILY_TYPE_UNKNOWN {
+ base ADDRESS_FAMILY_TYPE;
+ description
+ "none";
+ }
+
+ identity ADDRESS_FAMILY_TYPE_NOT_YET_DEFINED {
+ base ADDRESS_FAMILY_TYPE;
+ description
+ "none";
+ }
+
+ identity ROUTE_PRITORITY_TYPE {
+ description
+ "none";
+ }
+
+ identity ROUTE_PRITORITY_TYPE_CRITICAL {
+ base ROUTE_PRITORITY_TYPE;
+ description
+ "Highest protocol priority.";
+ }
+
+ identity ROUTE_PRITORITY_TYPE_HIGH {
+ base ROUTE_PRITORITY_TYPE;
+ description
+ "High protocol priority";
+ }
+
+ identity ROUTE_PRITORITY_TYPE_MEDIUM {
+ base ROUTE_PRITORITY_TYPE;
+ description
+ "Medium protocol priority.";
+ }
+
+ identity ROUTE_PRITORITY_TYPE_LOW {
+ base ROUTE_PRITORITY_TYPE;
+ description
+ "Low protocol priority.";
+ }
+
+ identity ROUTE_STATE_TYPE {
+ description
+ "none";
+ }
+
+ identity ROUTE_STATE_TYPE_ACTIVE_ADV {
+ base ROUTE_STATE_TYPE;
+ description
+ "The route state is active and advertised.";
+ }
+
+ identity ROUTE_STATE_TYPE_ACTIVE_NOADV {
+ base ROUTE_STATE_TYPE;
+ description
+ "The route state is active and not advertised.";
+ }
+
+ identity ROUTE_STATE_TYPE_ACTIVE_ADV_RELIED {
+ base ROUTE_STATE_TYPE;
+ description
+ "The route state is active, advertised, and relied.";
+ }
+
+ identity ROUTE_STATE_TYPE_ACTIVE_NOADV_RELIED {
+ base ROUTE_STATE_TYPE;
+ description
+ "The route state is active, not advertised, and relied.";
+ }
+
+ identity ROUTE_STATE_TYPE_INVALID_NOADV {
+ base ROUTE_STATE_TYPE;
+ description
+ "The route state is invalid and not advertised.";
+ }
+
+ identity ROUTE_STATE_TYPE_INACTIVE_NOADV {
+ base ROUTE_STATE_TYPE;
+ description
+ "The route state is inactive and not advertised.";
+ }
+
+ identity ROUTE_FLAG_TYPE {
+ description
+ "none";
+ }
+
+ identity ROUTE_FLAG_TYPE_D {
+ base ROUTE_FLAG_TYPE;
+ description
+ "A route is advertised to the Forwarding Information Base table.";
+ }
+
+ identity ROUTE_FLAG_TYPE_RD {
+ base ROUTE_FLAG_TYPE;
+ description
+ "A route is an iterated route and needs to be advertised to the FIB table.";
+ }
+
+ identity ROUTE_FLAG_TYPE_R {
+ base ROUTE_FLAG_TYPE;
+ description
+ "A route is an iterated route.";
+ }
+
+ grouping route-distinguisher-and-target-type {
+ leaf vpn-number {
+ type uint32;
+ description
+ "Identifier of the VPN, which is unique in the entire network";
+ }
+ leaf device-identifier-kind {
+ type device-identifier-kind-type;
+ default "DEVICE_IDENTIFIER_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "none";
+ }
+ leaf loop-back-ip-address {
+ type string;
+ default "-1.-1.-1.-1";
+ description
+ "Only relevant if (deviceIdentifierKind==LOOP_BACK_IP_ADDRESS). Loop back address of the device.";
+ }
+ leaf as-number {
+ type uint32;
+ default "0";
+ description
+ "Only relevant if (deviceIdentifierKind==AS_NUMBER). Autonomous System number of the device.";
+ }
+ description
+ "none";
+ }
+
+ grouping l-3vpn-configuration-type {
+ leaf label-mode {
+ type label-mode-type;
+ description
+ "Label model used by the VPN.";
+ }
+ container route-distinguisher {
+ uses route-distinguisher-and-target-type;
+ description
+ "The route distinguisher that should be used for the local VRF or VSI instance when it is signalled via BGP.";
+ }
+ list route-target-import-list {
+ key "vpn-number";
+ min-elements 1;
+ uses route-distinguisher-and-target-type;
+ description
+ "Route targets that will be imported to this VPN ";
+ }
+ list route-target-export-list {
+ key "vpn-number";
+ min-elements 1;
+ uses route-distinguisher-and-target-type;
+ description
+ "Route targets that will be tagged to outgoing routes";
+ }
+ leaf address-family {
+ type address-family-type;
+ default "ADDRESS_FAMILY_TYPE_NOT_YET_DEFINED";
+ description
+ "Address family type for the VPN instance is created for";
+ }
+ description
+ "L3 VPN instance configuration information.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ltp-augment-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ltp-augment-1-0.yang
new file mode 100644
index 000000000..a1aae5842
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/ltp-augment-1-0.yang
@@ -0,0 +1,102 @@
+module ltp-augment-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:ltp-augment-1-0";
+ prefix ltp-augment;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: LtpAugment@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-07-30 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/ltpAugment/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/ltpAugment/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point"{
+ uses ltp-augment-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ grouping ltp-augment-spec {
+ container ltp-augment-pac {
+ uses ltp-augment-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping ltp-augment-pac {
+ container ltp-augment-configuration {
+ uses ltp-augment-configuration;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping ltp-augment-configuration {
+ leaf-list equipment {
+ type leafref {
+ path "/core-model:control-construct/core-model:equipment/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "Equipment, which determines the characteristics of this interface (LTP).";
+ }
+ leaf connector {
+ type leafref {
+ path "/core-model:control-construct/core-model:equipment/core-model:connector/core-model:local-id";
+ require-instance false;
+ }
+ config false;
+ description
+ "Connector, where this interface (LTP) can be physically connected.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fc-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fc-1-0.yang
new file mode 100644
index 000000000..cbe692ca8
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fc-1-0.yang
@@ -0,0 +1,569 @@
+module mac-fc-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:mac-fc-1-0";
+ prefix mac-fc;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: MacFc@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific amendment to the ForwardingConstruct class for documenting entries in the MAC forwarding table according to IEEE 802.1 .
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-08-26 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany
+ Please view https://github.com/openBackhaul/macFc/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/macFc/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:forwarding-domain/core-model:fc" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'mac-fc:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER')";
+ uses mac-fc-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to *Capability::supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to *Configuration::problemSeverityList";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fc-spec {
+ container mac-fc-pac {
+ uses mac-fc-pac;
+ description
+ "none";
+ }
+ description
+ "Represents an entry into the MAC forwarding table. Name in ieee802-dot1q-bridge.yang: filtering-entry.";
+ }
+
+ grouping mac-fc-pac {
+ container mac-fc-capability {
+ config false;
+ uses mac-fc-capability;
+ description
+ "none";
+ }
+ container mac-fc-configuration {
+ uses mac-fc-configuration;
+ description
+ "none";
+ }
+ container mac-fc-status {
+ config false;
+ uses mac-fc-status;
+ description
+ "none";
+ }
+ container mac-fc-current-problems {
+ config false;
+ uses mac-fc-current-problems;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fc-capability {
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Manual switching on and off of the forwarding construct without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ default "Supported Alarms not yet defined.";
+ config false;
+ description
+ "Available alarms to be listed.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fc-configuration {
+ leaf fc-name {
+ type string;
+ default "FC name not yet defined.";
+ description
+ "Name of the ForwardingConstruct. Free text field to be filled by the operator.";
+ }
+ leaf fc-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (adminShutDownIsAvail==true). true = Activation of the forwarding of frames. false = De-activation of the ForwardingConstruct without deleting it (underlying OSI network layers are not affected).";
+ }
+ leaf database-id {
+ type int32;
+ default "-1";
+ description
+ "The identity of the Filtering Database. Name in ieee802-dot1q-bridge.yang: database-id.";
+ }
+ leaf mac-address {
+ type string;
+ default "00:00:00:00:00:00";
+ description
+ "Configuration of a MAC address (unicast, multicast, broadcast), for which the device has forwarding and/or filtering information.";
+ }
+ leaf entry-kind {
+ type entry-kind-type;
+ default "ENTRY_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "The type of filtering entry. Whether static or dynamic. Static entries can be created, deleted, and retrieved. However, dynamic entries can only be deleted or retrieved by the management entity. Consequently, a Bridge is not required to accept a command that can alter the dynamic entries except delete a dynamic entry. Name in ieee802-dot1q-bridge.yang: entry-type.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of the problem to be configured.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fc-status {
+ leaf fc-status {
+ type fc-status-type;
+ default "FC_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "The status of this entry. Name in ieee802-dot1q-bridge.yang: status.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fc-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses mac-fc-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef entry-kind-type {
+ type identityref {
+ base ENTRY_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef fc-status-type {
+ type identityref {
+ base FC_STATUS_TYPE;
+ }
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity ENTRY_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity ENTRY_KIND_TYPE_STATIC {
+ base ENTRY_KIND_TYPE;
+ description
+ "Static entries can be created, deleted, and retrieved. Name in ieee802-dot1q-bridge.yang: static.";
+ }
+
+ identity ENTRY_KIND_TYPE_DYNAMIC {
+ base ENTRY_KIND_TYPE;
+ description
+ "Dynamic/learnt entries can only be deleted or retrieved. Name in ieee802-dot1q-bridge.yang: dynamic.";
+ }
+
+ identity ENTRY_KIND_TYPE_NOT_YET_DEFINED {
+ base ENTRY_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity FC_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity FC_STATUS_TYPE_OTHER {
+ base FC_STATUS_TYPE;
+ description
+ "None of the following. This may include the case where some other object is being used to determine if and how frames addressed to the value of the corresponding instance of 'address' are being forwarded. Name in ieee802-dot1q-bridge.yang: other.";
+ }
+
+ identity FC_STATUS_TYPE_INVALID {
+ base FC_STATUS_TYPE;
+ description
+ "This entry is no longer valid (e.g., it was learned but has since aged out), but has not yet been flushed from the table. Name in ieee802-dot1q-bridge.yang: invalid.";
+ }
+
+ identity FC_STATUS_TYPE_LEARNED {
+ base FC_STATUS_TYPE;
+ description
+ "The value of the corresponding instance of the port node was learned and is being used. Name in ieee802-dot1q-bridge.yang: learned.";
+ }
+
+ identity FC_STATUS_TYPE_SELF {
+ base FC_STATUS_TYPE;
+ description
+ "The value of the corresponding instance of the address node representing one of the devices address. Name in ieee802-dot1q-bridge.yang: self.";
+ }
+
+ identity FC_STATUS_TYPE_MANAGEMENT {
+ base FC_STATUS_TYPE;
+ description
+ "The value of the corresponding instance of address node that is also the value of an existing instance. Name in ieee802-dot1q-bridge.yang: mgmt.";
+ }
+
+ identity FC_STATUS_TYPE_NOT_YET_DEFINED {
+ base FC_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fc-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to *Capability::supportedAlarmList.";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fd-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fd-1-0.yang
new file mode 100644
index 000000000..9347f0354
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-fd-1-0.yang
@@ -0,0 +1,585 @@
+module mac-fd-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:mac-fd-1-0";
+ prefix mac-fd;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: MacFd@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific amendment to the ForwardingDomain class for documenting potential forwarding (Ethernet Switch) according to IEEE 802.1 .
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-08-26 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/macFd/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/macFd/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:forwarding-domain" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-fd:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER')";
+ uses mac-fd-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to *Capability::supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to *Configuration::problemSeverityList";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fd-spec {
+ container mac-fd-pac {
+ uses mac-fd-pac;
+ description
+ "none";
+ }
+ description
+ "The database that holds static and learned entries describing the MAC forwarding. Name in ieee802-dot1q-bridge.yang: filtering-database.";
+ }
+
+ grouping mac-fd-pac {
+ container mac-fd-capability {
+ config false;
+ uses mac-fd-capability;
+ description
+ "none";
+ }
+ container mac-fd-configuration {
+ uses mac-fd-configuration;
+ description
+ "none";
+ }
+ container mac-fd-status {
+ config false;
+ uses mac-fd-status;
+ description
+ "none";
+ }
+ container mac-fd-current-problems {
+ config false;
+ uses mac-fd-current-problems;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fd-capability {
+ leaf maximum-number-of-entries {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "The maximum number of entries that can be held in the FDB. Name in ieee802-dot1q-bridge.yang: size.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Manual switching on and off of the forwarding domain without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ default "Supported Alarms Not Yet Defined";
+ config false;
+ description
+ "Available alarms to be listed.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fd-configuration {
+ leaf fd-name {
+ type string;
+ default "Forwarding Domain name not yet defined.";
+ description
+ "Name of the ForwardingDomain. Free text field to be filled by the operator.";
+ }
+ leaf fd-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (adminShutDownIsAvail==true). true = Activation of the ForwardingDomain. false = De-activation of the ForwardingDomain without deleting it (underlying OSI network layers are not affected).";
+ }
+ leaf mac-address {
+ type string;
+ default "00:00:00:00:00:00";
+ description
+ "Configuration of the MAC address of a switch or virtual switch, which is defined by some VLAN.";
+ }
+ leaf aging-time {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "The timeout period (10..10,000,000) in seconds for aging out dynamically-learned forwarding information. Name in ieee802-dot1q-bridge.yang: aging-time.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration. false = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of each entry of the SupportedAlarmList to be configured.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fd-status {
+ leaf mac-address-cur {
+ type string;
+ default "00:00:00:00:00:00";
+ config false;
+ description
+ "MAC address assigned to a switch or virtual switch, which is defined by some VLAN.";
+ }
+ leaf number-of-static-entries-cur {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "The number of Static Filtering entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-entries.";
+ }
+ leaf number-of-dynamic-entries-cur {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "The number of Dynamic Filtering entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: dynamic-entries.";
+ }
+ leaf number-of-mac-registrations-cur {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "The number of MAC Address Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: mac-address-registration-entries.";
+ }
+ leaf fd-status {
+ type fd-status-type;
+ default "FD_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the forwarding domain.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fd-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses mac-fd-current-problem-type;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity FD_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity FD_STATUS_TYPE_UP {
+ base FD_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity FD_STATUS_TYPE_DOWN {
+ base FD_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity FD_STATUS_TYPE_TESTING {
+ base FD_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity FD_STATUS_TYPE_UNKNOWN {
+ base FD_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity FD_STATUS_TYPE_DORMANT {
+ base FD_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity FD_STATUS_TYPE_NOT_PRESENT {
+ base FD_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity FD_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base FD_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity FD_STATUS_TYPE_ADMIN_DOWN {
+ base FD_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity FD_STATUS_TYPE_NOT_YET_DEFINED {
+ base FD_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef fd-status-type {
+ type identityref {
+ base FD_STATUS_TYPE;
+ }
+ description
+ "Current Status of the Forwarding Domain";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-fd-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-interface-1-0.yang
new file mode 100644
index 000000000..be46b24f4
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/mac-interface-1-0.yang
@@ -0,0 +1,1479 @@
+module mac-interface-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:mac-interface-1-0";
+ prefix mac-interface;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: MacInterface@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific interface definition for Ethernet MAC interfaces according to IEEE 802.1
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-23 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/macInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/macInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-11 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/macInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/macInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'mac-interface:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER')";
+ uses mac-interface-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "none";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to problemKindSeverity";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised.";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-lp-spec {
+ container mac-interface-pac {
+ uses mac-interface-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-pac {
+ container mac-interface-capability {
+ config false;
+ uses mac-interface-capability;
+ description
+ "none";
+ }
+ container mac-interface-configuration {
+ uses mac-interface-configuration;
+ description
+ "none";
+ }
+ container mac-interface-status {
+ config false;
+ uses mac-interface-status;
+ description
+ "none";
+ }
+ container mac-interface-current-problems {
+ config false;
+ uses mac-interface-current-problems;
+ description
+ "none";
+ }
+ container mac-interface-current-performance {
+ config false;
+ uses mac-interface-current-performance;
+ description
+ "none";
+ }
+ container mac-interface-historical-peformances {
+ config false;
+ uses mac-interface-historical-peformances;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-capability {
+ leaf hardware-mac-address {
+ type string;
+ default "00:00:00:00:00:00";
+ config false;
+ description
+ "Hardware MAC address of the interface.";
+ }
+ leaf mac-address-configuration-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Device supports overwriting the hardware MAC address.";
+ }
+ leaf maximum-frame-size-min {
+ type int16;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Minimum configurable value of the maximum Ethernet frame size in Byte.";
+ }
+ leaf maximum-frame-size-max {
+ type int16;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Maximum configurable value of the maximum Ethernet frame size in Byte.";
+ }
+ leaf-list supported-frame-format-list {
+ type frame-format-type;
+ config false;
+ min-elements 1;
+ description
+ "List of supported Ethernet frame formats";
+ }
+ leaf-list supported-flow-control-mode-list {
+ type flow-control-mode-type;
+ config false;
+ min-elements 1;
+ max-elements 5;
+ description
+ "List of potential configurations of the Flow Control.";
+ }
+ leaf link-loss-forwarding-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Sending a Link Loss message in case of link failure is supported by the device.";
+ }
+ leaf broadcast-frame-suppression-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Interface is supporting limiting the maximum share of broadcast frames.";
+ }
+ leaf loop-port-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Device is supporting automated shut down of ports, which are affected by an Ethernet loop.";
+ }
+ leaf loop-detection-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Device is supporting a feature for detecting Ethernet loops on this interface.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 3;
+ description
+ "List of supported kinds of looping back.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "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').";
+ }
+ leaf statistics-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Continuous statistics counters are available.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description
+ "Available alarms to be listed. Mandatory: 'MacInterfaceDown' and 'FrameSizeMissmatch'. Further alarms might be added by the device vendors.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Collection and aggregation of performance values is available.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-configuration {
+ leaf interface-name {
+ type string;
+ default "Interface name not yet defined.";
+ description
+ "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf interface-is-on {
+ type boolean;
+ default "false";
+ description
+ "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).";
+ }
+ leaf mac-address-configuration-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (macAddressConfigurationIsAvail==1). 1 = Activates overwriting the hardware MAC address by MacInterfaceConfiguration::configuredMacAddress.";
+ }
+ leaf configured-mac-address {
+ type string;
+ default "00:00:00:00:00:00";
+ description
+ "Only relevant if (macAddressConfigurationIsAvail==1 AND macAddressConfigurationIsOn==1). Overwriting the hardware MAC address with the configured value.";
+ }
+ leaf maximum-frame-size {
+ type int16;
+ units "Byte";
+ default "-1";
+ description
+ "This value describes the maximum size of the Ethernet frame (in Byte) before sending.";
+ }
+ leaf fragmentation-allowed {
+ type fragmentation-type;
+ default "FRAGMENTATION_TYPE_NOT_YET_DEFINED";
+ description
+ "none";
+ }
+ leaf transmitted-frame-format {
+ type frame-format-type;
+ default "FRAME_FORMAT_TYPE_NOT_YET_DEFINED";
+ description
+ "Configuration of the format of the transmitted Ethernet frames.";
+ }
+ leaf flow-control-mode {
+ type flow-control-mode-type;
+ default "FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED";
+ description
+ "Configures the mode of operation of Flow Control according to IEEE 802.3x on this interface.";
+ }
+ leaf link-loss-forwarding-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Sending a Link Loss message in case of link failure is activated.";
+ }
+ leaf link-loss-forwarding-delay {
+ type int8;
+ units "100ms";
+ default "-1";
+ description
+ "Delay (in 100ms steps) between a detected link failure and sending of a Link Loss message. In case of 1+1 hot stand by protection of a microwave, make sure configured value is higher than 5 (500ms).";
+ }
+ leaf broadcast-frame-suppression-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Limiting the share of broadcast frames is activated.";
+ }
+ leaf maximum-share-of-broadcast-frames {
+ type int8;
+ units "%";
+ default "-1";
+ description
+ "Threshold for Broadcast frames becoming discarded in %. Value range from 0 to 100.";
+ }
+ leaf loop-port-shut-down-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Feature for automated shut down in case of an Ethernet loop is activated on this interface.";
+ }
+ leaf loop-detection-is-on {
+ type boolean;
+ default "false";
+ description
+ "Maintenance Feature. 1 = Checking for Ethernet loops on this interface is currently switched on.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ description
+ "Maintenance Feature. Configuration of a loop back of Ethernet frames on this interface.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+ }
+ leaf statistics-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (statisticsIsAvail==1). 1 = Continuous statistics counters are switched on.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ min-elements 2;
+ uses problem-kind-severity-type;
+ description
+ "Severity of each entry of the SupportedAlarmList to be configured.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (performanceMonitoringIsAvail==1). 1 = Collection and aggregation of performance values is switched on.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-status {
+ leaf interface-status {
+ type interface-status-type;
+ default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the interface.";
+ }
+ leaf mac-address-cur {
+ type string;
+ default "00:00:00:00:00:00";
+ config false;
+ description
+ "If (macAddressConfigurationIsAvail==0), maxAddressCur = MacInterfaceCapability::hardwareMacAddress. If (macAddressConfigurationIsAvail==1 AND macAddressConfigurationIsOn==1), maxAddressCur = MacInterfaceConfiguration::configuredMacAddress.";
+ }
+ leaf received-ethernet-frame-format-cur {
+ type frame-format-type;
+ default "FRAME_FORMAT_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Ethernet frame format of the currently received frames.";
+ }
+ leaf flow-control-mode-cur {
+ type flow-control-mode-type;
+ default "FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Currently operative mode (none, send, receive, both) of operation of the Flow Control according to IEEE 802.3x on this interface.";
+ }
+ leaf loop-detection-result {
+ type loop-detection-result-type;
+ default "LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Result of the Ethernet loop detection feature.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "The currently active (not just configured) type of loop back.";
+ }
+ leaf statistics-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Statistics are currently collected and aggregated.";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Performance values are currently collected and aggregated.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the statistic values were read/retrieved.";
+ }
+ leaf last-10-sec-frame-input-rate {
+ type int32;
+ units "frame/s";
+ default "-1";
+ config false;
+ description
+ "Frame receive rate at this MAC interface over the last 10 second interval.";
+ }
+ leaf last-10-sec-frame-output-rate {
+ type int32;
+ units "frame/s";
+ default "-1";
+ config false;
+ description
+ "Frame transmit rate at this MAC interface over the last 10 second interval.";
+ }
+ leaf total-frames-input {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "The total number of Ethernet frames received at this MAC interface, including those received in error";
+ }
+ leaf total-frames-output {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "The total number of Ethernet frames sent from this MAC interface.";
+ }
+ leaf forwarded-frames-input {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of input frames, for which the device was not their final destination and for which the device attempted to find a route to forward them to that final destination.";
+ }
+ leaf forwarded-frames-output {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of frames, for which the device was not their final destination and for which it was successful in finding a path to their final destination. ";
+ }
+ leaf unicast-frames-input {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of received unicast frames.";
+ }
+ leaf unicast-frames-output {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of sent unicast frames.";
+ }
+ leaf multicast-frames-input {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of received multicast frames.";
+ }
+ leaf multicast-frames-output {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of sent multicast frames.";
+ }
+ leaf broadcast-frames-input {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of received broadcast frames.";
+ }
+ leaf broadcast-frames-output {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of sent broadcast frames.";
+ }
+ leaf fragmented-frames-input {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of received fragmented frames.";
+ }
+ leaf errored-frames-input {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of received errored frames.";
+ }
+ leaf errored-frames-output {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of Ethernet frames, which were locally generated and discarded due to errors, including no route found to the destination.";
+ }
+ leaf dropped-frames-input {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Total number of Ethernet frames dropped at the receiver. The number of input Ethernet frames, for which no problems were encountered to prevent their continued processing, but were discarded (e.g., for lack of buffer space).";
+ }
+ leaf dropped-frames-output {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "The number of output Ethernet frames, for which no problem was encountered to prevent their transmission to their destination, but were discarded (e.g., for lack of buffer space).";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses mac-interface-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses mac-interface-current-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-historical-peformances {
+ list historical-performace-data-list {
+ key "granularity-period period-end-time";
+ config false;
+ uses mac-interface-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef loop-back-type {
+ type identityref {
+ base LOOP_BACK_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef fragmentation-type {
+ type identityref {
+ base FRAGMENTATION_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef frame-format-type {
+ type identityref {
+ base FRAME_FORMAT_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef flow-control-mode-type {
+ type identityref {
+ base FLOW_CONTROL_MODE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef loop-detection-result-type {
+ type identityref {
+ base LOOP_DETECTION_RESULT_TYPE;
+ }
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity LOOP_BACK_TYPE {
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_NONE {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning Ethernet frames of the local site on the Ethernet MAC interface back to the local site.";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning Ethernet frames of the remote site on the Ethernet MAC interface back to the remote site.";
+ }
+
+ identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAGMENTATION_TYPE {
+ description
+ "none";
+ }
+
+ identity FRAGMENTATION_TYPE_DISABLE {
+ base FRAGMENTATION_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAGMENTATION_TYPE_ENABLE_256_BYTE {
+ base FRAGMENTATION_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAGMENTATION_TYPE_ENABLE_512_BYTE {
+ base FRAGMENTATION_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAGMENTATION_TYPE_NOT_YET_DEFINED {
+ base FRAGMENTATION_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAME_FORMAT_TYPE {
+ description
+ "none";
+ }
+
+ identity FRAME_FORMAT_TYPE_ETHERNET_2 {
+ base FRAME_FORMAT_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAME_FORMAT_TYPE_802.2_SNAP {
+ base FRAME_FORMAT_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAME_FORMAT_TYPE_802.2_LLC {
+ base FRAME_FORMAT_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAME_FORMAT_TYPE_802.3 {
+ base FRAME_FORMAT_TYPE;
+ description
+ "none";
+ }
+
+ identity FRAME_FORMAT_TYPE_NOT_YET_DEFINED {
+ base FRAME_FORMAT_TYPE;
+ description
+ "none";
+ }
+
+ identity FLOW_CONTROL_MODE_TYPE {
+ description
+ "none";
+ }
+
+ identity FLOW_CONTROL_MODE_TYPE_NONE {
+ base FLOW_CONTROL_MODE_TYPE;
+ description
+ "Flow Control is switched off.";
+ }
+
+ identity FLOW_CONTROL_MODE_TYPE_SEND_ONLY {
+ base FLOW_CONTROL_MODE_TYPE;
+ description
+ "Only sending of pause frames according to IEEE 802.3x (Ethernet Flow Control).";
+ }
+
+ identity FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY {
+ base FLOW_CONTROL_MODE_TYPE;
+ description
+ "Only listening for incoming pause frames according to IEEE 802.3x (Ethernet Flow Control).";
+ }
+
+ identity FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE {
+ base FLOW_CONTROL_MODE_TYPE;
+ description
+ "Sending and listening for pause frames according to IEEE 802.3x (Ethernet Flow Control).";
+ }
+
+ identity FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION {
+ base FLOW_CONTROL_MODE_TYPE;
+ description
+ "none";
+ }
+
+ identity FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED {
+ base FLOW_CONTROL_MODE_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_DETECTION_RESULT_TYPE {
+ description
+ "none";
+ }
+
+ identity LOOP_DETECTION_RESULT_TYPE_LOOP_DETECTED {
+ base LOOP_DETECTION_RESULT_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED {
+ base LOOP_DETECTION_RESULT_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF {
+ base LOOP_DETECTION_RESULT_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED {
+ base LOOP_DETECTION_RESULT_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON-ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_SHUT_DUE_LOOP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Only relevant if (loopPortShutDownIsAvail==1) AND (loopPortShutDownIsOn==1). 1 = port has been automatically shut down, because an Ethernet loop has been detected on this interface.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_TESTING {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UNKNOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DORMANT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef interface-status-type {
+ type identityref {
+ base INTERFACE_STATUS_TYPE;
+ }
+ description
+ "Current Interface Status";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "NOT_YET_DEFINED";
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+
+ grouping mac-interface-performance-type {
+ leaf mac-control-frames-ingress {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "MAC layer control frames received on the interface.";
+ }
+ leaf mac-pause-frames-ingress {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "MAC layer Pause frames received on the interface.";
+ }
+ leaf oversized-frames-ingress {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "The total number of frames received that were longer than 1518 octets (excluding framing bits, but including FCS octets) and were otherwise well formed.";
+ }
+ leaf undersized-frames-ingress {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "The total number of frames received that were less than 64 octets long (excluding framing bits, but including FCS octets) and were otherwise well formed.";
+ }
+ leaf jabber-frames-ingres {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of jabber frames received on the interface. Jabber frames are typically defined as oversize frames which also have a bad CRC. Implementations may use slightly different definitions of what constitutes a jabber frame. Often indicative of a NIC hardware problem.";
+ }
+ leaf fragmented-frames-ingress {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "The total number of frames received that were less than 64 octets in length (excluding framing bits but including FCS octets) and had either a bad Frame Check Sequence (FCS) with an integral number of octets (FCS Error) or a bad FCS with a non-integral number of octets (Alignment Error).";
+ }
+ leaf tagged-frames-ingress {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of 802.1q tagged frames received on the interface.";
+ }
+ leaf mac-control-frames-egress {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "MAC layer control frames sent on the interface.";
+ }
+ leaf mac-pause-frames-egress {
+ type int32;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "MAC layer Pause frames sent on the interface.";
+ }
+ leaf tagged-frames-egress {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of 802.1q tagged frames sent on the interface.";
+ }
+ leaf frames-of-64-byte {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of packets (including bad packets) received that were 64 bytes in length (excluding framing bits but including FCS bytes).";
+ }
+ leaf frames-of-65-to-127-byte {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of good and bad packets received that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
+ }
+ leaf frames-of-128-to-255-byte {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of good and bad packets received that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+ }
+ leaf frames-of-256-to-511-byte {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of good and bad packets received that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+ }
+ leaf frames-of-512-to-1023-byte {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of good and bad packets received that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+ }
+ leaf frames-of-1024-to-1518-byte {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "Number of good and bad packets received that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+ }
+ description
+ "none";
+ }
+
+ grouping mac-interface-current-performance-type {
+ container performance-data {
+ config false;
+ uses mac-interface-performance-type;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "none";
+ }
+
+ grouping mac-interface-historical-performance-type {
+ container performance-data {
+ config false;
+ uses mac-interface-performance-type;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/pure-ethernet-structure-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/pure-ethernet-structure-2-0.yang
new file mode 100644
index 000000000..14d812450
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/pure-ethernet-structure-2-0.yang
@@ -0,0 +1,888 @@
+module pure-ethernet-structure-2-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:pure-ethernet-structure-2-0";
+ prefix pure-ethernet-structure;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: PureEthernetStructure@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific interface definition for a pure Ethernet structure on a physical media
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-22 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/pureEthernetStructure/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/pureEthernetStructure/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-11-23 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/pureEthernetStructure/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/pureEthernetStructure/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-08 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/pureEthernetStructure/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/pureEthernetStructure/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'pure-ethernet-structure:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER')";
+ uses pure-ethernet-structure-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "none";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to problemKindSeverity";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised.";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping pure-ethernet-structure-lp-spec {
+ container pure-ethernet-structure-pac {
+ uses pure-ethernet-structure-pac;
+ description
+ "none";
+ }
+ description
+ "The PureEthernetStructureLpSpec and its attached classes MUST be provided on management interfaces of routers, switches and microwave devices, which are transporting exclusively Ethernet traffic.";
+ }
+
+ grouping pure-ethernet-structure-pac {
+ container pure-ethernet-structure-capability {
+ config false;
+ uses pure-ethernet-structure-capability;
+ description
+ "none";
+ }
+ container pure-ethernet-structure-configuration {
+ uses pure-ethernet-structure-configuration;
+ description
+ "none";
+ }
+ container pure-ethernet-structure-status {
+ config false;
+ uses pure-ethernet-structure-status;
+ description
+ "none";
+ }
+ container pure-ethernet-structure-current-problems {
+ config false;
+ uses pure-ethernet-structure-current-problems;
+ description
+ "none";
+ }
+ container pure-ethernet-structure-current-performance {
+ config false;
+ uses pure-ethernet-structure-current-performance;
+ description
+ "none";
+ }
+ container pure-ethernet-structure-historical-performances {
+ config false;
+ uses pure-ethernet-structure-historical-performances;
+ description
+ "none";
+ }
+ description
+ "The pureEthernetStructure_Pac and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting Ethernet traffic only.";
+ }
+
+ grouping pure-ethernet-structure-capability {
+ leaf-list supported-alarm-list {
+ type string;
+ default "Supported alarms not yet defined.";
+ config false;
+ description
+ "Available alarms to be listed. Mandatory:none. Names are to be separated by commas. Further alarms might be added by the vendor.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Collection and aggregation of performance values is available.";
+ }
+ description
+ "Describes the logical structuring of the physical capacity provided by a pure Ethernet microwave device. Segmentation is not available. No fixed segment size. No TDM transport.";
+ }
+
+ grouping pure-ethernet-structure-configuration {
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of the type of problem to be configured.";
+ }
+ list g-826-threshold-cross-alarm-list {
+ key "g-826-value-kind granularity-period";
+ uses g-826-threshold-cross-alarm-type;
+ description
+ "List of G826 related threshold cross alarms to be configured.";
+ }
+ leaf clearing-threshold-cross-alarms-is-on {
+ type boolean;
+ default "false";
+ description
+ "Setting this bit is clearing all the currently active threshold cross alarms.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Enables measurement, collection, storage and access to performance data.";
+ }
+ description
+ "none";
+ }
+
+ grouping pure-ethernet-structure-status {
+ list segment-status-list {
+ key "segment-status-type-id";
+ config false;
+ min-elements 1;
+ uses segment-status-type;
+ description
+ "Status of the Ethernet transport segment. Always just one segment.";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Performance values are currently collected and aggregated.";
+ }
+ description
+ "none";
+ }
+
+ grouping pure-ethernet-structure-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses structure-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ grouping pure-ethernet-structure-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses structure-current-performance-type;
+ description
+ "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.";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "Aggregated performance information of the structure of an pure Ethernet microwave at a particular moment.";
+ }
+
+ grouping pure-ethernet-structure-historical-performances {
+ list historical-performance-data-list {
+ key "granularity-period period-end-time";
+ config false;
+ uses structure-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "Aggregated performance information of the structure of an pure Ethernet microwave for a pre-defined measurement interval.";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef g-826-type {
+ type identityref {
+ base G_826_TYPE;
+ }
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity G_826_TYPE {
+ description
+ "none";
+ }
+
+ identity G_826_TYPE_ES {
+ base G_826_TYPE;
+ description
+ "Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::es .";
+ }
+
+ identity G_826_TYPE_SES {
+ base G_826_TYPE;
+ description
+ "Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::ses .";
+ }
+
+ identity G_826_TYPE_CSES {
+ base G_826_TYPE;
+ description
+ "Consecutive Severely Errored Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::cses .";
+ }
+
+ identity G_826_TYPE_UAS {
+ base G_826_TYPE;
+ description
+ "Unavailable Seconds. Threshold cross alarm will relate to TypeDefinitions::AirInterfacePerformanceType::unavailability.";
+ }
+
+ identity G_826_TYPE_NOT_SPECIFIED {
+ base G_826_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE {
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE_ENABLED {
+ base OPERATIONAL_STATE_TYPE;
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE_DISABLED {
+ base OPERATIONAL_STATE_TYPE;
+ description
+ "none";
+ }
+
+ identity OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED {
+ base OPERATIONAL_STATE_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ typedef operational-state-type {
+ type identityref {
+ base OPERATIONAL_STATE_TYPE;
+ }
+ description
+ "The list of valid operational states for the connection.";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping g-826-threshold-cross-alarm-type {
+ leaf g-826-value-kind {
+ type g-826-type;
+ description
+ "Kind of performance value that shall be equipped with a threshold alarm.";
+ }
+ leaf alarm-raising-threshold {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Number of events required for raising the threshold cross alarm.";
+ }
+ leaf alarm-clearing-threshold {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Number of events required for clearing the threshold cross alarm.";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ description
+ "Period of the performance data collection.";
+ }
+ description
+ "Allows defining a threshold cross alarm.\n";
+ }
+
+ grouping segment-status-type {
+ leaf segment-status-type-id {
+ type int16;
+ config false;
+ description
+ "none";
+ }
+ leaf operational-status {
+ type operational-state-type;
+ default "OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Current operational status of each segment.";
+ }
+ description
+ "none";
+ }
+
+ grouping structure-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to Structure::StructureCapability::supportedAlarms";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+
+ grouping structure-performance-type {
+ leaf time-period {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Total length of the measurement period in seconds.";
+ }
+ leaf es {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf cses {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of consecutive severely errored seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf unavailability {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Total time of unavailability in seconds. 1+0: Same value as for single air interface. 1+1 and Diversity: Value representing the combined signals.";
+ }
+ leaf rx-level-min {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Minimum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-max {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Maximum receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ leaf rx-level-avg {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Averaged receive level. 1+0: Same value as for single air interface. 1+1: Value representing the combined signals. Diversity: To be left on default value.";
+ }
+ description
+ "Consolidated performance information of the Structure.";
+ }
+
+ grouping structure-current-performance-type {
+ container performance-data {
+ config false;
+ uses structure-performance-type;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+
+ grouping structure-historical-performance-type {
+ container performance-data {
+ config false;
+ uses structure-performance-type;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/qos-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/qos-profile-1-0.yang
new file mode 100644
index 000000000..7dd05d092
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/qos-profile-1-0.yang
@@ -0,0 +1,534 @@
+module qos-profile-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:qos-profile-1-0";
+ prefix qos-profile;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: QosProfile@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-24 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/qosProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/qosProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-12 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/qosProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/qosProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity PROFILE_NAME_TYPE_QOS_PROFILE {
+ base core-model:PROFILE_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+ when "derived-from-or-self(./core-model:profile-name, 'qos-profile:PROFILE_NAME_TYPE_QOS_PROFILE')";
+ uses qos-profile-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping qos-profile-spec {
+ container qos-profile-pac {
+ uses qos-profile-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping qos-profile-pac {
+ container qos-profile-capability {
+ config false;
+ uses qos-profile-capability;
+ description
+ "none";
+ }
+ container qos-profile-configuration {
+ config false;
+ uses qos-profile-configuration;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping qos-profile-capability {
+ leaf profile-naming-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = There is a free text field available for naming the profile.";
+ }
+ leaf-list available-queue-list {
+ type queue-name-type;
+ config false;
+ min-elements 1;
+ max-elements 8;
+ description
+ "List of queues, which are available at the physical interface.";
+ }
+ leaf drop-precedence-at-be-queue-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Configuration of the drop precedence is available at the best effort queue.";
+ }
+ leaf drop-precedence-at-af-queues-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Configuration of the drop precedence is available at the assured forwarding queues.";
+ }
+ leaf drop-precedence-at-prio-queues-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Configuration of the drop precedence is available at the priority queues.";
+ }
+ leaf available-qos-profile-kind-list {
+ type qos-profile-kind-type;
+ default "QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "List of header information that are supported to be base of the QoS definition.";
+ }
+ description
+ "none";
+ }
+
+ grouping qos-profile-configuration {
+ leaf profile-name {
+ type string;
+ default "Name of profile not yet defined.";
+ description
+ "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf qos-profile-kind {
+ type qos-profile-kind-type;
+ default "QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "Defines whether the sorting into queues is done based on VLAN, MPLS or IP header information.";
+ }
+ list ingress-8021p-to-per-hop-behavior-mapping-list {
+ key "queue-name drop-precedence-inside-queue";
+ min-elements 8;
+ max-elements 8;
+ uses per-hop-behavior-type;
+ description
+ "Only relevant when qosProfileKind == IEEE8021P. Associates the value of the three p-bits of the VLAN header with a per hop behavior at the physical interface. First entry in the list [0] relates to p-bit value '0'. Last entry in the list [7] relates to p-bit value '7'.";
+ }
+ list ingress-exp-to-per-hop-behavior-mapping-list {
+ key "queue-name drop-precedence-inside-queue";
+ min-elements 8;
+ max-elements 8;
+ uses per-hop-behavior-type;
+ description
+ "Only relevant when qosProfileKind == MPLS_EXP. Associates the value of the three p-bits of the MPLS header with a per hop behavior at the physical interface. First entry in the list [0] relates to p-bit value '0'. Last entry in the list [7] relates to p-bit value '7'.";
+ }
+ list ingress-ip-dscp-to-per-hop-behavior-mapping-list {
+ key "queue-name drop-precedence-inside-queue";
+ min-elements 64;
+ max-elements 64;
+ uses per-hop-behavior-type;
+ description
+ "Only relevant when qosProfileKind == IP_DSCP. Associates the value of the 8 dscp bits of the IP header with a per hop behavior at the physical interface. First entry in the list [0] relates to dscp value '0'. Last entry in the list [63] relates to dscp value '63'.";
+ }
+ leaf writing-per-hop-behavior-into-8021p-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Original content of 802.1p bits is overwritten with local per hop behavior.";
+ }
+ list egress-per-hop-behavior-to-8021p-mapping-list {
+ key "mapping-number";
+ max-elements 24;
+ uses egress-per-hop-behavior-to-priority-bits-mapping-type;
+ description
+ "Only relevant if (writingPerHopBehaviorInto8021pIsOn==1). Translates (queue and drop precedence) into values of the three p-bits of the VLAN header.";
+ }
+ leaf writing-per-hop-behavior-into-mpls-exp-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Original content of MPLS EXP bits is overwritten with local per hop behavior.";
+ }
+ list egress-per-hop-behavior-to-mpls-exp-mapping-list {
+ key "mapping-number";
+ max-elements 24;
+ uses egress-per-hop-behavior-to-priority-bits-mapping-type;
+ description
+ "Only relevant if (writingPerHopBehaviorIntoMplsExpIsOn==1). Translates (queue and drop precedence) into values of the three p-bits of the MPLS header.";
+ }
+ leaf writing-per-hop-behavior-into-ip-dscp-is-on {
+ type boolean;
+ default "false";
+ description
+ "1 = Original content of IP DSCP bits is overwritten with local per hop behavior.";
+ }
+ list egress-per-hop-behavior-to-ip-dscp-mapping-list {
+ key "mapping-number";
+ max-elements 24;
+ uses egress-per-hop-behavior-to-priority-bits-mapping-type;
+ description
+ "Only relevant if (writingPerHopBehaviorIntoIpDscpIsOn==1). Translates (queue and drop precedence) into values of the six dscp bits of the IP header.";
+ }
+ description
+ "Defines the profile that will be used for mapping between header information and queues (next hop behavior).";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef qos-profile-kind-type {
+ type identityref {
+ base QOS_PROFILE_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef queue-name-type {
+ type identityref {
+ base QUEUE_NAME_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef drop-precedence-type {
+ type identityref {
+ base DROP_PRECEDENCE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON-ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity QOS_PROFILE_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity QOS_PROFILE_KIND_TYPE_NONE {
+ base QOS_PROFILE_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity QOS_PROFILE_KIND_TYPE_IEEE8021P {
+ base QOS_PROFILE_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity QOS_PROFILE_KIND_TYPE_MPLS_EXP {
+ base QOS_PROFILE_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity QOS_PROFILE_KIND_TYPE_IP_DSCP {
+ base QOS_PROFILE_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED {
+ base QOS_PROFILE_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity QUEUE_NAME_TYPE {
+ description
+ "none";
+ }
+
+ identity QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 0.";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1 {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 1.";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2 {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 2.";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3 {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 3.";
+ }
+
+ identity QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4 {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 4.";
+ }
+
+ identity QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 5.";
+ }
+
+ identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6 {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 6.";
+ }
+
+ identity QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7 {
+ base QUEUE_NAME_TYPE;
+ description
+ "Queue 7.";
+ }
+
+ identity QUEUE_NAME_TYPE_NOT_YET_DEFINED {
+ base QUEUE_NAME_TYPE;
+ description
+ "none";
+ }
+
+ identity DROP_PRECEDENCE_TYPE {
+ description
+ "none";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_NONE {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "none";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_LOW {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "Would be equal to GREEN.";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_MEDIUM {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "Would be equal to YELLOW.";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_HIGH {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "Would be equal to RED.";
+ }
+
+ identity DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED {
+ base DROP_PRECEDENCE_TYPE;
+ description
+ "none";
+ }
+
+ grouping per-hop-behavior-type {
+ leaf queue-name {
+ type queue-name-type;
+ description
+ "Name of the queue.";
+ }
+ leaf drop-precedence-inside-queue {
+ type drop-precedence-type;
+ description
+ "(if dropPrecedenceAt*QueueIsAvail for the referenced queue == 0) default value shall be kept and configuration attempts shall be ignored.";
+ }
+ description
+ "none";
+ }
+
+ grouping egress-per-hop-behavior-to-priority-bits-mapping-type {
+ leaf mapping-number {
+ type int16;
+ description
+ "none";
+ }
+ container per-hop-behavior {
+ uses per-hop-behavior-type;
+ description
+ "Per hop behavior, which is to be translated into a p-bit entry in the VLAN, MPLS or IP header.";
+ }
+ leaf value-of-priority-bits {
+ type int8;
+ default "-1";
+ description
+ "Associated value of the three, three or six p-bits of the VLAN, MPLS or IP header.";
+ }
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/tdm-container-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/tdm-container-2-0.yang
new file mode 100644
index 000000000..efe06378d
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/tdm-container-2-0.yang
@@ -0,0 +1,899 @@
+module tdm-container-2-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:tdm-container-2-0";
+ prefix tdm-container;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: TdmContainer@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "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).
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-23 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-11-23 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-05 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/tdmContainer/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/tdmContainer/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'tdm-container:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER')";
+ uses tdm-container-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "none";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int64;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to problemKindSeverity";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised.";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping tdm-container-lp-spec {
+ container tdm-container-pac {
+ uses tdm-container-pac;
+ description
+ "none";
+ }
+ description
+ "The TdmContainerLpSpec and its attached classes MUST be provided on management interfaces of microwave devices, which are transporting TDM traffic.";
+ }
+
+ grouping tdm-container-pac {
+ container tdm-container-capability {
+ config false;
+ uses tdm-container-capability;
+ description
+ "none";
+ }
+ container tdm-container-configuration {
+ uses tdm-container-configuration;
+ description
+ "none";
+ }
+ container tdm-container-status {
+ config false;
+ uses tdm-container-status;
+ description
+ "none";
+ }
+ container tdm-container-current-problems {
+ config false;
+ uses tdm-container-current-problems;
+ description
+ "none";
+ }
+ container tdm-container-current-performance {
+ config false;
+ uses tdm-container-current-performance;
+ description
+ "none";
+ }
+ container tdm-container-historical-performances {
+ config false;
+ uses tdm-container-historical-performances;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping tdm-container-capability {
+ list supported-tdm-container-kind-list {
+ key "tdm-container-name";
+ config false;
+ min-elements 1;
+ uses tdm-container-kind;
+ description
+ "Lists the TDM containers that are supported.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 3;
+ description
+ "List of supported kinds of looping back.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 2;
+ description
+ "Available alarms to be listed. Mandatory:'framingIsFaulty' and 'containerIsDown'. Further alarms might be added by the vendor.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Collection and aggregation of performance values is available.";
+ }
+ description
+ "none";
+ }
+
+ grouping tdm-container-configuration {
+ leaf interface-name {
+ type string;
+ default "Interface name not yet defined.";
+ description
+ "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf interface-is-on {
+ type boolean;
+ default "false";
+ description
+ "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).";
+ }
+ leaf tdm-container-kind {
+ type leafref {
+ 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";
+ require-instance false;
+ }
+ 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()])';
+ description
+ "Type of TDM container.";
+ }
+ leaf segment-number {
+ type int16;
+ default "-1";
+ description
+ "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.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ description
+ "Maintenance Feature. Configuration of a loop back of TDM time slots on this interface.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ min-elements 2;
+ uses problem-kind-severity-type;
+ description
+ "Severity of the problem to be configured.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Enables measurement, collection, storage and access to performance data.";
+ }
+ description
+ "none";
+ }
+
+ grouping tdm-container-status {
+ leaf interface-status {
+ type interface-status-type;
+ default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the interface.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "The currently active (not just configured) type of loop back.";
+ }
+ leaf statistics-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Statistics are currently collected and aggregated.";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Performance values are currently collected and aggregated.";
+ }
+ description
+ "none";
+ }
+
+ grouping tdm-container-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses container-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ grouping tdm-container-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses container-current-performance-type;
+ description
+ "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.";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "Aggregated performance information of the TDM container at a particular moment.";
+ }
+
+ grouping tdm-container-historical-performances {
+ list historical-performance-data-list {
+ key "granularity-period period-end-time";
+ config false;
+ uses container-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "Aggregated performance information of the TDM container for a pre-defined measurement interval.";
+ }
+
+ grouping tdm-container-kind {
+ leaf tdm-container-name {
+ type string;
+ config false;
+ description
+ "Names to be chosen from the following list: 'e1','t1','j1','e3','t3','stm1','cpri1','cpri2','cpri3','cpri4','cpri5','cpri6' or 'cpri7'";
+ }
+ leaf tdm-container-size {
+ type int32;
+ units "kbit/s";
+ default "-1";
+ config false;
+ description
+ "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;";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef loop-back-type {
+ type identityref {
+ base LOOP_BACK_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef container-performance-type {
+ type string;
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity LOOP_BACK_TYPE {
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_NONE {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the TDM time slots of the local site on the outgoing interface back to the local site.";
+ }
+
+ identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the incoming TDM time slots back to the remote site.";
+ }
+
+ identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_TESTING {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UNKNOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DORMANT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ typedef interface-status-type {
+ type identityref {
+ base INTERFACE_STATUS_TYPE;
+ }
+ description
+ "Current Interface Status";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping container-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to Container::ContainerCapability::supportedAlarms";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+
+ grouping container-current-performance-type {
+ leaf performance-data {
+ type container-performance-type;
+ config false;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+
+ grouping container-historical-performance-type {
+ leaf performance-data {
+ type container-performance-type;
+ config false;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fc-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fc-1-0.yang
new file mode 100644
index 000000000..5b6cf7b31
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fc-1-0.yang
@@ -0,0 +1,523 @@
+module vlan-fc-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:vlan-fc-1-0";
+ prefix vlan-fc;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: VlanFc@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific Forwarding Construct for VLANs according to IEEE 802.1Q-2018.
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-08-26 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany
+ Please view https://github.com/openBackhaul/vlanFc/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/vlanFc/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-08-19 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/vlanFc/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:forwarding-domain/core-model:fc" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-fc:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";
+ uses vlan-fc-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:fc/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to *Capability::supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to VlanFc::VlanFcConfiguration::problemSeverityList";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fc-spec {
+ container vlan-fc-pac {
+ uses vlan-fc-pac;
+ description
+ "none";
+ }
+ description
+ "Represents the VLAN, which is configured on the C-VLAN or S-VLAN Component. Name in ieee802-dot1q-bridge.yang: vlan.";
+ }
+
+ grouping vlan-fc-pac {
+ container vlan-fc-capability {
+ config false;
+ uses vlan-fc-capability;
+ description
+ "none";
+ }
+ container vlan-fc-configuration {
+ uses vlan-fc-configuration;
+ description
+ "none";
+ }
+ container vlan-fc-current-problems {
+ config false;
+ uses vlan-fc-current-problems;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fc-capability {
+ leaf-list supported-sub-layer-protocol-name-list {
+ type sub-layer-protocol-name-type;
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Lists the supported kinds of Components (implicitly defines the Ethertypes of the VLAN headers, which can be forwarded).";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Manual switching on and off of the forwarding construct without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ default "Supported Alarms not yet defined.";
+ config false;
+ description
+ "Available alarms to be listed.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fc-configuration {
+ leaf fc-name {
+ type string;
+ default "Interface name not yet defined.";
+ description
+ "Description of the VLAN, could be a name, could be a number. Free text of up to 32 letters to be filled by the operator. Name in ieee802-dot1q-bridge.yang: name.";
+ }
+ leaf fc-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (adminShutDownIsAvail==true). true = Activation of the forwarding of frames with this VLAN ID. false = De-activation of the ForwardingConstruct without deleting it (underlying OSI network layers are not affected).";
+ }
+ leaf sub-layer-protocol-name {
+ type sub-layer-protocol-name-type;
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+ description
+ "Type of VLAN (e.g. C-VLAN, S-VLAN), respectively Ethertype, which is forwarded.";
+ }
+ leaf vlan-id {
+ type int64;
+ default "-1";
+ description
+ "The VLAN ID, which identifies the frames to be forwarded. Range '1..4094 | 4096..4294967295'. Name in ieee802-dot1q-bridge.yang: vid.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of the problem to be configured.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fc-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses vlan-fc-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef sub-layer-protocol-name-type {
+ type identityref {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ }
+ description
+ "Represents the type of Component. Name in ieee802-dot1q-bridge.yang: type-of-component.";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE {
+ description
+ "none";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "Base identity for a C-VLAN component. Name in ieee802-dot1q-bridge.yang: c-vlan-component.";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "Base identity for a S-VLAN component. Name in ieee802-dot1q-bridge.yang: s-vlan-component.";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "Base identity for a VLAN unaware component. Name in ieee802-dot1q-bridge.yang: d-bridge-component.";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "Base identity for an EVB station ER component. Name in ieee802-dot1q-bridge.yang: edge-relay-component. ";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fc-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to VlanFc::VlanFcCapability::supportedAlarmList.";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fd-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fd-1-0.yang
new file mode 100644
index 000000000..b3d67eef9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-fd-1-0.yang
@@ -0,0 +1,836 @@
+module vlan-fd-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:vlan-fd-1-0";
+ prefix vlan-fd;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+ import vlan-interface-1-0 {
+ prefix vlan-interface;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: VlanFd@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific Forwarding Domain for VLAN Components according to IEEE 802.1Q-2018.
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-08-26 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/vlanFd/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-08-19 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/vlanFd/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/vlanFd/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:forwarding-domain" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-interface:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";
+ uses vlan-fd-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "To be sent when an attribute has changed and one or more controllers have to update their data.";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:forwarding-domain/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to *Capability::supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to *Configuration::problemSeverityList";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fd-spec {
+ container vlan-fd-pac {
+ uses vlan-fd-pac;
+ description
+ "none";
+ }
+ description
+ "The set of components associated with a given Bridge. For example, - A TPMR is associated with a single VLAN unaware component. - A Customer VLAN Bridge is associated with a single VLAN aware component. - A Provider Bridge is associated with a single S-VLAN component and zero or more C-VLAN components. Name in ieee802-dot1q-bridge.yang: component.";
+ }
+
+ grouping vlan-fd-pac {
+ container vlan-fd-capability {
+ config false;
+ uses vlan-fd-capability;
+ description
+ "none";
+ }
+ container vlan-fd-configuration {
+ uses vlan-fd-configuration;
+ description
+ "none";
+ }
+ container vlan-fd-status {
+ config false;
+ uses vlan-fd-status;
+ description
+ "none";
+ }
+ container vlan-fd-current-problems {
+ config false;
+ uses vlan-fd-current-problems;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fd-capability {
+ leaf-list supported-sub-layer-protocol-name-list {
+ type sub-layer-protocol-name-type;
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Lists the supported kinds of Components. ";
+ }
+ leaf component-id {
+ type int32;
+ config false;
+ description
+ "Unique identifier for a particular Bridge component within the system. Name in ieee802-dot1q-bridge.yang: id.";
+ }
+ leaf extended-filtering-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Component can perform filtering on individual multicast addresses controlled by MMRP (Multiple MAC Registration Protocol). Name in ieee802-dot1q-bridge.yang: extended-filtering.";
+ }
+ leaf traffic-classes-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Component can map the Priority values into multiple traffic classes (there is more than one traffic class at the device). Name in ieee802-dot1q-bridge.yang: traffic-classes.";
+ }
+ leaf static-entries-on-individual-ports-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Static entries per port are available. Name in ieee802-dot1q-bridge.yang: static-entry-individual-port.";
+ }
+ leaf independent-vlan-learning-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Component supports Independent VLAN Learning (IVL). Name in ieee802-dot1q-bridge.yang: ivl-capable.";
+ }
+ leaf shared-vlan-learning-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Component supports Shared VLAN Learning (SVL). Name in ieee802-dot1q-bridge.yang: svl-capable.";
+ }
+ leaf hybrid-vlan-learning-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Component supports both Independent and Shared VLAN Learning simultaneously. Name in ieee802-dot1q-bridge.yang: hybrid-capable.";
+ }
+ leaf configurable-port-vlan-id-tagging-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Component supports setting the egress status (VLAN-tagged or Untagged) on each port. Name in ieee802-dot1q-bridge.yang: configurable-pvid-tagging.";
+ }
+ leaf multiple-local-bridges-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Can support multiple local Bridges, outside the scope of 802.1Q defined VLANs. Name in ieee802-dot1q-bridge.yang: local-vlan-capable.";
+ }
+ leaf supported-version {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "The version number supported. Name in ieee802-dot1q-bridge.yang: version.";
+ }
+ leaf maximum-number-of-vlan-ids {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "The maximum number of VLAN IDs supported. Name in ieee802-dot1q-bridge.yang: max-vids.";
+ }
+ leaf overriding-default-port-vlan-id-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Component supports overridding the default PVID on each port. Name in ieee802-dot1q-bridge.yang: override-default-pvid.";
+ }
+ leaf protocol-frame-format {
+ type protocol-frame-format-type;
+ config false;
+ description
+ "Only effective if (portAndProtocolBasedVlanIsAvail==true). The data-link encapsulation format or the detagged_frame_type in a Protocol Template. Name in ieee802-dot1q-bridge.yang: protocol-template.";
+ }
+ leaf maximum-number-of-msti {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Maximum number of Multiple Spanning Tree Instances (MSTIs) supported within an MST region (i.e., the number of spanning tree instances that can be supported in addition to the CIST), for MST Bridges. For SST Bridges, this parameter may be either omitted or reported as 0. Name in ieee802-dot1q-bridge.yang: max-msti.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Manual switching on and off of the forwarding domain without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ default "Supported Alarms Not Yet Defined";
+ config false;
+ description
+ "Available alarms to be listed.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fd-configuration {
+ leaf fd-name {
+ type string;
+ default "Forwarding Domain name not yet defined.";
+ description
+ "The name of the Component. Free text field to be filled by the operator. Name in ieee802-dot1q-bridge.yang: name.";
+ }
+ leaf fd-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (adminShutDownIsAvail==true). true = Activation of the Component. false = De-activation of the forwarding domain without deleting it (underlying OSI network layers are not affected).";
+ }
+ leaf sub-layer-protocol-name {
+ type sub-layer-protocol-name-type;
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+ description
+ "The type of Component used to classify a particular Bridge component within a Bridge system comprising multiple components. Name in ieee802-dot1q-bridge.yang: type.\n";
+ }
+ leaf mac-address {
+ type string;
+ default "00:00:00:00:00:00";
+ description
+ "Unique EUI-48 Universally Administered MAC address configured on a Bridge Component. Name in ieee802-dot1q-bridge.yang: address.";
+ }
+ leaf traffic-classes-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (trafficClassesIsAvail==true). true = Traffic Classes are enabled on this Bridge Component. false = Bridge Component operates with a single priority level for all traffic. Name in ieee802-dot1q-bridge.yang: traffic-class-enabled.";
+ }
+ list protocol-group-list {
+ key "db-index";
+ uses protocol-group-type;
+ description
+ "Only effective if (portAndProtocolBasedVlanIsAvail==true). List of the protocol group database entries. Name in ieee802-dot1q-bridge.yang: protocol-group-database.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of each entry of the SupportedAlarmList to be configured.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fd-status {
+ leaf mac-address-cur {
+ type string;
+ default "00:00:00:00:00:00";
+ config false;
+ description
+ "Unique EUI-48 Universally Administered MAC address assigned to a Bridge Component. Name in ieee802-dot1q-bridge.yang: address.";
+ }
+ leaf number-of-ports-cur {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of Bridge Ports associated with the Bridge Component. Values between 1 and 4095. Name in ieee802-dot1q-bridge.yang: ports.";
+ }
+ leaf number-of-static-vlan-registrations-cur {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "The number of Static VLAN Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-vlan-registration-entries.";
+ }
+ leaf number-of-dynamic-vlan-registrations-cur {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "The number of Dynamic VLAN Registration entries currently in the FDB. Name in ieee802-dot1q-bridge.yang: static-vlan-registration-entries.";
+ }
+ leaf fd-status {
+ type fd-status-type;
+ default "FD_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the forwarding domain.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fd-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses vlan-fd-current-problem-type;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef sub-layer-protocol-name-type {
+ type identityref {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ }
+ description
+ "Represents the type of Component. Name in ieee802-dot1q-bridge.yang: type-of-component.";
+ }
+
+ typedef protocol-frame-format-type {
+ type identityref {
+ base PROTOCOL_FRAME_FORMAT_TYPE;
+ }
+ description
+ "A value representing the frame format to be matched. Name in ieee802-dot1q-bridge.yang: protocol-frame-format-type.";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE {
+ description
+ "none";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "c-vlan-component. Base identity for a C-VLAN component. Name in ieee802-dot1q-bridge.yang: c-vlan-component.";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "s-vlan-component. Base identity for a S-VLAN component. Name in ieee802-dot1q-bridge.yang: s-vlan-component.";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "d-bridge-component. Base identity for a VLAN unaware component. Name in ieee802-dot1q-bridge.yang: d-bridge-component.";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "edge-relay-component. Base identity for an EVB station ER component. Name in ieee802-dot1q-bridge.yang: edge-relay-component. ";
+ }
+
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ identity PROTOCOL_FRAME_FORMAT_TYPE {
+ description
+ "none";
+ }
+
+ identity PROTOCOL_FRAME_FORMAT_TYPE_ETHERNET {
+ base PROTOCOL_FRAME_FORMAT_TYPE;
+ description
+ "Ethernet frame format. Name in ieee802-dot1q-bridge.yang: Ethernet.";
+ }
+
+ identity PROTOCOL_FRAME_FORMAT_TYPE_RFC1042 {
+ base PROTOCOL_FRAME_FORMAT_TYPE;
+ description
+ "RFC 1042 frame format. Name in ieee802-dot1q-bridge.yang: rfc1042.";
+ }
+
+ identity PROTOCOL_FRAME_FORMAT_TYPE_SNAP8021H_ {
+ base PROTOCOL_FRAME_FORMAT_TYPE;
+ description
+ "SNAP 802.1H frame format. Name in ieee802-dot1q-bridge.yang: snap8021H.";
+ }
+
+ identity PROTOCOL_FRAME_FORMAT_TYPE_SNAP_OTHER {
+ base PROTOCOL_FRAME_FORMAT_TYPE;
+ description
+ "Other SNAP frame format. Name in ieee802-dot1q-bridge.yang: snapOther.";
+ }
+
+ identity PROTOCOL_FRAME_FORMAT_TYPE_LLC_OTHER {
+ base PROTOCOL_FRAME_FORMAT_TYPE;
+ description
+ "Other LLC frame format. Name in ieee802-dot1q-bridge.yang: llcOther.";
+ }
+
+ identity PROTOCOL_FRAME_FORMAT_TYPE_NOT_YET_DEFINED {
+ base PROTOCOL_FRAME_FORMAT_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity FD_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity FD_STATUS_TYPE_UP {
+ base FD_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity FD_STATUS_TYPE_DOWN {
+ base FD_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity FD_STATUS_TYPE_TESTING {
+ base FD_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity FD_STATUS_TYPE_UNKNOWN {
+ base FD_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity FD_STATUS_TYPE_DORMANT {
+ base FD_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity FD_STATUS_TYPE_NOT_PRESENT {
+ base FD_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity FD_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base FD_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity FD_STATUS_TYPE_ADMIN_DOWN {
+ base FD_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity FD_STATUS_TYPE_NOT_YET_DEFINED {
+ base FD_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef fd-status-type {
+ type identityref {
+ base FD_STATUS_TYPE;
+ }
+ description
+ "Current Status of the Forwarding Domain";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping protocol-group-type {
+ leaf db-index {
+ type uint16;
+ description
+ "The protocol group database index. Name in ieee802-dot1q-bridge.yang: db-index.";
+ }
+ leaf protocol-group-id {
+ type int32;
+ default "-1";
+ description
+ "Designates a group of protocols in the Protocol Group Database. Name in ieee802-dot1q-bridge.yang: group-id.";
+ }
+ leaf protocol-frame-format {
+ type protocol-frame-format-type;
+ default "PROTOCOL_FRAME_FORMAT_TYPE_NOT_YET_DEFINED";
+ description
+ "The data-link encapsulation format or the detagged_frame_type in a Protocol Template. Name in ieee802-dot1q-bridge.yang: frame-format-type.";
+ }
+ leaf ethertype {
+ type string;
+ default "Ethertype not yet defined.";
+ description
+ "ethertype. Only relevant if (protocolFrameFormat==ETHERNET) OR (protocolFrameFormat==RFC1042) OR (protocolFrameFormat==SNAP8021H). Format containing the 16-bit IEEE 802 EtherType field. The EtherType value represented in the canonical order defined by IEEE 802. The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}'. Name in ieee802-dot1q-bridge.yang: ethertype.";
+ }
+ leaf protocol-id {
+ type string;
+ default "Protocol ID not yet defined.";
+ description
+ "Only effective if (protocolFrameFormat==SNAP_OTHER). Format containing the 40-bit protocol identifier (PID). The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){4}'. Name in ieee802-dot1q-bridge.yang: protocol-id.";
+ }
+ leaf-list llc-address {
+ type string;
+ default "LLC Address not yet defined.";
+ description
+ "Only effective if (protocolFrameFormat==LLC_OTHER). A pair of ISO/IEC 8802-2 DSAP and SSAP address field values, for matching frame formats of LLC_Other. The canonical representation is using uppercase characters. Pattern '[0-9a-fA-F]{2}-[0-9a-fA-F]{2}'. Name in ieee802-dot1q-bridge.yang: llc-address.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-fd-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-interface-1-0.yang
new file mode 100644
index 000000000..67221096b
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/vlan-interface-1-0.yang
@@ -0,0 +1,1495 @@
+module vlan-interface-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:vlan-interface-1-0";
+ prefix vlan-interface;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: VlanInterface@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific interface definition for VLAN interfaces according to IEEE 802.1Q-2018.
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-07-31 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/vlaninterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/vlaninterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol"{
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'vlan-interface:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER')";
+ uses vlan-interface-lp-spec;
+ description
+ "none";
+ }
+
+
+ /****************************************
+ * package notifications
+ **************************************/
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "none";
+ }
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to *Capability::supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to *Configuration::problemSeverityList";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping vlan-interface-lp-spec {
+ container vlan-interface-pac {
+ uses vlan-interface-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-pac {
+ container vlan-interface-capability {
+ config false;
+ uses vlan-interface-capability;
+ description
+ "none";
+ }
+ container vlan-interface-configuration {
+ uses vlan-interface-configuration;
+ description
+ "none";
+ }
+ container vlan-interface-status {
+ config false;
+ uses vlan-interface-status;
+ description
+ "none";
+ }
+ container vlan-interface-current-problems {
+ config false;
+ uses vlan-interface-current-problems;
+ description
+ "none";
+ }
+ container vlan-interface-current-performance {
+ config false;
+ uses vlan-interface-current-performance;
+ description
+ "none";
+ }
+ container vlan-interface-historical-performances {
+ config false;
+ uses vlan-interface-historical-performances;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-capability {
+ leaf-list supported-sub-layer-protocol-name-list {
+ type sub-layer-protocol-name-type;
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Lists the supported kinds of components. ";
+ }
+ leaf-list supported-interface-kind-list {
+ type interface-kind-type;
+ default "INTERFACE_KIND_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "type-capabilties.";
+ }
+ leaf tagging-and-mvrp-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "capabilities::tagging. true = Interface supports tagging of frames and MVRP. ";
+ }
+ leaf configuring-ingress-tag-filtering-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "capabilities::tagging. true = Configuring ingressTagFiltering is available.";
+ }
+ leaf ingress-vlan-id-filtering-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "capabilities::ingress-filtering. true = Discarding ingress frames that are tagged with a VLAN ID, which is unknown to the interface, is available at the interface. false = Filtering happens only at the egress.";
+ }
+ leaf-list available-pcp-bits-interpretation-kind-list {
+ type pcp-bits-interpretation-kind-type;
+ default "PCP_BITS_INTERPRETATION_KIND_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "List of the available ways of translating the PCP bits of the ingress frames into Priority values.";
+ }
+ leaf configuring-pcp-bits-decoding-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "false = PCP-bits are decoded according to table 3 in chapter 6.9.3 of IEEE Std 802.1Q-2018; true = Device supports flexibly configuring the translation of PCP-bits values to Priority values and drop eligibility.";
+ }
+ leaf configuring-pcp-bits-encoding-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "false = PCP-bits are encoded according to table 2 in chapter 6.9.3 of IEEE Std 802.1Q-2018; true = Device supports flexibly configuring the translation of Priority values and drop eligibility to PCP-bits values.";
+ }
+ leaf drop-eligible-indicator-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Decoding and encoding of the Drop Eligible Indicator (DEI) bit of the VLAN header is supported by the device.";
+ }
+ leaf number-of-available-priorities {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of Priority values, which are supported at the device (usually 8 (0-7)).";
+ }
+ leaf received-priority-overwriting-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Device supports overwriting the Received Priority of the ingress frames with Regenerated Priority values.";
+ }
+ leaf vlan-id-translation-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Translation of VLAN IDs is available at this interface.";
+ }
+ leaf egress-vlan-id-translation-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Separate translation table for VLAN IDs of egress frames is available.";
+ }
+ leaf port-and-protocol-based-vlan-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "protocol-based-vlan-classification. true = Restricting forwarding of frames of specific VLANs on specific protocols at this interface is available. Name in ieee802-dot1q-bridge.yang: protocol-based-vlan-classification.";
+ }
+ leaf max-number-of-protocol-vlan-id-groupings {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "max-vid-set-entries. Only meaningful if (portAndProtocolBasedVlanIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). Maximum number of entries supported in the forwardedProtocolVidGroupingList at this interface. Name in ieee802-dot1q-bridge.yang: max-vid-set-entries.";
+ }
+ leaf service-access-priority-tagging-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Adding a priority S-VLAN tag (no VID value) is available on this C_VLAN_BRIDGE_PORT.";
+ }
+ leaf configuring-service-access-priority-mapping-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Freely configuring of the mapping of Priority values to the PCP-bits values of the amended priority S-VLAN tag (no VID value) is available on this C_VLAN_BRIDGE_PORT.";
+ }
+ leaf number-of-available-traffic-classes {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of Traffic Classes (queues), which are supported at the device (usually 8).";
+ }
+ leaf restricted-automated-vlan-registration-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "false = The automated registration and modification of VLANs by the Multiple Registration Protocol (MRP) can not be restricted to those VIDs that already had a static entry.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "false = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "List of supported kinds of looping back.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "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').";
+ }
+ leaf statistics-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Statistics collection and aggregation is supported on this interface.";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ default "Supported Alarms Not Yet Defined";
+ config false;
+ description
+ "Available alarms to be listed. Mandatory: 'VlanInterfaceDown' and 'MtuMissmatch'. Further alarms might be added by the device vendors.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Collection and aggregation of performance values is available.";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-configuration {
+ leaf interface-name {
+ type string;
+ default "Interface name not yet defined.";
+ description
+ "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf interface-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (adminShutDownIsAvail==true). true = Activation of the interface. false = De-activation of the interface without deleting it (underlying OSI network layers are not affected).";
+ }
+ leaf sub-layer-protocol-name {
+ type sub-layer-protocol-name-type;
+ default "SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED";
+ description
+ "component-name. Used to reference configured component kind. Name in ieee802-dot1q-bridge.yang: component-name.";
+ }
+ leaf interface-kind {
+ type interface-kind-type;
+ default "INTERFACE_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "port-type. Indicates the capabilities of this port. Name in ieee802-dot1q-bridge.yang: port-type.";
+ }
+ leaf default-vlan-id {
+ type int64;
+ default "-1";
+ description
+ "pvid. Not effective if (subLayerProtocolName==D_BRIDGE_COMPONENT). Untagged frames on the ingress of this VlanInterface get amended by a VLAN header and its 12 VID-bits (VLAN ID) get filled with the default VLAN ID (1-4094). If a value between 4096 and 4294967295 gets assigned, then it represents a local VLAN. Name in ieee802-dot1q-bridge.yang: pvid.";
+ }
+ leaf default-priority {
+ type int8;
+ default "-1";
+ description
+ "default-priority. Untagged frames on the ingress of this VlanInterface get associated with this Priority value. Name in ieee802-dot1q-bridge.yang: default-priority.";
+ }
+ leaf ingress-tag-filtering {
+ type ingress-tag-filtering-type;
+ default "INGRESS_TAG_FILTERING_TYPE_NOT_YET_DEFINED";
+ description
+ "acceptable-frame. Only effective if (configuringIngressTagFilteringIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). Defines the type of frame acceptable at this interface. Name in ieee802-dot1q-bridge.yang: acceptable-frame.";
+ }
+ leaf ingress-vlan-id-filtering-is-on {
+ type boolean;
+ default "false";
+ description
+ "enable-ingress-filtering. Only effective if (ingressVlanIdFilteringIsAvail==true) and (subLayerProtocolName!=D_BRIDGE_COMPONENT). true = Received frames with a VID that is unknown to the interface get discarded already at the ingress. Name in ieee802-dot1q-bridge.yang: enable-ingress-filtering.";
+ }
+ leaf pcp-bits-interpretation-kind {
+ type pcp-bits-interpretation-kind-type;
+ default "PCP_BITS_INTERPRETATION_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "pcp-selection. Defines how to decode and encode the values of the 3 Priority Code Point (PCP) bits of the VLAN header at this interface. Name in ieee802-dot1q-bridge.yang: pcp-selection.";
+ }
+ list pcp-bit-to-priority-mapping-list {
+ key "to-be-decoded-pcp-bits-value";
+ max-elements 8;
+ uses pcp-bits-to-priority-mapping-type;
+ description
+ "pcp-decoding-table. Only effective if (configuringPcpBitsDecodingIsAvail==true). Configurable decoding of the PCP-bits of the ingress VLAN header into Priority values and drop eligibility. This attribute is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the way of PCP bit interpretation, which is actually chosen in pcpBitsInterpretationKind. Name in ieee802-dot1q-bridge.yang: pcp-decoding-table.";
+ }
+ list pcp-bits-encoding-mapping-list {
+ key "to-be-encoded-priority-value to-be-encoded-drop-eligibility";
+ max-elements 16;
+ uses priority-to-pcp-bits-mapping-type;
+ description
+ "pcp-encoding-table. Only effective if (configuringPcpBitsEncodingIsAvail==true). Configurable encoding of Priority value and drop eligibility into the PCP-bits of the ingress VLAN header. This attribute is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the way of PCP bit interpretation, which is actually chosen in pcpBitsInterpretationKind. Name in ieee802-dot1q-bridge.yang: pcp-encoding-table.
+ ";
+ }
+ leaf drop-eligible-indicator-is-on {
+ type boolean;
+ default "false";
+ description
+ "use-dei. Only effective if (dropEligibleIndicatorIsAvail==true). true = The Drop Eligible Indicator (DEI) bit of ingress VLAN header is decoded into drop eligibility and vice versa for egress frames. Name in ieee802-dot1q-bridge.yang: use-dei.";
+ }
+ leaf drop-eligible-encoding-is-required {
+ type boolean;
+ default "false";
+ description
+ "drop-encoding. true = Queued frames, which have drop eligibility==true, get dropped, if the chosen pcpBitsInterpretationKind does not allow encoding the DEI bit set on true on the egress. Name in ieee802-dot1q-bridge.yang: drop-encoding.";
+ }
+ leaf received-priority-overwriting-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (receivedPriorityOverwritingIsAvail==true). true = Overwriting the Received Priority value derived from the PCP-bits of the ingress frame with the Regenerated Priority values listed in ingressPriorityOverwritingTable is activated.";
+ }
+ list received-priority-overwriting-list {
+ key "to-be-overwritten-priority-value";
+ max-elements 8;
+ uses received-priority-overwriting-type;
+ description
+ "priority-regeneration. Only effective if (receivedPriorityOverwritingIsAvail==true) AND (receivedPriorityOverwritingIsOn==true). The Received Priority value derived from the PCP-bits of the ingress frame will be overwritten with the Regenerated Priority value from the list. Name in ieee802-dot1q-bridge.yang: priority-regeneration.";
+ }
+ leaf vlan-id-translation-is-on {
+ type boolean;
+ default "false";
+ description
+ "enable-vid-translation-table. Only effective if (vlanIdTranslationIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==true), the VLAN IDs of ingress frames get translated according to the mapping, which is defined in vidTranslationMapping. If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==false), the mapping, which is defined in vidTranslationMapping, is used for both ingress and egress frames. Name in ieee802-dot1q-bridge.yang: enable-vid-translation-table.";
+ }
+ list external-to-internal-vlan-id-mapping-list {
+ key "external-vlan-id";
+ uses external-to-internal-vlan-id-mapping-type;
+ description
+ "vid-translations. Only effective if (subLayerProtocolName!=D_BRIDGE_COMPONENT). If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==true), the VLAN IDs of ingress frames get translated according to this mapping. If (vlanIdTranslationIsOn==true) AND (egressVlanIdTranslationIsOn==false), the VLAN IDs of both ingress and egress frames get mapped according to this mapping. Name in ieee802-dot1q-bridge.yang: vid-translations.";
+ }
+ leaf egress-vlan-id-translation-is-on {
+ type boolean;
+ default "false";
+ description
+ "enable-egress-vid-translation-table. Only effective if (egressVlanIdTranslationIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). true = The VLAN IDs of egress frames get translated according to the mapping, which is defined in egressVidTranslationMapping. Name in ieee802-dot1q-bridge.yang: enable-egress-vid-translation-table. References: 12.10.1.9 of IEEE Std 802.1Q-2018 and 6.9 of IEEE Std 802.1Q-2018.";
+ }
+ list internal-to-egress-vlan-id-mapping-list {
+ key "internal-vlan-id";
+ uses internal-to-egress-vlan-id-mapping-type;
+ description
+ "egress-vid-translations. Only effective if (subLayerProtocolName!=D_BRIDGE_COMPONENT) AND (egressVlanIdTranslationIsOn==true). The VLAN IDs of egress frames get translated according to this mapping. Name in ieee802-dot1q-bridge.yang: egress-vid-translations.";
+ }
+ leaf port-and-protocol-based-vlan-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (portAndProtocolBasedVlanIsAvail==true) AND (subLayerProtocolName!=D_BRIDGE_COMPONENT). true = Restricting forwarding of frames of specific VLANs on specific protocols at this interface is activated.";
+ }
+ list forwarded-protocol-vlan-id-grouping-list {
+ key "forwarded-protocol-group-id";
+ uses forwarded-protocol-vlan-id-grouping-type;
+ description
+ "protocol-group-vid-set. Only effective if (portAndProtocolBasedVlanIsOn==true). Associates lists of protocols with lists of VIDs to combinations, which are forwarded at this interface. Name in ieee802-dot1q-bridge.yang: protocol-group-vid-set.";
+ }
+ leaf service-access-priority-tagging-is-on {
+ type boolean;
+ default "false";
+ description
+ "service-access-priority-selection. Only effective if (serviceAccessPriorityTaggingIsAvail==true). true = Amending priority S-VLAN tags (no VID value) to egress frames at this C_VLAN_BRIDGE_PORT is activated. Name in ieee802-dot1q-bridge.yang: service-access-priority-selection.
+ ";
+ }
+ list service-access-priority-mapping-list {
+ key "c-vlan-priority-value";
+ max-elements 8;
+ uses service-access-priority-mapping-type;
+ description
+ "service-access-priority. Only effective if (serviceAccessPriorityTaggingIsOn==true) AND (configuringServiceAccessPriorityMappingIsAvail==true). The PCP-bits of the priority S-VLAN tag (no VID value), which is amended to the egress frames at this C_VLAN_BRIDGE_PORT, are generated according to this table from the Priority value. Name in ieee802-dot1q-bridge.yang: service-access-priority.";
+ }
+ list priority-to-traffic-class-mapping-list {
+ key "priority-value";
+ max-elements 8;
+ uses priority-to-traffic-class-mapping-type;
+ description
+ "traffic-class-map. Mapping of the Priority values into Traffic Classes (queues). This attribute is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the number of traffic classes actually available at the device. Name in ieee802-dot1q-bridge.yang: traffic-class-map.
+ ";
+ }
+ leaf restricted-automated-vlan-registration-is-on {
+ type boolean;
+ default "false";
+ description
+ "enable-restricted-vlan-registration. Only effective if (restrictedAutomatedVlanRegistrationIsAvail==true) and (subLayerProtocolName!=D_BRIDGE_COMPONENT). true = Automated VLAN registration by the Multiple Registration Protocol (MRP) is restricted to those VIDs that already had a static entry. Name in ieee802-dot1q-bridge.yang: enable-restricted-vlan-registration.";
+ }
+ leaf admin-point-to-point {
+ type admin-point-to-point-type;
+ default "ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED";
+ description
+ "admin-point-to-point. For a port running spanning tree, this object represents the administrative point-to-point status of the LAN segment attached to this port, using the enumeration values of IEEE Std 802.1AC. A value of forceTrue(1) indicates that this port should always be treated as if it is connected to a point-to-point link. A value of forceFalse(2) indicates that this port should be treated as having a shared media connection. A value of auto(3) indicates that this port is considered to have a point-to-point link if it is an Aggregator and all of its members are aggregatable, or if the MAC entity is configured for full duplex operation, either through auto-negotiation or by management means. Manipulating this object changes the underlying adminPointToPointMAC. Name in ieee802-dot1q-bridge.yang: admin-point-to-point.
+ *****Potentially, this attribute should be part of an STP/RSTP/MSTP Interface definition and be deleted here.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NOT_YET_DEFINED";
+ description
+ "Maintenance Feature. Configuration of a loop back on this interface.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration. 0 = maintenance timer is switched off. Valid values are defined in *Capability::maintenanceTimerRange.";
+ }
+ leaf statistics-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (statisticsIsAvail==true). true = Continuous statistics counters are switched on.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ uses problem-kind-severity-type;
+ description
+ "Severity of each entry of the SupportedAlarmList to be configured.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only effective if (performanceMonitoringIsAvail==true). true = Collection and aggregation of statistics is switched on.";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-status {
+ leaf interface-status {
+ type interface-status-type;
+ default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Operational status of the interface.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ config false;
+ description
+ "The currently active (not just configured) type of loop back.";
+ }
+ leaf statistics-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Statistics are currently counted";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "true = Performance values are currently collected and aggregated.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf total-bytes-input {
+ type int64;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "octets-rx. The total number of octets in all valid frames received. Name in ieee802-dot1q-bridge.yang: octets-rx.";
+ }
+ leaf total-frames-input {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "frame-rx. Number of frames that have been received by this port from its segment. Name in ieee802-dot1q-bridge.yang: frame-rx.";
+ }
+ leaf total-bytes-output {
+ type int64;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "octets-tx. The total number of octets that have been transmitted by this port to its segment. Name in ieee802-dot1q-bridge.yang: octets-tx.";
+ }
+ leaf total-frames-output {
+ type int64;
+ units "frame";
+ default "-1";
+ config false;
+ description
+ "frame-tx. The number of frames that have been transmitted by this port to its segment. Note that a frame transmitted on the interface corresponding to this port is only counted by this object if and only if it is for a protocol being processed by the local bridging function, including Bridge management frames. Name in ieee802-dot1q-bridge.yang: frame-tx.";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses vlan-interface-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ uses vlan-interface-current-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-historical-performances {
+ list historical-performance-data {
+ key "granularity-period period-end-time";
+ config false;
+ uses vlan-interface-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "none";
+ }
+
+/****************************************
+* typedef statements
+**************************************/
+ typedef loop-back-type {
+ type identityref {
+ base LOOP_BACK_TYPE;
+ }
+ description
+ "none";
+ }
+ typedef sub-layer-protocol-name-type {
+ type identityref {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ }
+ description
+ "Represents the type of Component.";
+ }
+ typedef interface-kind-type {
+ type identityref {
+ base INTERFACE_KIND_TYPE;
+ }
+ description
+ "type-capabilties. The type of feature capabilities supported with port. Indicates the capabilities of this port. Name in ieee802-dot1q-bridge.yang:type-capabilties.";
+ }
+ typedef ingress-tag-filtering-type {
+ type identityref {
+ base INGRESS_TAG_FILTERING_TYPE;
+ }
+ description
+ "none";
+ }
+ typedef pcp-bits-interpretation-kind-type {
+ type identityref {
+ base PCP_BITS_INTERPRETATION_KIND_TYPE;
+ }
+ description
+ "pcp-selection-type. Ways of translating the PCP-bit values of the ingress frames into Priority values. Name in ieee802-dot1q-bridge.yang: pcp-selection-type. References: 12.6.2.5.3 of IEEE Std 802.1Q-2018 and 6.9.3 of IEEE Std 802.1Q-2018.";
+ }
+ typedef admin-point-to-point-type {
+ type identityref {
+ base ADMIN_POINT_TO_POINT_TYPE;
+ }
+ description
+ "admin-point-to-point";
+ }
+
+/*********************************************
+* grouping statements for complex data types
+*******************************************/
+ identity LOOP_BACK_TYPE {
+ description
+ "none";
+ }
+ identity LOOP_BACK_TYPE_BACK_TO_LOCAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the Ethernet frames of the local site on the outgoing interface back to the local site.";
+ }
+ identity LOOP_BACK_TYPE_BACK_TO_REMOTE {
+ base LOOP_BACK_TYPE;
+ description
+ "Returning the incoming Ethernet frames back to the remote site.";
+ }
+ identity LOOP_BACK_TYPE_NONE {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+ identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE {
+ description
+ "none";
+ }
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "VLAN unaware component";
+ }
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "C-VLAN component";
+ }
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "S-VLAN component";
+ }
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "EVB station ER component";
+ }
+ identity SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED {
+ base SUB_LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+ identity INTERFACE_KIND_TYPE {
+ description
+ "none";
+ }
+ identity INTERFACE_KIND_TYPE_D_BRIDGE_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be a VLAN-unaware member of an 802.1Q Bridge.";
+ }
+ identity INTERFACE_KIND_TYPE_C_VLAN_BRIDGE_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be a C-TAG aware port of an enterprise VLAN aware Bridge.";
+ }
+ identity INTERFACE_KIND_TYPE_CUSTOMER_EDGE_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be a C-TAG aware port of a Provider Bridge used for connections to the exterior of a PBN (Provider Bridged Network) or PBBN (Provider Backbone Bridged Network).";
+ }
+ identity INTERFACE_KIND_TYPE_PROVIDER_EDGE_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "none";
+ }
+ identity INTERFACE_KIND_TYPE_CUSTOMER_NETWORK_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be an S-TAG aware port of a Provider Bridge or Backbone Edge Bridge used for connections to the exterior of a PBN (Provider Bridged Network) or PBBN (Provider Backbone Bridged Network).";
+ }
+ identity INTERFACE_KIND_TYPE_PROVIDER_NETWORK_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be an S-TAG aware port of a Provider Bridge or Backbone Edge Bridge used for connections within a PBN (Provider Bridged Network) or PBBN (Provider Backbone Bridged Network).";
+ }
+ identity INTERFACE_KIND_TYPE_CUSTOMER_BACKBONE_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be a I-TAG aware port of a Backbone Edge Bridge's B-component.";
+ }
+ identity INTERFACE_KIND_TYPE_REMOTE_CUSTOMER_ACCESS_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be an S-TAG aware port of a Provider Bridge capable of providing Remote Customer Service Interfaces.";
+ }
+ identity INTERFACE_KIND_TYPE_VIRTUAL_INSTANCE_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the port can be a virtual S-TAG aware port within a Backbone Edge Bridge's I-component which is responsible for handling S-tagged traffic for a specific backbone service instance.";
+ }
+ identity INTERFACE_KIND_TYPE_STATION_FACING_BRIDGE_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the station-facing Bridge Port in a EVB Bridge.";
+ }
+ identity INTERFACE_KIND_TYPE_UPLINK_ACCESS_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the uplink access port in an EVB Bridge or EVB station.";
+ }
+ identity INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT {
+ base INTERFACE_KIND_TYPE;
+ description
+ "Indicates the uplink relay port in an EVB station.";
+ }
+ identity INTERFACE_KIND_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_KIND_TYPE;
+ description
+ "none";
+ }
+ identity INGRESS_TAG_FILTERING_TYPE {
+ description
+ "none";
+ }
+ identity INGRESS_TAG_FILTERING_TYPE_UNTAGGED_AND_PRIORITY_FRAMES_ONLY {
+ base INGRESS_TAG_FILTERING_TYPE;
+ description
+ "admit-only-untagged-and-priority-tagged. Priority frames are frames with VLAN header, but VID==0.";
+ }
+ identity INGRESS_TAG_FILTERING_TYPE_VLAN_TAGGED_FRAMES_ONLY {
+ base INGRESS_TAG_FILTERING_TYPE;
+ description
+ "admit-only-VLAN-tagged-frames";
+ }
+ identity INGRESS_TAG_FILTERING_TYPE_ALL_FRAMES {
+ base INGRESS_TAG_FILTERING_TYPE;
+ description
+ "admit-all-frames ";
+ }
+ identity INGRESS_TAG_FILTERING_TYPE_NOT_YET_DEFINED {
+ base INGRESS_TAG_FILTERING_TYPE;
+ description
+ "none";
+ }
+ identity PCP_BITS_INTERPRETATION_KIND_TYPE {
+ description
+ "none";
+ }
+ identity PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D {
+ base PCP_BITS_INTERPRETATION_KIND_TYPE;
+ description
+ "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 8 Priority values and 0 drop eligibility values.";
+ }
+ identity PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D {
+ base PCP_BITS_INTERPRETATION_KIND_TYPE;
+ description
+ "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 7 Priority values and 1 drop eligibility values.";
+ }
+ identity PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D {
+ base PCP_BITS_INTERPRETATION_KIND_TYPE;
+ description
+ "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 6 Priority values and 2 drop eligibility values.";
+ }
+ identity PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D {
+ base PCP_BITS_INTERPRETATION_KIND_TYPE;
+ description
+ "The 3 bits of the Priority Code Point (PCP) segment of the VLAN header are used to express 5 Priority values and 3 drop eligibility values.";
+ }
+ identity PCP_BITS_INTERPRETATION_KIND_TYPE_NOT_YET_DEFINED {
+ base PCP_BITS_INTERPRETATION_KIND_TYPE;
+ description
+ "none";
+ }
+ identity ADMIN_POINT_TO_POINT_TYPE {
+ description
+ "none";
+ }
+ identity ADMIN_POINT_TO_POINT_TYPE_FORCE_TRUE {
+ base ADMIN_POINT_TO_POINT_TYPE;
+ description
+ "force-true. Indicates that this port should always be treated as if it is connected to a point-to-point link. Name in ieee802-dot1q-bridge.yang: force-true.";
+ }
+ identity ADMIN_POINT_TO_POINT_TYPE_FORCE_FALSE {
+ base ADMIN_POINT_TO_POINT_TYPE;
+ description
+ "force-false. Indicates that this port should be treated as having a shared media connection. Name in ieee802-dot1q-bridge.yang: force-false.";
+ }
+ identity ADMIN_POINT_TO_POINT_TYPE_AUTO {
+ base ADMIN_POINT_TO_POINT_TYPE;
+ description
+ "auto. Indicates that this port is considered to have a point-to-point link if it is an Aggregator and all of its members are aggregatable, or if the MAC entity is configured for full duplex operation, either through auto-negotiation or by management means. Name in ieee802-dot1q-bridge.yang: auto.";
+ }
+ identity ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED {
+ base ADMIN_POINT_TO_POINT_TYPE;
+ description
+ "none";
+ }
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+ identity SEVERITY_TYPE_NON-ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+ identity INTERFACE_STATUS_TYPE {
+ description
+ "none";
+ }
+ identity INTERFACE_STATUS_TYPE_UP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+ identity INTERFACE_STATUS_TYPE_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+ identity INTERFACE_STATUS_TYPE_TESTING {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+ identity INTERFACE_STATUS_TYPE_UNKNOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+ identity INTERFACE_STATUS_TYPE_DORMANT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+ identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+ identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+ identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+ identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "none";
+ }
+ /****************************************
+ * package super-types
+ **************************************/
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "none";
+ }
+ typedef interface-status-type {
+ type identityref {
+ base INTERFACE_STATUS_TYPE;
+ }
+ description
+ "Current Interface Status";
+ }
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping pcp-bits-to-priority-mapping-type {
+ leaf to-be-decoded-pcp-bits-value {
+ type int8;
+ description
+ "priority-code-point. Value of the 3 Priority Code Point (PCP) bits of the VLAN header, which is to be interpreted into Priority and eligibility. Name in ieee802-dot1q-bridge.yang: priority-code-point.";
+ }
+ leaf associated-priority-value {
+ type int8;
+ default "-1";
+ description
+ "priority. Priority value associated to the value of the 3 Priority Code Point (PCP) bits of the VLAN header. Values from 0 to 7 (inclusive). Name in ieee802-dot1q-bridge.yang: priority.";
+ }
+ leaf associated-drop-eligibility {
+ type boolean;
+ default "false";
+ description
+ "drop-eligible. Drop eligibility associated to the value of the 3 Priority Code Point (PCP) bits of the VLAN header. Name in ieee802-dot1q-bridge.yang: drop-eligible.";
+ }
+ description
+ "priority-map. The Priority Code Point decoding mapping describes how to decode the PCP-bits of the ingress VLAN header into Priority value and drop eligibility. If no corresponding pcpBitToPriorityMappingType instance exists, the mapping of the respective pcpBitsValue shall follow the standard, which is defined in Table6-3 on page 143 of IEEE802.1Q-2018. Name in ieee802-dot1q-bridge.yang: priority-map.";
+ }
+ grouping priority-to-pcp-bits-mapping-type {
+ leaf to-be-encoded-priority-value {
+ type int8;
+ description
+ "priority. Priority value, which is to be encoded into a value of the 3 Priority Code Point (PCP) bits of the egress VLAN header. Name in ieee802-dot1q-bridge.yang: priority.";
+ }
+ leaf to-be-encoded-drop-eligibility {
+ type boolean;
+ description
+ "dei. Drop eligibility, which is to be encoded into a value of the 3 Priority Code Point (PCP) bits of the egress VLAN header. Name in ieee802-dot1q-bridge.yang: dei.";
+ }
+ leaf associated-pcp-bits-value {
+ type int8;
+ default "-1";
+ description
+ "priority-code-point. Value of the 3 Priority Code Point (PCP) bits of the egress VLAN header, which is to be associated with the Priority value and eligibility. Name in ieee802-dot1q-bridge.yang: priority-code-point.";
+ }
+ description
+ "priority-map. The Priority Code Point encoding mapping describes how to encode Priority value and drop eligibility into the PCP-bits of the egress VLAN header. If no corresponding PriorityToPcpBitsMappingType instance exists, the mapping of the respective Priority value shall follow the standard, which is defined in Table6-2 on page 143 of IEEE802.1Q-2018. Name in ieee802-dot1q-bridge.yang: priority-map.";
+ }
+ grouping received-priority-overwriting-type {
+ leaf to-be-overwritten-priority-value {
+ type int8;
+ description
+ "Received Priority value, which is to be overwritten by the Regenerated Priority value. ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+ }
+ leaf new-priority-value {
+ type int8;
+ default "-1";
+ description
+ "Regenerated Priority value, which is substituting the Received Priority value. ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+ }
+ description
+ "The priority regeneration table provides the ability to map incoming priority values on a per-Port basis, under management control. If no corresponding ReceivedPriorityOverwritingType instance exists, the Regenerated Priority value is the same as the Received Priority value. ";
+ }
+ grouping external-to-internal-vlan-id-mapping-type {
+ leaf external-vlan-id {
+ type int8;
+ description
+ "local-vid. VID of the frame as long as it is inside the interface. If ingress frame, this would be before translation. If egress frame (AND egressVidTranslationMapping not activated!), this would be after translation. Name in ieee802-dot1q-bridge.yang: local-vid.";
+ }
+ leaf internal-vlan-id {
+ type int8;
+ default "-1";
+ description
+ "relay-vid. VID of the frame as long as it is inside the bridge. If ingress frame, this would be after translation. If egress frame (AND egressVidTranslationMapping not activated!), this would be before translation. Name in ieee802-dot1q-bridge.yang: relay-vid.";
+ }
+ description
+ "vid-translations. To configure the VID Translation Table (6.9) associated with a Port. If no translation relationship is defined for some VID value, then it is assumed that the VID does not change. The translation relation applies on ingress and egress frames unless a separate egress translation relations are defined in egressVidTranslationMapping. Name in ieee802-dot1q-bridge.yang: vid-translations.
+ ";
+ }
+ grouping internal-to-egress-vlan-id-mapping-type {
+ leaf internal-vlan-id {
+ type int8;
+ description
+ "relay-vid. VID of the frame as long as it is inside the bridge, but before translating the VID and egress of the frame at this interface. Name in ieee802-dot1q-bridge.yang: relay-vid.";
+ }
+ leaf egress-vlan-id {
+ type int8;
+ default "-1";
+ description
+ "local-vid. VID of the egress frame after translating the VID. Name in ieee802-dot1q-bridge.yang: local-vid.";
+ }
+ description
+ "egress-vid-translationsType. To configure the Egress VID Translation Table (6.9) associated with a Port. If no translation relationship is defined for some VID value, then it is assumed that the VID does not change. Name in ieee802-dot1q-bridge.yang: egress-vid-translationsType.";
+ }
+ grouping forwarded-protocol-vlan-id-grouping-type {
+ leaf forwarded-protocol-group-id {
+ type int32;
+ description
+ "group-id. Bridge wide identifier of a group of protocols that shall be forwarded within the listed VLANs. Name in ieee802-dot1q-bridge.yang: group-id.";
+ }
+ leaf-list forwarded-vlan-id-list {
+ type int8;
+ default "-1";
+ description
+ "vid. List of VLANs that shall forward the protocols, which are consolidated unter the protocolGroupId. Name in ieee802-dot1q-bridge.yang: vid.";
+ }
+ description
+ "protocol-group-vid-set. Limits the forwarded frames of a list of VIDs to the protocols, which are consolidated under a specific group ID. The protocol group is to be defined on Bridge level. Name in ieee802-dot1q-bridge.yang: protocol-group-vid-set.";
+ }
+ grouping service-access-priority-mapping-type {
+ leaf c-vlan-priority-value {
+ type int8;
+ description
+ "C-VLAN Priority, which shall be translated into the associated S-VLAN Priority. ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+ }
+ leaf s-vlan-pcp-bits-value {
+ type int8;
+ default "-1";
+ description
+ "S-VLAN Priority, which shall be associated with this C-VLAN Priority. ieee802-dot1q-bridge.yang is explicitly listing all values, and has been slightly shortened.";
+ }
+ description
+ "service-access-priority-table-grouping. Describes how the PCP-bits of the priority S-VLAN tag (no VID value) get derived from the Priority value. Name in ieee802-dot1q-bridge.yang: service-access-priority-table-grouping.";
+ }
+ grouping priority-to-traffic-class-mapping-type {
+ leaf priority-value {
+ type int8;
+ description
+ "priority. Priority value, which is to be mapped into a Traffic Class (queue). Values from 0 to 7 (inclusive). Name in ieee802-dot1q-bridge.yang: priority.";
+ }
+ leaf traffic-class-value {
+ type int8;
+ default "-1";
+ description
+ "traffic-class. Index of the Traffic Class (queue), which gets associated with the Priority Value. Values from 0 to 7 (inclusive). Name in ieee802-dot1q-bridge.yang: traffic-class.";
+ }
+ description
+ "traffic-class-table-grouping. If no corresponding PriorityToTrafficClassMappingType instance exists, the mapping of the respective Priority shall follow the standard, which is defined in Table 8-5 on page 198 of IEEE802.1Q-2018. This modeling is shortening the ieee802-dot1q-bridge.yang from a table to a list, because it allows only configuring the values for the number of traffic classes, which is actually available at the device. Name in ieee802-dot1q-bridge.yang: traffic-class-table-grouping.";
+ }
+ grouping vlan-interface-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to SupportedAlarmList";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+ grouping vlan-interface-performance-type {
+ leaf total-bytes-input {
+ type int64;
+ units "Bytes";
+ default "-1";
+ config false;
+ description
+ "Received data volume in Byte.";
+ }
+ leaf total-frames-input {
+ type int64;
+ units "frames";
+ default "-1";
+ config false;
+ description
+ "The total number of Ethernet frames received for the specified VLAN ID(s), including those received in error";
+ }
+ leaf total-bytes-output {
+ type int64;
+ units "Bytes";
+ default "-1";
+ config false;
+ description
+ "Sent data volume in Byte.";
+ }
+ leaf total-frames-output {
+ type int64;
+ units "frames";
+ default "-1";
+ config false;
+ description
+ "The total number of Ethernet frames for the specified VLAN ID(s) that the device supplied to the lower layers for transmission. This includes frames generated locally and those forwarded by the device.";
+ }
+ description
+ "none";
+ }
+ grouping vlan-interface-current-performance-type {
+ container performance-data {
+ config false;
+ uses vlan-interface-performance-type;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "none";
+ }
+ grouping vlan-interface-historical-performance-type {
+ container performance-data {
+ config false;
+ uses vlan-interface-performance-type;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "none";
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wire-interface-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wire-interface-2-0.yang
new file mode 100644
index 000000000..ada0ea8ef
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wire-interface-2-0.yang
@@ -0,0 +1,1819 @@
+module wire-interface-2-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:wire-interface-2-0";
+ prefix wire-interface;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: WireInterface@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "This model is for vendor agnostic management of Ethernet PHY interfaces.
+ Supported: '10BASE5', 'FOIRL', '10BASE2', '10BROAD36', '10BASE-T', '10BASE-FP', '10BASE-FB', '10BASE-FL', '100BASE-T4', '100BASE-TX', '100BASE-BX10D', '100BASE-BX10U', '100BASE-FX', '100BASE-LX10', '100BASE-T2', '1000BASE-X', '1000BASE-BX10D', '1000BASE-BX10U', '1000BASE-LX', '1000BASE-LX10', '1000BASE-SX', '1000BASE-CX', '1000BASE-KX', '1000BASE-T', '10GBASE-X', '10GBASE-LX4', '10GBASE-KX4', '10GBASE-R', '10GBASE-ER', '10GBASE-LR', '10GBASE-SR', '10GBASE-LRM', '10GBASE-KR', '10GBASE-T', '10GBASE-PR-D1', '10GBASE-PR-D2', '10GBASE-PR-D3', '10GBASE-PR-D4', '10GBASE-PR-U1', '10GBASE-PR-U2', '10GBASE-PR-U3', '10GBASE-PR-U4', '40GBASE-R', '40GBASE-KR4', '40GBASE-CR4', '40GBASE-SR4', '4x10GBASE-SR', '40GBASE-LR4', '40GBASE-ER4', '40GBASE-FR', '100GBASE-R', '100GBASE-CR4', '100GBASE-KR4', '100GBASE-KP4', '100GBASE-CR10', '100GBASE-SR4', '100GBASE-SR10', '2x40GBASE-SR', '10x10GBASE-SR', '12x10GBASE-SR', '100GBASE-LR4', '100GBASE-ER4' and 'NOT_YET_DEFINED.
+ NOT supported: '2BASE-TL', '10PASS-TS', '1000BASE-PX10-D', '1000BASE-PX10-U', '1000BASE-PX20-D', '1000BASE-PX20-U', '1000BASE-PX30-D', '1000BASE-PX30-U', '1000BASE-PX40-D', '1000BASE-PX40-U', '10GBASE-W', '10GBASE-EW', '10GBASE-LW', '10GBASE-SW', '10/1GBASE-PRX-D1', '10/1GBASE-PRX-D2', '10/1GBASE-PRX-D3', '10/1GBASE-PRX-D4', '10/1GBASE-PRX-U1', '10/1GBASE-PRX-U2', '10/1GBASE-PRX-U3' and '10/1GBASE-PRX-U4'.
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-23 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-11-22 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-10-30 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-11 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/wireInterface/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/wireInterface/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER {
+ base core-model:LAYER_PROTOCOL_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
+ when "derived-from-or-self(./core-model:layer-protocol-name, 'wire-interface:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER')";
+ uses wire-interface-lp-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification attribute-value-changed-notification {
+ uses attribute-value-changed-notification;
+ description
+ "none";
+ }
+
+ grouping attribute-value-changed-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts attribute value changed notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf attribute-name {
+ type string;
+ default "Attribute name not specified.";
+ config false;
+ description
+ "Name of the attribute that has been changed.";
+ }
+ leaf new-value {
+ type string;
+ default "New value not specified.";
+ config false;
+ description
+ "Attribute value converted to a string (xml, json, ...)";
+ }
+ description
+ "none";
+ }
+
+ notification problem-notification {
+ uses problem-notification;
+ description
+ "none";
+ }
+
+ grouping problem-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts problem notifications";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf problem {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the problem according to supportedAlarmList";
+ }
+ leaf severity {
+ type severity-type;
+ default "SEVERITY_TYPE_WARNING";
+ config false;
+ description
+ "Severity of the problem according to problemKindSeverity";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+ /****************************************
+ * package super-classes
+ **************************************/
+
+ grouping current-problem {
+ leaf sequence-number {
+ type int16;
+ config false;
+ description
+ "Unique sequence number of the current problem object.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Time when the alarm was raised";
+ }
+ leaf problem-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Severity of the alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping current-performance {
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "The timestamp associated with when the current data was collected.";
+ }
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "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:
+ – Suspect data were detected by the actual resource doing data collection.
+ – Transition of the administrativeState attribute to/from the 'lock' state.
+ – Transition of the operationalState to/from the 'disabled' state.
+ – Scheduler setting that inhibits the collection function.
+ – The performance counters were reset during the interval.
+ – The currentData (or subclass) object instance was created during the monitoring period.";
+ }
+ leaf elapsed-time {
+ type int64;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of seconds that elapsed since the last reset of the counter.";
+ }
+ leaf scanner-id {
+ type string;
+ default "Scanner ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ description
+ "none";
+ }
+
+ grouping historical-performance {
+ leaf suspect-interval-flag {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "This attribute indicates that the data collected during the interval is suspect.";
+ }
+ leaf history-data-id {
+ type string;
+ default "History Data ID not defined.";
+ config false;
+ description
+ "none";
+ }
+ leaf granularity-period {
+ type granularity-period-type;
+ config false;
+ description
+ "Time period between reset of the underlying counter.";
+ }
+ leaf period-end-time {
+ type yang:date-and-time;
+ config false;
+ description
+ "Time when the counter values have been recorded and the counter reset.";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-lp-spec {
+ container wire-interface-pac {
+ uses wire-interface-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-pac {
+ container wire-interface-capability {
+ config false;
+ uses wire-interface-capability;
+ description
+ "none";
+ }
+ container wire-interface-configuration {
+ uses wire-interface-configuration;
+ description
+ "none";
+ }
+ container wire-interface-status {
+ config false;
+ uses wire-interface-status;
+ description
+ "none";
+ }
+ container wire-interface-current-problems {
+ config false;
+ uses wire-interface-current-problems;
+ description
+ "none";
+ }
+ container wire-interface-current-performance {
+ config false;
+ uses wire-interface-current-performance;
+ description
+ "none";
+ }
+ container wire-interface-historical-performances {
+ config false;
+ uses wire-interface-historical-performances;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-capability {
+ list supported-pmd-kind-list {
+ key "pmd-name";
+ config false;
+ min-elements 1;
+ uses pmd-kind;
+ description
+ "List of Physical Medium Dependent (PMD) that can be operated";
+ }
+ leaf auto-pmd-negotiation-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = device is supporting auto-negotiation";
+ }
+ leaf auto-negotiation-pmd-selection-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = device is supporting restricting auto-negotiation on a pre-defined list of PMDs";
+ }
+ leaf-list supported-signal-ordering-kind-list {
+ type signal-ordering-kind-type;
+ config false;
+ min-elements 1;
+ description
+ "Describes the different (e.g. MDI, MDI-X) ways of ordering the signals on the physical medium";
+ }
+ leaf auto-signal-ordering-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = there is a mechanism for automatically crossing over tx and rx implemented";
+ }
+ leaf configuration-of-rx-sync-preference-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Configuration of the behavior during the synchronization of transmitter and receiver is available. This attribute has nothing to do with clock signals.";
+ }
+ leaf mii-kind {
+ type mii-kind-type;
+ default "MII_KIND_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Kind of Medium Independent Interface (MII) provided by this Medium Attachment Unit (MAU) (e.g. SFP, moldered port)";
+ }
+ leaf mdi-kind {
+ type mdi-kind-type;
+ default "MDI_KIND_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Kind of Medium Dependent Interface (MDI) provided by this Medium Attachment Unit (MAU)";
+ }
+ leaf required-medium-kind {
+ type medium-kind-type;
+ default "MEDIUM_KIND_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Kind of medium required for operating this Medium Attachment Unit (MAU), more like an information field";
+ }
+ leaf-list wavelength-min-list {
+ type int32;
+ units "pm";
+ default "-1";
+ config false;
+ max-elements 3;
+ description
+ "Source: SFF-8690. Minimum laser wavelength in pico meter, -1 = not applicable, 0 = not known, if (wavelengthMin==wavelengthMax): wavelength cannot be configured; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5. Value to be read from the EPROM of the SFP.";
+ }
+ leaf-list wavelength-max-list {
+ type int32;
+ units "pm";
+ default "-1";
+ config false;
+ max-elements 3;
+ description
+ "Source: SFF-8690. Maximum laser wavelength in pico meter, -1 = not applicable, 0 = not known, if (wavelengthMax==wavelengthMin): wavelength cannot be configured; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5. Value to be read from the EPROM of the SFP.";
+ }
+ leaf wavelength-grid-min {
+ type int32;
+ units "pm";
+ default "-1";
+ config false;
+ description
+ "Source: SFF-8690. Minimum grid spacing supported by the transceiver, -1 = not applicable, 0 = not known";
+ }
+ leaf short-reach-mode-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Indicates that Short Reach Mode for 10GBASE-T according to 802.3 45.2.1.64 is available";
+ }
+ leaf eee-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Indicates that Energy-Efficient Ethernet (EEE) is available at the device.";
+ }
+ leaf unidirectional-operation-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Source: 802.3. 1 = Medium Attachment Unit (MAU) able to transmit from Media Independent Interface (MII) regardless of whether the MAU has determined that a valid link has been established, 0 = MAU able to transmit from MII only when the MAU has determined that a valid link has been established";
+ }
+ leaf rxlevel-low-threshold {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Threshold for alarming low RX levels. Value pre-defined by SFP manufacturer (SFF- 8472)";
+ }
+ leaf rxlevel-high-threshold {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Threshold for alarming high RX levels. Value pre-defined by SFP manufacturer (SFF- 8472)";
+ }
+ leaf temperature-low-threshold {
+ type int8;
+ units "Celsius";
+ default "-99";
+ config false;
+ description
+ "Threshold for alarming low temperature values. Value pre-defined by SFP manufacturer (SFF- 8472)
+ Might move to somewhere in the Physical Segment of the Core IM";
+ }
+ leaf temperature-high-threshold {
+ type int8;
+ units "Celsius";
+ default "-99";
+ config false;
+ description
+ "Threshold for alarming high temperature values. Value pre-defined by SFP manufacturer (SFF- 8472)
+ Might move to somewhere in the Physical Segment of the Core IM";
+ }
+ leaf configuration-of-number-of-bip-errors-per-ses-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = SET operation on the Line SES threshold defined by aLineSESThreshold in 30.8.1.1.11 of 802.3-2015 is available.";
+ }
+ leaf admin-shut-down-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Manual switching on and off of the interface without deleting it (underlying OSI network layers are also not affected) is available.";
+ }
+ leaf isolation-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Separation of the PHY from higher network layers is supported by the device. Maintenance feature. Source: 802.3. ";
+ }
+ leaf-list supported-loop-back-kind-list {
+ type loop-back-type;
+ config false;
+ min-elements 1;
+ max-elements 5;
+ description
+ "Source: 802.3 45.2.1.12.1 PMA remote loopback ability. List of supported kinds of looping back of header information to the remote site.";
+ }
+ leaf maintenance-timer-range {
+ type string;
+ default "Range of the maintenance timer not yet defined.";
+ config false;
+ description
+ "Available time periods for maintenance configurations (e.g. the loop back) 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').";
+ }
+ leaf-list supported-alarm-list {
+ type string;
+ config false;
+ min-elements 1;
+ description
+ "Available alarms to be listed. Mandatory: 'rxLos'. Optional: 'txFault', 'tempHigh', 'tempLow', 'rxLevelHigh', 'rxLevelLow', 'vccHigh', 'vccLow', 'txBiasHigh', 'txBiasLow', 'txPowerHigh', 'txPowerLow', 'laserTempHigh', 'laserTempLow', 'tecCurrentHigh', 'tecCurrentLow'. Further alarms might be added by the device.";
+ }
+ leaf performance-monitoring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Collection and aggregation of performance values is available.";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-configuration {
+ leaf interface-name {
+ type string;
+ default "Interface name not yet defined.";
+ description
+ "Description of the interface, could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf interface-is-on {
+ type boolean;
+ default "false";
+ description
+ "Source: 802.3 according 30.3.2.2.1 acPhyAdminControl. 1 = Activation of the interface (it gets powered and can be managed even if the transceiver is not yet transmitting or receiving). In case there is no Medium Attachment Unit (MAU) (e.g. no SFP in the cage) SETting (interfaceIsOn=1) must be ignored and GETing must return (interfaceIsOn=0)";
+ }
+ leaf remote-wire-interface-name {
+ type string;
+ default "Remote wire interface name not yet defined.";
+ description
+ "Text field for defining the wire interface this one is connected with. Ideally used for entering unique numbers or names for unambiguously identifying the connection within the network";
+ }
+ leaf-list transceiver-is-on-list {
+ type boolean;
+ default "false";
+ max-elements 11;
+ description
+ "Source: 802.3 45.2.1.8 PMD transmit disable register (Register 1.9). 1 = Activation of the transmitter and receiver (e.g. laser) of the PHY; transceiverIsOnList[0]:total interface; transceiverIsOnList[1..10] different lanes of a multilane Medium Attachment Unit (MAU)";
+ }
+ leaf auto-pmd-negotiation-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (autoPmdNegotiationIsAvail == 1). 1 = Auto-negotiation is switched on";
+ }
+ leaf fixed-pmd-kind {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list/wire-interface:pmd-name";
+ require-instance false;
+ }
+ must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list[pmd-name=current()])';
+ description
+ "If (autoPmdNegotiationIsOn==0) : Configuration of the concrete kind of Physical Medium Dependent (PMD). If (autoNegotiationIsOn=1) value of this field becomes irrelevant";
+ }
+ leaf-list auto-negotiation-pmd-list {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list/wire-interface:pmd-name";
+ require-instance false;
+ }
+ must 'boolean(/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list[pmd-name=current()])';
+ description
+ "If (autoPmdNegotiationIsOn==1) AND (autoNegotiationPmdSelectionIsAvail==1), this list defines the selection of PMDs the automated negotiation process is allowed to choose from. If no entry, the automated negotiation process is allowed to choose from all available PMDs.";
+ }
+ leaf auto-signal-ordering-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (autoSignalOrderingIsAvail == 1). 1 = e.g. auto-MDI-X is switched on";
+ }
+ leaf fixed-signal-ordering-kind {
+ type signal-ordering-kind-type;
+ default "SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED";
+ description
+ "If (autoSignalOrderingIsOn==0) configuration of the concrete kind of signal ordering on the media (e.g. MDI, or MDI-X). If (autoSignalOrderingIsOn=1) value of this field becomes irrelevant";
+ }
+ leaf-list wavelength-list {
+ type int32;
+ units "pm";
+ default "-1";
+ max-elements 3;
+ description
+ "Source: SFF-8690. Wavelength of the signal of laser in pico meter; multiplicity=0..3 for 10GBASE-LX4 according to 802.3 53.5";
+ }
+ leaf rx-sync-preference {
+ type rx-sync-preference-type;
+ default "RX_SYNC_PREFERENCE_TYPE_NOT_YET_DEFINED";
+ description
+ "Source: 802.3. Only relevant if (configurationOfRxSyncPreferenceIsAvail == 1). Configuration of the behavior during the negotiation of the wire interface (master), which is sending a continuous stream of symbols for the remote site (slave) to synchronize its receiver on it. This attribute is for synchronizing transmitter and receiver and has nothing to do with clock signals.";
+ }
+ leaf short-reach-mode-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (shortReachModeIsAvail == 1). Activation of the Short Reach Mode for 10GBASE-T according to 802.3 45.2.1.64";
+ }
+ leaf eee-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (eeeIsAvail == 1). 1 = Energy Efficient Ethernet is activated\n";
+ }
+ leaf unidirectional-operation-is-on {
+ type boolean;
+ default "false";
+ description
+ "Source: 802.3. Only relevant if (unidirectionalOperationIsAvail == 1). 1 = Enable transmit from media independent interface regardless of whether the PHY has determined that a valid link has been established, 0 = Enable transmit from media independent interface only when the PHY has determined that a valid link has been established";
+ }
+ leaf number-of-bip-errors-per-ses {
+ type int16;
+ default "-1";
+ description
+ "Only relevant if (configurationOfNumberOfBipErrorsPerSesIsAvail == 1). SET operation on the Line SES threshold defined by aLineSESThreshold in 30.8.1.1.11 of 802.3-2015. This attribute configures the minimum number of BIP errors that have to occur in one second to count this second as a SES instead of an ES. According to 802.3, a value of 9835 should be the hardware default value, which should also apply after restarting the interface.";
+ }
+ leaf restart-pmd-negotiation-is-on {
+ type boolean;
+ default "false";
+ description
+ "Source: 802.3. Restarts the auto negotiation process";
+ }
+ leaf isolation-is-on {
+ type boolean;
+ default "false";
+ description
+ "Maintenance Feature. Only relevant if (isolationIsAvail == 1). Source: 802.3. 1 = Activation of the separation of the PHY from higher network layers. Maintenance feature.";
+ }
+ leaf loop-back-kind-on {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NONE";
+ description
+ "Maintenance Feature. Source:802.3 according 22.2.4.1.2 Loopback. The currently configured type of looping back of the wire interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf maintenance-timer {
+ type int32;
+ units "s";
+ default "-1";
+ description
+ "Time of existence of any maintenance configuration (e.g. the loop back). Valid values are defined in WireInterface::WireInterfaceCapability::maintenanceTimerRange. In case the hardware would implement just a single timer for maintenance at all kinds and instances of interfaces, this attribute should affect this single timer.";
+ }
+ list problem-kind-severity-list {
+ key "problem-kind-name";
+ min-elements 1;
+ uses problem-kind-severity-type;
+ description
+ "Severity of the problem to be configured.";
+ }
+ leaf performance-monitoring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (performanceMonitoringIsAvail==1). 1 = Collection and aggregation of performance values is switched on.";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-status {
+ leaf interface-status {
+ type interface-status-type;
+ default "INTERFACE_STATUS_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Source: 802.3 according 30.3.2.1.7 aPhyAdminState. 1 = A Physical layer entity (PHY) exists (including Medium Attachment Unit (e.g. SFP) ) and it is powered and can be managed";
+ }
+ leaf-list receive-signal-is-detected-list {
+ type boolean;
+ default "false";
+ config false;
+ max-elements 11;
+ description
+ "Source: 802.3 45.2.1.9 PMD receive signal detect. 1 = Receiver (e.g. laser) detects signal; receiveSignalIsDetected[0]:total interface; receiveSignalIsDetected[1..10] different lanes of a multilane Medium Attachment Unit (MAU)";
+ }
+ leaf pmd-negotiation-state {
+ type pmd-negotiation-state-type;
+ default "PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Source: 802.3. Status of the Physical Medium Dependent (PMD) negotiation process (auto-neg)";
+ }
+ leaf pmd-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "Source: Inverse of 802.3 45.2.1.2.3 Fault (1.1.7). If (interfaceIsUp==1) BUT (pmdIsUp==0) : there is a fault in either transmit or receive path";
+ }
+ leaf pmd-kind-cur {
+ type leafref {
+ path "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol/wire-interface:wire-interface-pac/wire-interface:wire-interface-capability/wire-interface:supported-pmd-kind-list/wire-interface:pmd-name";
+ require-instance false;
+ }
+ config false;
+ description
+ "Indicates the kind of Physical Medium Dependent (PMD) currently operated at this interface";
+ }
+ leaf signal-ordering-kind-cur {
+ type signal-ordering-kind-type;
+ default "SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Reference on a SignalOrderingType for expressing the currently active way of ordering the signals on the physical medium.";
+ }
+ leaf rx-sync-role {
+ type rx-sync-role-type;
+ default "RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED";
+ config false;
+ description
+ "Indicates the result of the negotiation of the wire interface (master), which is sending a continuous stream of symbols for the remote site (slave) synchronizing its receiver on it";
+ }
+ leaf eee-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Energy Efficient Ethernet is supported at both ends of the link and it is activated";
+ }
+ leaf link-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If (transceiverIsUp==1) AND (linkIsUp==1) : communication is established to the remote site";
+ }
+ leaf link-is-idle {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "If (linkIsUp==1) AND (eeeIsAvail==1) AND (eeeIsOn==1) AND (linkIsIdle==1) : link is currently in idle mode. If Energy Efficient Ethernet is not supported or switched off, this attribute must be 0.";
+ }
+ leaf loop-back-kind-up {
+ type loop-back-type;
+ default "LOOP_BACK_TYPE_NONE";
+ config false;
+ description
+ "The currently active (not just configured) type of looping back of the wire interface header shall be expressed here. The received header is returned to the remote site.";
+ }
+ leaf tx-level-cur {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ description
+ "Current transmit power";
+ }
+ leaf-list rx-level-cur-list {
+ type int8;
+ units "dBm";
+ default "99";
+ config false;
+ max-elements 4;
+ description
+ "Current receive power; Also used for receive signal power measured at the Medium Dependent Interface (MDI) of 10GBASE-T during training as described in 802.3 55.4.3.1";
+ }
+ leaf performance-monitoring-is-up {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = Performance values are currently collected and aggregated.";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-current-problems {
+ list current-problem-list {
+ key "sequence-number";
+ config false;
+ uses wire-interface-current-problem-type;
+ description
+ "none";
+ }
+ leaf number-of-current-problems {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of alarms, which are currently active on this interface.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "Date and time when the list of alarms has been changed for the last time.";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-current-performance {
+ list current-performance-data-list {
+ key "granularity-period";
+ config false;
+ min-elements 1;
+ max-elements 2;
+ uses wire-interface-current-performance-type;
+ description
+ "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.";
+ }
+ leaf number-of-current-performance-sets {
+ type int8;
+ default "-1";
+ config false;
+ description
+ "Number of sets of current performance values, which are provided in the list.";
+ }
+ description
+ "Aggregated performance information of the air interface at a particular moment.";
+ }
+
+ grouping wire-interface-historical-performances {
+ list historical-performance-data-list {
+ key "granularity-period period-end-time";
+ config false;
+ uses wire-interface-historical-performance-type;
+ description
+ "none";
+ }
+ leaf number-of-historical-performance-sets {
+ type int16;
+ default "-1";
+ config false;
+ description
+ "Number of sets of historical performance values, which are provided in the list.";
+ }
+ leaf time-of-latest-change {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "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).";
+ }
+ description
+ "Aggregated performance information of the air interface for a pre-defined measurement interval.";
+ }
+
+ grouping pmd-kind {
+ leaf pmd-name {
+ type string;
+ config false;
+ description
+ "To be chosen from the following list of PMD names according to IEEE 802.3 '10BASE5', 'FOIRL', '10BASE2', '10BROAD36', '10BASE-T', '10BASE-FP', '10BASE-FB', '10BASE-FL', '100BASE-T4', '100BASE-TX', '100BASE-BX10D', '100BASE-BX10U', '100BASE-FX', '100BASE-LX10', '100BASE-T2', '1000BASE-X', '1000BASE-BX10D', '1000BASE-BX10U', '1000BASE-LX', '1000BASE-LX10', '1000BASE-SX', '1000BASE-CX', '1000BASE-KX', '1000BASE-T', '10GBASE-X', '10GBASE-LX4', '10GBASE-KX4', '10GBASE-R', '10GBASE-ER', '10GBASE-LR', '10GBASE-SR', '10GBASE-LRM', '10GBASE-KR', '10GBASE-T', '10GBASE-PR-D1', '10GBASE-PR-D2', '10GBASE-PR-D3', '10GBASE-PR-D4', '10GBASE-PR-U1', '10GBASE-PR-U2', '10GBASE-PR-U3', '10GBASE-PR-U4', '40GBASE-R', '40GBASE-KR4', '40GBASE-CR4', '40GBASE-SR4', '4x10GBASE-SR', '40GBASE-LR4', '40GBASE-ER4', '40GBASE-FR', '100GBASE-R', '100GBASE-CR4', '100GBASE-KR4', '100GBASE-KP4', '100GBASE-CR10', '100GBASE-SR4', '100GBASE-SR10', '2x40GBASE-SR', '10x10GBASE-SR', '12x10GBASE-SR', '100GBASE-LR4', '100GBASE-ER4' and 'NOT_YET_DEFINED'. Some PMDs are distinguishing Full Duplex and Half Duplex. '_FD' and '_HD' are to be attached to the respective PMD name accordingly.";
+ }
+ leaf speed {
+ type string;
+ default "NOT_YET_DEFINED";
+ description
+ "Line speed of the PMD. Value to be chosen from '2Mbit/s', '10Mbit/s', '100Mbit/s', '1000Mbit/s', '10Gbit/s', '40Gbit/s', '100Gbit/s' or 'NOT_YET_DEFINED'. This field is not for calculation purposes, but for supporting selection of the correct PMD on application layer.";
+ }
+ leaf duplex {
+ type duplex-type;
+ default "DUPLEX_TYPE_NOT_YET_DEFINED";
+ description
+ "To be expressed, whether the PMD is full duplex or just half duplex. This field is not for configuration purposes, but for supporting selection of the correct PMD on application layer.";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * typedef statements
+ **************************************/
+
+ typedef loop-back-type {
+ type identityref {
+ base LOOP_BACK_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef rx-sync-preference-type {
+ type identityref {
+ base RX_SYNC_PREFERENCE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef rx-sync-role-type {
+ type identityref {
+ base RX_SYNC_ROLE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef mii-kind-type {
+ type identityref {
+ base MII_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef mdi-kind-type {
+ type identityref {
+ base MDI_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef medium-kind-type {
+ type identityref {
+ base MEDIUM_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef duplex-type {
+ type identityref {
+ base DUPLEX_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef signal-ordering-kind-type {
+ type identityref {
+ base SIGNAL_ORDERING_KIND_TYPE;
+ }
+ description
+ "none";
+ }
+
+ typedef pmd-negotiation-state-type {
+ type identityref {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ }
+ description
+ "none";
+ }
+
+ /*********************************************
+ * grouping statements for complex data types
+ *******************************************/
+
+ identity LOOP_BACK_TYPE {
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_NONE {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity LOOP_BACK_TYPE_EXTERNAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Parameter
+ If the internal loopback test succeeds but the external loopback fails, the Medium Attachment Unit (MAU) is faulty (e.g. SFP has to be replaced)";
+ }
+
+ identity LOOP_BACK_TYPE_INTERNAL {
+ base LOOP_BACK_TYPE;
+ description
+ "Parameter
+ If the internal loopback test fails, the Data Terminal Equipment (DTE) is faulty (e.g. board has to be replaced)";
+ }
+
+ identity LOOP_BACK_TYPE_NOT_YET_DEFINED {
+ base LOOP_BACK_TYPE;
+ description
+ "none";
+ }
+
+ identity RX_SYNC_PREFERENCE_TYPE {
+ description
+ "none";
+ }
+
+ identity RX_SYNC_PREFERENCE_TYPE_AUTO_MULTIPORT_DEVICE {
+ base RX_SYNC_PREFERENCE_TYPE;
+ description
+ "Master/Slave relation is determined by auto-negotiation and this device has a preference for being Master";
+ }
+
+ identity RX_SYNC_PREFERENCE_TYPE_AUTO_SINGLE_PORT_DEVICE {
+ base RX_SYNC_PREFERENCE_TYPE;
+ description
+ "Master/Slave relation is determined by auto-negotiation and this device has a preference for being Slave";
+ }
+
+ identity RX_SYNC_PREFERENCE_TYPE_MANUAL_MASTER {
+ base RX_SYNC_PREFERENCE_TYPE;
+ description
+ "Master/Slave relation is determined by manual configuration and this device shall be Master";
+ }
+
+ identity RX_SYNC_PREFERENCE_TYPE_MANUAL_SLAVE {
+ base RX_SYNC_PREFERENCE_TYPE;
+ description
+ "Master/Slave relation is determined by manual configuration and this device shall be Slave";
+ }
+
+ identity RX_SYNC_PREFERENCE_TYPE_NOT_YET_DEFINED {
+ base RX_SYNC_PREFERENCE_TYPE;
+ description
+ "none";
+ }
+
+ identity RX_SYNC_ROLE_TYPE {
+ description
+ "none";
+ }
+
+ identity RX_SYNC_ROLE_TYPE_MASTER {
+ base RX_SYNC_ROLE_TYPE;
+ description
+ "none";
+ }
+
+ identity RX_SYNC_ROLE_TYPE_SLAVE {
+ base RX_SYNC_ROLE_TYPE;
+ description
+ "none";
+ }
+
+ identity RX_SYNC_ROLE_TYPE_FAULT {
+ base RX_SYNC_ROLE_TYPE;
+ description
+ "none";
+ }
+
+ identity RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED {
+ base RX_SYNC_ROLE_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_GBIC {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_SOLDERED_CONNECTOR {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_SFP_SFP_PLUS_SFP28 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_XBI_300_PIN {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_XENPAK {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_XFP {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_XFP_E {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_XPAK {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_X2 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_DWDM_SFP_SFP_PLUS {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_QSFP {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_QSFP_PLUS {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_CXP {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD_4X {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD__X {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_QSFP28 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_CXP2 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_CDFP_STYLE1_STYLE2 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD_4X_FAN_OUT {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_SHIELDED_MINI_MULTILANE_HD_8X_FAN_OUT {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_CDFP_STYLE3 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_QSFP_MICRO {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_QSFP_DD {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_QSFP_PLUS_RATE_SELECT_V1 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_QSFP_PLUS_RATE_SELECT_V2 {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MII_KIND_TYPE_NOT_YET_DEFINED {
+ base MII_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE_SC {
+ base MDI_KIND_TYPE;
+ description
+ "Subscriber Connector";
+ }
+
+ identity MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1 {
+ base MDI_KIND_TYPE;
+ description
+ "Copper connector";
+ }
+
+ identity MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_2 {
+ base MDI_KIND_TYPE;
+ description
+ "Copper connector";
+ }
+
+ identity MDI_KIND_TYPE_BNC_TNC {
+ base MDI_KIND_TYPE;
+ description
+ "Bayonet/Threaded Neill-Concelman";
+ }
+
+ identity MDI_KIND_TYPE_FC {
+ base MDI_KIND_TYPE;
+ description
+ "Fibre Channel coax headers";
+ }
+
+ identity MDI_KIND_TYPE_FIBER_JACK {
+ base MDI_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE_LC {
+ base MDI_KIND_TYPE;
+ description
+ "Lucent Connector";
+ }
+
+ identity MDI_KIND_TYPE_MT_RJ {
+ base MDI_KIND_TYPE;
+ description
+ "Mechanical Transfer - Registered Jack";
+ }
+
+ identity MDI_KIND_TYPE_MU {
+ base MDI_KIND_TYPE;
+ description
+ "Multiple Optical";
+ }
+
+ identity MDI_KIND_TYPE_SG {
+ base MDI_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE_OPTICAL_PIGTAIL {
+ base MDI_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE_MPO1x12 {
+ base MDI_KIND_TYPE;
+ description
+ "Multifiber Parallel Optic";
+ }
+
+ identity MDI_KIND_TYPE_MPO2x16 {
+ base MDI_KIND_TYPE;
+ description
+ "Multifiber Parallel Optic";
+ }
+
+ identity MDI_KIND_TYPE_HSSDC_II {
+ base MDI_KIND_TYPE;
+ description
+ "High Speed Serial Data Connector";
+ }
+
+ identity MDI_KIND_TYPE_COPPER_PIGTAIL {
+ base MDI_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE_RJ45 {
+ base MDI_KIND_TYPE;
+ description
+ "8P8C, according to Clause 3 and Figures 1 through 5 of IEC 60603-7";
+ }
+
+ identity MDI_KIND_TYPE_NO_SEPERABLE_CONNECTOR {
+ base MDI_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE_MXC2x16 {
+ base MDI_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MDI_KIND_TYPE_ST {
+ base MDI_KIND_TYPE;
+ description
+ "according to IEC 60874-10:1992, also often called BFOC/2.5";
+ }
+
+ identity MDI_KIND_TYPE_NOT_YET_DEFINED {
+ base MDI_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE_TP_CAT3 {
+ base MEDIUM_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE_TP_CAT5 {
+ base MEDIUM_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE_TP_CAT6 {
+ base MEDIUM_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE_TP_CAT8 {
+ base MEDIUM_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE_SINGLE_MODE {
+ base MEDIUM_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE_MULTI_MODE {
+ base MEDIUM_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity MEDIUM_KIND_TYPE_NOT_YET_DEFINED {
+ base MEDIUM_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity DUPLEX_TYPE {
+ description
+ "none";
+ }
+
+ identity DUPLEX_TYPE_HALF_DUPLEX {
+ base DUPLEX_TYPE;
+ description
+ "none";
+ }
+
+ identity DUPLEX_TYPE_FULL_DUPLEX {
+ base DUPLEX_TYPE;
+ description
+ "none";
+ }
+
+ identity DUPLEX_TYPE_NOT_YET_DEFINED {
+ base DUPLEX_TYPE;
+ description
+ "none";
+ }
+
+ identity SIGNAL_ORDERING_KIND_TYPE {
+ description
+ "none";
+ }
+
+ identity SIGNAL_ORDERING_KIND_TYPE_MDI {
+ base SIGNAL_ORDERING_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity SIGNAL_ORDERING_KIND_TYPE_MDI_X {
+ base SIGNAL_ORDERING_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED {
+ base SIGNAL_ORDERING_KIND_TYPE;
+ description
+ "none";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE {
+ description
+ "none";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE_NONE {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ description
+ "Device does not support auto negotiation";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE_DISABLED {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ description
+ "Auto negotiation is disabled.";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE_ENABLED {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ description
+ "Auto negotiation is enabled, but currently nothing is connected";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE_IN_PROGRESS {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ description
+ "The auto-negotiation protocol is running and negotiation is currently in-progress";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE_COMPLETE {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ description
+ "The auto-negotation protocol has completed successfully";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE_FAILED {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ description
+ "The auto-negotation protocol has failed";
+ }
+
+ identity PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED {
+ base PMD_NEGOTIATION_STATE_TYPE;
+ description
+ "Device supports autonegotiation, but state is currently unknown, e.g. because device just booted";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE {
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_UNKNOWN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED {
+ base GRANULARITY_PERIOD_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE {
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NON_ALARMED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_WARNING {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MINOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_MAJOR {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_CRITICAL {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity SEVERITY_TYPE_NOT_YET_DEFINED {
+ base SEVERITY_TYPE;
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE {
+ description
+ "none";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UP {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Ready to pass packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "The interface does not pass any packets.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_TESTING {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "In some test mode. No operational packets can be passed.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_UNKNOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Status cannot be determined for some reason.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_DORMANT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Waiting for some external event.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_PRESENT {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+
+ identity INTERFACE_STATUS_TYPE_ADMIN_DOWN {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "Down due to configuration.";
+ }
+
+ identity INTERFACE_STATUS_TYPE_NOT_YET_DEFINED {
+ base INTERFACE_STATUS_TYPE;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package super-types
+ **************************************/
+
+ typedef granularity-period-type {
+ type identityref {
+ base GRANULARITY_PERIOD_TYPE;
+ }
+ description
+ "The enumeration with the options for granularity period of the performance data.";
+ }
+
+ typedef severity-type {
+ type identityref {
+ base SEVERITY_TYPE;
+ }
+ description
+ "According to ITU-T M.3160";
+ }
+
+ typedef interface-status-type {
+ type identityref {
+ base INTERFACE_STATUS_TYPE;
+ }
+ description
+ "Current Interface Status";
+ }
+
+ grouping problem-kind-severity-type {
+ leaf problem-kind-name {
+ type string;
+ description
+ "Name of the alarm according to supportedAlarmList";
+ }
+ leaf problem-kind-severity {
+ type severity-type;
+ default "SEVERITY_TYPE_NOT_YET_DEFINED";
+ description
+ "Severity of this type of alarm.";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-current-problem-type {
+ leaf problem-name {
+ type string;
+ default "Problem name not specified.";
+ config false;
+ description
+ "Name of the alarm according to supportedAlarmList attribute in MauType datatype";
+ }
+ uses current-problem;
+ description
+ "none";
+ }
+
+ grouping wire-interface-performance-type {
+ leaf es {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of errored seconds according to 802.3 30.8.1.1.13 aLineESs";
+ }
+ leaf ses {
+ type int32;
+ units "s";
+ default "-1";
+ config false;
+ description
+ "Number of severely errored seconds according to 802.3 30.8.1.1.12 aLineSESs";
+ }
+ leaf symbol-error-during-carrier {
+ type int32;
+ units "symbol";
+ default "-1";
+ config false;
+ description
+ "Source: 802.3 according to 30.3.2.1.5 aSymbolErrorDuringCarrier. Number of times when valid carrier was present and an invalid data symbol occured.";
+ }
+ leaf low-power-idle-transmitter-ms {
+ type int32;
+ units "ms";
+ default "-1";
+ config false;
+ description
+ "Source: 802.3 similar to 30.3.2.1.8 aTransmitLPIMicroseconds. Number of milliseconds (original counter expresses microseconds), during which the transmitter was in power save mode";
+ }
+ leaf low-power-idle-receiver-ms {
+ type int32;
+ units "ms";
+ default "-1";
+ config false;
+ description
+ "Source: 802.3 similar to 30.3.2.1.9 aReceiveLPIMicroseconds. Number of milliseconds (original counter expresses microseconds), during which the receiver was in power save mode";
+ }
+ description
+ "none";
+ }
+
+ grouping wire-interface-current-performance-type {
+ container performance-data {
+ config false;
+ uses wire-interface-performance-type;
+ description
+ "none";
+ }
+ uses current-performance;
+ description
+ "Turns performance information into current performance information by inheriting from OTN_CurrentData.";
+ }
+
+ grouping wire-interface-historical-performance-type {
+ container performance-data {
+ config false;
+ uses wire-interface-performance-type;
+ description
+ "none";
+ }
+ uses historical-performance;
+ description
+ "Turns performance information into historical performance information by inheriting from OTN_HistoryData.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wred-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wred-profile-1-0.yang
new file mode 100644
index 000000000..2b9dd8536
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/yang/wred-profile-1-0.yang
@@ -0,0 +1,279 @@
+module wred-profile-1-0 {
+ yang-version 1.1;
+ namespace "urn:onf:yang:wred-profile-1-0";
+ prefix wred-profile;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import core-model-1-4 {
+ prefix core-model;
+ }
+
+ organization
+ "openBackhaul.com proposal to Open Networking Foundation (ONF)";
+ contact
+ "WG Web : https://github.com/openBackhaul/Overview
+ WG List: WredProfile@openBackhaul.com
+ Editor : Thorsten Heinze
+ Email : Thorsten.Heinze@openBackhaul.com";
+ description
+ "Technology specific definition for WRED (Weighted Random Early Detection) profiles that can be referenced by multiple interface instances.
+
+ Copyright 2019 openBackhaul.com
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-01-24 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/wredProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/wredProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+ revision 2019-07-12 {
+ description
+ "Model for the Transport SDN Pilot at Telefonica Germany.
+ Please view https://github.com/openBackhaul/wredProfile/issues for changes.";
+ reference
+ "https://github.com/openBackhaul/wredProfile/tree/tsp: Model definition
+ https://github.com/openBackhaul/onfCoreIm/tree/tsp: ONF TR-512 Core IM incl. Profile and enhanced Equipment definition";
+ }
+
+ identity PROFILE_NAME_TYPE_WRED_PROFILE {
+ base core-model:PROFILE_NAME_TYPE;
+ description
+ "none";
+ }
+
+ augment "/core-model:control-construct/core-model:profile-collection/core-model:profile" {
+ when "derived-from-or-self(./core-model:profile-name, 'wred-profile:PROFILE_NAME_TYPE_WRED_PROFILE')";
+ uses wred-profile-spec;
+ description
+ "none";
+ }
+
+ /****************************************
+ * package notifications
+ **************************************/
+
+ notification object-creation-notification {
+ uses object-creation-notification;
+ description
+ "none";
+ }
+
+ grouping object-creation-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object creation notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ leaf object-type {
+ type string;
+ default "Type of created object not specified.";
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ notification object-deletion-notification {
+ uses object-deletion-notification;
+ description
+ "none";
+ }
+
+ grouping object-deletion-notification {
+ leaf counter {
+ type int32;
+ default "-1";
+ config false;
+ description
+ "Counts object deletion notifications.";
+ }
+ leaf timestamp {
+ type yang:date-and-time;
+ default "2010-11-20T14:00:00+01:00";
+ config false;
+ description
+ "none";
+ }
+ leaf object-id-ref {
+ type leafref {
+ path "/core-model:control-construct/core-model:profile-collection/core-model:profile/core-model:uuid";
+ require-instance false;
+ }
+ config false;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ /****************************************
+ * grouping statements for object classes
+ **************************************/
+
+ grouping wred-profile-spec {
+ container wred-profile-pac {
+ uses wred-profile-pac;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping wred-profile-pac {
+ container wred-profile-capability {
+ config false;
+ uses wred-profile-capability;
+ description
+ "none";
+ }
+ container wred-profile-configuration {
+ uses wred-profile-configuration;
+ description
+ "none";
+ }
+ description
+ "none";
+ }
+
+ grouping wred-profile-capability {
+ leaf available-buffer-size {
+ type int32;
+ units "Byte";
+ default "-1";
+ config false;
+ description
+ "Maximum value that could be configured as thresholdHigh in Byte.";
+ }
+ leaf drop-probability-at-threshold-low-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = It is possible to set a drop probability at the lower threshold.";
+ }
+ leaf gentle-wred-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = The device allows activating a linear increase of drop probability between dropProbabilityAtThresholdHigh and 100% at thresholdGentle (usually drop probability jumps to 100% at thresholdHigh).";
+ }
+ leaf sensitivity-setting-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = It is possible to set the sensitivity for the burst size.";
+ }
+ leaf coloring-is-avail {
+ type boolean;
+ default "false";
+ config false;
+ description
+ "1 = The device allows marking exceeding packets yellow instead of immediately discarding them.";
+ }
+ description
+ "none";
+ }
+
+ grouping wred-profile-configuration {
+ leaf profile-name {
+ type string;
+ default "Name of profile not yet defined.";
+ description
+ "Identifier of the profile. Could be a name, could be a number. Free text field to be filled by the operator.";
+ }
+ leaf threshold-low {
+ type int32;
+ units "Byte";
+ default "-1";
+ description
+ "Defines the lower threshold in Byte. When average queue content is exceeding this value, packets start getting dropped. Probability of dropping is linear increasing until it reaches the value configured in dropProbabilityAtThresholdHigh when average queue content reaches thresholdHigh.";
+ }
+ leaf drop-probability-at-threshold-low {
+ type int8;
+ units "%";
+ default "-1";
+ description
+ "Only relevant if (dropProbabilityAtLowThresholdIsAvail==1). Defines the probability (as a percentage) of an incoming packet getting dropped when the content of the queue reaches the low threshold.";
+ }
+ leaf threshold-high {
+ type int32;
+ units "Byte";
+ default "-1";
+ description
+ "Defines the upper threshold in Byte. When average queue content is reaching this value, incoming packets are dropped with the probability configured in dropProbabilityAtThresholdHigh. When average queue content is exceeding this value, all incoming packets get dropped.";
+ }
+ leaf drop-probability-at-threshold-high {
+ type int8;
+ units "%";
+ default "-1";
+ description
+ "Defines the probability (as a percentage) of an incoming packet getting dropped when the content of the queue reaches the upper threshold.";
+ }
+ leaf gentle-wred-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (gentleWredIsAvail==1). 1 = The drop probability is linear increasing between dropProbabilityAtThresholdHigh and 100% at thresholdGentle (otherwise drop probability jumps to 100% at thresholdHigh).";
+ }
+ leaf threshold-gentle {
+ type int32;
+ units "Byte";
+ default "-1";
+ description
+ "Only relevant if (gentleWredIsAvail==1) AND (gentleWredIsOn==1). Defines the 100% dropping threshold for gentle WRED in Byte. When average queue content reaches or exceeds this value, incoming packets get dropped with 100% probability.";
+ }
+ leaf sensitivity {
+ type int8;
+ units "%";
+ default "-1";
+ description
+ "Only relevant if (sensitivitySettingIsAvail==1). Defines how sensitive WRED reacts on traffic burst. low values = WRED reacts quickly and is sensitive to short bursts. high values = WRED reacts slowly on short bursts, which could result in buffer overflow and tail drop. Values between 0 and 15.";
+ }
+ leaf coloring-is-on {
+ type boolean;
+ default "false";
+ description
+ "Only relevant if (colloringIsAvail==1). 1 = Exceeding packets are marked yellow instead of being immediately discarded.";
+ }
+ description
+ "none";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java
new file mode 100644
index 000000000..4b69e4232
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java
@@ -0,0 +1,55 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import java.io.IOException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.DeviceManagerOnf14Impl;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
+
+public class TestDeviceManagerOnf14Impl extends Mockito {
+
+ DeviceManagerOnf14Impl devMgrOnf14;
+ private static NetconfNetworkElementService netconfElemService;
+
+ @Before
+ public void init() throws InterruptedException, IOException {
+ netconfElemService = mock(NetconfNetworkElementService.class);
+ }
+
+ @Test
+ public void test() throws Exception {
+ devMgrOnf14 = new DeviceManagerOnf14Impl();
+
+ try {
+ devMgrOnf14.setNetconfNetworkElementService(netconfElemService);
+ devMgrOnf14.init();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @After
+ public void cleanUp() throws Exception {
+ devMgrOnf14.close();
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java
new file mode 100644
index 000000000..b9f1c2131
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java
@@ -0,0 +1,198 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPECRITICAL;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMAJOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMINOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPENONALARMED;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEWARNING;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class TestOnf14AirInterfaceNotificationListener extends Mockito {
+ private NetconfBindingAccessor accessor;
+ private NodeId nodeId;
+ private DeviceManagerServiceProvider serviceProvider;
+ private FaultService faultService;
+ private DataProvider databaseService;
+ private NotificationService notificationService;
+
+ private ObjectDeletionNotification deletionNotif;
+ private ObjectCreationNotification creationNotif;
+ private ProblemNotification problemNotif;
+ private AttributeValueChangedNotification attrValChangedNotif;
+ private @NonNull WebsocketManagerService websocketService;
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ nodeId = mock(NodeId.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ faultService = mock(FaultService.class);
+ databaseService = mock(DataProvider.class);
+ notificationService = mock(NotificationService.class);
+ websocketService = mock(WebsocketManagerService.class);
+
+ problemNotif = mock(ProblemNotification.class);
+ deletionNotif = mock(ObjectDeletionNotification.class);
+ creationNotif = mock(ObjectCreationNotification.class);
+ attrValChangedNotif = mock(AttributeValueChangedNotification.class);
+
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(problemNotif.getCounter()).thenReturn(10);
+ when(problemNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+ when(problemNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
+ when(problemNotif.getProblem()).thenReturn("modulationIsDownShifted");
+
+ when(attrValChangedNotif.getAttributeName()).thenReturn("12345678-0123-2345-abcd-0123456789AB");
+ when(attrValChangedNotif.getCounter()).thenReturn(20);
+ when(attrValChangedNotif.getNewValue()).thenReturn("new-value");
+ when(attrValChangedNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(attrValChangedNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(creationNotif.getObjectType()).thenReturn("air-interface-name");
+ when(creationNotif.getCounter()).thenReturn(20);
+ when(creationNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(creationNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(deletionNotif.getCounter()).thenReturn(20);
+ when(deletionNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(deletionNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+ when(serviceProvider.getDataProvider()).thenReturn(databaseService);
+ when(serviceProvider.getNotificationService()).thenReturn(notificationService);
+ when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
+ }
+
+ @Test
+ public void testOtherNotif() {
+ Onf14AirInterfaceNotificationListener notifListener =
+ new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
+
+ notifListener.onObjectDeletionNotification(deletionNotif);
+ notifListener.onObjectCreationNotification(creationNotif);
+ notifListener.onAttributeValueChangedNotification(attrValChangedNotif);
+ }
+
+ @Test
+ public void testProblemNotifCritical() {
+ Onf14AirInterfaceNotificationListener notifListener =
+ new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPECRITICAL.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifMajor() {
+ Onf14AirInterfaceNotificationListener notifListener =
+ new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEMAJOR.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifMinor() {
+ Onf14AirInterfaceNotificationListener notifListener =
+ new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEMINOR.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifWarning() {
+ Onf14AirInterfaceNotificationListener notifListener =
+ new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEWARNING.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifNonalarmed() {
+ Onf14AirInterfaceNotificationListener notifListener =
+ new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPENONALARMED.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifNull() {
+ Onf14AirInterfaceNotificationListener notifListener =
+ new Onf14AirInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenReturn(null);
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java
new file mode 100644
index 000000000..09e44f47d
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java
@@ -0,0 +1,197 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14EthernetContainerNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPECRITICAL;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMAJOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEMINOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPENONALARMED;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.ethernet.container._2._0.rev200121.SEVERITYTYPEWARNING;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class TestOnf14EthernetContainerNotificationListener extends Mockito {
+ private NetconfBindingAccessor accessor;
+ private NodeId nodeId;
+ private DeviceManagerServiceProvider serviceProvider;
+ private FaultService faultService;
+ private DataProvider databaseService;
+ private NotificationService notificationService;
+
+ private ObjectDeletionNotification deletionNotif;
+ private ObjectCreationNotification creationNotif;
+ private ProblemNotification problemNotif;
+ private AttributeValueChangedNotification attrValChangedNotif;
+ private WebsocketManagerService websocketService;
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ nodeId = mock(NodeId.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ faultService = mock(FaultService.class);
+ databaseService = mock(DataProvider.class);
+ notificationService = mock(NotificationService.class);
+ websocketService = mock(WebsocketManagerService.class);
+
+ problemNotif = mock(ProblemNotification.class);
+ deletionNotif = mock(ObjectDeletionNotification.class);
+ creationNotif = mock(ObjectCreationNotification.class);
+ attrValChangedNotif = mock(AttributeValueChangedNotification.class);
+
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(problemNotif.getCounter()).thenReturn(10L);
+ when(problemNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+ when(problemNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
+ when(problemNotif.getProblem()).thenReturn("modulationIsDownShifted");
+
+ when(attrValChangedNotif.getAttributeName()).thenReturn("12345678-0123-2345-abcd-0123456789AB");
+ when(attrValChangedNotif.getCounter()).thenReturn(20L);
+ when(attrValChangedNotif.getNewValue()).thenReturn("new-value");
+ when(attrValChangedNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(attrValChangedNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(creationNotif.getObjectType()).thenReturn("air-interface-name");
+ when(creationNotif.getCounter()).thenReturn(20L);
+ when(creationNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(creationNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(deletionNotif.getCounter()).thenReturn(20L);
+ when(deletionNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(deletionNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+ when(serviceProvider.getDataProvider()).thenReturn(databaseService);
+ when(serviceProvider.getNotificationService()).thenReturn(notificationService);
+ when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
+ }
+
+ @Test
+ public void testOtherNotif() {
+ Onf14EthernetContainerNotificationListener notifListener =
+ new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
+
+ notifListener.onObjectDeletionNotification(deletionNotif);
+ notifListener.onObjectCreationNotification(creationNotif);
+ notifListener.onAttributeValueChangedNotification(attrValChangedNotif);
+ }
+
+ @Test
+ public void testProblemNotifCritical() {
+ Onf14EthernetContainerNotificationListener notifListener =
+ new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPECRITICAL.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifMajor() {
+ Onf14EthernetContainerNotificationListener notifListener =
+ new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEMAJOR.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifMinor() {
+ Onf14EthernetContainerNotificationListener notifListener =
+ new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEMINOR.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifWarning() {
+ Onf14EthernetContainerNotificationListener notifListener =
+ new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEWARNING.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifNonalarmed() {
+ Onf14EthernetContainerNotificationListener notifListener =
+ new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPENONALARMED.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifNull() {
+ Onf14EthernetContainerNotificationListener notifListener =
+ new Onf14EthernetContainerNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenReturn(null);
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java
new file mode 100644
index 000000000..30b4c9b1a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java
@@ -0,0 +1,123 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.Onf14NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataBroker;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+
+public class TestOnf14NetworkElement extends Mockito {
+
+ private static String NODEIDSTRING = "nSky";
+
+ static NetconfDomAccessor accessor;
+ static DeviceManagerServiceProvider serviceProvider;
+ static Capabilities capabilities;
+ static DataProvider dataProvider;
+ static FaultService faultService;
+ static DOMDataBroker dataBroker;
+ static TransactionUtils transactionUtils;
+ static ControlConstruct controlConstruct;
+
+ @Before
+ public void init() {
+ capabilities = mock(Capabilities.class);
+ accessor = mock(NetconfDomAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+
+ NodeId nNodeId = new NodeId("nSky");
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+
+ dataProvider = mock(DataProvider.class);
+ when(serviceProvider.getDataProvider()).thenReturn(dataProvider);
+
+ faultService = mock(FaultService.class);
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+
+ dataBroker = mock(DOMDataBroker.class);
+ when(accessor.getDataBroker()).thenReturn(dataBroker);
+
+ controlConstruct = mock(ControlConstruct.class);
+
+ YangInstanceIdentifier CONTROLCONSTRUCT_IID =
+ YangInstanceIdentifier.builder().node(ControlConstruct.QNAME).build();
+
+ when(accessor.readData(LogicalDatastoreType.CONFIGURATION, CONTROLCONSTRUCT_IID, ControlConstruct.class))
+ .thenReturn(Optional.of(controlConstruct));
+
+ List<UniversalId> topLevelEqList = null;
+ UniversalId uuid = new UniversalId("0Aabcdef-0abc-0cfD-0abC-0123456789AB");
+ topLevelEqList = Arrays.asList(uuid);
+
+ when(Optional.of(controlConstruct).get().getTopLevelEquipment()).thenReturn(topLevelEqList);
+ }
+
+ @Test
+ public void testGeneric() {
+ Optional<NetworkElement> onfNe;
+ NodeId nodeId = new NodeId(NODEIDSTRING);
+ NetconfBindingAccessor bindingAccessor = mock(NetconfBindingAccessor.class);
+ when(bindingAccessor.getTransactionUtils()).thenReturn(mock(TransactionUtils.class));
+ when(bindingAccessor.getNodeId()).thenReturn(nodeId);
+
+ NetconfDomAccessor domAccessor = mock(NetconfDomAccessor.class);
+ when(domAccessor.getNodeId()).thenReturn(nodeId);
+
+ when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true);
+ when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor));
+ when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor));
+
+ ConfigurationFileRepresentation configurationRepresentation = mock(ConfigurationFileRepresentation.class);
+ when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation);
+
+ Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
+ onfNe = factory.create(accessor, serviceProvider);
+ assertTrue(onfNe.isPresent());
+
+ onfNe.get().register();
+ onfNe.get().deregister();
+ onfNe.get().getAcessor();
+ onfNe.get().getDeviceType();
+ onfNe.get().warmstart();
+ onfNe.get().getService(null);
+ assertEquals(onfNe.get().getNodeId().getValue(), "nSky");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java
new file mode 100644
index 000000000..f9041eb80
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java
@@ -0,0 +1,71 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import static org.junit.Assert.assertTrue;
+import java.io.IOException;
+import java.util.Optional;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.Onf14NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct;
+
+public class TestOnf14NetworkElementFactory extends Mockito {
+
+ private static NetconfBindingAccessor accessor;
+ private static Capabilities capabilities;
+ private static DeviceManagerServiceProvider serviceProvider;
+ private static ConfigurationFileRepresentation configurationRepresentation;
+
+
+ @BeforeClass
+ public static void init() throws InterruptedException, IOException {
+ capabilities = mock(Capabilities.class);
+ accessor = mock(NetconfBindingAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ configurationRepresentation = mock(ConfigurationFileRepresentation.class);
+
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(serviceProvider.getDataProvider()).thenReturn(mock(DataProvider.class));
+ when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation);
+ }
+
+ @Test
+ public void testCreateOnf14Component() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true);
+ when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(mock(NetconfBindingAccessor.class)));
+ when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(mock(NetconfDomAccessor.class)));
+ Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
+ assertTrue((factory.create(accessor, serviceProvider)).isPresent());
+ }
+
+ @Test
+ public void testCreateNone() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(false);
+ Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory();
+ assertTrue(factory.create(accessor, serviceProvider).isEmpty());
+ }
+}
+
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java
new file mode 100644
index 000000000..b0b00d935
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java
@@ -0,0 +1,127 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import static org.junit.Assert.assertEquals;
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.dataprovider.Onf14ToInternalDataModel;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.Equipment;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ActualEquipment;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolder;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.ContainedHolderKey;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.equipment.detail.ManufacturedThing;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.manufactured.thing.EquipmentInstance;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.manufactured.thing.EquipmentType;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.manufactured.thing.ManufacturerProperties;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class TestOnf14ToInternalDataModel2 extends Mockito {
+
+ private static NodeId nodeId;
+ private static Equipment currentEq;
+ private static Equipment parentEq;
+ private static ActualEquipment component;
+ private static ContainedHolder holder;
+ private static ManufacturedThing manThing;
+ private static ManufacturerProperties manProperties;
+ private static EquipmentInstance eqInstance;
+ private static EquipmentType eqType;
+
+ @BeforeClass
+ public static void init() {
+ nodeId = mock(NodeId.class);
+ currentEq = mock(Equipment.class);
+ parentEq = mock(Equipment.class);
+ component = mock(ActualEquipment.class);
+ holder = mock(ContainedHolder.class);
+ manThing = mock(ManufacturedThing.class);
+ manProperties = mock(ManufacturerProperties.class);
+ eqInstance = mock(EquipmentInstance.class);
+ eqType = mock(EquipmentType.class);
+
+ when(nodeId.getValue()).thenReturn("CoreModel-1-4-node");
+
+ when(component.getLocalId()).thenReturn("actLocalEq");
+ when(currentEq.getUuid()).thenReturn(new UniversalId("0Aabcdef-0abc-0cfD-0abC-0123456789AB"));
+ when(parentEq.getUuid()).thenReturn(new UniversalId("0Aabcdef-0123-0abc-abcd-0123456789AB"));
+
+ @NonNull Map<ContainedHolderKey, ContainedHolder> containedHolderList = new HashMap<>();
+ containedHolderList.put(holder.key(),holder);
+ when(currentEq.nonnullContainedHolder()).thenReturn(containedHolderList);
+
+ }
+
+ @Test
+ public void test1() {
+
+ Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
+
+ when(currentEq.getActualEquipment()).thenReturn(component);
+ when(holder.getOccupyingFru()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
+ when(component.getManufacturedThing()).thenReturn(manThing);
+ when(manThing.getManufacturerProperties()).thenReturn(manProperties);
+ when(manThing.getEquipmentInstance()).thenReturn(eqInstance);
+ when(eqInstance.getManufactureDate()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+ when(manThing.getEquipmentType()).thenReturn(eqType);
+
+ model.getInternalEquipment(nodeId, currentEq, parentEq, 0);
+ assertEquals(currentEq.getActualEquipment().getLocalId(), "actLocalEq");
+ }
+
+ @Test
+ public void test2() {
+
+ Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
+
+ when(holder.getOccupyingFru()).thenReturn(null);
+ when(component.getManufacturedThing()).thenReturn(null);
+ when(manThing.getManufacturerProperties()).thenReturn(null);
+ when(manThing.getEquipmentInstance()).thenReturn(null);
+ when(manThing.getEquipmentType()).thenReturn(null);
+
+ model.getInternalEquipment(nodeId, currentEq, null, 0);
+ }
+
+
+ @Test
+ public void test3() {
+ Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
+
+ when(component.getManufacturedThing()).thenReturn(manThing);
+ when(manThing.getManufacturerProperties()).thenReturn(null);
+ when(manThing.getEquipmentInstance()).thenReturn(null);
+ when(manThing.getEquipmentType()).thenReturn(null);
+
+ model.getInternalEquipment(nodeId, currentEq, null, 0);
+ }
+
+ @Test
+ public void test4() {
+ Onf14ToInternalDataModel model = new Onf14ToInternalDataModel();
+
+ when(currentEq.getActualEquipment()).thenReturn(null);
+ model.getInternalEquipment(nodeId, currentEq, null, 0);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java
new file mode 100644
index 000000000..e64847b91
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java
@@ -0,0 +1,198 @@
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterfaceNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.UniversalId;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.AttributeValueChangedNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectCreationNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ObjectDeletionNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.ProblemNotification;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPE;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPENONALARMED;
+import org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class TestOnf14WireInterfaceNotificationListener extends Mockito {
+ private NetconfBindingAccessor accessor;
+ private NodeId nodeId;
+ private DeviceManagerServiceProvider serviceProvider;
+ private FaultService faultService;
+ private DataProvider databaseService;
+ private NotificationService notificationService;
+
+ private ObjectDeletionNotification deletionNotif;
+ private ObjectCreationNotification creationNotif;
+ private ProblemNotification problemNotif;
+ private AttributeValueChangedNotification attrValChangedNotif;
+ private @NonNull WebsocketManagerService websocketService;
+
+ @Before
+ public void init() {
+ accessor = mock(NetconfBindingAccessor.class);
+ nodeId = mock(NodeId.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ faultService = mock(FaultService.class);
+ databaseService = mock(DataProvider.class);
+ notificationService = mock(NotificationService.class);
+ websocketService = mock(WebsocketManagerService.class);
+
+ problemNotif = mock(ProblemNotification.class);
+ deletionNotif = mock(ObjectDeletionNotification.class);
+ creationNotif = mock(ObjectCreationNotification.class);
+ attrValChangedNotif = mock(AttributeValueChangedNotification.class);
+
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(problemNotif.getCounter()).thenReturn(10);
+ when(problemNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+ when(problemNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-0abc-abcd-0123456789AB"));
+ when(problemNotif.getProblem()).thenReturn("modulationIsDownShifted");
+
+ when(attrValChangedNotif.getAttributeName()).thenReturn("12345678-0123-2345-abcd-0123456789AB");
+ when(attrValChangedNotif.getCounter()).thenReturn(20);
+ when(attrValChangedNotif.getNewValue()).thenReturn("new-value");
+ when(attrValChangedNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(attrValChangedNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(creationNotif.getObjectType()).thenReturn("air-interface-name");
+ when(creationNotif.getCounter()).thenReturn(20);
+ when(creationNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(creationNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(deletionNotif.getCounter()).thenReturn(20);
+ when(deletionNotif.getObjectIdRef()).thenReturn(new UniversalId("12345678-0123-1234-abcd-0123456789AB"));
+ when(deletionNotif.getTimestamp()).thenReturn(new DateAndTime("2020-02-05T12:30:45.283Z"));
+
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+ when(serviceProvider.getDataProvider()).thenReturn(databaseService);
+ when(serviceProvider.getNotificationService()).thenReturn(notificationService);
+ when(serviceProvider.getWebsocketService()).thenReturn(websocketService);
+ }
+
+ @Test
+ public void testOtherNotif() {
+ Onf14WireInterfaceNotificationListener notifListener =
+ new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
+
+ notifListener.onObjectDeletionNotification(deletionNotif);
+ notifListener.onObjectCreationNotification(creationNotif);
+ notifListener.onAttributeValueChangedNotification(attrValChangedNotif);
+ }
+
+ @Test
+ public void testProblemNotifCritical() {
+ Onf14WireInterfaceNotificationListener notifListener =
+ new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPECRITICAL.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifMajor() {
+ Onf14WireInterfaceNotificationListener notifListener =
+ new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEMAJOR.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifMinor() {
+ Onf14WireInterfaceNotificationListener notifListener =
+ new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEMINOR.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifWarning() {
+ Onf14WireInterfaceNotificationListener notifListener =
+ new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPEWARNING.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifNonalarmed() {
+ Onf14WireInterfaceNotificationListener notifListener =
+ new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenAnswer(new Answer<Class<? extends SEVERITYTYPE>>() {
+ @Override
+ public Class<? extends SEVERITYTYPE> answer(InvocationOnMock invocation) throws Throwable {
+ return SEVERITYTYPENONALARMED.class;
+ }
+ });
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+ @Test
+ public void testProblemNotifNull() {
+ Onf14WireInterfaceNotificationListener notifListener =
+ new Onf14WireInterfaceNotificationListener(accessor, serviceProvider);
+
+ when(problemNotif.getSeverity()).thenReturn(null);
+
+ notifListener.onProblemNotification(problemNotif);
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java
new file mode 100644
index 000000000..686942a6b
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java
@@ -0,0 +1,80 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14;
+
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14AirInterface;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.impl.interfaces.Onf14WireInterface;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+
+public class TestSeverity extends Mockito {
+
+ @Test
+ public void test1_1() {
+ assertTrue(Onf14WireInterface.mapSeverity(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPECRITICAL.class)
+ .equals(SeverityType.Critical));
+ }
+
+ @Test
+ public void test1_2() {
+ assertTrue(Onf14WireInterface.mapSeverity(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEWARNING.class)
+ .equals(SeverityType.Warning));
+ }
+
+ @Test
+ public void test1_3() {
+ assertTrue(Onf14WireInterface.mapSeverity(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMINOR.class)
+ .equals(SeverityType.Minor));
+ }
+
+ @Test
+ public void test1_4() {
+ assertTrue(Onf14WireInterface.mapSeverity(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.wire._interface._2._0.rev200123.SEVERITYTYPEMAJOR.class)
+ .equals(SeverityType.Major));
+ }
+
+ public void test2_1() {
+ assertTrue(Onf14AirInterface.mapSeverity(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPECRITICAL.class)
+ .equals(SeverityType.Critical));
+ }
+
+ @Test
+ public void test2_2() {
+ assertTrue(Onf14AirInterface.mapSeverity(
+ org.opendaylight.yang.gen.v1.urn.onf.yang.air._interface._2._0.rev200121.SEVERITYTYPEMINOR.class)
+ .equals(SeverityType.Minor));
+ }
+
+ @Test
+ public void test2_3() {
+ assertTrue(Onf14AirInterface.mapSeverity(null).equals(SeverityType.NonAlarmed));
+ }
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/simplelogger.properties b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/simplelogger.properties
new file mode 100644
index 000000000..9af26dc96
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/simplelogger.properties
@@ -0,0 +1,61 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# SLF4J's SimpleLogger configuration file
+# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err.
+
+# Default logging detail level for all instances of SimpleLogger.
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, defaults to "info".
+org.slf4j.simpleLogger.defaultLogLevel=info
+
+# Logging detail level for a SimpleLogger instance named "xxx.yyy.zzz".
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, the default logging detail level is used.
+# org.slf4j.simpleLogger.log.xxx.yyy=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.test=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.database=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.archiveservice=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes.Resources=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container=info
+
+# Set to true if you want the current date and time to be included in output messages.
+# Default is false, and will output the number of milliseconds elapsed since startup.
+#org.slf4j.simpleLogger.showDateTime=false
+
+# The date and time format to be used in the output messages.
+# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat.
+# If the format is not specified or is invalid, the default format is used.
+# The default format is yyyy-MM-dd HH:mm:ss:SSS Z.
+#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
+
+# Set to true if you want to output the current thread name.
+# Defaults to true.
+#org.slf4j.simpleLogger.showThreadName=true
+
+# Set to true if you want the Logger instance name to be included in output messages.
+# Defaults to true.
+#org.slf4j.simpleLogger.showLogName=true
+
+# Set to true if you want the last component of the name to be included in output messages.
+# Defaults to false.
+#org.slf4j.simpleLogger.showShortLogName=false
diff --git a/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml
new file mode 100644
index 000000000..54f1f49e6
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>single-feature-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-openroadm-feature</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>feature</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-openroadm-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml
new file mode 100755
index 000000000..c07ce11f8
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-openroadm-installer</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <properties>
+ <application.name>sdnr-wt-devicemanager-onap-openroadm</application.name>
+ <include.transitive.dependencies>false</include.transitive.dependencies>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-feature</artifactId>
+ <version>${project.version}</version>
+ <type>xml</type>
+ <classifier>features</classifier>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>${application.name}-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>maven-repo-zip</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <attach>true</attach>
+ <finalName>stage/${application.name}-${project.version}</finalName>
+ <descriptors>
+ <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
+ </descriptors>
+ <appendAssemblyId>true</appendAssemblyId>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-nested-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <transitive>true</transitive>
+ <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>true</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/openroadm/installer/src/assembly/assemble_mvnrepo_zip.xml b/sdnr/wt/devicemanager-onap/openroadm/installer/src/assembly/assemble_mvnrepo_zip.xml
new file mode 100644
index 000000000..dfe5060bf
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -0,0 +1,47 @@
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<!-- Defines how we build the .zip file which is our distribution. -->
+
+<assembly
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <id>repo</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <!-- we want "system" and related files right at the root level
+ as this file is suppose to be unzip on top of a karaf
+ distro. -->
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>target/assembly/</directory>
+ <outputDirectory>.</outputDirectory>
+ <excludes>
+ </excludes>
+ </fileSet>
+ </fileSets>
+
+</assembly>
diff --git a/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml
new file mode 100644
index 000000000..923f29693
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-openroadm-model</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ </properties>
+
+ <dependencies>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/openroadm/model/src/main/yang/devicemanager-openroadm.yang b/sdnr/wt/devicemanager-onap/openroadm/model/src/main/yang/devicemanager-openroadm.yang
new file mode 100644
index 000000000..b1f7980db
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/model/src/main/yang/devicemanager-openroadm.yang
@@ -0,0 +1,37 @@
+module devicemanager-openroadm{
+
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:devicemanager-openroadm";
+ prefix devicemanager-openroadm;
+
+ organization
+ "highstreet technologies GmbH";
+ contact
+ "Web: <https://highstreet-technologies.com>
+ O-RAN: <https://wiki.o-ran-sc.org/display/OAM/Operations+and+Maintenance";
+
+ description
+ "DeviceManager openroadm Module
+
+ Copyright 2020 highstreet technologies GmbH Intellectual Property.
+ All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the 'License');
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an 'AS IS' BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.";
+
+ revision 2020-03-02 {
+ description
+ "Initial revision";
+ reference
+ "Implementation of openroadm";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/pom.xml
new file mode 100755
index 000000000..fe585c325
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/pom.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-openroadm-top</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+
+ <modules>
+ <module>model</module>
+ <module>provider</module>
+ <module>feature</module>
+ <module>installer</module>
+ </modules>
+
+ <properties>
+ <feature-name>sdnr-wt-devicemanager-onap-openroadm</feature-name>
+ </properties>
+ <!-- <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.9</version>
+ </plugin>
+ </plugins>
+ </reporting> -->
+</project>
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/copyright b/sdnr/wt/devicemanager-onap/openroadm/provider/copyright
new file mode 100644
index 000000000..754b6218f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/copyright
@@ -0,0 +1,17 @@
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml
new file mode 100644
index 000000000..c1f50fb55
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>binding-parent</artifactId>
+ <version>2.2.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-openroadm-provider</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <name>ccsdk-features :: ${project.artifactId}</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ </license>
+ </licenses>
+
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
+ <buildtime>${maven.build.timestamp} UTC</buildtime>
+ </properties>
+
+ <dependencies>
+ <!-- begin for testing -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>2.28.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <artifactId>byte-buddy</artifactId>
+ <groupId>net.bytebuddy</groupId>
+ <version>1.9.10</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- end for testing -->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap-openroadm-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-devicemanager-core-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>sdnr-wt-netconfnode-state-service-model</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>sal-netconf-connector</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen-sal/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java
new file mode 100644
index 000000000..e522f4bd7
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java
@@ -0,0 +1,103 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Class to initialize the OpenRoadm Device Manager
+ **/
+public class DeviceManagerOpenroadmImpl implements AutoCloseable {
+
+ // variables
+ private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerOpenroadmImpl.class);
+ private static final String APPLICATION_NAME = "DeviceManagerOpenRoadm";
+ @SuppressWarnings("unused")
+ private static final String CONFIGURATIONFILE = "etc/devicemanager-opeenroadm.properties";
+ private NetconfNetworkElementService netconfNetworkElementService;
+ private HtDatabaseClient htDatabaseClient;
+ private Boolean devicemanagerInitializationOk = false;
+ private FactoryRegistration<OpenroadmNetworkElementFactory> resOpenRoadm;
+ // end of variables
+
+ // Blueprint begin
+ // constructors
+ public DeviceManagerOpenroadmImpl() {
+ LOG.info("Creating provider for {}", APPLICATION_NAME);
+ resOpenRoadm = null;
+ }
+ // end of constructors
+
+ // public methods
+ public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) {
+ this.netconfNetworkElementService = netconfNetworkElementService;
+ }
+
+ public void init() throws Exception {
+
+ LOG.info("Session Initiated start {}", APPLICATION_NAME);
+
+ resOpenRoadm = netconfNetworkElementService.registerBindingNetworkElementFactory(new OpenroadmNetworkElementFactory());
+
+
+ netconfNetworkElementService.writeToEventLog(APPLICATION_NAME, "startup", "done");
+ this.devicemanagerInitializationOk = true;
+
+ LOG.info("Session Initiated end. Initialization done {}", devicemanagerInitializationOk);
+ }
+ // Blueprint end
+
+ @Override
+ public void close() throws Exception {
+ LOG.info("closing ...");
+ close(htDatabaseClient);
+ close(resOpenRoadm);
+ LOG.info("closing done");
+ }
+ // end of public methods
+
+ // private methods
+ /**
+ * Used to close all Services, that should support AutoCloseable Pattern
+ *
+ * @param toClose
+ * @throws Exception
+ */
+ private void close(AutoCloseable... toCloseList) {
+ for (AutoCloseable element : toCloseList) {
+ if (element != null) {
+ try {
+ element.close();
+ } catch (Exception e) {
+ LOG.warn("Fail during close: ", e);
+ }
+ }
+ }
+ }
+ // end of private methods
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java
new file mode 100644
index 000000000..6c8837327
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java
@@ -0,0 +1,156 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import java.util.Collection;
+import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.ActiveAlarmList;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.Severity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.active.alarm.list.ActiveAlarms;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Class to read the initial alarms at the time of device registration
+ *
+ **/
+
+public class InitialDeviceAlarmReader {
+ // variables
+ private Integer count = 1;
+ private static final Logger log = LoggerFactory.getLogger(InitialDeviceAlarmReader.class);
+ private final NetconfBindingAccessor netConfAccesor;
+ private final @NonNull FaultService faultEventListener;
+ private final DataProvider dataProvider;
+ // end of variables
+
+ // constructors
+ public InitialDeviceAlarmReader(NetconfBindingAccessor accessor, DeviceManagerServiceProvider serviceProvider) {
+ this.netConfAccesor = accessor;
+ this.faultEventListener = serviceProvider.getFaultService();
+ this.dataProvider = serviceProvider.getDataProvider();
+ }
+ // end of constructors
+
+ // protected methods
+ // Mapping the alarm data with the fault data
+ protected FaultData writeFaultData() {
+ FaultData faultData = new FaultData();
+ if (this.getActiveAlarmList(this.netConfAccesor).getActiveAlarms() != null) {
+ Collection<ActiveAlarms> activeAlarms = YangHelper.getCollection(this.getActiveAlarmList(this.netConfAccesor).getActiveAlarms());
+ if (!activeAlarms.isEmpty()) {
+ for (ActiveAlarms activeAlarm : activeAlarms) {
+ faultData.add(this.netConfAccesor.getNodeId(), this.count, activeAlarm.getRaiseTime(),
+ activeAlarm.getResource().getDevice().getNodeId().getValue(),
+ activeAlarm.getProbableCause().getCause().getName(),
+ checkSeverityValue(activeAlarm.getSeverity()));
+ count = count + 1;
+ }
+ return faultData;
+ }
+ }
+ return faultData;
+ }
+
+ // Write into the FaultLog
+ protected void writeAlarmLog(FaultData faultData) {
+ if (faultData != null) {
+ List<Faultlog> faultLog = faultData.getProblemList();
+ for (Faultlog fe : faultLog) {
+ this.dataProvider.writeFaultLog(fe);
+ }
+ }
+ }
+
+ // Use the FaultService for Alarm notifications
+ protected void faultService() {
+ this.faultEventListener.initCurrentProblemStatus(this.netConfAccesor.getNodeId(), writeFaultData());
+ writeAlarmLog(writeFaultData());
+ }
+ // Mapping Severity of AlarmNotification to SeverityType of FaultLog
+ protected static SeverityType checkSeverityValue(Severity severity) {
+ SeverityType severityType = null;
+ log.info("Device Severity: {}", severity.getName());
+
+ switch (severity.getName()) {
+ case ("warning"):
+ severityType = SeverityType.Warning;
+ break;
+ case ("major"):
+ severityType = SeverityType.Major;
+ break;
+ case ("minor"):
+ severityType = SeverityType.Minor;
+ break;
+ case ("clear"):
+ severityType = SeverityType.NonAlarmed;
+ break;
+ case ("critical"):
+ severityType = SeverityType.Critical;
+ break;
+ case ("indeterminate"):
+ severityType = SeverityType.Critical;
+ break;
+ default:
+ severityType = SeverityType.Critical;
+ break;
+
+ }
+ return severityType;
+
+ }
+ // end of protected methods
+
+ // private methods
+
+ // Read Alarm Data
+ private ActiveAlarmList getActiveAlarmList(NetconfBindingAccessor accessor) {
+ final Class<ActiveAlarmList> classAlarm = ActiveAlarmList.class;
+ log.info("Get Alarm data for element {}", accessor.getNodeId().getValue());
+ InstanceIdentifier<ActiveAlarmList> alarmDataIid = InstanceIdentifier.builder(classAlarm).build();
+
+ ActiveAlarmList alarmData = accessor.getTransactionUtils().readData(accessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, alarmDataIid);
+
+ log.info("AlarmData {}", alarmData);
+ return alarmData;
+ }
+
+
+ // end of private methods
+
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java
new file mode 100644
index 000000000..3af6d7aca
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java
@@ -0,0 +1,130 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import java.util.List;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.IetfNetconfNotificationsListener;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfigChange;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfirmedCommit;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionEnd;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionStart;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.netconf.config.change.Edit;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Listener for change notifications
+ *
+ **/
+public class OpenroadmChangeNotificationListener implements IetfNetconfNotificationsListener {
+
+ // variables
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmChangeNotificationListener.class);
+ private final NetconfAccessor netconfAccessor;
+ private final DataProvider databaseService;
+ private final WebsocketManagerService notificationServiceService;
+ // end of variables
+
+ // constructors
+ public OpenroadmChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService,
+ WebsocketManagerService notificationService) {
+ this.netconfAccessor = netconfAccessor;
+ this.databaseService = databaseService;
+ this.notificationServiceService = notificationService;
+ }
+ // end of constructors
+
+ // public methods
+ @Override
+ public void onNetconfConfirmedCommit(NetconfConfirmedCommit notification) {
+ log.info("onNetconfConfirmedCommit {} ", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfConfirmedCommit.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
+ }
+
+ @Override
+ public void onNetconfSessionStart(NetconfSessionStart notification) {
+ log.info("onNetconfSessionStart {} ", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfSessionStart.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
+
+ }
+
+ @Override
+ public void onNetconfSessionEnd(NetconfSessionEnd notification) {
+ log.info("onNetconfSessionEnd {}", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfSessionEnd.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
+ }
+
+ @Override
+ public void onNetconfCapabilityChange(NetconfCapabilityChange notification) {
+ log.info("onNetconfCapabilityChange {}", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfCapabilityChange.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
+ }
+
+ @Override
+ public void onNetconfConfigChange(NetconfConfigChange notification) {
+ log.info("onNetconfConfigChange (1) {}", notification);
+ StringBuffer sb = new StringBuffer();
+ List<Edit> editList = notification.nonnullEdit();
+ for (Edit edit : editList) {
+ if (sb.length() > 0) {
+ sb.append(", ");
+ }
+ sb.append(edit);
+
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+
+ InstanceIdentifier<?> target = edit.getTarget();
+ if (target != null) {
+ eventlogBuilder.setObjectId(target.toString());
+ log.info("TARGET: {} {}", target.getClass(), target.getTargetType());
+ for (PathArgument pa : target.getPathArguments()) {
+ log.info("PathArgument {}", pa);
+ }
+ }
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue());
+ eventlogBuilder.setNewValue(String.valueOf(edit.getOperation()));
+ databaseService.writeEventLog(eventlogBuilder.build());
+ }
+ log.info("onNetconfConfigChange (2) {}", sb);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfConfigChange.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
+
+ }
+
+ // end of public methods
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
new file mode 100644
index 000000000..daea1adb3
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
@@ -0,0 +1,129 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.ChangeNotification;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.CreateTechInfoNotification;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDeviceListener;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OtdrScanResult;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.change.notification.Edit;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Listener for Open roadm device specific change notifications
+ **/
+
+public class OpenroadmDeviceChangeNotificationListener implements OrgOpenroadmDeviceListener {
+ // variables
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmDeviceChangeNotificationListener.class);
+ private Integer counter = 1;
+ private final NetconfAccessor netconfAccessor;
+ private final DataProvider databaseProvider;
+ private final WebsocketManagerService notificationServiceService;
+ private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter();
+ // end of variables
+
+ // constructors
+ public OpenroadmDeviceChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService,
+ WebsocketManagerService faultService) {
+ this.netconfAccessor = netconfAccessor;
+ this.databaseProvider = databaseService;
+ this.notificationServiceService = faultService;
+ }
+ // end of constructors
+
+ // public methods
+ @Override
+ public void onOtdrScanResult(OtdrScanResult notification) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void onChangeNotification(ChangeNotification notification) {
+ log.info("onDeviceConfigChange(1){}", notification);
+ StringBuffer sb = new StringBuffer();
+
+ @NonNull
+ List<Edit> editList = notification.nonnullEdit();
+ for (Edit edit : editList) {
+ if (sb.length() > 0) {
+ sb.append(", ");
+ }
+ sb.append(edit);
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ InstanceIdentifier<?> target = edit.getTarget();
+ if (target != null) {
+ eventlogBuilder.setObjectId(target.getPathArguments().toString());
+ log.info("TARGET: {} {}", target.getClass(), target.getTargetType());
+ for (PathArgument pa : target.getPathArguments()) {
+ log.info("PathArgument {}", pa);
+ }
+ eventlogBuilder.setAttributeName(target.getTargetType().getName());
+ }
+ eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue());
+ eventlogBuilder.setNewValue(String.valueOf(edit.getOperation()));
+ eventlogBuilder.setTimestamp(notification.getChangeTime());
+ eventlogBuilder.setCounter(counter);
+ eventlogBuilder.setSourceType(SourceType.Netconf);
+ databaseProvider.writeEventLog(eventlogBuilder.build());
+ log.info("onDeviceConfigChange (2) {}", sb);
+ counter++;
+ }
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ ChangeNotification.QNAME, notification.getChangeTime());
+ }
+
+ @Override
+ public void onCreateTechInfoNotification(CreateTechInfoNotification notification) {
+
+ DateAndTime now = NetconfTimeStampImpl.getConverter().getTimeStamp();
+ log.info("onCreateTechInfoNotification(1){}", notification);
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setId(notification.getShelfId()).setAttributeName(notification.getShelfId())
+ .setObjectId(notification.getShelfId()).setNodeId(this.netconfAccessor.getNodeId().getValue())
+ .setCounter(counter).setNewValue(notification.getStatus().getName()).setSourceType(SourceType.Netconf)
+ .setTimestamp(now);
+ databaseProvider.writeEventLog(eventlogBuilder.build());
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ CreateTechInfoNotification.QNAME, now);
+ log.info("Create-techInfo Notification written ");
+ counter++;
+ }
+ // end of public methods
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java
new file mode 100644
index 000000000..10d0a5640
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java
@@ -0,0 +1,78 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.AlarmNotification;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.OrgOpenroadmAlarmListener;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Listener for Open roadm device specific alarm notifications
+ **/
+public class OpenroadmFaultNotificationListener implements OrgOpenroadmAlarmListener {
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmFaultNotificationListener.class);
+
+ private final @NonNull FaultService faultEventListener;
+ private @NonNull WebsocketManagerService notificationService;
+ private Integer count = 1;
+
+
+ public OpenroadmFaultNotificationListener(DeviceManagerServiceProvider serviceProvider) {
+ this.faultEventListener = serviceProvider.getFaultService();
+ this.notificationService = serviceProvider.getWebsocketService();
+
+ }
+
+ @Override
+ public void onAlarmNotification(AlarmNotification notification) {
+
+
+ log.info("AlarmNotification {} \t {}", notification.getId(), notification.getAdditionalDetail());
+ final String nodeId = notification.getResource().getDevice().getNodeId().getValue();
+ FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getCircuitId())
+ .setProblem(notification.getProbableCause().getCause().getName()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getRaiseTime()).setId(notification.getId()).setNodeId(nodeId)
+ .setSeverity(InitialDeviceAlarmReader.checkSeverityValue(notification.getSeverity())).setCounter(count)
+ .build();
+
+ this.faultEventListener.faultNotification(faultAlarm);
+ this.notificationService.sendNotification(notification, nodeId, AlarmNotification.QNAME,
+ notification.getRaiseTime());
+ count++;
+ log.info("Notification is written into the database {}", faultAlarm.getObjectId());
+
+ }
+
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
new file mode 100644
index 000000000..abaec72ab
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
@@ -0,0 +1,149 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacks;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.interfaces.grp.Interface;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Xponder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.Shelves;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Reading the inventory data of an open roadm device
+ *
+ **/
+public class OpenroadmInventoryInput {
+ // variable
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmInventoryInput.class);
+ private OrgOpenroadmDevice openRoadmDevice;
+ private final NetconfAccessor accessor;
+ // end of variables
+
+ // constructors
+ public OpenroadmInventoryInput(NetconfAccessor netconfAccessor, OrgOpenroadmDevice roadmDevice) {
+ this.openRoadmDevice = roadmDevice;
+ this.accessor = netconfAccessor;
+ }
+ // end of constructors
+
+ // public methods
+ public Inventory getInventoryData(Uint32 treeLevel) {
+ InventoryBuilder inventoryBuilder = new InventoryBuilder();
+ log.info("Info for device {}", this.openRoadmDevice.getInfo().getNodeId().getValue());
+ inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue())
+ .setUuid(this.openRoadmDevice.getInfo().getNodeId() == null ? "N/A"
+ : this.openRoadmDevice.getInfo().getNodeId().getValue())
+ .setDate(this.openRoadmDevice.getInfo().getCurrentDatetime().getValue())
+ .setId(this.openRoadmDevice.getInfo().getNodeId().getValue())
+ .setManufacturerIdentifier(this.openRoadmDevice.getInfo().getVendor())
+ .setModelIdentifier(this.openRoadmDevice.getInfo().getModel())
+ .setSerial(this.openRoadmDevice.getInfo().getSerialId()).setTreeLevel(treeLevel)
+ .setVersion(this.openRoadmDevice.getInfo().getOpenroadmVersion().getName())
+ .setDescription("org-openroadm-device").setParentUuid("None")
+ .setTypeName(this.openRoadmDevice.getInfo().getNodeType().getName()).setPartTypeId("device");
+ log.info("Inventory data written for device {}", this.openRoadmDevice.getInfo().getNodeId().getValue());
+ return inventoryBuilder.build();
+ }
+
+ public Inventory getShelvesInventory(Shelves shelf, Uint32 treeLevel) {
+ InventoryBuilder inventoryBuilder = new InventoryBuilder();
+ inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setId(shelf.getShelfName())
+ .setDescription((shelf.getUserDescription() == null)
+ ? ("Position: " + shelf.getShelfPosition() + "\nState: " + shelf.getOperationalState())
+ : (shelf.getUserDescription()) + "\nPosition: " + shelf.getShelfPosition() + "\nState: "
+ + shelf.getOperationalState())
+ .setSerial(shelf.getSerialId()).setUuid(shelf.getShelfName())
+ .setParentUuid(this.openRoadmDevice.getInfo().getNodeId().getValue()).setTreeLevel(treeLevel)
+ .setTypeName(shelf.getShelfType()).setPartTypeId(shelf.getClei())
+ .setManufacturerIdentifier(shelf.getVendor()).setModelIdentifier(shelf.getModel())
+ .setVersion(shelf.getHardwareVersion()).setDate(shelf.getManufactureDate().getValue());
+ log.info("Inventory data written for Shelf {}", shelf.getShelfName());
+ return inventoryBuilder.build();
+ }
+
+ public Inventory getInterfacesInventory(Interface deviceInterface, Uint32 treeLevel) {
+ InventoryBuilder inventoryBuilder = new InventoryBuilder();
+ inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setId(deviceInterface.getName())
+ .setDescription((deviceInterface.getDescription() == null) ? "N/A" : deviceInterface.getDescription())
+ .setUuid(deviceInterface.getName()).setSerial(deviceInterface.getName())
+ .setParentUuid((deviceInterface.getSupportingCircuitPackName() != null)
+ ? deviceInterface.getSupportingCircuitPackName()
+ : ((deviceInterface.getSupportingInterface() != null) ? deviceInterface.getSupportingInterface()
+ : this.openRoadmDevice.getInfo().getNodeId().getValue()))
+ .setTreeLevel(treeLevel)
+ .setTypeName((deviceInterface.getType() == null) ? "Interface"
+ : deviceInterface.getType().getName().substring(69,
+ deviceInterface.getType().getName().length()))
+ .setPartTypeId("Interface").setManufacturerIdentifier(this.openRoadmDevice.getInfo().getVendor())
+ .setModelIdentifier(this.openRoadmDevice.getInfo().getModel()).setVersion("N/A")
+ .setDate(this.openRoadmDevice.getInfo().getCurrentDatetime().getValue());
+ log.info("Inventory data written for Interface {}", deviceInterface.getName());
+
+ return inventoryBuilder.build();
+ }
+
+ public Inventory getCircuitPackInventory(CircuitPacks circuitPack, Uint32 treeLevel) {
+ InventoryBuilder inventoryBuilder = new InventoryBuilder();
+ inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setUuid(circuitPack.getCircuitPackName())
+ .setDate((circuitPack.getManufactureDate() == null) ? "N/A"
+ : circuitPack.getManufactureDate().getValue().substring(0, 19))
+ .setId(circuitPack.getCircuitPackName()).setManufacturerIdentifier(circuitPack.getVendor())
+ .setModelIdentifier(circuitPack.getModel()).setSerial(circuitPack.getSerialId()).setTreeLevel(treeLevel)
+ .setVersion(circuitPack.getHardwareVersion())
+ .setDescription("ProductCode: " + circuitPack.getProductCode() + " " + "Mode: "
+ + circuitPack.getCircuitPackMode())
+ .setTypeName((circuitPack.getType() == null) ? circuitPack.getCircuitPackType() : circuitPack.getType())
+ .setPartTypeId((circuitPack.getClei() == null) ? circuitPack.getType() : circuitPack.getClei())
+ .setParentUuid((circuitPack.getParentCircuitPack() != null)
+ ? circuitPack.getParentCircuitPack().getCircuitPackName()
+ : ((circuitPack.getShelf() != null) ? circuitPack.getShelf()
+ : this.openRoadmDevice.getInfo().getNodeId().getValue()));
+ log.info("Inventory data written for CircuitPack {}", circuitPack.getCircuitPackName());
+
+ return inventoryBuilder.build();
+ }
+
+ public Inventory getXponderInventory(Xponder xpdr, Uint32 treeLevel) {
+ InventoryBuilder inventoryBuilder = new InventoryBuilder();
+ inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setId(xpdr.getXpdrNumber().toString())
+ .setDescription("Xponder\nLifecycleState: " + xpdr.getLifecycleState().getName())
+ .setUuid(xpdr.getXpdrNumber().toString()).setSerial(xpdr.getXpdrNumber().toString())
+ .setParentUuid(this.openRoadmDevice.getInfo().getNodeId().getValue()).setTreeLevel(treeLevel)
+ .setTypeName(xpdr.getXpdrType().getName()).setPartTypeId(xpdr.getXpdrType().getName())
+ .setManufacturerIdentifier(this.openRoadmDevice.getInfo().getVendor())
+ .setModelIdentifier(this.openRoadmDevice.getInfo().getModel())
+ .setVersion(this.openRoadmDevice.getInfo().getOpenroadmVersion().getName())
+ .setDate(this.openRoadmDevice.getInfo().getCurrentDatetime().getValue());
+ log.info("Inventory data written for Xponder{}", xpdr.getXpdrNumber());
+
+ return inventoryBuilder.build();
+ }
+ // end of public methods
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
new file mode 100644
index 000000000..02f8547ae
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
@@ -0,0 +1,323 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Hashtable;
+import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacks;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.interfaces.grp.Interface;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Xponder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelf.Slots;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.Shelves;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.xponder.XpdrPort;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.NotificationListener;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Creating the openroadm device as an optical network element and writing inventory, fault, pm data to elastic
+ * search db
+ *
+ **/
+public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
+
+ // variables
+ private final long equipmentLevel = 1;
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmNetworkElement.class);
+ private Hashtable<String, Long> circuitPacksRecord;
+ private Hashtable<String, Long> shelfProvisionedcircuitPacks;
+ private ListenerRegistration<NotificationListener> openRdmListenerRegistrationResult;
+ private @NonNull final OpenroadmChangeNotificationListener openRdmListener;
+ private ListenerRegistration<NotificationListener> opnRdmFaultListenerRegistrationResult;
+ private @NonNull OpenroadmFaultNotificationListener opnRdmFaultListener;
+ private ListenerRegistration<NotificationListener> opnRdmDeviceListenerRegistrationResult;
+ private OpenroadmDeviceChangeNotificationListener opnRdmDeviceListener;
+ private OpenroadmInventoryInput opnRdmInventoryInput;
+ private PmDataBuilderOpenRoadm openRoadmPmData;
+ private InitialDeviceAlarmReader initialAlarmReader;
+
+ private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter();
+ private int counter = 1;
+ // end of variables
+
+ // constructors
+ public OpenroadmNetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) {
+
+ super(netconfAccess, serviceProvider);
+
+ log.info("Create {}", OpenroadmNetworkElement.class.getSimpleName());
+ this.openRdmListenerRegistrationResult = null;
+ this.openRdmListener = new OpenroadmChangeNotificationListener(netconfAccessor, databaseService,
+ serviceProvider.getWebsocketService());
+ this.opnRdmFaultListenerRegistrationResult = null;
+ this.opnRdmFaultListener = new OpenroadmFaultNotificationListener(serviceProvider);
+ this.opnRdmDeviceListenerRegistrationResult = null;
+ this.opnRdmDeviceListener = new OpenroadmDeviceChangeNotificationListener(netconfAccessor, databaseService,
+ serviceProvider.getWebsocketService());
+ this.circuitPacksRecord = new Hashtable<>();
+ this.shelfProvisionedcircuitPacks = new Hashtable<>();
+ this.openRoadmPmData = new PmDataBuilderOpenRoadm(this.netconfAccessor);
+ this.initialAlarmReader = new InitialDeviceAlarmReader(this.netconfAccessor, serviceProvider);
+ log.info("NodeId {}", this.netconfAccessor.getNodeId().getValue());
+
+
+ }
+ // end of constructors
+
+ // public methods
+ public void initialReadFromNetworkElement() {
+
+ OrgOpenroadmDevice device = readDevice(this.netconfAccessor);
+ this.opnRdmInventoryInput = new OpenroadmInventoryInput(this.netconfAccessor, device);
+ log.info("openroadmMapper details{}", this.opnRdmInventoryInput.getClass().getName());
+ List<Inventory> inventoryList = new ArrayList<>();
+ inventoryList.add(this.opnRdmInventoryInput.getInventoryData(Uint32.valueOf(equipmentLevel)));
+ readShelvesData(inventoryList, device);
+ readXpndrData(inventoryList, device);
+ readCircuitPacketData(inventoryList, device);
+ readInterfaceData(inventoryList, device);
+ this.databaseService.writeInventory(this.netconfAccessor.getNodeId().getValue(), inventoryList);
+ // Writing initial alarms at the time of device registration
+ initialAlarmReader.faultService();
+ // Writing historical PM data at the time of device registration
+ List<PmdataEntity> pmDataEntity = new ArrayList<>();
+ pmDataEntity = this.openRoadmPmData.buildPmDataEntity(this.openRoadmPmData.getPmData(this.netconfAccessor));
+ if (!pmDataEntity.isEmpty()) {
+ this.databaseService.doWritePerformanceData(pmDataEntity);
+ log.info("PmDatEntity is written with size {}", pmDataEntity.size());
+ for (PmdataEntity ent : pmDataEntity) {
+ log.info("GetNode: {}, granPeriod: {}", ent.getNodeName(), ent.getGranularityPeriod().getName());
+ }
+ } else {
+ log.info("PmDatEntity is empty");
+ }
+ }
+
+
+ @Override
+ public void register() {
+ initialReadFromNetworkElement();
+
+ this.openRdmListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(openRdmListener);
+ this.opnRdmFaultListenerRegistrationResult =
+ netconfAccessor.doRegisterNotificationListener(opnRdmFaultListener);
+ this.opnRdmDeviceListenerRegistrationResult =
+ netconfAccessor.doRegisterNotificationListener(opnRdmDeviceListener);
+ // Register netconf stream
+ netconfAccessor.registerNotificationsStream(NetconfAccessor.DefaultNotificationsStream);
+ }
+
+ @Override
+ public void deregister() {
+ if (openRdmListenerRegistrationResult != null) {
+ this.openRdmListenerRegistrationResult.close();
+ }
+ if (opnRdmFaultListenerRegistrationResult != null) {
+ this.opnRdmFaultListenerRegistrationResult.close();
+ }
+ if (opnRdmDeviceListenerRegistrationResult != null) {
+ this.opnRdmDeviceListenerRegistrationResult.close();
+ }
+ }
+
+ // end of public methods
+
+ // private methods
+ private void readShelvesData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
+ Collection<Shelves> shelves = YangHelper.getCollection(device.getShelves());
+ if (shelves != null) {
+ for (Shelves shelf : shelves) {
+ log.info(
+ "Shelf Name: {}, \n Serial Id:{}, \n Product Code;{}, \n Position:{}, \n EquipmetState: {}, \n Hardware version: {}"
+ + "\n ShelfType:{}, \n Vendor: {}, \n LifecycleState: {} ",
+ shelf.getShelfName(), shelf.getSerialId(), shelf.getProductCode(), shelf.getShelfPosition(),
+ shelf.getEquipmentState(), shelf.getHardwareVersion(), shelf.getShelfType(), shelf.getVendor(),
+ shelf.getLifecycleState());
+ inventoryList
+ .add(this.opnRdmInventoryInput.getShelvesInventory(shelf, Uint32.valueOf(equipmentLevel + 1)));
+ Collection<Slots> slotList = YangHelper.getCollection(shelf.getSlots());
+ if (slotList != null) {
+ for (Slots slot : slotList) {
+ if (slot.getProvisionedCircuitPack() != null) {
+ this.shelfProvisionedcircuitPacks.put(slot.getProvisionedCircuitPack(), equipmentLevel + 2);
+ }
+ log.info("Slots for the shelf: {}", shelf.getShelfName());
+ log.info("\n Slot Name: {}, \n Status: {}, \n Slot label: {} ", slot.getSlotName(),
+ slot.getSlotStatus(), slot.getLabel());
+ }
+ }
+ }
+ log.info("size of shelfProvisionedcircuitPacks: {} ", shelfProvisionedcircuitPacks.size());
+ }
+
+ }
+
+ private void readXpndrData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
+ Collection<Xponder> xponderList = YangHelper.getCollection(device.getXponder());
+
+ if (xponderList != null) {
+ for (Xponder xponder : xponderList) {
+
+ inventoryList.add(
+ this.opnRdmInventoryInput.getXponderInventory(xponder, Uint32.valueOf(equipmentLevel + 1)));
+ log.info("Xponders: No.: {} , \n Port: {} ,\n Type: {}", xponder.getXpdrNumber(), xponder.getXpdrPort(),
+ xponder.getXpdrType());
+ Collection<XpdrPort> xpdrportlist = YangHelper.getCollection(xponder.getXpdrPort());
+ if (xpdrportlist != null) {
+ for (XpdrPort xpdrport : xpdrportlist)
+ if (xpdrport.getCircuitPackName() != null) {
+ this.shelfProvisionedcircuitPacks.put(xpdrport.getCircuitPackName(), equipmentLevel + 2);
+ log.info("Size of dict{}", this.shelfProvisionedcircuitPacks.size());
+ }
+ }
+
+ }
+ }
+ }
+
+ private void readCircuitPacketData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
+ Collection<CircuitPacks> circuitpackCollection = YangHelper.getCollection(device.getCircuitPacks());
+ List<String> cpNameList = new ArrayList<>();
+
+ if (circuitpackCollection != null) {
+ // collect all circuit pack names. Required to check for invalid parents later on
+ for (CircuitPacks cp : circuitpackCollection) {
+ cpNameList.add(cp.getCircuitPackName());
+ }
+
+ for (CircuitPacks cp : circuitpackCollection) {
+ log.info("CP Name:{}", cp.getCircuitPackName());
+
+ if (cp.getParentCircuitPack() == null
+ && !this.shelfProvisionedcircuitPacks.containsKey(cp.getCircuitPackName())) {
+ log.info("cp has no parent and no shelf");
+ this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 1));
+ inventoryList.add(
+ this.opnRdmInventoryInput.getCircuitPackInventory(cp, Uint32.valueOf(equipmentLevel + 1)));
+ } else {
+ // check for missing valid parent circuit name
+ if (cp.getParentCircuitPack().getCpSlotName() != null
+ && cp.getParentCircuitPack().getCircuitPackName() == null) {
+
+ log.info("Cp {} has slotname of the parent circuit pack but no parent circuit pack name",
+ cp.getCircuitPackName());
+ this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 3));
+ inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
+ Uint32.valueOf(equipmentLevel + 3)));
+ databaseService.writeEventLog(writeIncorrectParentLog(cp.getCircuitPackName(), counter)
+ .setObjectId(device.getInfo().getNodeId().getValue())
+ .setId(cp.getParentCircuitPack().getCpSlotName())
+ .setNewValue("Missing parent circuit pack name").build());
+ } else if (cp.getParentCircuitPack().getCircuitPackName() != null
+ && this.shelfProvisionedcircuitPacks
+ .containsKey(cp.getParentCircuitPack().getCircuitPackName())) {
+ log.info("Cp {} has parent circuit pack and shelf", cp.getCircuitPackName());
+ this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 3));
+ inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
+ Uint32.valueOf(equipmentLevel + 3)));
+ } else {
+ // check for incorrect hierarchy
+ if (cp.getParentCircuitPack().getCircuitPackName() != null
+ && !cpNameList.contains(cp.getParentCircuitPack().getCircuitPackName())) {
+ databaseService.writeEventLog(writeIncorrectParentLog(cp.getCircuitPackName(), counter)
+ .setObjectId(device.getInfo().getNodeId().getValue())
+ .setId(cp.getParentCircuitPack().getCpSlotName()).build());
+ }
+
+ log.info("Cp has parent circuit pack but no shelf or a shelf but no parent circuit pack");
+ this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 2));
+ inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
+ Uint32.valueOf(equipmentLevel + 2)));
+ }
+
+ }
+ }
+
+ }
+ }
+
+ private void readInterfaceData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
+ Collection<Interface> interfaceList = YangHelper.getCollection(device.getInterface());
+ if (interfaceList != null) {
+ for (Interface deviceInterface : interfaceList) {
+ log.info("\n InterfaceName: {}", deviceInterface.getName());
+ log.info("Supporting CP {}", this.circuitPacksRecord.size());
+ for (String s : this.circuitPacksRecord.keySet()) {
+ log.info("{} value {}", s, this.circuitPacksRecord.get(s));
+ }
+ log.info("Interface {} and their supporting CP {}", deviceInterface.getName(),
+ deviceInterface.getSupportingCircuitPackName());
+ if (deviceInterface.getSupportingCircuitPackName() != null) {
+ if (this.circuitPacksRecord.containsKey(deviceInterface.getSupportingCircuitPackName())) {
+ inventoryList.add(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface,
+ Uint32.valueOf(
+ this.circuitPacksRecord.get(deviceInterface.getSupportingCircuitPackName())
+ + 1)));
+ }
+ } else {
+ inventoryList.add(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface,
+ Uint32.valueOf(equipmentLevel + 1)));
+ }
+ }
+ }
+ }
+
+ private OrgOpenroadmDevice readDevice(NetconfBindingAccessor accessor) {
+ final Class<OrgOpenroadmDevice> openRoadmDev = OrgOpenroadmDevice.class;
+ InstanceIdentifier<OrgOpenroadmDevice> deviceId = InstanceIdentifier.builder(openRoadmDev).build();
+ return accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ deviceId);
+ }
+
+ private EventlogBuilder writeIncorrectParentLog(String attributeName, Integer counter) {
+ EventlogBuilder eventlogBuilder = new EventlogBuilder();
+ eventlogBuilder.setAttributeName(attributeName).setCounter(counter)
+ .setNodeId(this.netconfAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf)
+ .setNewValue("Invalid parent circuit-pack name")
+ .setTimestamp(new DateAndTime(ncTimeConverter.getTimeStamp()));
+
+ return eventlogBuilder;
+
+ }
+ // end of private methods
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java
new file mode 100644
index 000000000..9949056bb
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java
@@ -0,0 +1,74 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+
+public class OpenroadmNetworkElementBase implements NetworkElement {
+
+ protected final NetconfBindingAccessor netconfAccessor;
+ protected final DataProvider databaseService;
+
+ public OpenroadmNetworkElementBase(NetconfBindingAccessor netconfAccess,
+ DeviceManagerServiceProvider serviceProvider) {
+
+ this.netconfAccessor = netconfAccess;
+ this.databaseService = serviceProvider.getDataProvider();
+ }
+
+ @Override
+ public void register() {}
+
+ @Override
+ public void deregister() {}
+
+ @Override
+ public void warmstart() {}
+
+ @Override
+ public NodeId getNodeId() {
+ return netconfAccessor.getNodeId();
+ }
+
+ @Override
+ public NetworkElementDeviceType getDeviceType() {
+ return NetworkElementDeviceType.OROADM;
+ }
+
+ @Override
+ public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
+ return Optional.empty();
+ }
+
+ @Override
+ public Optional<NetconfAccessor> getAcessor() {
+ return Optional.of(netconfAccessor);
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java
new file mode 100644
index 000000000..cc8eaa68e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java
@@ -0,0 +1,71 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import java.util.Optional;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Shabnam Sultana
+ *
+ * Register the openroadm device as an optical network element
+ *
+ **/
+
+public class OpenroadmNetworkElementFactory implements NetworkElementFactory {
+
+ // variables
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmNetworkElementFactory.class);
+ // end of variables
+
+ // public methods
+ @Override
+ public Optional<NetworkElement> create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) {
+
+ if (accessor.getCapabilites().isSupportingNamespaceAndRevision(OrgOpenroadmDevice.QNAME)) {
+ log.info("Create OpenRoadm device {} ", OpenroadmNetworkElement.class.getName());
+ log.info("Node Id read by Acessor {}:", accessor.getNodeId().getValue());
+ Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
+ if (bindingAccessor.isPresent()) {
+ return Optional.of(new OpenroadmNetworkElement(bindingAccessor.get(), serviceProvider));
+ }
+ } else if (accessor.getCapabilites().isSupportingNamespaceAndRevision("http://org/openroadm/device","2018-10-19")) {
+ log.info("Create OpenRoadm base device {} ", OpenroadmNetworkElementBase.class.getName());
+ log.info("Node Id read by Acessor {}:", accessor.getNodeId().getValue());
+ Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
+ if (bindingAccessor.isPresent()) {
+ return Optional.of(new OpenroadmNetworkElementBase(bindingAccessor.get(), serviceProvider));
+ }
+ }
+ return Optional.empty();
+ }
+ // end of public methods
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java
new file mode 100644
index 000000000..f1fd4471f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java
@@ -0,0 +1,290 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.HistoricalPmList;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.group.HistoricalPm;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.list.HistoricalPmEntry;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.val.group.Measurement;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmGranularity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmNamesEnum;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.g836.pm.types.rev200413.ErroredSecond;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.g836.pm.types.rev200413.SeverelyErroredSecond;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.PerformanceMeasurementTypeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceDataBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Celsius;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DB;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DBm;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Fahrenheit;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.KHz;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.MW;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.PerformanceMeasurementUnitId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author shabnam
+ *
+ * Reading Openroadm PM data and returning as PmDataEntitiy data
+ */
+public class PmDataBuilderOpenRoadm {
+ // variables
+ private static final Logger log = LoggerFactory.getLogger(PmDataBuilderOpenRoadm.class);
+ private PmdataEntityBuilder pmDataBuilder;
+ private Bundle b = FrameworkUtil.getBundle(this.getClass());
+
+ // end of variables
+ // constructors
+ public PmDataBuilderOpenRoadm(NetconfBindingAccessor accessor) {
+ this.pmDataBuilder = new PmdataEntityBuilder();
+ this.pmDataBuilder.setNodeName(accessor.getNodeId().getValue());
+ }
+
+ // end of constructors
+ // public methods
+ // Read PM data
+ public HistoricalPmList getPmData(NetconfBindingAccessor accessor) {
+ final Class<HistoricalPmList> pmDataClass = HistoricalPmList.class;
+ log.info("Get PM data for element {}", accessor.getNodeId().getValue());
+ InstanceIdentifier<HistoricalPmList> pmDataIid = InstanceIdentifier.builder(pmDataClass).build();
+ return accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ pmDataIid);
+
+ }
+
+ // Build PM entity for writing into the database
+ public List<PmdataEntity> buildPmDataEntity(HistoricalPmList historicalPmEnitityList) {
+ List<PmdataEntity> pmEntitiyList = new ArrayList<>();
+ Collection<HistoricalPmEntry> pmDataEntryList =
+ YangHelper.getCollection(historicalPmEnitityList.getHistoricalPmEntry());
+ for (HistoricalPmEntry pmDataEntry : pmDataEntryList) {
+ pmDataBuilder.setUuidInterface(pmDataEntry.getPmResourceType().getName());
+ Collection<HistoricalPm> historicalPmList = YangHelper.getCollection(pmDataEntry.getHistoricalPm());
+ for (HistoricalPm historicalPm : historicalPmList) {
+ log.info("PmName:{}", historicalPm.getType());
+ // pmDataBuilder.setPerformanceData(value)
+
+ try {
+ writeperformanceData(historicalPm);
+ } catch (ClassNotFoundException e) {
+ log.info("No relevant data found");
+ }
+ pmEntitiyList.add(this.pmDataBuilder.build());
+
+ log.info("PmListSize before db writing: {}", pmEntitiyList.size());
+ }
+ log.info("PmListSize before db writing: {}", pmEntitiyList.size());
+ }
+ return pmEntitiyList;
+ }
+ // end of public methods
+
+ // private methods
+ private void writeperformanceData(HistoricalPm historicalPm) throws ClassNotFoundException {
+ Collection<Measurement> measurementList = YangHelper.getCollection(historicalPm.getMeasurement());
+ Map<MeasurementKey, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement> measurementMap=new HashMap<>();
+ // Map Performance data of PmDataEntity with MeasurmentData-HistoricalPm
+ PerformanceDataBuilder performanceDataBuilder = new PerformanceDataBuilder();
+ for (Measurement measurementData : measurementList) {
+ this.pmDataBuilder.setGranularityPeriod(mapGranularityPeriod(measurementData.getGranularity()))
+ .setTimeStamp(measurementData.getCompletionTime());
+ if (measurementData.getValidity().getName().equals("suspect")) {
+ this.pmDataBuilder.setSuspectIntervalFlag(true);
+ }
+ measurementMap.put(new MeasurementKey(measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(),
+ measurementData.getPmParameterValue()).getPmKey()), measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(),
+ measurementData.getPmParameterValue()));
+
+
+ }
+
+ pmDataBuilder.setPerformanceData(performanceDataBuilder.setMeasurement(measurementMap).build());
+ }
+
+
+
+ // Mapping Granularity period of PmDataEntity with PmGranularity of MeasurmentData-HistoricalPm
+ private GranularityPeriodType mapGranularityPeriod(PmGranularity pmGranularity) {
+
+ GranularityPeriodType granPeriod = null;
+ switch (pmGranularity.getName()) {
+ case ("notApplicable"):
+ granPeriod = GranularityPeriodType.Unknown;
+ break;
+ case ("15min"):
+ granPeriod = GranularityPeriodType.Period15Min;
+ break;
+ case ("24Hour"):
+ granPeriod = GranularityPeriodType.Period24Hours;
+ break;
+ default:
+ granPeriod = GranularityPeriodType.Period15Min;
+ break;
+ }
+ return granPeriod;
+ }
+
+ private List<Class<? extends PerformanceMeasurementTypeId>> setMeasurementTypeId() {
+ String packageName =
+ "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413";
+ String packageName1 =
+ "/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/data/provider/openroadm/pm/types/rev200413/";
+ List<Class<? extends PerformanceMeasurementTypeId>> measTypeObjList =
+ new ArrayList<>();
+ URL root = Thread.currentThread().getContextClassLoader().getResource(packageName1);
+
+ log.info("path for type package: {}", root);
+
+ Enumeration<URL> results = getFileURL(b, packageName);
+ log.info("FOund Packages {}", results);
+ if(results != null) {
+ while (results.hasMoreElements()) {
+ URL path = results.nextElement();
+
+ Class<?> cls1 = loadClass(b, path.getFile());
+
+ if (PerformanceMeasurementTypeId.class.isAssignableFrom(cls1)) {
+ measTypeObjList.add((Class<? extends PerformanceMeasurementTypeId>) cls1);
+
+
+ }
+ if(cls1!=null) {
+ log.info("Class Added {}", cls1.getSimpleName());
+ }
+
+ }
+
+
+ }
+
+ return measTypeObjList;
+ }
+
+ private Class<? extends PerformanceMeasurementUnitId> setMeasurementUnit(String unitName) {
+ Class<? extends PerformanceMeasurementUnitId> measurementUnitClass = null;
+ switch (unitName) {
+ case ("celsius"):
+ measurementUnitClass = Celsius.class;
+ break;
+ case("dB"):
+ measurementUnitClass = DB.class;
+ break;
+ case("dBm"):
+ measurementUnitClass = DBm.class;
+ break;
+ case("fahrenheit"):
+ measurementUnitClass = Fahrenheit.class;
+ break;
+ case("kHz"):
+ measurementUnitClass = KHz.class;
+ break;
+ case("mW"):
+ measurementUnitClass = MW.class;
+ break;
+ default:
+ break;
+ }
+ return measurementUnitClass;
+ }
+
+ private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement measurementBuilder(
+ PmNamesEnum pmType, String pmUnit, PmDataType pmDataType) {
+
+ MeasurementBuilder measBuilder = new MeasurementBuilder();
+ if (pmType.getName().equals("erroredSeconds") ) {
+ measBuilder.setPmKey(ErroredSecond.class);
+ } else if (pmType.getName().equals("severelyErroredSeconds")) {
+ measBuilder.setPmKey(SeverelyErroredSecond.class);
+ } else {
+ for (Class<? extends PerformanceMeasurementTypeId> obj : setMeasurementTypeId()) {
+ if (obj.toString().contains(pmType.name())) {
+ measBuilder.setPmKey(obj);
+ }
+ }
+ }
+ measBuilder.setPmUnit(setMeasurementUnit(pmUnit));
+ measBuilder.setPmValue(pmDataType);
+ return measBuilder.build();
+
+ }
+
+ private Class<?> loadClass(Bundle bundle, String classFilePath) {
+ String className = classFilePath.replaceFirst("^/", "").replace('/', '.').replaceFirst(".class$", "");
+ try {
+ return bundle.loadClass(className);
+ } catch (Exception e) {
+ log.info(String.format("Class [%s] could not be loaded. Message: [%s].", className, e.getMessage()));
+ }
+ return null;
+ }
+
+ private static Enumeration<URL> getFileURL(Bundle b, String classPath) {
+
+ BundleContext context = b == null ? null : b.getBundleContext();
+ if (context == null) {
+ log.info("no bundle context available");
+ return null;
+ }
+ Bundle[] bundles = context.getBundles();
+ if (bundles == null || bundles.length <= 0) {
+ log.info("no bundles found");
+ return null;
+ }
+ log.info("found {} bundles", bundles.length);
+ Enumeration<URL> resultUrl = null;
+
+ for (Bundle bundle : bundles) {
+ resultUrl = bundle.findEntries("/" + classPath.replace(".", "/"), "*.class", false);
+ if (resultUrl != null) {
+ break;
+
+ }
+
+ }
+
+ return resultUrl;
+ }
+
+
+ // end of private methods
+}
+
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java
new file mode 100644
index 000000000..249da71fb
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java
@@ -0,0 +1,21 @@
+package org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129;
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string
+ * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 -
+ * uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be
+ * finished by the user. This class is generated only once to prevent loss of user code.
+ *
+ */
+public class PmDataTypeBuilder {
+ private PmDataTypeBuilder() {
+ //Exists only to defeat instantiation.
+ }
+
+ public static PmDataType getDefaultInstance(String defaultValue) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java
new file mode 100644
index 000000000..30a55a203
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java
@@ -0,0 +1,21 @@
+package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string
+ * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 -
+ * uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be
+ * finished by the user. This class is generated only once to prevent loss of user code.
+ *
+ */
+public class OperatorStateBuilder {
+ private OperatorStateBuilder() {
+ //Exists only to defeat instantiation.
+ }
+
+ public static OperatorState getDefaultInstance(String defaultValue) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java
new file mode 100644
index 000000000..a803bae97
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java
@@ -0,0 +1,21 @@
+package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string
+ * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 -
+ * uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be
+ * finished by the user. This class is generated only once to prevent loss of user code.
+ *
+ */
+public class ResourceBuilder {
+ private ResourceBuilder() {
+ //Exists only to defeat instantiation.
+ }
+
+ public static Resource getDefaultInstance(String defaultValue) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java
new file mode 100644
index 000000000..bbfa37f40
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java
@@ -0,0 +1,21 @@
+package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string
+ * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 -
+ * uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be
+ * finished by the user. This class is generated only once to prevent loss of user code.
+ *
+ */
+public class ResourceMatchBuilder {
+ private ResourceMatchBuilder() {
+ //Exists only to defeat instantiation.
+ }
+
+ public static ResourceMatch getDefaultInstance(String defaultValue) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java
new file mode 100644
index 000000000..9fb90b438
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java
@@ -0,0 +1,21 @@
+package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string
+ * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 -
+ * uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be
+ * finished by the user. This class is generated only once to prevent loss of user code.
+ *
+ */
+public class SeverityWithClearBuilder {
+ private SeverityWithClearBuilder() {
+ //Exists only to defeat instantiation.
+ }
+
+ public static SeverityWithClear getDefaultInstance(String defaultValue) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java
new file mode 100644
index 000000000..2b8e8af57
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java
@@ -0,0 +1,21 @@
+package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911.alarms;
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string
+ * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 -
+ * uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be
+ * finished by the user. This class is generated only once to prevent loss of user code.
+ *
+ */
+public class ControlMaxAlarmStatusChangesBuilder {
+ private ControlMaxAlarmStatusChangesBuilder() {
+ //Exists only to defeat instantiation.
+ }
+
+ public static Control.MaxAlarmStatusChanges getDefaultInstance(String defaultValue) {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
new file mode 100644
index 000000000..ff3e6a72d
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ ONAP : ccsdk features
+ ~ ================================================================================
+ ~ Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
+ ~ All rights reserved.
+ ~ ================================================================================
+ ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=======================================================
+ ~
+ -->
+
+<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true">
+
+ <reference id="netconfNetworkElementService"
+ availability="mandatory" activation="eager"
+ interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/>
+
+ <bean id="provider"
+ class="org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.DeviceManagerOpenroadmImpl"
+ init-method="init" destroy-method="close">
+ <property name="netconfNetworkElementService" ref="netconfNetworkElementService"/>
+ </bean>
+</blueprint>
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/version.properties b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/version.properties
new file mode 100644
index 000000000..6638c04f9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/resources/version.properties
@@ -0,0 +1,24 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# Properties filled in by maven during build process
+version = ${project.version}
+build = ${buildtime}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/iana-hardware.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/iana-hardware.yang
new file mode 100755
index 000000000..52bcaf3a0
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/iana-hardware.yang
@@ -0,0 +1,180 @@
+module iana-hardware {
+yang-version 1.1;
+namespace "urn:ietf:params:xml:ns:yang:iana-hardware";
+prefix ianahw;
+
+organization "IANA";
+contact
+ " Internet Assigned Numbers Authority
+ Postal: ICANN
+ 12025 Waterfront Drive, Suite 300
+ Los Angeles, CA 90094-2536
+ United States of America
+ Tel: +1 310 301 5800
+ E-Mail: iana@iana.org>";
+
+description
+ "IANA-defined identities for hardware class.
+ The latest revision of this YANG module can be obtained from
+ the IANA website.
+ Requests for new values should be made to IANA via
+ email (iana@iana.org).
+ Copyright (c) 2018 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 Simplified 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).
+ The initial version of this YANG module is part of RFC 8348;
+ see the RFC itself for full legal notices.";
+reference
+ "https://www.iana.org/assignments/yang-parameters";
+
+revision 2018-03-13 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 8348: A YANG Data Model for Hardware Management";
+}
+
+/*
+ * Identities
+ */
+
+identity hardware-class {
+ description
+ "This identity is the base for all hardware class
+ identifiers.";
+}
+
+identity unknown {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is unknown
+ to the server.";
+}
+
+identity chassis {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is an
+ overall container for networking equipment. Any class of
+ physical component, except a stack, may be contained within a
+ chassis; a chassis may only be contained within a stack.";
+}
+
+identity backplane {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of device for aggregating and forwarding networking traffic,
+ such as a shared backplane in a modular ethernet switch. Note
+ that an implementation may model a backplane as a single
+ physical component, which is actually implemented as multiple
+ discrete physical components (within a chassis or stack).";
+}
+
+identity container {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is capable
+ of containing one or more removable physical entities,
+ possibly of different types. For example, each (empty or
+ full) slot in a chassis will be modeled as a container. Note
+ that all removable physical components should be modeled
+ within a container component, such as field-replaceable
+ modules, fans, or power supplies. Note that all known
+ containers should be modeled by the agent, including empty
+ containers.";
+}
+
+identity power-supply {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is a
+ power-supplying component.";
+}
+
+identity fan {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is a fan or
+ other heat-reduction component.";
+}
+
+identity sensor {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of sensor, such as a temperature sensor within a router
+ chassis.";
+}
+
+identity module {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of self-contained sub-system. If a module component is
+ removable, then it should be modeled within a container
+ component; otherwise, it should be modeled directly within
+ another physical component (e.g., a chassis or another
+ module).";
+}
+
+identity port {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of networking port capable of receiving and/or transmitting
+ networking traffic.";
+}
+
+identity stack {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of super-container (possibly virtual) intended to group
+ together multiple chassis entities. A stack may be realized
+ by a virtual cable, a real interconnect cable attached to
+ multiple chassis, or multiple interconnect cables. A stack
+ should not be modeled within any other physical components,
+ but a stack may be contained within another stack. Only
+ chassis components should be contained within a stack.";
+}
+
+identity cpu {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of central processing unit.";
+}
+
+identity energy-object {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of energy object, i.e., it is a piece of equipment that is
+ part of or attached to a communications network that is
+ monitored, it is controlled, or it aids in the management of
+ another device for Energy Management.";
+}
+
+identity battery {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of battery.";
+}
+
+identity storage-drive {
+ base ianahw:hardware-class;
+ description
+ "This identity is applicable if the hardware class is some sort
+ of component with data storage capability as its main
+ functionality, e.g., hard disk drive (HDD), solid-state device
+ (SSD), solid-state hybrid drive (SSHD), object storage device
+ (OSD), or other.";
+}
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-alarms.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-alarms.yang
new file mode 100644
index 000000000..856320b64
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-alarms.yang
@@ -0,0 +1,1526 @@
+module ietf-alarms {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-alarms";
+ prefix al;
+
+ import ietf-yang-types {
+ prefix yang;
+ reference
+ "RFC 6991: Common YANG Data Types.";
+ }
+
+ organization
+ "IETF CCAMP Working Group";
+ contact
+ "WG Web: <https://trac.ietf.org/trac/ccamp>
+ WG List: <mailto:ccamp@ietf.org>
+
+ Editor: Stefan Vallin
+ <mailto:stefan@wallan.se>
+
+ Editor: Martin Bjorklund
+ <mailto:mbj@tail-f.com>";
+ description
+ "This module defines an interface for managing alarms. Main
+ inputs to the module design are the 3GPP Alarm Integration
+ Reference Point (IRP), ITU-T X.733, and ANSI/ISA-18.2 alarm
+ standards.
+ Main features of this module include:
+
+ * Alarm list:
+ A list of all alarms. Cleared alarms stay in
+ the list until explicitly purged.
+
+ * Operator actions on alarms:
+ Acknowledging and closing alarms.
+
+ * Administrative actions on alarms:
+ Purging alarms from the list according to specific
+ criteria.
+
+ * Alarm inventory:
+ A management application can read all
+ alarm types implemented by the system.
+
+ * Alarm shelving:
+ Shelving (blocking) alarms according
+ to specific criteria.
+
+ * Alarm profiles:
+ A management system can attach further
+ information to alarm types, for example,
+ overriding system-default severity
+ levels.
+
+ This module uses a stateful view on alarms. An alarm is a state
+ for a specific resource (note that an alarm is not a
+ notification). An alarm type is a possible alarm state for a
+ resource. For example, the tuple:
+
+ ('link-alarm', 'GigabitEthernet0/25')
+
+ is an alarm of type 'link-alarm' on the resource
+ 'GigabitEthernet0/25'.
+
+ Alarm types are identified using YANG identities and an optional
+ string-based qualifier. The string-based qualifier allows for
+ dynamic extension of the statically defined alarm types. Alarm
+ types identify a possible alarm state and not the individual
+ notifications. For example, the traditional 'link-down' and
+ 'link-up' notifications are two notifications referring to the
+ same alarm type 'link-alarm'.
+
+ With this design, there is no ambiguity about how alarm and
+ alarm clear correlation should be performed; notifications that
+ report the same resource and alarm type are considered updates
+ of the same alarm, e.g., clearing an active alarm or changing
+ the severity of an alarm. The instrumentation can update the
+ severity and alarm text on an existing alarm. The above alarm
+ example can therefore look like the following:
+
+ (('link-alarm', 'GigabitEthernet0/25'),
+ warning,
+ 'interface down while interface admin state is up')
+
+ There is a clear separation between updates on the alarm from
+ the underlying resource, like clear, and updates from an
+ operator, like acknowledging or closing an alarm:
+
+ (('link-alarm', 'GigabitEthernet0/25'),
+ warning,
+ 'interface down while interface admin state is up',
+ cleared,
+ closed)
+
+ Administrative actions like removing closed alarms older than a
+ given time is supported.
+
+ This YANG module does not define how the underlying
+ instrumentation detects and clears the specific alarms. That
+ belongs to the Standards Development Organization (SDO) or
+ enterprise that owns that specific technology.
+
+ The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
+ NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
+ 'MAY', and 'OPTIONAL' in this document are to be interpreted as
+ described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
+ they appear in all capitals, as shown here.
+
+ Copyright (c) 2019 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 Simplified 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 8632; see
+ the RFC itself for full legal notices.";
+
+ revision 2019-09-11 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 8632: A YANG Data Model for Alarm Management";
+ }
+
+ /*
+ * Features
+ */
+
+ feature operator-actions {
+ description
+ "This feature indicates that the system supports operator
+ states on alarms.";
+ }
+
+ feature alarm-shelving {
+ description
+ "This feature indicates that the system supports shelving
+ (blocking) alarms.
+
+ Alarm shelving may have an impact on server processing
+ resources in order to match alarms against shelf
+ criteria.";
+ }
+
+ feature alarm-history {
+ description
+ "This feature indicates that the server maintains a history
+ of state changes for each alarm. For example, if an alarm
+ toggles between cleared and active 10 times, these state
+ changes are present in a separate list in the alarm.
+
+ Keeping the alarm history may have an impact on server
+ memory resources.";
+ }
+
+ feature alarm-summary {
+ description
+ "This feature indicates that the server summarizes the number
+ of alarms per severity and operator state.";
+ }
+
+ feature alarm-profile {
+ description
+ "The system enables clients to configure further information
+ to each alarm type.";
+ }
+
+ feature severity-assignment {
+ description
+ "The system supports configurable alarm severity levels.";
+ reference
+ "ITU-T Recommendation M.3100:
+ Generic network information model
+ ITU-T Recommendation M.3160:
+ Generic, protocol-neutral management information model";
+ }
+
+ feature root-cause-analysis {
+ description
+ "The system supports identifying candidate root-cause
+ resources for an alarm, for example, a disk partition
+ root cause for a logger failure alarm.";
+ }
+
+ feature service-impact-analysis {
+ description
+ "The system supports identifying candidate-impacted
+ resources for an alarm, for example, an interface state change
+ resulting in a link alarm, which can refer to a link as being
+ impacted.";
+ }
+
+ feature alarm-correlation {
+ description
+ "The system supports correlating/grouping alarms
+ that belong together.";
+ }
+
+ /*
+ * Identities
+ */
+
+ identity alarm-type-id {
+ description
+ "Base identity for alarm types. A unique identification of
+ the alarm, not including the resource. Different resources
+ can share alarm types. If the resource reports the same
+ alarm type, it is considered to be the same alarm. The alarm
+ type is a simplification of the different X.733 and 3GPP Alarm
+ IRP correlation mechanisms, and it allows for
+ hierarchical extensions.
+
+ A string-based qualifier can be used in addition to the
+ identity in order to have different alarm types based on
+ information not known at design time, such as values in
+ textual SNMP Notification varbinds.
+
+ Standards and vendors can define sub-identities to clearly
+ identify specific alarm types.
+
+ This identity is abstract and MUST NOT be used for alarms.";
+ }
+
+ /*
+ * Common types
+ */
+
+ typedef resource {
+ type union {
+ type instance-identifier {
+ require-instance false;
+ }
+ type yang:object-identifier;
+ type string;
+ type yang:uuid;
+ }
+ description
+ "This is an identification of the alarming resource, such as an
+ interface. It should be as fine-grained as possible to both
+ guide the operator and guarantee uniqueness of the alarms.
+
+ If the alarming resource is modeled in YANG, this type will
+ be an instance-identifier.
+
+ If the resource is an SNMP object, the type will be an
+ 'object-identifier'.
+
+ If the resource is anything else, for example, a distinguished
+ name or a Common Information Model (CIM) path, this type will
+ be a string.
+
+ If the alarming object is identified by a Universally Unique
+ Identifier (UUID), use the uuid type. Be cautious when using
+ this type, since a UUID is hard to use for an operator.
+
+ If the server supports several models, the precedence should
+ be in the order as given in the union definition.";
+ }
+
+ typedef resource-match {
+ type union {
+ type yang:xpath1.0;
+ type yang:object-identifier;
+ type string;
+ }
+ description
+ "This type is used to match resources of type 'resource'.
+ Since the type 'resource' is a union of different types, the
+ 'resource-match' type is also a union of corresponding types.
+
+ If the type is given as an XPath 1.0 expression, a resource
+ of type 'instance-identifier' matches if the instance is part
+ of the node set that is the result of evaluating the XPath 1.0
+ expression. For example, the XPath 1.0 expression:
+
+ /ietf-interfaces:interfaces/ietf-interfaces:interface
+ [ietf-interfaces:type='ianaift:ethernetCsmacd']
+
+ would match the resource instance-identifier:
+
+ /if:interfaces/if:interface[if:name='eth1'],
+
+ assuming that the interface 'eth1' is of type
+ 'ianaift:ethernetCsmacd'.
+
+ If the type is given as an object identifier, a resource of
+ type 'object-identifier' matches if the match object
+ identifier is a prefix of the resource's object identifier.
+ For example, the value:
+
+ 1.3.6.1.2.1.2.2
+
+ would match the resource object identifier:
+
+ 1.3.6.1.2.1.2.2.1.1.5
+
+ If the type is given as an UUID or a string, it is interpreted
+ as an XML Schema regular expression, which matches a resource
+ of type 'yang:uuid' or 'string' if the given regular
+ expression matches the resource string.
+
+ If the type is given as an XPath expression, it is evaluated
+ in the following XPath context:
+
+ o The set of namespace declarations is the set of prefix
+ and namespace pairs for all YANG modules implemented by
+ the server, where the prefix is the YANG module name and
+ the namespace is as defined by the 'namespace' statement
+ in the YANG module.
+
+ If a leaf of this type is encoded in XML, all namespace
+ declarations in scope on the leaf element are added to
+ the set of namespace declarations. If a prefix found in
+ the XML is already present in the set of namespace
+ declarations, the namespace in the XML is used.
+
+ o The set of variable bindings is empty.
+
+ o The function library is the core function library, and
+ the functions are defined in Section 10 of RFC 7950.
+
+ o The context node is the root node in the data tree.";
+ reference
+ "XML Schema Part 2: Datatypes Second Edition,
+ World Wide Web Consortium Recommendation
+ REC-xmlschema-2-20041028";
+ }
+
+ typedef alarm-text {
+ type string;
+ description
+ "The string used to inform operators about the alarm. This
+ MUST contain enough information for an operator to be able to
+ understand the problem and how to resolve it. If this string
+ contains structure, this format should be clearly documented
+ for programs to be able to parse that information.";
+ }
+
+ typedef severity {
+ type enumeration {
+ enum indeterminate {
+ value 2;
+ description
+ "Indicates that the severity level could not be
+ determined. This level SHOULD be avoided.";
+ }
+ enum warning {
+ value 3;
+ description
+ "The 'warning' severity level indicates the detection of a
+ potential or impending service-affecting fault, before any
+ significant effects have been felt. Action should be
+ taken to further diagnose (if necessary) and correct the
+ problem in order to prevent it from becoming a more
+ serious service-affecting fault.";
+ }
+ enum minor {
+ value 4;
+ description
+ "The 'minor' severity level indicates the existence of a
+ non-service-affecting fault condition and that corrective
+ action should be taken in order to prevent a more serious
+ (for example, service-affecting) fault. Such a severity
+ can be reported, for example, when the detected alarm
+ condition is not currently degrading the capacity of the
+ resource.";
+ }
+ enum major {
+ value 5;
+ description
+ "The 'major' severity level indicates that a service-
+ affecting condition has developed and an urgent corrective
+ action is required. Such a severity can be reported, for
+ example, when there is a severe degradation in the
+ capability of the resource and its full capability must be
+ restored.";
+ }
+ enum critical {
+ value 6;
+ description
+ "The 'critical' severity level indicates that a service-
+ affecting condition has occurred and an immediate
+ corrective action is required. Such a severity can be
+ reported, for example, when a resource becomes totally out
+ of service and its capability must be restored.";
+ }
+ }
+ description
+ "The severity level of the alarm. Note well that the value
+ 'clear' is not included. Whether or not an alarm is cleared
+ is a separate boolean flag.";
+ reference
+ "ITU-T Recommendation X.733: Information Technology
+ - Open Systems Interconnection
+ - System Management: Alarm Reporting Function";
+ }
+
+ typedef severity-with-clear {
+ type union {
+ type enumeration {
+ enum cleared {
+ value 1;
+ description
+ "The alarm is cleared by the instrumentation.";
+ }
+ }
+ type severity;
+ }
+ description
+ "The severity level of the alarm including clear. This is used
+ only in notifications reporting state changes for an alarm.";
+ }
+
+ typedef writable-operator-state {
+ type enumeration {
+ enum none {
+ value 1;
+ description
+ "The alarm is not being taken care of.";
+ }
+ enum ack {
+ value 2;
+ description
+ "The alarm is being taken care of. Corrective action not
+ taken yet or has failed";
+ }
+ enum closed {
+ value 3;
+ description
+ "Corrective action taken successfully.";
+ }
+ }
+ description
+ "Operator states on an alarm. The 'closed' state indicates
+ that an operator considers the alarm being resolved. This is
+ separate from the alarm's 'is-cleared' leaf.";
+ }
+
+ typedef operator-state {
+ type union {
+ type writable-operator-state;
+ type enumeration {
+ enum shelved {
+ value 4;
+ description
+ "The alarm is shelved. Alarms in /alarms/shelved-alarms/
+ MUST be assigned this operator state by the server as
+ the last entry in the 'operator-state-change' list. The
+ text for that entry SHOULD include the shelf name.";
+ }
+ enum un-shelved {
+ value 5;
+ description
+ "The alarm is moved back to 'alarm-list' from a shelf.
+ Alarms that are moved from /alarms/shelved-alarms/ to
+ /alarms/alarm-list MUST be assigned this state by the
+ server as the last entry in the 'operator-state-change'
+ list. The text for that entry SHOULD include the shelf
+ name.";
+ }
+ }
+ }
+ description
+ "Operator states on an alarm. The 'closed' state indicates
+ that an operator considers the alarm being resolved. This is
+ separate from the alarm's 'is-cleared' leaf.";
+ }
+
+ /* Alarm type */
+
+ typedef alarm-type-id {
+ type identityref {
+ base alarm-type-id;
+ }
+ description
+ "Identifies an alarm type. The description of the alarm type
+ id MUST indicate whether or not the alarm type is abstract.
+ An abstract alarm type is used as a base for other alarm type
+ ids and will not be used as a value for an alarm or be present
+ in the alarm inventory.";
+ }
+
+ typedef alarm-type-qualifier {
+ type string;
+ description
+ "If an alarm type cannot be fully specified at design time by
+ 'alarm-type-id', this string qualifier is used in addition to
+ fully define a unique alarm type.
+
+ The definition of alarm qualifiers is considered to be part of
+ the instrumentation and is out of scope for this module. An
+ empty string is used when this is part of a key.";
+ }
+
+ /*
+ * Groupings
+ */
+
+ grouping common-alarm-parameters {
+ description
+ "Common parameters for an alarm.
+
+ This grouping is used both in the alarm list and in the
+ notification representing an alarm-state change.";
+ leaf resource {
+ type resource;
+ mandatory true;
+ description
+ "The alarming resource. See also 'alt-resource'. This could
+ be, for example, a reference to the alarming interface";
+ }
+ leaf alarm-type-id {
+ type alarm-type-id;
+ mandatory true;
+ description
+ "This leaf and the leaf 'alarm-type-qualifier' together
+ provide a unique identification of the alarm type.";
+ }
+ leaf alarm-type-qualifier {
+ type alarm-type-qualifier;
+ description
+ "This leaf is used when the 'alarm-type-id' leaf cannot
+ uniquely identify the alarm type. Normally, this is not the
+ case, and this leaf is the empty string.";
+ }
+ leaf-list alt-resource {
+ type resource;
+ description
+ "Used if the alarming resource is available over other
+ interfaces. This field can contain SNMP OIDs, CIM paths, or
+ 3GPP distinguished names, for example.";
+ }
+ list related-alarm {
+ if-feature "alarm-correlation";
+ key "resource alarm-type-id alarm-type-qualifier";
+ description
+ "References to related alarms. Note that the related alarm
+ might have been purged from the alarm list.";
+ leaf resource {
+ type leafref {
+ path "/alarms/alarm-list/alarm/resource";
+ require-instance false;
+ }
+ description
+ "The alarming resource for the related alarm.";
+ }
+ leaf alarm-type-id {
+ type leafref {
+ path "/alarms/alarm-list/alarm"
+ + "[resource=current()/../resource]"
+ + "/alarm-type-id";
+ require-instance false;
+ }
+ description
+ "The alarm type identifier for the related alarm.";
+ }
+ leaf alarm-type-qualifier {
+ type leafref {
+ path "/alarms/alarm-list/alarm"
+ + "[resource=current()/../resource]"
+ + "[alarm-type-id=current()/../alarm-type-id]"
+ + "/alarm-type-qualifier";
+ require-instance false;
+ }
+ description
+ "The alarm qualifier for the related alarm.";
+ }
+ }
+ leaf-list impacted-resource {
+ if-feature "service-impact-analysis";
+ type resource;
+ description
+ "Resources that might be affected by this alarm. If the
+ system creates an alarm on a resource and also has a mapping
+ to other resources that might be impacted, these resources
+ can be listed in this leaf-list. In this way, the system
+ can create one alarm instead of several. For example, if an
+ interface has an alarm, the 'impacted-resource' can
+ reference the aggregated port channels.";
+ }
+ leaf-list root-cause-resource {
+ if-feature "root-cause-analysis";
+ type resource;
+ description
+ "Resources that are candidates for causing the alarm. If the
+ system has a mechanism to understand the candidate root
+ causes of an alarm, this leaf-list can be used to list the
+ root-cause candidate resources. In this way, the system can
+ create one alarm instead of several. An example might be a
+ logging system (alarm resource) that fails; the alarm can
+ reference the file system in the 'root-cause-resource'
+ leaf-list. Note that the intended use is not to also send
+ an alarm with the 'root-cause-resource' as an alarming
+ resource. The 'root-cause-resource' leaf-list is a hint and
+ should not also generate an alarm for the same problem.";
+ }
+ }
+
+ grouping alarm-state-change-parameters {
+ description
+ "Parameters for an alarm-state change.
+
+ This grouping is used both in the alarm list's status-change
+ list and in the notification representing an alarm-state
+ change.";
+ leaf time {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "The time the status of the alarm changed. The value
+ represents the time the real alarm-state change appeared in
+ the resource and not when it was added to the alarm
+ list. The /alarm-list/alarm/last-changed MUST be set to the
+ same value.";
+ }
+ leaf perceived-severity {
+ type severity-with-clear;
+ mandatory true;
+ description
+ "The severity of the alarm as defined by X.733. Note that
+ this may not be the original severity since the alarm may
+ have changed severity.";
+ reference
+ "ITU-T Recommendation X.733: Information Technology
+ - Open Systems Interconnection
+ - System Management: Alarm Reporting Function";
+ }
+ leaf alarm-text {
+ type alarm-text;
+ mandatory true;
+ description
+ "A user-friendly text describing the alarm-state change.";
+ reference
+ "ITU-T Recommendation X.733: Information Technology
+ - Open Systems Interconnection
+ - System Management: Alarm Reporting Function";
+ }
+ }
+
+ grouping operator-parameters {
+ description
+ "This grouping defines parameters that can be changed by an
+ operator.";
+ leaf time {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "Timestamp for operator action on the alarm.";
+ }
+ leaf operator {
+ type string;
+ mandatory true;
+ description
+ "The name of the operator that has acted on this alarm.";
+ }
+ leaf state {
+ type operator-state;
+ mandatory true;
+ description
+ "The operator's view of the alarm state.";
+ }
+ leaf text {
+ type string;
+ description
+ "Additional optional textual information provided by the
+ operator.";
+ }
+ }
+
+ grouping resource-alarm-parameters {
+ description
+ "Alarm parameters that originate from the resource view.";
+ leaf is-cleared {
+ type boolean;
+ mandatory true;
+ description
+ "Indicates the current clearance state of the alarm. An
+ alarm might toggle from active alarm to cleared alarm and
+ back to active again.";
+ }
+ leaf last-raised {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "An alarm may change severity level and toggle between
+ active and cleared during its lifetime. This leaf indicates
+ the last time it was raised ('is-cleared' = 'false').";
+ }
+ leaf last-changed {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "A timestamp when the 'status-change' or
+ 'operator-state-change' list was last changed.";
+ }
+ leaf perceived-severity {
+ type severity;
+ mandatory true;
+ description
+ "The last severity of the alarm.
+
+ If an alarm was raised with severity 'warning' but later
+ changed to 'major', this leaf will show 'major'.";
+ }
+ leaf alarm-text {
+ type alarm-text;
+ mandatory true;
+ description
+ "The last reported alarm text. This text should contain
+ information for an operator to be able to understand the
+ problem and how to resolve it.";
+ }
+ list status-change {
+ if-feature "alarm-history";
+ key "time";
+ min-elements 1;
+ description
+ "A list of status-change events for this alarm.
+
+ The entry with latest timestamp in this list MUST
+ correspond to the leafs 'is-cleared', 'perceived-severity',
+ and 'alarm-text' for the alarm.
+
+ This list is ordered according to the timestamps of alarm
+ state changes. The first item corresponds to the latest
+ state change.
+
+ The following state changes create an entry in this
+ list:
+ - changed severity (warning, minor, major, critical)
+ - clearance status; this also updates the 'is-cleared'
+ leaf
+ - alarm-text update";
+ uses alarm-state-change-parameters;
+ }
+ }
+
+ grouping filter-input {
+ description
+ "Grouping to specify a filter construct on alarm information.";
+ leaf alarm-clearance-status {
+ type enumeration {
+ enum any {
+ description
+ "Ignore alarm-clearance status.";
+ }
+ enum cleared {
+ description
+ "Filter cleared alarms.";
+ }
+ enum not-cleared {
+ description
+ "Filter not-cleared alarms.";
+ }
+ }
+ mandatory true;
+ description
+ "The clearance status of the alarm.";
+ }
+ container older-than {
+ presence "Age specification";
+ description
+ "Matches the 'last-status-change' leaf in the alarm.";
+ choice age-spec {
+ description
+ "Filter using date and time age.";
+ case seconds {
+ leaf seconds {
+ type uint16;
+ description
+ "Age expressed in seconds.";
+ }
+ }
+ case minutes {
+ leaf minutes {
+ type uint16;
+ description
+ "Age expressed in minutes.";
+ }
+ }
+ case hours {
+ leaf hours {
+ type uint16;
+ description
+ "Age expressed in hours.";
+ }
+ }
+ case days {
+ leaf days {
+ type uint16;
+ description
+ "Age expressed in days.";
+ }
+ }
+ case weeks {
+ leaf weeks {
+ type uint16;
+ description
+ "Age expressed in weeks.";
+ }
+ }
+ }
+ }
+ container severity {
+ presence "Severity filter";
+ choice sev-spec {
+ description
+ "Filter based on severity level.";
+ leaf below {
+ type severity;
+ description
+ "Severity less than this leaf.";
+ }
+ leaf is {
+ type severity;
+ description
+ "Severity level equal to this leaf.";
+ }
+ leaf above {
+ type severity;
+ description
+ "Severity level higher than this leaf.";
+ }
+ }
+ description
+ "Filter based on severity.";
+ }
+ container operator-state-filter {
+ if-feature "operator-actions";
+ presence "Operator state filter";
+ leaf state {
+ type operator-state;
+ description
+ "Filter on operator state.";
+ }
+ leaf user {
+ type string;
+ description
+ "Filter based on which operator.";
+ }
+ description
+ "Filter based on operator state.";
+ }
+ }
+
+ /*
+ * The /alarms data tree
+ */
+
+ container alarms {
+ description
+ "The top container for this module.";
+ container control {
+ description
+ "Configuration to control the alarm behavior.";
+ leaf max-alarm-status-changes {
+ type union {
+ type uint16;
+ type enumeration {
+ enum infinite {
+ description
+ "The status-change entries are accumulated
+ infinitely.";
+ }
+ }
+ }
+ default "32";
+ description
+ "The 'status-change' entries are kept in a circular list
+ per alarm. When this number is exceeded, the oldest
+ status change entry is automatically removed. If the
+ value is 'infinite', the status-change entries are
+ accumulated infinitely.";
+ }
+ leaf notify-status-changes {
+ type enumeration {
+ enum all-state-changes {
+ description
+ "Send notifications for all status changes.";
+ }
+ enum raise-and-clear {
+ description
+ "Send notifications only for raise, clear, and
+ re-raise. Notifications for severity-level changes or
+ alarm-text changes are not sent.";
+ }
+ enum severity-level {
+ description
+ "Only send notifications for alarm-state changes
+ crossing the level specified in
+ 'notify-severity-level'. Always send clear
+ notifications.";
+ }
+ }
+ must '. != "severity-level" or ../notify-severity-level' {
+ description
+ "When notify-status-changes is 'severity-level', a value
+ must be given for 'notify-severity-level'.";
+ }
+ default "all-state-changes";
+ description
+ "This leaf controls the notifications sent for alarm status
+ updates. There are three options:
+
+ 1. Notifications are sent for all updates, severity-level
+ changes, and alarm-text changes.
+
+ 2. Notifications are only sent for alarm raise and clear.
+
+ 3. Notifications are sent for status changes equal to or
+ above the specified severity level. Clear
+ notifications shall always be sent. Notifications
+ shall also be sent for state changes that make an
+ alarm less severe than the specified level.
+
+ For example, in option 3, assume that the severity level
+ is set to major and that the alarm has the following state
+ changes:
+
+ [(Time, severity, clear)]:
+ [(T1, major, -), (T2, minor, -), (T3, warning, -),
+ (T4, minor, -), (T5, major, -), (T6, critical, -),
+ (T7, major. -), (T8, major, clear)]
+
+ In that case, notifications will be sent at times
+ T1, T2, T5, T6, T7, and T8.";
+ }
+ leaf notify-severity-level {
+ when '../notify-status-changes = "severity-level"';
+ type severity;
+ description
+ "Only send notifications for alarm-state changes crossing
+ the specified level. Always send clear notifications.";
+ }
+ container alarm-shelving {
+ if-feature "alarm-shelving";
+ description
+ "The 'alarm-shelving/shelf' list is used to shelve
+ (block/filter) alarms. The conditions in the shelf
+ criteria are logically ANDed. The first matching shelf is
+ used, and an alarm is shelved only for this first match.
+ Matching alarms MUST appear in the
+ /alarms/shelved-alarms/shelved-alarm list, and
+ non-matching /alarms MUST appear in the
+ /alarms/alarm-list/alarm list. The server does not send
+ any notifications for shelved alarms.
+
+ The server MUST maintain states (e.g., severity
+ changes) for the shelved alarms.
+
+ Alarms that match the criteria shall have an
+ operator state 'shelved'. When the shelf
+ configuration removes an alarm from the shelf, the server
+ shall add the operator state 'un-shelved'.";
+ list shelf {
+ key "name";
+ //ordered-by user;
+ leaf name {
+ type string;
+ description
+ "An arbitrary name for the alarm shelf.";
+ }
+ description
+ "Each entry defines the criteria for shelving alarms.
+ Criteria are ANDed. If no criteria are specified,
+ all alarms will be shelved.";
+ leaf-list resource {
+ type resource-match;
+ description
+ "Shelve alarms for matching resources.";
+ }
+ list alarm-type {
+ key "alarm-type-id alarm-type-qualifier-match";
+ description
+ "Any alarm matching the combined criteria of
+ 'alarm-type-id' and 'alarm-type-qualifier-match'
+ MUST be matched.";
+ leaf alarm-type-id {
+ type alarm-type-id;
+ description
+ "Shelve all alarms that have an 'alarm-type-id' that
+ is equal to or derived from the given
+ 'alarm-type-id'.";
+ }
+ leaf alarm-type-qualifier-match {
+ type string;
+ description
+ "An XML Schema regular expression that is used to
+ match an alarm type qualifier. Shelve all alarms
+ that match this regular expression for the alarm
+ type qualifier.";
+ reference
+ "XML Schema Part 2: Datatypes Second Edition,
+ World Wide Web Consortium Recommendation
+ REC-xmlschema-2-20041028";
+ }
+ }
+ leaf description {
+ type string;
+ description
+ "An optional textual description of the shelf. This
+ description should include the reason for shelving
+ these alarms.";
+ }
+ }
+ }
+ }
+ container alarm-inventory {
+ config false;
+ description
+ "The 'alarm-inventory/alarm-type' list contains all possible
+ alarm types for the system.
+
+ If the system knows for which resources a specific alarm
+ type can appear, it is also identified in the inventory.
+ The list also tells if each alarm type has a corresponding
+ clear state. The inventory shall only contain concrete
+ alarm types.
+
+ The alarm inventory MUST be updated by the system when new
+ alarms can appear. This can be the case when installing new
+ software modules or inserting new card types. A
+ notification 'alarm-inventory-changed' is sent when the
+ inventory is changed.";
+ list alarm-type {
+ key "alarm-type-id alarm-type-qualifier";
+ description
+ "An entry in this list defines a possible alarm.";
+ leaf alarm-type-id {
+ type alarm-type-id;
+ description
+ "The statically defined alarm type identifier for this
+ possible alarm.";
+ }
+ leaf alarm-type-qualifier {
+ type alarm-type-qualifier;
+ description
+ "The optionally dynamically defined alarm type identifier
+ for this possible alarm.";
+ }
+ leaf-list resource {
+ type resource-match;
+ description
+ "Optionally, specifies for which resources the alarm type
+ is valid.";
+ }
+ leaf will-clear {
+ type boolean;
+ mandatory true;
+ description
+ "This leaf tells the operator if the alarm will be
+ cleared when the correct corrective action has been
+ taken. Implementations SHOULD strive for detecting the
+ cleared state for all alarm types.
+
+ If this leaf is 'true', the operator can monitor the
+ alarm until it becomes cleared after the corrective
+ action has been taken.
+
+ If this leaf is 'false', the operator needs to validate
+ that the alarm is no longer active using other
+ mechanisms. Alarms can lack a corresponding clear due
+ to missing instrumentation or no logical
+ corresponding clear state.";
+ }
+ leaf-list severity-level {
+ type severity;
+ description
+ "This leaf-list indicates the possible severity levels of
+ this alarm type. Note well that 'clear' is not part of
+ the severity type. In general, the severity level
+ should be defined by the instrumentation based on the
+ dynamic state, rather than being defined statically by
+ the alarm type, in order to provide a relevant severity
+ level based on dynamic state and context. However, most
+ alarm types have a defined set of possible severity
+ levels, and this should be provided here.";
+ }
+ leaf description {
+ type string;
+ mandatory true;
+ description
+ "A description of the possible alarm. It SHOULD include
+ information on possible underlying root causes and
+ corrective actions.";
+ }
+ }
+ }
+ container summary {
+ if-feature "alarm-summary";
+ config false;
+ description
+ "This container gives a summary of the number of alarms.";
+ list alarm-summary {
+ key "severity";
+ description
+ "A global summary of all alarms in the system. The summary
+ does not include shelved alarms.";
+ leaf severity {
+ type severity;
+ description
+ "Alarm summary for this severity level.";
+ }
+ leaf total {
+ type yang:gauge32;
+ description
+ "Total number of alarms of this severity level.";
+ }
+ leaf not-cleared {
+ type yang:gauge32;
+ description
+ "Total number of alarms of this severity level
+ that are not cleared.";
+ }
+ leaf cleared {
+ type yang:gauge32;
+ description
+ "For this severity level, the number of alarms that are
+ cleared.";
+ }
+ leaf cleared-not-closed {
+ if-feature "operator-actions";
+ type yang:gauge32;
+ description
+ "For this severity level, the number of alarms that are
+ cleared but not closed.";
+ }
+ leaf cleared-closed {
+ if-feature "operator-actions";
+ type yang:gauge32;
+ description
+ "For this severity level, the number of alarms that are
+ cleared and closed.";
+ }
+ leaf not-cleared-closed {
+ if-feature "operator-actions";
+ type yang:gauge32;
+ description
+ "For this severity level, the number of alarms that are
+ not cleared but closed.";
+ }
+ leaf not-cleared-not-closed {
+ if-feature "operator-actions";
+ type yang:gauge32;
+ description
+ "For this severity level, the number of alarms that are
+ not cleared and not closed.";
+ }
+ }
+ leaf shelves-active {
+ if-feature "alarm-shelving";
+ type empty;
+ description
+ "This is a hint to the operator that there are active
+ alarm shelves. This leaf MUST exist if the
+ /alarms/shelved-alarms/number-of-shelved-alarms is > 0.";
+ }
+ }
+ container alarm-list {
+ config false;
+ description
+ "The alarms in the system.";
+ leaf number-of-alarms {
+ type yang:gauge32;
+ description
+ "This object shows the total number of
+ alarms in the system, i.e., the total number
+ of entries in the alarm list.";
+ }
+ leaf last-changed {
+ type yang:date-and-time;
+ description
+ "A timestamp when the alarm list was last
+ changed. The value can be used by a manager to
+ initiate an alarm resynchronization procedure.";
+ }
+ list alarm {
+ key "resource alarm-type-id alarm-type-qualifier";
+ description
+ "The list of alarms. Each entry in the list holds one
+ alarm for a given alarm type and resource. An alarm can
+ be updated from the underlying resource or by the user.
+ The following leafs are maintained by the resource:
+ 'is-cleared', 'last-change', 'perceived-severity', and
+ 'alarm-text'. An operator can change 'operator-state' and
+ 'operator-text'.
+
+ Entries appear in the alarm list the first time an alarm
+ becomes active for a given alarm type and resource.
+ Entries do not get deleted when the alarm is cleared.
+ Clear status is represented as a boolean flag.
+
+ Alarm entries are removed, i.e., purged, from the list by
+ an explicit purge action. For example, purge all alarms
+ that are cleared and in closed operator state that are
+ older than 24 hours. Purged alarms are removed from the
+ alarm list. If the alarm resource state changes after a
+ purge, the alarm will reappear in the alarm list.
+
+ Systems may also remove alarms based on locally configured
+ policies; this is out of scope for this module.";
+ uses common-alarm-parameters;
+ leaf time-created {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "The timestamp when this alarm entry was created. This
+ represents the first time the alarm appeared; it can
+ also represent that the alarm reappeared after a purge.
+ Further state changes of the same alarm do not change
+ this leaf; these changes will update the 'last-changed'
+ leaf.";
+ }
+ uses resource-alarm-parameters;
+ list operator-state-change {
+ if-feature "operator-actions";
+ key "time";
+ description
+ "This list is used by operators to indicate the state of
+ human intervention on an alarm. For example, if an
+ operator has seen an alarm, the operator can add a new
+ item to this list indicating that the alarm is
+ acknowledged.";
+ uses operator-parameters;
+ }
+ action set-operator-state {
+ if-feature "operator-actions";
+ description
+ "This is a means for the operator to indicate the level
+ of human intervention on an alarm.";
+ input {
+ leaf state {
+ type writable-operator-state;
+ mandatory true;
+ description
+ "Set this operator state.";
+ }
+ leaf text {
+ type string;
+ description
+ "Additional optional textual information.";
+ }
+ }
+ }
+ notification operator-action {
+ if-feature "operator-actions";
+ description
+ "This notification is used to report that an operator
+ acted upon an alarm.";
+ uses operator-parameters;
+ }
+ }
+ action purge-alarms {
+ description
+ "This operation requests that the server delete entries
+ from the alarm list according to the supplied criteria.
+
+ Typically, this operation is used to delete alarms that
+ are in closed operator state and older than a specified
+ time.
+
+ The number of purged alarms is returned as an output
+ parameter.";
+ input {
+ uses filter-input;
+ }
+ output {
+ leaf purged-alarms {
+ type uint32;
+ description
+ "Number of purged alarms.";
+ }
+ }
+ }
+ action compress-alarms {
+ if-feature "alarm-history";
+ description
+ "This operation requests that the server compress
+ entries in the alarm list by removing all but the
+ latest 'status-change' entry for all matching alarms.
+ Conditions in the input are logically ANDed. If no
+ input condition is given, all alarms are compressed.";
+ input {
+ leaf resource {
+ type resource-match;
+ description
+ "Compress the alarms matching this resource.";
+ }
+ leaf alarm-type-id {
+ type leafref {
+ path "/alarms/alarm-list/alarm/alarm-type-id";
+ require-instance false;
+ }
+ description
+ "Compress alarms with this 'alarm-type-id'.";
+ }
+ leaf alarm-type-qualifier {
+ type leafref {
+ path "/alarms/alarm-list/alarm/alarm-type-qualifier";
+ require-instance false;
+ }
+ description
+ "Compress the alarms with this
+ 'alarm-type-qualifier'.";
+ }
+ }
+ output {
+ leaf compressed-alarms {
+ type uint32;
+ description
+ "Number of compressed alarm entries.";
+ }
+ }
+ }
+ }
+ container shelved-alarms {
+ if-feature "alarm-shelving";
+ config false;
+ description
+ "The shelved alarms. Alarms appear here if they match the
+ criteria in /alarms/control/alarm-shelving. This list does
+ not generate any notifications. The list represents alarms
+ that are considered not relevant by the operator. Alarms in
+ this list have an 'operator-state' of 'shelved'. This
+ cannot be changed.";
+ leaf number-of-shelved-alarms {
+ type yang:gauge32;
+ description
+ "This object shows the total number of current
+ alarms, i.e., the total number of entries
+ in the alarm list.";
+ }
+ leaf shelved-alarms-last-changed {
+ type yang:date-and-time;
+ description
+ "A timestamp when the shelved-alarm list was last changed.
+ The value can be used by a manager to initiate an alarm
+ resynchronization procedure.";
+ }
+ list shelved-alarm {
+ key "resource alarm-type-id alarm-type-qualifier";
+ description
+ "The list of shelved alarms. Shelved alarms can only be
+ updated from the underlying resource; no operator actions
+ are supported.";
+ uses common-alarm-parameters;
+ leaf shelf-name {
+ type leafref {
+ path "/alarms/control/alarm-shelving/shelf/name";
+ require-instance false;
+ }
+ description
+ "The name of the shelf.";
+ }
+ uses resource-alarm-parameters;
+ list operator-state-change {
+ if-feature "operator-actions";
+ key "time";
+ description
+ "This list is used by operators to indicate the state of
+ human intervention on an alarm. For shelved alarms, the
+ system has set the list item in the list to 'shelved'.";
+ uses operator-parameters;
+ }
+ }
+ action purge-shelved-alarms {
+ description
+ "This operation requests that the server delete entries from
+ the shelved-alarm list according to the supplied criteria.
+ In the shelved-alarm list, it makes sense to delete alarms
+ that are not relevant anymore.
+
+ The number of purged alarms is returned as an output
+ parameter.";
+ input {
+ uses filter-input;
+ }
+ output {
+ leaf purged-alarms {
+ type uint32;
+ description
+ "Number of purged alarms.";
+ }
+ }
+ }
+ action compress-shelved-alarms {
+ if-feature "alarm-history";
+ description
+ "This operation requests that the server compress entries
+ in the shelved-alarm list by removing all but the latest
+ 'status-change' entry for all matching shelved alarms.
+ Conditions in the input are logically ANDed. If no input
+ condition is given, all alarms are compressed.";
+ input {
+ leaf resource {
+ type leafref {
+ path "/alarms/shelved-alarms/shelved-alarm/resource";
+ require-instance false;
+ }
+ description
+ "Compress the alarms with this resource.";
+ }
+ leaf alarm-type-id {
+ type leafref {
+ path "/alarms/shelved-alarms/shelved-alarm"
+ + "/alarm-type-id";
+ require-instance false;
+ }
+ description
+ "Compress alarms with this 'alarm-type-id'.";
+ }
+ leaf alarm-type-qualifier {
+ type leafref {
+ path "/alarms/shelved-alarms/shelved-alarm"
+ + "/alarm-type-qualifier";
+ require-instance false;
+ }
+ description
+ "Compress the alarms with this
+ 'alarm-type-qualifier'.";
+ }
+ }
+ output {
+ leaf compressed-alarms {
+ type uint32;
+ description
+ "Number of compressed alarm entries.";
+ }
+ }
+ }
+ }
+ list alarm-profile {
+ if-feature "alarm-profile";
+ key "alarm-type-id alarm-type-qualifier-match resource";
+ //ordered-by user;
+ description
+ "This list is used to assign further information or
+ configuration for each alarm type. This module supports a
+ mechanism where the client can override the system-default
+ alarm severity levels. The 'alarm-profile' is also a useful
+ augmentation point for specific additions to alarm types.";
+ leaf alarm-type-id {
+ type alarm-type-id;
+ description
+ "The alarm type identifier to match.";
+ }
+ leaf alarm-type-qualifier-match {
+ type string;
+ description
+ "An XML Schema regular expression that is used to match the
+ alarm type qualifier.";
+ reference
+ "XML Schema Part 2: Datatypes Second Edition,
+ World Wide Web Consortium Recommendation
+ REC-xmlschema-2-20041028";
+ }
+ leaf resource {
+ type resource-match;
+ description
+ "Specifies which resources to match.";
+ }
+ leaf description {
+ type string;
+ mandatory true;
+ description
+ "A description of the alarm profile.";
+ }
+ container alarm-severity-assignment-profile {
+ if-feature "severity-assignment";
+ description
+ "The client can override the system-default severity
+ level.";
+ reference
+ "ITU-T Recommendation M.3100:
+ Generic network information model
+ ITU-T Recommendation M.3160:
+ Generic, protocol-neutral management information model";
+ leaf-list severity-level {
+ type severity;
+ //ordered-by user;
+ description
+ "Specifies the configured severity level(s) for the
+ matching alarm. If the alarm has several severity
+ levels, the leaf-list shall be given in rising severity
+ order. The original M3100/M3160 ASAP function only
+ allows for a one-to-one mapping between alarm type and
+ severity, but since YANG module supports stateful
+ alarms, the mapping must allow for several severity
+ levels.
+
+ Assume a high-utilization alarm type with two thresholds
+ with the system-default severity levels of threshold1 =
+ warning and threshold2 = minor. Setting this leaf-list
+ to (minor, major) will assign the severity levels as
+ threshold1 = minor and threshold2 = major";
+ }
+ }
+ }
+ }
+
+ /*
+ * Notifications
+ */
+
+ notification alarm-notification {
+ description
+ "This notification is used to report a state change for an
+ alarm. The same notification is used for reporting a newly
+ raised alarm, a cleared alarm, or changing the text and/or
+ severity of an existing alarm.";
+ uses common-alarm-parameters;
+ uses alarm-state-change-parameters;
+ }
+
+ notification alarm-inventory-changed {
+ description
+ "This notification is used to report that the list of possible
+ alarms has changed. This can happen when, for example, a new
+ software module is installed or a new physical card is
+ inserted.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-hardware.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-hardware.yang
new file mode 100755
index 000000000..f444e26ee
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-hardware.yang
@@ -0,0 +1,1141 @@
+module ietf-hardware {
+yang-version 1.1;
+namespace "urn:ietf:params:xml:ns:yang:ietf-hardware";
+prefix hw;
+
+import ietf-inet-types {
+ prefix inet;
+}
+import ietf-yang-types {
+ prefix yang;
+}
+import iana-hardware {
+ prefix ianahw;
+}
+
+organization
+ "IETF NETMOD (Network Modeling) Working Group";
+
+contact
+ "WG Web: <https://datatracker.ietf.org/wg/netmod/>
+ WG List: <mailto:netmod@ietf.org>
+ Editor: Andy Bierman
+ <mailto:andy@yumaworks.com>
+ Editor: Martin Bjorklund
+ <mailto:mbj@tail-f.com>
+ Editor: Jie Dong
+ <mailto:jie.dong@huawei.com>
+ Editor: Dan Romascanu
+ <mailto:dromasca@gmail.com>";
+
+description
+ "This module contains a collection of YANG definitions for
+ managing hardware.
+ This data model is designed for the Network Management Datastore
+ Architecture (NMDA) defined in RFC 8342.
+ Copyright (c) 2018 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 Simplified 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 8348; see
+ the RFC itself for full legal notices.";
+
+revision 2018-03-13 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 8348: A YANG Data Model for Hardware Management";
+}
+
+/*
+ * Features
+ */
+
+feature entity-mib {
+ description
+ "This feature indicates that the device implements
+ the ENTITY-MIB.";
+ reference
+ "RFC 6933: Entity MIB (Version 4)";
+}
+
+feature hardware-state {
+ description
+ "Indicates that ENTITY-STATE-MIB objects are supported";
+ reference
+ "RFC 4268: Entity State MIB";
+}
+
+feature hardware-sensor {
+ description
+ "Indicates that ENTITY-SENSOR-MIB objects are supported";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base";
+}
+
+/*
+ * Typedefs
+ */
+
+typedef admin-state {
+ type enumeration {
+ enum unknown {
+ value 1;
+ description
+ "The resource is unable to report administrative state.";
+ }
+ enum locked {
+ value 2;
+ description
+ "The resource is administratively prohibited from use.";
+ }
+ enum shutting-down {
+ value 3;
+ description
+ "The resource usage is administratively limited to current
+ instances of use.";
+ }
+ enum unlocked {
+ value 4;
+ description
+ "The resource is not administratively prohibited from
+ use.";
+ }
+ }
+ description
+ "Represents the various possible administrative states.";
+ reference
+ "RFC 4268: Entity State MIB - EntityAdminState";
+}
+
+typedef oper-state {
+ type enumeration {
+ enum unknown {
+ value 1;
+ description
+ "The resource is unable to report its operational state.";
+ }
+ enum disabled {
+ value 2;
+ description
+ "The resource is totally inoperable.";
+ }
+ enum enabled {
+ value 3;
+
+ description
+ "The resource is partially or fully operable.";
+ }
+ enum testing {
+ value 4;
+ description
+ "The resource is currently being tested and cannot
+ therefore report whether or not it is operational.";
+ }
+ }
+ description
+ "Represents the possible values of operational states.";
+ reference
+ "RFC 4268: Entity State MIB - EntityOperState";
+}
+
+typedef usage-state {
+ type enumeration {
+ enum unknown {
+ value 1;
+ description
+ "The resource is unable to report usage state.";
+ }
+ enum idle {
+ value 2;
+ description
+ "The resource is servicing no users.";
+ }
+ enum active {
+ value 3;
+ description
+ "The resource is currently in use, and it has sufficient
+ spare capacity to provide for additional users.";
+ }
+ enum busy {
+ value 4;
+ description
+ "The resource is currently in use, but it currently has no
+ spare capacity to provide for additional users.";
+ }
+ }
+ description
+ "Represents the possible values of usage states.";
+ reference
+ "RFC 4268: Entity State MIB - EntityUsageState";
+}
+
+typedef alarm-state {
+ type bits {
+ bit unknown {
+ position 0;
+ description
+ "The resource is unable to report alarm state.";
+ }
+ bit under-repair {
+ position 1;
+ description
+ "The resource is currently being repaired, which, depending
+ on the implementation, may make the other values in this
+ bit string not meaningful.";
+ }
+ bit critical {
+ position 2;
+ description
+ "One or more critical alarms are active against the
+ resource.";
+ }
+ bit major {
+ position 3;
+ description
+ "One or more major alarms are active against the
+ resource.";
+ }
+ bit minor {
+ position 4;
+ description
+ "One or more minor alarms are active against the
+ resource.";
+ }
+ bit warning {
+ position 5;
+ description
+ "One or more warning alarms are active against the
+ resource.";
+ }
+ bit indeterminate {
+ position 6;
+ description
+ "One or more alarms of whose perceived severity cannot be
+ determined are active against this resource.";
+ }
+ }
+ description
+ "Represents the possible values of alarm states. An alarm is a
+ persistent indication of an error or warning condition.
+ When no bits of this attribute are set, then no active alarms
+ are known against this component and it is not under repair.";
+ reference
+ "RFC 4268: Entity State MIB - EntityAlarmStatus";
+}
+
+typedef standby-state {
+ type enumeration {
+ enum unknown {
+ value 1;
+ description
+ "The resource is unable to report standby state.";
+ }
+ enum hot-standby {
+ value 2;
+ description
+ "The resource is not providing service, but it will be
+ immediately able to take over the role of the resource to
+ be backed up, without the need for initialization
+ activity, and will contain the same information as the
+ resource to be backed up.";
+ }
+ enum cold-standby {
+ value 3;
+ description
+ "The resource is to back up another resource, but it will
+ not be immediately able to take over the role of a
+ resource to be backed up and will require some
+ initialization activity.";
+ }
+ enum providing-service {
+ value 4;
+ description
+ "The resource is providing service.";
+ }
+ }
+ description
+ "Represents the possible values of standby states.";
+ reference
+ "RFC 4268: Entity State MIB - EntityStandbyStatus";
+}
+
+typedef sensor-value-type {
+ type enumeration {
+ enum other {
+ value 1;
+ description
+ "A measure other than those listed below.";
+ }
+ enum unknown {
+ value 2;
+ description
+ "An unknown measurement or arbitrary, relative numbers";
+ }
+ enum volts-AC {
+ value 3;
+ description
+ "A measure of electric potential (alternating current).";
+ }
+ enum volts-DC {
+ value 4;
+ description
+ "A measure of electric potential (direct current).";
+ }
+ enum amperes {
+ value 5;
+ description
+ "A measure of electric current.";
+ }
+ enum watts {
+ value 6;
+ description
+ "A measure of power.";
+ }
+ enum hertz {
+ value 7;
+ description
+ "A measure of frequency.";
+ }
+ enum celsius {
+ value 8;
+ description
+ "A measure of temperature.";
+ }
+ enum percent-RH {
+ value 9;
+ description
+ "A measure of percent relative humidity.";
+ }
+ enum rpm {
+ value 10;
+ description
+ "A measure of shaft revolutions per minute.";
+ }
+ enum cmm {
+ value 11;
+ description
+ "A measure of cubic meters per minute (airflow).";
+ }
+ enum truth-value {
+ value 12;
+ description
+ "Value is one of 1 (true) or 2 (false)";
+ }
+ }
+ description
+ "A node using this data type represents the sensor measurement
+ data type associated with a physical sensor value. The actual
+ data units are determined by examining a node of this type
+ together with the associated sensor-value-scale node.
+ A node of this type SHOULD be defined together with nodes of
+ type sensor-value-scale and type sensor-value-precision.
+ These three types are used to identify the semantics of a node
+ of type sensor-value.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ EntitySensorDataType";
+}
+
+typedef sensor-value-scale {
+ type enumeration {
+ enum yocto {
+ value 1;
+ description
+ "Data scaling factor of 10^-24.";
+ }
+ enum zepto {
+ value 2;
+ description
+ "Data scaling factor of 10^-21.";
+ }
+ enum atto {
+ value 3;
+ description
+ "Data scaling factor of 10^-18.";
+ }
+ enum femto {
+ value 4;
+ description
+ "Data scaling factor of 10^-15.";
+ }
+ enum pico {
+ value 5;
+ description
+ "Data scaling factor of 10^-12.";
+ }
+ enum nano {
+ value 6;
+ description
+ "Data scaling factor of 10^-9.";
+ }
+ enum micro {
+ value 7;
+ description
+ "Data scaling factor of 10^-6.";
+ }
+ enum milli {
+ value 8;
+ description
+ "Data scaling factor of 10^-3.";
+ }
+ enum units {
+ value 9;
+ description
+ "Data scaling factor of 10^0.";
+ }
+ enum kilo {
+ value 10;
+ description
+ "Data scaling factor of 10^3.";
+ }
+ enum mega {
+ value 11;
+ description
+ "Data scaling factor of 10^6.";
+ }
+ enum giga {
+ value 12;
+ description
+ "Data scaling factor of 10^9.";
+ }
+ enum tera {
+ value 13;
+ description
+ "Data scaling factor of 10^12.";
+ }
+ enum peta {
+ value 14;
+ description
+ "Data scaling factor of 10^15.";
+ }
+ enum exa {
+ value 15;
+ description
+ "Data scaling factor of 10^18.";
+ }
+ enum zetta {
+ value 16;
+ description
+ "Data scaling factor of 10^21.";
+ }
+ enum yotta {
+ value 17;
+ description
+ "Data scaling factor of 10^24.";
+ }
+ }
+ description
+ "A node using this data type represents a data scaling factor,
+ represented with an International System of Units (SI) prefix.
+ The actual data units are determined by examining a node of
+ this type together with the associated sensor-value-type.
+ A node of this type SHOULD be defined together with nodes of
+ type sensor-value-type and type sensor-value-precision.
+ Together, associated nodes of these three types are used to
+ identify the semantics of a node of type sensor-value.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ EntitySensorDataScale";
+}
+
+typedef sensor-value-precision {
+ type int8 {
+ range "-8 .. 9";
+ }
+ description
+ "A node using this data type represents a sensor value
+ precision range.
+ A node of this type SHOULD be defined together with nodes of
+ type sensor-value-type and type sensor-value-scale. Together,
+ associated nodes of these three types are used to identify the
+ semantics of a node of type sensor-value.
+ If a node of this type contains a value in the range 1 to 9,
+ it represents the number of decimal places in the fractional
+ part of an associated sensor-value fixed-point number.
+ If a node of this type contains a value in the range -8 to -1,
+ it represents the number of accurate digits in the associated
+ sensor-value fixed-point number.
+ The value zero indicates the associated sensor-value node is
+ not a fixed-point number.
+ Server implementers must choose a value for the associated
+ sensor-value-precision node so that the precision and accuracy
+ of the associated sensor-value node is correctly indicated.
+ For example, a component representing a temperature sensor
+ that can measure 0 to 100 degrees C in 0.1 degree
+ increments, +/- 0.05 degrees, would have a
+ sensor-value-precision value of '1', a sensor-value-scale
+ value of 'units', and a sensor-value ranging from '0' to
+ '1000'. The sensor-value would be interpreted as
+ 'degrees C * 10'.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ EntitySensorPrecision";
+}
+
+typedef sensor-value {
+ type int32 {
+ range "-1000000000 .. 1000000000";
+ }
+ description
+ "A node using this data type represents a sensor value.
+ A node of this type SHOULD be defined together with nodes of
+ type sensor-value-type, type sensor-value-scale, and
+ type sensor-value-precision. Together, associated nodes of
+ those three types are used to identify the semantics of a node
+ of this data type.
+ The semantics of a node using this data type are determined by
+ the value of the associated sensor-value-type node.
+ If the associated sensor-value-type node is equal to 'voltsAC',
+ 'voltsDC', 'amperes', 'watts', 'hertz', 'celsius', or 'cmm',
+ then a node of this type MUST contain a fixed-point number
+ ranging from -999,999,999 to +999,999,999. The value
+ -1000000000 indicates an underflow error. The value
+ +1000000000 indicates an overflow error. The
+ sensor-value-precision indicates how many fractional digits
+ are represented in the associated sensor-value node.
+ If the associated sensor-value-type node is equal to
+ 'percentRH', then a node of this type MUST contain a number
+ ranging from 0 to 100.
+ If the associated sensor-value-type node is equal to 'rpm',
+ then a node of this type MUST contain a number ranging from
+ -999,999,999 to +999,999,999.
+ If the associated sensor-value-type node is equal to
+ 'truth-value', then a node of this type MUST contain either the
+ value 1 (true) or the value 2 (false).
+ If the associated sensor-value-type node is equal to 'other' or
+ 'unknown', then a node of this type MUST contain a number
+ ranging from -1000000000 to 1000000000.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ EntitySensorValue";
+}
+
+typedef sensor-status {
+ type enumeration {
+ enum ok {
+ value 1;
+ description
+ "Indicates that the server can obtain the sensor value.";
+ }
+ enum unavailable {
+ value 2;
+ description
+ "Indicates that the server presently cannot obtain the
+ sensor value.";
+ }
+ enum nonoperational {
+ value 3;
+ description
+ "Indicates that the server believes the sensor is broken.
+ The sensor could have a hard failure (disconnected wire)
+ or a soft failure such as out-of-range, jittery, or wildly
+ fluctuating readings.";
+ }
+ }
+ description
+ "A node using this data type represents the operational status
+ of a physical sensor.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ EntitySensorStatus";
+}
+
+/*
+ * Data nodes
+ */
+
+container hardware {
+ description
+ "Data nodes representing components.
+ If the server supports configuration of hardware components,
+ then this data model is instantiated in the configuration
+ datastores supported by the server. The leaf-list 'datastore'
+ for the module 'ietf-hardware' in the YANG library provides
+ this information.";
+
+ leaf last-change {
+ type yang:date-and-time;
+ config false;
+ description
+ "The time the '/hardware/component' list changed in the
+ operational state.";
+ }
+
+ list component {
+ key name;
+ description
+ "List of components.
+ When the server detects a new hardware component, it
+ initializes a list entry in the operational state.
+ If the server does not support configuration of hardware
+ components, list entries in the operational state are
+ initialized with values for all nodes as detected by the
+ implementation.
+ Otherwise, this procedure is followed:
+ 1. If there is an entry in the '/hardware/component' list
+ in the intended configuration with values for the nodes
+ 'class', 'parent', and 'parent-rel-pos' that are equal
+ to the detected values, then the list entry in the
+ operational state is initialized with the configured
+ values, including the 'name'.
+ 2. Otherwise (i.e., there is no matching configuration
+ entry), the list entry in the operational state is
+ initialized with values for all nodes as detected by
+ the implementation.
+ If the '/hardware/component' list in the intended
+ configuration is modified, then the system MUST behave as if
+ it re-initializes itself and follow the procedure in (1).";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalEntry";
+
+ leaf name {
+ type string;
+ description
+ "The name assigned to this component.
+ This name is not required to be the same as
+ entPhysicalName.";
+ }
+
+ leaf class {
+ type identityref {
+ base ianahw:hardware-class;
+ }
+ mandatory true;
+ description
+ "An indication of the general hardware type of the
+ component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalClass";
+ }
+
+ leaf physical-index {
+ if-feature entity-mib;
+ type int32 {
+ range "1..2147483647";
+ }
+ config false;
+ description
+ "The entPhysicalIndex for the entPhysicalEntry represented
+ by this list entry.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalIndex";
+ }
+
+ leaf description {
+ type string;
+ config false;
+ description
+ "A textual description of the component. This node should
+ contain a string that identifies the manufacturer's name
+ for the component and should be set to a distinct value
+ for each version or model of the component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalDescr";
+ }
+
+ leaf parent {
+ type leafref {
+ path "../../component/name";
+ require-instance false;
+ }
+ description
+ "The name of the component that physically contains this
+ component.
+ If this leaf is not instantiated, it indicates that this
+ component is not contained in any other component.
+ In the event that a physical component is contained by
+ more than one physical component (e.g., double-wide
+ modules), this node contains the name of one of these
+ components. An implementation MUST use the same name
+ every time this node is instantiated.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalContainedIn";
+ }
+
+ leaf parent-rel-pos {
+ type int32 {
+ range "0 .. 2147483647";
+ }
+ description
+ "An indication of the relative position of this child
+ component among all its sibling components. Sibling
+ components are defined as components that:
+ o share the same value of the 'parent' node and
+ o share a common base identity for the 'class' node.
+ Note that the last rule gives implementations flexibility
+ in how components are numbered. For example, some
+ implementations might have a single number series for all
+ components derived from 'ianahw:port', while some others
+ might have different number series for different
+ components with identities derived from 'ianahw:port' (for
+ example, one for registered jack 45 (RJ45) and one for
+ small form-factor pluggable (SFP)).";
+
+ reference
+ "RFC 6933: Entity MIB (Version 4) -
+ entPhysicalParentRelPos";
+ }
+
+ leaf-list contains-child {
+ type leafref {
+ path "../../component/name";
+ }
+ config false;
+ description
+ "The name of the contained component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalChildIndex";
+ }
+
+ leaf hardware-rev {
+ type string;
+ config false;
+ description
+ "The vendor-specific hardware revision string for the
+ component. The preferred value is the hardware revision
+ identifier actually printed on the component itself (if
+ present).";
+ reference
+ "RFC 6933: Entity MIB (Version 4) -
+ entPhysicalHardwareRev";
+ }
+
+ leaf firmware-rev {
+ type string;
+ config false;
+ description
+ "The vendor-specific firmware revision string for the
+ component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) -
+ entPhysicalFirmwareRev";
+ }
+
+ leaf software-rev {
+ type string;
+ config false;
+
+ description
+ "The vendor-specific software revision string for the
+ component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) -
+ entPhysicalSoftwareRev";
+ }
+
+ leaf serial-num {
+ type string;
+ config false;
+ description
+ "The vendor-specific serial number string for the
+ component. The preferred value is the serial number
+ string actually printed on the component itself (if
+ present).";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalSerialNum";
+ }
+
+ leaf mfg-name {
+ type string;
+ config false;
+ description
+ "The name of the manufacturer of this physical component.
+ The preferred value is the manufacturer name string
+ actually printed on the component itself (if present).
+ Note that comparisons between instances of the
+ 'model-name', 'firmware-rev', 'software-rev', and
+ 'serial-num' nodes are only meaningful amongst components
+ with the same value of 'mfg-name'.
+ If the manufacturer name string associated with the
+ physical component is unknown to the server, then this
+ node is not instantiated.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgName";
+ }
+
+ leaf model-name {
+ type string;
+ config false;
+ description
+ "The vendor-specific model name identifier string
+ associated with this physical component. The preferred
+ value is the customer-visible part number, which may be
+ printed on the component itself.
+ If the model name string associated with the physical
+ component is unknown to the server, then this node is not
+ instantiated.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalModelName";
+ }
+
+ leaf alias {
+ type string;
+ description
+ "An 'alias' name for the component, as specified by a
+ network manager, that provides a non-volatile 'handle' for
+ the component.
+ If no configured value exists, the server MAY set the
+ value of this node to a locally unique value in the
+ operational state.
+ A server implementation MAY map this leaf to the
+ entPhysicalAlias MIB object. Such an implementation needs
+ to use some mechanism to handle the differences in size
+ and characters allowed between this leaf and
+ entPhysicalAlias. The definition of such a mechanism is
+ outside the scope of this document.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalAlias";
+ }
+
+ leaf asset-id {
+ type string;
+ description
+ "This node is a user-assigned asset tracking identifier for
+ the component.
+ A server implementation MAY map this leaf to the
+ entPhysicalAssetID MIB object. Such an implementation
+ needs to use some mechanism to handle the differences in
+ size and characters allowed between this leaf and
+ entPhysicalAssetID. The definition of such a mechanism is
+ outside the scope of this document.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalAssetID";
+ }
+
+ leaf is-fru {
+ type boolean;
+ config false;
+
+ description
+ "This node indicates whether or not this component is
+ considered a 'field-replaceable unit' by the vendor. If
+ this node contains the value 'true', then this component
+ identifies a field-replaceable unit. For all components
+ that are permanently contained within a field-replaceable
+ unit, the value 'false' should be returned for this
+ node.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";
+ }
+
+ leaf mfg-date {
+ type yang:date-and-time;
+ config false;
+ description
+ "The date of manufacturing of the managed component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";
+ }
+
+ leaf-list uri {
+ type inet:uri;
+ description
+ "This node contains identification information about the
+ component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
+ }
+
+ leaf uuid {
+ type yang:uuid;
+ config false;
+ description
+ "A Universally Unique Identifier of the component.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID";
+ }
+
+ container state {
+ if-feature hardware-state;
+ description
+ "State-related nodes";
+ reference
+ "RFC 4268: Entity State MIB";
+
+ leaf state-last-changed {
+ type yang:date-and-time;
+ config false;
+ description
+ "The date and time when the value of any of the
+ admin-state, oper-state, usage-state, alarm-state, or
+ standby-state changed for this component.
+ If there has been no change since the last
+ re-initialization of the local system, this node
+ contains the date and time of local system
+ initialization. If there has been no change since the
+ component was added to the local system, this node
+ contains the date and time of the insertion.";
+ reference
+ "RFC 4268: Entity State MIB - entStateLastChanged";
+ }
+
+ leaf admin-state {
+ type admin-state;
+ description
+ "The administrative state for this component.
+ This node refers to a component's administrative
+ permission to service both other components within its
+ containment hierarchy as well other users of its
+ services defined by means outside the scope of this
+ module.
+ Some components exhibit only a subset of the remaining
+ administrative state values. Some components cannot be
+ locked; hence, this node exhibits only the 'unlocked'
+ state. Other components cannot be shut down gracefully;
+ hence, this node does not exhibit the 'shutting-down'
+ state.";
+ reference
+ "RFC 4268: Entity State MIB - entStateAdmin";
+ }
+
+ leaf oper-state {
+ type oper-state;
+ config false;
+ description
+ "The operational state for this component.
+ Note that this node does not follow the administrative
+ state. An administrative state of 'down' does not
+ predict an operational state of 'disabled'.
+ Note that some implementations may not be able to
+ accurately report oper-state while the admin-state node
+ has a value other than 'unlocked'. In these cases, this
+ node MUST have a value of 'unknown'.";
+ reference
+ "RFC 4268: Entity State MIB - entStateOper";
+ }
+
+ leaf usage-state {
+ type usage-state;
+ config false;
+ description
+ "The usage state for this component.
+ This node refers to a component's ability to service
+ more components in a containment hierarchy.
+ Some components will exhibit only a subset of the usage
+ state values. Components that are unable to ever
+ service any components within a containment hierarchy
+ will always have a usage state of 'busy'. In some
+ cases, a component will be able to support only one
+ other component within its containment hierarchy and
+ will therefore only exhibit values of 'idle' and
+ 'busy'.";
+ reference
+ "RFC 4268: Entity State MIB - entStateUsage";
+ }
+
+ leaf alarm-state {
+ type alarm-state;
+ config false;
+ description
+ "The alarm state for this component. It does not
+ include the alarms raised on child components within its
+ containment hierarchy.";
+ reference
+ "RFC 4268: Entity State MIB - entStateAlarm";
+ }
+
+ leaf standby-state {
+ type standby-state;
+ config false;
+ description
+ "The standby state for this component.
+ Some components will exhibit only a subset of the
+ remaining standby state values. If this component
+ cannot operate in a standby role, the value of this node
+ will always be 'providing-service'.";
+ reference
+ "RFC 4268: Entity State MIB - entStateStandby";
+ }
+ }
+
+ container sensor-data {
+ when 'derived-from-or-self(../class,
+ "ianahw:sensor")' {
+ description
+ "Sensor data nodes present for any component of type
+ 'sensor'";
+ }
+ if-feature hardware-sensor;
+ config false;
+
+ description
+ "Sensor-related nodes.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base";
+
+ leaf value {
+ type sensor-value;
+ description
+ "The most recent measurement obtained by the server
+ for this sensor.
+ A client that periodically fetches this node should also
+ fetch the nodes 'value-type', 'value-scale', and
+ 'value-precision', since they may change when the value
+ is changed.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorValue";
+ }
+
+ leaf value-type {
+ type sensor-value-type;
+ description
+ "The type of data units associated with the
+ sensor value";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorType";
+ }
+ leaf value-scale {
+ type sensor-value-scale;
+ description
+ "The (power of 10) scaling factor associated
+ with the sensor value";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorScale";
+ }
+
+ leaf value-precision {
+ type sensor-value-precision;
+ description
+ "The number of decimal places of precision
+ associated with the sensor value";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorPrecision";
+ }
+
+ leaf oper-status {
+ type sensor-status;
+ description
+ "The operational status of the sensor.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorOperStatus";
+ }
+
+ leaf units-display {
+ type string;
+ description
+ "A textual description of the data units that should be
+ used in the display of the sensor value.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorUnitsDisplay";
+ }
+
+ leaf value-timestamp {
+ type yang:date-and-time;
+ description
+ "The time the status and/or value of this sensor was last
+ obtained by the server.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorValueTimeStamp";
+ }
+ leaf value-update-rate {
+ type uint32;
+ units "milliseconds";
+ description
+ "An indication of the frequency that the server updates
+ the associated 'value' node, represented in
+ milliseconds. The value zero indicates:
+ - the sensor value is updated on demand (e.g.,
+ when polled by the server for a get-request),
+ - the sensor value is updated when the sensor
+ value changes (event-driven), or
+ - the server does not know the update rate.";
+ reference
+ "RFC 3433: Entity Sensor Management Information Base -
+ entPhySensorValueUpdateRate";
+ }
+ }
+ }
+}
+
+/*
+ * Notifications
+ */
+
+notification hardware-state-change {
+ description
+ "A hardware-state-change notification is generated when the
+ value of /hardware/last-change changes in the operational
+ state.";
+ reference
+ "RFC 6933: Entity MIB (Version 4) - entConfigChange";
+}
+
+notification hardware-state-oper-enabled {
+ if-feature hardware-state;
+ description
+ "A hardware-state-oper-enabled notification signifies that a
+ component has transitioned into the 'enabled' state.";
+
+ leaf name {
+ type leafref {
+ path "/hardware/component/name";
+ }
+
+ description
+ "The name of the component that has transitioned into the
+ 'enabled' state.";
+ }
+ leaf admin-state {
+ type leafref {
+ path "/hardware/component/state/admin-state";
+ }
+ description
+ "The administrative state for the component.";
+ }
+ leaf alarm-state {
+ type leafref {
+ path "/hardware/component/state/alarm-state";
+ }
+ description
+ "The alarm state for the component.";
+ }
+ reference
+ "RFC 4268: Entity State MIB - entStateOperEnabled";
+}
+
+notification hardware-state-oper-disabled {
+ if-feature hardware-state;
+ description
+ "A hardware-state-oper-disabled notification signifies that a
+ component has transitioned into the 'disabled' state.";
+
+ leaf name {
+ type leafref {
+ path "/hardware/component/name";
+ }
+ description
+ "The name of the component that has transitioned into the
+ 'disabled' state.";
+ }
+ leaf admin-state {
+ type leafref {
+ path "/hardware/component/state/admin-state";
+ }
+ description
+ "The administrative state for the component.";
+ }
+ leaf alarm-state {
+ type leafref {
+ path "/hardware/component/state/alarm-state";
+ }
+
+ description
+ "The alarm state for the component.";
+ }
+ reference
+ "RFC 4268: Entity State MIB - entStateOperDisabled";
+}
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-interfaces.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-interfaces.yang
new file mode 100644
index 000000000..8dae9d3e2
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/ietf-interfaces.yang
@@ -0,0 +1,1073 @@
+module ietf-interfaces {
+ yang-version 1.1;
+ namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
+ prefix if;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+
+ organization
+ "IETF NETMOD (Network Modeling) Working Group";
+
+ contact
+ "WG Web: <https://datatracker.ietf.org/wg/netmod/>
+ WG List: <mailto:netmod@ietf.org>
+ Editor: Martin Bjorklund
+ <mailto:mbj@tail-f.com>";
+
+ description
+ "This module contains a collection of YANG definitions for
+ managing network interfaces.
+ Copyright (c) 2018 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 Simplified 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 8343; see
+ the RFC itself for full legal notices.";
+
+ revision 2018-02-20 {
+ description
+ "Updated to support NMDA.";
+ reference
+ "RFC 8343: A YANG Data Model for Interface Management";
+ }
+
+ revision 2014-05-08 {
+ description
+ "Initial revision.";
+ reference
+ "RFC 7223: A YANG Data Model for Interface Management";
+ }
+
+ /*
+ * Typedefs
+ */
+
+ typedef interface-ref {
+ type leafref {
+ path "/if:interfaces/if:interface/if:name";
+ }
+ description
+ "This type is used by data models that need to reference
+ interfaces.";
+ }
+
+ /*
+ * Identities
+ */
+
+ identity interface-type {
+ description
+ "Base identity from which specific interface types are
+ derived.";
+ }
+
+ /*
+ * Features
+ */
+
+ feature arbitrary-names {
+ description
+ "This feature indicates that the device allows user-controlled
+ interfaces to be named arbitrarily.";
+ }
+ feature pre-provisioning {
+ description
+ "This feature indicates that the device supports
+ pre-provisioning of interface configuration, i.e., it is
+ possible to configure an interface whose physical interface
+ hardware is not present on the device.";
+ }
+ feature if-mib {
+ description
+ "This feature indicates that the device implements
+ the IF-MIB.";
+ reference
+ "RFC 2863: The Interfaces Group MIB";
+ }
+
+ /*
+ * Data nodes
+ */
+
+ container interfaces {
+ description
+ "Interface parameters.";
+
+ list interface {
+ key "name";
+
+ description
+ "The list of interfaces on the device.
+ The status of an interface is available in this list in the
+ operational state. If the configuration of a
+ system-controlled interface cannot be used by the system
+ (e.g., the interface hardware present does not match the
+ interface type), then the configuration is not applied to
+ the system-controlled interface shown in the operational
+ state. If the configuration of a user-controlled interface
+ cannot be used by the system, the configured interface is
+ not instantiated in the operational state.
+ System-controlled interfaces created by the system are
+ always present in this list in the operational state,
+ whether or not they are configured.";
+
+ leaf name {
+ type string;
+ description
+ "The name of the interface.
+ A device MAY restrict the allowed values for this leaf,
+ possibly depending on the type of the interface.
+ For system-controlled interfaces, this leaf is the
+ device-specific name of the interface.
+ If a client tries to create configuration for a
+ system-controlled interface that is not present in the
+ operational state, the server MAY reject the request if
+ the implementation does not support pre-provisioning of
+ interfaces or if the name refers to an interface that can
+ never exist in the system. A Network Configuration
+ Protocol (NETCONF) server MUST reply with an rpc-error
+ with the error-tag 'invalid-value' in this case.
+ If the device supports pre-provisioning of interface
+ configuration, the 'pre-provisioning' feature is
+ advertised.
+ If the device allows arbitrarily named user-controlled
+ interfaces, the 'arbitrary-names' feature is advertised.
+ When a configured user-controlled interface is created by
+ the system, it is instantiated with the same name in the
+ operational state.
+ A server implementation MAY map this leaf to the ifName
+ MIB object. Such an implementation needs to use some
+ mechanism to handle the differences in size and characters
+ allowed between this leaf and ifName. The definition of
+ such a mechanism is outside the scope of this document.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifName";
+ }
+
+ leaf description {
+ type string;
+ description
+ "A textual description of the interface.
+ A server implementation MAY map this leaf to the ifAlias
+ MIB object. Such an implementation needs to use some
+ mechanism to handle the differences in size and characters
+ allowed between this leaf and ifAlias. The definition of
+ such a mechanism is outside the scope of this document.
+ Since ifAlias is defined to be stored in non-volatile
+ storage, the MIB implementation MUST map ifAlias to the
+ value of 'description' in the persistently stored
+ configuration.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifAlias";
+ }
+
+ leaf type {
+ type identityref {
+ base interface-type;
+ }
+ mandatory true;
+ description
+ "The type of the interface.
+ When an interface entry is created, a server MAY
+ initialize the type leaf with a valid value, e.g., if it
+ is possible to derive the type from the name of the
+ interface.
+ If a client tries to set the type of an interface to a
+ value that can never be used by the system, e.g., if the
+ type is not supported or if the type does not match the
+ name of the interface, the server MUST reject the request.
+ A NETCONF server MUST reply with an rpc-error with the
+ error-tag 'invalid-value' in this case.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifType";
+ }
+
+ leaf enabled {
+ type boolean;
+ default "true";
+ description
+ "This leaf contains the configured, desired state of the
+ interface.
+ Systems that implement the IF-MIB use the value of this
+ leaf in the intended configuration to set
+ IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+ has been initialized, as described in RFC 2863.
+ Changes in this leaf in the intended configuration are
+ reflected in ifAdminStatus.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+ }
+
+ leaf link-up-down-trap-enable {
+ if-feature if-mib;
+ type enumeration {
+ enum enabled {
+ value 1;
+ description
+ "The device will generate linkUp/linkDown SNMP
+ notifications for this interface.";
+ }
+ enum disabled {
+ value 2;
+ description
+ "The device will not generate linkUp/linkDown SNMP
+ notifications for this interface.";
+ }
+ }
+ description
+ "Controls whether linkUp/linkDown SNMP notifications
+ should be generated for this interface.
+ If this node is not configured, the value 'enabled' is
+ operationally used by the server for interfaces that do
+ not operate on top of any other interface (i.e., there are
+ no 'lower-layer-if' entries), and 'disabled' otherwise.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifLinkUpDownTrapEnable";
+ }
+
+ leaf admin-status {
+ if-feature if-mib;
+ type enumeration {
+ enum up {
+ value 1;
+ description
+ "Ready to pass packets.";
+ }
+ enum down {
+ value 2;
+ description
+ "Not ready to pass packets and not in some test mode.";
+ }
+ enum testing {
+ value 3;
+ description
+ "In some test mode.";
+ }
+ }
+ config false;
+ mandatory true;
+ description
+ "The desired state of the interface.
+ This leaf has the same read semantics as ifAdminStatus.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+ }
+
+ leaf oper-status {
+ type enumeration {
+ enum up {
+ value 1;
+ description
+ "Ready to pass packets.";
+ }
+ enum down {
+ value 2;
+
+ description
+ "The interface does not pass any packets.";
+ }
+ enum testing {
+ value 3;
+ description
+ "In some test mode. No operational packets can
+ be passed.";
+ }
+ enum unknown {
+ value 4;
+ description
+ "Status cannot be determined for some reason.";
+ }
+ enum dormant {
+ value 5;
+ description
+ "Waiting for some external event.";
+ }
+ enum not-present {
+ value 6;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+ enum lower-layer-down {
+ value 7;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+ }
+ config false;
+ mandatory true;
+ description
+ "The current operational state of the interface.
+ This leaf has the same semantics as ifOperStatus.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifOperStatus";
+ }
+
+ leaf last-change {
+ type yang:date-and-time;
+ config false;
+ description
+ "The time the interface entered its current operational
+ state. If the current state was entered prior to the
+ last re-initialization of the local network management
+ subsystem, then this node is not present.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifLastChange";
+ }
+
+ leaf if-index {
+ if-feature if-mib;
+ type int32 {
+ range "1..2147483647";
+ }
+ config false;
+ mandatory true;
+ description
+ "The ifIndex value for the ifEntry represented by this
+ interface.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifIndex";
+ }
+
+ leaf phys-address {
+ type yang:phys-address;
+ config false;
+ description
+ "The interface's address at its protocol sub-layer. For
+ example, for an 802.x interface, this object normally
+ contains a Media Access Control (MAC) address. The
+ interface's media-specific modules must define the bit
+ and byte ordering and the format of the value of this
+ object. For interfaces that do not have such an address
+ (e.g., a serial line), this node is not present.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
+ }
+
+ leaf-list higher-layer-if {
+ type interface-ref;
+ config false;
+ description
+ "A list of references to interfaces layered on top of this
+ interface.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifStackTable";
+ }
+
+ leaf-list lower-layer-if {
+ type interface-ref;
+ config false;
+
+ description
+ "A list of references to interfaces layered underneath this
+ interface.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifStackTable";
+ }
+
+ leaf speed {
+ type yang:gauge64;
+ units "bits/second";
+ config false;
+ description
+ "An estimate of the interface's current bandwidth in bits
+ per second. For interfaces that do not vary in
+ bandwidth or for those where no accurate estimation can
+ be made, this node should contain the nominal bandwidth.
+ For interfaces that have no concept of bandwidth, this
+ node is not present.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifSpeed, ifHighSpeed";
+ }
+
+ container statistics {
+ config false;
+ description
+ "A collection of interface-related statistics objects.";
+
+ leaf discontinuity-time {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "The time on the most recent occasion at which any one or
+ more of this interface's counters suffered a
+ discontinuity. If no such discontinuities have occurred
+ since the last re-initialization of the local management
+ subsystem, then this node contains the time the local
+ management subsystem re-initialized itself.";
+ }
+
+ leaf in-octets {
+ type yang:counter64;
+ description
+ "The total number of octets received on the interface,
+ including framing characters.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
+ }
+
+ leaf in-unicast-pkts {
+ type yang:counter64;
+ description
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, that were not addressed to a
+ multicast or broadcast address at this sub-layer.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
+ }
+
+ leaf in-broadcast-pkts {
+ type yang:counter64;
+ description
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, that were addressed to a broadcast
+ address at this sub-layer.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCInBroadcastPkts";
+ }
+
+ leaf in-multicast-pkts {
+ type yang:counter64;
+ description
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, that were addressed to a multicast
+ address at this sub-layer. For a MAC-layer protocol,
+ this includes both Group and Functional addresses.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCInMulticastPkts";
+ }
+
+ leaf in-discards {
+ type yang:counter32;
+ description
+ "The number of inbound packets that were chosen to be
+ discarded even though no errors had been detected to
+ prevent their being deliverable to a higher-layer
+ protocol. One possible reason for discarding such a
+ packet could be to free up buffer space.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifInDiscards";
+ }
+
+ leaf in-errors {
+ type yang:counter32;
+ description
+ "For packet-oriented interfaces, the number of inbound
+ packets that contained errors preventing them from being
+ deliverable to a higher-layer protocol. For character-
+ oriented or fixed-length interfaces, the number of
+ inbound transmission units that contained errors
+ preventing them from being deliverable to a higher-layer
+ protocol.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifInErrors";
+ }
+
+ leaf in-unknown-protos {
+ type yang:counter32;
+
+ description
+ "For packet-oriented interfaces, the number of packets
+ received via the interface that were discarded because
+ of an unknown or unsupported protocol. For
+ character-oriented or fixed-length interfaces that
+ support protocol multiplexing, the number of
+ transmission units received via the interface that were
+ discarded because of an unknown or unsupported protocol.
+ For any interface that does not support protocol
+ multiplexing, this counter is not present.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
+ }
+
+ leaf out-octets {
+ type yang:counter64;
+ description
+ "The total number of octets transmitted out of the
+ interface, including framing characters.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
+ }
+
+ leaf out-unicast-pkts {
+ type yang:counter64;
+ description
+ "The total number of packets that higher-level protocols
+ requested be transmitted and that were not addressed
+ to a multicast or broadcast address at this sub-layer,
+ including those that were discarded or not sent.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
+ }
+
+ leaf out-broadcast-pkts {
+ type yang:counter64;
+ description
+ "The total number of packets that higher-level protocols
+ requested be transmitted and that were addressed to a
+ broadcast address at this sub-layer, including those
+ that were discarded or not sent.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCOutBroadcastPkts";
+ }
+
+ leaf out-multicast-pkts {
+ type yang:counter64;
+ description
+ "The total number of packets that higher-level protocols
+ requested be transmitted and that were addressed to a
+ multicast address at this sub-layer, including those
+ that were discarded or not sent. For a MAC-layer
+ protocol, this includes both Group and Functional
+ addresses.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCOutMulticastPkts";
+ }
+
+ leaf out-discards {
+ type yang:counter32;
+ description
+ "The number of outbound packets that were chosen to be
+ discarded even though no errors had been detected to
+ prevent their being transmitted. One possible reason
+ for discarding such a packet could be to free up buffer
+ space.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
+ }
+
+ leaf out-errors {
+ type yang:counter32;
+ description
+ "For packet-oriented interfaces, the number of outbound
+ packets that could not be transmitted because of errors.
+ For character-oriented or fixed-length interfaces, the
+ number of outbound transmission units that could not be
+ transmitted because of errors.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifOutErrors";
+ }
+ }
+
+ }
+ }
+
+ /*
+ * Legacy typedefs
+ */
+
+ typedef interface-state-ref {
+ type leafref {
+ path "/if:interfaces-state/if:interface/if:name";
+ }
+ status deprecated;
+ description
+ "This type is used by data models that need to reference
+ the operationally present interfaces.";
+ }
+
+ /*
+ * Legacy operational state data nodes
+ */
+
+ container interfaces-state {
+ config false;
+ status deprecated;
+ description
+ "Data nodes for the operational state of interfaces.";
+
+ list interface {
+ key "name";
+ status deprecated;
+
+ description
+ "The list of interfaces on the device.
+ System-controlled interfaces created by the system are
+ always present in this list, whether or not they are
+ configured.";
+
+ leaf name {
+ type string;
+ status deprecated;
+ description
+ "The name of the interface.
+ A server implementation MAY map this leaf to the ifName
+ MIB object. Such an implementation needs to use some
+ mechanism to handle the differences in size and characters
+ allowed between this leaf and ifName. The definition of
+ such a mechanism is outside the scope of this document.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifName";
+ }
+
+ leaf type {
+ type identityref {
+ base interface-type;
+ }
+ mandatory true;
+ status deprecated;
+ description
+ "The type of the interface.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifType";
+ }
+
+ leaf admin-status {
+ if-feature if-mib;
+ type enumeration {
+ enum up {
+ value 1;
+ description
+ "Ready to pass packets.";
+ }
+ enum down {
+ value 2;
+ description
+ "Not ready to pass packets and not in some test mode.";
+ }
+ enum testing {
+ value 3;
+ description
+ "In some test mode.";
+ }
+ }
+ mandatory true;
+ status deprecated;
+ description
+ "The desired state of the interface.
+ This leaf has the same read semantics as ifAdminStatus.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
+ }
+
+ leaf oper-status {
+ type enumeration {
+ enum up {
+ value 1;
+ description
+ "Ready to pass packets.";
+ }
+ enum down {
+ value 2;
+ description
+ "The interface does not pass any packets.";
+ }
+ enum testing {
+ value 3;
+ description
+ "In some test mode. No operational packets can
+ be passed.";
+ }
+ enum unknown {
+ value 4;
+ description
+ "Status cannot be determined for some reason.";
+ }
+ enum dormant {
+ value 5;
+ description
+ "Waiting for some external event.";
+ }
+ enum not-present {
+ value 6;
+ description
+ "Some component (typically hardware) is missing.";
+ }
+ enum lower-layer-down {
+ value 7;
+ description
+ "Down due to state of lower-layer interface(s).";
+ }
+ }
+ mandatory true;
+ status deprecated;
+ description
+ "The current operational state of the interface.
+ This leaf has the same semantics as ifOperStatus.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifOperStatus";
+ }
+
+ leaf last-change {
+ type yang:date-and-time;
+ status deprecated;
+ description
+ "The time the interface entered its current operational
+ state. If the current state was entered prior to the
+ last re-initialization of the local network management
+ subsystem, then this node is not present.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifLastChange";
+ }
+
+ leaf if-index {
+ if-feature if-mib;
+ type int32 {
+ range "1..2147483647";
+ }
+ mandatory true;
+ status deprecated;
+ description
+ "The ifIndex value for the ifEntry represented by this
+ interface.";
+
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifIndex";
+ }
+
+ leaf phys-address {
+ type yang:phys-address;
+ status deprecated;
+ description
+ "The interface's address at its protocol sub-layer. For
+ example, for an 802.x interface, this object normally
+ contains a Media Access Control (MAC) address. The
+ interface's media-specific modules must define the bit
+ and byte ordering and the format of the value of this
+ object. For interfaces that do not have such an address
+ (e.g., a serial line), this node is not present.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
+ }
+
+ leaf-list higher-layer-if {
+ type interface-state-ref;
+ status deprecated;
+ description
+ "A list of references to interfaces layered on top of this
+ interface.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifStackTable";
+ }
+
+ leaf-list lower-layer-if {
+ type interface-state-ref;
+ status deprecated;
+ description
+ "A list of references to interfaces layered underneath this
+ interface.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifStackTable";
+ }
+
+ leaf speed {
+ type yang:gauge64;
+ units "bits/second";
+ status deprecated;
+ description
+ "An estimate of the interface's current bandwidth in bits
+ per second. For interfaces that do not vary in
+ bandwidth or for those where no accurate estimation can
+ be made, this node should contain the nominal bandwidth.
+ For interfaces that have no concept of bandwidth, this
+ node is not present.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifSpeed, ifHighSpeed";
+ }
+
+ container statistics {
+ status deprecated;
+ description
+ "A collection of interface-related statistics objects.";
+
+ leaf discontinuity-time {
+ type yang:date-and-time;
+ mandatory true;
+ status deprecated;
+ description
+ "The time on the most recent occasion at which any one or
+ more of this interface's counters suffered a
+ discontinuity. If no such discontinuities have occurred
+ since the last re-initialization of the local management
+ subsystem, then this node contains the time the local
+ management subsystem re-initialized itself.";
+ }
+
+ leaf in-octets {
+ type yang:counter64;
+ status deprecated;
+ description
+ "The total number of octets received on the interface,
+ including framing characters.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
+ }
+
+ leaf in-unicast-pkts {
+ type yang:counter64;
+ status deprecated;
+ description
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, that were not addressed to a
+ multicast or broadcast address at this sub-layer.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
+ }
+
+ leaf in-broadcast-pkts {
+ type yang:counter64;
+ status deprecated;
+ description
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, that were addressed to a broadcast
+ address at this sub-layer.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCInBroadcastPkts";
+ }
+
+ leaf in-multicast-pkts {
+ type yang:counter64;
+ status deprecated;
+ description
+ "The number of packets, delivered by this sub-layer to a
+ higher (sub-)layer, that were addressed to a multicast
+ address at this sub-layer. For a MAC-layer protocol,
+ this includes both Group and Functional addresses.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCInMulticastPkts";
+ }
+
+ leaf in-discards {
+ type yang:counter32;
+ status deprecated;
+
+ description
+ "The number of inbound packets that were chosen to be
+ discarded even though no errors had been detected to
+ prevent their being deliverable to a higher-layer
+ protocol. One possible reason for discarding such a
+ packet could be to free up buffer space.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifInDiscards";
+ }
+
+ leaf in-errors {
+ type yang:counter32;
+ status deprecated;
+ description
+ "For packet-oriented interfaces, the number of inbound
+ packets that contained errors preventing them from being
+ deliverable to a higher-layer protocol. For character-
+ oriented or fixed-length interfaces, the number of
+ inbound transmission units that contained errors
+ preventing them from being deliverable to a higher-layer
+ protocol.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifInErrors";
+ }
+
+ leaf in-unknown-protos {
+ type yang:counter32;
+ status deprecated;
+ description
+ "For packet-oriented interfaces, the number of packets
+ received via the interface that were discarded because
+ of an unknown or unsupported protocol. For
+ character-oriented or fixed-length interfaces that
+ support protocol multiplexing, the number of
+ transmission units received via the interface that were
+ discarded because of an unknown or unsupported protocol.
+ For any interface that does not support protocol
+ multiplexing, this counter is not present.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
+ }
+
+ leaf out-octets {
+ type yang:counter64;
+ status deprecated;
+ description
+ "The total number of octets transmitted out of the
+ interface, including framing characters.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
+ }
+
+ leaf out-unicast-pkts {
+ type yang:counter64;
+ status deprecated;
+ description
+ "The total number of packets that higher-level protocols
+ requested be transmitted and that were not addressed
+ to a multicast or broadcast address at this sub-layer,
+ including those that were discarded or not sent.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
+ }
+
+ leaf out-broadcast-pkts {
+ type yang:counter64;
+ status deprecated;
+
+ description
+ "The total number of packets that higher-level protocols
+ requested be transmitted and that were addressed to a
+ broadcast address at this sub-layer, including those
+ that were discarded or not sent.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCOutBroadcastPkts";
+ }
+
+ leaf out-multicast-pkts {
+ type yang:counter64;
+ status deprecated;
+ description
+ "The total number of packets that higher-level protocols
+ requested be transmitted and that were addressed to a
+ multicast address at this sub-layer, including those
+ that were discarded or not sent. For a MAC-layer
+ protocol, this includes both Group and Functional
+ addresses.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB -
+ ifHCOutMulticastPkts";
+ }
+
+ leaf out-discards {
+ type yang:counter32;
+ status deprecated;
+ description
+ "The number of outbound packets that were chosen to be
+ discarded even though no errors had been detected to
+ prevent their being transmitted. One possible reason
+ for discarding such a packet could be to free up buffer
+ space.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
+ }
+
+ leaf out-errors {
+ type yang:counter32;
+ status deprecated;
+ description
+ "For packet-oriented interfaces, the number of outbound
+ packets that could not be transmitted because of errors.
+ For character-oriented or fixed-length interfaces, the
+ number of outbound transmission units that could not be
+ transmitted because of errors.
+ Discontinuities in the value of this counter can occur
+ at re-initialization of the management system and at
+ other times as indicated by the value of
+ 'discontinuity-time'.";
+ reference
+ "RFC 2863: The Interfaces Group MIB - ifOutErrors";
+ }
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-alarm.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-alarm.yang
new file mode 100644
index 000000000..7b7b5e0da
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-alarm.yang
@@ -0,0 +1,181 @@
+module org-openroadm-alarm {
+ namespace "http://org/openroadm/alarm";
+ prefix org-openroadm-alarm;
+
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+ import org-openroadm-resource {
+ prefix org-openroadm-resource;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-probable-cause {
+ prefix org-openroadm-probable-cause;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of an alarm.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ typedef severity {
+ type enumeration {
+ enum critical {
+ value 1;
+ }
+ enum major {
+ value 2;
+ }
+ enum minor {
+ value 3;
+ }
+ enum warning {
+ value 4;
+ }
+ enum clear {
+ value 5;
+ }
+ enum indeterminate {
+ value 6;
+ }
+ }
+ description
+ "Severity, based on X.733 perceived severity";
+ }
+
+ grouping alarm {
+ leaf id {
+ type string;
+ mandatory true;
+ description
+ "Uniquely id for this alarm, within the given management domain";
+ }
+ container resource {
+ description
+ "Resource under alarm";
+ uses org-openroadm-resource:resource;
+ }
+ container probableCause {
+ description
+ "Probable cause of alarm";
+ uses org-openroadm-probable-cause:probable-cause;
+ }
+ leaf raiseTime {
+ type yang:date-and-time;
+ mandatory true;
+ description
+ "Time alarm was raised";
+ }
+ leaf severity {
+ type severity;
+ mandatory true;
+ description
+ "Severity of alarm. Based on X.733 perceived severity.";
+ }
+ leaf circuit-id {
+ type string;
+ description
+ "Circuit-id for alarm correlation.";
+ }
+ leaf additional-detail {
+ type string;
+ description
+ "Provide additional descriptive text about the probable cause.";
+ }
+ leaf corrective-action {
+ type string;
+ description
+ "Provide recommended corrective actions for this probable cause, i.e. replace or restart a circuit pack, check wiring for the reported source, or secondary failure to be correlated ";
+ }
+ }
+
+ notification alarm-notification {
+ description
+ "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear";
+ uses alarm;
+ }
+ container active-alarm-list {
+ config false;
+ description
+ "List of currently active alarms. An alarm is removed from this table when the state transitions to clear.";
+ list activeAlarms {
+ key "id";
+ uses alarm;
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang
new file mode 100644
index 000000000..d13b85b3f
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang
@@ -0,0 +1,81 @@
+module org-openroadm-common-alarm-pm-types {
+ namespace "http://org/openroadm/common-alarm-pm-types";
+ prefix org-openroadm-common-alarm-pm-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common alarm and pm types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef direction {
+ type enumeration {
+ enum tx {
+ value 1;
+ }
+ enum rx {
+ value 2;
+ }
+ enum bidirectional {
+ value 3;
+ }
+ enum notApplicable {
+ value 4;
+ }
+ }
+ }
+
+ typedef location {
+ type enumeration {
+ enum notApplicable {
+ value 1;
+ }
+ enum nearEnd {
+ value 2;
+ }
+ enum farEnd {
+ value 3;
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang
new file mode 100644
index 000000000..d5500a173
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang
@@ -0,0 +1,99 @@
+module org-openroadm-common-amplifier-types {
+ namespace "http://org/openroadm/common-amplifier-types";
+ prefix org-openroadm-common-amplifier-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef amplifier-types {
+ type enumeration {
+ enum standard {
+ value 1;
+ }
+ }
+ description
+ "identifier for amplifier type
+ 1. standard for amplifier as defined initially in the ROADM MSA specifications
+ To be completed if/when additional amplifier types are required ";
+ }
+
+ typedef line-amplifier-control-mode {
+ type enumeration {
+ enum gainLoss {
+ value 2;
+ }
+ enum off {
+ value 3;
+ }
+ }
+ description
+ "Identifies the line amplifier control mode, either off or gain.";
+ }
+
+ typedef amplifier-gain-range {
+ type enumeration {
+ enum gain-range-1 {
+ value 1;
+ }
+ enum gain-range-2 {
+ value 2;
+ }
+ enum gain-range-3 {
+ value 3;
+ }
+ enum gain-range-4 {
+ value 4;
+ }
+ }
+ description
+ "Operational mode for the amplifier:
+ this parameter allows modeling different operational modes (gain ranges) ,notably for switched-gain amplifiers.
+ It indicates which performance model shall be used by the path feasibility engine.
+ For standard amplifier, or when performance evaluation is based on incremental noise, use gain-range-1.
+ When performance evaluation is based on advanced parameters, specify used gain-range (1 to 4).
+ Up to release 2.1, only gain-range-1 is to be used (default value) ";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang
new file mode 100644
index 000000000..f5189c314
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang
@@ -0,0 +1,102 @@
+module org-openroadm-common-equipment-types {
+ namespace "http://org/openroadm/common-equipment-types";
+ prefix org-openroadm-common-equipment-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef optic-types {
+ type enumeration {
+ enum gray {
+ value 1;
+ }
+ enum dwdm {
+ value 2;
+ }
+ }
+ }
+
+ typedef equipment-type-enum {
+ type enumeration {
+ enum other {
+ value 1;
+ }
+ enum powerSupply {
+ value 2;
+ }
+ enum shelfProcessor {
+ value 3;
+ }
+ enum crossConnect {
+ value 4;
+ }
+ enum fan {
+ value 5;
+ }
+ enum accessPanel {
+ value 6;
+ }
+ enum circuitPack {
+ value 7;
+ }
+ }
+ }
+
+ grouping equipment-type {
+ leaf type {
+ type equipment-type-enum;
+ config false;
+ mandatory true;
+ }
+ leaf extension {
+ type string;
+ config false;
+ mandatory false;
+ description
+ "Populated with equipment type when enum value is set to 'other'";
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang
new file mode 100644
index 000000000..5e57dfc0a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang
@@ -0,0 +1,94 @@
+module org-openroadm-common-link-types {
+ namespace "http://org/openroadm/common-link-types";
+ prefix org-openroadm-common-link-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common link types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef power-dBm {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units "dBm";
+ description
+ "Power value in dBm.";
+ }
+
+ typedef ratio-dB {
+ type decimal64 {
+ fraction-digits 3;
+ }
+ units "dB";
+ description
+ "Power ratio in dB.";
+ }
+
+ typedef fiber-pmd {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units "ps/(km[1/2])";
+ description
+ "Polarization Mode Dispersion expressed in ps/km(1/2).";
+ }
+
+ typedef optical-control-mode {
+ type enumeration {
+ enum power {
+ value 1;
+ }
+ enum gainLoss {
+ value 2;
+ }
+ enum off {
+ value 3;
+ }
+ }
+ description
+ "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
+ reference "openroadm.org: Open ROADM MSA Specification.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang
new file mode 100644
index 000000000..d8a914ba0
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang
@@ -0,0 +1,69 @@
+module org-openroadm-common-node-types {
+ namespace "http://org/openroadm/common-node-types";
+ prefix org-openroadm-common-node-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common node types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef node-id-type {
+ type string {
+ length "7..63";
+ pattern '([a-zA-Z][a-zA-Z0-9-]{5,61}[a-zA-Z0-9])' {
+ error-message
+ "A node-id must be 7 to 63 characters in length.
+ A node-id can contain letters, numbers, and hyphens.
+ The first character must be a letter.
+ The last character must be a letter or number.";
+ }
+ }
+ description
+ "Globally unique identifier for a device.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang
new file mode 100644
index 000000000..42b72f7d2
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang
@@ -0,0 +1,350 @@
+module org-openroadm-common-optical-channel-types {
+ namespace "http://org/openroadm/common-optical-channel-types";
+ prefix org-openroadm-common-optical-channel-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common optical channel types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-05-30 {
+ description
+ "Version 3.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ identity och-rate-identity {
+ description
+ "A unique och rate identification";
+ }
+
+ identity otsi-rate-identity {
+ status deprecated;
+ description
+ "A unique OTSi rate identification";
+ }
+
+ identity fec-identity {
+ description
+ "A unique FEC identification";
+ }
+
+ identity sc-fec {
+ base fec-identity;
+ description
+ "Staircase FEC identification";
+ }
+
+ identity rs-fec {
+ base fec-identity;
+ description
+ "Reed Solomon FEC identification";
+ }
+
+ identity o-fec {
+ base fec-identity;
+ description
+ "OpenROADM FEC identification";
+ }
+
+ identity foic-identity {
+ description
+ "A unique FOICx.k identification (G.709.3 FlexO-LR and
+ G.709.1 FlexO-SR)";
+ }
+
+ identity flexo-otsi-rate-identity {
+ description
+ "A unique rate identification. Applicable to specify OTSi rate. Also
+ applicable to FOIC rate when associated with FlexO processing
+ (G.709.3 FlexO-LR Table 11-2, G.709.1 FlexO-SR clause 9.2.2
+ Table 11-1, 12-1, 13-1) and G.Sup58.";
+ }
+
+ identity foic1.2 {
+ base foic-identity;
+ description
+ "Applicable to the FlexO type defined in G.Sup58";
+ }
+
+ identity foic1.4 {
+ base foic-identity;
+ description
+ "Applicable to the FlexO type defined in G.709.1 and G.709.3";
+ }
+
+ identity foic2.4 {
+ base foic-identity;
+ description
+ "Applicable to the FlexO type defined in G.709.1";
+ }
+
+ identity foic2.8 {
+ base foic-identity;
+ description
+ "Applicable to the FlexO type defined in G.Sup58";
+ }
+
+ identity foic3.6 {
+ base foic-identity;
+ description
+ "Applicable to the FlexO type defined in future";
+ }
+
+ identity foic4.8 {
+ base foic-identity;
+ description
+ "Applicable to the FlexO type defined in G.709.1";
+ }
+
+ identity foic4.16 {
+ base foic-identity;
+ description
+ "Applicable to the FlexO type defined in G.Sup58";
+ }
+
+ identity R1T-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R900G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R800G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R700G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R600G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R500G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R400G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R300G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R200G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for flexo/otsi rate identity";
+ }
+
+ identity R200G {
+ base och-rate-identity;
+ description
+ "Identity for 200G Rate";
+ }
+
+ identity R100G-flexo-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for otsi/flexo rate identity";
+ }
+
+ identity R100G {
+ base och-rate-identity;
+ description
+ "Identity for 100G Rate";
+ }
+
+ identity R56G-foic-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for otsi rate identity";
+ }
+
+ identity R28G-foic-otsi {
+ base flexo-otsi-rate-identity;
+ description
+ "Applicable instance for otsi rate identity";
+ }
+
+ identity R10.7G {
+ base och-rate-identity;
+ description
+ "Identity for 10.7G Rate";
+ }
+
+ identity R11.1G {
+ base och-rate-identity;
+ description
+ "Identity for 11.1G Rate";
+ }
+
+ typedef frequency-THz {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ units "THz";
+ description
+ "Frequency value in THz.";
+ }
+
+ typedef frequency-GHz {
+ type decimal64 {
+ fraction-digits 5;
+ }
+ units "GHz";
+ description
+ "Frequency value in GHz.";
+ }
+
+ typedef wavelength-duplication-type {
+ type enumeration {
+ enum one-per-srg {
+ value 1;
+ description
+ "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure.";
+ }
+ enum one-per-degree {
+ value 2;
+ description
+ "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree.";
+ }
+ }
+ description
+ "One per srg is applied to C/D add/drop group
+ one per degree is applied to C/D/C add drop group";
+ }
+
+ typedef modulation-format {
+ type enumeration {
+ enum bpsk {
+ value 0;
+ description
+ "binary phase-shift keying";
+ }
+ enum dc-dp-bpsk {
+ value 1;
+ description
+ "DC dual-polarization binary phase-shift keying";
+ }
+ enum qpsk {
+ value 2;
+ description
+ "quadrature phase-shift keying";
+ }
+ enum dp-qpsk {
+ value 3;
+ description
+ "dual-polarization binary phase-shift keying";
+ }
+ enum qam16 {
+ value 4;
+ description
+ "quadrature amplitude modulation 16";
+ }
+ enum dp-qam16 {
+ value 5;
+ description
+ "dual-polarization quadrature amplitude modulation 16";
+ }
+ enum dc-dp-qam16 {
+ value 6;
+ description
+ "DC dual-polarization quadrature amplitude modulation 16";
+ }
+ enum qam8 {
+ value 7;
+ description
+ "quadrature amplitude modulation 8";
+ }
+ enum dp-qam8 {
+ value 8;
+ description
+ "dual-polarization quadrature amplitude modulation 8";
+ }
+ enum dc-dp-qam8 {
+ value 9;
+ description
+ "DC dual-polarization quadrature amplitude modulation 8";
+ }
+ }
+ description
+ "Modulation format";
+ }
+
+ typedef provision-mode-type {
+ type enumeration {
+ enum explicit;
+ enum profile;
+ }
+ description
+ "Provision Mode Type On Optical Channel";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang
new file mode 100644
index 000000000..901a01372
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang
@@ -0,0 +1,113 @@
+module org-openroadm-common-state-types {
+ namespace "http://org/openroadm/common-state-types";
+ prefix org-openroadm-common-state-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef lifecycle-state {
+ type enumeration {
+ enum deployed {
+ value 1;
+ }
+ enum planned {
+ value 2;
+ }
+ enum maintenance {
+ value 3;
+ }
+ enum deploying {
+ value 4;
+ }
+ enum undeploying {
+ value 5;
+ }
+ enum undeployed {
+ value 6;
+ }
+ enum proposed {
+ value 7;
+ }
+ enum draft {
+ value 8;
+ }
+ enum deploy-failed {
+ value 9;
+ }
+ enum undeploy-failed {
+ value 10;
+ }
+ enum deployed-augmented {
+ value 11;
+ }
+ enum deployed-updating {
+ value 12;
+ }
+ }
+ description
+ "Lifecycle state.";
+ }
+
+ typedef state {
+ type enumeration {
+ enum inService {
+ value 1;
+ }
+ enum outOfService {
+ value 2;
+ }
+ enum degraded {
+ value 3;
+ }
+ }
+ description
+ "State that indicates whether the resource is able to provide fulfill its role - carry traffic, etc.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-types.yang
new file mode 100644
index 000000000..9fc6984b2
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-common-types.yang
@@ -0,0 +1,270 @@
+module org-openroadm-common-types {
+ namespace "http://org/openroadm/common-types";
+ prefix org-openroadm-common-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ typedef activate-notification-type {
+ type enumeration {
+ enum activate {
+ value 1;
+ description
+ "software or database activation";
+ }
+ enum commit {
+ value 2;
+ description
+ "commit the software or database.
+ For software activate, this event can happen in the following scenarios:
+ 1) immediately when user issue sw-activate command without validationTimer
+ or if the validationTimer is specified as 00-00-00;
+ 2) when user issue cancel-validation-timer before it expires and with accept=true.
+ For database activate, this event can occur in the following scenarios:
+ 1) immediately when user issue db-activate command without rollBackTimer
+ or if the rollBackTimer is specified as 00-00-00;
+ 2) when user issue cancel-rollback-timer before it expires and with accept=true.";
+ }
+ enum cancel {
+ value 3;
+ description
+ "cancel the database or software activation operation.
+ For software activate, this event can happen in the following cases:
+ 1) when the validationTimer expires;
+ 2) when the user issues cancel-validation-timer with accept=false.
+ For database activate, this event can happen in the following cases:
+ 1) when the rollBackTimer expires;
+ 2) when the user issues cancel-rollback-timer with accept=false.";
+ }
+ }
+ description
+ "Type of notification on software or database activation events";
+ }
+
+ typedef rpc-status {
+ type enumeration {
+ enum Successful {
+ value 1;
+ }
+ enum Failed {
+ value 2;
+ }
+ }
+ description
+ "status of RPC ";
+ }
+
+ typedef extended-rpc-status {
+ type enumeration {
+ enum Successful {
+ value 1;
+ }
+ enum Failed {
+ value 2;
+ }
+ enum In-progress {
+ value 3;
+ }
+ }
+ description
+ "status of RPC ";
+ }
+
+ typedef openroadm-version-type {
+ type enumeration {
+ enum 1.0 {
+ value 1;
+ description
+ "value for 1.0";
+ }
+ enum 2.0 {
+ value 2;
+ description
+ "value for 2.0";
+ }
+ enum 2.1 {
+ value 3;
+ description
+ "value for 2.1";
+ }
+ enum 2.2 {
+ value 4;
+ description
+ "value for 2.2";
+ }
+ enum 3.0 {
+ value 5;
+ description
+ "value for 3.0";
+ }
+ enum 3.1 {
+ value 6;
+ description
+ "value for 3.1";
+ }
+ enum 4.0 {
+ value 7;
+ description
+ "value for 4.0";
+ }
+ enum 2.2.1 {
+ value 8;
+ description
+ "value for 2.2.1";
+ }
+ enum 4.1 {
+ value 9;
+ description
+ "value for 4.1";
+ }
+ enum 3.1.1 {
+ value 10;
+ description
+ "value for 3.1.1";
+ }
+ enum 5.0 {
+ value 11;
+ description
+ "value for 5.0";
+ }
+ enum 5.1 {
+ value 12;
+ description
+ "value for 5.1";
+ }
+ enum 6.0 {
+ value 13;
+ description
+ "value for 6.0";
+ }
+ enum 6.1 {
+ value 14;
+ description
+ "value for 6.1";
+ }
+ }
+ description
+ "OpenROADM version enum type";
+ }
+
+ grouping rpc-response-status {
+ leaf status {
+ type rpc-status;
+ mandatory true;
+ description
+ "Successful or Failed";
+ }
+ leaf status-message {
+ type string;
+ description
+ "Gives a more detailed status";
+ }
+ }
+
+ grouping extended-rpc-response-status {
+ leaf status {
+ type extended-rpc-status;
+ mandatory true;
+ description
+ "Successful, Failed or In-progress";
+ }
+ leaf status-message {
+ type string;
+ description
+ "Gives a more detailed status.";
+ }
+ }
+
+ grouping eth-rate-and-burst-size {
+ description
+ "Grouping of ethernet committed rate and burst size.";
+ leaf committed-info-rate {
+ type uint32;
+ mandatory true;
+ description
+ "Committed Information Rate (CIR), unit in Mbps. For example, 1250 Mbps";
+ }
+ leaf committed-burst-size {
+ type uint16;
+ mandatory true;
+ description
+ "Committed Burst Size, unit in 1KB (K Byte).
+ Range 16 | 32 | 64 | 128 | 512 | 1024. Default: 16";
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device-types.yang
new file mode 100644
index 000000000..89087d940
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device-types.yang
@@ -0,0 +1,151 @@
+module org-openroadm-device-types {
+ namespace "http://org/openroadm/device-types";
+ prefix org-openroadm-device-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of device types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+
+ typedef node-types {
+ type enumeration {
+ enum rdm {
+ value 1;
+ }
+ enum xpdr {
+ value 2;
+ }
+ enum ila {
+ value 3;
+ }
+ enum extplug {
+ value 4;
+ }
+ }
+ description
+ "Identifier for node type
+ 1. rdm for ROADM
+ 2. xpdr for Transponder, Regen
+ 3. ila for in-line amplifier
+ 4. extplug for external pluggable";
+ }
+
+ typedef xpdr-node-types {
+ type enumeration {
+ enum tpdr {
+ value 1;
+ }
+ enum mpdr {
+ value 2;
+ }
+ enum switch {
+ value 3;
+ }
+ enum regen {
+ value 4;
+ }
+ enum regen-uni {
+ value 5;
+ }
+ }
+ description
+ "Identifier for Xponder node type
+ 1. Transponder
+ 2. Muxponder
+ 3. OTN switchponder
+ 4. Regenerator
+ 5. Regenerator based on unidirectional model";
+ }
+
+ typedef port-qual {
+ type enumeration {
+ enum roadm-internal {
+ value 1;
+ }
+ enum roadm-external {
+ value 2;
+ }
+ enum xpdr-network {
+ value 3;
+ }
+ enum xpdr-client {
+ value 4;
+ }
+ enum otdr {
+ value 5;
+ }
+ enum switch-network {
+ value 6;
+ }
+ enum switch-client {
+ value 7;
+ }
+ enum ila-external {
+ value 8;
+ }
+ enum ila-internal {
+ value 9;
+ }
+ }
+ }
+
+ grouping physical-location {
+ leaf rack {
+ type string;
+ mandatory false;
+ }
+ leaf shelf {
+ type string;
+ mandatory false;
+ }
+ leaf slot {
+ type string;
+ mandatory false;
+ }
+ leaf subSlot {
+ type string;
+ mandatory false;
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device.yang
new file mode 100644
index 000000000..0180be8f5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-device.yang
@@ -0,0 +1,2179 @@
+module org-openroadm-device {
+ namespace "http://org/openroadm/device";
+ prefix org-openroadm-device;
+
+ import ietf-yang-types {
+ prefix ietf-yang-types;
+ revision-date 2013-07-15;
+ }
+ import ietf-inet-types {
+ prefix ietf-inet-types;
+ revision-date 2013-07-15;
+ }
+ import ietf-netconf {
+ prefix ietf-nc;
+ revision-date 2011-06-01;
+ }
+ import org-openroadm-common-types {
+ prefix org-openroadm-common-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-alarm-pm-types {
+ prefix org-openroadm-common-alarm-pm-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-equipment-types {
+ prefix org-openroadm-common-equipment-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-state-types {
+ prefix org-openroadm-common-state-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-amplifier-types {
+ prefix org-openroadm-common-amplifier-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-link-types {
+ prefix org-openroadm-common-link-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-node-types {
+ prefix org-openroadm-common-node-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-optical-channel-types {
+ prefix org-openroadm-common-optical-channel-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-device-types {
+ prefix org-openroadm-device-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-resource-types {
+ prefix org-openroadm-resource-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-physical-types {
+ prefix org-openroadm-physical-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-user-mgmt {
+ prefix org-openroadm-user-mgmt;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-port-types {
+ prefix org-openroadm-port-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-interfaces {
+ prefix org-openroadm-interfaces;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-swdl {
+ prefix org-openroadm-swdl;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-equipment-states-types {
+ prefix org-openroadm-equipment-states-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-switching-pool-types {
+ prefix org-openroadm-switching-pool-types;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of ROADM device
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ Also contains code components extracted from IETF netconf. These code components
+ are copyrighted and licensed as follows:
+ Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
+ All rights reserved.
+ This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
+ to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents carefully, as they
+ describe your rights and restrictions with respect to this document. Code Components
+ extracted from this document must include Simplified BSD License text as described in
+ Section 4.e of the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-05-30 {
+ description
+ "Version 3.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2017-02-06 {
+ description
+ "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ identity connection-direction-identity {
+ description
+ "Bidrectional capable, or Bi and Unidirectional capable";
+ }
+
+ identity connection-direction_bi {
+ base connection-direction-identity;
+ description
+ "Bidrectional capable";
+ }
+
+ identity connection-direction_bi_and_uni {
+ base connection-direction-identity;
+ description
+ "Bi and Unidirectional capable";
+ }
+
+ typedef interface-ref {
+ type leafref {
+ path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
+ }
+ description
+ "This type is used by data models that need to reference
+ configured interfaces.";
+ }
+
+ grouping create-tech-info-group {
+ leaf shelf-id {
+ type leafref {
+ path "/org-openroadm-device/shelves/shelf-name";
+ }
+ description
+ "shelf ID";
+ }
+ leaf log-file-name {
+ type string;
+ description
+ "The log file name a vendor can specify for a given log collection operation";
+ }
+ }
+
+ grouping device-common {
+ leaf node-id {
+ type org-openroadm-common-node-types:node-id-type;
+ default "openroadm";
+ description
+ "Globally unique identifier for a device.";
+ }
+ leaf node-number {
+ type uint32;
+ description
+ "Number assigned to a ROADM node at a
+ given office";
+ }
+ leaf node-type {
+ type org-openroadm-device-types:node-types;
+ config true;
+ mandatory true;
+ description
+ "Identifier for node-type e.g Roadm, xponder.
+ Once the node-type is configured, it should not be modified.";
+ }
+ leaf clli {
+ type string;
+ description
+ "Common Language Location Identifier.";
+ }
+ uses org-openroadm-physical-types:node-info;
+ leaf ipAddress {
+ type ietf-inet-types:ip-address;
+ description
+ "IP Address of device";
+ }
+ leaf prefix-length {
+ type uint8 {
+ range "0..128";
+ }
+ description
+ "The length of the subnet prefix";
+ }
+ leaf defaultGateway {
+ type ietf-inet-types:ip-address;
+ description
+ "Default Gateway";
+ }
+ leaf source {
+ type enumeration {
+ enum static {
+ value 1;
+ }
+ enum dhcp {
+ value 2;
+ }
+ }
+ config false;
+ }
+ leaf current-ipAddress {
+ type ietf-inet-types:ip-address;
+ config false;
+ description
+ "Current IP Address of device";
+ }
+ leaf current-prefix-length {
+ type uint8 {
+ range "0..128";
+ }
+ config false;
+ description
+ "The current length of the subnet prefix";
+ }
+ leaf current-defaultGateway {
+ type ietf-inet-types:ip-address;
+ config false;
+ description
+ "Current Default Gateway";
+ }
+ leaf macAddress {
+ type ietf-yang-types:mac-address;
+ config false;
+ description
+ "MAC Address of device";
+ }
+ leaf softwareVersion {
+ type string;
+ config false;
+ description
+ "Software version";
+ }
+ leaf software-build {
+ type string;
+ config false;
+ description
+ "Software build version";
+ }
+ leaf openroadm-version {
+ type org-openroadm-common-types:openroadm-version-type;
+ config false;
+ description
+ "openroadm version used on the device";
+ }
+ leaf template {
+ type string;
+ description
+ "Template information used in the deployment.";
+ }
+ leaf current-datetime {
+ type ietf-yang-types:date-and-time;
+ config false;
+ description
+ "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of the device node. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ container geoLocation {
+ description
+ "GPS location";
+ leaf latitude {
+ type decimal64 {
+ fraction-digits 16;
+ range "-90 .. 90";
+ }
+ description
+ "[From wikipedia] Latitude is an angle (defined below)
+ which ranges from 0 at the Equator to 90 (North or
+ South) at the poles";
+ }
+ leaf longitude {
+ type decimal64 {
+ fraction-digits 16;
+ range "-180 .. 180";
+ }
+ description
+ "[From wikipedia] The longitude is measured as the
+ angle east or west from the Prime Meridian, ranging
+ from 0 at the Prime Meridian to +180 eastward and
+ -180 westward.";
+ }
+ }
+ }
+
+ grouping slot-info {
+ description
+ "slots information. To be populated by NE during retrieval.";
+ leaf slot-name {
+ type string;
+ description
+ "The name of this slot.";
+ }
+ leaf label {
+ type string;
+ description
+ "Faceplate label";
+ }
+ leaf provisioned-circuit-pack {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ description
+ "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
+ }
+ leaf slot-status {
+ type enumeration {
+ enum empty-not-prov {
+ value 1;
+ description
+ "Slot is empty and not provisioned";
+ }
+ enum empty-prov-match {
+ value 2;
+ status deprecated;
+ description
+ "(Deprecated) Slot is empty and expected type is provisioned";
+ }
+ enum empty-prov-mismatch {
+ value 3;
+ status deprecated;
+ description
+ "(Deprecated) Slot is empty and an unsupported type is provisioned";
+ }
+ enum installed-not-prov {
+ value 4;
+ description
+ "Slot is occupied but not provisioned";
+ }
+ enum installed-prov-match {
+ value 5;
+ description
+ "Slot is occupied with matching provisioned type";
+ }
+ enum installed-prov-mismatch {
+ value 6;
+ description
+ "Slot is occupied with mismatched provisioned type";
+ }
+ enum empty-prov {
+ value 7;
+ description
+ "Slot is empty and provisioned";
+ }
+ }
+ }
+ }
+
+ grouping shelves {
+ list shelves {
+ key "shelf-name";
+ uses shelf;
+ }
+ }
+
+ grouping user-description-grp {
+ description
+ "user description group";
+ leaf user-description {
+ type string;
+ description
+ "user provided description";
+ }
+ }
+
+ grouping shelf {
+ leaf shelf-name {
+ type string;
+ description
+ "Unique identifier for this shelf within a device";
+ }
+ leaf shelf-type {
+ type string;
+ mandatory true;
+ description
+ "The shelf type: describe the shelf with a unique string.";
+ }
+ leaf rack {
+ type string;
+ description
+ "Reflect the shelf physical location data including floor, aisle, bay values.";
+ }
+ leaf shelf-position {
+ type string;
+ description
+ "Reflect the shelf vertical position within an equipment bay.";
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of shelf. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ leaf administrative-state {
+ type org-openroadm-equipment-states-types:admin-states;
+ mandatory true;
+ description
+ "Admin State of the shelf";
+ }
+ uses org-openroadm-physical-types:common-info;
+ leaf equipment-state {
+ type org-openroadm-equipment-states-types:states;
+ description
+ "equipment state for the shelf, used to track the lifecycle state.";
+ }
+ leaf is-physical {
+ type boolean;
+ config false;
+ mandatory true;
+ description
+ "is the entity physical or logical";
+ }
+ leaf is-passive {
+ type boolean;
+ config false;
+ mandatory true;
+ description
+ "is the entity passive and not actively managed by the device;
+ e.g., no physical inventory or plug-in notification supported";
+ }
+ leaf faceplate-label {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "label on the faceplace silk screening";
+ }
+ uses user-description-grp;
+ leaf due-date {
+ type ietf-yang-types:date-and-time;
+ description
+ "due date for the shelf.";
+ }
+ list slots {
+ key "slot-name";
+ config false;
+ description
+ "List of slots on this shelf. To be populated by NE during retrieval.";
+ uses slot-info;
+ }
+ }
+
+ grouping circuit-packs {
+ list circuit-packs {
+ key "circuit-pack-name";
+ description
+ "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
+ leaf circuit-pack-type {
+ type string;
+ mandatory true;
+ description
+ "Type of circuit-pack";
+ }
+ leaf circuit-pack-product-code {
+ type string;
+ description
+ "Product Code for the circuit-pack";
+ }
+ uses circuit-pack;
+ }
+ }
+
+ grouping circuit-pack-features {
+ leaf software-load-version {
+ type string;
+ config false;
+ description
+ "Software version running on the circuit pack.";
+ }
+ list circuit-pack-features {
+ key "to-be-deleted";
+ config false;
+ leaf to-be-deleted {
+ type string;
+ description
+ "Key to be deleted.";
+ }
+ container feature {
+ description
+ "List of features supported by the installed load and indications on whether the features have been applied or not.";
+ leaf description {
+ type string;
+ description
+ "Feature description.";
+ }
+ leaf boot {
+ type boolean;
+ description
+ "Flag to indicate boot loader or unprotected firmware update required";
+ }
+ leaf activated {
+ type boolean;
+ description
+ "Indicator if the feature has been activated.";
+ }
+ }
+ }
+ list circuit-pack-components {
+ key "to-be-deleted";
+ config false;
+ leaf to-be-deleted {
+ type string;
+ description
+ "Key to be deleted.";
+ }
+ container component {
+ description
+ "Optional list of components on the circuit-pack and the load information applicable to those components. If a load is not up to date and will upgrade when a cold restart occurs, the version that will be applied should also be listed. If there is no misalignment, this does not need to be reported.";
+ leaf name {
+ type string;
+ description
+ "Name of a component on the circuit-pack that can have a load applied to it.";
+ }
+ leaf boot {
+ type boolean;
+ description
+ "Flag to indicate boot loader or unprotected firmware update required";
+ }
+ leaf current-version {
+ type string;
+ description
+ "Name of the load version currently running on the component.";
+ }
+ leaf version-to-apply {
+ type string;
+ description
+ "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.";
+ }
+ }
+ }
+ }
+
+ grouping circuit-pack {
+ leaf circuit-pack-name {
+ type string;
+ description
+ "Unique identifier for this circuit-pack within a device";
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of circuit-pack. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ leaf administrative-state {
+ type org-openroadm-equipment-states-types:admin-states;
+ mandatory true;
+ description
+ "Administrative state of circuit-pack";
+ }
+ uses org-openroadm-physical-types:common-info;
+ container circuit-pack-category {
+ config false;
+ description
+ "General type of circuit-pack";
+ uses org-openroadm-common-equipment-types:equipment-type;
+ }
+ leaf equipment-state {
+ type org-openroadm-equipment-states-types:states;
+ description
+ "Equipment state, which complements operational state.";
+ }
+ leaf circuit-pack-mode {
+ type string;
+ default "NORMAL";
+ description
+ "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
+ }
+ leaf shelf {
+ type leafref {
+ path "/org-openroadm-device/shelves/shelf-name";
+ }
+ mandatory true;
+ }
+ leaf slot {
+ type string;
+ mandatory true;
+ }
+ leaf subSlot {
+ type string;
+ mandatory false;
+ }
+ leaf is-pluggable-optics {
+ type boolean;
+ config false;
+ mandatory true;
+ description
+ "True if circuitpack is pluggable optics";
+ }
+ leaf is-physical {
+ type boolean;
+ config false;
+ mandatory true;
+ description
+ "is the entity physical or logical";
+ }
+ leaf is-passive {
+ type boolean;
+ config false;
+ mandatory true;
+ description
+ "is the entity passive and not actively managed by the device;
+ e.g., no physical inventory or plug-in notification supported";
+ }
+ leaf faceplate-label {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "label on the faceplace silk screening";
+ }
+ uses user-description-grp;
+ leaf due-date {
+ type ietf-yang-types:date-and-time;
+ description
+ "due date for this circuit-pack.";
+ }
+ container parent-circuit-pack {
+ description
+ "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment. It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack. For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure.";
+ uses circuit-pack-name-g;
+ leaf cp-slot-name {
+ type string;
+ description
+ "Slot name on parent-circuit-pack.";
+ }
+ }
+ list cp-slots {
+ key "slot-name";
+ config false;
+ description
+ "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
+ uses slot-info;
+ leaf slot-type {
+ type enumeration {
+ enum pluggable-optics-holder {
+ value 1;
+ description
+ "slot accepts dedicated pluggable port circuit-pack";
+ }
+ enum other {
+ value 2;
+ description
+ "slot accepts parent circuit-pack";
+ }
+ }
+ }
+ }
+ uses circuit-pack-features;
+ list ports {
+ key "port-name";
+ description
+ "List of ports on this circuit-pack. Note that pluggables are considered independent circuit-packs. All ports that are physically present on a pluggable, need to be modeled as a port against that pluggable circuit-pack, and not against the parent circuit-pack.";
+ uses port;
+ container roadm-port {
+ when "../port-qual='roadm-external'";
+ uses org-openroadm-port-types:roadm-port;
+ }
+ container transponder-port {
+ when "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'";
+ uses org-openroadm-port-types:common-port;
+ }
+ container otdr-port {
+ when "../port-qual='otdr'";
+ description
+ "Settings for otdr port.";
+ leaf launch-cable-length {
+ type uint32;
+ units "m";
+ default "30";
+ }
+ leaf port-direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ }
+ }
+ container ila-port {
+ when "../port-qual='ila-external'";
+ uses org-openroadm-port-types:common-port;
+ }
+ }
+ }
+
+ grouping odu-connection {
+ description
+ "Grouping used to define odu-connections.";
+ leaf connection-name {
+ type string;
+ description
+ "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)";
+ }
+ leaf direction {
+ type enumeration {
+ enum unidirectional {
+ value 1;
+ }
+ enum bidirectional {
+ value 2;
+ }
+ }
+ default "bidirectional";
+ description
+ "Directionality of connection. If bidirectional, both directions are created.";
+ }
+ container source {
+ leaf src-if {
+ type leafref {
+ path "/org-openroadm-device/interface/name";
+ }
+ mandatory true;
+ }
+ }
+ container destination {
+ leaf dst-if {
+ type leafref {
+ path "/org-openroadm-device/interface/name";
+ }
+ mandatory true;
+ }
+ }
+ }
+
+ grouping connection {
+ description
+ "Grouping used to define connections.";
+ leaf connection-name {
+ type string;
+ }
+ leaf opticalControlMode {
+ type org-openroadm-common-link-types:optical-control-mode;
+ default "off";
+ description
+ "Whether connection is currently in power or gain/loss mode";
+ reference "openroadm.org: Open ROADM MSA Specification.";
+ }
+ leaf target-output-power {
+ type org-openroadm-common-link-types:power-dBm;
+ description
+ "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
+ }
+ container source {
+ leaf src-if {
+ type leafref {
+ path "/org-openroadm-device/interface/name";
+ }
+ mandatory true;
+ }
+ }
+ container destination {
+ leaf dst-if {
+ type leafref {
+ path "/org-openroadm-device/interface/name";
+ }
+ mandatory true;
+ }
+ }
+ }
+
+ grouping mc-capabilities-grp {
+ description
+ "Media channel capabilities grouping";
+ leaf-list mc-capabilities {
+ type leafref {
+ path "/org-openroadm-device/mc-capability-profile/profile-name";
+ }
+ config false;
+ description
+ "Media channel capabilities";
+ }
+ }
+
+ grouping degree {
+ leaf degree-number {
+ type uint16;
+ must 'not( current() > /org-openroadm-device/info/max-degrees) and current() > 0' {
+ error-message "Degree not supported by device ";
+ description
+ "Validating if the degree is supported by device";
+ }
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of degree. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ leaf max-wavelengths {
+ type uint16;
+ config false;
+ mandatory true;
+ description
+ "maximum number of wavelengths";
+ }
+ list circuit-packs {
+ key "index";
+ description
+ "list for Cards associated with a degree";
+ leaf index {
+ type uint32;
+ }
+ uses circuit-pack-name-g {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ }
+ }
+ list connection-ports {
+ key "index";
+ description
+ "Port associated with degree: One if bi-directional; two if uni-directional";
+ leaf index {
+ type uint32;
+ }
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ container otdr-port {
+ description
+ "otdr port associated with degree.";
+ uses port-name;
+ }
+ uses mc-capabilities-grp;
+ }
+
+ grouping amplifier {
+ leaf amp-number {
+ type uint8 {
+ range "1..128";
+ }
+ description
+ "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier";
+ }
+ leaf amp-type {
+ type org-openroadm-common-amplifier-types:amplifier-types;
+ config false;
+ mandatory true;
+ description
+ "Amplifier type";
+ }
+ leaf control-mode {
+ type org-openroadm-common-amplifier-types:line-amplifier-control-mode;
+ default "off";
+ description
+ "Whether the line amplifier is currently in off or gainLoss mode. control-mode can only be set to gainLoss when target-gain, target-tilt and egress-average-channel-power are set and the OMS interfaces are provisioned. The amplifier will be turned off when the control-mode is set to off";
+ }
+ leaf amp-gain-range {
+ type org-openroadm-common-amplifier-types:amplifier-gain-range;
+ default "gain-range-1";
+ config false;
+ description
+ "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers)
+ gain-range-1 (default value) for standard amplifiers";
+ }
+ leaf target-gain {
+ type org-openroadm-common-link-types:ratio-dB;
+ config true;
+ description
+ "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation.
+ Defined as optional for ODL support, but shall be considered as mandatory and provided
+ by the controller when the control-mode is set to gainLoss for amplifier setting";
+ }
+ leaf target-tilt {
+ type org-openroadm-common-link-types:ratio-dB;
+ config true;
+ description
+ "Target tilt configured in case of smart EDFA.
+ Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet
+ Defined as optional for ODL support, but shall be considered as mandatory and provided
+ by the controller when the control-mode is set to gainLoss for amplifier setting";
+ }
+ leaf egress-average-channel-power {
+ type org-openroadm-common-link-types:power-dBm;
+ config true;
+ description
+ "Based upon the total max power across the 4.8 THz passband.
+ Defined as optional for ODL support, but shall be considered as mandatory and provided
+ by the controller when the control-mode is set to gainLoss for amplifier setting";
+ }
+ leaf out-voa-att {
+ type org-openroadm-common-link-types:ratio-dB;
+ config false;
+ description
+ "Used to provide the value output VOA attenuation, optional";
+ }
+ leaf partner-amp {
+ type leafref {
+ path "/org-openroadm-device/line-amplifier/amp-number";
+ }
+ config false;
+ description
+ "amp-number of amp module that is functionally associated to the amplifier
+ in the opposite direction";
+ }
+ leaf ila-direction-label {
+ type string;
+ description
+ "Amplifier direction. Each operators may have its own naming convention.
+ Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.";
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of the amplifier. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ }
+
+ grouping external-links {
+ description
+ "YANG definitions for external links..
+ - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.";
+ list external-link {
+ key "external-link-name";
+ uses external-link;
+ }
+ }
+
+ grouping external-link {
+ leaf external-link-name {
+ type string;
+ }
+ container source {
+ uses org-openroadm-resource-types:device-id {
+ refine "node-id" {
+ mandatory true;
+ }
+ }
+ uses org-openroadm-resource-types:port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ container destination {
+ uses org-openroadm-resource-types:device-id {
+ refine "node-id" {
+ mandatory true;
+ }
+ }
+ uses org-openroadm-resource-types:port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ }
+
+ grouping internal-links {
+ list internal-link {
+ key "internal-link-name";
+ config false;
+ uses internal-link;
+ }
+ }
+
+ grouping internal-link {
+ leaf internal-link-name {
+ type string;
+ }
+ container source {
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ container destination {
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ }
+
+ grouping physical-links {
+ description
+ "YANG definitions for physical links.
+ - physical links (fiber, cables,etc.) between ports within a node. ";
+ list physical-link {
+ key "physical-link-name";
+ uses physical-link;
+ }
+ }
+
+ grouping physical-link {
+ leaf physical-link-name {
+ type string;
+ }
+ leaf is-physical {
+ type boolean;
+ description
+ "is the entity physical or logical";
+ }
+ uses user-description-grp;
+ container source {
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ container destination {
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of the physical link. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ }
+
+ grouping srg {
+ leaf max-add-drop-ports {
+ type uint16;
+ config false;
+ mandatory true;
+ description
+ "The max number of ports available for a given srg";
+ }
+ leaf current-provisioned-add-drop-ports {
+ type uint16;
+ config false;
+ mandatory true;
+ description
+ "The number of ports currently provisioned for a given srg.";
+ }
+ leaf srg-number {
+ type uint16;
+ must 'not(current()>/org-openroadm-device/info/max-srgs) and current()>0' {
+ error-message "invalid SRG";
+ description
+ "Validating if the srg is supported by add/drop group";
+ }
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of shared-risk-group. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ leaf wavelength-duplication {
+ type org-openroadm-common-optical-channel-types:wavelength-duplication-type;
+ config false;
+ mandatory true;
+ description
+ "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
+ }
+ list circuit-packs {
+ key "index";
+ description
+ "list for Cards associated with an add/drop group and srg";
+ leaf index {
+ type uint32;
+ }
+ uses circuit-pack-name-g {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ }
+ }
+ uses mc-capabilities-grp;
+ }
+
+ grouping xponder {
+ leaf xpdr-number {
+ type uint16;
+ must 'current() > 0' {
+ error-message "Xponder not supported by device ";
+ description
+ "Validating if the Xponder is supported by device";
+ }
+ }
+ leaf xpdr-type {
+ type org-openroadm-device-types:xpdr-node-types;
+ mandatory true;
+ description
+ "Identifier for xponder-type e.g Transponder, Muxponder";
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of xponder. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ leaf recolor {
+ type boolean;
+ config false;
+ description
+ "Indication if recolor is supported";
+ }
+ list xpdr-port {
+ key "index";
+ description
+ "Network Ports with in a Xponder";
+ leaf index {
+ type uint32;
+ }
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ leaf eqpt-srg-id {
+ type uint32;
+ description
+ "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id";
+ }
+ }
+ }
+
+ grouping degree-number {
+ leaf degree-number {
+ type leafref {
+ path "/org-openroadm-device/degree/degree-number";
+ }
+ description
+ "Degree identifier. Unique within the context of a device.";
+ }
+ }
+
+ grouping circuit-pack-name-g {
+ leaf circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ description
+ "Circuit-Pack identifier. Unique within the context of a device.";
+ }
+ }
+
+ grouping port-name {
+ uses circuit-pack-name-g;
+ leaf port-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
+ }
+ description
+ "Port identifier. Unique within the context of a circuit-pack.";
+ }
+ }
+
+ grouping srg-number {
+ leaf srg-number {
+ type leafref {
+ path "/org-openroadm-device/shared-risk-group/srg-number";
+ }
+ description
+ "Shared Risk Group identifier. Unique within the context of a device.";
+ }
+ }
+
+ grouping supporting-port-name {
+ leaf supporting-circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ description
+ "Identifier of the supporting circuit-pack.";
+ }
+ leaf supporting-port {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
+ }
+ description
+ "Identifier of the supporting port.";
+ }
+ }
+
+ grouping supporting-circuit-pack-list-grp {
+ description
+ "supporting circuit pack list grouping";
+ list supporting-port-list {
+ key "index";
+ description
+ "supporting port list";
+ leaf index {
+ type uint8;
+ description
+ "supporting circuit pack index";
+ }
+ leaf circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ mandatory true;
+ description
+ "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
+ }
+ leaf-list port-list {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
+ }
+ description
+ "port list";
+ }
+ }
+ }
+
+ grouping interface-name {
+ description
+ "interface name grouping";
+ leaf interface-name {
+ type leafref {
+ path "/org-openroadm-device/interface/name";
+ }
+ config false;
+ description
+ "Name of an interface. Unique within the context of a device.";
+ }
+ }
+
+ grouping interfaces-grp {
+ description
+ "OpenROADM Interface configuration parameters.";
+ list interface {
+ key "name";
+ description
+ "The list of configured interfaces on the device.";
+ leaf name {
+ type string;
+ description
+ "The name of the interface.";
+ }
+ leaf description {
+ type string;
+ description
+ "A textual description of the interface.";
+ }
+ leaf type {
+ type identityref {
+ base org-openroadm-interfaces:interface-type;
+ }
+ mandatory true;
+ description
+ "The type of the interface.";
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of interface. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ leaf administrative-state {
+ type org-openroadm-equipment-states-types:admin-states;
+ mandatory true;
+ }
+ leaf operational-state {
+ type org-openroadm-common-state-types:state;
+ config false;
+ mandatory true;
+ }
+ leaf circuit-id {
+ type string {
+ length "0..45";
+ }
+ description
+ "circuit identifier/user label,
+ can be used in alarm correlation and/or connection management ";
+ }
+ leaf supporting-interface {
+ type leafref {
+ path "/org-openroadm-device/interface/name";
+ }
+ description
+ "supporting interface";
+ }
+ uses supporting-port-name;
+ leaf-list supporting-interface-list {
+ type leafref {
+ path "/org-openroadm-device/interface/name";
+ }
+ description
+ "supporting interface list";
+ }
+ uses supporting-circuit-pack-list-grp;
+ }
+ }
+
+ grouping protection-groups {
+ description
+ "OpenROADM facility protection configuration parameters.";
+ container protection-grps {
+ description
+ "The list of configured protection groups on the device.";
+ }
+ }
+
+ grouping port {
+ description
+ "Grouping of attributes related to a port object.";
+ leaf port-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for a port, unique within a circuit pack";
+ }
+ uses supporting-circuit-pack-list-grp;
+ leaf port-type {
+ type string;
+ description
+ "Type of the pluggable or fixed port.";
+ }
+ leaf port-qual {
+ type org-openroadm-device-types:port-qual;
+ }
+ leaf port-wavelength-type {
+ type org-openroadm-port-types:port-wavelength-types;
+ config false;
+ description
+ "Type of port - single, multiple-wavelength, etc.";
+ }
+ leaf port-direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ config false;
+ mandatory true;
+ description
+ "Whether port is uni (tx/rx) or bi-directional and";
+ }
+ leaf label {
+ type string;
+ config false;
+ status deprecated;
+ description
+ "Faceplate label";
+ }
+ leaf is-physical {
+ type boolean;
+ config false;
+ mandatory true;
+ description
+ "is the entity physical or logical";
+ }
+ leaf faceplate-label {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "label on the faceplace silk screening";
+ }
+ uses user-description-grp;
+ leaf circuit-id {
+ type string {
+ length "0..45";
+ }
+ description
+ "circuit identifier/user label,
+ can be used in alarm correlation and/or connection management ";
+ }
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of port. Whether it is planned, deployed, in maintenance, etc.";
+ }
+ leaf administrative-state {
+ type org-openroadm-equipment-states-types:admin-states;
+ default "outOfService";
+ description
+ "Administrative state of port. The value of this field independent of the state of its contained and containing resources. Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources. If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratively disabling this port will impact the operational state of those items unless they are using some form of port-protection schema.";
+ }
+ leaf operational-state {
+ type org-openroadm-common-state-types:state;
+ config false;
+ mandatory true;
+ description
+ "Operational state of a port";
+ }
+ leaf-list supported-interface-capability {
+ type identityref {
+ base org-openroadm-port-types:supported-if-capability;
+ }
+ config false;
+ description
+ "Interface types supported on this port";
+ }
+ leaf logical-connection-point {
+ type string;
+ description
+ "delete or replace with list logical-ports or connections?";
+ }
+ container partner-port {
+ config false;
+ description
+ "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port.";
+ uses port-name;
+ }
+ container parent-port {
+ config false;
+ description
+ "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports. The parent-port of the subport will be the port that contains this subport. This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports.";
+ uses port-name;
+ }
+ list interfaces {
+ key "interface-name";
+ config false;
+ description
+ "List of the interfaces this port supports. This is a list of names of instances in the flat instance list. Implementations must provide the list of interfaces for port that has interfaces provisioned on that port.";
+ uses interface-name;
+ }
+ uses mc-capabilities-grp;
+ }
+
+ // grouping org-openroadm-device-container-g {
+ container org-openroadm-device {
+ container info {
+ uses device-common;
+ leaf max-degrees {
+ type uint16;
+ config false;
+ description
+ "Max. number of degrees supported by device";
+ }
+ leaf max-srgs {
+ type uint16;
+ config false;
+ description
+ "Max. number of SRGs in an add/drop group";
+ }
+ leaf max-num-bin-15min-historical-pm {
+ type uint16;
+ config false;
+ description
+ "Max. number of bin the NE support for 15min historical PM";
+ }
+ leaf max-num-bin-24hour-historical-pm {
+ type uint16;
+ config false;
+ description
+ "Max. number of bin the NE support for 24hour historical PM";
+ }
+ }
+ container users {
+ description
+ "Stores a list of users";
+ uses org-openroadm-user-mgmt:user-profile;
+ }
+ container pending-sw {
+ config false;
+ description
+ "pending software information";
+ uses org-openroadm-swdl:sw-bank;
+ }
+ container database-info {
+ config false;
+ description
+ "database restore information";
+ uses org-openroadm-swdl:database-info-group;
+ }
+ uses shelves;
+ uses circuit-packs;
+ uses interfaces-grp;
+ uses protection-groups;
+ container protocols {
+ description
+ "Contains the supported protocols";
+ leaf lifecycle-state {
+ type org-openroadm-common-state-types:lifecycle-state;
+ description
+ "Lifecycle State of the protocols. Whether it is planned or deployed, etc.";
+ }
+ }
+ uses internal-links;
+ uses physical-links;
+ uses external-links;
+ list degree {
+ when "/org-openroadm-device/info/node-type='rdm'";
+ key "degree-number";
+ uses degree;
+ }
+ list shared-risk-group {
+ when "/org-openroadm-device/info/node-type='rdm'";
+ key "srg-number";
+ uses srg;
+ }
+ list line-amplifier {
+ when "/org-openroadm-device/info/node-type='ila'";
+ key "amp-number";
+ description
+ "lists amplifiers in different directions";
+ uses amplifier;
+ list circuit-pack {
+ key "index";
+ description
+ "list for Cards associated with an amplifier";
+ leaf index {
+ type uint32;
+ }
+ uses circuit-pack-name-g {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ }
+ }
+ list line-port {
+ key "port-direction";
+ description
+ "Port associated with an amplifier which face the line (ila-external): traffic port.";
+ leaf port-direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ config true;
+ mandatory true;
+ description
+ "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress
+ TXRX in case of bidirectional port";
+ }
+ leaf tx-instance-port-direction-label {
+ type string;
+ config true;
+ description
+ "Complements ports identification. Used notably in case of bidirectional ports,
+ and/or in multi-degree amplifier nodes. Allows associating one of the directions
+ specified in ila-direction-label. Shall be consistent with ila-direction-label";
+ }
+ leaf rx-instance-port-direction-label {
+ type string;
+ config true;
+ description
+ "Complements ports identification. Used notably in case of bidirectional ports,
+ and/or in multi-degree amplifier nodes. Allows associating one of the directions
+ specified in ila-direction-label. Shall be consistent with ila-direction-label";
+ }
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ list osc-port {
+ key "port-direction";
+ description
+ "Ports associated with OSC";
+ leaf port-direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ config true;
+ mandatory true;
+ description
+ "allows identifying ports associated with logical amp :
+ TX for OSC circuit-pack IN RX for OSC circuit-pack OUT";
+ }
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ list otdr-port {
+ key "otdr-direction";
+ description
+ "otdr ports associated with an ILA";
+ leaf otdr-direction {
+ type string;
+ config true;
+ description
+ "allows identifying associated logical amp port in which OTDR is launched:
+ corresponds to rx-instance-port-direction-label of corresponding amplifier line-port";
+ }
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ }
+ list xponder {
+ when "/org-openroadm-device/info/node-type='xpdr'";
+ key "xpdr-number";
+ uses xponder;
+ }
+ list roadm-connections {
+ when "/org-openroadm-device/info/node-type='rdm'";
+ key "connection-name";
+ uses connection;
+ }
+ list odu-connection {
+ when "/org-openroadm-device/info/node-type='xpdr'";
+ key "connection-name";
+ uses odu-connection;
+ }
+ list connection-map {
+ key "connection-map-number";
+ config false;
+ leaf connection-map-number {
+ type uint32;
+ description
+ "Unique identifier for this connection-map entry";
+ }
+ container source {
+ leaf circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ mandatory true;
+ }
+ leaf port-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
+ }
+ mandatory true;
+ description
+ "Port identifier. Unique within the context of a circuit-pack.";
+ }
+ }
+ list destination {
+ key "circuit-pack-name port-name";
+ min-elements 1;
+ leaf circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ mandatory true;
+ }
+ leaf port-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
+ }
+ mandatory true;
+ description
+ "Port identifier. Unique within the context of a circuit-pack.";
+ }
+ }
+ }
+ list odu-switching-pools {
+ when "/org-openroadm-device/info/node-type='xpdr'";
+ key "switching-pool-number";
+ config false;
+ leaf switching-pool-number {
+ type uint16;
+ description
+ "Unique identifier for this odu-switching-pool";
+ }
+ leaf switching-pool-type {
+ type org-openroadm-switching-pool-types:switching-pool-types;
+ description
+ "Blocking/Non-Blocking";
+ }
+ leaf odu-connection-direction-capabilities {
+ type identityref {
+ base connection-direction-identity;
+ }
+ description
+ "Bidrectional capable, or Bi and Unidirectional capable";
+ }
+ list non-blocking-list {
+ key "nbl-number";
+ config false;
+ description
+ "List of ports in a non-blocking switch element";
+ leaf nbl-number {
+ type uint16;
+ description
+ "Identifier for this non-blocking-list. Unique within odu-switching-pool";
+ }
+ leaf interconnect-bandwidth-unit {
+ type uint32;
+ config false;
+ description
+ "Switch fabric interconnect bandwidth unit rate in bits per second.
+ Represents granularity of switch fabric";
+ }
+ leaf interconnect-bandwidth {
+ type uint32;
+ config false;
+ description
+ "Total interconnect bandwidth for a non-blocking element expressed as
+ number of inter-connect-bandwidth units";
+ }
+ list port-list {
+ key "circuit-pack-name port-name";
+ leaf circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ config false;
+ }
+ leaf port-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/ports/port-name";
+ }
+ config false;
+ description
+ "Port name. Unique within device";
+ }
+ }
+ list pluggable-optics-holder-list {
+ key "circuit-pack-name slot-name";
+ leaf circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ config false;
+ description
+ "Name of parent circuit-pack";
+ }
+ leaf slot-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/cp-slots/slot-name";
+ }
+ config false;
+ description
+ "Name of pluggable-optics-holder";
+ }
+ }
+ }
+ }
+ list mc-capability-profile {
+ key "profile-name";
+ config false;
+ description
+ "Media channel capability profile list";
+ leaf profile-name {
+ type string;
+ description
+ "Media channel profile name";
+ }
+ leaf center-freq-granularity {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ default "50";
+ config false;
+ description
+ "Granularity of allowed center frequencies. The base frequency for this computation is 193.1 THz (G.694.1)";
+ }
+ leaf min-edge-freq {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ config false;
+ description
+ "Minimum edge frequency";
+ }
+ leaf max-edge-freq {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ config false;
+ description
+ "Maximum edge frequency";
+ }
+ leaf slot-width-granularity {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ default "50";
+ config false;
+ description
+ "Width of a slot measured in GHz.";
+ }
+ leaf min-slots {
+ type uint32;
+ default "1";
+ config false;
+ description
+ "Minimum number of slots permitted to be joined together to form a media channel. Must be less than or equal to the max-slots";
+ }
+ leaf max-slots {
+ type uint32;
+ default "1";
+ config false;
+ description
+ "Maximum number of slots permitted to be joined together to form a media channel. Must be greater than or equal to the min-slots";
+ }
+ }
+ }
+ // }
+
+ grouping common-session-parms {
+ description
+ "Common session parameters to identify a
+ management session.";
+ leaf username {
+ type org-openroadm-user-mgmt:username-type;
+ mandatory true;
+ description
+ "Name of the user for the session.";
+ }
+ leaf session-id {
+ type ietf-nc:session-id-or-zero-type;
+ mandatory true;
+ description
+ "Identifier of the session.
+ A NETCONF session MUST be identified by a non-zero value.
+ A non-NETCONF session MAY be identified by the value zero.";
+ }
+ leaf source-host {
+ type ietf-inet-types:ip-address;
+ description
+ "Address of the remote host for the session.";
+ }
+ }
+
+ grouping changed-by-parms {
+ description
+ "Common parameters to identify the source
+ of a change event, such as a configuration
+ or capability change.";
+ container changed-by {
+ description
+ "Indicates the source of the change.
+ If caused by internal action, then the
+ empty leaf 'server' will be present.
+ If caused by a management session, then
+ the name, remote host address, and session ID
+ of the session that made the change will be reported.";
+ choice server-or-user {
+ leaf server {
+ type empty;
+ description
+ "If present, the change was caused
+ by the server.";
+ }
+ case by-user {
+ uses common-session-parms;
+ }
+ }
+ }
+ }
+
+ rpc led-control {
+ description
+ "This command is used to allow user to find an entity on the NE,
+ The specified entity will have LED blinking.
+ The equipmentLedOn alarm will be raised and cleared for the indication";
+ input {
+ choice equipment-entity {
+ mandatory true;
+ case shelf {
+ leaf shelf-name {
+ type leafref {
+ path "/org-openroadm-device/shelves/shelf-name";
+ }
+ mandatory true;
+ description
+ "shelf-name for the operation";
+ }
+ }
+ case circuit-pack {
+ leaf circuit-pack-name {
+ type leafref {
+ path "/org-openroadm-device/circuit-packs/circuit-pack-name";
+ }
+ mandatory true;
+ description
+ "circuit-pack-name for the operation";
+ }
+ }
+ }
+ leaf enabled {
+ type boolean;
+ mandatory true;
+ description
+ "led-control enabled flag.
+ when enabled=true, equipmentLedOn alarm will be raised
+ when enabled=false, equipmentLedOn alarm will be cleared";
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ rpc create-tech-info {
+ description
+ "Collects all log data for debugging and place it in a location accessible via ftp/sftp.
+ This model assumes ASYNC operation, i.e. the command will return after the device accepts the command,
+ A create-tech-info-notification will be send out later for the result of the operation.
+ The log-file is cleared at the start of every create-tech-info operation in order to ensure
+ the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second
+ create-tech-info command will be rejected.";
+ input {
+ leaf shelf-id {
+ type leafref {
+ path "/org-openroadm-device/shelves/shelf-name";
+ }
+ description
+ "This optional field is used to specify the shelf for log collection.
+ When this filed is not provided, it is expected to collect logs for the whole node.
+ Vendor should reject the command if the whole node log collection is not supported.";
+ }
+ leaf log-option {
+ type string;
+ description
+ "The log type a vendor can specify. Maybe used in future";
+ }
+ }
+ output {
+ uses create-tech-info-group;
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ rpc get-connection-port-trail {
+ input {
+ leaf connection-name {
+ type string;
+ mandatory true;
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ list ports {
+ uses org-openroadm-device-types:physical-location;
+ uses port-name {
+ refine "circuit-pack-name" {
+ mandatory true;
+ }
+ refine "port-name" {
+ mandatory true;
+ }
+ }
+ }
+ }
+ }
+ rpc disable-automatic-shutoff {
+ input {
+ choice degree-or-amp {
+ mandatory true;
+ description
+ "The choice describes the option to specify the entity for the disable-automatic-shutoff RPC. It can be degree-number for rdm and amp-number for ila";
+ case degree {
+ leaf degree-number {
+ type leafref {
+ path "/org-openroadm-device/degree/degree-number";
+ }
+ mandatory true;
+ description
+ "The degree-number defined in degree";
+ }
+ }
+ case amp {
+ leaf amp-number {
+ type leafref {
+ path "/org-openroadm-device/line-amplifier/amp-number";
+ }
+ mandatory true;
+ description
+ "The amp-number defined in line-amplifier";
+ }
+ }
+ }
+ leaf support-timer {
+ type uint16 {
+ range "1..600";
+ }
+ default "20";
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ rpc start-scan {
+ input {
+ choice degree-or-amp {
+ mandatory true;
+ description
+ "The choice describes the option to specify the entity for the start-scan RPC. It can be degree-number for rdm and amp-number for ila";
+ case degree {
+ leaf degree-number {
+ type leafref {
+ path "/org-openroadm-device/degree/degree-number";
+ }
+ mandatory true;
+ description
+ "The degree-number defined in degree";
+ }
+ }
+ case amp {
+ leaf amp-number {
+ type leafref {
+ path "/org-openroadm-device/line-amplifier/amp-number";
+ }
+ mandatory true;
+ description
+ "The amp-number defined in line-amplifier";
+ }
+ }
+ }
+ leaf port-direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ }
+ leaf distance {
+ type uint32;
+ }
+ leaf resolution {
+ type uint32;
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ rpc set-current-datetime {
+ description
+ "Set the info/current-datetime leaf to the specified value.";
+ input {
+ leaf current-datetime {
+ type ietf-yang-types:date-and-time;
+ mandatory true;
+ description
+ "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ notification create-tech-info-notification {
+ description
+ "This Notification is sent when the create-tech-info is complete or failed.";
+ uses create-tech-info-group;
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ notification otdr-scan-result {
+ description
+ "This Notification is sent when the otdr-scan-result is complete or failed.";
+ uses org-openroadm-common-types:rpc-response-status;
+ leaf result-file {
+ type string;
+ }
+ }
+ notification change-notification {
+ description
+ "The Notification that a resource has been added, modified or removed.
+ This notification can be triggered by changes in configuration and operational data.
+ It shall contain the changed field pointed by the xpath.
+ Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
+ leaf change-time {
+ type ietf-yang-types:date-and-time;
+ description
+ "The time the change occurs.";
+ }
+ uses changed-by-parms;
+ leaf datastore {
+ type enumeration {
+ enum running {
+ description
+ "The <running> datastore has changed.";
+ }
+ enum startup {
+ description
+ "The <startup> datastore has changed";
+ }
+ }
+ default "running";
+ description
+ "Indicates which configuration datastore has changed.";
+ }
+ list edit {
+ description
+ "An edit (change) record SHOULD be present for each distinct
+ edit operation that the server has detected on
+ the target datastore. This list MAY be omitted
+ if the detailed edit operations are not known.
+ The server MAY report entries in this list for
+ changes not made by a NETCONF session.";
+ leaf target {
+ type instance-identifier;
+ description
+ "Top most node associated with the configuration or operational change.
+ A server SHOULD set this object to the node within
+ the datastore that is being altered. A server MAY
+ set this object to one of the ancestors of the actual
+ node that was changed, or omit this object, if the
+ exact node is not known.";
+ }
+ leaf operation {
+ type ietf-nc:edit-operation-type;
+ description
+ "Type of edit operation performed.
+ A server MUST set this object to the NETCONF edit
+ operation performed on the target datastore.";
+ }
+ }
+ }
+ // uses org-openroadm-device-container-g;
+} \ No newline at end of file
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang
new file mode 100644
index 000000000..ccfca1972
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang
@@ -0,0 +1,147 @@
+module org-openroadm-equipment-states-types {
+ namespace "http://org/openroadm/equipment/states/types";
+ prefix org-openroadm-equipment-states-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions for types of states of equipment (slot/subslot).
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ typedef admin-states {
+ type enumeration {
+ enum inService {
+ value 1;
+ }
+ enum outOfService {
+ value 2;
+ }
+ enum maintenance {
+ value 3;
+ }
+ }
+ }
+
+ typedef states {
+ type enumeration {
+ enum reserved-for-facility-planned {
+ value 1;
+ description
+ "equipment is planned for use by a service";
+ }
+ enum not-reserved-planned {
+ value 2;
+ description
+ "equipment is planned by not reserved for any purpose";
+ }
+ enum reserved-for-maintenance-planned {
+ value 3;
+ description
+ "equipment is planned for use as a maintenance spare";
+ }
+ enum reserved-for-facility-unvalidated {
+ value 4;
+ description
+ "equipment is reserved for use by a service but not
+ validated against planned equipment";
+ }
+ enum not-reserved-unvalidated {
+ value 5;
+ description
+ "equipment is not reserved for any purpose and
+ not validated against planned equipment";
+ }
+ enum unknown-unvalidated {
+ value 6;
+ description
+ "unknown equipment not validated against planned equipment";
+ }
+ enum reserved-for-maintenance-unvalidated {
+ value 7;
+ description
+ "equipment is to be used for use as a maintenance spare
+ but not validated against planned equipment";
+ }
+ enum reserved-for-facility-available {
+ value 8;
+ description
+ "reserved for use by a service and available";
+ }
+ enum not-reserved-available {
+ value 9;
+ description
+ "not reserved for use by a service and available";
+ }
+ enum reserved-for-maintenance-available {
+ value 10;
+ description
+ "reserved as a maintenance spare and available";
+ }
+ enum reserved-for-reversion-inuse {
+ value 11;
+ description
+ "equipment that is reserved as part of a home path
+ for a service that has been temporarily re-routed";
+ }
+ enum not-reserved-inuse {
+ value 12;
+ description
+ "equipment in use for a service";
+ }
+ enum reserved-for-maintenance-inuse {
+ value 13;
+ description
+ "maintenance spare equipment that is in use as a
+ maintenance spare";
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-interfaces.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-interfaces.yang
new file mode 100644
index 000000000..618c1e51b
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-interfaces.yang
@@ -0,0 +1,181 @@
+module org-openroadm-interfaces {
+ namespace "http://org/openroadm/interfaces";
+ prefix openROADM-if;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions for device facility interfaces.
+ Reused ietf-interfaces and some interface-type defined in iana-if-type.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ Also contains code components extracted from IETF Interfaces. These code components
+ are copyrighted and licensed as follows:
+
+ Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
+ All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
+ to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents carefully, as they
+ describe your rights and restrictions with respect to this document. Code Components
+ extracted from this document must include Simplified BSD License text as described in
+ Section 4.e of the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ identity interface-type {
+ description
+ "Base identity from which specific interface types are
+ derived.";
+ }
+
+ identity ethernetCsmacd {
+ base interface-type;
+ description
+ "For all Ethernet-like interfaces, regardless of speed,
+ as per RFC 3635.";
+ reference
+ "RFC 3635 - Definitions of Managed Objects for the
+ Ethernet-like Interface Types";
+ }
+
+ identity ip {
+ base interface-type;
+ description
+ "IP (for APPN HPR in IP networks).";
+ }
+
+ identity mediaChannelTrailTerminationPoint {
+ base interface-type;
+ description
+ "Media Channel Trail Termination Point";
+ }
+
+ identity networkMediaChannelConnectionTerminationPoint {
+ base interface-type;
+ description
+ "Network Media Channel Connection Termination Point";
+ }
+
+ identity opticalChannel {
+ base interface-type;
+ description
+ "Optical Channel.";
+ }
+
+ identity opticalTransport {
+ base interface-type;
+ description
+ "Optical Transport.";
+ }
+
+ identity otnOdu {
+ base interface-type;
+ description
+ "OTN Optical Data Unit.";
+ }
+
+ identity otnOtu {
+ base interface-type;
+ description
+ "OTN Optical channel Transport Unit.";
+ }
+
+ identity otsi {
+ base interface-type;
+ description
+ "OTSI interface.";
+ }
+
+ identity otsi-group {
+ base interface-type;
+ description
+ "OTSI Group interface.";
+ }
+
+ identity flexo {
+ base interface-type;
+ description
+ "Flexo interface.";
+ }
+
+ identity flexo-group {
+ base interface-type;
+ description
+ "Flexo Group interface.";
+ }
+
+ identity openROADMOpticalMultiplex {
+ base interface-type;
+ description
+ "Optical Transport Multiplex type for openROADM";
+ }
+
+ identity ppp {
+ base interface-type;
+ description
+ "PPP for IP GNE.";
+ }
+
+ identity gcc {
+ base interface-type;
+ description
+ "ITU-T G.709 GCC.";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang
new file mode 100644
index 000000000..69b9e9d38
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang
@@ -0,0 +1,343 @@
+module org-openroadm-otn-common-types {
+ namespace "http://org/openroadm/otn-common-types";
+ prefix org-openroadm-otn-common-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions for common otn related type definitions.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+ Also contains code components extracted from IETF Interfaces. These code components
+ are copyrighted and licensed as follows:
+
+ Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
+ All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
+ to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents carefully, as they
+ describe your rights and restrictions with respect to this document. Code Components
+ extracted from this document must include Simplified BSD License text as described in
+ Section 4.e of the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+
+ identity otu-rate-identity {
+ description
+ "A unique rate identification of the OTU.";
+ }
+
+ identity OTUCn {
+ base otu-rate-identity;
+ description
+ "Identity for an OTUCn";
+ }
+
+ identity OTU4 {
+ base otu-rate-identity;
+ description
+ "Identity for an OTU4";
+ }
+
+ identity OTU3 {
+ base otu-rate-identity;
+ description
+ "Identity for an OTU3";
+ }
+
+ identity OTU2 {
+ base otu-rate-identity;
+ description
+ "Identity for an OTU2";
+ }
+
+ identity OTU2e {
+ base otu-rate-identity;
+ description
+ "Identity for an OTU2e";
+ }
+
+ identity OTU1 {
+ base otu-rate-identity;
+ description
+ "Identity for an OTU1";
+ }
+
+ identity OTU0 {
+ base otu-rate-identity;
+ description
+ "Identity for an OTU0";
+ }
+
+ identity OTUflex {
+ base otu-rate-identity;
+ description
+ "Identity for an OTUflex";
+ }
+
+ identity odu-rate-identity {
+ description
+ "A unique rate identification of the ODU.";
+ }
+
+ identity ODUCn {
+ base odu-rate-identity;
+ description
+ "Identity for an ODUCn";
+ }
+
+ identity ODU4 {
+ base odu-rate-identity;
+ description
+ "Identity for an ODU4";
+ }
+
+ identity ODU3 {
+ base odu-rate-identity;
+ description
+ "Identity for an ODU3";
+ }
+
+ identity ODU2 {
+ base odu-rate-identity;
+ description
+ "Identity for an ODU2";
+ }
+
+ identity ODU2e {
+ base odu-rate-identity;
+ description
+ "Identity for an ODU2e";
+ }
+
+ identity ODU1 {
+ base odu-rate-identity;
+ description
+ "Identity for an ODU1";
+ }
+
+ identity ODU0 {
+ base odu-rate-identity;
+ description
+ "Identity for an ODU0";
+ }
+
+ identity ODUflex-cbr {
+ base odu-rate-identity;
+ description
+ "ODUFlex for CBR client signals (G.709)";
+ }
+
+ identity ODUflex-cbr-25G {
+ base odu-rate-identity;
+ description
+ "ODUFlex for CBR client signals 25G (G.709 17.13.1)";
+ }
+
+ identity ODUflex-cbr-200G {
+ base odu-rate-identity;
+ description
+ "ODUFlex for CBR client signals 200G (G.709 17.13.2)";
+ }
+
+ identity ODUflex-cbr-400G {
+ base odu-rate-identity;
+ description
+ "ODUFlex for CBR client signals 400G (G.709 17.13.2)";
+ }
+
+ identity ODUflex-imp {
+ base odu-rate-identity;
+ description
+ "ODUFlex for IMP (Idle insertion Mapping Procedure) mapped client signals (G.709)";
+ }
+
+ identity ODUflex-flexe {
+ base odu-rate-identity;
+ description
+ "ODUflex for FlexE-aware client signals (G.709)";
+ }
+
+ identity ODUflex-gfp {
+ base odu-rate-identity;
+ description
+ "ODUflex for GFP-F mapped client signals (G.709)";
+ }
+
+ identity odtu-type-identity {
+ description
+ "A unique identification for the MSI odtu type.";
+ }
+
+ identity ODTUCn.ts {
+ base odtu-type-identity;
+ description
+ "ODTUCn.ts - OPUCn MSI type (G.709 clause 20.2)";
+ }
+
+ identity ODTU4.ts-Allocated {
+ base odtu-type-identity;
+ description
+ "OPU4 MSI - ODTU4.ts, OPU4 MSI TS is occupied/allocated.
+ Applies to all ODTU4.x mappings";
+ }
+
+ identity ODTU01 {
+ base odtu-type-identity;
+ description
+ "ODTU01 MSI type";
+ }
+
+ identity ODTU12 {
+ base odtu-type-identity;
+ description
+ "ODTU12 MSI type";
+ }
+
+ identity ODTU13 {
+ base odtu-type-identity;
+ description
+ "ODTU13 MSI type";
+ }
+
+ identity ODTU23 {
+ base odtu-type-identity;
+ description
+ "ODTU23 MSI type";
+ }
+
+ identity ODTU2.ts {
+ base odtu-type-identity;
+ description
+ "ODTU2.ts MSI type";
+ }
+
+ identity ODTU3.ts {
+ base odtu-type-identity;
+ description
+ "ODTU3.ts MSI type";
+ }
+
+ identity ODTU4.ts {
+ base odtu-type-identity;
+ description
+ "ODTU4.ts MSI type";
+ }
+
+ identity unallocated {
+ base odtu-type-identity;
+ description
+ "Unallocated MSI type";
+ }
+
+ identity odu-function-identity {
+ description
+ "A unique identification of the ODUk interface function.";
+ }
+
+ identity ODU-TTP {
+ base odu-function-identity;
+ description
+ "ODU TTP facility facing trail termination";
+ }
+
+ identity ODU-CTP {
+ base odu-function-identity;
+ description
+ "ODU CTP connection termination";
+ }
+
+ identity ODU-TTP-CTP {
+ base odu-function-identity;
+ description
+ "ODU CTP mapper level connection termination with trail termination and client adaptation";
+ }
+
+ typedef payload-type-def {
+ type string {
+ length "2";
+ pattern '[0-9a-fA-F]*';
+ }
+ description
+ "Common type definition for odu payload-type";
+ }
+
+ typedef opucn-trib-slot-def {
+ type string;
+ description
+ "OPUCn trib slot in the form of 'A.B' with
+ A = 1..n
+ B = 1..20";
+ }
+
+ typedef tcm-direction-enum {
+ type enumeration {
+ enum up-tcm {
+ description
+ "TCM termination direction faces the switch fabric.";
+ }
+ enum down-tcm {
+ description
+ "TCM termination direction faces the facility";
+ }
+ }
+ description
+ "Enumeration type for TCM direction";
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-physical-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-physical-types.yang
new file mode 100644
index 000000000..236093707
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-physical-types.yang
@@ -0,0 +1,153 @@
+module org-openroadm-physical-types {
+ namespace "http://org/openroadm/physical/types";
+ prefix org-openroadm-physical-types;
+
+ import org-openroadm-common-state-types {
+ prefix org-openroadm-common-state-types;
+ revision-date 2019-11-29;
+ }
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of physical types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ grouping node-info {
+ description
+ "Physical inventory data used by the node";
+ leaf vendor {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "Vendor of the equipment";
+ }
+ leaf model {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "Physical resource model information.";
+ }
+ leaf serial-id {
+ type string;
+ config false;
+ mandatory true;
+ description
+ "Product Code for this physical resource";
+ }
+ }
+
+ grouping common-info {
+ description
+ "Physical inventory data used by all other entities";
+ uses node-info;
+ leaf type {
+ type string;
+ config false;
+ description
+ "The specific type of this physical resource - ie the type of
+ shelf, type of circuit-pack, etc.";
+ }
+ leaf product-code {
+ type string;
+ config false;
+ description
+ "Product Code for this physical resource";
+ }
+ leaf manufacture-date {
+ type yang:date-and-time;
+ config false;
+ description
+ "Manufacture date of physical resource";
+ }
+ leaf clei {
+ type string;
+ config false;
+ description
+ "CLEI for this physical resource";
+ }
+ leaf hardware-version {
+ type string;
+ config false;
+ description
+ "The version of the hardware.";
+ }
+ leaf operational-state {
+ type org-openroadm-common-state-types:state;
+ config false;
+ mandatory true;
+ description
+ "Operational state of the physical resource";
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-pm.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-pm.yang
new file mode 100644
index 000000000..2cebbb477
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-pm.yang
@@ -0,0 +1,350 @@
+module org-openroadm-pm {
+ namespace "http://org/openroadm/pm";
+ prefix org-openroadm-pm;
+
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+ import org-openroadm-common-types {
+ prefix org-openroadm-common-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-alarm-pm-types {
+ prefix org-openroadm-common-alarm-pm-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-resource {
+ prefix org-openroadm-resource;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-resource-types {
+ prefix org-openroadm-resource-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-pm-types {
+ prefix org-openroadm-pm-types;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of performance management.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-05-30 {
+ description
+ "Version 3.1.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ feature historical-pm-retrieval {
+ description
+ "The device supports the ability to directly retrieve the historical
+ PM data from the YANG model.";
+ }
+
+ grouping current-pm-group {
+ description
+ "PM Data with current values - both realtime (granularity=notApplicable)
+ and binned (granularity=15 minute, 24h))";
+ leaf pm-resource-instance {
+ type instance-identifier;
+ config false;
+ mandatory true;
+ description
+ "Retrieves all PM associate with the resource instance";
+ }
+ leaf pm-resource-type {
+ type org-openroadm-resource-types:resource-type-enum;
+ config false;
+ mandatory true;
+ description
+ "The supported pm-resource-type associated with the given resource instance.";
+ }
+ leaf pm-resource-type-extension {
+ type string;
+ config false;
+ description
+ "The resource type extension when the type is not defined in the resource-type-enum.";
+ }
+ leaf start-time {
+ type yang:date-and-time;
+ config false;
+ mandatory true;
+ description
+ "Represents the start time of the bin (15m, 24h granularity) or the start of data collection (notApplicable/untimed granularity).";
+ }
+ leaf retrieval-time {
+ type yang:date-and-time;
+ config false;
+ mandatory true;
+ description
+ "Represents the time when the data is being read, not the bin start or end time.";
+ }
+ list current-pm {
+ key "type extension location direction";
+ config false;
+ uses current-pm-val-group;
+ }
+ }
+
+ grouping current-pm-val-group {
+ uses org-openroadm-pm-types:pm-names;
+ leaf location {
+ type org-openroadm-common-alarm-pm-types:location;
+ }
+ leaf direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ }
+ list measurement {
+ key "granularity";
+ leaf granularity {
+ type org-openroadm-pm-types:pm-granularity;
+ }
+ uses org-openroadm-pm-types:pm-measurement;
+ }
+ }
+
+ grouping historical-pm-group {
+ description
+ "PM Data with historical values - binned (granularity=15 minute, 24h))";
+ leaf pm-resource-instance {
+ type instance-identifier;
+ config false;
+ mandatory true;
+ description
+ "Retrieves all PM associate with the resource instance";
+ }
+ leaf pm-resource-type {
+ type org-openroadm-resource-types:resource-type-enum;
+ config false;
+ mandatory true;
+ }
+ leaf pm-resource-type-extension {
+ type string;
+ config false;
+ description
+ "The resource type extension when the type is not defined in the resource-type-enum.";
+ }
+ list historical-pm {
+ key "type extension location direction";
+ uses historical-pm-val-group;
+ }
+ }
+
+ grouping historical-pm-val-group {
+ description
+ "PM Data with historical values";
+ uses org-openroadm-pm-types:pm-names;
+ leaf location {
+ type org-openroadm-common-alarm-pm-types:location;
+ }
+ leaf direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ }
+ list measurement {
+ key "granularity bin-number";
+ leaf granularity {
+ type org-openroadm-pm-types:pm-granularity;
+ mandatory true;
+ }
+ leaf bin-number {
+ type uint16 {
+ range "1..max";
+ }
+ config false;
+ mandatory true;
+ }
+ uses org-openroadm-pm-types:pm-measurement;
+ leaf completion-time {
+ type yang:date-and-time;
+ config false;
+ mandatory true;
+ description
+ "The time at the end of the period; For example if bin starts at
+ 01:15:00 and ends at 01:29:59, the completion-time is 01:29:59";
+ }
+ }
+ }
+
+ grouping collect-history-pm-group {
+ leaf pm-filename {
+ type string {
+ length "10..255";
+ }
+ mandatory true;
+ description
+ "The file name to write the historical PM data.
+ The controller should be able to use this name to retrieve the file via ftp/sftp.
+ The file name should be unique for each RPC request since a new RPC request
+ could be initiated while the file transfer of the previous file is still in progress.
+
+ The file content should be written in xml format based on the historical-pm-list
+ yang definition and the file should be gzip compressed.";
+ }
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+
+ rpc clear-pm {
+ description
+ "Command to initialize PM data";
+ input {
+ uses org-openroadm-resource:resource;
+ leaf pm-type {
+ type enumeration {
+ enum current {
+ value 1;
+ }
+ enum all {
+ value 2;
+ }
+ }
+ default "current";
+ }
+ leaf granularity {
+ type org-openroadm-pm-types:pm-granularity;
+ default "15min";
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ rpc collect-historical-pm-file {
+ description
+ "Command to query historical PM data.
+ The device should be able to process an rpc request for 15min data
+ and a separate request for 24hour data in parallel.";
+ input {
+ leaf from-bin-number {
+ type uint16 {
+ range "1..max";
+ }
+ default "1";
+ description
+ "The start bin-number of the range";
+ }
+ leaf to-bin-number {
+ type uint16 {
+ range "1..max";
+ }
+ default "1";
+ description
+ "The end bin-number of the range";
+ }
+ leaf granularity {
+ type org-openroadm-pm-types:pm-granularity;
+ default "15min";
+ description
+ "The granularity of the retrieve, default to 15 minutes PM";
+ }
+ }
+ output {
+ uses collect-history-pm-group;
+ }
+ }
+ notification historical-pm-collect-result {
+ description
+ "This Notification is sent when the pm collection is successful or failed.";
+ uses collect-history-pm-group;
+ }
+ container current-pm-list {
+ config false;
+ description
+ "List of current PMs.";
+ list current-pm-entry {
+ key "pm-resource-type pm-resource-type-extension pm-resource-instance";
+ description
+ "List of current PM entries";
+ uses current-pm-group;
+ }
+ }
+ container historical-pm-list {
+ if-feature "historical-pm-retrieval";
+ config false;
+ description
+ "List of historical PM";
+ list historical-pm-entry {
+ key "pm-resource-type pm-resource-type-extension pm-resource-instance";
+ description
+ "List of historical PM entries";
+ uses historical-pm-group;
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-port-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-port-types.yang
new file mode 100644
index 000000000..2fed53821
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-port-types.yang
@@ -0,0 +1,420 @@
+module org-openroadm-port-types {
+ namespace "http://org/openroadm/port/types";
+ prefix org-openroadm-port-types;
+
+ import org-openroadm-common-link-types {
+ prefix org-openroadm-common-link-types;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions for port types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ identity supported-if-capability {
+ description
+ "Base identity from which specific supported interfaces are derived";
+ }
+
+ identity if-100GE {
+ base supported-if-capability;
+ }
+
+ identity if-OMS {
+ base supported-if-capability;
+ }
+
+ identity if-OTS {
+ base supported-if-capability;
+ }
+
+ identity if-OTS-OMS-MC-NMC {
+ base supported-if-capability;
+ }
+
+ identity if-NMC {
+ base supported-if-capability;
+ }
+
+ identity if-OCH {
+ base supported-if-capability;
+ }
+
+ identity if-1GE {
+ base supported-if-capability;
+ }
+
+ identity if-10GE {
+ base supported-if-capability;
+ }
+
+ identity if-40GE {
+ base supported-if-capability;
+ }
+
+ identity if-OCH-OTU1-ODU1 {
+ base supported-if-capability;
+ }
+
+ identity if-OCH-OTU2-ODU2 {
+ base supported-if-capability;
+ }
+
+ identity if-OCH-OTU2E-ODU2E {
+ base supported-if-capability;
+ }
+
+ identity if-OCH-OTU3-ODU3 {
+ base supported-if-capability;
+ }
+
+ identity if-OCH-OTU4-ODU4 {
+ base supported-if-capability;
+ }
+
+ identity if-OTUCn-ODUCn {
+ base supported-if-capability;
+ }
+
+ identity if-otsi-flexo-flexogroup {
+ base supported-if-capability;
+ }
+
+ identity if-otsi-otsigroup {
+ base supported-if-capability;
+ }
+
+ identity if-n-OTU4-ODU4 {
+ base supported-if-capability;
+ }
+
+ identity if-otsi-otucn-oducn {
+ base supported-if-capability;
+ status deprecated;
+ }
+
+ identity if-OTU4-ODU4 {
+ base supported-if-capability;
+ }
+
+ identity if-OTU1-ODU1 {
+ base supported-if-capability;
+ }
+
+ identity if-OTU2-ODU2 {
+ base supported-if-capability;
+ }
+
+ identity if-OTU2e-ODU2e {
+ base supported-if-capability;
+ }
+
+ identity if-OTU3-ODU3 {
+ base supported-if-capability;
+ }
+
+ identity if-1GE-ODU0 {
+ base supported-if-capability;
+ }
+
+ identity if-10GE-ODU2 {
+ base supported-if-capability;
+ }
+
+ identity if-10GE-ODU2e {
+ base supported-if-capability;
+ }
+
+ identity if-10GE-oduflexgfp {
+ base supported-if-capability;
+ }
+
+ identity if-25GE-oduflexcbr {
+ base supported-if-capability;
+ }
+
+ identity if-40GE-ODU3 {
+ base supported-if-capability;
+ }
+
+ identity if-40GE-oduflexgfp {
+ base supported-if-capability;
+ }
+
+ identity if-100GE-ODU4 {
+ base supported-if-capability;
+ }
+
+ identity if-100GE-oduflexgfp {
+ base supported-if-capability;
+ }
+
+ identity if-200GE-oduflexcbr {
+ base supported-if-capability;
+ }
+
+ identity if-400GE-odufleximp {
+ base supported-if-capability;
+ }
+
+ identity if-400GE-oduflexcbr {
+ base supported-if-capability;
+ }
+
+ identity supported-xpdr-capability {
+ description
+ "Base identity from which specific supported xponder are derived";
+ }
+
+ identity Transponder {
+ base supported-xpdr-capability;
+ }
+
+ identity Regen {
+ base supported-xpdr-capability;
+ }
+
+ identity pluggable-identifiers-identity {
+ description
+ "Pluggable identifiers type";
+ }
+
+ identity SFP {
+ base pluggable-identifiers-identity;
+ }
+
+ identity SFP-plus {
+ base pluggable-identifiers-identity;
+ }
+
+ identity SFP28 {
+ base pluggable-identifiers-identity;
+ }
+
+ identity SFP-DD {
+ base pluggable-identifiers-identity;
+ }
+
+ identity DWDM-SFP {
+ base pluggable-identifiers-identity;
+ }
+
+ identity DWDM-SFP-plus {
+ base pluggable-identifiers-identity;
+ }
+
+ identity QSFP {
+ base pluggable-identifiers-identity;
+ }
+
+ identity QSFP-plus {
+ base pluggable-identifiers-identity;
+ }
+
+ identity QSFP28 {
+ base pluggable-identifiers-identity;
+ }
+
+ identity QSFP28-DD {
+ base pluggable-identifiers-identity;
+ }
+
+ identity QSFP-DD {
+ base pluggable-identifiers-identity;
+ }
+
+ identity micro-QSFP {
+ base pluggable-identifiers-identity;
+ }
+
+ identity OSFP {
+ base pluggable-identifiers-identity;
+ }
+
+ identity CFP {
+ base pluggable-identifiers-identity;
+ }
+
+ identity CFP2 {
+ base pluggable-identifiers-identity;
+ }
+
+ identity CFP4 {
+ base pluggable-identifiers-identity;
+ }
+
+ identity CFP8 {
+ base pluggable-identifiers-identity;
+ }
+
+ identity CFP2-ACO {
+ base pluggable-identifiers-identity;
+ }
+
+ identity CFP2-DCO {
+ base pluggable-identifiers-identity;
+ }
+
+ identity XFP {
+ base pluggable-identifiers-identity;
+ }
+
+ identity SFP56 {
+ base pluggable-identifiers-identity;
+ }
+
+ identity QSFP56 {
+ base pluggable-identifiers-identity;
+ }
+
+ identity QSFP56-DD {
+ base pluggable-identifiers-identity;
+ }
+
+ identity SFP-other {
+ base pluggable-identifiers-identity;
+ }
+
+ identity SFP-unspecified {
+ base pluggable-identifiers-identity;
+ }
+
+ typedef port-wavelength-types {
+ type enumeration {
+ enum wavelength {
+ value 1;
+ description
+ "Port on a transponder or ROADM SRG add drop";
+ }
+ enum multi-wavelength {
+ value 2;
+ description
+ "External port connecting to other roadm.";
+ }
+ }
+ description
+ "Port types.";
+ }
+
+ typedef port-module-types {
+ type enumeration {
+ enum 100GBASE-LR4 {
+ value 1;
+ }
+ enum CWDM-4 {
+ value 2;
+ }
+ }
+ description
+ "Pluggable modue types.";
+ }
+
+ grouping common-port {
+ leaf port-power-capability-min-rx {
+ type org-openroadm-common-link-types:power-dBm;
+ config false;
+ description
+ "Based on port capabilities, the minimum power in the system spec for this port to
+ provide optimum function in rx direction";
+ }
+ leaf port-power-capability-min-tx {
+ type org-openroadm-common-link-types:power-dBm;
+ config false;
+ description
+ "Based on port capabilities, the minimum power in the system spec for this port to
+ provide optimum function in tx direction.";
+ }
+ leaf port-power-capability-max-rx {
+ type org-openroadm-common-link-types:power-dBm;
+ config false;
+ description
+ "Based on port capabilities, the maximum power in the system spec for this port to
+ provide optimum function in rx direction.";
+ }
+ leaf port-power-capability-max-tx {
+ type org-openroadm-common-link-types:power-dBm;
+ config false;
+ description
+ "Based on port capabilities, the maximum power in the system spec for this port to
+ provide optimum function in tx direction.";
+ }
+ }
+
+ grouping roadm-port {
+ uses common-port;
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang
new file mode 100644
index 000000000..4b752c8e5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang
@@ -0,0 +1,843 @@
+module org-openroadm-probable-cause {
+ namespace "http://org/openroadm/probableCause";
+ prefix org-openroadm-probable-cause;
+
+ import org-openroadm-common-alarm-pm-types {
+ prefix org-openroadm-common-alarm-pm-types;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of Probable Causes.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ typedef probable-cause-enum {
+ type enumeration {
+ enum vendorExtension {
+ value 1;
+ description
+ "vendorExtension";
+ }
+ enum openConnectionIndication {
+ value 2;
+ description
+ "Open connection indication (OCI)";
+ reference "G.798";
+ }
+ enum alarmIndicationSignal {
+ value 3;
+ description
+ "Alarm indication signal";
+ reference "G.798";
+ }
+ enum lossOfSignal {
+ value 4;
+ description
+ "Loss of Signal";
+ }
+ enum opticalLineFail {
+ value 5;
+ description
+ "Optical Line Fail";
+ }
+ enum opticalPowerDegraded {
+ value 6;
+ description
+ "Optical Power Degraded";
+ }
+ enum automaticLaserShutdown {
+ value 7;
+ description
+ "Automatic Laser Shutdown";
+ }
+ enum serverSignalFail {
+ value 8;
+ description
+ "Server Signal Fail (SSF)";
+ reference "G.798";
+ }
+ enum lockedDefect {
+ value 10;
+ description
+ "Locked defect (LCK)";
+ reference "G.798";
+ }
+ enum trailTraceIdentifierMismatch {
+ value 11;
+ description
+ "Trail trace Identifier Mismatch (TIM)";
+ reference "G.798";
+ }
+ enum degradedDefect {
+ value 12;
+ description
+ "Degraded defect (DEG)";
+ reference "G.798";
+ }
+ enum backwardsDefectIndication {
+ value 13;
+ description
+ "Backward Defect Indication (BDI)";
+ reference "G.798";
+ }
+ enum otsSpanlossPowerOutOfSpecificationHigh {
+ value 14;
+ }
+ enum automaticShutoffDisabled {
+ value 15;
+ }
+ enum portLossOfLight {
+ value 17;
+ }
+ enum reflectionTooHigh {
+ value 18;
+ }
+ enum payloadMissingIndication {
+ value 22;
+ description
+ "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
+ }
+ enum forwardDefectIndication {
+ value 23;
+ description
+ "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)";
+ }
+ enum oscPowerOutOfSpecificationHigh {
+ value 24;
+ }
+ enum oscPowerOutOfSpecificationLow {
+ value 25;
+ }
+ enum powerOutOfSpecificationHigh {
+ value 26;
+ }
+ enum lossOfSynchronization {
+ value 27;
+ }
+ enum linkDown {
+ value 28;
+ }
+ enum equipmentFault {
+ value 29;
+ }
+ enum equipmentRemoved {
+ value 30;
+ }
+ enum equipmentMismatch {
+ value 31;
+ }
+ enum equipmentWarmup {
+ value 32;
+ }
+ enum equipmentLedOn {
+ value 33;
+ }
+ enum equipmentInterConnectFailure {
+ value 34;
+ }
+ enum equipmentMiscabledConnection {
+ value 35;
+ }
+ enum softwareVersionMismatch {
+ value 36;
+ }
+ enum softwareStageInProgress {
+ value 37;
+ }
+ enum databaseCorruption {
+ value 38;
+ }
+ enum databaseVersionMismatch {
+ value 44;
+ }
+ enum firmwareVersionMismatch {
+ value 46;
+ }
+ enum incompatibleFirmware {
+ value 49;
+ }
+ enum firmwareDownloadOrActivationFailure {
+ value 50;
+ }
+ enum firmwareInitInProgress {
+ value 51;
+ }
+ enum softwareReset {
+ value 52;
+ }
+ enum fanCoolingFail {
+ value 53;
+ }
+ enum administrativeDown {
+ value 54;
+ }
+ enum lampTest {
+ value 55;
+ }
+ enum powerProblemA {
+ value 56;
+ }
+ enum powerProblemB {
+ value 57;
+ }
+ enum shelfProvisioningMode {
+ value 58;
+ }
+ enum sysNameChanged {
+ value 59;
+ }
+ enum sysNtpNotSynchronized {
+ value 60;
+ }
+ enum lossOfFrame {
+ value 63;
+ }
+ enum lossOfMultiframe {
+ value 64;
+ }
+ enum backwardIncomingAlignmentError {
+ value 65;
+ }
+ enum incomingAlignmentError {
+ value 66;
+ }
+ enum payloadMismatch {
+ value 67;
+ }
+ enum clientSignalFailDefect {
+ value 68;
+ }
+ enum highBER {
+ value 123;
+ }
+ enum localFault {
+ value 124;
+ }
+ enum remoteFault {
+ value 125;
+ }
+ enum lossOfAlignment {
+ value 126;
+ }
+ enum lossOfFECAlignment {
+ value 127;
+ }
+ enum facilityLoopbackActive {
+ value 128;
+ }
+ enum facilityLoopback2Active {
+ value 129;
+ }
+ enum terminalLoopbackActive {
+ value 130;
+ }
+ enum facilityTestsignalActive {
+ value 131;
+ }
+ enum terminalTestsignalActive {
+ value 132;
+ }
+ enum certificateNotInstalled {
+ value 134;
+ }
+ enum lockoutOfProtection {
+ value 135;
+ }
+ enum forcedSwitchAwayFromWorking {
+ value 136;
+ }
+ enum forcedSwitchAwayFromProtect {
+ value 137;
+ }
+ enum automaticSwitchAwayFromWorkingDueToSF {
+ value 138;
+ }
+ enum automaticSwitchAwayFromProtectDueToSF {
+ value 139;
+ }
+ enum automaticSwitchDueToWTR {
+ value 140;
+ }
+ enum manualSwitchAwayFromWork {
+ value 141;
+ }
+ enum manualSwitchAwayFromProtect {
+ value 142;
+ }
+ enum automaticPowerReduction {
+ value 143;
+ }
+ enum lossOfSignalOSC {
+ value 144;
+ }
+ enum softwareValidateInProgress {
+ value 145;
+ }
+ enum databaseRollbackTimerInProgress {
+ value 146;
+ }
+ enum otdrScanInProgress {
+ value 147;
+ }
+ enum lldpFail {
+ value 148;
+ }
+ enum omsPowerOutOfSpecificationHigh {
+ value 149;
+ }
+ enum omsPowerOutOfSpecificationLow {
+ value 150;
+ }
+ enum automaticSwitchAwayFromWorkingDueToSD {
+ value 151;
+ }
+ enum automaticSwitchAwayFromProtectDueToSD {
+ value 152;
+ }
+ enum backwardIncomingAlignmentErrorTCM1-up {
+ value 153;
+ }
+ enum backwardIncomingAlignmentErrorTCM2-up {
+ value 154;
+ }
+ enum backwardIncomingAlignmentErrorTCM3-up {
+ value 155;
+ }
+ enum backwardIncomingAlignmentErrorTCM4-up {
+ value 156;
+ }
+ enum backwardIncomingAlignmentErrorTCM5-up {
+ value 157;
+ }
+ enum backwardIncomingAlignmentErrorTCM6-up {
+ value 158;
+ }
+ enum incomingAlignmentErrorTCM1-up {
+ value 159;
+ }
+ enum incomingAlignmentErrorTCM2-up {
+ value 160;
+ }
+ enum incomingAlignmentErrorTCM3-up {
+ value 161;
+ }
+ enum incomingAlignmentErrorTCM4-up {
+ value 162;
+ }
+ enum incomingAlignmentErrorTCM5-up {
+ value 163;
+ }
+ enum incomingAlignmentErrorTCM6-up {
+ value 164;
+ }
+ enum backwardsDefectIndicationTCM1-up {
+ value 165;
+ }
+ enum backwardsDefectIndicationTCM2-up {
+ value 166;
+ }
+ enum backwardsDefectIndicationTCM3-up {
+ value 167;
+ }
+ enum backwardsDefectIndicationTCM4-up {
+ value 168;
+ }
+ enum backwardsDefectIndicationTCM5-up {
+ value 169;
+ }
+ enum backwardsDefectIndicationTCM6-up {
+ value 170;
+ }
+ enum degradedDefectTCM1-up {
+ value 171;
+ }
+ enum degradedDefectTCM2-up {
+ value 172;
+ }
+ enum degradedDefectTCM3-up {
+ value 173;
+ }
+ enum degradedDefectTCM4-up {
+ value 174;
+ }
+ enum degradedDefectTCM5-up {
+ value 175;
+ }
+ enum degradedDefectTCM6-up {
+ value 176;
+ }
+ enum trailTraceIdentifierMisMatchTCM1-up {
+ value 177;
+ }
+ enum trailTraceIdentifierMisMatchTCM2-up {
+ value 178;
+ }
+ enum trailTraceIdentifierMisMatchTCM3-up {
+ value 179;
+ }
+ enum trailTraceIdentifierMisMatchTCM4-up {
+ value 180;
+ }
+ enum trailTraceIdentifierMisMatchTCM5-up {
+ value 181;
+ }
+ enum trailTraceIdentifierMisMatchTCM6-up {
+ value 182;
+ }
+ enum alarmIndicationSignalTCM1-up {
+ value 183;
+ }
+ enum alarmIndicationSignalTCM2-up {
+ value 184;
+ }
+ enum alarmIndicationSignalTCM3-up {
+ value 185;
+ }
+ enum alarmIndicationSignalTCM4-up {
+ value 186;
+ }
+ enum alarmIndicationSignalTCM5-up {
+ value 187;
+ }
+ enum alarmIndicationSignalTCM6-up {
+ value 188;
+ }
+ enum openConnectionIndicationTCM1-up {
+ value 189;
+ }
+ enum openConnectionIndicationTCM2-up {
+ value 190;
+ }
+ enum openConnectionIndicationTCM3-up {
+ value 191;
+ }
+ enum openConnectionIndicationTCM4-up {
+ value 192;
+ }
+ enum openConnectionIndicationTCM5-up {
+ value 193;
+ }
+ enum openConnectionIndicationTCM6-up {
+ value 194;
+ }
+ enum lockedDefectTCM1-up {
+ value 195;
+ }
+ enum lockedDefectTCM2-up {
+ value 196;
+ }
+ enum lockedDefectTCM3-up {
+ value 197;
+ }
+ enum lockedDefectTCM4-up {
+ value 198;
+ }
+ enum lockedDefectTCM5-up {
+ value 199;
+ }
+ enum lockedDefectTCM6-up {
+ value 200;
+ }
+ enum lossofTandemConnectionTCM1-up {
+ value 201;
+ }
+ enum lossofTandemConnectionTCM2-up {
+ value 202;
+ }
+ enum lossofTandemConnectionTCM3-up {
+ value 203;
+ }
+ enum lossofTandemConnectionTCM4-up {
+ value 204;
+ }
+ enum lossofTandemConnectionTCM5-up {
+ value 205;
+ }
+ enum lossofTandemConnectionTCM6-up {
+ value 206;
+ }
+ enum backwardIncomingAlignmentErrorTCM1-down {
+ value 207;
+ }
+ enum backwardIncomingAlignmentErrorTCM2-down {
+ value 208;
+ }
+ enum backwardIncomingAlignmentErrorTCM3-down {
+ value 209;
+ }
+ enum backwardIncomingAlignmentErrorTCM4-down {
+ value 210;
+ }
+ enum backwardIncomingAlignmentErrorTCM5-down {
+ value 211;
+ }
+ enum backwardIncomingAlignmentErrorTCM6-down {
+ value 212;
+ }
+ enum incomingAlignmentErrorTCM1-down {
+ value 213;
+ }
+ enum incomingAlignmentErrorTCM2-down {
+ value 214;
+ }
+ enum incomingAlignmentErrorTCM3-down {
+ value 215;
+ }
+ enum incomingAlignmentErrorTCM4-down {
+ value 216;
+ }
+ enum incomingAlignmentErrorTCM5-down {
+ value 217;
+ }
+ enum incomingAlignmentErrorTCM6-down {
+ value 218;
+ }
+ enum backwardsDefectIndicationTCM1-down {
+ value 219;
+ }
+ enum backwardsDefectIndicationTCM2-down {
+ value 220;
+ }
+ enum backwardsDefectIndicationTCM3-down {
+ value 221;
+ }
+ enum backwardsDefectIndicationTCM4-down {
+ value 222;
+ }
+ enum backwardsDefectIndicationTCM5-down {
+ value 223;
+ }
+ enum backwardsDefectIndicationTCM6-down {
+ value 224;
+ }
+ enum degradedDefectTCM1-down {
+ value 225;
+ }
+ enum degradedDefectTCM2-down {
+ value 226;
+ }
+ enum degradedDefectTCM3-down {
+ value 227;
+ }
+ enum degradedDefectTCM4-down {
+ value 228;
+ }
+ enum degradedDefectTCM5-down {
+ value 229;
+ }
+ enum degradedDefectTCM6-down {
+ value 230;
+ }
+ enum trailTraceIdentifierMisMatchTCM1-down {
+ value 231;
+ }
+ enum trailTraceIdentifierMisMatchTCM2-down {
+ value 232;
+ }
+ enum trailTraceIdentifierMisMatchTCM3-down {
+ value 233;
+ }
+ enum trailTraceIdentifierMisMatchTCM4-down {
+ value 234;
+ }
+ enum trailTraceIdentifierMisMatchTCM5-down {
+ value 235;
+ }
+ enum trailTraceIdentifierMisMatchTCM6-down {
+ value 236;
+ }
+ enum alarmIndicationSignalTCM1-down {
+ value 237;
+ }
+ enum alarmIndicationSignalTCM2-down {
+ value 238;
+ }
+ enum alarmIndicationSignalTCM3-down {
+ value 239;
+ }
+ enum alarmIndicationSignalTCM4-down {
+ value 240;
+ }
+ enum alarmIndicationSignalTCM5-down {
+ value 241;
+ }
+ enum alarmIndicationSignalTCM6-down {
+ value 242;
+ }
+ enum openConnectionIndicationTCM1-down {
+ value 243;
+ }
+ enum openConnectionIndicationTCM2-down {
+ value 244;
+ }
+ enum openConnectionIndicationTCM3-down {
+ value 245;
+ }
+ enum openConnectionIndicationTCM4-down {
+ value 246;
+ }
+ enum openConnectionIndicationTCM5-down {
+ value 247;
+ }
+ enum openConnectionIndicationTCM6-down {
+ value 248;
+ }
+ enum lockedDefectTCM1-down {
+ value 249;
+ }
+ enum lockedDefectTCM2-down {
+ value 250;
+ }
+ enum lockedDefectTCM3-down {
+ value 251;
+ }
+ enum lockedDefectTCM4-down {
+ value 252;
+ }
+ enum lockedDefectTCM5-down {
+ value 253;
+ }
+ enum lockedDefectTCM6-down {
+ value 254;
+ }
+ enum lossofTandemConnectionTCM1-down {
+ value 255;
+ }
+ enum lossofTandemConnectionTCM2-down {
+ value 256;
+ }
+ enum lossofTandemConnectionTCM3-down {
+ value 257;
+ }
+ enum lossofTandemConnectionTCM4-down {
+ value 258;
+ }
+ enum lossofTandemConnectionTCM5-down {
+ value 259;
+ }
+ enum lossofTandemConnectionTCM6-down {
+ value 260;
+ }
+ enum multiplexStructureIdentifierMismatch {
+ value 261;
+ description
+ "G798 : 6.2.9 (dMSIM)";
+ }
+ enum lossOfOmfIndication {
+ value 262;
+ description
+ "G798 : 14.3.10.2 Figure 14-73 (dLOOMFI)";
+ }
+ enum lossOfFrameAndLossOfMultiframe {
+ value 263;
+ description
+ "G798 : 6.2.5.3 (dLOFLOM)";
+ }
+ enum lossOfDatabaseRedundancy {
+ value 264;
+ description
+ "loss of database redundancy";
+ }
+ enum databaseLocked {
+ value 265;
+ description
+ "Database locked";
+ }
+ enum createTechInfoInProgress {
+ value 266;
+ description
+ "create-tech-info in progress";
+ }
+ enum circuitPackActivateFailed {
+ value 267;
+ description
+ "circuit-pack activation failed";
+ }
+ enum softwareSubsystemFailed {
+ value 268;
+ description
+ "Software subsystem failed";
+ }
+ enum diskFull {
+ value 269;
+ description
+ "Disk full";
+ }
+ enum lossOfSignalPayload {
+ value 270;
+ description
+ "Loss Of Signal Payload";
+ reference "G.798 6.2.1.2 dLOS-P, 16.8.2 OTSi/FlexO_A_Sk";
+ }
+ enum lossOfLaneAlignment {
+ value 271;
+ description
+ "Loss Of Lane Alignment";
+ reference
+ "G.798 15.3.1.2 FlexO-n/OTUCn_A_Sk that dLOL if the alignment process is in OLA state;
+ 16.8.2 OTSi/FlexO_A_Sk that dLOL based on the FEC alignment state diagram";
+ }
+ enum groupIdMismatch {
+ value 272;
+ description
+ "Group Id Mismatch";
+ reference "G.798 dGIDM in Annex B.1.1.2.1; G.798 15.3.1.2 FlexO-n/OTUCn_A_Sk";
+ }
+ enum phyMapMismatch {
+ value 273;
+ description
+ "PHY Map Mismatch";
+ reference "G.798 dPMM in Annex B.1.1.2.2; G.798 15.3.1.2 FlexO-n/OTUCn_A_Sk";
+ }
+ enum powerOutOfSpecificationLow {
+ value 274;
+ }
+ enum gfpLossOfFrameDelineation {
+ value 275;
+ description
+ "GFP loss of frame delineation (dLFD G.806:6.2.5.2) is raised when the frame delineation process (clause 6.3.1 of [ITU-T G.7041]) is not in the 'SYNC' state";
+ }
+ enum cmfLossOfSignal {
+ value 276;
+ description
+ "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x01(G.7041: Table 6-4) is received";
+ }
+ enum cmfLossOfSync {
+ value 277;
+ description
+ "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x02(G.7041: Table 6-4) is received";
+ }
+ enum cmfForwardDefectIndication {
+ value 278;
+ description
+ "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x04(G.7041: Table 6-4) is received";
+ }
+ enum cmfReverseDefectIndication {
+ value 279;
+ description
+ "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x05(G.7041: Table 6-4) is received";
+ }
+ }
+ description
+ "probable cause group";
+ }
+
+ grouping probable-cause {
+ leaf cause {
+ type probable-cause-enum;
+ mandatory true;
+ }
+ leaf extension {
+ type string;
+ mandatory false;
+ }
+ leaf direction {
+ type org-openroadm-common-alarm-pm-types:direction;
+ mandatory true;
+ description
+ "Direction indication of the alarm.";
+ }
+ leaf location {
+ type org-openroadm-common-alarm-pm-types:location;
+ mandatory true;
+ description
+ "location indication of the alarm.";
+ }
+ leaf type {
+ type enumeration {
+ enum communication {
+ value 1;
+ }
+ enum qualityOfService {
+ value 2;
+ }
+ enum processingError {
+ value 3;
+ }
+ enum equipment {
+ value 4;
+ }
+ enum environmental {
+ value 5;
+ }
+ }
+ mandatory false;
+ description
+ "Type of alarm. Based on X.733 event Type.";
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource-types.yang
new file mode 100644
index 000000000..1a5bd66dd
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource-types.yang
@@ -0,0 +1,374 @@
+module org-openroadm-resource-types {
+ namespace "http://org/openroadm/resource/types";
+ prefix org-openroadm-resource-types;
+
+ import org-openroadm-common-node-types {
+ prefix org-openroadm-common-node-types;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common resource types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ typedef resource-type-enum {
+ type enumeration {
+ enum other {
+ value 1;
+ description
+ "Resource of type not found in list.";
+ }
+ enum device {
+ value 2;
+ description
+ "device - ROAMD, Xponder, etc";
+ }
+ enum degree {
+ value 3;
+ description
+ "degree";
+ }
+ enum shared-risk-group {
+ value 4;
+ description
+ "shared-risk-group";
+ }
+ enum connection {
+ value 5;
+ description
+ "connection - this is used by roadm-connection and odu-connection
+ since they are mutually exclusive in the model";
+ }
+ enum connection-map {
+ value 6;
+ description
+ "connection-map";
+ }
+ enum port {
+ value 7;
+ description
+ "port";
+ }
+ enum circuit-pack {
+ value 8;
+ description
+ "circuit pack";
+ }
+ enum internal-link {
+ value 9;
+ description
+ "internal-link";
+ }
+ enum physical-link {
+ value 10;
+ description
+ "physical-link";
+ }
+ enum interface {
+ value 11;
+ description
+ "interface";
+ }
+ enum shelf {
+ value 12;
+ description
+ "shelf";
+ }
+ enum service {
+ value 13;
+ description
+ "service";
+ }
+ enum odu-sncp-pg {
+ value 14;
+ description
+ "odu-sncp-pg";
+ }
+ enum line-amplifier {
+ value 15;
+ description
+ "line-amplifier";
+ }
+ enum xponder {
+ value 16;
+ description
+ "xponder";
+ }
+ enum versioned-service {
+ value 17;
+ description
+ "versioned-service";
+ }
+ enum temp-service {
+ value 18;
+ description
+ "temp-service";
+ }
+ }
+ }
+
+ typedef resource-notification-type {
+ type enumeration {
+ enum resourceCreation {
+ value 1;
+ description
+ "A new instance of a resource has been created.";
+ }
+ enum resourceModification {
+ value 2;
+ description
+ "An existing instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc.
+ It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highly volatile. ";
+ }
+ enum resourceDeletion {
+ value 3;
+ description
+ "An existing instance of a resource has been removed.";
+ }
+ }
+ description
+ "Type of notification about a resource";
+ }
+
+ grouping resource-type {
+ leaf type {
+ type resource-type-enum;
+ mandatory true;
+ }
+ leaf extension {
+ type string;
+ mandatory false;
+ }
+ }
+
+ grouping device-id {
+ description
+ "Device identifier. Unique within the Controller.";
+ leaf node-id {
+ type org-openroadm-common-node-types:node-id-type;
+ description
+ "Node Id is a globally unique identifier for a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping circuit-pack-name {
+ leaf circuit-pack-name {
+ type string;
+ mandatory true;
+ description
+ "Circuit-Pack identifier. Unique within the context of a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping port-name {
+ uses circuit-pack-name;
+ leaf port-name {
+ type string;
+ description
+ "Port identifier. Unique within the context of a circuit-pack.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping physical-link-name {
+ leaf physical-link-name {
+ type string;
+ mandatory true;
+ description
+ "Physical Link identifier. Unique within the context of a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping internal-link-name {
+ leaf internal-link-name {
+ type string;
+ mandatory true;
+ description
+ "Internal Link identifier. Unique within the context of a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping connection-name {
+ leaf connection-name {
+ type string;
+ description
+ "Connection name. Unique within the context of a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping degree-number {
+ leaf degree-number {
+ type uint16;
+ description
+ "Degree identifier. Unique within the context of a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping srg-number {
+ leaf srg-number {
+ type uint16;
+ description
+ "Shared Risk Group identifier. Unique within the context of a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping shelf-name {
+ leaf shelf-name {
+ type string;
+ mandatory true;
+ description
+ "Shelf-id identifier. Unique within the context of a device.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping service-name {
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Service identifier. Unique within the context of a network.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping versioned-service-name {
+ leaf versioned-service-name {
+ type string;
+ mandatory true;
+ description
+ "Service identifier. Unique within the context of a network.
+ Same as leafref value in model, if applicable.";
+ }
+ leaf version-number {
+ type uint64;
+ mandatory true;
+ description
+ "version-number of the service";
+ }
+ }
+
+ grouping temp-service-name {
+ leaf common-id {
+ type string;
+ mandatory true;
+ description
+ "Service identifier. Unique within the context of a network.
+ Same as leafref value in model, if applicable.";
+ }
+ }
+
+ grouping interface-name {
+ leaf interface-name {
+ type string;
+ mandatory true;
+ description
+ "Interface identifier.";
+ }
+ }
+
+ grouping other-resource-id {
+ leaf other-resource-id {
+ type string;
+ mandatory true;
+ description
+ "resource-id for other.";
+ }
+ }
+
+ grouping odu-sncp-pg-name {
+ leaf odu-sncp-pg-name {
+ type string;
+ mandatory true;
+ description
+ "name of the odu-snc-pg";
+ }
+ }
+
+ grouping amp-number {
+ leaf amp-number {
+ type uint8;
+ mandatory true;
+ description
+ "number of the line-amplifier";
+ }
+ }
+
+ grouping xpdr-number {
+ leaf xpdr-number {
+ type uint16;
+ mandatory true;
+ description
+ "number of the xponder";
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource.yang
new file mode 100644
index 000000000..5d102398e
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-resource.yang
@@ -0,0 +1,358 @@
+module org-openroadm-resource {
+ namespace "http://org/openroadm/resource";
+ prefix org-openroadm-resource;
+
+ import org-openroadm-interfaces {
+ prefix org-openroadm-interfaces;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-otn-common-types {
+ prefix org-openroadm-otn-common-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-optical-channel-types {
+ prefix org-openroadm-common-optical-channel-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-resource-types {
+ prefix org-openroadm-resource-types;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of resources.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ grouping eth-attributes {
+ leaf speed {
+ type uint32;
+ description
+ "Set speed of the interface, unit mbps.
+ This is for ETH facility. ";
+ }
+ }
+
+ grouping mc-ttp-attributes {
+ description
+ "Media channel termination point. Models bandwidth allocation in physical media. Network media channels may be provisioned in the spectrum characterized by the frequency limits.";
+ leaf min-freq {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ config true;
+ description
+ "Minimum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
+ }
+ leaf max-freq {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ config true;
+ description
+ "Maximum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L";
+ }
+ }
+
+ grouping nmc-ctp-attributes {
+ description
+ "Network Media Channel attributes";
+ leaf frequency {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ config true;
+ description
+ "Center Frequency in THz. This is not constrained by mc-capabilities. It must fit (when combined with width) inside any containing media channel.";
+ }
+ leaf width {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ config true;
+ description
+ "Frequency width in GHz. This is not constrained by mc-capabilities. It must fit (when combined with frequency) inside any containing media channel.";
+ }
+ }
+
+ grouping och-attributes {
+ description
+ "Optical Channel attributes";
+ leaf rate {
+ type identityref {
+ base org-openroadm-common-optical-channel-types:och-rate-identity;
+ }
+ description
+ "rate";
+ }
+ leaf frequency {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ description
+ "Center Frequency in THz.";
+ }
+ leaf width {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ config false;
+ description
+ "Frequency width in GHz.";
+ }
+ leaf modulation-format {
+ type org-openroadm-common-optical-channel-types:modulation-format;
+ description
+ "Modulation format";
+ }
+ }
+
+ grouping odu-attributes {
+ description
+ "ODU attributes";
+ leaf rate {
+ type identityref {
+ base org-openroadm-otn-common-types:odu-rate-identity;
+ }
+ description
+ "rate identity of the ODU. 'identityref' is used
+ to allow to extend for future higher rates";
+ }
+ container parent-odu-allocation {
+ description
+ "parent odu allocation";
+ leaf trib-port-number {
+ type uint16 {
+ range "1 .. 80";
+ }
+ description
+ "Assigned tributary port number in parent OPU";
+ }
+ leaf-list trib-slots {
+ type uint16 {
+ range "1 .. 80";
+ }
+ min-elements 1;
+ max-elements 80;
+ description
+ "Assigned trib slots occupied in parent OPU MSI";
+ }
+ }
+ }
+
+ grouping otu-attributes {
+ description
+ "OTU attributes";
+ leaf rate {
+ type identityref {
+ base org-openroadm-otn-common-types:otu-rate-identity;
+ }
+ description
+ "rate identity of the OTU. 'identityref' is used
+ to allow to extend for future higher rates";
+ }
+ }
+
+ grouping resource-reporting {
+ leaf type {
+ type identityref {
+ base org-openroadm-interfaces:interface-type;
+ }
+ mandatory true;
+ description
+ "The type of the interface.";
+ }
+ container ethernet {
+ when "../type = 'ethernetCsmacd'";
+ description
+ "Ethernet Interfaces";
+ uses eth-attributes;
+ }
+ container mc-ttp {
+ when "../type = 'mediaChannelTrailTerminationPoint'";
+ description
+ "Media Channel Trail Termination Point (MC-TTP)";
+ uses mc-ttp-attributes;
+ }
+ container nmc-ctp {
+ when "../type = 'networkMediaChannelConnectionTerminationPoint'";
+ description
+ "Network Media Channel Connection Termination Point (NMC-CTP)";
+ uses nmc-ctp-attributes;
+ }
+ container och {
+ when "../type = 'opticalChannel'";
+ description
+ "Optical Channel (OCh):
+ Models the optical channel interfaces for an Optical White Box.";
+ uses och-attributes;
+ }
+ container odu {
+ when "../type = 'otnOdu'";
+ presence "Attribute Nodes for Optical Data Unit (ODU)";
+ description
+ "Optical Channel Data Unit (ODU)";
+ uses odu-attributes;
+ }
+ container otu {
+ when "../type = 'otnOtu'";
+ description
+ "Optical Channel Transport Unit (OTU)";
+ uses otu-attributes;
+ }
+ }
+
+ grouping resource {
+ description
+ "This resource identifier is intended to provide a generic identifier
+ for any resource that can be used without specific knowledge of
+ the resource.";
+ container device {
+ description
+ "Device of the resource, used only when the system using this
+ model report on more than one device. ";
+ uses org-openroadm-resource-types:device-id;
+ }
+ container resource {
+ choice resource {
+ case circuit-pack {
+ uses org-openroadm-resource-types:circuit-pack-name;
+ }
+ case port {
+ container port {
+ uses org-openroadm-resource-types:port-name;
+ }
+ }
+ case connection {
+ uses org-openroadm-resource-types:connection-name {
+ refine "connection-name" {
+ mandatory true;
+ }
+ }
+ }
+ case physical-link {
+ uses org-openroadm-resource-types:physical-link-name;
+ }
+ case internal-link {
+ uses org-openroadm-resource-types:internal-link-name;
+ }
+ case shelf {
+ uses org-openroadm-resource-types:shelf-name;
+ }
+ case srg {
+ uses org-openroadm-resource-types:srg-number {
+ refine "srg-number" {
+ mandatory true;
+ }
+ }
+ }
+ case degree {
+ uses org-openroadm-resource-types:degree-number {
+ refine "degree-number" {
+ mandatory true;
+ }
+ }
+ }
+ case service {
+ uses org-openroadm-resource-types:service-name;
+ }
+ case interface {
+ uses org-openroadm-resource-types:interface-name;
+ }
+ case odu-sncp-pg {
+ uses org-openroadm-resource-types:odu-sncp-pg-name;
+ }
+ case other {
+ uses org-openroadm-resource-types:other-resource-id;
+ }
+ case device {
+ uses org-openroadm-resource-types:device-id {
+ refine "node-id" {
+ mandatory true;
+ }
+ }
+ }
+ case line-amplifier {
+ uses org-openroadm-resource-types:amp-number;
+ }
+ case xponder {
+ uses org-openroadm-resource-types:xpdr-number;
+ }
+ case versioned-service {
+ uses org-openroadm-resource-types:versioned-service-name;
+ }
+ case temp-service {
+ uses org-openroadm-resource-types:temp-service-name;
+ }
+ }
+ }
+ container resourceType {
+ uses org-openroadm-resource-types:resource-type;
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-swdl.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-swdl.yang
new file mode 100644
index 000000000..79064b4d3
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-swdl.yang
@@ -0,0 +1,203 @@
+module org-openroadm-swdl {
+ namespace "http://org/openroadm/de/swdl";
+ prefix org-openroadm-swdl;
+
+ import ietf-yang-types {
+ prefix yang;
+ revision-date 2013-07-15;
+ }
+ import org-openroadm-common-types {
+ prefix org-openroadm-common-types;
+ revision-date 2019-11-29;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "Yang definitions for System Management.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2019-09-27 {
+ description
+ "Version 6.0.0";
+ }
+ revision 2019-05-31 {
+ description
+ "Version 5.1.0";
+ }
+ revision 2019-03-29 {
+ description
+ "Version 5.0.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2018-09-28 {
+ description
+ "Version 4.0.0";
+ }
+ revision 2018-03-30 {
+ description
+ "Version 3.0.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-07-28 {
+ description
+ "Version 2.0.1 - added revision-date to imports";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ grouping sw-bank {
+ description
+ "software bank group";
+ leaf sw-version {
+ type string;
+ description
+ "Gissue of the SW in this bank";
+ }
+ leaf sw-validation-timer {
+ type string {
+ pattern '(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))';
+ }
+ description
+ "value of validation timer in hh-mm-ss";
+ }
+ leaf activation-date-time {
+ type yang:date-and-time;
+ description
+ "activation date and time: The date load was activated";
+ }
+ }
+
+ grouping database-info-group {
+ description
+ "database info group";
+ leaf last-restored-time {
+ type yang:date-and-time;
+ description
+ "last restored time for the database, or the time that the database was created, whichever is later";
+ }
+ leaf rollback-timer {
+ type string {
+ pattern '(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))';
+ }
+ description
+ "value of rollback timer in hh-mm-ss";
+ }
+ leaf activation-date-time {
+ type yang:date-and-time;
+ description
+ "activation date and time: The date load was activated";
+ }
+ }
+
+ rpc sw-stage {
+ description
+ "SW stage - copies the SW from repo to staging bank";
+ input {
+ leaf filename {
+ type string {
+ length "10..255";
+ }
+ description
+ "file name which has the load";
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ rpc sw-activate {
+ description
+ "Activate new load";
+ input {
+ leaf version {
+ type string;
+ description
+ " software version of the new load which is being activated";
+ }
+ leaf validationTimer {
+ type string;
+ description
+ "validation timer hh-mm-ss";
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ rpc cancel-validation-timer {
+ description
+ "Cancel validation timer which user provisioned as part of activate command";
+ input {
+ leaf accept {
+ type boolean;
+ default "true";
+ description
+ " TRUE means validation timer is cancelled and new load is accepted";
+ }
+ }
+ output {
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ }
+ notification sw-stage-notification {
+ description
+ "notification for sw-stage.";
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+ notification sw-activate-notification {
+ description
+ "notification for sw-activate events.";
+ leaf sw-active-notification-type {
+ type org-openroadm-common-types:activate-notification-type;
+ }
+ uses org-openroadm-common-types:rpc-response-status;
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang
new file mode 100644
index 000000000..a698a3ffd
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang
@@ -0,0 +1,63 @@
+module org-openroadm-switching-pool-types {
+ namespace "http://org/openroadm/switching-pool-types";
+ prefix org-openroadm-switching-pool-types;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common types.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+
+ typedef switching-pool-types {
+ type enumeration {
+ enum non-blocking {
+ value 1;
+ description
+ "Single non-blocking element";
+ }
+ enum blocking {
+ value 2;
+ description
+ "Multiple connected non-blocking lists";
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang
new file mode 100644
index 000000000..846250f2a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang
@@ -0,0 +1,161 @@
+module org-openroadm-user-mgmt {
+ namespace "http://org/openroadm/user-mgmt";
+ prefix org-openroadm-user-mgmt;
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of user managements.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
+ revision 2018-11-30 {
+ description
+ "Version 4.1.0";
+ }
+ revision 2017-12-15 {
+ description
+ "Version 2.2";
+ }
+ revision 2017-09-29 {
+ description
+ "Version 2.1";
+ }
+ revision 2017-06-26 {
+ description
+ "Version 2.0";
+ }
+ revision 2016-10-14 {
+ description
+ "Version 1.2";
+ }
+
+ typedef username-type {
+ type string {
+ length "3..32";
+ pattern '[a-z][a-z0-9]{2,31}' {
+ error-message
+ "A username must begin with a lowercase letter, The remainder
+ of the string may contain lowercase letters, or numbers 0 through 9.";
+ }
+ }
+ description
+ "The user name string identifying this entry.";
+ }
+
+ typedef password-type {
+ type string {
+ length "8..128";
+ pattern '[a-zA-Z0-9!$%\^()\[\]_\-~{}.+]*' {
+ error-message "Password content does not meet the requirements";
+ }
+ }
+ description
+ "The password for this entry. This shouldn't be in clear text
+ The Password must contain at least 2 characters from
+ each of the following groups:
+ a) Lower case alphabetic (a-z)
+ b) Upper case alphabetic (A-Z)
+ c) Numeric 0-9
+ d) Special characters Allowed !$%^()[]_-~{}.+
+ Password must not contain Username.";
+ }
+
+ grouping user-profile {
+ list user {
+ key "name";
+ description
+ "The list of local users configured on this device.";
+ leaf name {
+ type username-type;
+ description
+ "The user name string identifying this entry.";
+ }
+ leaf password {
+ type password-type;
+ description
+ "The password for this entry.";
+ }
+ leaf group {
+ type enumeration {
+ enum sudo;
+ }
+ description
+ "The group to which the user is associated to.";
+ }
+ }
+ }
+
+ rpc chg-password {
+ input {
+ leaf currentPassword {
+ type password-type;
+ mandatory true;
+ description
+ "provide the current password";
+ }
+ leaf newPassword {
+ type password-type;
+ mandatory true;
+ description
+ "provide a new password";
+ }
+ leaf newPasswordConfirm {
+ type password-type;
+ mandatory true;
+ description
+ "re-enter the new password ";
+ }
+ }
+ output {
+ leaf status {
+ type enumeration {
+ enum Successful {
+ value 1;
+ }
+ enum Failed {
+ value 2;
+ }
+ }
+ mandatory true;
+ description
+ "Successful or Failed";
+ }
+ leaf status-message {
+ type string;
+ description
+ "Gives a more detailed reason for success / failure";
+ }
+ }
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestChangeNotificationListener.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestChangeNotificationListener.java
new file mode 100644
index 000000000..87f195dc3
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestChangeNotificationListener.java
@@ -0,0 +1,92 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import java.util.Arrays;
+import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmChangeNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditOperationType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfigChange;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.netconf.config.change.Edit;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.netconf.config.change.EditBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+
+public class TestChangeNotificationListener {
+
+ private static final String NODEID = "node1";
+
+ @Test
+ public void test() {
+
+ NetconfAccessor netconfAccessor = mock(NetconfAccessor.class);
+ DataProvider databaseService = mock(DataProvider.class);
+ WebsocketManagerService notificationService = mock(WebsocketManagerService.class);
+ OpenroadmChangeNotificationListener notifListener =
+ new OpenroadmChangeNotificationListener(netconfAccessor, databaseService, notificationService);
+ when(netconfAccessor.getNodeId()).thenReturn(new NodeId(NODEID));
+ Iterable<? extends PathArgument> pathArguments = Arrays.asList(new PathArgument() {
+
+ @Override
+ public int compareTo(PathArgument arg0) {
+ return 0;
+ }
+
+ @Override
+ public Class<? extends DataObject> getType() {
+ return DataObject.class;
+ }
+ });
+ InstanceIdentifier<?> target = InstanceIdentifier.create(pathArguments);
+
+ notifListener.onNetconfConfigChange(createNotification(EditOperationType.Create, target));
+ EventlogEntity event = new EventlogBuilder().setNodeId(NODEID)
+ .setNewValue(String.valueOf(EditOperationType.Create)).setObjectId(target.toString()).build();
+ verify(databaseService).writeEventLog(event);
+
+ }
+
+ /**
+ * @param type
+ * @return
+ */
+ private static NetconfConfigChange createNotification(EditOperationType type, InstanceIdentifier<?> target) {
+ NetconfConfigChange change = mock(NetconfConfigChange.class);
+
+ @SuppressWarnings("null")
+ final @NonNull List<Edit> edits = Arrays.asList(new EditBuilder().setOperation(type).setTarget(target).build());
+ when(change.nonnullEdit()).thenReturn(edits);
+ return change;
+ }
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestDeviceManagerOpenRoadmImpl.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestDeviceManagerOpenRoadmImpl.java
new file mode 100644
index 000000000..c24e0f621
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestDeviceManagerOpenRoadmImpl.java
@@ -0,0 +1,54 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.mock;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.DeviceManagerOpenroadmImpl;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
+
+public class TestDeviceManagerOpenRoadmImpl {
+ DeviceManagerOpenroadmImpl devMgrOpenRdmImpl;
+ NetconfNetworkElementService netcnfNtwrkElmntSrvc;
+
+ @Before
+ public void init() {
+ netcnfNtwrkElmntSrvc = mock(NetconfNetworkElementService.class);
+ devMgrOpenRdmImpl = new DeviceManagerOpenroadmImpl();
+ }
+
+ @Test
+ public void test() throws Exception {
+ devMgrOpenRdmImpl.setNetconfNetworkElementService(netcnfNtwrkElmntSrvc);
+ assertNotNull(devMgrOpenRdmImpl);
+
+ }
+
+ @After
+ public void cleanUp() throws Exception {
+ devMgrOpenRdmImpl.close();
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmAlarmNotification.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmAlarmNotification.java
new file mode 100644
index 000000000..ff0ddb43c
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmAlarmNotification.java
@@ -0,0 +1,101 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.io.IOException;
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmFaultNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.AlarmNotification;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.Severity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.alarm.ProbableCause;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.alarm.ProbableCauseBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.alarm.Resource;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.alarm.ResourceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev191129.NodeIdType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.probablecause.rev191129.ProbableCauseEnum;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev191129.resource.Device;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev191129.resource.DeviceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+
+public class TestOpenRoadmAlarmNotification {
+ private static final String myCircuitId = "Test_Id";
+ private static final String myId = "Alarm_Id";
+ DateAndTime myRaiseTime = new DateAndTime("2020-02-25T10:08:06.7Z");
+ ProbableCause myProbableCause =
+ new ProbableCauseBuilder().setCause(ProbableCauseEnum.AutomaticLaserShutdown).build();
+ Device device = new DeviceBuilder().setNodeId(NodeIdType.getDefaultInstance("zNhe2i5")).build();
+ Resource myResource = new ResourceBuilder().setDevice(device).build();
+ static DeviceManagerServiceProvider serviceProvider;
+ static @NonNull FaultService faultService;
+ static AlarmNotification notification;
+ Severity severity;
+ static NetconfAccessor accessor;
+ static WebsocketManagerService notificationService;
+
+ @BeforeClass
+ public static void init() throws InterruptedException, IOException {
+
+ accessor = mock(NetconfAccessor.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ faultService = mock(FaultService.class);
+ notificationService = mock(WebsocketManagerService.class);
+ }
+
+
+
+ @Test
+ public void testNotification() {
+ severity = Severity.Critical;
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+ when(serviceProvider.getWebsocketService()).thenReturn(notificationService);
+ OpenroadmFaultNotificationListener alarmListener =
+ new OpenroadmFaultNotificationListener(serviceProvider);
+ notification = mock(AlarmNotification.class);
+
+ when(notification.getId()).thenReturn(myId);
+ when(notification.getCircuitId()).thenReturn(myCircuitId);
+ when(notification.getRaiseTime()).thenReturn(myRaiseTime);
+ when(notification.getProbableCause()).thenReturn(myProbableCause);
+ when(notification.getResource()).thenReturn(myResource);
+ when(notification.getSeverity()).thenReturn(severity);
+ alarmListener.onAlarmNotification(notification);
+ System.out.println(notification.getId());
+ assertEquals(myId, notification.getId());
+ assertEquals(myCircuitId, notification.getCircuitId());
+ assertEquals(myRaiseTime, notification.getRaiseTime());
+ assertEquals(myProbableCause, notification.getProbableCause());
+ assertEquals(myResource, notification.getResource());
+ assertEquals(severity, notification.getSeverity());
+
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmDeviceChangeNotification.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmDeviceChangeNotification.java
new file mode 100644
index 000000000..a6d276d48
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmDeviceChangeNotification.java
@@ -0,0 +1,125 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import java.util.Arrays;
+import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmDeviceChangeNotificationListener;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev191129.RpcStatus;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.ChangeNotification;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.CreateTechInfoNotification;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.CreateTechInfoNotificationBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.change.notification.Edit;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.change.notification.EditBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditOperationType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+
+
+
+public class TestOpenRoadmDeviceChangeNotification {
+ private static final String NODEID = "Roadm1";
+ private NetconfAccessor netconfAccessor = mock(NetconfAccessor.class);
+ private DataProvider databaseService = mock(DataProvider.class);
+ WebsocketManagerService notificationService = mock(WebsocketManagerService.class);
+ private OpenroadmDeviceChangeNotificationListener deviceChangeListener =
+ new OpenroadmDeviceChangeNotificationListener(netconfAccessor, databaseService, notificationService);
+ private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter();
+
+ @Test
+ public void testOnChangeNotification() {
+
+ when(netconfAccessor.getNodeId()).thenReturn(new NodeId(NODEID));
+ Iterable<? extends PathArgument> pathArguments = Arrays.asList(new PathArgument() {
+
+ @Override
+ public int compareTo(PathArgument arg0) {
+ return 0;
+ }
+
+ @Override
+ public Class<? extends DataObject> getType() {
+ return DataObject.class;
+ }
+ });
+ InstanceIdentifier<?> target = InstanceIdentifier.create(pathArguments);
+
+ deviceChangeListener.onChangeNotification(createNotification(EditOperationType.Create, target));
+ EventlogEntity event =
+ new EventlogBuilder().setNodeId(NODEID).setNewValue(String.valueOf(EditOperationType.Create))
+ .setObjectId(target.getPathArguments().toString()).setCounter(1)
+ .setAttributeName(target.getTargetType().getName()).setSourceType(SourceType.Netconf).build();
+ verify(databaseService).writeEventLog(event);
+
+ }
+
+ @Test
+ public void testOnCreateTechInfoNotification() {
+ when(netconfAccessor.getNodeId()).thenReturn(new NodeId(NODEID));
+ deviceChangeListener.onCreateTechInfoNotification(createTechInfoNotification());
+ EventlogEntity event = new EventlogBuilder().setNodeId(NODEID).setCounter(1)
+ .setId(createTechInfoNotification().getShelfId())
+ .setAttributeName(createTechInfoNotification().getShelfId())
+ .setObjectId(createTechInfoNotification().getShelfId())
+ .setNewValue(createTechInfoNotification().getStatus().getName()).setSourceType(SourceType.Netconf)
+ .setTimestamp(ncTimeConverter.getTimeStamp()).build();
+ verify(databaseService).writeEventLog(event);
+ }
+
+ /**
+ * @param type
+ * @return
+ */
+ private static ChangeNotification createNotification(EditOperationType type, InstanceIdentifier<?> target) {
+ ChangeNotification change = mock(ChangeNotification.class);
+
+ @SuppressWarnings("null")
+ final @NonNull List<Edit> edits = Arrays.asList(new EditBuilder().setOperation(type).setTarget(target).build());
+ when(change.nonnullEdit()).thenReturn(edits);
+ return change;
+ }
+
+ private static CreateTechInfoNotification createTechInfoNotification() {
+ CreateTechInfoNotificationBuilder techInfoNotificationBuilder = new CreateTechInfoNotificationBuilder();
+ techInfoNotificationBuilder.setLogFileName("shjkdjld/EHJkk").setShelfId("dsjhdukdgkzw")
+ .setStatus(RpcStatus.Successful).setStatusMessage("TestSuccessful");
+ return techInfoNotificationBuilder.build();
+
+ }
+
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmInventory.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmInventory.java
new file mode 100644
index 000000000..e856511e5
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmInventory.java
@@ -0,0 +1,144 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmInventoryInput;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev191129.NodeIdType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.LifecycleState;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev191129.OpenroadmVersionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacks;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.interfaces.grp.Interface;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Info;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.InfoBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Xponder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.Shelves;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint8;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TestOpenRoadmInventory {
+ private static final Logger LOG = LoggerFactory.getLogger(OpenroadmInventoryInput.class);
+ private NetconfAccessor accessor = mock(NetconfAccessor.class);
+ private long value1 = 1;
+ private IpAddress ipAddress = new IpAddress(new Ipv4Address("127.0.0.11"));
+ private NodeId nodeId = new NodeId("RoadmA2");
+ private Info info = new InfoBuilder().setNodeId(NodeIdType.getDefaultInstance("zNhe2i5")).setClli("NodeB")
+ .setSerialId("0002").setModel("model2").setVendor("VendorA").setCurrentIpAddress(ipAddress)
+ .setCurrentIpAddress(ipAddress).setCurrentDefaultGateway(new IpAddress(new Ipv4Address("127.0.0.20")))
+ .setCurrentDefaultGateway(new IpAddress(new Ipv4Address("127.0.0.20"))).setNodeType(NodeTypes.Rdm)
+ .setCurrentDatetime(new DateAndTime("2017-10-22T15:23:43Z")).setSoftwareVersion("swversion1234")
+ .setPrefixLength(Uint8.valueOf(28)).setMaxDegrees(Uint16.valueOf(2)).setMaxSrgs(Uint16.valueOf(3))
+ .setMaxNumBin15minHistoricalPm(Uint16.valueOf(32)).setMaxNumBin24hourHistoricalPm(Uint16.valueOf(7))
+ .setOpenroadmVersion(OpenroadmVersionType._20).build();
+
+ private OrgOpenroadmDevice device = mock(OrgOpenroadmDevice.class);;
+ private Shelves shelf = mock(Shelves.class);
+ private Interface interfaces = mock(Interface.class);
+ private CircuitPacks cp = mock(CircuitPacks.class);
+ private Xponder xpdr = mock(Xponder.class);
+ OpenroadmInventoryInput roadmInventory = new OpenroadmInventoryInput(accessor, device);
+
+ @Test
+ public void TestDevice() {
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(device.getInfo()).thenReturn(info);
+
+ roadmInventory.getInventoryData(Uint32.valueOf(value1));
+ assertEquals(info, device.getInfo());
+
+ }
+
+ @Test
+ public void TestShelves() {
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(device.getInfo()).thenReturn(info);
+ when(shelf.getShelfPosition()).thenReturn("10");
+ when(shelf.getOperationalState()).thenReturn(State.InService);
+ when(shelf.getSerialId()).thenReturn("nodeid-1");
+ when(shelf.getShelfName()).thenReturn("Shelf1");
+ when(shelf.getShelfType()).thenReturn("Shelf");
+ when(shelf.getClei()).thenReturn("1234567890");
+ when(shelf.getVendor()).thenReturn("vendorA");
+ when(shelf.getModel()).thenReturn("1");
+ when(shelf.getHardwareVersion()).thenReturn("0.1");
+ when(shelf.getManufactureDate()).thenReturn(new DateAndTime("2017-10-22T15:23:43Z"));
+ assertNotNull(roadmInventory.getShelvesInventory(shelf, Uint32.valueOf(value1 + 1)));
+
+ LOG.info("Shelves test completed");
+
+ }
+
+ @Test
+ public void TestCircuitPacks() {
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(cp.getCircuitPackName()).thenReturn("1/0");
+ when(cp.getVendor()).thenReturn("VendorA");
+ when(cp.getModel()).thenReturn("Model1");
+ when(cp.getSerialId()).thenReturn("46277sgh6");
+ when(cp.getClei()).thenReturn("136268785");
+ when(cp.getHardwareVersion()).thenReturn("0.1");
+ when(cp.getType()).thenReturn("WSS");
+ when(cp.getProductCode()).thenReturn("oooooo");
+ when(cp.getCircuitPackMode()).thenReturn("inServiceMode");
+ when(device.getInfo()).thenReturn(info);
+ assertNotNull(roadmInventory.getCircuitPackInventory(cp, Uint32.valueOf(value1 + 1)));
+
+ }
+
+ @Test
+ public void TestInterfaces() {
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(interfaces.getName()).thenReturn("1GE-interface-1");
+ when(interfaces.getDescription()).thenReturn("Ethernet Interface");
+ when(interfaces.getSupportingCircuitPackName()).thenReturn("1/0");
+ when(device.getInfo()).thenReturn(info);
+ assertNotNull(roadmInventory.getInterfacesInventory(interfaces, Uint32.valueOf(value1 + 2)));
+ }
+
+ @Test
+ public void TestXponder() {
+ when(xpdr.getXpdrNumber()).thenReturn(Uint16.valueOf(1));
+ when(xpdr.getXpdrType()).thenReturn(XpdrNodeTypes.Mpdr);
+ when(xpdr.getLifecycleState()).thenReturn(LifecycleState.Deployed);
+ when(accessor.getNodeId()).thenReturn(nodeId);
+ when(device.getInfo()).thenReturn(info);
+ assertNotNull(roadmInventory.getXponderInventory(xpdr, Uint32.valueOf(value1 + 1)));
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElement.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElement.java
new file mode 100644
index 000000000..f5b40d050
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElement.java
@@ -0,0 +1,310 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.jdt.annotation.Nullable;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmInventoryInput;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmNetworkElement;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.ActiveAlarmList;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.Severity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.active.alarm.list.ActiveAlarms;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.active.alarm.list.ActiveAlarmsKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.alarm.ProbableCauseBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.alarm.ResourceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev191129.NodeIdType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.LifecycleState;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev191129.OpenroadmVersionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.pack.ParentCircuitPack;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacks;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacksKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.interfaces.grp.Interface;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.interfaces.grp.InterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Info;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.InfoBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Xponder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.XponderKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelf.Slots;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelf.SlotsKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.Shelves;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.ShelvesKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.HistoricalPmList;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.group.HistoricalPm;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.group.HistoricalPmKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.list.HistoricalPmEntry;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.list.HistoricalPmEntryKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.val.group.Measurement;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.val.group.MeasurementKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmGranularity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmNamesEnum;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.Validity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.probablecause.rev191129.ProbableCauseEnum;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev191129.resource.DeviceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev191129.ResourceTypeEnum;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint64;
+import org.opendaylight.yangtools.yang.common.Uint8;
+
+public class TestOpenRoadmNetworkElement {
+
+ NetconfBindingAccessor accessor = mock(NetconfBindingAccessor.class);
+ DeviceManagerServiceProvider serviceProvider = mock(DeviceManagerServiceProvider.class);
+ DataProvider dataprovider = mock(DataProvider.class);
+ Capabilities capabilities = mock(Capabilities.class);
+ TransactionUtils transactionUtils = mock(TransactionUtils.class);
+ DataBroker dataBroker = mock(DataBroker.class);
+ FaultService faultService = mock(FaultService.class);
+ OrgOpenroadmDevice device;
+ OpenroadmInventoryInput inventoryData;
+ long level = 1;
+ private Shelves shelf = mock(Shelves.class);
+ private @Nullable Map<ShelvesKey, Shelves> shelfList;
+ private CircuitPacks cp, cp1, cp2, cp3;
+ private Interface interfaces = mock(Interface.class);
+ private Xponder xpdr = mock(Xponder.class);
+ private IpAddress ipAddress = new IpAddress(new Ipv4Address("127.0.0.11"));
+ private Info info = new InfoBuilder().setNodeId(NodeIdType.getDefaultInstance("zNhe2i5")).setClli("NodeB")
+ .setSerialId("0002").setModel("model2").setVendor("VendorA").setCurrentIpAddress(ipAddress)
+ .setCurrentIpAddress(ipAddress).setCurrentDefaultGateway(new IpAddress(new Ipv4Address("127.0.0.20")))
+ .setCurrentDefaultGateway(new IpAddress(new Ipv4Address("127.0.0.20"))).setNodeType(NodeTypes.Rdm)
+ .setCurrentDatetime(new DateAndTime("2017-10-22T15:23:43Z")).setSoftwareVersion("swversion1234")
+ .setCurrentPrefixLength(Uint8.valueOf(45)).setMaxDegrees(Uint16.valueOf(56)).setMaxSrgs(Uint16.valueOf(251))
+ .setMaxNumBin15minHistoricalPm(Uint16.valueOf(324)).setMaxNumBin24hourHistoricalPm(Uint16.valueOf(142))
+ .setOpenroadmVersion(OpenroadmVersionType._20).build();
+ private ActiveAlarmList alarmList = mock(ActiveAlarmList.class);
+ private ActiveAlarms activeAlarms = mock(ActiveAlarms.class);
+ private HistoricalPmList pmDataList = mock(HistoricalPmList.class);
+ private HistoricalPm historicalPm = mock(HistoricalPm.class);
+
+ @Before
+ public void init() {
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(serviceProvider.getFaultService()).thenReturn(faultService);
+ when(serviceProvider.getDataProvider()).thenReturn(dataprovider);
+ NodeId nNodeId = new NodeId("RoadmA");
+ when(accessor.getNodeId()).thenReturn(nNodeId);
+ when(accessor.getDataBroker()).thenReturn(dataBroker);
+ when(accessor.getTransactionUtils()).thenReturn(transactionUtils);
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(OrgOpenroadmDevice.QNAME)).thenReturn(true);
+ final Class<OrgOpenroadmDevice> openRoadmDev = OrgOpenroadmDevice.class;
+ // Reading data from device
+ InstanceIdentifier<OrgOpenroadmDevice> deviceId = InstanceIdentifier.builder(openRoadmDev).build();
+ device = mock(OrgOpenroadmDevice.class);
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ deviceId)).thenReturn(device);
+
+ when(device.getInfo()).thenReturn(info);
+ inventoryData = new OpenroadmInventoryInput(accessor, device);
+ // Reading the shelfs data;
+ when(shelf.getShelfPosition()).thenReturn("10");
+ when(shelf.getOperationalState()).thenReturn(State.InService);
+ when(shelf.getSerialId()).thenReturn("nodeid-1");
+ when(shelf.getShelfName()).thenReturn("Shelf1");
+ when(shelf.getShelfType()).thenReturn("Shelf");
+ when(shelf.getClei()).thenReturn("1234567890");
+ when(shelf.getVendor()).thenReturn("vendorA");
+ when(shelf.getModel()).thenReturn("1");
+ when(shelf.getHardwareVersion()).thenReturn("0.1");
+ when(shelf.getManufactureDate()).thenReturn(new DateAndTime("2017-10-22T15:23:43Z"));
+ @Nullable
+ Map<SlotsKey, Slots> slotList = null;
+ Slots slots = mock(Slots.class);
+ when(slots.getLabel()).thenReturn("Slot56746");
+ when(slots.getSlotName()).thenReturn("slotofRoadmA");
+ when(slots.getProvisionedCircuitPack()).thenReturn("1/0");
+ slotList = new HashMap<>();
+ slotList.put(slots.key(), slots);
+ when(shelf.getSlots()).thenReturn(slotList);
+ shelfList = new HashMap<>();
+ shelfList.put(shelf.key(), shelf);
+ when(device.getShelves()).thenReturn(shelfList);
+
+ // Reading data from CircuitPacks
+ cp = mock(CircuitPacks.class);
+ when(cp.getCircuitPackName()).thenReturn("1/0");
+ when(cp.getVendor()).thenReturn("VendorA");
+ when(cp.getModel()).thenReturn("Model1");
+ when(cp.getSerialId()).thenReturn("46277sgh6");
+ when(cp.getClei()).thenReturn("136268785");
+ when(cp.getHardwareVersion()).thenReturn("0.1");
+ when(cp.getType()).thenReturn("WSS");
+ when(cp.getProductCode()).thenReturn("oooooo");
+ when(cp.getCircuitPackMode()).thenReturn("inServiceMode");
+
+ ParentCircuitPack parentCp = mock(ParentCircuitPack.class);
+ when(parentCp.getCircuitPackName()).thenReturn("1/0");
+ when(parentCp.getCpSlotName()).thenReturn("Slot1");
+ cp1 = mock(CircuitPacks.class);
+ when(cp1.getCircuitPackName()).thenReturn("1/0 EThernet");
+ when(cp1.getVendor()).thenReturn("VendorA");
+ when(cp1.getModel()).thenReturn("Model1678");
+ when(cp1.getSerialId()).thenReturn("4627dgs7sgh6");
+ when(cp1.getClei()).thenReturn("1362d68785");
+ when(cp1.getHardwareVersion()).thenReturn("0.1");
+ when(cp1.getType()).thenReturn("EthPlug");
+ when(cp1.getProductCode()).thenReturn("oooooo");
+ when(cp1.getCircuitPackMode()).thenReturn("inServiceMode");
+ when(cp1.getParentCircuitPack()).thenReturn(parentCp);
+
+ cp2 = mock(CircuitPacks.class);
+ when(cp2.getCircuitPackName()).thenReturn("2/0");
+ when(cp2.getVendor()).thenReturn("VendorA");
+ when(cp2.getModel()).thenReturn("Model1678");
+ when(cp2.getSerialId()).thenReturn("4sads7sgh6");
+ when(cp2.getClei()).thenReturn("1wew362d68785");
+ when(cp2.getHardwareVersion()).thenReturn("0.1");
+ when(cp2.getType()).thenReturn("WSS");
+ when(cp2.getProductCode()).thenReturn("osooooo");
+ when(cp2.getCircuitPackMode()).thenReturn("inServiceMode");
+
+ cp3 = mock(CircuitPacks.class);
+ when(parentCp.getCircuitPackName()).thenReturn("2/0");
+ when(parentCp.getCpSlotName()).thenReturn("Slot1");
+ when(cp3.getCircuitPackName()).thenReturn("2/0 OCS");
+ when(cp3.getVendor()).thenReturn("VendorA");
+ when(cp3.getModel()).thenReturn("Model1678");
+ when(cp3.getSerialId()).thenReturn("dswsads7sgh6");
+ when(cp3.getClei()).thenReturn("1ew62d68785");
+ when(cp3.getHardwareVersion()).thenReturn("0.1");
+ when(cp3.getType()).thenReturn("OCS Plug");
+ when(cp3.getProductCode()).thenReturn("osooooo");
+ when(cp3.getCircuitPackMode()).thenReturn("inServiceMode");
+ when(cp3.getParentCircuitPack()).thenReturn(parentCp);
+ @Nullable
+ Map<CircuitPacksKey, CircuitPacks> cpList = new HashMap<>();
+ cpList.put(cp.key(), cp);
+ cpList.put(cp1.key(), cp1);
+ cpList.put(cp2.key(), cp2);
+ cpList.put(cp3.key(), cp3);
+ when(device.getCircuitPacks()).thenReturn(cpList);
+
+ // Reading Interface Data
+ when(interfaces.getName()).thenReturn("1GE-interface-1");
+ when(interfaces.getDescription()).thenReturn("Ethernet Interface");
+ when(interfaces.getSupportingCircuitPackName()).thenReturn("1/0 EThernet");
+ @Nullable
+ Map<InterfaceKey, Interface> interfacesList = new HashMap<>();
+ interfacesList.put(interfaces.key(), interfaces);
+ when(device.getInterface()).thenReturn(interfacesList);
+
+ // Reading Xponder Data
+ when(xpdr.getXpdrNumber()).thenReturn(Uint16.valueOf(1));
+ when(xpdr.getXpdrType()).thenReturn(XpdrNodeTypes.Mpdr);
+ when(xpdr.getLifecycleState()).thenReturn(LifecycleState.Deployed);
+ @Nullable
+ Map<XponderKey, Xponder> xpnderList = new HashMap<>();
+ xpnderList.put(xpdr.key(), xpdr);
+ when(device.getXponder()).thenReturn(xpnderList);
+
+ // Read initial Alarm data
+ final Class<ActiveAlarmList> classAlarm = ActiveAlarmList.class;
+ InstanceIdentifier<ActiveAlarmList> alarmDataIid = InstanceIdentifier.builder(classAlarm).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ alarmDataIid)).thenReturn(alarmList);
+ when(activeAlarms.getId()).thenReturn("Alarm1");
+ when(activeAlarms.getCircuitId()).thenReturn("1/0");
+ when(activeAlarms.getRaiseTime()).thenReturn(new DateAndTime("2017-10-22T15:23:43Z"));
+ when(activeAlarms.getSeverity()).thenReturn(Severity.Critical);
+ when(activeAlarms.getProbableCause())
+ .thenReturn(new ProbableCauseBuilder().setCause(ProbableCauseEnum.AutomaticLaserShutdown).build());
+ when(activeAlarms.getAdditionalDetail()).thenReturn("LaserShutdown");
+ when(activeAlarms.getResource()).thenReturn(new ResourceBuilder()
+ .setDevice(new DeviceBuilder().setNodeId(NodeIdType.getDefaultInstance("zNhe2i5")).build()).build());
+ @Nullable
+ Map<ActiveAlarmsKey, ActiveAlarms> activeAlarmlist = new HashMap<>();
+ activeAlarmlist.put(activeAlarms.key(), activeAlarms);
+ when(alarmList.getActiveAlarms()).thenReturn(activeAlarmlist);
+
+ // Read PM Data
+ final Class<HistoricalPmList> pmDataClass = HistoricalPmList.class;
+ InstanceIdentifier<HistoricalPmList> pmDataIid = InstanceIdentifier.builder(pmDataClass).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ pmDataIid)).thenReturn(pmDataList);
+
+ Measurement measurement = mock(Measurement.class);
+ PmDataType pmDataType = mock(PmDataType.class);
+ when(pmDataType.getUint64()).thenReturn(Uint64.valueOf(2425425));
+ when(measurement.getBinNumber()).thenReturn(Uint16.valueOf(1452));
+ when(measurement.getCompletionTime()).thenReturn(new DateAndTime("2018-10-22T15:23:43Z"));
+ when(measurement.getGranularity()).thenReturn(PmGranularity._24Hour);
+ when(measurement.getPmParameterUnit()).thenReturn("6824545199534863756");
+ when(measurement.getPmParameterValue()).thenReturn(pmDataType);
+ when(measurement.getValidity()).thenReturn(Validity.Partial);
+
+ @Nullable
+ Map<MeasurementKey, Measurement> measurementList = new HashMap<>();
+ measurementList.put(measurement.key(), measurement);
+ when(historicalPm.getMeasurement()).thenReturn(measurementList);
+ when(historicalPm.getType()).thenReturn(PmNamesEnum.ErroredSeconds);
+ when(historicalPm.getExtension()).thenReturn("OpticalPowerOutput");
+ @Nullable
+ Map<HistoricalPmKey, HistoricalPm> historicalPmList = new HashMap<>();
+ historicalPmList.put(historicalPm.key(), historicalPm);
+ HistoricalPmEntry histPmEntry = mock(HistoricalPmEntry.class);
+ when(histPmEntry.getHistoricalPm()).thenReturn(historicalPmList);
+ when(histPmEntry.getPmResourceType()).thenReturn(ResourceTypeEnum.CircuitPack);
+ @Nullable
+ Map<HistoricalPmEntryKey, HistoricalPmEntry> histPmList = new HashMap<>();
+ histPmList.put(histPmEntry.key(), histPmEntry);
+ when(pmDataList.getHistoricalPmEntry()).thenReturn(histPmList);
+
+ }
+
+
+
+ @Ignore
+ @Test
+ public void test() {
+ OpenroadmNetworkElement optionalNe = new OpenroadmNetworkElement(accessor, serviceProvider);
+ optionalNe.initialReadFromNetworkElement();
+ verify(dataprovider).writeInventory(accessor.getNodeId().getValue(),
+ Arrays.asList(inventoryData.getInventoryData(Uint32.valueOf(1))));
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElementFactory.java
new file mode 100644
index 000000000..40a48c358
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmNetworkElementFactory.java
@@ -0,0 +1,101 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.io.IOException;
+import java.util.Optional;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmNetworkElementFactory;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class TestOpenRoadmNetworkElementFactory {
+
+ private static NetconfBindingAccessor accessor;
+ private static DeviceManagerServiceProvider serviceProvider;
+ private static Capabilities capabilities;
+ private static TransactionUtils transactionUtils;
+ private static DataBroker dataBroker;
+
+ @BeforeClass
+ public static void init() throws InterruptedException, IOException {
+ accessor = mock(NetconfBindingAccessor.class);
+ capabilities = mock(Capabilities.class);
+ dataBroker = mock(DataBroker.class);
+ transactionUtils = mock(TransactionUtils.class);
+ serviceProvider = mock(DeviceManagerServiceProvider.class);
+ when(accessor.getNodeId()).thenReturn(new NodeId("RoadmA2"));
+ when(accessor.getCapabilites()).thenReturn(capabilities);
+ when(accessor.getDataBroker()).thenReturn(dataBroker);
+ when(accessor.getTransactionUtils()).thenReturn(transactionUtils);
+ when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(accessor));
+ when(serviceProvider.getDataProvider()).thenReturn(null);
+
+ final Class<OrgOpenroadmDevice> openRoadmDev = OrgOpenroadmDevice.class;
+ InstanceIdentifier<OrgOpenroadmDevice> deviceId = InstanceIdentifier.builder(openRoadmDev).build();
+ when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ deviceId)).thenReturn(mock(OrgOpenroadmDevice.class));
+
+ when(accessor.getTransactionUtils()).thenReturn(mock(TransactionUtils.class));
+ }
+
+ @Test
+ public void testCapabiltiesAvailable1() {
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(OrgOpenroadmDevice.QNAME)).thenReturn(true);
+ OpenroadmNetworkElementFactory factory = new OpenroadmNetworkElementFactory();
+ assertTrue((factory.create(accessor, serviceProvider)).isPresent());
+ }
+
+ @Test
+ public void testCapabiltiesAvailable2() {
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision("http://org/openroadm/device", "2018-10-19"))
+ .thenReturn(true);
+ OpenroadmNetworkElementFactory factory = new OpenroadmNetworkElementFactory();
+ assertTrue((factory.create(accessor, serviceProvider)).isPresent());
+ }
+
+ @Test
+ public void testCapabiltiesNotAvailable() throws Exception {
+ when(accessor.getCapabilites().isSupportingNamespaceAndRevision(OrgOpenroadmDevice.QNAME)).thenReturn(false);
+ OpenroadmNetworkElementFactory factory = new OpenroadmNetworkElementFactory();
+ assertFalse(factory.create(accessor, serviceProvider).isPresent());
+ }
+
+ @After
+ public void cleanUp() throws Exception {
+
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmPMDataBuilder.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmPMDataBuilder.java
new file mode 100644
index 000000000..5069acec9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenRoadmPMDataBuilder.java
@@ -0,0 +1,186 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.PmDataBuilderOpenRoadm;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.alarm.pm.types.rev191129.Direction;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.alarm.pm.types.rev191129.Location;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.HistoricalPmList;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.group.HistoricalPm;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.group.HistoricalPmBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.group.HistoricalPmKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.list.HistoricalPmEntry;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.list.HistoricalPmEntryBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.list.HistoricalPmEntryKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.val.group.Measurement;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.val.group.MeasurementBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.val.group.MeasurementKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmGranularity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmNamesEnum;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.Validity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev191129.ResourceTypeEnum;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Celsius;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.PerformanceMeasurementUnitId;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
+
+public class TestOpenRoadmPMDataBuilder {
+ // variables
+ // end of variables
+ private NetconfBindingAccessor acessor = mock(NetconfBindingAccessor.class);
+ private DataBroker dataBroker = mock(DataBroker.class);
+ private TransactionUtils transactionUtils = mock(TransactionUtils.class);
+ // String nodeId = "RdmA";
+ private PmDataBuilderOpenRoadm pmDataBuilderORoadm;
+ private NodeId nodeId = new NodeId("RoadmA");
+ private HistoricalPmList historicalPmDatalist = mock(HistoricalPmList.class);
+ private HistoricalPm historicalPm = mock(HistoricalPm.class);
+ private PmDataType pmDataType = new PmDataType(Uint64.valueOf(67508));
+ private MeasurementBuilder measurementBuilder = new MeasurementBuilder();
+ private HistoricalPmBuilder historicalPmBuilder = new HistoricalPmBuilder();
+ private HistoricalPmEntryBuilder historicalPmEntryBuiler = new HistoricalPmEntryBuilder();
+ private List<Class<? extends PerformanceMeasurementUnitId>> performanceMeasUnitList =
+ new ArrayList<Class<? extends PerformanceMeasurementUnitId>>();
+ private Map<MeasurementKey, Measurement> measurementData = new HashMap<MeasurementKey, Measurement>();
+ private Map<HistoricalPmKey, HistoricalPm> historicalPMCollection = new HashMap<HistoricalPmKey, HistoricalPm>();
+ private Map<HistoricalPmEntryKey, HistoricalPmEntry> historicalPmEntryCollection =
+ new HashMap<HistoricalPmEntryKey, HistoricalPmEntry>();
+
+
+
+ // public methods
+ @Before
+ public void init() {
+ when(acessor.getDataBroker()).thenReturn(dataBroker);
+ when(acessor.getTransactionUtils()).thenReturn(transactionUtils);
+
+
+
+ }
+
+ @Test
+ public void testGetPmData() {
+ when(acessor.getNodeId()).thenReturn(nodeId);
+ pmDataBuilderORoadm = new PmDataBuilderOpenRoadm(acessor);
+
+ final Class<HistoricalPmList> pmDataClass = HistoricalPmList.class;
+ InstanceIdentifier<HistoricalPmList> pmDataListId = InstanceIdentifier.builder(pmDataClass).build();
+ when(acessor.getTransactionUtils().readData(acessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ pmDataListId)).thenReturn(historicalPmDatalist);
+
+ assertEquals(historicalPmDatalist,pmDataBuilderORoadm.getPmData(acessor));
+
+ }
+
+ @Test
+ public void testBuildPmDataEntity() {
+ when(acessor.getNodeId()).thenReturn(nodeId);
+ pmDataBuilderORoadm = new PmDataBuilderOpenRoadm(acessor);
+
+ performanceMeasUnitList.add(Celsius.class);
+ measurementBuilder.setBinNumber(Uint16.valueOf(24657))
+ .setCompletionTime(new DateAndTime("2020-10-22T15:23:43Z")).setGranularity(PmGranularity._24Hour)
+ .setPmParameterUnit("dBm").setPmParameterValue(pmDataType).setValidity(Validity.Suspect);
+
+ measurementData.put(measurementBuilder.key(), measurementBuilder.build());
+ historicalPmBuilder.setType(PmNamesEnum.SeverelyErroredSeconds).setDirection(Direction.Bidirectional)
+ .setExtension("sajhsiwiduwugdhegdeuz").setLocation(Location.NearEnd).setMeasurement(measurementData);
+ when(historicalPm.getMeasurement()).thenReturn(measurementData);
+
+ historicalPMCollection.put(historicalPmBuilder.key(), historicalPmBuilder.build());
+ historicalPmEntryBuiler.setPmResourceTypeExtension("dshjdekjdewkk")
+ .setPmResourceType(ResourceTypeEnum.CircuitPack).setHistoricalPm(historicalPMCollection);
+
+ historicalPmEntryCollection.put(historicalPmEntryBuiler.key(), historicalPmEntryBuiler.build());
+ when(historicalPmDatalist.getHistoricalPmEntry()).thenReturn(historicalPmEntryCollection);
+
+ assertNotNull(pmDataBuilderORoadm.buildPmDataEntity(historicalPmDatalist));
+ }
+ @Test
+ public void testBuildPmDataEntity1() {
+ when(acessor.getNodeId()).thenReturn(nodeId);
+ pmDataBuilderORoadm = new PmDataBuilderOpenRoadm(acessor);
+
+ performanceMeasUnitList.add(Celsius.class);
+ measurementBuilder.setBinNumber(Uint16.valueOf(24657))
+ .setCompletionTime(new DateAndTime("2020-10-22T15:23:43Z")).setGranularity(PmGranularity._15min)
+ .setPmParameterUnit("celsius").setPmParameterValue(pmDataType).setValidity(Validity.Suspect);
+
+ measurementData.put(measurementBuilder.key(), measurementBuilder.build());
+ historicalPmBuilder.setType(PmNamesEnum.ErroredSeconds).setDirection(Direction.Rx)
+ .setExtension("sajhsiwiduwugdhegdeuz").setLocation(Location.FarEnd).setMeasurement(measurementData);
+ when(historicalPm.getMeasurement()).thenReturn(measurementData);
+
+ historicalPMCollection.put(historicalPmBuilder.key(), historicalPmBuilder.build());
+ historicalPmEntryBuiler.setPmResourceTypeExtension("dshjdekjdewkk")
+ .setPmResourceType(ResourceTypeEnum.Device).setHistoricalPm(historicalPMCollection);
+
+ historicalPmEntryCollection.put(historicalPmEntryBuiler.key(), historicalPmEntryBuiler.build());
+ when(historicalPmDatalist.getHistoricalPmEntry()).thenReturn(historicalPmEntryCollection);
+
+ assertNotNull(pmDataBuilderORoadm.buildPmDataEntity(historicalPmDatalist));
+ }
+ // end of public methods
+
+
+ // constants
+ // end of constants
+
+ // variables
+ // end of variables
+
+ // constructors
+ // end of constructors
+
+ // getters and setters
+ // end of getters and setters
+
+ // private methods
+ // end of private methods
+
+
+ // end of public methods
+
+ // static methods
+ // end of static methods
+
+ // private classes
+ // end of private classes
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenroadmNetworkElementBase.java b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenroadmNetworkElementBase.java
new file mode 100644
index 000000000..9a0f1942a
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/test/TestOpenroadmNetworkElementBase.java
@@ -0,0 +1,62 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : ccsdk features
+ * ================================================================================
+ * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
+ * All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ */
+package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.test;
+
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl.OpenroadmNetworkElementBase;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
+public class TestOpenroadmNetworkElementBase {
+ // variables
+ private NetconfBindingAccessor netconfAccessor = mock(NetconfBindingAccessor.class);
+ private DeviceManagerServiceProvider deviceManagerSvcProvider = mock(DeviceManagerServiceProvider.class);
+ private DataProvider databaseService = mock(DataProvider.class);
+ private NodeId nodeId = new NodeId("RoadmA");
+ private OpenroadmNetworkElementBase openRoadmNetElementBase = new OpenroadmNetworkElementBase(netconfAccessor,deviceManagerSvcProvider);
+ // end of variables
+
+ // public methods
+ @Before
+ public void init() {
+
+ when(netconfAccessor.getNodeId()).thenReturn(nodeId);
+
+ }
+
+ @Test
+ public void testGetNodeId() {
+ assertNotNull(openRoadmNetElementBase.getNodeId());
+
+ }
+
+ @Test
+ public void testGetDeviceType() {
+ assertNotNull(openRoadmNetElementBase.getDeviceType());
+ }
+
+}
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 000000000..ca6ee9cea
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline \ No newline at end of file
diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/simplelogger.properties b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/simplelogger.properties
new file mode 100644
index 000000000..9af26dc96
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/openroadm/provider/src/test/resources/simplelogger.properties
@@ -0,0 +1,61 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP : ccsdk features
+# ================================================================================
+# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=======================================================
+#
+#
+
+# SLF4J's SimpleLogger configuration file
+# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err.
+
+# Default logging detail level for all instances of SimpleLogger.
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, defaults to "info".
+org.slf4j.simpleLogger.defaultLogLevel=info
+
+# Logging detail level for a SimpleLogger instance named "xxx.yyy.zzz".
+# Must be one of ("trace", "debug", "info", "warn", or "error").
+# If not specified, the default logging detail level is used.
+# org.slf4j.simpleLogger.log.xxx.yyy=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.test=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.database=debug
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.archiveservice=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes.Resources=info
+org.slf4j.simpleLogger.log.org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container=info
+
+# Set to true if you want the current date and time to be included in output messages.
+# Default is false, and will output the number of milliseconds elapsed since startup.
+#org.slf4j.simpleLogger.showDateTime=false
+
+# The date and time format to be used in the output messages.
+# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat.
+# If the format is not specified or is invalid, the default format is used.
+# The default format is yyyy-MM-dd HH:mm:ss:SSS Z.
+#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
+
+# Set to true if you want to output the current thread name.
+# Defaults to true.
+#org.slf4j.simpleLogger.showThreadName=true
+
+# Set to true if you want the Logger instance name to be included in output messages.
+# Defaults to true.
+#org.slf4j.simpleLogger.showLogName=true
+
+# Set to true if you want the last component of the name to be included in output messages.
+# Defaults to false.
+#org.slf4j.simpleLogger.showShortLogName=false
diff --git a/sdnr/wt/devicemanager-onap/pom.xml b/sdnr/wt/devicemanager-onap/pom.xml
new file mode 100644
index 000000000..7c14e88a9
--- /dev/null
+++ b/sdnr/wt/devicemanager-onap/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps.sdnr.wt
+ * ================================================================================
+ * Copyright (C) 2018 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
+ <artifactId>sdnr-wt-devicemanager-onap</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-sdnr-wireless transport :: ONAP micro-services</name>
+ <description>SDN-R wireless transport micro-services (ONAP)</description>
+
+ <modules>
+ <module>adapter-manager</module>
+ <module>onf12</module>
+ <module>onf14</module>
+ <module>openroadm</module>
+ </modules>
+</project>