From eb2a7c97c0007b013bd1784ac17d57be02b63d03 Mon Sep 17 00:00:00 2001 From: Michael DÜrre Date: Thu, 10 Mar 2022 10:39:16 +0100 Subject: migrate sdnr features to phosphorus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix mapper and switch to dom api Updated to use phosphorus version of parent poms Issue-ID: CCSDK-3566 Signed-off-by: Michael DÜrre Change-Id: I98c5bef9286622e0d66b53db687557d798cd53f5 Signed-off-by: Michael DÜrre --- sdnr/northbound/CMNotify/feature/pom.xml | 2 +- sdnr/northbound/CMNotify/installer/pom.xml | 2 +- sdnr/northbound/CMNotify/model/pom.xml | 2 +- sdnr/northbound/CMNotify/pom.xml | 2 +- sdnr/northbound/CMNotify/provider/pom.xml | 2 +- .../sdnr/northbound/cmnotify/TestCMNotify.java | 3 +- sdnr/northbound/addCMHandle/feature/pom.xml | 2 +- sdnr/northbound/addCMHandle/installer/pom.xml | 2 +- sdnr/northbound/addCMHandle/model/pom.xml | 2 +- sdnr/northbound/addCMHandle/pom.xml | 2 +- sdnr/northbound/addCMHandle/provider/pom.xml | 7 +- sdnr/northbound/energysavings/features/pom.xml | 2 +- sdnr/northbound/energysavings/installer/pom.xml | 2 +- sdnr/northbound/energysavings/model/pom.xml | 2 +- sdnr/northbound/energysavings/pom.xml | 2 +- sdnr/northbound/energysavings/provider/pom.xml | 2 +- .../ccsdk-features-sdnr-northbound-all/pom.xml | 2 +- sdnr/northbound/features/installer/pom.xml | 2 +- sdnr/northbound/features/pom.xml | 2 +- sdnr/northbound/oofpcipoc/consumer/pom.xml | 2 +- .../northbound/oofpcipoc/OofpcipocHandleNotif.java | 2 +- sdnr/northbound/oofpcipoc/feature/pom.xml | 2 +- sdnr/northbound/oofpcipoc/installer/pom.xml | 2 +- sdnr/northbound/oofpcipoc/model/pom.xml | 2 +- sdnr/northbound/oofpcipoc/pom.xml | 2 +- sdnr/northbound/oofpcipoc/provider/pom.xml | 2 +- .../sdnr/northbound/oofpcipoc/TestOofpcipoc.java | 3 +- sdnr/northbound/pom.xml | 2 +- sdnr/northbound/ranSlice/feature/pom.xml | 2 +- sdnr/northbound/ranSlice/installer/pom.xml | 2 +- sdnr/northbound/ranSlice/model/pom.xml | 2 +- sdnr/northbound/ranSlice/pom.xml | 2 +- sdnr/northbound/ranSlice/provider/pom.xml | 2 +- .../sdnr/northbound/ranSlice/RANSliceProvider.java | 11 +- sdnr/wt/apigateway/feature/pom.xml | 2 +- sdnr/wt/apigateway/installer/pom.xml | 23 +- sdnr/wt/apigateway/pom.xml | 2 +- sdnr/wt/apigateway/provider/pom.xml | 2 +- sdnr/wt/common-yang/iana-crypt-hash/pom.xml | 2 +- sdnr/wt/common-yang/ietf-alarms/pom.xml | 2 +- sdnr/wt/common-yang/onap/pom.xml | 2 +- sdnr/wt/common-yang/openroadm-pm-types/pom.xml | 2 +- sdnr/wt/common-yang/pom.xml | 2 +- sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml | 2 +- sdnr/wt/common-yang/rfc8341/pom.xml | 2 +- sdnr/wt/common-yang/utils/pom.xml | 9 +- .../sdnr/wt/yang/mapper/YangToolsMapper.java | 27 +- .../sdnr/wt/yang/mapper/YangToolsMapperHelper.java | 38 +- .../YangToolsDeserializerModifier.java | 144 +- .../YangToolsDeserializerModifier2.java | 135 + .../mapperextensions/YangtoolsMapDesirializer.java | 44 + .../YangtoolsMapDesirializer2.java | 36 + .../sdnr/wt/yang/mapper/TestDataMappings.java | 99 - .../features/sdnr/wt/yang/mapper/TestHashMap.java | 80 + .../features/sdnr/wt/yang/mapper/TestMapper.java | 92 - .../sdnr/wt/yang/mapper/TestYangGenSalMapping.java | 286 - sdnr/wt/common/pom.xml | 2 +- .../common/threading/GenericRunnableFactory.java | 32 + .../threading/GenericRunnableFactoryCallback.java | 27 + .../wt/common/threading/KeyBasedThreadpool.java | 93 + sdnr/wt/data-provider/dblib/pom.xml | 2 +- .../dataprovider/database/sqldb/SqlDBClient.java | 74 +- .../database/sqldb/data/HtUserdataManagerBase.java | 2 +- .../database/sqldb/data/HtUserdataManagerImpl.java | 26 +- .../database/sqldb/data/SqlDBDataProvider.java | 7 +- .../sqldb/data/entity/DatabaseIdGenerator.java | 1 - .../sqldb/data/entity/HtDatabaseEventsService.java | 56 +- .../data/entity/HtDatabaseMaintenanceService.java | 9 +- .../database/sqldb/database/SqlDBMapper.java | 26 +- .../database/sqldb/database/SqlDBReaderWriter.java | 93 +- .../sqldb/database/SqlDBReaderWriterFault.java | 4 +- .../sqldb/database/SqlDBReaderWriterPm.java | 6 +- .../sqldb/database/SqlDBReaderWriterUserdata.java | 6 +- .../database/sqldb/database/SqlDBStatusReader.java | 1 + .../database/sqldb/query/CountQuery.java | 2 +- .../database/sqldb/query/InsertQuery.java | 46 +- .../database/sqldb/query/SelectQuery.java | 19 +- .../database/sqldb/query/SqlQuery.java | 9 +- .../database/sqldb/query/UpdateQuery.java | 4 +- .../database/sqldb/query/UpsertQuery.java | 4 + .../dataprovider/dblib/test/TestCRUDMariaDB.java | 4 + .../dblib/test/TestMariaDataProvider.java | 203 +- .../dataprovider/dblib/test/TestQuerySyntax.java | 42 +- .../dblib/test/util/MariaDBTestBase.java | 10 +- .../dblib/src/test/resources/pmdata24h.json | 55 + sdnr/wt/data-provider/feature/pom.xml | 2 +- sdnr/wt/data-provider/installer/pom.xml | 2 +- sdnr/wt/data-provider/model/pom.xml | 2 +- sdnr/wt/data-provider/pom.xml | 2 +- sdnr/wt/data-provider/provider/pom.xml | 15 +- .../data/entity/HtDatabaseEventsService.java | 6 +- .../data/entity/HtDatabaseMaintenanceService.java | 4 +- .../wt/dataprovider/http/about/ODLVersionLUT.java | 2 + .../wt/dataprovider/test/TestCRUDforDatabase.java | 8 +- .../sdnr/wt/dataprovider/test/TestMapper.java | 93 + .../test/TestYangGenSalMappingOpenRoadm.java | 6 +- .../wt/dataprovider/test/util/MariaDBTestBase.java | 15 +- sdnr/wt/data-provider/setup/pom.xml | 2 +- .../setup/istanbul/IstanbulReleaseInformation.java | 146 +- .../setup/jakarta/JakartaReleaseInformation.java | 23 +- .../wt/dataprovider/setup/MariaDBTestBase.java | 15 +- .../wt/dataprovider/setup/TestMariaDBMapper.java | 56 +- sdnr/wt/devicemanager-core/feature/pom.xml | 2 +- sdnr/wt/devicemanager-core/installer/pom.xml | 2 +- sdnr/wt/devicemanager-core/model/pom.xml | 2 +- .../types/EventlogNotificationBuilder.java | 46 + .../types/FaultNotificationBuilder2.java | 49 + sdnr/wt/devicemanager-core/pom.xml | 2 +- sdnr/wt/devicemanager-core/provider/pom.xml | 2 +- .../DeviceManagerDatabaseNotificationService.java | 1 + .../EventlogNotificationBuilder.java | 46 - .../eventdatahandler/ODLEventListenerHandler.java | 4 +- .../ConnectionStatusHousekeepingService.java | 2 +- .../maintenance/impl/MaintenanceCalculator.java | 2 +- .../impl/PerformanceManagerTask.java | 417 +- .../o-ran/ru-fh/feature/pom.xml | 2 +- .../o-ran/ru-fh/installer/pom.xml | 2 +- .../o-ran/ru-fh/model/pom.xml | 2 +- sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml | 2 +- .../o-ran/ru-fh/provider/pom.xml | 2 +- .../oran/impl/DeviceManagerORanImpl.java | 89 - .../oran/impl/ORanChangeNotificationListener.java | 138 - .../oran/impl/ORanFaultNotificationListener.java | 166 - .../oran/impl/ORanFaultToVESFaultMapper.java | 164 - .../oran/impl/ORanNetworkElement.java | 258 - .../oran/impl/ORanNetworkElementFactory.java | 56 - .../oran/impl/ORanNotifToVESEventAssembly.java | 99 - ...ORanRegistrationToVESpnfRegistrationMapper.java | 90 - .../oran/impl/ORanToInternalDataModel.java | 276 - .../oran/impl/binding/DeviceManagerORanImpl.java | 90 + .../binding/ORanChangeNotificationListener.java | 138 + .../binding/ORanFaultNotificationListener.java | 166 + .../impl/binding/ORanFaultToVESFaultMapper.java | 164 + .../oran/impl/binding/ORanNetworkElement.java | 278 + .../impl/binding/ORanNotifToVESEventAssembly.java | 99 + ...ORanRegistrationToVESpnfRegistrationMapper.java | 114 + .../oran/impl/binding/ORanToInternalDataModel.java | 276 + .../oran/impl/dom/DOMNotificationToXPath.java | 235 + .../oran/impl/dom/ORanDMDOMUtility.java | 90 + .../dom/ORanDOMChangeNotificationListener.java | 150 + .../impl/dom/ORanDOMFaultNotificationListener.java | 171 + .../impl/dom/ORanDOMFaultToVESFaultMapper.java | 155 + .../oran/impl/dom/ORanDOMNetworkElement.java | 283 + .../impl/dom/ORanDOMNotifToVESEventAssembly.java | 102 + .../oran/impl/dom/ORanDOMToInternalDataModel.java | 293 + .../oran/impl/dom/ORanDeviceManagerQNames.java | 114 + .../impl/startup/ORanNetworkElementFactory.java | 59 + .../org/opendaylight/blueprint/impl-blueprint.xml | 2 +- .../devicemanager/oran/impl/ComponentHelper.java | 179 - .../wt/devicemanager/oran/impl/TestAlarmNotif.java | 89 - .../oran/impl/TestDeviceManagerORanImpl.java | 50 - .../devicemanager/oran/impl/TestHardwareClass.java | 24 - .../impl/TestORanChangeNotificationListener.java | 110 - .../impl/TestORanFaultNotificationListener.java | 114 - .../oran/impl/TestORanNetworkElement.java | 111 - .../oran/impl/TestORanNetworkElementFactory.java | 94 - .../TestORanRegistrationToVESpnfRegistration.java | 72 - .../oran/impl/TestORanToInternalDataModel.java | 97 - .../oran/impl/binding/ComponentHelper.java | 179 + .../oran/impl/binding/TestAlarmNotif.java | 88 + .../oran/impl/binding/TestHardwareClass.java | 24 + .../TestORanChangeNotificationListener.java | 111 + .../binding/TestORanFaultNotificationListener.java | 115 + .../oran/impl/binding/TestORanNetworkElement.java | 115 + .../impl/binding/TestORanToInternalDataModel.java | 96 + .../oran/impl/dom/TestDeviceManagerORanImpl.java | 52 + .../oran/impl/dom/TestORANInventory.java | 250 + .../oran/impl/dom/TestORANReadHardware.java | 383 + .../dom/TestORanDOMFaultNotificationListener.java | 164 + .../oran/impl/dom/TestORanDOMNetworkElement.java | 111 + .../oran/impl/dom/TestORanDOMNotification.java | 184 + .../impl/dom/TestORanDOMToInternalDataModel.java | 202 + .../impl/dom/TestORanNetworkElementFactory.java | 101 + .../TestORanRegistrationToVESpnfRegistration.java | 119 + .../oran/impl/dom/YangParserTestUtils.java | 380 + .../test/resources/iana-crypt-hash@2014-08-06.yang | 120 + .../provider/src/test/resources/iana-hardware.yang | 180 + .../provider/src/test/resources/ietf-hardware.xml | 418 + .../provider/src/test/resources/ietf-hardware.yang | 1141 + .../src/test/resources/ietf-inet-types.yang | 429 + .../src/test/resources/ietf-netconf-acm.yang | 464 + .../src/test/resources/ietf-system@2014-08-06.yang | 800 + .../src/test/resources/ietf-yang-types.yang | 435 + .../test/resources/o-ran-hardware@2019-07-03.yang | 271 + .../provider/src/test/resources/onap-system.xml | 15 + .../provider/src/test/resources/onap-system.yang | 59 + .../adapter-manager/feature/pom.xml | 2 +- .../adapter-manager/installer/pom.xml | 2 +- .../adapter-manager/model/pom.xml | 2 +- sdnr/wt/devicemanager-onap/adapter-manager/pom.xml | 2 +- .../adapter-manager/provider/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf12/feature/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf12/installer/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf12/model/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf12/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf12/provider/pom.xml | 2 +- .../onf/ifpac/WrapperPTPModelRev170208.java | 3 +- .../PerformanceDataAirInterface170324Builder.java | 3 +- .../PerformanceDataAirInterface180907Builder.java | 2 +- .../PerformanceDataAirInterface181010Builder.java | 2 +- .../equipment/test/TestExtendedEquipment.java | 3 +- .../test/TestWrapperMicrowaveModelRev170324.java | 21 +- .../test/TestWrapperMicrowaveModelRev180907.java | 19 +- .../test/TestWrapperMicrowaveModelRev181010.java | 21 +- .../ifpac/microwave/test/TestWrapperNoPmData.java | 2 +- .../ifpac/test/TestWrapperPTPModelRev170208.java | 5 +- sdnr/wt/devicemanager-onap/onf14/feature/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf14/installer/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf14/model/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf14/pom.xml | 2 +- sdnr/wt/devicemanager-onap/onf14/provider/pom.xml | 73 +- .../onf14/dom/impl/DeviceManagerOnf14Impl.java | 88 + .../Onf14DomAirInterfaceNotificationListener.java | 168 + ...14DomEthernetContainerNotificationListener.java | 151 + .../onf14/dom/impl/Onf14DomNetworkElement.java | 163 + .../dom/impl/Onf14DomNetworkElementFactory.java | 54 + .../Onf14DomWireInterfaceNotificationListener.java | 145 + .../dataprovider/InternalDataModelSeverity.java | 46 + .../dataprovider/Onf14DomToInternalDataModel.java | 126 + .../impl/equipment/Onf14DomEquipmentManager.java | 171 + .../interfaces/Onf14DomInterfacePacManager.java | 458 + .../impl/interfaces/TechnologySpecificPacKeys.java | 53 + .../devicemanager/onf14/dom/impl/util/Debug.java | 72 + .../onf14/dom/impl/util/Onf14DMDOMUtility.java | 77 + .../dom/impl/util/Onf14DevicemanagerQNames.java | 251 + .../onf14/impl/DeviceManagerOnf14Impl.java | 89 - .../onf14/impl/Onf14Configuration.java | 54 - .../onf14/impl/Onf14DomNetworkElement.java | 218 - .../onf14/impl/Onf14NetworkElement.java | 552 - .../onf14/impl/Onf14NetworkElementFactory.java | 66 - .../dataprovider/InternalDataModelSeverity.java | 55 - .../dataprovider/Onf14ToInternalDataModel.java | 130 - .../impl/equipment/Onf14DomEquipmentManager.java | 265 - .../onf14/impl/interfaces/Onf14AirInterface.java | 39 - .../Onf14AirInterfaceNotificationListener.java | 146 - .../interfaces/Onf14DomInterfacePacManager.java | 419 - .../impl/interfaces/Onf14EthernetContainer.java | 40 - ...Onf14EthernetContainerNotificationListener.java | 141 - .../onf14/impl/interfaces/Onf14WireInterface.java | 40 - .../Onf14WireInterfaceNotificationListener.java | 149 - .../impl/interfaces/TechnologySpecificPacKeys.java | 54 - .../wt/devicemanager/onf14/impl/util/Debug.java | 72 - .../sdnr/wt/devicemanager/onf14/yang/Control.java | 26 - .../wt/devicemanager/onf14/yang/OperatorState.java | 22 - .../sdnr/wt/devicemanager/onf14/yang/Resource.java | 22 - .../wt/devicemanager/onf14/yang/ResourceMatch.java | 22 - .../onf14/yang/SeverityWithClear.java | 22 - .../wt/devicemanager/onf14/yang/package-info.java | 18 - .../org/opendaylight/blueprint/impl-blueprint.xml | 2 +- .../onf14/TestDeviceManagerOnf14Impl.java | 55 - .../TestOnf14AirInterfaceNotificationListener.java | 198 - .../onf14/TestOnf14DomInterfacePacManager.java | 184 - .../onf14/TestOnf14DomNetworkElement.java | 89 - ...Onf14EthernetContainerNotificationListener.java | 197 - .../onf14/TestOnf14NetworkElement.java | 177 - .../onf14/TestOnf14NetworkElementFactory.java | 106 - .../onf14/TestOnf14ToInternalDataModel2.java | 127 - ...TestOnf14WireInterfaceNotificationListener.java | 198 - .../sdnr/wt/devicemanager/onf14/TestSeverity.java | 80 - .../onf14/dom/TestDeviceManagerOnf14Impl.java | 56 + ...stOnf14DomAirInterfaceNotificationListener.java | 157 + ...14DomEthernetContainerNotificationListener.java | 156 + .../onf14/dom/TestOnf14DomInterfacePacManager.java | 52 + .../onf14/dom/TestOnf14DomNetworkElement.java | 85 + ...tOnf14DomWireInterfaceNotificationListener.java | 157 + .../onf14/dom/TestOnf14NetworkElementFactory.java | 88 + .../onf14/dom/TestOnf14ToInternalDataModel2.java | 93 + .../onf14/util/NetconfDeviceNotification.java | 40 + .../onf14/util/Onf14DomTestUtils.java | 132 + .../onf14/util/YangParserTestUtils.java | 380 + .../test/resources/ControlConstruct-data-test.json | 24298 +++++++++++++++++++ .../test/resources/ControlConstruct-data-test.xml | 4725 ++++ .../src/test/resources/air-interface-2-0.yang | 1832 ++ .../src/test/resources/co-channel-profile-1-0.yang | 285 + .../src/test/resources/core-model-1-4.yang | 3133 +++ .../src/test/resources/ethernet-container-2-0.yang | 1955 ++ .../test/resources/hybrid-mw-structure-2-0.yang | 945 + .../src/test/resources/ietf-yang-types.yang | 435 + .../src/test/resources/ip-interface-1-0.yang | 1198 + .../src/test/resources/l-3vpn-profile-1-0.yang | 499 + .../src/test/resources/ltp-augment-1-0.yang | 102 + .../provider/src/test/resources/mac-fc-1-0.yang | 569 + .../provider/src/test/resources/mac-fd-1-0.yang | 585 + .../src/test/resources/mac-interface-1-0.yang | 1479 ++ .../resources/pure-ethernet-structure-2-0.yang | 888 + .../src/test/resources/qos-profile-1-0.yang | 534 + .../src/test/resources/tdm-container-2-0.yang | 899 + .../provider/src/test/resources/vlan-fc-1-0.yang | 523 + .../provider/src/test/resources/vlan-fd-1-0.yang | 836 + .../src/test/resources/vlan-interface-1-0.yang | 1069 + .../src/test/resources/wire-interface-2-0.yang | 1819 ++ .../src/test/resources/wred-profile-1-0.yang | 279 + .../devicemanager-onap/openroadm/feature/pom.xml | 2 +- .../devicemanager-onap/openroadm/installer/pom.xml | 2 +- sdnr/wt/devicemanager-onap/openroadm/model/pom.xml | 2 +- sdnr/wt/devicemanager-onap/openroadm/pom.xml | 2 +- .../devicemanager-onap/openroadm/provider/pom.xml | 2 +- .../devicemanager-onap/openroadm71/feature/pom.xml | 2 +- .../openroadm71/installer/pom.xml | 2 +- .../devicemanager-onap/openroadm71/model/pom.xml | 2 +- sdnr/wt/devicemanager-onap/openroadm71/pom.xml | 2 +- .../openroadm71/provider/pom.xml | 2 +- .../feature-devicemanager-base/pom.xml | 2 +- .../feature-devicemanager/pom.xml | 2 +- sdnr/wt/featureaggregator/feature-oauth/pom.xml | 2 +- sdnr/wt/featureaggregator/feature/pom.xml | 2 +- sdnr/wt/featureaggregator/installer/pom.xml | 2 +- sdnr/wt/featureaggregator/pom.xml | 2 +- sdnr/wt/helpserver/feature/pom.xml | 2 +- sdnr/wt/helpserver/installer/pom.xml | 2 +- sdnr/wt/helpserver/pom.xml | 2 +- sdnr/wt/helpserver/provider/pom.xml | 2 +- sdnr/wt/mountpoint-registrar/feature/pom.xml | 2 +- sdnr/wt/mountpoint-registrar/installer/pom.xml | 2 +- sdnr/wt/mountpoint-registrar/model/pom.xml | 2 +- sdnr/wt/mountpoint-registrar/pom.xml | 2 +- sdnr/wt/mountpoint-registrar/provider/pom.xml | 2 +- sdnr/wt/mountpoint-state-provider/feature/pom.xml | 2 +- .../wt/mountpoint-state-provider/installer/pom.xml | 2 +- sdnr/wt/mountpoint-state-provider/pom.xml | 2 +- sdnr/wt/mountpoint-state-provider/provider/pom.xml | 2 +- .../impl/MountpointStatePublisher.java | 7 +- sdnr/wt/netconfnode-state-service/feature/pom.xml | 2 +- .../wt/netconfnode-state-service/installer/pom.xml | 2 +- sdnr/wt/netconfnode-state-service/model/pom.xml | 2 +- .../netconfnodestateservice/NetconfAccessor.java | 1 - .../NetconfDomAccessor.java | 8 +- sdnr/wt/netconfnode-state-service/pom.xml | 2 +- sdnr/wt/netconfnode-state-service/provider/pom.xml | 4 +- .../impl/NetconfNodeStateServiceImpl.java | 5 +- .../impl/access/NetconfAccessorManager.java | 3 + .../impl/access/NetconfCommunicatorManager.java | 1 - .../impl/access/dom/DomContext.java | 2 +- .../impl/access/dom/DomParser.java | 4 +- .../impl/access/dom/NetconfDomAccessorImpl.java | 34 +- .../org/opendaylight/blueprint/impl-blueprint.xml | 4 +- .../test/TestNetconfNodeStateService.java | 12 +- .../test/example/ExampleConfig.java | 11 +- sdnr/wt/oauth-provider/pom.xml | 2 +- sdnr/wt/oauth-provider/provider-jar/pom.xml | 2 +- .../sdnr/wt/oauthprovider/OAuth2Realm.java | 2 +- .../sdnr/wt/oauthprovider/data/OAuthToken.java | 1 - .../filters/AnyRoleHttpAuthenticationFilter.java | 2 +- .../wt/oauthprovider/http/AuthHttpServlet.java | 2 +- .../wt/oauthprovider/providers/AuthService.java | 2 +- .../wt/oauthprovider/providers/TokenCreator.java | 2 +- .../wt/oauthprovider/test/TestAuthHttpServlet.java | 3 +- .../sdnr/wt/oauthprovider/test/TestRealm.java | 4 +- sdnr/wt/oauth-provider/provider-osgi/pom.xml | 2 +- sdnr/wt/odlux/apps/apiDemo/pom.xml | 3 +- sdnr/wt/odlux/apps/app-feature/pom.xml | 2 +- sdnr/wt/odlux/apps/app-installer/pom.xml | 2 +- sdnr/wt/odlux/apps/configurationApp/pom.xml | 2 +- sdnr/wt/odlux/apps/connectApp/pom.xml | 2 +- sdnr/wt/odlux/apps/demoApp/pom.xml | 2 +- sdnr/wt/odlux/apps/eventLogApp/pom.xml | 2 +- sdnr/wt/odlux/apps/faultApp/pom.xml | 2 +- sdnr/wt/odlux/apps/helpApp/pom.xml | 2 +- sdnr/wt/odlux/apps/inventoryApp/pom.xml | 2 +- sdnr/wt/odlux/apps/maintenanceApp/pom.xml | 2 +- sdnr/wt/odlux/apps/mediatorApp/pom.xml | 2 +- sdnr/wt/odlux/apps/minimumApp/pom.xml | 2 +- sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml | 2 +- sdnr/wt/odlux/core/features/pom.xml | 2 +- sdnr/wt/odlux/core/installer/pom.xml | 2 +- sdnr/wt/odlux/core/model/pom.xml | 2 +- sdnr/wt/odlux/core/pom.xml | 2 +- sdnr/wt/odlux/core/provider/pom.xml | 2 +- sdnr/wt/odlux/framework/pom.xml | 3 +- sdnr/wt/odlux/installer/pom.xml | 6 +- sdnr/wt/odlux/pom.xml | 2 +- sdnr/wt/pom.xml | 2 +- sdnr/wt/readthedocs/pom.xml | 2 +- sdnr/wt/websocketmanager/feature/pom.xml | 2 +- sdnr/wt/websocketmanager/installer/pom.xml | 2 +- sdnr/wt/websocketmanager/model/pom.xml | 2 +- sdnr/wt/websocketmanager/pom.xml | 2 +- sdnr/wt/websocketmanager/provider/pom.xml | 2 +- .../websocketmanager/WebSocketManagerProvider.java | 11 +- .../websocketmanager/WebSocketManagerSocket.java | 5 +- .../wt/websocketmanager2/test/TestSerializer.java | 15 - 381 files changed, 64234 insertions(+), 7838 deletions(-) create mode 100644 sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier2.java create mode 100644 sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer.java create mode 100644 sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer2.java delete mode 100644 sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestDataMappings.java create mode 100644 sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestHashMap.java delete mode 100644 sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestMapper.java delete mode 100644 sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestYangGenSalMapping.java create mode 100644 sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactory.java create mode 100644 sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactoryCallback.java create mode 100644 sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/KeyBasedThreadpool.java create mode 100644 sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json create mode 100644 sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java create mode 100644 sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java create mode 100644 sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java delete mode 100644 sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/DeviceManagerORanImpl.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanChangeNotificationListener.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultNotificationListener.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultToVESFaultMapper.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNetworkElement.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNotifToVESEventAssembly.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanRegistrationToVESpnfRegistrationMapper.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanToInternalDataModel.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/DOMNotificationToXPath.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDMDOMUtility.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMChangeNotificationListener.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultNotificationListener.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultToVESFaultMapper.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNetworkElement.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNotifToVESEventAssembly.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMToInternalDataModel.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDeviceManagerQNames.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/startup/ORanNetworkElementFactory.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ComponentHelper.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestAlarmNotif.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestDeviceManagerORanImpl.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestHardwareClass.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanChangeNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanFaultNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElementFactory.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanRegistrationToVESpnfRegistration.java delete mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanToInternalDataModel.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNotification.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/YangParserTestUtils.java create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-crypt-hash@2014-08-06.yang create mode 100755 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-hardware.yang create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.xml create mode 100755 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.yang create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-inet-types.yang create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-netconf-acm.yang create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-system@2014-08-06.yang create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-yang-types.yang create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/o-ran-hardware@2019-07-03.yang create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.xml create mode 100644 sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/DeviceManagerOnf14Impl.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomAirInterfaceNotificationListener.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomEthernetContainerNotificationListener.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElement.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElementFactory.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomWireInterfaceNotificationListener.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/InternalDataModelSeverity.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/Onf14DomToInternalDataModel.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/equipment/Onf14DomEquipmentManager.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/Onf14DomInterfacePacManager.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/TechnologySpecificPacKeys.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Debug.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DMDOMUtility.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DevicemanagerQNames.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomInterfacePacManager.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomNetworkElement.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestDeviceManagerOnf14Impl.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomAirInterfaceNotificationListener.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomEthernetContainerNotificationListener.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomInterfacePacManager.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomNetworkElement.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomWireInterfaceNotificationListener.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14NetworkElementFactory.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14ToInternalDataModel2.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/NetconfDeviceNotification.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/Onf14DomTestUtils.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/YangParserTestUtils.java create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.json create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.xml create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/air-interface-2-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/co-channel-profile-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/core-model-1-4.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ethernet-container-2-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/hybrid-mw-structure-2-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ietf-yang-types.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ip-interface-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/l-3vpn-profile-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ltp-augment-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fc-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fd-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-interface-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/pure-ethernet-structure-2-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/qos-profile-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/tdm-container-2-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fc-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fd-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-interface-1-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wire-interface-2-0.yang create mode 100644 sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wred-profile-1-0.yang (limited to 'sdnr') diff --git a/sdnr/northbound/CMNotify/feature/pom.xml b/sdnr/northbound/CMNotify/feature/pom.xml index 40bae8fad..741651801 100644 --- a/sdnr/northbound/CMNotify/feature/pom.xml +++ b/sdnr/northbound/CMNotify/feature/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/CMNotify/installer/pom.xml b/sdnr/northbound/CMNotify/installer/pom.xml index 57f2c5ba7..be9fffaa0 100644 --- a/sdnr/northbound/CMNotify/installer/pom.xml +++ b/sdnr/northbound/CMNotify/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/CMNotify/model/pom.xml b/sdnr/northbound/CMNotify/model/pom.xml index 4a684477c..bae407576 100644 --- a/sdnr/northbound/CMNotify/model/pom.xml +++ b/sdnr/northbound/CMNotify/model/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/CMNotify/pom.xml b/sdnr/northbound/CMNotify/pom.xml index d40e4de40..463d1a6e9 100644 --- a/sdnr/northbound/CMNotify/pom.xml +++ b/sdnr/northbound/CMNotify/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/CMNotify/provider/pom.xml b/sdnr/northbound/CMNotify/provider/pom.xml index aeb6fa08a..320e5841c 100644 --- a/sdnr/northbound/CMNotify/provider/pom.xml +++ b/sdnr/northbound/CMNotify/provider/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/CMNotify/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/cmnotify/TestCMNotify.java b/sdnr/northbound/CMNotify/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/cmnotify/TestCMNotify.java index f062e51b6..6c78e0863 100644 --- a/sdnr/northbound/CMNotify/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/cmnotify/TestCMNotify.java +++ b/sdnr/northbound/CMNotify/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/cmnotify/TestCMNotify.java @@ -28,6 +28,7 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.Uint64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,7 +70,7 @@ public class TestCMNotify { NbrlistChangeNotificationInputBuilder inputBuilder = new NbrlistChangeNotificationInputBuilder(); - inputBuilder.setFapServiceNumberOfEntriesChanged(new BigInteger("1")); + inputBuilder.setFapServiceNumberOfEntriesChanged(Uint64.valueOf("1")); // TODO: currently initialize SvcLogicServiceClient is failing, need to fix ListenableFuture> future = cMNotifyProvider diff --git a/sdnr/northbound/addCMHandle/feature/pom.xml b/sdnr/northbound/addCMHandle/feature/pom.xml index 169a1b88a..3c44d3321 100644 --- a/sdnr/northbound/addCMHandle/feature/pom.xml +++ b/sdnr/northbound/addCMHandle/feature/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/addCMHandle/installer/pom.xml b/sdnr/northbound/addCMHandle/installer/pom.xml index 5a792481a..8ba737cc2 100755 --- a/sdnr/northbound/addCMHandle/installer/pom.xml +++ b/sdnr/northbound/addCMHandle/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/addCMHandle/model/pom.xml b/sdnr/northbound/addCMHandle/model/pom.xml index ff88c64b7..77b026fec 100644 --- a/sdnr/northbound/addCMHandle/model/pom.xml +++ b/sdnr/northbound/addCMHandle/model/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/addCMHandle/pom.xml b/sdnr/northbound/addCMHandle/pom.xml index 60f2298e4..30ff3364e 100644 --- a/sdnr/northbound/addCMHandle/pom.xml +++ b/sdnr/northbound/addCMHandle/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/addCMHandle/provider/pom.xml b/sdnr/northbound/addCMHandle/provider/pom.xml index d4542c06a..b76271685 100644 --- a/sdnr/northbound/addCMHandle/provider/pom.xml +++ b/sdnr/northbound/addCMHandle/provider/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT @@ -58,11 +58,6 @@ mdsal-binding-dom-adapter provided - - org.opendaylight.mdsal - mdsal-binding-generator-impl - provided - org.opendaylight.mdsal mdsal-binding-runtime-spi diff --git a/sdnr/northbound/energysavings/features/pom.xml b/sdnr/northbound/energysavings/features/pom.xml index 1955ff3c9..23b81ad57 100644 --- a/sdnr/northbound/energysavings/features/pom.xml +++ b/sdnr/northbound/energysavings/features/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent feature-repo-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/energysavings/installer/pom.xml b/sdnr/northbound/energysavings/installer/pom.xml index cb59de03f..049a34840 100755 --- a/sdnr/northbound/energysavings/installer/pom.xml +++ b/sdnr/northbound/energysavings/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/energysavings/model/pom.xml b/sdnr/northbound/energysavings/model/pom.xml index 76dd9114e..4e5727d45 100644 --- a/sdnr/northbound/energysavings/model/pom.xml +++ b/sdnr/northbound/energysavings/model/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/energysavings/pom.xml b/sdnr/northbound/energysavings/pom.xml index 757b036d7..cd5e1914d 100644 --- a/sdnr/northbound/energysavings/pom.xml +++ b/sdnr/northbound/energysavings/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/energysavings/provider/pom.xml b/sdnr/northbound/energysavings/provider/pom.xml index ba62e6446..0abfbe43a 100644 --- a/sdnr/northbound/energysavings/provider/pom.xml +++ b/sdnr/northbound/energysavings/provider/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/features/ccsdk-features-sdnr-northbound-all/pom.xml b/sdnr/northbound/features/ccsdk-features-sdnr-northbound-all/pom.xml index 324ae8a9e..fda7bb190 100644 --- a/sdnr/northbound/features/ccsdk-features-sdnr-northbound-all/pom.xml +++ b/sdnr/northbound/features/ccsdk-features-sdnr-northbound-all/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/features/installer/pom.xml b/sdnr/northbound/features/installer/pom.xml index 67d12ed4f..c98af87ad 100644 --- a/sdnr/northbound/features/installer/pom.xml +++ b/sdnr/northbound/features/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/features/pom.xml b/sdnr/northbound/features/pom.xml index b1c3e28ce..a06245f71 100644 --- a/sdnr/northbound/features/pom.xml +++ b/sdnr/northbound/features/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/oofpcipoc/consumer/pom.xml b/sdnr/northbound/oofpcipoc/consumer/pom.xml index a235163d9..e70c6ad68 100644 --- a/sdnr/northbound/oofpcipoc/consumer/pom.xml +++ b/sdnr/northbound/oofpcipoc/consumer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java index dd1ca7086..b9f5b8176 100644 --- a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java +++ b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java @@ -144,7 +144,7 @@ public class OofpcipocHandleNotif implements AutoCloseable, OofpcipocListener { LteRanNeighborListInUseLteCellChanged lteRanElement = lteRanEntry.getValue(); LTENeighborListInUseLTECell lTENeighborListInUseLTECellElement = new LTENeighborListInUseLTECell(); lTENeighborListInUseLTECellElement.setAlias(lteRanElement.getCid()); - lTENeighborListInUseLTECellElement.setBlacklisted(lteRanElement.isBlacklisted().toString()); + lTENeighborListInUseLTECellElement.setBlacklisted(lteRanElement.getBlacklisted().toString()); lTENeighborListInUseLTECellElement.setCid(lteRanElement.getCid()); lTENeighborListInUseLTECellElement.setEnable(TRUE); lTENeighborListInUseLTECellElement.setMustInclude(TRUE); diff --git a/sdnr/northbound/oofpcipoc/feature/pom.xml b/sdnr/northbound/oofpcipoc/feature/pom.xml index cc9df4ad3..6cece0244 100644 --- a/sdnr/northbound/oofpcipoc/feature/pom.xml +++ b/sdnr/northbound/oofpcipoc/feature/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/oofpcipoc/installer/pom.xml b/sdnr/northbound/oofpcipoc/installer/pom.xml index 4a3fb90ec..46b265326 100644 --- a/sdnr/northbound/oofpcipoc/installer/pom.xml +++ b/sdnr/northbound/oofpcipoc/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/oofpcipoc/model/pom.xml b/sdnr/northbound/oofpcipoc/model/pom.xml index e13d22031..784421dec 100644 --- a/sdnr/northbound/oofpcipoc/model/pom.xml +++ b/sdnr/northbound/oofpcipoc/model/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/oofpcipoc/pom.xml b/sdnr/northbound/oofpcipoc/pom.xml index 37ca51373..b8713a4e7 100644 --- a/sdnr/northbound/oofpcipoc/pom.xml +++ b/sdnr/northbound/oofpcipoc/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/oofpcipoc/provider/pom.xml b/sdnr/northbound/oofpcipoc/provider/pom.xml index 62c83f831..039333760 100644 --- a/sdnr/northbound/oofpcipoc/provider/pom.xml +++ b/sdnr/northbound/oofpcipoc/provider/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java index 597c75cef..e27fccadb 100644 --- a/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java +++ b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java @@ -25,6 +25,7 @@ import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.Uint64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -70,7 +71,7 @@ public class TestOofpcipoc { ConfigurationPhyCellIdInputBuilder inputBuilder = new ConfigurationPhyCellIdInputBuilder(); - inputBuilder.setFapServiceNumberOfEntries(new BigInteger("1")); + inputBuilder.setFapServiceNumberOfEntries(Uint64.valueOf("1")); // TODO: currently initialize SvcLogicServiceClient is failing, need to fix ListenableFuture> future = oofpcipocProvider diff --git a/sdnr/northbound/pom.xml b/sdnr/northbound/pom.xml index 97a8236d6..bb6f0a389 100644 --- a/sdnr/northbound/pom.xml +++ b/sdnr/northbound/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/ranSlice/feature/pom.xml b/sdnr/northbound/ranSlice/feature/pom.xml index 5fd71bb90..1b9d049c5 100644 --- a/sdnr/northbound/ranSlice/feature/pom.xml +++ b/sdnr/northbound/ranSlice/feature/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/ranSlice/installer/pom.xml b/sdnr/northbound/ranSlice/installer/pom.xml index 77d453624..f69b7d13e 100644 --- a/sdnr/northbound/ranSlice/installer/pom.xml +++ b/sdnr/northbound/ranSlice/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/ranSlice/model/pom.xml b/sdnr/northbound/ranSlice/model/pom.xml index 20aea181f..8adb1d43f 100644 --- a/sdnr/northbound/ranSlice/model/pom.xml +++ b/sdnr/northbound/ranSlice/model/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/ranSlice/pom.xml b/sdnr/northbound/ranSlice/pom.xml index 52d564be4..c27af8243 100644 --- a/sdnr/northbound/ranSlice/pom.xml +++ b/sdnr/northbound/ranSlice/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/ranSlice/provider/pom.xml b/sdnr/northbound/ranSlice/provider/pom.xml index 43a8ba0ce..f99427d35 100644 --- a/sdnr/northbound/ranSlice/provider/pom.xml +++ b/sdnr/northbound/ranSlice/provider/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceProvider.java b/sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceProvider.java index fbaab938c..7c690d163 100644 --- a/sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceProvider.java +++ b/sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceProvider.java @@ -37,6 +37,9 @@ import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.common.header.Commo import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.status.StatusBuilder; import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.Uint16; +import org.slf4j.Logger; + import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -403,7 +406,7 @@ public class RANSliceProvider implements AutoCloseable, RanSliceApiService { if (input == null) { LOG.debug("Rejecting " +rpcName+ " because of invalid input"); - statusBuilder.setCode(RANSliceResponseCode.REJECT_INVALID_INPUT.getValue()); + statusBuilder.setCode(Uint16.valueOf(RANSliceResponseCode.REJECT_INVALID_INPUT.getValue())); statusBuilder.setMessage("REJECT - INVALID INPUT. Missing input"); CommonHeaderBuilder hBuilder = new CommonHeaderBuilder(); hBuilder.setApiVer("1"); @@ -442,14 +445,14 @@ public class RANSliceProvider implements AutoCloseable, RanSliceApiService { catch (Exception e) { LOG.error("Caught exception executing service logic for "+ rpcName, e); - statusBuilder.setCode(RANSliceResponseCode.FAILURE_DG_FAILURE.getValue()); + statusBuilder.setCode(Uint16.valueOf(RANSliceResponseCode.FAILURE_DG_FAILURE.getValue())); statusBuilder.setMessage("FAILURE - DG FAILURE ("+e.getMessage()+")"); throw new RANSliceRpcInvocationException(statusBuilder.build(), hBuilder.build()); } } else { LOG.error("No service logic active for RANSlice: '" + rpcName + "'"); - statusBuilder.setCode(RANSliceResponseCode.REJECT_DG_NOT_FOUND.getValue()); + statusBuilder.setCode(Uint16.valueOf(RANSliceResponseCode.REJECT_DG_NOT_FOUND.getValue())); statusBuilder.setMessage("FAILURE - DG not found for action "+rpcName); throw new RANSliceRpcInvocationException(statusBuilder.build(), hBuilder.build()); } @@ -458,7 +461,7 @@ public class RANSliceProvider implements AutoCloseable, RanSliceApiService { { LOG.error("Caught exception looking for service logic", e); - statusBuilder.setCode(RANSliceResponseCode.FAILURE_DG_FAILURE.getValue()); + statusBuilder.setCode(Uint16.valueOf(RANSliceResponseCode.FAILURE_DG_FAILURE.getValue())); statusBuilder.setMessage("FAILURE - Unexpected error looking for DG ("+e.getMessage()+")"); throw new RANSliceRpcInvocationException(statusBuilder.build(), hBuilder.build()); } diff --git a/sdnr/wt/apigateway/feature/pom.xml b/sdnr/wt/apigateway/feature/pom.xml index 11f02d459..65e072657 100644 --- a/sdnr/wt/apigateway/feature/pom.xml +++ b/sdnr/wt/apigateway/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/apigateway/installer/pom.xml b/sdnr/wt/apigateway/installer/pom.xml index 426a8bee7..ef6e23920 100755 --- a/sdnr/wt/apigateway/installer/pom.xml +++ b/sdnr/wt/apigateway/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT @@ -90,25 +90,6 @@ org.apache.maven.plugins maven-dependency-plugin - - - - - - - - - - - - - - - - - - - copy-nested-dependencies @@ -124,8 +105,6 @@ true false false - - diff --git a/sdnr/wt/apigateway/pom.xml b/sdnr/wt/apigateway/pom.xml index 499caaaaf..ca0027baa 100755 --- a/sdnr/wt/apigateway/pom.xml +++ b/sdnr/wt/apigateway/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/apigateway/provider/pom.xml b/sdnr/wt/apigateway/provider/pom.xml index 898b91599..3dd16822a 100644 --- a/sdnr/wt/apigateway/provider/pom.xml +++ b/sdnr/wt/apigateway/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/iana-crypt-hash/pom.xml b/sdnr/wt/common-yang/iana-crypt-hash/pom.xml index a6aaa8f76..6bd1b3e8b 100755 --- a/sdnr/wt/common-yang/iana-crypt-hash/pom.xml +++ b/sdnr/wt/common-yang/iana-crypt-hash/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/ietf-alarms/pom.xml b/sdnr/wt/common-yang/ietf-alarms/pom.xml index fb181a67b..eb24462bb 100755 --- a/sdnr/wt/common-yang/ietf-alarms/pom.xml +++ b/sdnr/wt/common-yang/ietf-alarms/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/onap/pom.xml b/sdnr/wt/common-yang/onap/pom.xml index d3960ed91..102b12f4f 100755 --- a/sdnr/wt/common-yang/onap/pom.xml +++ b/sdnr/wt/common-yang/onap/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/openroadm-pm-types/pom.xml b/sdnr/wt/common-yang/openroadm-pm-types/pom.xml index 384d8d786..7fe125893 100755 --- a/sdnr/wt/common-yang/openroadm-pm-types/pom.xml +++ b/sdnr/wt/common-yang/openroadm-pm-types/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/pom.xml b/sdnr/wt/common-yang/pom.xml index 76f0aa125..15cfd1da8 100755 --- a/sdnr/wt/common-yang/pom.xml +++ b/sdnr/wt/common-yang/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml b/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml index 4b6cc612e..ae8a7b7e7 100755 --- a/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml +++ b/sdnr/wt/common-yang/rfc7317-ietf-system/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/rfc8341/pom.xml b/sdnr/wt/common-yang/rfc8341/pom.xml index d2bdbeaea..b7180e020 100755 --- a/sdnr/wt/common-yang/rfc8341/pom.xml +++ b/sdnr/wt/common-yang/rfc8341/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common-yang/utils/pom.xml b/sdnr/wt/common-yang/utils/pom.xml index dd844815a..3708d0470 100644 --- a/sdnr/wt/common-yang/utils/pom.xml +++ b/sdnr/wt/common-yang/utils/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT @@ -73,17 +73,10 @@ mdsal-dom-api provided - - ${project.groupId} - sdnr-wt-data-provider-model - ${project.version} - test - org.opendaylight.netconf sal-netconf-connector test - diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java index f406ea97d..7d73afae0 100644 --- a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java +++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapper.java @@ -22,11 +22,13 @@ package org.onap.ccsdk.features.sdnr.wt.yang.mapper; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.KeyDeserializer; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions.YangToolsBuilderAnnotationIntrospector; import org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions.YangToolsModule; import org.slf4j.Logger; @@ -44,7 +46,7 @@ public class YangToolsMapper extends ObjectMapper { private final YangToolsBuilderAnnotationIntrospector annotationIntrospector; private final YangToolsModule module; private static final long serialVersionUID = 1L; - + private boolean isModuleRegistered=false; public YangToolsMapper() { this(new YangToolsBuilderAnnotationIntrospector()); } @@ -54,13 +56,12 @@ public class YangToolsMapper extends ObjectMapper { this.annotationIntrospector = yangToolsBuilderAnnotationIntrospector; this.module = new YangToolsModule(); + this.registerModule(this.module); configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE); + setPropertyNamingStrategy(PropertyNamingStrategies.KEBAB_CASE); setSerializationInclusion(Include.NON_NULL); enable(MapperFeature.USE_GETTERS_AS_SETTERS); setAnnotationIntrospector(yangToolsBuilderAnnotationIntrospector); - registerModule(this.module); - } public void addDeserializer(Class clsToDeserialize, String builderClassName) { this.annotationIntrospector.addDeserializer(clsToDeserialize, builderClassName); @@ -69,5 +70,21 @@ public class YangToolsMapper extends ObjectMapper { public void addKeyDeserializer(Class type, KeyDeserializer deserializer) { this.module.addKeyDeserializer(type, deserializer); } + @Override + public T readValue(String content, Class valueType) throws JsonProcessingException, JsonMappingException { + if(!this.isModuleRegistered) { + this.registerModule(this.module); + this.isModuleRegistered=true; + } + return super.readValue(content, valueType); + } + @Override + public String writeValueAsString(Object value) throws JsonProcessingException { + if(!this.isModuleRegistered) { + this.registerModule(this.module); + this.isModuleRegistered=true; + } + return super.writeValueAsString(value); + } } diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java index d468e075c..fe7631a6d 100644 --- a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java +++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/YangToolsMapperHelper.java @@ -22,6 +22,8 @@ package org.onap.ccsdk.features.sdnr.wt.yang.mapper; import com.fasterxml.jackson.databind.DeserializationContext; +import com.google.common.collect.Maps; + import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -32,6 +34,7 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Nullable; @@ -40,6 +43,8 @@ import org.opendaylight.mdsal.dom.api.DOMNotification; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.EventInstantAware; +import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.Notification; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; @@ -278,12 +283,6 @@ public class YangToolsMapperHelper { return notification instanceof DOMEvent; } - /** - * Get time instant from notification if available or default - * @param notification - * @param defaultValue - * @return DateAndTime - */ public static DateAndTime getTime(Notification notification, Instant defaultValue) { Instant time; if (hasTime(notification)) { // If notification class extends/implements the EventInstantAware @@ -296,21 +295,6 @@ public class YangToolsMapperHelper { return DateAndTime.getDefaultInstance(ZonedDateTime.ofInstant(time, ZoneOffset.UTC).format(formatterOutput)); } - /** - * Get time instant from notification if available or actual time - * @param notification - * @return DateAndTime - */ - public static DateAndTime getTime(Notification notification) { - return getTime(notification, Instant.now()); - } - - /** - * Get time instant from DOM notification if available or default - * @param DOM notification - * @param defaultValue - * @return DateAndTime - */ public static DateAndTime getTime(DOMNotification notification, Instant defaultValue) { Instant time; if (hasTime(notification)) { // If notification class extends/implements the EventInstantAware @@ -322,13 +306,9 @@ public class YangToolsMapperHelper { } return DateAndTime.getDefaultInstance(ZonedDateTime.ofInstant(time, ZoneOffset.UTC).format(formatterOutput)); } - - /** - * Get time instant from notification if available or actual time - * @param DOM notification - * @return DateAndTime - */ - public static DateAndTime getTime(DOMNotification notification) { - return getTime(notification, Instant.now()); + + + public static , V extends Identifiable> Map toMap(List list) { + return list == null || list.isEmpty() ? null : Maps.uniqueIndex(list, Identifiable::key); } } diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java index 58e75bde5..0fe8ab9d7 100644 --- a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java +++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier.java @@ -29,6 +29,9 @@ import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.KeyDeserializer; import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; +import com.fasterxml.jackson.databind.type.ArrayType; +import com.fasterxml.jackson.databind.type.MapType; + import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -48,80 +51,87 @@ import org.slf4j.LoggerFactory; public class YangToolsDeserializerModifier extends BeanDeserializerModifier { - private static final Logger LOG = LoggerFactory.getLogger(YangToolsDeserializerModifier.class); - private static final String getEnumMethodName = "valueOf"; - private static final String getEnumMethodName2 = "forName"; + private static final Logger LOG = LoggerFactory.getLogger(YangToolsDeserializerModifier.class); + private static final String getEnumMethodName = "valueOf"; + private static final String getEnumMethodName2 = "forName"; + + @SuppressWarnings("unchecked") + public static Enum parseEnum(String value, Class clazz) throws IllegalAccessException, + IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { + try { + Method method = clazz.getDeclaredMethod(getEnumMethodName, String.class); + Enum result = (Enum) method.invoke(null, value); + LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result); + return result; + } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException + | NoSuchElementException | SecurityException e) { + Method method = clazz.getDeclaredMethod(getEnumMethodName2, String.class); + Optional> result = (Optional>) method.invoke(null, value); + LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result); + return result.orElseThrow(); + } + } - @SuppressWarnings("unchecked") - public static Enum parseEnum(String value, Class clazz) throws IllegalAccessException, - IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { - try { - Method method = clazz.getDeclaredMethod(getEnumMethodName, String.class); - Enum result = (Enum) method.invoke(null, value); - LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result); - return result; - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException - | NoSuchElementException | SecurityException e) { - Method method = clazz.getDeclaredMethod(getEnumMethodName2, String.class); - Optional> result = (Optional>) method.invoke(null, value); - LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result); - return result.orElseThrow(); - } - } + @Override + public JsonDeserializer> modifyEnumDeserializer(DeserializationConfig config, final JavaType type, + BeanDescription beanDesc, final JsonDeserializer deserializer) { + return new JsonDeserializer>() { - @Override - public JsonDeserializer> modifyEnumDeserializer(DeserializationConfig config, final JavaType type, - BeanDescription beanDesc, final JsonDeserializer deserializer) { - return new JsonDeserializer>() { + @Override + public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { + Class clazz = type.getRawClass(); - @Override - public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { - Class clazz = type.getRawClass(); + try { + return parseEnum(jp.getValueAsString(), clazz); + } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException + | NoSuchMethodException | NoSuchElementException | SecurityException e) { + LOG.warn("problem deserializing enum for {} with value {}: {}", clazz.getName(), + jp.getValueAsString(), e); + } + throw new IOException( + "unable to parse enum (" + type.getRawClass() + ")for value " + jp.getValueAsString()); + } + }; + } - try { - return parseEnum(jp.getValueAsString(), clazz); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException - | NoSuchMethodException | NoSuchElementException | SecurityException e) { - LOG.warn("problem deserializing enum for {} with value {}: {}", clazz.getName(), - jp.getValueAsString(), e); - } - throw new IOException( - "unable to parse enum (" + type.getRawClass() + ")for value " + jp.getValueAsString()); - } - }; - } + @Override + public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, + JsonDeserializer deserializer) { + final JavaType type = beanDesc.getType(); + final Class rawClass = type.getRawClass(); - @Override - public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, - JsonDeserializer deserializer) { - final JavaType type = beanDesc.getType(); - final Class rawClass = type.getRawClass(); + JsonDeserializer deser = super.modifyDeserializer(config, beanDesc, deserializer); - JsonDeserializer deser = super.modifyDeserializer(config, beanDesc, deserializer); + if (YangToolsMapperHelper.implementsInterface(rawClass, TypeObject.class)) { + deser = new TypeObjectDeserializer(type, deser); + } else if (YangToolsMapperHelper.implementsInterface(rawClass, ScalarTypeObject.class)) { + deser = new TypeObjectDeserializer>(type, deser); + } else if (YangToolsMapperHelper.implementsInterface(rawClass, BaseIdentity.class)) { + deser = new BaseIdentityDeserializer(deser); + } else if (rawClass.equals(Class.class)) { + deser = new ClassDeserializer(rawClass); + } - if (YangToolsMapperHelper.implementsInterface(rawClass, TypeObject.class)) { - deser = new TypeObjectDeserializer(type, deser); - } else if (YangToolsMapperHelper.implementsInterface(rawClass, ScalarTypeObject.class)) { - deser = new TypeObjectDeserializer>(type, deser); - } else if (YangToolsMapperHelper.implementsInterface(rawClass, BaseIdentity.class)) { - deser = new BaseIdentityDeserializer(deser); - } else if (rawClass.equals(Class.class)) { - deser = new ClassDeserializer(rawClass); - } + LOG.debug("Deserialize '{}' with deserializer '{}'", rawClass.getName(), deser.getClass().getName()); + return deser; + } - LOG.debug("Deserialize '{}' with deserializer '{}'", rawClass.getName(), deser.getClass().getName()); - return deser; - } + @Override + public JsonDeserializer modifyMapDeserializer(DeserializationConfig config, MapType type, + BeanDescription beanDesc, JsonDeserializer deserializer) { + final Class rawClass = type.getBindings().getBoundType(1).getRawClass(); + return new YangtoolsMapDesirializer(rawClass); + } - @Override - public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType type, KeyDeserializer deser) { - KeyDeserializer res; - if (YangToolsMapperHelper.implementsInterface(type.getRawClass(), Identifier.class)) { - res = new IdentifierDeserializer(); - } else { - res = super.modifyKeyDeserializer(config, type, deser); - } - LOG.debug("Keydeserialize '{}' with deserializer '{}'", type.getRawClass().getName(), res.getClass().getName()); - return res; - } + @Override + public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType type, KeyDeserializer deser) { + KeyDeserializer res; + if (YangToolsMapperHelper.implementsInterface(type.getRawClass(), Identifier.class)) { + res = new IdentifierDeserializer(); + } else { + res = super.modifyKeyDeserializer(config, type, deser); + } + LOG.debug("Keydeserialize '{}' with deserializer '{}'", type.getRawClass().getName(), res.getClass().getName()); + return res; + } } diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier2.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier2.java new file mode 100644 index 000000000..0697f5f2e --- /dev/null +++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangToolsDeserializerModifier2.java @@ -0,0 +1,135 @@ +/* + * ============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.yang.mapper.mapperextensions; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.BeanDescription; +import com.fasterxml.jackson.databind.DeserializationConfig; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.KeyDeserializer; +import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; +import com.fasterxml.jackson.databind.type.MapType; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.NoSuchElementException; +import java.util.Optional; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.BaseIdentityDeserializer; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.ClassDeserializer; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.IdentifierDeserializer; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.TypeObjectDeserializer; +import org.opendaylight.yangtools.yang.binding.BaseIdentity; +import org.opendaylight.yangtools.yang.binding.Identifier; +import org.opendaylight.yangtools.yang.binding.ScalarTypeObject; +import org.opendaylight.yangtools.yang.binding.TypeObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class YangToolsDeserializerModifier2 extends BeanDeserializerModifier { + + private static final Logger LOG = LoggerFactory.getLogger(YangToolsDeserializerModifier2.class); + private static final String getEnumMethodName = "valueOf"; + private static final String getEnumMethodName2 = "forName"; + + @SuppressWarnings("unchecked") + public static Enum parseEnum(String value, Class clazz) throws IllegalAccessException, + IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { + try { + Method method = clazz.getDeclaredMethod(getEnumMethodName, String.class); + Enum result = (Enum) method.invoke(null, value); + LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result); + return result; + } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException + | NoSuchElementException | SecurityException e) { + Method method = clazz.getDeclaredMethod(getEnumMethodName2, String.class); + Optional> result = (Optional>) method.invoke(null, value); + LOG.debug("Deserialize '{}' with class '{}' to '{}'", value, clazz.getName(), result); + return result.orElseThrow(); + } + } + + @Override + public JsonDeserializer> modifyEnumDeserializer(DeserializationConfig config, final JavaType type, + BeanDescription beanDesc, final JsonDeserializer deserializer) { + return new JsonDeserializer>() { + + @Override + public Enum deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { + Class clazz = type.getRawClass(); + + try { + return parseEnum(jp.getValueAsString(), clazz); + } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException + | NoSuchMethodException | NoSuchElementException | SecurityException e) { + LOG.warn("problem deserializing enum for {} with value {}: {}", clazz.getName(), + jp.getValueAsString(), e); + } + throw new IOException( + "unable to parse enum (" + type.getRawClass() + ")for value " + jp.getValueAsString()); + } + }; + } + + @Override + public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, + JsonDeserializer deserializer) { + final JavaType type = beanDesc.getType(); + final Class rawClass = type.getRawClass(); + + JsonDeserializer deser = super.modifyDeserializer(config, beanDesc, deserializer); + + if (YangToolsMapperHelper.implementsInterface(rawClass, TypeObject.class)) { + deser = new TypeObjectDeserializer(type, deser); + } else if (YangToolsMapperHelper.implementsInterface(rawClass, ScalarTypeObject.class)) { + deser = new TypeObjectDeserializer>(type, deser); + } else if (YangToolsMapperHelper.implementsInterface(rawClass, BaseIdentity.class)) { + deser = new BaseIdentityDeserializer(deser); + } else if (rawClass.equals(Class.class)) { + deser = new ClassDeserializer(rawClass); + } + + LOG.debug("Deserialize '{}' with deserializer '{}'", rawClass.getName(), deser.getClass().getName()); + return deser; + } + + @Override + public JsonDeserializer modifyMapDeserializer(DeserializationConfig config, MapType type, + BeanDescription beanDesc, JsonDeserializer deserializer) { + final Class rawClass = type.getBindings().getBoundType(1).getRawClass(); + return new YangtoolsMapDesirializer(rawClass); + } + + @Override + public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType type, KeyDeserializer deser) { + KeyDeserializer res; + if (YangToolsMapperHelper.implementsInterface(type.getRawClass(), Identifier.class)) { + res = new IdentifierDeserializer(); + } else { + res = super.modifyKeyDeserializer(config, type, deser); + } + LOG.debug("Keydeserialize '{}' with deserializer '{}'", type.getRawClass().getName(), res.getClass().getName()); + return res; + } +} diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer.java new file mode 100644 index 000000000..2fe7fa11f --- /dev/null +++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer.java @@ -0,0 +1,44 @@ +package org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper; +import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.Identifier; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.core.TreeNode; +import com.fasterxml.jackson.databind.BeanDescription; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.type.CollectionLikeType; +import com.fasterxml.jackson.databind.type.TypeFactory; +import com.google.common.collect.Maps; + +public class YangtoolsMapDesirializer, V extends Identifiable> + extends JsonDeserializer> { + + private final Class clazz; + private final YangToolsMapper mapper; + + public YangtoolsMapDesirializer(Class clazz) { + super(); + this.clazz = clazz; + this.mapper = new YangToolsMapper(); + } + + @Override + public Map deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + CollectionLikeType type = ctxt.getTypeFactory().constructCollectionType(List.class, clazz); + List list = mapper.readValue(p,type); + return YangToolsMapperHelper.toMap(list); + } + +} diff --git a/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer2.java b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer2.java new file mode 100644 index 000000000..6a419eee1 --- /dev/null +++ b/sdnr/wt/common-yang/utils/src/main/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/mapperextensions/YangtoolsMapDesirializer2.java @@ -0,0 +1,36 @@ +package org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.type.CollectionLikeType; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper; +import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.Identifier; + +public class YangtoolsMapDesirializer2, V extends Identifiable> + extends JsonDeserializer> { + + private final Class clazz; + private final YangToolsMapper mapper; + + public YangtoolsMapDesirializer2(Class clazz) { + super(); + this.clazz = clazz; + this.mapper = new YangToolsMapper(); + } + + @Override + public Map deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException, JsonProcessingException { + CollectionLikeType type = ctxt.getTypeFactory().constructCollectionType(List.class, clazz); + List list = mapper.readValue(p,type); + return YangToolsMapperHelper.toMap(list); + } + +} diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestDataMappings.java b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestDataMappings.java deleted file mode 100644 index 584b4b044..000000000 --- a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestDataMappings.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP : ccsdk features - * ================================================================================ - * 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.yang.mapper; - -import static org.junit.Assert.fail; -import java.io.IOException; -import org.junit.Test; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data; - -public class TestDataMappings { - - // @formatter:off - private static final String PMDATA15M_SERVERDB_JSON = "{\n" - + "\"node-name\": \"sim2\",\n" - + "\"uuid-interface\": \"LP-MWPS-TTP-01\",\n" - + "\"layer-protocol-name\": \"MWPS\",\n" - + "\"radio-signal-id\": \"Test11\",\n" - + "\"time-stamp\": \"2017-07-04T14:00:00.0Z\",\n" - + "\"granularity-period\": \"Period15Min\",\n" - + "\"scanner-id\": \"PM_RADIO_15M_9\",\n" - + "\"performance-data\": {\n" - + "\"es\": 0,\n" - + "\"rx-level-avg\": -41,\n" - + "\"time2-states\": -1,\n" - + "\"time4-states-s\": 0,\n" - + "\"time4-states\": 0,\n" - + "\"time8-states\": 0,\n" - + "\"time16-states-s\": -1,\n" - + "\"time16-states\": 0,\n" - + "\"time32-states\": 0,\n" - + "\"time64-states\": 0,\n" - + "\"time128-states\": 0,\n" - + "\"time256-states\": 900,\n" - + "\"time512-states\": -1,\n" - + "\"time512-states-l\": -1,\n" - + "\"time1024-states\": -1,\n" - + "\"time1024-states-l\": -1,\n" - + "\"time2048-states\": -1,\n" - + "\"time2048-states-l\": -1,\n" - + "\"time4096-states\": -1,\n" - + "\"time4096-states-l\": -1,\n" - + "\"time8192-states\": -1,\n" - + "\"time8192-states-l\": -1,\n" - + "\"snir-min\": -99,\n" - + "\"snir-max\": -99,\n" - + "\"snir-avg\": -99,\n" - + "\"xpd-min\": -99,\n" - + "\"xpd-max\": -99,\n" - + "\"xpd-avg\": -99,\n" - + "\"rf-temp-min\": -99,\n" - + "\"rf-temp-max\": -99,\n" - + "\"rf-temp-avg\": -99,\n" - + "\"defect-blocks-sum\": -1,\n" - + "\"time-period\": 900,\n" - + "\"tx-level-min\": 25,\n" - + "\"tx-level-max\": 25,\n" - + "\"tx-level-avg\": 25,\n" - + "\"rx-level-min\": -41,\n" - + "\"rx-level-max\": -41,\n" - + "\"unavailability\": 0,\n" - + "\"ses\": 0,\n" - + "\"cses\": 0\n" - + "},\n" - + "\"suspect-interval-flag\": false\n" - + "}"; - // @formatter:on - @Test - public void testPmData15m() throws ClassNotFoundException { - - YangToolsMapper2 mapper = new YangToolsMapper2(Data.class, null); - try { - Data data = mapper.readValue(PMDATA15M_SERVERDB_JSON.getBytes(), Data.class); - System.out.println(data); - } catch (IOException e) { - e.printStackTrace(); - fail("Can not parse data"); - } - } - -} diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestHashMap.java b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestHashMap.java new file mode 100644 index 000000000..9aacd2e49 --- /dev/null +++ b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestHashMap.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.yang.mapper; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; +import com.fasterxml.jackson.databind.module.SimpleModule; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class TestHashMap { + + String mapDataString = "[\n" + + " {\n" + + " \"Name\": \"System Idle Process\",\n" + + " \"CreationDate\": \"20160409121836.675345+330\"\n" + + " },\n" + + " {\n" + + " \"Name\": \"System\",\n" + + " \"CreationDate\": \"20160409121836.675345+330\"\n" + + " },\n" + + " {\n" + + " \"Name\": \"smss.exe\",\n" + + " \"CreationDate\": \"20160409121836.684966+330\"\n" + + " }\n" + + "]"; + + + @Test + public void test() throws JsonParseException, JsonMappingException, IOException { + byte[] mapData = mapDataString.getBytes(); + List> myMap; + ObjectMapper objectMapper=new ObjectMapper(); + objectMapper.registerModule(new YangToolsModule()); + + + myMap = objectMapper.readValue(mapData, new TypeReference>>(){}); + System.out.println("Type1: "+myMap.getClass().getSimpleName()); + System.out.println("Type2: "+myMap.get(0).getClass().getSimpleName()); + System.out.println("Map is: "+myMap); } + + private class YangToolsModule extends SimpleModule { + + private static final long serialVersionUID = 1L; + + public YangToolsModule() { + super(); + setDeserializerModifier(new YangToolsDeserializerModifier()); + } + } + + private class YangToolsDeserializerModifier extends BeanDeserializerModifier { + } + + +} diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestMapper.java b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestMapper.java deleted file mode 100644 index 2d2e0114c..000000000 --- a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestMapper.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * ============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.yang.mapper; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -import com.fasterxml.jackson.core.JsonProcessingException; -import org.json.JSONObject; -import org.junit.Test; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnection; -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; - -public class TestMapper { - - private static final YangToolsMapper MAPPER = new YangToolsMapper(); - - @Test - public void testYangGenEnumMapperDeser() { - NetworkElementConnection con = null; - try { - con = MAPPER.readValue("{\"device-type\":\"O-RAN\"}", NetworkElementConnection.class); - } catch (JsonProcessingException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - assertEquals(NetworkElementDeviceType.ORAN, con.getDeviceType()); - try { - con = MAPPER.readValue("{\"device-type\":\"ORAN\"}", NetworkElementConnection.class); - } catch (JsonProcessingException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - assertEquals(NetworkElementDeviceType.ORAN, con.getDeviceType()); - try { - con = MAPPER.readValue("{\"device-type\":\"O-ROADM\"}", NetworkElementConnection.class); - } catch (JsonProcessingException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - assertEquals(NetworkElementDeviceType.OROADM, con.getDeviceType()); - try { - con = MAPPER.readValue("{\"device-type\":\"O-ROADM\"}", NetworkElementConnection.class); - } catch (JsonProcessingException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - assertEquals(NetworkElementDeviceType.OROADM, con.getDeviceType()); - } - - @Test - public void testYangGenEnumMapperSer() { - NetworkElementConnection con = - new NetworkElementConnectionBuilder().setDeviceType(NetworkElementDeviceType.ORAN).build(); - String str = null; - try { - str = MAPPER.writeValueAsString(con); - } catch (JsonProcessingException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - assertEquals("O-RAN", new JSONObject(str).getString("device-type")); - con = new NetworkElementConnectionBuilder().setDeviceType(NetworkElementDeviceType.OROADM).build(); - str = null; - try { - str = MAPPER.writeValueAsString(con); - } catch (JsonProcessingException e) { - e.printStackTrace(); - fail(e.getMessage()); - } - assertEquals("O-ROADM", new JSONObject(str).getString("device-type")); - } -} diff --git a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestYangGenSalMapping.java b/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestYangGenSalMapping.java deleted file mode 100644 index f46729c98..000000000 --- a/sdnr/wt/common-yang/utils/src/test/java/org/onap/ccsdk/features/sdnr/wt/yang/mapper/TestYangGenSalMapping.java +++ /dev/null @@ -1,286 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP : ccsdk features - * ================================================================================ - * 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.yang.mapper; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.json.JSONObject; -import org.junit.Test; -import org.onap.ccsdk.features.sdnr.wt.yang.mapper.serialize.IdentifierDeserializer; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; -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.netconf.node.topology.rev150114.NetconfNode; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.OdlHelloMessageCapabilitiesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials; -import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPasswordBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.DefectSeconds; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement; -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.rev201110.pmdata15m.entity.PerformanceDataBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.DataBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.KHz; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class TestYangGenSalMapping { - - // Create mapper for serialization and deserialization - DataProviderYangToolsMapper mapper = new DataProviderYangToolsMapper(); - - @Test - public void test1() throws IOException { - - // Create test object - NetconfNodeBuilder netconfNodeBuilder = new NetconfNodeBuilder(); - netconfNodeBuilder.setConnectedMessage("ConnMessage"); - - LoginPasswordBuilder loginPasswordBuilder = new LoginPasswordBuilder(); - loginPasswordBuilder.setUsername("myTestUsername"); - loginPasswordBuilder.setPassword("myTestPassword"); - netconfNodeBuilder.setCredentials(loginPasswordBuilder.build()); - - OdlHelloMessageCapabilitiesBuilder odlHelloMessageCapabilitiesBuilder = - new OdlHelloMessageCapabilitiesBuilder(); - List uriList = new ArrayList<>(); - uriList.add(new Uri("test.uri")); - odlHelloMessageCapabilitiesBuilder.setCapability(uriList); - netconfNodeBuilder.setOdlHelloMessageCapabilities(odlHelloMessageCapabilitiesBuilder.build()); - - NetconfNode netconfNode = netconfNodeBuilder.build(); - out(netconfNode.toString()); - - // Map Object to JSON String - String res = mapper.writeValueAsString(netconfNode); - JSONObject json = new JSONObject(res); // Convert text to object - out(json.toString(4)); // Print it with specified indentation - - // Map to JSON String to Object - NetconfNode generatedNode = mapper.readValue(res.getBytes(), NetconfNode.class); - out(generatedNode.toString()); // Print it with specified indentation - // Compare result - //TODO - Guilin - //out("Equal? "+netconfNode.equals(generatedNode)); - } - - @Test - public void test3() throws IOException { - - PerformanceDataBuilder performanceBuilder = new PerformanceDataBuilder(); - performanceBuilder.setEs(99); - Map values = new HashMap<>(); - - Measurement m = new MeasurementBuilder().setPmKey(DefectSeconds.class).setPmUnit(KHz.class) - .setPmValue(new PmDataType(1L)).build(); - values.put(m.key(), m); - performanceBuilder.setMeasurement(values); - DataBuilder pmData15MinutesBuilder = new DataBuilder(); - pmData15MinutesBuilder.setLayerProtocolName("fdsaf"); - pmData15MinutesBuilder.setTimeStamp(new DateAndTime("2017-03-01T09:15:00.0Z")); - pmData15MinutesBuilder.setPerformanceData(performanceBuilder.build()); - - // Map Object to JSON String - String res = mapper.writeValueAsString(pmData15MinutesBuilder.build()); - JSONObject json = new JSONObject(res); // Convert text to object - out(json.toString(4)); // Print it with specified indentation - - // Map to JSON String to Object - Data generatedNode = mapper.readValue(res.getBytes(), Data.class); - out(generatedNode.toString()); // Print it with specified indentation - } - - @Test - public void test4() throws IOException { - // @formatter:off - String jsonString = "{\n" - + "\"node-name\": \"Sim2230\",\n" - + "\"uuid-interface\": \"LP-MWPS-TTP-RADIO\",\n" - + "\"layer-protocol-name\": \"MWPS\",\n" - + "\"radio-signal-id\": \"Test8\",\n" - + "\"time-stamp\": \"2017-03-01T09:15:00.0Z\",\n" - + "\"granularity-period\": \"Period15Min\",\n" - + "\"scanner-id\": \"PM_RADIO_15M_4\",\n" - + "\"performance-data\": {\n" - + "\"unavailability\": 0,\n" - + "\"tx-level-max\": 3,\n" - + "\"tx-level-avg\": 3,\n" - + "\"rx-level-min\": -44,\n" - + "\"rx-level-max\": -45,\n" - + "\"rx-level-avg\": -44,\n" - + "\"time2-states\": 0,\n" - + "\"time4-states-s\": 0,\n" - + "\"time4-states\": 0,\n" - + "\"time8-states\": -1,\n" - + "\"time16-states-s\": -1,\n" - + "\"time16-states\": 0,\n" - + "\"time32-states\": -1,\n" - + "\"time64-states\": 900,\n" - + "\"time128-states\": -1,\n" - + "\"time256-states\": -1,\n" - + "\"time512-states\": -1,\n" - + "\"time512-states-l\": -1,\n" - + "\"time1024-states\": -1,\n" - + "\"time1024-states-l\": -1,\n" - + "\"time8192-states-l\": -1,\n" - + "\"time8192-states\": -1,\n" - + "\"time2048-states\": -1,\n" - + "\"snir-min\": -99,\n" - + "\"snir-max\": -99,\n" - + "\"snir-avg\": -99,\n" - + "\"xpd-min\": -99,\n" - + "\"xpd-max\": -99,\n" - + "\"xpd-avg\": -99,\n" - + "\"rf-temp-min\": -99,\n" - + "\"rf-temp-max\": -99,\n" - + "\"rf-temp-avg\": -99,\n" - + "\"defect-blocks-sum\": -1,\n" - + "\"time-period\": 900,\n" - + "\"cses\": 0,\n" - + "\"time4096-states-l\": -1,\n" - + "\"tx-level-min\": 3,\n" - + "\"es\": 0,\n" - + "\"time2048-states-l\": -1,\n" - + "\"time4096-states\": -1,\n" - + "\"ses\": 0\n" - + "},\n" - + "\"suspect-interval-flag\": false\n" - + "}\n" - + "}"; - // @formatter:on - // Map to JSON String to Object - Data generatedNode = mapper.readValue(jsonString.getBytes(), Data.class); - out(generatedNode.toString()); // Print it with specified indentation - } - - @Test - public void test5() throws IOException { - // @formatter:off - String jsonString = "{\n" - + " \"time-stamp\": \"2017-03-01T06:45:00.0Z\",\n" - + " \"node-name\": \"Sim2230\",\n" - + " \"uuid-interface\": \"LP-MWPS-TTP-RADIO\",\n" - + " \"scanner-id\": \"PM_RADIO_15M_14\",\n" - + " \"layer-protocol-name\": \"MWPS\",\n" - + " \"granularity-period\": \"Period15Min\",\n" - + " \"radio-signal-id\": \"Test8\",\n" - + " \"suspect-interval-flag\": false,\n" - + " \"performance-data\": {\n" - + " \"time4096-states-l\": -1,\n" - + " \"time16-states-s\": -1,\n" - + " \"tx-level-max\": 3,\n" - + " \"snir-max\": -99,\n" - + " \"time16-states\": 0,\n" - + " \"time64-states\": 900,\n" - + " \"unavailability\": 0,\n" - + " \"time8192-states-l\": -1,\n" - + " \"time512-states\": -1,\n" - + " \"xpd-min\": -99,\n" - + " \"xpd-avg\": -99,\n" - + " \"tx-level-avg\": 3,\n" - + " \"tx-level-min\": 3,\n" - + " \"rf-temp-min\": -99,\n" - + " \"rf-temp-avg\": -99,\n" - + " \"snir-avg\": -99,\n" - + " \"snir-min\": -99,\n" - + " \"time-period\": 900,\n" - + " \"time2-states\": 0,\n" - + " \"time4-states\": 0,\n" - + " \"time8-states\": -1,\n" - + " \"ses\": 0,\n" - + " \"time2048-states-l\": -1,\n" - + " \"time2048-states\": -1,\n" - + " \"xpd-max\": -99,\n" - + " \"rf-temp-max\": -99,\n" - + " \"time8192-states\": -1,\n" - + " \"time128-states\": -1,\n" - + " \"time256-states\": -1,\n" - + " \"rx-level-min\": -44,\n" - + " \"rx-level-avg\": -44,\n" - + " \"time1024-states-l\": -1,\n" - + " \"es\": 0,\n" - + " \"cses\": 0,\n" - + " \"time4-states-s\": 0,\n" - + " \"time1024-states\": -1,\n" - + " \"time512-states-l\": -1,\n" - + " \"time4096-states\": -1,\n" - + " \"rx-level-max\": -45,\n" - + " \"defect-blocks-sum\": -1,\n" - + " \"time32-states\": -1\n" - + " }\n" - + "}"; - // @formatter:on - // Map to JSON String to Object - Data generatedNode = mapper.readValue(jsonString.getBytes(), Data.class); - out(generatedNode.toString()); // Print it with specified indentation - } - - @Test - public void test8() throws IOException { - out(method()); - String input; - input = "id-dd-dd"; - System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input)); - input = "idDdGg"; - System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input)); - input = "_idDdGg"; - System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input)); - input = "--ff--gfg"; - System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input)); - input = ""; - System.out.println("Map " + input + " to " + YangToolsMapperHelper.toCamelCaseAttributeName(input)); - } - - /* --------------------------------- - * Private - */ - private static String method() { - String nameofCurrMethod = new Throwable().getStackTrace()[1].getMethodName(); - return nameofCurrMethod; - } - - private static void out(String text) { - System.out.println("----------------------"); - System.out.println(text); - } - - private static class DataProviderYangToolsMapper extends YangToolsMapper { - - @SuppressWarnings("unused") - private final Logger LOG = LoggerFactory.getLogger(DataProviderYangToolsMapper.class); - private static final long serialVersionUID = 1L; - - public DataProviderYangToolsMapper() { - super(); - this.addDeserializer(Credentials.class, LoginPasswordBuilder.class.getName()); - this.addKeyDeserializer(MeasurementKey.class, new IdentifierDeserializer()); - } - - - } - -} diff --git a/sdnr/wt/common/pom.xml b/sdnr/wt/common/pom.xml index 762a3fbb8..1847e6f11 100644 --- a/sdnr/wt/common/pom.xml +++ b/sdnr/wt/common/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactory.java b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactory.java new file mode 100644 index 000000000..c163facbb --- /dev/null +++ b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactory.java @@ -0,0 +1,32 @@ +/* + * ============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.common.threading; + +public abstract class GenericRunnableFactory { + + public GenericRunnableFactory() { + } + + public Runnable create(S arg, GenericRunnableFactoryCallback callback) { + return null; + } +} diff --git a/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactoryCallback.java b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactoryCallback.java new file mode 100644 index 000000000..bd0ce1eec --- /dev/null +++ b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/GenericRunnableFactoryCallback.java @@ -0,0 +1,27 @@ +/* + * ============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.common.threading; + +public interface GenericRunnableFactoryCallback { + + void onFinish(T key); +} diff --git a/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/KeyBasedThreadpool.java b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/KeyBasedThreadpool.java new file mode 100644 index 000000000..f41a9038f --- /dev/null +++ b/sdnr/wt/common/src/main/java/org/onap/ccsdk/features/sdnr/wt/common/threading/KeyBasedThreadpool.java @@ -0,0 +1,93 @@ +/* + * ============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.common.threading; + +import java.util.AbstractMap.SimpleEntry; +import java.util.ArrayList; +import java.util.List; +import java.util.Map.Entry; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * Threadpool for running n instances per key T + * + * @author jack + * + * @param + * @param + */ +public class KeyBasedThreadpool implements GenericRunnableFactoryCallback { + + private final Queue> queue; + private final List runningKeys; + private final int keyPoolSize; + private final GenericRunnableFactory factory; + private final ExecutorService executor; + + /** + * + * @param poolSize overall maximum amount of threads + * @param keyPoolSize amount of threads per key + * @param runner runnable to start + */ + public KeyBasedThreadpool(int poolSize, int keyPoolSize, GenericRunnableFactory factory) { + this.queue = new ConcurrentLinkedQueue<>(); + this.keyPoolSize = keyPoolSize; + this.factory = factory; + this.executor = Executors.newFixedThreadPool(poolSize); + this.runningKeys = new ArrayList<>(); + } + + public void execute(T key, S arg) { + if (this.isKeyPoolSizeReached(key)) { + queue.add(new SimpleEntry<>(key, arg)); + } else { + this.runningKeys.add(key); + this.executor.execute(this.factory.create(arg, this)); + } + + } + + private void executeNext() { + Entry entry = this.queue.peek(); + if (!this.isKeyPoolSizeReached(entry.getKey())) { + this.queue.poll(); + this.runningKeys.add(entry.getKey()); + this.executor.execute(this.factory.create(entry.getValue(), this)); + } + } + + private boolean isKeyPoolSizeReached(T key) { + return this.runningKeys.stream().filter(e -> e == key).count() >= this.keyPoolSize; + } + + @Override + public void onFinish(T key) { + this.runningKeys.remove(key); + this.executeNext(); + } + + +} diff --git a/sdnr/wt/data-provider/dblib/pom.xml b/sdnr/wt/data-provider/dblib/pom.xml index e4bc57519..b1dd4ff04 100644 --- a/sdnr/wt/data-provider/dblib/pom.xml +++ b/sdnr/wt/data-provider/dblib/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java index ce9d4dcd1..1ed0b5f17 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/SqlDBClient.java @@ -56,7 +56,6 @@ public class SqlDBClient { private static final String DBVERSION_REGEX = "^([\\d]+\\.[\\d]+\\.[\\d]+)"; private static final Pattern DBVERSION_PATTERN = Pattern.compile(DBVERSION_REGEX); private static final String SELECT_VERSION_QUERY = "SELECT @@version as version"; - private static final String LOG_PROBLEM_CLOSING_CONNECTION = "problem closing connection: "; private static final String DBNAME_DEFAULT = "sdnrdb"; private final String dbConnectionString; @@ -100,6 +99,7 @@ public class SqlDBClient { } catch (SQLException e) { LOG.warn("problem reading views: ", e); } + try { data.close(); } catch (SQLException ignore) { } return list; } @@ -114,6 +114,7 @@ public class SqlDBClient { } catch (SQLException e) { LOG.warn("problem reading tables: ", e); } + try { data.close(); } catch (SQLException ignore) { } return list; } @@ -155,22 +156,18 @@ public class SqlDBClient { public boolean createTable(String query) { boolean result = false; PreparedStatement stmt = null; + Connection connection = null; try { - Connection connection = this.getConnection(); + connection = this.getConnection(); stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); stmt.execute(); - connection.close(); + result = true; } catch (SQLException e) { LOG.warn("problem creating table:", e); } finally { - if (stmt != null) { - try { - stmt.close(); - } catch (SQLException e) { - LOG.warn("problem closing stmt:", e); - } - } + if (stmt != null) try { stmt.close(); } catch (SQLException logOrIgnore) {} + if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {} } return result; } @@ -199,20 +196,17 @@ public class SqlDBClient { boolean result = false; SQLException innerE = null; Statement stmt = null; - try (Connection connection = this.getConnection()) { + Connection connection = null; + try { + connection= this.getConnection(); stmt = connection.createStatement(); result = stmt.execute(query); result = stmt.getUpdateCount() > 0 ? stmt.getUpdateCount() > 0 : result; } catch (SQLException e) { innerE = e; } finally { - try { - if (stmt != null) { - stmt.close(); - } - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } if (innerE != null) { throw innerE; @@ -224,20 +218,17 @@ public class SqlDBClient { boolean result = false; SQLException innerE = null; PreparedStatement stmt = null; - try (Connection connection = this.getConnection()) { + Connection connection = null; + try { + connection = this.getConnection(); stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); result = stmt.execute(); result = stmt.getUpdateCount() > 0 ? stmt.getUpdateCount() > 0 : result; } catch (SQLException e) { innerE = e; } finally { - try { - if (stmt != null) { - stmt.close(); - } - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } if (innerE != null) { throw innerE; @@ -249,24 +240,22 @@ public class SqlDBClient { String result = null; SQLException innerE = null; PreparedStatement stmt = null; - try (Connection connection = this.getConnection()) { + ResultSet generatedKeys = null; + Connection connection = null; + try { + connection = this.getConnection(); stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); stmt.execute(); - ResultSet generatedKeys = stmt.getGeneratedKeys(); + generatedKeys = stmt.getGeneratedKeys(); if (generatedKeys.next()) { result = String.valueOf(generatedKeys.getLong(1)); } } catch (SQLException e) { innerE = e; } finally { - try { - if (stmt != null) { - stmt.close(); - } - - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (generatedKeys != null) try { generatedKeys.close(); } catch (SQLException ignore) {} + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } if (innerE != null) { throw innerE; @@ -291,19 +280,16 @@ public class SqlDBClient { public ResultSet read(String query) { ResultSet data = null; Statement stmt = null; - try (Connection connection = this.getConnection()) { + Connection connection = null; + try{ + connection = this.getConnection(); stmt = connection.createStatement(); data = stmt.executeQuery(query); } catch (SQLException e) { LOG.warn("problem reading db for query '{}': ", query, e); } finally { - try { - if (stmt != null) { - stmt.close(); - } - } catch (SQLException e) { - LOG.warn(LOG_PROBLEM_CLOSING_CONNECTION, e); - } + if (stmt != null) try { stmt.close(); } catch (SQLException ignore) {} + if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } return data; } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java index 60f28d95c..e015dd29f 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerBase.java @@ -74,7 +74,7 @@ public abstract class HtUserdataManagerBase implements HtUserdataManager { @Override public boolean setUserdata(String username, String key, String data) { - JSONObject o = new JSONObject(); + JSONObject o = new JSONObject(this.getUserdata(username)); o.put(key, new JSONObject(data)); return this.setUserdata(username, o.toString()); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java index 79d963751..832d473c2 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/HtUserdataManagerImpl.java @@ -21,16 +21,7 @@ */ package org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data; -import java.util.Arrays; -import java.util.List; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.rpctypehelper.QueryResult; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBReaderWriterUserdata; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EntityInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadFaultcurrentListInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder; -import org.opendaylight.yangtools.yang.common.Uint32; -import org.opendaylight.yangtools.yang.common.Uint64; public class HtUserdataManagerImpl extends HtUserdataManagerBase { @@ -42,7 +33,9 @@ public class HtUserdataManagerImpl extends HtUserdataManagerBase { @Override public boolean setUserdata(String username, String data) { - return this.rw.write(new UserdataBuilder().setId(username).setValue(data).build(), username) != null; + Userdata o = new UserdataBuilder().setId(username).setValue(data).build(); + String x = this.rw.updateOrInsert(o, username); + return x!=null; } @Override @@ -52,17 +45,8 @@ public class HtUserdataManagerImpl extends HtUserdataManagerBase { @Override protected String readUserdata(String username, String defaultValue) { - EntityInput input = new ReadFaultcurrentListInputBuilder() - .setFilter(Arrays.asList(new FilterBuilder().setProperty("id").setFiltervalue(username).build())) - .setPagination(new PaginationBuilder().setPage(Uint64.valueOf(1)).setSize(Uint32.valueOf(1)).build()) - .build(); - QueryResult result = this.rw.getData(input); - if (result != null) { - List data = result.getResult(); - Userdata user = (data != null && !data.isEmpty()) ? data.get(0) : null; - return user == null ? defaultValue : user.getValue(); - } - return defaultValue; + Userdata user = this.rw.read(username); + return user!=null? user.getValue():defaultValue; } } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java index b6df73b89..1bb30dc69 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/SqlDBDataProvider.java @@ -120,11 +120,11 @@ public class SqlDBDataProvider extends HtDatabaseEventsService implements Databa this.mediatorserverRW = new SqlDBReaderWriter<>(this.dbClient, Entity.MediatorServer, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.mediator.server.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(MediatorServerEntity.class); + this.controllerId).setWriteInterface(MediatorServerEntity.class); this.maintenanceRW = new SqlDBReaderWriter<>(this.dbClient, Entity.Maintenancemode, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.maintenance.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(MaintenanceEntity.class); + this.controllerId).setWriteInterface(MaintenanceEntity.class); this.readStatus = new SqlDBStatusReader(this.dbClient, this.controllerId); @@ -137,7 +137,7 @@ public class SqlDBDataProvider extends HtDatabaseEventsService implements Databa }; this.dbMaintenanceService = new HtDatabaseMaintenanceService(this); this.usermanager = new HtUserdataManagerImpl(new SqlDBReaderWriterUserdata(this.dbClient, - Entity.Userdata, config.getDbSuffix(), this.dbClient.getDatabaseName(), this.controllerId)); + Entity.Userdata, config.getDbSuffix())); if (initControllerId) { try { this.setControllerId(); @@ -512,6 +512,7 @@ public class SqlDBDataProvider extends HtDatabaseEventsService implements Databa query = String.format("INSERT INTO `%s` (`id`,`desc`) VALUES ('%s','%s')", this.controllerTableName, this.controllerId, ""); LOG.trace(query); + try { data.close(); } catch (SQLException ignore) { } return this.dbClient.write(query); } else { LOG.trace("controllerId already set"); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java index 6244894e5..9d09a11c8 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/DatabaseIdGenerator.java @@ -74,7 +74,6 @@ public class DatabaseIdGenerator { public static String getFaultcurrentId(String nodeId, String objectId, String problemName) { String uuId = extractUuid(objectId); - return String.format(FORMAT_FAULTDATA_ID, nodeId, uuId, problemName); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java index 88aaa583d..776c91fe5 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseEventsService.java @@ -40,6 +40,7 @@ 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.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionLogStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionlogEntity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity; @@ -50,6 +51,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro 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.NetworkElementConnectionEntity; 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.UpdateNetworkElementConnectionInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder; import org.slf4j.Logger; @@ -89,68 +91,68 @@ public class HtDatabaseEventsService implements DataProvider { this.dbClient = new SqlDBClient(config.getUrl(), config.getUsername(), config.getPassword()); this.connectionlogRW = new SqlDBReaderWriter<>(dbClient, Entity.Connectionlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.connectionlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventlogRW = new SqlDBReaderWriter<>(dbClient, Entity.Eventlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.eventlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventRWFaultLog = new SqlDBReaderWriter<>(dbClient, Entity.Faultlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventRWFaultCurrent = new SqlDBReaderWriterFault<>(dbClient, Entity.Faultcurrent, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.faultcurrent.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.equipmentRW = new SqlDBReaderWriter<>(dbClient, Entity.Inventoryequipment, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.inventory.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.guicutthroughRW = new SqlDBReaderWriter<>(dbClient, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity.Guicutthrough, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.gui.cut.through.entry.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId).setWriteInterface(Guicutthrough.class); + this.controllerId).setWriteInterface(Guicutthrough.class); this.networkelementConnectionRW = new SqlDBReaderWriter<>(dbClient, Entity.NetworkelementConnection, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.networkelementConnectionRW.setWriteInterface(NetworkElementConnectionEntity.class); this.pm15mRW = new SqlDBReaderWriterPm<>(dbClient, Entity.Historicalperformance15min, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._15m.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.pm24hRW = new SqlDBReaderWriterPm<>(dbClient, Entity.Historicalperformance24h, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.pmdata._24h.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); this.eventRWCMLog = new SqlDBReaderWriter<>(dbClient, Entity.Cmlog, config.getDbSuffix(), org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.cmlog.list.output.Data.class, - this.dbClient.getDatabaseName(), this.controllerId); + this.controllerId); } @Override public void writeConnectionLog(ConnectionlogEntity event) { - this.connectionlogRW.write(event, event.getId()); + this.connectionlogRW.write(event, null); } @Override public void writeEventLog(EventlogEntity event) { - this.eventlogRW.write(event, event.getId()); + this.eventlogRW.write(event, null); } @Override public void writeFaultLog(FaultlogEntity fault) { - this.eventRWFaultLog.write(fault, fault.getId()); + this.eventRWFaultLog.write(fault, null); } @Override public void writeCMLog(CmlogEntity cm) { - this.eventRWCMLog.write(cm, cm.getId()); + this.eventRWCMLog.write(cm, null); } @Override public void updateFaultCurrent(FaultcurrentEntity fault) { - final String id = fault.getId() != null ? fault.getId() : DatabaseIdGenerator.getFaultcurrentId(fault); + final String id = DatabaseIdGenerator.getFaultcurrentId(fault); if (FaultEntityManager.isManagedAsCurrentProblem(fault)) { if (FaultEntityManager.isNoAlarmIndication(fault)) { LOG.debug("Remove from currentFaults: {}", fault.toString()); @@ -198,8 +200,7 @@ public class HtDatabaseEventsService implements DataProvider { @Override public int clearGuiCutThroughEntriesOfNode(String nodeName) { - this.guicutthroughRW.remove(nodeName); - return 0; + return this.guicutthroughRW.remove(nodeName); } @Override @@ -213,9 +214,28 @@ public class HtDatabaseEventsService implements DataProvider { return this.networkelementConnectionRW.updateOrInsert(ne, nodeId) != null; } + /** + * Remove network element connection if not required + * This function is called onDisconnect event for netconf node + */ @Override public void removeNetworkConnection(String nodeId) { - this.networkelementConnectionRW.remove(nodeId); + NetworkElementConnectionEntity e = this.networkelementConnectionRW.read(nodeId); + Boolean isRequired = e!=null? e.getIsRequired():null; + if (e != null && isRequired != null) { + if (isRequired) { + LOG.debug("updating connection status for {} of required ne to disconnected", nodeId); + this.networkelementConnectionRW.update(new UpdateNetworkElementConnectionInputBuilder() + .setStatus(ConnectionLogStatus.Disconnected).build(), nodeId); + } else { + LOG.debug("remove networkelement-connection for {} entry because of non-required", nodeId); + this.networkelementConnectionRW.remove(nodeId); + } + } else { + LOG.warn("Unable to update connection-status. dbentry for {} not found in networkelement-connection", + nodeId); + } + } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java index a17c6ae48..8c549ded8 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/data/entity/HtDatabaseMaintenanceService.java @@ -33,8 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMaintenanceOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.MaintenanceEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadMaintenanceListOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadNetworkElementConnectionListOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter; @@ -109,12 +107,7 @@ public class HtDatabaseMaintenanceService implements HtDatabaseMaintenance { @Override public MaintenanceEntity getMaintenance(@Nullable String nodeId) { - ReadMaintenanceListOutput result = this.dbProvider - .readMaintenanceList( - new ReadMaintenanceListInputBuilder().setFilter(getFilterInput("node-id", nodeId)).build()) - .build(); - final List data = result.getData(); - return data != null ? !data.isEmpty() ? data.get(0) : null : null; + return this.maintenanceRw.read(DatabaseIdGenerator.getMaintenanceId(nodeId)); } @Override diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java index c63d2f16b..19323b9f7 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBMapper.java @@ -60,7 +60,7 @@ public class SqlDBMapper { private static final String ENUM_DBTYPE = "VARCHAR(100)"; private static final String BIGINT_DBTYPE = "BIGINT"; public static final String ODLID_DBCOL = "controller-id"; - private static final String ID_DBCOL = "id"; + public static final String ID_DBCOL = "id"; private static List> numericClasses = Arrays.asList(Byte.class, Integer.class, Long.class, BigInteger.class, Uint8.class, Uint16.class, Uint32.class, Uint64.class); private static final YangToolsMapper mapper = new YangToolsMapper(); @@ -78,18 +78,19 @@ public class SqlDBMapper { } public static String createTable(Class clazz, Entity e) throws UnableToMapClassException { - return createTable(clazz, e, "", false); + return createTable(clazz, e, "", false, true); } public static String createTable(Class clazz, Entity e, String suffix) throws UnableToMapClassException { - return createTable(clazz, e, suffix, false); + return createTable(clazz, e, suffix, false, true); } public static String createTable(Class clazz, Entity e, boolean autoIndex) throws UnableToMapClassException { - return createTable(clazz, e, "", false); + return createTable(clazz, e, "", false, true); } - public static String createTable(Class clazz, Entity e, String suffix, boolean autoIndex) + public static String createTable(Class clazz, Entity e, String suffix, boolean autoIndex, + boolean withControllerId) throws UnableToMapClassException { StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE IF NOT EXISTS `" + e.getName() + suffix + "` (\n"); @@ -99,7 +100,9 @@ public class SqlDBMapper { } else { sb.append("`" + ID_DBCOL + "` " + STRING_DBTYPE + " " + getColumnOptions(ID_DBCOL, STRING_DBTYPE) + ",\n"); } - sb.append("`" + ODLID_DBCOL + "` " + ODLID_DBTYPE + " " + getColumnOptions(ODLID_DBCOL, ODLID_DBTYPE) + ",\n"); + if(withControllerId) { + sb.append("`" + ODLID_DBCOL + "` " + ODLID_DBTYPE + " " + getColumnOptions(ODLID_DBCOL, ODLID_DBTYPE) + ",\n"); + } for (Method method : getFilteredMethods(clazz, true)) { Class valueType = method.getReturnType(); String colName = getColumnName(method); @@ -110,8 +113,10 @@ public class SqlDBMapper { String options = getColumnOptions(colName, dbType); sb.append("`" + colName + "` " + dbType + " " + options + ",\n"); } - sb.append("primary key(" + ID_DBCOL + "),"); - sb.append("foreign key(`" + ODLID_DBCOL + "`) references " + TABLENAME_CONTROLLER + "(" + ID_DBCOL + ")"); + sb.append("primary key(" + ID_DBCOL + ")"); + if(withControllerId) { + sb.append(",foreign key(`" + ODLID_DBCOL + "`) references " + TABLENAME_CONTROLLER + "(" + ID_DBCOL + ")"); + } sb.append(");"); return sb.toString(); @@ -350,11 +355,14 @@ public class SqlDBMapper { public static List read(ResultSet data, Class clazz, String column) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, SQLException, InstantiationException, SecurityException, NoSuchMethodException, JsonProcessingException { - + if(data==null) { + return Arrays.asList(); + } Builder builder = findPOJOBuilder(clazz); if(builder==null && column==null) { throw new InstantiationException("unable to find builder for class "+clazz.getName()); } + List list = new ArrayList<>(); while (data.next()) { if (column == null) { diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java index b5322d6ff..56e965c9f 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriter.java @@ -57,34 +57,47 @@ public class SqlDBReaderWriter { protected final Entity entity; private final Class clazz; protected final SqlDBClient dbService; - private final String dbName; protected final String controllerId; protected final String tableName; + private final boolean ignoreControllerId; - public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String dbName, + public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String controllerId) { + this(dbService, e, dbSuffix, clazz, controllerId, false); + } + + public SqlDBReaderWriter(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, + String controllerId, boolean ignoreControllerId) { this.dbService = dbService; this.entity = e; this.clazz = clazz; - this.dbName = dbName; this.tableName = this.entity.getName() + dbSuffix; this.controllerId = controllerId; + this.ignoreControllerId = ignoreControllerId; } public long count(List filter) throws SQLException { String query; if (filter == null || filter.isEmpty()) { - query = String.format("SELECT table_rows FROM `information_schema`.`tables` " - + "WHERE `table_schema` = '%s' AND `table_name` = '%s'", this.dbName, this.tableName); + // query = String.format("SELECT table_rows FROM `information_schema`.`tables` " + // + "WHERE `table_schema` = '%s' AND `table_name` = '%s'", this.dbName, this.tableName); + query = String.format("SELECT COUNT(`id`) FROM `%s`", this.tableName); } else { query = String.format("SELECT COUNT(`id`) FROM `%s` %s", this.tableName, SqlQuery.getWhereExpression(filter)); } ResultSet data = this.dbService.read(query); + if(data==null) { + return 0; + } long cnt = 0; if (data.next()) { cnt = data.getLong(1); } + try { + data.close(); + } catch (SQLException ignore) { + } return cnt; } @@ -106,11 +119,19 @@ public class SqlDBReaderWriter { public QueryResult getData(EntityInput input) { SelectQuery query = new SelectQuery(this.tableName, input, this.controllerId); - LOG.trace("query={}", query.toSql()); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, clazz); final Map filter = input.getFilter(); + try { + if(data!=null) { + data.close(); + } + } catch (SQLException ignore) { + } long total = this.count(filter != null ? new ArrayList<>(filter.values()) : null, this.controllerId); return new QueryResult(mappedData, query.getPage(), query.getPageSize(), total); } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException @@ -126,8 +147,11 @@ public class SqlDBReaderWriter { if (id == null) { return this.writeWithoutId(object); } - InsertQuery query = new InsertQuery(this.entity, object, this.controllerId); + InsertQuery query = new InsertQuery(this.entity, object, this.controllerId, this.ignoreControllerId); query.setId(id); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } boolean success = false; try { success = this.dbService.write(query.toSql()); @@ -140,7 +164,11 @@ public class SqlDBReaderWriter { private String writeWithoutId(S object) { - InsertQuery query = new InsertQuery(this.entity, object, this.controllerId); + InsertQuery query = + new InsertQuery(this.entity, object, this.controllerId, this.ignoreControllerId, true); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { return this.dbService.writeAndReturnId(query.toSql()); } catch (SQLException e) { @@ -150,8 +178,11 @@ public class SqlDBReaderWriter { } public String update(S object, String id) { - UpdateQuery query = new UpdateQuery(this.entity, object, this.controllerId); + UpdateQuery query = new UpdateQuery(this.entity, object, this.controllerId, this.ignoreControllerId, true); query.setId(id); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } String insertedId = null; PreparedStatement stmt = null; try { @@ -164,6 +195,9 @@ public class SqlDBReaderWriter { if (affectedRows > 0) { insertedId = id; } + if (LOG.isTraceEnabled()) { + LOG.trace("insertedid={}", insertedId); + } } catch (SQLException e) { LOG.warn("problem writing data into db: ", e); } finally { @@ -180,10 +214,12 @@ public class SqlDBReaderWriter { } public String updateOrInsert(S object, String id) { - UpsertQuery query = new UpsertQuery(this.entity, object, this.controllerId); + UpsertQuery query = new UpsertQuery(this.entity, object, this.controllerId, this.ignoreControllerId, true); query.setId(id); String insertedId = null; - LOG.trace("query={}", query.toSql()); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } PreparedStatement stmt = null; try { Connection connection = this.dbService.getConnection(); @@ -221,6 +257,9 @@ public class SqlDBReaderWriter { public int remove(List filters) { DeleteQuery query = new DeleteQuery(this.entity, filters); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } int affectedRows = 0; PreparedStatement stmt = null; try { @@ -249,9 +288,16 @@ public class SqlDBReaderWriter { public List readAll(Class clazz) { SelectQuery query = new SelectQuery(this.tableName); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, clazz); + try { + data.close(); + } catch (SQLException ignore) { + } return mappedData; } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { @@ -262,9 +308,16 @@ public class SqlDBReaderWriter { public List readAll(String key) { SelectQuery query = new SelectQuery(this.tableName, key, this.controllerId).groupBy(key); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, String.class, key); + try { + data.close(); + } catch (SQLException ignore) { + } return mappedData; } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { @@ -272,4 +325,22 @@ public class SqlDBReaderWriter { } return null; } + + public T read(String id) { + SelectQuery query = + new SelectQuery(this.tableName, this.controllerId).addFilter(SqlDBMapper.ID_DBCOL, id); + if (LOG.isTraceEnabled()) { + LOG.trace("query={}", query.toSql()); + } + T item = null; + try { + ResultSet data = this.dbService.read(query.toSql()); + List mappedData = SqlDBMapper.read(data, clazz); + item = mappedData.size()>0? mappedData.get(0): null; + } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException + | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { + LOG.warn("problem reading data {}: ", this.entity, e); + } + return item; + } } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java index 2d4e26eea..86d888a16 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterFault.java @@ -30,9 +30,9 @@ public class SqlDBReaderWriterFault extends SqlDBReaderWri private static final String NODE_KEY = "node-id"; - public SqlDBReaderWriterFault(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String dbName, + public SqlDBReaderWriterFault(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String controllerId) { - super(dbService, e, dbSuffix, clazz, dbName, controllerId); + super(dbService, e, dbSuffix, clazz, controllerId); } public List getAllNodes() { diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java index 021741bd8..22aabc429 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterPm.java @@ -53,9 +53,9 @@ public class SqlDBReaderWriterPm extends SqlDBReaderWriter private static final FilterKey FILTERKEY = new FilterKey(KEY); - public SqlDBReaderWriterPm(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String dbName, + public SqlDBReaderWriterPm(SqlDBClient dbService, Entity e, String dbSuffix, Class clazz, String controllerId) { - super(dbService, e, dbSuffix, clazz, dbName, controllerId); + super(dbService, e, dbSuffix, clazz, controllerId); } /** @@ -83,6 +83,7 @@ public class SqlDBReaderWriterPm extends SqlDBReaderWriter try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, String.class, UUID_KEY); + try { data.close(); } catch (SQLException ignore) { } Map inpFilter = input.getFilter(); long total = this.count(inpFilter != null ? new ArrayList<>(inpFilter.values()) : null, this.controllerId); return new QueryResult<>(mappedData, query.getPage(), query.getPageSize(), total); @@ -114,6 +115,7 @@ public class SqlDBReaderWriterPm extends SqlDBReaderWriter try { ResultSet data = this.dbService.read(query.toSql()); List mappedData = SqlDBMapper.read(data, String.class, NODE_KEY); + try { data.close(); } catch (SQLException ignore) { } Map inpFilter = input.getFilter(); long total = this.count(inpFilter != null ? new ArrayList<>(inpFilter.values()) : null, this.controllerId); return new QueryResult<>(mappedData, query.getPage(), query.getPageSize(), total); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java index 2c849ac67..258cd160f 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBReaderWriterUserdata.java @@ -27,11 +27,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro public class SqlDBReaderWriterUserdata extends SqlDBReaderWriter { - public SqlDBReaderWriterUserdata(SqlDBClient dbService, Entity e, String dbSuffix, String dbName, - String controllerId) { - super(dbService, e, dbSuffix, Userdata.class, dbName, controllerId); + public SqlDBReaderWriterUserdata(SqlDBClient dbService, Entity e, String dbSuffix) { + super(dbService, e, dbSuffix, Userdata.class, null, true); } + } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java index c98ba388d..b0b169d18 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/database/SqlDBStatusReader.java @@ -74,6 +74,7 @@ public class SqlDBStatusReader { } } + try { data.close(); } catch (SQLException ignore) { } } catch (SQLException e) { LOG.warn("problem reading status:", e); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java index c499fefb8..1c1ec622b 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/CountQuery.java @@ -59,7 +59,7 @@ public class CountQuery implements SqlQuery { this(e); Map filter = input != null ? input.getFilter() : null; if (filter != null && filter.size() > 0) { - this.filters.addAll(filters); + this.filters.addAll(filter.values()); } if (controllerId != null) { this.addFilter(SqlDBMapper.ODLID_DBCOL, controllerId); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java index 108888ad0..f52fbd55a 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/InsertQuery.java @@ -39,17 +39,28 @@ public class InsertQuery implements SqlQuery { protected final Entity entity; private final String controllerId; + private final boolean ignoreControllerId; private final T object; private final boolean ignoreNull; private String id; + private final boolean ignoreIdField; public InsertQuery(Entity e, T object, String controllerId) { + this(e, object, controllerId, SqlQuery.DEFAULT_IGNORE_CONTROLLERID); + } + + public InsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId) { + this(e, object, controllerId, ignoreControllerId, SqlQuery.DEFAULT_IGNORE_ID_FIELD); + } + + public InsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) { this.entity = e; this.controllerId = controllerId; this.object = object; this.ignoreNull = true; this.id = null; - + this.ignoreControllerId = ignoreControllerId; + this.ignoreIdField = ignoreIdField; } @Override @@ -63,8 +74,8 @@ public class InsertQuery implements SqlQuery { return null; } - protected String toSqlWithError() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, - JsonProcessingException { + protected String toSqlWithError() throws IllegalAccessException, IllegalArgumentException, + InvocationTargetException, JsonProcessingException { Class cls = this.object.getClass(); List> kvps = new ArrayList<>(); List cols = new ArrayList<>(); @@ -78,26 +89,37 @@ public class InsertQuery implements SqlQuery { m.setAccessible(true); value = m.invoke(this.object); col = SqlDBMapper.getColumnName(m); - if (col.equals("id") && this.id != null) { - value = this.id; + if (col.equals("id")) { + if (this.ignoreIdField) { + continue; + } + if (this.id != null) { + value = this.id; + } } if (ignoreNull && value == null) { continue; } - DBKeyValuePair kvp = SqlDBMapper.getEscapedKeyValue(m,col, value); + DBKeyValuePair kvp = SqlDBMapper.getEscapedKeyValue(m, col, value); cols.add(kvp.getKey()); args.add(kvp.getValue()); kvps.add(kvp); } if (this.id != null && !cols.contains("`id`")) { cols.add("`id`"); - args.add("'"+this.id+"'"); + args.add("'" + this.id + "'"); + } + if (!this.ignoreControllerId) { + args.add("'" + this.controllerId + "'"); + } + sb.append(String.join(",", cols)); + if (!this.ignoreControllerId) { + sb.append(",`" + SqlDBMapper.ODLID_DBCOL + "`) VALUES ("); + } else { + sb.append(") VALUES ("); } - args.add("'"+this.controllerId+"'"); - sb.append( String.join(",", cols)); - sb.append(",`" + SqlDBMapper.ODLID_DBCOL + "`) VALUES ("); - sb.append( String.join(",", args)+" )"); - this.appendAdditionalToQuery(sb,kvps); + sb.append(String.join(",", args) + " )"); + this.appendAdditionalToQuery(sb, kvps); return sb.toString(); } diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java index 2b3f9f3fa..6403a5c1d 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SelectQuery.java @@ -54,9 +54,11 @@ public class SelectQuery implements SqlQuery { private final List groups; public SelectQuery(String tableName) { - this(tableName, Arrays.asList("*"), null); + this(tableName, (String)null); + } + public SelectQuery(String tableName, String controllerId) { + this(tableName, Arrays.asList("*"), controllerId); } - public SelectQuery(String tableName, List fields, String controllerId) { this.tableName = tableName; this.fields = fields; @@ -105,18 +107,21 @@ public class SelectQuery implements SqlQuery { } - public void addFilter(String property, String filtervalue) { + public SelectQuery addFilter(String property, String filtervalue) { this.addFilter(new FilterBuilder().setProperty(property).setFiltervalue(filtervalue).build()); + return this; } private static Filter cleanFilter(Filter filter) { - if (filter.getFiltervalue() != null - && (filter.getFiltervalues() == null || filter.getFiltervalues().isEmpty())) { + final String sFilter = filter.getFiltervalue(); + final List sFilters = filter.getFiltervalues(); + //if only single filter value is set + if (sFilter != null && (sFilters == null || sFilter.isEmpty())) { return "*".equals(filter.getFiltervalue()) ? null : filter; } else { List list = new ArrayList<>(filter.getFiltervalues()); - if (filter.getFiltervalue() != null && !filter.getFiltervalue().isEmpty()) { - list.add(filter.getFiltervalue()); + if (sFilter != null && !sFilter.isEmpty()) { + list.add(sFilter); } if (list.size() == 1 && "*".equals(list.get(0))) { return null; diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java index 82f10b1e5..3e26d0935 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/SqlQuery.java @@ -27,6 +27,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.TimeZone; +import java.util.stream.Collectors; import org.eclipse.jdt.annotation.Nullable; import org.onap.ccsdk.features.sdnr.wt.common.database.data.DbFilter; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.filters.DBFilterKeyValuePair; @@ -46,12 +47,15 @@ public interface SqlQuery { static final String MARIADB_TIMESTAMP_REPLACER_MIN = "0000-00-00 00:00:00"; static final int MARIADB_TIMESTAMP_REPLACER_MIN_LENGTH = MARIADB_TIMESTAMP_REPLACER_MIN.length(); static final int MARIADB_TIMESTAMP_REPLACER_MAX_LENGTH = MARIADB_TIMESTAMP_REPLACER.length(); + static final boolean DEFAULT_IGNORE_CONTROLLERID = false; + static final boolean DEFAULT_IGNORE_ID_FIELD = false; public static String getWhereExpression(List filters) { if (filters == null) { return ""; } StringBuilder sb = new StringBuilder(); + filters = filters.stream().filter(e -> !"*".equals(e.getFiltervalue())).collect(Collectors.toList()); if (!filters.isEmpty()) { sb.append(" WHERE (" + getFilterExpression(filters.get(0)) + ")"); @@ -64,7 +68,8 @@ public interface SqlQuery { public static String getFilterExpression(Filter filter) { String property = filter.getProperty(); - List values = collectValues(filter.getFiltervalue(), filter.getFiltervalues()); + List values = collectValues(filter.getFiltervalue(), filter.getFiltervalues()).stream() + .filter(e -> !"*".equals(e)).collect(Collectors.toList()); if (values.size() == 1) { return getFilterExpression(property, values.get(0)); } else if (values.size() > 1) { @@ -225,7 +230,7 @@ public interface SqlQuery { } private static String netconfToMariaDBTimestamp(String ts) { - if(ts==null) { + if (ts == null) { return null; } String v = ts.replace("T", " ").replace("Z", ""); diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java index b47b03042..dc81161ee 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpdateQuery.java @@ -44,10 +44,10 @@ public class UpdateQuery implements SqlQuery { private String id; public UpdateQuery(Entity e, T object) { - this(e, object, null); + this(e, object, null, SqlQuery.DEFAULT_IGNORE_CONTROLLERID, SqlQuery.DEFAULT_IGNORE_ID_FIELD); } - public UpdateQuery(Entity e, T object, String controllerId) { + public UpdateQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) { this.entity = e; this.controllerId = controllerId; this.object = object; diff --git a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java index e6f1e13cb..39c505454 100644 --- a/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java +++ b/sdnr/wt/data-provider/dblib/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/sqldb/query/UpsertQuery.java @@ -31,6 +31,10 @@ public class UpsertQuery extends InsertQuery { public UpsertQuery(Entity e, T object, String controllerId) { super(e, object, controllerId); + } + public UpsertQuery(Entity e, T object, String controllerId, boolean ignoreControllerId, boolean ignoreIdField) { + super(e, object, controllerId, ignoreControllerId, ignoreIdField); + } @Override diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java index ad4ab6789..1dd9f725e 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestCRUDMariaDB.java @@ -105,6 +105,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to read size"); } + try { data.close(); } catch (SQLException ignore) { } //create entry success = false; try { @@ -125,6 +126,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to verify write"); } + try { data.close(); } catch (SQLException ignore) { } //update entry success = false; try { @@ -145,6 +147,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to verify write"); } + try { data.close(); } catch (SQLException ignore) { } //delete entry success = false; try { @@ -161,6 +164,7 @@ public class TestCRUDMariaDB { e.printStackTrace(); fail("unable to verify delete. size>0"); } + try { data.close(); } catch (SQLException ignore) { } } @Test diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java index b4e0584b0..c9cf27c68 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestMariaDataProvider.java @@ -24,6 +24,8 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; import java.sql.SQLException; @@ -34,14 +36,17 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import org.json.JSONArray; import org.json.JSONException; +import org.json.JSONObject; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBClient; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.SqlDBDataProvider; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBReaderWriter; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.DeleteQuery; import org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test.util.MariaDBTestBase; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtDatabaseMaintenance; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtUserdataManager; import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper; import org.opendaylight.netconf.shaded.sshd.common.util.io.IoUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; @@ -57,6 +62,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateMediatorServerOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CreateNetworkElementConnectionOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMaintenanceInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteMediatorServerInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.DeleteNetworkElementConnectionInput; @@ -72,6 +80,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder; 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.MaintenanceEntity; 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.NetworkElementConnectionEntity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType; @@ -90,10 +99,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mDeviceListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata15mLtpListOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hDeviceListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hListOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadPmdata24hLtpListOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadStatusOutputBuilder; 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.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMaintenanceInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateMediatorServerInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.UpdateNetworkElementConnectionInput; @@ -102,6 +115,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.PaginationBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.read.network.element.connection.list.output.Data; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint64; import ch.vorburger.exec.ManagedProcessException; @@ -112,6 +126,8 @@ public class TestMariaDataProvider { private static final String NODEID1 = "node1"; private static final String NODEID2 = "node2"; private static final String NODEID3 = "node3"; + private static final String NODEID4 = "node4"; + private static final String NODEID5 = "node5"; private static final String PROBLEM1 = "problem1"; private static final String TIME1 = "2021-05-25T05:12:55.0Z"; private static final String TIME2 = "2021-05-25T05:12:56.0Z"; @@ -121,6 +137,7 @@ public class TestMariaDataProvider { private static final String URI2 = "http://localhost:8181"; private static final String URI3 = "http://localhost:8181"; private static final String PATH = "https://samsung.com/3GPP/simulation/network-function/ves"; + private static final String USERNAME = "admin"; private static MariaDBTestBase testBase; private static SqlDBDataProvider dbProvider; private static SqlDBClient dbClient; @@ -176,12 +193,43 @@ public class TestMariaDataProvider { assertEquals(1, status.getData().get(0).getFaults().getMinors().intValue()); assertEquals(0, status.getData().get(0).getFaults().getWarnings().intValue()); + List nodeList = dbProvider.getAllNodesWithCurrentAlarms(); + assertTrue(nodeList.contains(NODEID1)); + assertEquals(1,nodeList.size()); + faultCurrent1 = new FaultcurrentBuilder().setNodeId(NODEID1).setCounter(1).setObjectId("obj") .setProblem(PROBLEM1).setTimestamp(DateAndTime.getDefaultInstance(TIME1)) .setSeverity(SeverityType.NonAlarmed).setId(String.format("%s/%s", NODEID1, PROBLEM1)).build(); dbProvider.updateFaultCurrent(faultCurrent1); faultCurrents = dbProvider.readFaultCurrentList(createInput("node-id", NODEID1, 1, 20)); assertEquals(1, faultCurrents.getData().size()); + + + } + + @Test + public void testSerializeDeserialize() { + + try { + CreateNetworkElementConnectionOutputBuilder necon = dbProvider.createNetworkElementConnection( + new NetworkElementConnectionBuilder().setNodeId(NODEID1).setIsRequired(Boolean.TRUE).build()); + List netestList = + dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20)).getData(); + + assertNotNull(necon); + assertEquals(1, netestList.size()); + assertTrue(netestList.get(0).getIsRequired()); + SqlDBReaderWriter dbrw = new SqlDBReaderWriter<>(dbClient, Entity.NetworkelementConnection, + MariaDBTestBase.SUFFIX, + Data.class, + CONTROLLERID); + Data e = dbrw.read(NODEID1); + assertNotNull(e); + + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } } @Test @@ -204,6 +252,7 @@ public class TestMariaDataProvider { dbProvider.writeFaultLog(fault2); faultlogs = dbProvider.readFaultLogList(createInput("node-id", NODEID1, 1, 20)); assertEquals(2, faultlogs.getData().size()); + } @Test @@ -211,28 +260,16 @@ public class TestMariaDataProvider { ReadCmlogListOutputBuilder cmlogs = dbProvider.readCMLogList(createInput(1, 20)); assertEquals(0, cmlogs.getData().size()); - CmlogEntity cm1 = new CmlogBuilder() - .setNodeId(NODEID2) - .setCounter(1) - .setTimestamp(DateAndTime.getDefaultInstance(TIME1)) - .setObjectId("obj") - .setNotificationType(CmNotificationType.NotifyMOIChanges) - .setNotificationId("1") - .setSourceIndicator(CmSourceIndicator.MANAGEMENTOPERATION) - .setPath(PATH) - .setValue("pnf-registration: true") - .build(); - CmlogEntity cm2 = new CmlogBuilder() - .setNodeId(NODEID2) - .setCounter(2) - .setTimestamp(DateAndTime.getDefaultInstance(TIME2)) - .setObjectId("obj") - .setNotificationType(CmNotificationType.NotifyMOIChanges) - .setNotificationId("2") - .setSourceIndicator(CmSourceIndicator.UNKNOWN) - .setPath(PATH) - .setValue("pnf-registration: false") - .build(); + CmlogEntity cm1 = + new CmlogBuilder().setNodeId(NODEID2).setCounter(1).setTimestamp(DateAndTime.getDefaultInstance(TIME1)) + .setObjectId("obj").setNotificationType(CmNotificationType.NotifyMOIChanges) + .setNotificationId("1").setSourceIndicator(CmSourceIndicator.MANAGEMENTOPERATION).setPath(PATH) + .setValue("pnf-registration: true").build(); + CmlogEntity cm2 = + new CmlogBuilder().setNodeId(NODEID2).setCounter(2).setTimestamp(DateAndTime.getDefaultInstance(TIME2)) + .setObjectId("obj").setNotificationType(CmNotificationType.NotifyMOIChanges) + .setNotificationId("2").setSourceIndicator(CmSourceIndicator.UNKNOWN).setPath(PATH) + .setValue("pnf-registration: false").build(); dbProvider.writeCMLog(cm1); dbProvider.writeCMLog(cm2); @@ -240,10 +277,10 @@ public class TestMariaDataProvider { assertEquals(2, cmlogs.getData().size()); List cmLogEntityList = List.of(cm1, cm2); - assertEquals("node2",cmLogEntityList.get(0).getNodeId()); - assertEquals("obj",cmLogEntityList.get(0).getObjectId()); - assertEquals(CmNotificationType.NotifyMOIChanges,cmLogEntityList.get(0).getNotificationType()); - assertEquals("2",cmLogEntityList.get(1).getNotificationId()); + assertEquals("node2", cmLogEntityList.get(0).getNodeId()); + assertEquals("obj", cmLogEntityList.get(0).getObjectId()); + assertEquals(CmNotificationType.NotifyMOIChanges, cmLogEntityList.get(0).getNotificationType()); + assertEquals("2", cmLogEntityList.get(1).getNotificationId()); } @@ -383,6 +420,45 @@ public class TestMariaDataProvider { data = dbProvider.readMaintenanceList(createInput(1, 20)); assertEquals(3, data.getData().size()); + UpdateMaintenanceInput update1 = + new UpdateMaintenanceInputBuilder().setId(NODEID1).setNodeId(NODEID1).setActive(false).build(); + try { + dbProvider.updateMaintenance(update1); + } catch (IOException e) { + e.printStackTrace(); + fail("unable to update maintenance data"); + } + data = dbProvider.readMaintenanceList(createInput("active","false",1, 20)); + assertEquals(1, data.getData().size()); + DeleteMaintenanceInput delete1 = new DeleteMaintenanceInputBuilder().setId(NODEID1).build(); + try { + dbProvider.deleteMaintenance(delete1); + } catch (IOException e) { + e.printStackTrace(); + fail("unable to delete maintenance data"); + } + data = dbProvider.readMaintenanceList(createInput(1, 20)); + assertEquals(2, data.getData().size()); + try { + dbClient.delete(new DeleteQuery(Entity.Maintenancemode, null).toSql()); + } catch (SQLException e) { + e.printStackTrace(); + fail("problem clearing faultlog"); + } + final String nodeId = "maint_node1"; + HtDatabaseMaintenance maintenanceService = dbProvider.getHtDatabaseMaintenance(); + MaintenanceEntity e = maintenanceService.createIfNotExists(nodeId); + assertNotNull(e); + assertEquals(nodeId,e.getNodeId()); + MaintenanceEntity e2 = new CreateMaintenanceInputBuilder(e).setActive(true).build(); + e = maintenanceService.setMaintenance(e2); + assertNotNull(e); + assertEquals(nodeId,e.getNodeId()); + assertTrue(e.getActive()); + maintenanceService.deleteIfNotRequired(nodeId); + data = dbProvider.readMaintenanceList(createInput("node-id",nodeId,1, 20)); + assertEquals(0, data.getData().size()); + } @Test @@ -456,22 +532,26 @@ public class TestMariaDataProvider { NetworkElementConnectionEntity ne2 = new NetworkElementConnectionBuilder().setNodeId(NODEID2) .setHost("10.20.30.55").setPort(Uint32.valueOf(8300)).setIsRequired(false).setUsername("user") .setPassword("passwd").setStatus(ConnectionLogStatus.Connecting).build(); + NetworkElementConnectionEntity ne3 = new NetworkElementConnectionBuilder().setNodeId(NODEID3) + .setHost("10.20.30.55").setPort(Uint32.valueOf(8300)).setIsRequired(false).setUsername("user") + .setPassword("passwd").setStatus(ConnectionLogStatus.Connecting).build(); try { dbProvider.createNetworkElementConnection(ne1); dbProvider.createNetworkElementConnection(ne2); + dbProvider.updateNetworkConnection22(ne3, NODEID3); } catch (IOException e) { e.printStackTrace(); fail("problem creating neconnection"); } data = dbProvider.readNetworkElementConnectionList(createInput(1, 20)); - assertEquals(2, data.getData().size()); + assertEquals(3, data.getData().size()); NetworkElementConnectionEntity update1 = new NetworkElementConnectionBuilder() .setStatus(ConnectionLogStatus.Connected).setDeviceType(NetworkElementDeviceType.ORAN).build(); dbProvider.updateNetworkConnectionDeviceType(update1, NODEID1); data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20)); assertEquals(1, data.getData().size()); assertEquals(NetworkElementDeviceType.ORAN, data.getData().get(0).getDeviceType()); - assertEquals(true, data.getData().get(0).isIsRequired()); + assertEquals(true, data.getData().get(0).getIsRequired()); UpdateNetworkElementConnectionInput update2 = new UpdateNetworkElementConnectionInputBuilder().setId(NODEID2) .setHost("10.20.55.44").setIsRequired(true).build(); try { @@ -483,7 +563,7 @@ public class TestMariaDataProvider { data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID2, 1, 20)); assertEquals(1, data.getData().size()); assertEquals("10.20.55.44", data.getData().get(0).getHost()); - assertEquals(true, data.getData().get(0).isIsRequired()); + assertEquals(true, data.getData().get(0).getIsRequired()); ReadStatusOutputBuilder status = null; try { @@ -493,10 +573,10 @@ public class TestMariaDataProvider { fail("failed to read status"); } assertEquals(1, status.getData().get(0).getNetworkElementConnections().getConnected().intValue()); - assertEquals(1, status.getData().get(0).getNetworkElementConnections().getConnecting().intValue()); + assertEquals(2, status.getData().get(0).getNetworkElementConnections().getConnecting().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getDisconnected().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getMounted().intValue()); - assertEquals(2, status.getData().get(0).getNetworkElementConnections().getTotal().intValue()); + assertEquals(3, status.getData().get(0).getNetworkElementConnections().getTotal().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnableToConnect().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUndefined().intValue()); assertEquals(0, status.getData().get(0).getNetworkElementConnections().getUnmounted().intValue()); @@ -513,9 +593,39 @@ public class TestMariaDataProvider { data = dbProvider.readNetworkElementConnectionList(createInput("node-id", NODEID1, 1, 20)); assertEquals(0, data.getData().size()); data = dbProvider.readNetworkElementConnectionList(createInput(1, 20)); - assertEquals(1, data.getData().size()); + assertEquals(2, data.getData().size()); + } + @Test + public void testUserdata() { + HtUserdataManager mgr = dbProvider.getUserManager(); + String userdata = mgr.getUserdata(USERNAME); + assertEquals("{}",userdata); + JSONObject o = new JSONObject(); + o.put("key1", false); + o.put("key2","value2"); + boolean result = mgr.setUserdata(USERNAME, o.toString()); + assertTrue(result); + userdata = mgr.getUserdata(USERNAME); + o = new JSONObject(userdata); + assertEquals(false,o.getBoolean("key1")); + assertEquals("value2",o.getString("key2")); + o = new JSONObject(); + o.put("enabled", true); + o.put("name","abcdef"); + result = mgr.setUserdata(USERNAME,"app1",o.toString()); + assertTrue(result); + userdata = mgr.getUserdata(USERNAME); + o = new JSONObject(userdata); + assertEquals(false,o.getBoolean("key1")); + assertEquals("value2",o.getString("key2")); + JSONObject app = o.getJSONObject("app1"); + assertNotNull(app); + assertEquals(true, app.getBoolean("enabled")); + assertEquals("abcdef", app.getString("name")); + + } @Test public void testpm15m() { try { @@ -538,7 +648,7 @@ public class TestMariaDataProvider { assertEquals(10, data.getData().size()); ReadPmdata15mLtpListOutputBuilder ltpdata = null; try { - ltpdata = dbProvider.readPmdata15mLtpList(createInput("node-name","sim12600",1, 20)); + ltpdata = dbProvider.readPmdata15mLtpList(createInput("node-name", "sim12600", 1, 20)); } catch (IOException e) { e.printStackTrace(); fail("failed to read pmdata15m ltp list"); @@ -546,7 +656,7 @@ public class TestMariaDataProvider { assertEquals(3, ltpdata.getData().size()); ReadPmdata15mDeviceListOutputBuilder devicedata = null; try { - devicedata = dbProvider.readPmdata15mDeviceList(createInput(1,20)); + devicedata = dbProvider.readPmdata15mDeviceList(createInput(1, 20)); } catch (IOException e) { e.printStackTrace(); fail("failed to read pmdata15m devices list"); @@ -554,7 +664,6 @@ public class TestMariaDataProvider { assertEquals(1, devicedata.getData().size()); } - @Ignore @Test public void testpm24h() { try { @@ -573,9 +682,27 @@ public class TestMariaDataProvider { fail("failed to load pmdata24h"); } dbProvider.doWritePerformanceData(list); + data = dbProvider.readPmdata24hList(createInput(1, 20)); + assertEquals(1, data.getData().size()); + ReadPmdata24hLtpListOutputBuilder ltpdata = null; + try { + ltpdata = dbProvider.readPmdata24hLtpList(createInput("node-name", "test", 1, 20)); + } catch (IOException e) { + e.printStackTrace(); + fail("failed to read pmdata15m ltp list"); + } + assertEquals(1, ltpdata.getData().size()); + ReadPmdata24hDeviceListOutputBuilder devicedata = null; + try { + devicedata = dbProvider.readPmdata24hDeviceList(createInput(1, 20)); + } catch (IOException e) { + e.printStackTrace(); + fail("failed to read pmdata15m devices list"); + } + assertEquals(1, devicedata.getData().size()); } - private static EntityInput createInput(int page, int size) { + static EntityInput createInput(int page, int size) { return createInput(null, null, page, size); } @@ -597,7 +724,7 @@ public class TestMariaDataProvider { return String.join("\n", IoUtils.readAllLines(TestMariaDataProvider.class.getResourceAsStream(filename))); } - private static EntityInput createInput(String filter, String filterValue, int page, int size) { + static EntityInput createInput(String filter, String filterValue, int page, int size) { ReadFaultcurrentListInputBuilder builder = new ReadFaultcurrentListInputBuilder().setPagination( new PaginationBuilder().setPage(Uint64.valueOf(page)).setSize(Uint32.valueOf(size)).build()); if (filter != null && filterValue != null) { diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java index 24347c7db..576a3825c 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/TestQuerySyntax.java @@ -22,12 +22,16 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.CountQuery; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.SelectQuery; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Entity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EntityInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadGuiCutThroughEntryInputBuilder; @@ -164,8 +168,8 @@ public class TestQuerySyntax { @Test public void testSelectForFilterValues() { EntityInput input = new ReadGuiCutThroughEntryInputBuilder() - .setFilter(Arrays.asList( - new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("das", "das2")).build())) + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("das", "das2")).build()))) .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) .build(); SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); @@ -174,8 +178,8 @@ public class TestQuerySyntax { @Test public void testSelectForFilterValues2() { EntityInput input = new ReadGuiCutThroughEntryInputBuilder() - .setFilter(Arrays.asList( - new FilterBuilder().setProperty("id").setFiltervalue("*").build())) + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalue("*").build()))) .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) .build(); SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); @@ -185,12 +189,38 @@ public class TestQuerySyntax { @Test public void testSelectForFilterValues3() { EntityInput input = new ReadGuiCutThroughEntryInputBuilder() - .setFilter(Arrays.asList( - new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("*","abc")).build())) + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("*","abc")).build()))) .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) .build(); SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); System.out.println(query.toSql()); assertFalse(query.toSql().contains("RLIKE")); } + @Test + public void testSelectForFilterValues4() { + EntityInput input = new ReadGuiCutThroughEntryInputBuilder() + .setFilter(YangToolsMapperHelper.toMap(Arrays.asList( + new FilterBuilder().setProperty("id").setFiltervalues(Arrays.asList("abc")).build(), + new FilterBuilder().setProperty("node-id").setFiltervalues(Arrays.asList("*")).build()))) + .setPagination(new PaginationBuilder().setSize(Uint32.valueOf(20)).setPage(Uint64.valueOf(1)).build()) + .build(); + SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID); + System.out.println(query.toSql()); + assertFalse(query.toSql().contains("RLIKE")); + } + @Test + public void testCount() { + CountQuery query = new CountQuery(Entity.Eventlog, TestMariaDataProvider.createInput(1, 20)); + String sQuery = query.toSql(); + assertNotNull(sQuery); + assertTrue(sQuery.contains("*") && sQuery.contains("COUNT") && sQuery.contains(Entity.Eventlog.getName())); + + query = new CountQuery(Entity.Eventlog, TestMariaDataProvider.createInput("node-id","abc",1, 20)); + sQuery = query.toSql(); + assertNotNull(sQuery); + assertTrue(sQuery.contains("node-id") && sQuery.contains("COUNT") && sQuery.contains(Entity.Eventlog.getName())); + + + } } diff --git a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java index 3360d3ed8..aebd3328e 100644 --- a/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java +++ b/sdnr/wt/data-provider/dblib/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/dblib/test/util/MariaDBTestBase.java @@ -34,6 +34,7 @@ import org.onap.ccsdk.features.sdnr.wt.common.configuration.subtypes.Section.Env import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBClient; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBConfig; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.SqlDBDataProvider; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.data.Userdata; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBMapper; import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.database.SqlDBMapper.UnableToMapClassException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.CmlogEntity; @@ -60,6 +61,7 @@ public class MariaDBTestBase { private SqlDBConfig config; private static final Map envDefaultValues = initEnvDefaultValues(); private static final String SDNRDBDATABASETEST = "test"; + public static final String SUFFIX = ""; public MariaDBTestBase() throws ManagedProcessException { this(new Random().nextInt(1000) + 50000); @@ -173,6 +175,7 @@ public class MariaDBTestBase { createTable(dbService, MaintenanceEntity.class, Entity.Maintenancemode, false); createTable(dbService, MediatorServerEntity.class, Entity.MediatorServer, true); createTable(dbService, NetworkElementConnectionEntity.class, Entity.NetworkelementConnection, false); + createTable(dbService, Userdata.class, Entity.Userdata, false, false); } public static boolean createTableOdl(SqlDBClient dbService) { @@ -181,11 +184,14 @@ public class MariaDBTestBase { System.out.println(createStatement); return dbService.createTable(createStatement); } - public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, SUFFIX, autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } diff --git a/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json b/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json new file mode 100644 index 000000000..6b1f6b543 --- /dev/null +++ b/sdnr/wt/data-provider/dblib/src/test/resources/pmdata24h.json @@ -0,0 +1,55 @@ +[ + { + "uuid-interface": "LP-MWPS-TTP-RADIO", + "granularity-period": "period-24-hours", + "suspect-interval-flag": false, + "layer-protocol-name": "MWPS", + "performance-data": { + "time-period": 86400, + "es": 0, + "ses": 0, + "cses": 0, + "unavailability": 0, + "tx-level-min": 3, + "tx-level-max": 3, + "tx-level-avg": 3, + "rx-level-min": -44, + "rx-level-max": -45, + "rx-level-avg": -44, + "time2-states": 0, + "time4-states-s": 0, + "time4-states": 0, + "time8-states": -1, + "time16-states-s": -1, + "time16-states": 0, + "time32-states": -1, + "time64-states": 86400, + "time128-states": -1, + "time256-states": -1, + "time512-states": -1, + "time512-states-l": -1, + "time1024-states": -1, + "time1024-states-l": -1, + "time2048-states": -1, + "time2048-states-l": -1, + "time4096-states": -1, + "time4096-states-l": -1, + "time8192-states": -1, + "time8192-states-l": -1, + "snir-min": -99, + "snir-max": -99, + "snir-avg": -99, + "xpd-min": -99, + "xpd-max": -99, + "xpd-avg": -99, + "rf-temp-min": -99, + "rf-temp-max": -99, + "rf-temp-avg": -99, + "defect-blocks-sum": -1 + }, + "radio-signal-id": "Test8", + "scanner-id": "PM_RADIO_24H_1", + "time-stamp": "2017-03-01T00:00:00.0+00:00", + "node-name": "test" + } +] \ No newline at end of file diff --git a/sdnr/wt/data-provider/feature/pom.xml b/sdnr/wt/data-provider/feature/pom.xml index d8885ffb5..7e05c15b0 100644 --- a/sdnr/wt/data-provider/feature/pom.xml +++ b/sdnr/wt/data-provider/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/installer/pom.xml b/sdnr/wt/data-provider/installer/pom.xml index 1d13432a8..b118cbdb1 100755 --- a/sdnr/wt/data-provider/installer/pom.xml +++ b/sdnr/wt/data-provider/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/model/pom.xml b/sdnr/wt/data-provider/model/pom.xml index 05d98fa2d..0a73be143 100644 --- a/sdnr/wt/data-provider/model/pom.xml +++ b/sdnr/wt/data-provider/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/pom.xml b/sdnr/wt/data-provider/pom.xml index 70ac5655f..d24fb72c3 100755 --- a/sdnr/wt/data-provider/pom.xml +++ b/sdnr/wt/data-provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/provider/pom.xml b/sdnr/wt/data-provider/provider/pom.xml index 8c546aebd..1d3753b48 100644 --- a/sdnr/wt/data-provider/provider/pom.xml +++ b/sdnr/wt/data-provider/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT @@ -210,18 +210,7 @@ - - - - - - - - - - - - + org.apache.maven.plugins maven-surefire-plugin diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java index 13438ef15..9cfe4e50d 100644 --- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java +++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseEventsService.java @@ -405,8 +405,8 @@ public class HtDatabaseEventsService implements ArchiveCleanProvider, DataProvid } NetworkElementConnectionBuilder builder = new NetworkElementConnectionBuilder(base); if (toJoin != null) { - if (toJoin.isIsRequired() != null) { - builder.setIsRequired(toJoin.isIsRequired()); + if (toJoin.requireIsRequired() != null) { + builder.setIsRequired(toJoin.requireIsRequired()); } if (toJoin.getCoreModelCapability() != null) { builder.setCoreModelCapability(toJoin.getCoreModelCapability()); @@ -483,7 +483,7 @@ public class HtDatabaseEventsService implements ArchiveCleanProvider, DataProvid public void removeNetworkConnection(String nodeId) { Boolean isRequired; NetworkElementConnectionEntity e = this.networkelementConnectionDB.read(nodeId); - if (e != null && (isRequired = e.isIsRequired()) != null) { + if (e != null && (isRequired = e.requireIsRequired()) != null) { if (isRequired) { LOG.debug("updating connection status for {} of required ne to disconnected", nodeId); this.networkelementConnectionDB.update(new UpdateNetworkElementConnectionInputBuilder() diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java index c6161b54c..9f4c0f399 100644 --- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java +++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/database/elasticsearch/data/entity/HtDatabaseMaintenanceService.java @@ -166,8 +166,8 @@ public class HtDatabaseMaintenanceService implements HtDatabaseMaintenance { } else { LOG.warn("cannot read db. no db reader writer initialized"); } - if (ne != null && ne.isIsRequired() != null) { - return ne.isIsRequired(); + if (ne != null && ne.requireIsRequired() != null) { + return ne.requireIsRequired(); } else { return false; } diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java index 5211030eb..29d9ee9db 100644 --- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java +++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/about/ODLVersionLUT.java @@ -66,6 +66,8 @@ public class ODLVersionLUT { } if(odlMdsalVersionLUT==null) { odlMdsalVersionLUT = new HashMap<>(); + odlMdsalVersionLUT.put("8.0.7","phosphorus-SR1 (0.15.1)"); + odlMdsalVersionLUT.put("8.0.5","phosphorus-SR0 (0.15.0)"); odlMdsalVersionLUT.put("7.0.9","silicon-SR2 (0.14.2)"); odlMdsalVersionLUT.put("7.0.7","silicon-SR1 (0.14.1)"); odlMdsalVersionLUT.put("7.0.6","silicon-SR0 (0.14.0)"); diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java index d59a0784f..00e8075f9 100644 --- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestCRUDforDatabase.java @@ -379,7 +379,7 @@ public class TestCRUDforDatabase { // ==PARTIAL UPDATE============================ System.out.println("Try partial update..."); - assertEquals(false, data.get(0).isIsRequired()); + assertEquals(false, data.get(0).requireIsRequired()); updateInput = new UpdateNetworkElementConnectionInputBuilder().setId(dbId).setIsRequired(true).build(); try { updateOutput = dbProvider.updateNetworkElementConnection(updateInput); @@ -392,7 +392,7 @@ public class TestCRUDforDatabase { readOperation = dbProvider.readNetworkElementConnectionList(readInput); data = readOperation.getData(); - assertEquals(true, data.get(0).isIsRequired()); + assertEquals(true, data.get(0).requireIsRequired()); assertEquals(url2, data.get(0).getHost()); assertEquals(port2, data.get(0).getPort().longValue()); @@ -463,7 +463,7 @@ public class TestCRUDforDatabase { assertNotEquals(0, data.size()); assertNotNull(data); assertEquals(nodeId, data.get(0).getNodeId()); - assertEquals(isActive, data.get(0).isActive()); + assertEquals(isActive, data.get(0).requireActive()); // ==UPDATE============================ @@ -489,7 +489,7 @@ public class TestCRUDforDatabase { assertNotNull(data); assertEquals(nodeId2, data.get(0).getNodeId()); - assertEquals(isActive2, data.get(0).isActive()); + assertEquals(isActive2, data.get(0).getActive()); // ==DELETE================================ System.out.println("Trying to delete..."); diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java new file mode 100644 index 000000000..50c231015 --- /dev/null +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestMapper.java @@ -0,0 +1,93 @@ +/* + * ============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.dataprovider.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.json.JSONObject; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnection; +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; + +public class TestMapper { + + private static final YangToolsMapper MAPPER = new YangToolsMapper(); + + @Test + public void testYangGenEnumMapperDeser() { + NetworkElementConnection con = null; + try { + con = MAPPER.readValue("{\"device-type\":\"O-RAN\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.ORAN, con.getDeviceType()); + try { + con = MAPPER.readValue("{\"device-type\":\"ORAN\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.ORAN, con.getDeviceType()); + try { + con = MAPPER.readValue("{\"device-type\":\"O-ROADM\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.OROADM, con.getDeviceType()); + try { + con = MAPPER.readValue("{\"device-type\":\"O-ROADM\"}", NetworkElementConnection.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals(NetworkElementDeviceType.OROADM, con.getDeviceType()); + } + + @Test + public void testYangGenEnumMapperSer() { + NetworkElementConnection con = + new NetworkElementConnectionBuilder().setDeviceType(NetworkElementDeviceType.ORAN).build(); + String str = null; + try { + str = MAPPER.writeValueAsString(con); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals("O-RAN", new JSONObject(str).getString("device-type")); + con = new NetworkElementConnectionBuilder().setDeviceType(NetworkElementDeviceType.OROADM).build(); + str = null; + try { + str = MAPPER.writeValueAsString(con); + } catch (JsonProcessingException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + assertEquals("O-ROADM", new JSONObject(str).getString("device-type")); + } +} diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java index 1345d4edf..35ddaf2f3 100644 --- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/TestYangGenSalMappingOpenRoadm.java @@ -35,6 +35,7 @@ import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2; import org.onap.ccsdk.features.sdnr.wt.dataprovider.yangtools.DataProviderYangToolsMapper; import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper2; 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.PmDataTypeBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.BIPErrorCounter; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.OpticalPowerInputOSCMin; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType; @@ -78,7 +79,7 @@ public class TestYangGenSalMappingOpenRoadm extends Mockito { String jsonString = mapper2.writeValueAsString(pmDataType); out("Result json after mapping: " + jsonString); - PmdataEntity generatepmdNode = mapper2.readValue(jsonString.getBytes(), PmdataEntity.class); + PmdataEntity generatepmdNode = mapper2.readValue(jsonString, PmdataEntity.class); out("Original: " + pmDataType.toString()); out("Mapped : " + generatepmdNode.toString()); assertTrue("Can mapping not working", generatepmdNode.equals(pmDataType)); @@ -104,9 +105,10 @@ public class TestYangGenSalMappingOpenRoadm extends Mockito { @Test public void testOpenroadmPMString2() throws IOException, ClassNotFoundException { out("Test: " + method()); + PmDataTypeBuilder.getDefaultInstance("11298624220985537708"); String jsonString2 = getFileContent("pmdata2.json"); DataProviderYangToolsMapper mapper2 = new DataProviderYangToolsMapper(); - PmdataEntity generatepmdNode = mapper2.readValue(jsonString2.getBytes(), PmdataEntity.class); + PmdataEntity generatepmdNode = mapper2.readValue(jsonString2, PmdataEntity.class); out(generatepmdNode.toString()); // Print it with specified indentation } diff --git a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java index 18efde235..7d71571d4 100644 --- a/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java +++ b/sdnr/wt/data-provider/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/test/util/MariaDBTestBase.java @@ -154,20 +154,17 @@ public class MariaDBTestBase { } public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } System.out.println(createStatement); - try { - return dbService.write(createStatement); - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - - } - return false; + return dbService.createTable(createStatement); } } diff --git a/sdnr/wt/data-provider/setup/pom.xml b/sdnr/wt/data-provider/setup/pom.xml index 487aacd88..7d7a6ee16 100644 --- a/sdnr/wt/data-provider/setup/pom.xml +++ b/sdnr/wt/data-provider/setup/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java index 8a0aeb05e..6148e21d5 100644 --- a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java +++ b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/istanbul/IstanbulReleaseInformation.java @@ -44,95 +44,98 @@ import org.slf4j.LoggerFactory; public class IstanbulReleaseInformation extends ReleaseInformation { private final Logger LOG = LoggerFactory.getLogger(IstanbulReleaseInformation.class); - + private static String NORMAL_STRING_MAX_LEN = "1024"; public static final String TIMEZONE_TYPE_FORMAT = "CHAR(6) DEFAULT NULL CHECK (`%s` regexp '^[+-]\\\\d\\\\d:\\\\d\\\\d$')"; public static final String TABLENAME_CONTROLLER_FORMAT = "controller%s"; public static final String TABLEMAPPING_CONTROLLER = - "`id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,`desc` VARCHAR(255) CHARACTER SET utf8 ,primary key(id)"; + "`id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,`desc` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,primary key(id)"; private static final String TABLEMAPPING_CONNECTIONLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`timestamp` DATETIME(3) ,\n" - + "`status` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`timestamp` DATETIME(3) ,\n" + + "`status` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; private static final String TABLEMAPPING_EVENTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") - + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`attribute-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`new-value` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_FAULTCURRENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`source-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`severity` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_FAULTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + "`attribute-name` VARCHAR(" + + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`new-value` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_FAULTCURRENT_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") - + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`severity` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n" + + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + + "`severity` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`problem` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_FAULTLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`source-type` VARCHAR(" + + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`object-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + + "`severity` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`problem` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_GUICUTTHROUGH_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`weburi` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_GUICUTTHROUGH_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`weburi` VARCHAR(255) CHARACTER SET utf8 ,\n" + private static final String TABLEMAPPING_HISTORICALPM15M_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`performance-data` JSON ,\n" + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`time-stamp` DATETIME(3) ,\n" + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + + " ,\n" + "`node-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`radio-signal-id` VARCHAR(" + + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" + + "`scanner-id` VARCHAR(" + NORMAL_STRING_MAX_LEN + ") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_HISTORICALPM15M_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`performance-data` JSON ,\n" - + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`time-stamp` DATETIME(3) ,\n" + private static final String TABLEMAPPING_HISTORICALPM24H_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`performance-data` JSON ,\n" + + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`time-stamp` DATETIME(3) ,\n" + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + " ,\n" - + "`node-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" - + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`node-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" + + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_HISTORICALPM24H_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`performance-data` JSON ,\n" - + "`granularity-period` VARCHAR(100) CHARACTER SET utf8 ,\n" + "`time-stamp` DATETIME(3) ,\n" - + "`time-stamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "time-stamp-tz") + " ,\n" - + "`node-name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid-interface` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`layer-protocol-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`radio-signal-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`suspect-interval-flag` BOOLEAN ,\n" - + "`scanner-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + private static final String TABLEMAPPING_INVENTORY_FORMAT = "`id` VARCHAR(" + NORMAL_STRING_MAX_LEN + + ") CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`version` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`type-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`date` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`uuid` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`part-type-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`model-identifier` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`manufacturer-identifier` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`tree-level` BIGINT ,\n" + + "`parent-uuid` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`contained-holder` JSON ,\n" + + "`serial` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`manufacturer-name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_INVENTORY_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`version` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`type-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`date` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`uuid` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`part-type-id` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`model-identifier` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`manufacturer-identifier` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`tree-level` BIGINT ,\n" - + "`parent-uuid` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`contained-holder` JSON ,\n" - + "`serial` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`manufacturer-name` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_MAINTENANCE_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`active` BOOLEAN ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 ,\n" - + "`problem` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`start` DATETIME(3) ,\n" + "`start-tz` " + private static final String TABLEMAPPING_MAINTENANCE_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + "`active` BOOLEAN ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`description` VARCHAR(1024) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`problem` VARCHAR("+NORMAL_STRING_MAX_LEN+") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`start` DATETIME(3) ,\n" + "`start-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "start-tz") + " ,\n" + "`end` DATETIME(3) ,\n" + "`end-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "end-tz") + " ,\n" - + "`object-id-ref` VARCHAR(255) CHARACTER SET utf8 ,\n" + + "`object-id-ref` VARCHAR("+NORMAL_STRING_MAX_LEN+") CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; private static final String TABLEMAPPING_MEDIATORSERVER_FORMAT = - "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`name` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`url` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`url` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_NETWORKELEMENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`password` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`host` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`port` BIGINT ,\n" + "`status` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`username` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`is-required` BOOLEAN ,\n" + "`core-model-capability` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "`device-type` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`device-function` VARCHAR(512) CHARACTER SET utf8 ,\n" + "`node-details` JSON ,\n" - + "`tls-key` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`mount-method` VARCHAR(255) CHARACTER SET utf8 ,\n" - + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; - private static final String TABLEMAPPING_USERDATA_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\n" - + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" + "`value` JSON ,\n" + private static final String TABLEMAPPING_NETWORKELEMENT_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`password` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`host` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`port` BIGINT ,\n" + "`status` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`username` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`is-required` BOOLEAN ,\n" + "`core-model-capability` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`device-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`device-function` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`node-details` JSON ,\n" + + "`tls-key` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`mount-method` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) references `controller%s`(id)"; + private static final String TABLEMAPPING_USERDATA_FORMAT = "`id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`value` JSON ,\n" + + "primary key(id)"; public IstanbulReleaseInformation() { @@ -176,9 +179,8 @@ public class IstanbulReleaseInformation extends ReleaseInformation { + "\"device-function\": {\"type\": \"keyword\"},\"is-required\": {\"type\": \"boolean\"}," + "\"status\": {\"type\": \"keyword\"},\"tls-key\": {\"type\": \"keyword\"}," + "\"mount-method\": {\"type\":\"keyword\"}}", - "{\"index\":{\"max_result_window\": 20000,\"number_of_shards\":%d,\"number_of_replicas\":%d}," - +"\"analysis\":{\"analyzer\":{\"content\":{\"type\":\"custom\",\"tokenizer\":\"whitespace\"}}}}" - )); + "{\"index\":{\"max_result_window\": 20000,\"number_of_shards\":%d,\"number_of_replicas\":%d}," + + "\"analysis\":{\"analyzer\":{\"content\":{\"type\":\"custom\",\"tokenizer\":\"whitespace\"}}}}")); return map; } diff --git a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java index 03033edad..cf369925c 100644 --- a/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java +++ b/sdnr/wt/data-provider/setup/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/jakarta/JakartaReleaseInformation.java @@ -49,17 +49,18 @@ public class JakartaReleaseInformation extends ReleaseInformation { private static final String TIMEZONE_TYPE_FORMAT = IstanbulReleaseInformation.TIMEZONE_TYPE_FORMAT; private final Logger LOG = LoggerFactory.getLogger(JakartaReleaseInformation.class); - private static final String TABLEMAPPING_CMLOG_FORMAT = - "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + "`controller-id` VARCHAR(40) CHARACTER SET utf8 NOT NULL,\n" - + "`source-type` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`object-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`timestamp` DATETIME(3) ,\n" - + "`timestamp-tz` " + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") - + " ,\n" + "`node-id` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`counter` INTEGER ,\n" - + "`notification-type` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`notification-id` VARCHAR(40) CHARACTER SET utf8 ,\n" - + "`source-indicator` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`path` VARCHAR(255) CHARACTER SET utf8 ,\n" + "`operation` VARCHAR(100) CHARACTER SET utf8 ,\n" - + "`value` VARCHAR(255) CHARACTER SET utf8 ,\n" + "primary key(id)"; + private static final String TABLEMAPPING_CMLOG_FORMAT = "`id` int(11) NOT NULL AUTO_INCREMENT,\n" + + "`controller-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,\n" + + "`source-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`object-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`timestamp` DATETIME(3) ,\n" + "`timestamp-tz` " + + String.format(TIMEZONE_TYPE_FORMAT, "timestamp-tz") + " ,\n" + + "`node-id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`counter` INTEGER ,\n" + + "`notification-type` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`notification-id` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`source-indicator` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`path` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "`operation` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + + "`value` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,\n" + "primary key(id),foreign key(`controller-id`) " + + "references `controller%s`(id) "; public JakartaReleaseInformation() { super(Release.JAKARTA_R1, createDBMap(), createMariaDBMap()); diff --git a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java index 6fd4a40a4..a2a1fcdec 100644 --- a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java +++ b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/MariaDBTestBase.java @@ -163,21 +163,18 @@ public class MariaDBTestBase { } public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } System.out.println(createStatement); - try { - return dbService.write(createStatement); - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - - } - return false; + return dbService.createTable(createStatement); } public String getDBUrl() { return envDefaultValues.get("SDNRDBURL"); diff --git a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java index f39f9b088..ef8998875 100644 --- a/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java +++ b/sdnr/wt/data-provider/setup/src/test/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/setup/TestMariaDBMapper.java @@ -24,10 +24,10 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.setup; import static org.junit.Assert.fail; import com.fasterxml.jackson.core.JsonProcessingException; import java.lang.reflect.InvocationTargetException; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; import java.util.List; -import java.util.Properties; import java.util.concurrent.TimeUnit; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -63,12 +63,12 @@ import ch.vorburger.exec.ManagedProcessException; public class TestMariaDBMapper { - private static final String MARIADB_USERNAME = "sdnrdb"; - private static final String MARIADB_PASSWORD = "sdnrdb"; - // private static final String MARIADB_HOST = "10.20.11.159"; - private static final String MARIADB_HOST = "sdnrdb"; - private static final int MARIADB_PORT = 3306; - private static final String MARIADB_DATABASENAME = "sdnrdb"; +// private static final String MARIADB_USERNAME = "sdnrdb"; +// private static final String MARIADB_PASSWORD = "sdnrdb"; +// private static final String MARIADB_HOST = "10.20.11.159"; +// private static final String MARIADB_HOST = "sdnrdb"; +// private static final int MARIADB_PORT = 3306; +// private static final String MARIADB_DATABASENAME = "sdnrdb"; // private static DbLibService dbService; @@ -137,7 +137,6 @@ public class TestMariaDBMapper { writeEntry(builder.build(), Entity.NetworkelementConnection); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | JsonProcessingException e) { - // TODO Auto-generated catch block e.printStackTrace(); } } @@ -152,16 +151,19 @@ public class TestMariaDBMapper { private List readEntry(Entity entity, Class clazz, String id) { final SelectQuery selectStatement = new SelectQuery(entity.getName()); System.out.println(selectStatement); + List list = null; try { - return SqlDBMapper.read(dbProvider.getDBService().read(selectStatement.toSql()), clazz); + ResultSet data = dbProvider.getDBService().read(selectStatement.toSql()); + list = SqlDBMapper.read(data, clazz); + try { data.close(); } catch (SQLException ignore) { } + } catch (SQLException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException | SecurityException | NoSuchMethodException | JsonProcessingException e) { - // TODO Auto-generated catch block e.printStackTrace(); } - return null; + return list; } private boolean writeEntry(T data, Entity entity) throws IllegalAccessException, @@ -173,7 +175,6 @@ public class TestMariaDBMapper { return dbProvider.getDBService().write(insertStatement.toSql()); } catch (SQLException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -188,41 +189,24 @@ public class TestMariaDBMapper { try { return dbService.write(createStatement); } catch (SQLException e) { - // TODO Auto-generated catch block e.printStackTrace(); } return false; } - private static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex) { + return createTable(dbService, cls, entity, autoIndex, true); + } + public static boolean createTable(SqlDBClient dbService, Class cls, Entity entity, boolean autoIndex, + boolean withControllerId) { String createStatement = null; try { - createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex); + createStatement = SqlDBMapper.createTable(cls, entity, "", autoIndex,withControllerId); } catch (UnableToMapClassException e) { fail(e.getMessage()); } System.out.println(createStatement); - try { - return dbService.write(createStatement); - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - - } - return false; - } - - private static Properties getConfig() { - Properties config = new Properties(); - config.setProperty("org.onap.ccsdk.sli.dbtype", "jdbc"); - config.setProperty("org.onap.ccsdk.sli.jdbc.hosts", MARIADB_HOST); - config.setProperty("org.onap.ccsdk.sli.jdbc.url", - String.format("jdbc:mysql://dbhost:%d/%s", MARIADB_PORT, MARIADB_DATABASENAME)); - config.setProperty("org.onap.ccsdk.sli.jdbc.driver", "org.mariadb.jdbc.Driver"); - config.setProperty("org.onap.ccsdk.sli.jdbc.database", MARIADB_DATABASENAME); - config.setProperty("org.onap.ccsdk.sli.jdbc.user", MARIADB_USERNAME); - config.setProperty("org.onap.ccsdk.sli.jdbc.password", MARIADB_PASSWORD); - return config; + return dbService.createTable(createStatement); } } diff --git a/sdnr/wt/devicemanager-core/feature/pom.xml b/sdnr/wt/devicemanager-core/feature/pom.xml index c4b14366a..fd102a981 100644 --- a/sdnr/wt/devicemanager-core/feature/pom.xml +++ b/sdnr/wt/devicemanager-core/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-core/installer/pom.xml b/sdnr/wt/devicemanager-core/installer/pom.xml index dfc41b722..70a9fd9c7 100755 --- a/sdnr/wt/devicemanager-core/installer/pom.xml +++ b/sdnr/wt/devicemanager-core/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-core/model/pom.xml b/sdnr/wt/devicemanager-core/model/pom.xml index 04249d2d1..3b8932e47 100644 --- a/sdnr/wt/devicemanager-core/model/pom.xml +++ b/sdnr/wt/devicemanager-core/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java new file mode 100644 index 000000000..105453ea6 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java @@ -0,0 +1,46 @@ +/* + * ============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.types; + +import org.eclipse.jdt.annotation.Nullable; +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.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +/** + * Add specific constructor + */ +public class EventlogNotificationBuilder extends EventlogBuilder { + + public EventlogNotificationBuilder(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, + @Nullable String objectId, @Nullable String attributeName, @Nullable String newValue) { + + setNodeId(nodeId.getValue()); + if (counter != null) { + setCounter(counter); + } + if (timeStamp != null) { + setTimestamp(timeStamp); + } + setObjectId(objectId); + setAttributeName(attributeName); + setNewValue(newValue); + + } + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java new file mode 100644 index 000000000..5ccc664b4 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java @@ -0,0 +1,49 @@ +/* + * ============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.types; + +import org.eclipse.jdt.annotation.Nullable; +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.FaultlogBuilder; +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.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +/** + * Add specific constructor + */ +public class FaultNotificationBuilder2 extends FaultlogBuilder { + + public FaultNotificationBuilder2(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, + @Nullable String objectId, @Nullable String problem, @Nullable SeverityType severity, + SourceType sourceType) { + + setNodeId(nodeId.getValue()); + if (counter != null) { + setCounter(counter); + } + if (timeStamp != null) { + setTimestamp(timeStamp); + } + setObjectId(objectId); + setProblem(problem); + setSeverity(severity); + setSourceType(sourceType); + } + +} diff --git a/sdnr/wt/devicemanager-core/pom.xml b/sdnr/wt/devicemanager-core/pom.xml index 92594f29e..0a65a4901 100755 --- a/sdnr/wt/devicemanager-core/pom.xml +++ b/sdnr/wt/devicemanager-core/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-core/provider/pom.xml b/sdnr/wt/devicemanager-core/provider/pom.xml index 22c4bd966..c4808211e 100644 --- a/sdnr/wt/devicemanager-core/provider/pom.xml +++ b/sdnr/wt/devicemanager-core/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java index 3d570e59a..94694cd90 100644 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java @@ -34,6 +34,7 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.Deviceman import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.NotificationDelayFilter; import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.NotificationDelayedListener; import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EquipmentData; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EventlogNotificationBuilder; import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData; 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.EventlogEntity; diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java deleted file mode 100644 index 3afa493b5..000000000 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * ============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.eventdatahandler; - -import org.eclipse.jdt.annotation.Nullable; -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.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -/** - * Add specific constructor - */ -public class EventlogNotificationBuilder extends EventlogBuilder { - - public EventlogNotificationBuilder(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, - @Nullable String objectId, @Nullable String attributeName, @Nullable String newValue) { - - setNodeId(nodeId.getValue()); - if (counter != null) { - setCounter(counter); - } - if (timeStamp != null) { - setTimestamp(timeStamp); - } - setObjectId(objectId); - setAttributeName(attributeName); - setNewValue(newValue); - - } - -} diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java index 4543ab0b4..ba65447e9 100644 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/ODLEventListenerHandler.java @@ -195,7 +195,7 @@ public class ODLEventListenerHandler implements EventHandlingService, AutoClosea DateAndTime ts = NETCONFTIME_CONVERTER.getTimeStamp(); AttributeValueChangedNotification notification = new AttributeValueChangedNotificationBuilder() .setCounter(popEvntNumber()).setTimeStamp(ts).setObjectIdRef(nNodeId.getValue()) - .setAttributeName("deviceType").setNewValue(deviceType.name()).build(); + .setAttributeName("deviceType").setNewValue(deviceType.getName()).build(); webSocketService.sendViaWebsockets(new NodeId(ownKeyName), notification, AttributeValueChangedNotification.QNAME, ts); } @@ -231,7 +231,7 @@ public class ODLEventListenerHandler implements EventHandlingService, AutoClosea // Write first to prevent missing entries databaseService.removeNetworkConnection(nodeId.getValue()); databaseService.writeConnectionLog(log); - webSocketService.sendViaWebsockets(new NodeId(nodeId.getValue()), notification, + webSocketService.sendViaWebsockets(new NodeId(ownKeyName), notification, ObjectDeletionNotification.QNAME, ts); } diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java index 02c32d91b..f2726b091 100644 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/housekeeping/ConnectionStatusHousekeepingService.java @@ -163,7 +163,7 @@ public class ConnectionStatusHousekeepingService .setTimestamp(new DateAndTime(ts.getTimeStamp())).setObjectId(item.getNodeId()) .setAttributeName("status").setNewValue(String.valueOf(mdsalStatus)) .setCounter(popEvntNumber()).setSourceType(SourceType.Controller).build()); - if ((item.isIsRequired() == null || item.isIsRequired() == false) + if ((item.requireIsRequired() == null || item.requireIsRequired() == false) && mdsalStatus == ConnectionLogStatus.Disconnected) { LOG.info("removing entry for node {} ({}) from database due missing MD-SAL entry", item.getNodeId(), mdsalStatus); diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java index 23ff50fb9..3d892e42d 100644 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/maintenance/impl/MaintenanceCalculator.java @@ -56,7 +56,7 @@ public class MaintenanceCalculator { ZonedDateTime now) { if (maintenance != null) { - Boolean isActive = maintenance.isActive(); + Boolean isActive = maintenance.getActive(); if (isActive != null && isActive && isInMaintenance(maintenance, objectIdRef, problem, now)) { return true; } diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java index 0b5b331be..707675504 100644 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java @@ -24,6 +24,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; + 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.PerformanceDataProvider; @@ -34,211 +35,213 @@ import org.slf4j.LoggerFactory; public class PerformanceManagerTask implements Runnable { - private static final Logger LOG = LoggerFactory.getLogger(PerformanceManagerTask.class); - private static final String LOGMARKER = "PMTick"; - - private int tickCounter = 0; - - private final ConcurrentHashMap queue = new ConcurrentHashMap<>(); - private final DataProvider databaseService; - private final ScheduledExecutorService scheduler; - private final long seconds; - - private ScheduledFuture taskHandle = null; - private Iterator neIterator = null; - private PerformanceDataProvider actualNE = null; - private final NetconfNetworkElementService netconfNetworkElementService; - - /** - * Constructor of PM Task - * - * @param seconds seconds to call PM Task - * @param microwaveHistoricalPerformanceWriterService DB Service to load PM data to - * @param netconfNetworkElementService to write into log - */ - - public PerformanceManagerTask(long seconds, DataProvider microwaveHistoricalPerformanceWriterService, - NetconfNetworkElementService netconfNetworkElementService) { - - LOG.info("Init task {} handling time {} seconds", PerformanceManagerTask.class.getSimpleName(), seconds); - this.seconds = seconds; - this.databaseService = microwaveHistoricalPerformanceWriterService; - this.scheduler = Executors.newSingleThreadScheduledExecutor(); - this.netconfNetworkElementService = netconfNetworkElementService; - - } - - /** - * Start PM Task - */ - public void start() { - LOG.info("PM task created"); - taskHandle = this.scheduler.scheduleAtFixedRate(this, 0, seconds, TimeUnit.SECONDS); - LOG.info("PM task scheduled"); - } - - /** - * Stop everything - */ - public void stop() { - LOG.info("Stop {}", PerformanceManagerImpl.class.getSimpleName()); - if (taskHandle != null) { - taskHandle.cancel(true); - try { - scheduler.awaitTermination(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - LOG.debug("Scheduler stopped.", e); - // Restore interrupted state... - Thread.currentThread().interrupt(); - } - } - } - - /** - * Add NE/Mountpoint to PM Processig - * - * @param mountPointNodeName to be added - * @param ne that is connected to the mountpoint - */ - public void registration(String mountPointNodeName, NetworkElement ne) { - - Optional oPmNe = ne.getService(PerformanceDataProvider.class); - if (oPmNe.isPresent()) { - queue.put(mountPointNodeName, oPmNe.get()); - } - } - - /** - * Remove mountpoint/NE from PM process - * - * @param mountPointNodeName that has to be removed - */ - public void deRegistration(String mountPointNodeName) { - LOG.debug("Deregister {}", mountPointNodeName); - PerformanceDataProvider removedNE = queue.remove(mountPointNodeName); - - if (removedNE == null) { - LOG.warn("Couldn't delete {}", mountPointNodeName); - } - } - - /*-------------------------------------------------------------- - * Task to read PM data from NE - */ - - /** - * Task runner to read all performance data from Network Elements. Catch exceptions to make sure, that the Task is - * not stopped. - */ - @Override - public void run() { - - String mountpointName = "No NE"; - if (actualNE != null && actualNE.getAcessor().isPresent()) { - mountpointName = actualNE.getAcessor().get().getNodeId().getValue(); - } - LOG.debug("{} start {} Start with mountpoint {}", LOGMARKER, tickCounter, mountpointName); - - // Proceed to next NE/Interface - getNextInterface(mountpointName); - - LOG.debug("{} {} Next interface to handle {}", LOGMARKER, tickCounter, - actualNE == null ? "No NE/IF" : actualNE.pmStatusToString()); - - if (actualNE != null) { - try { - LOG.debug("{} Start to read PM from NE ({})", LOGMARKER, tickCounter); - Optional allPm = actualNE.getLtpHistoricalPerformanceData(); - if (allPm.isPresent()) { - LOG.debug("{} {} Got PM list. Start write to DB", LOGMARKER, tickCounter); - databaseService.doWritePerformanceData(allPm.get().getList()); - } - LOG.debug("{} {} PM List end.", LOGMARKER, tickCounter); - } catch (Throwable e) { - LOG.debug("{} {} PM Exception", LOGMARKER, tickCounter); - String msg = new StringBuffer().append(e.getMessage()).toString(); - LOG.warn("{} {} PM read/write failed. Write log entry {}", LOGMARKER, tickCounter, msg); - netconfNetworkElementService.writeToEventLog(mountpointName, "PM Problem", msg); - } - } - - LOG.debug("{} end {}", LOGMARKER, tickCounter); - tickCounter++; - } - - /** - * Reset queue to start from beginning - */ - private void resetQueue() { - actualNE = null; - neIterator = null; - } - - /** - * Get then next interface in the list. First try to find a next on the actual NE. If not available search next - * interface at a NE Special Situations to handle: Empty queue, NEs, but no interfaces - */ - private void getNextInterface(String mountpointName) { - boolean started = false; - int loopCounter = 0; - - LOG.debug("{} {} getNextInterface enter. Queue size {} ", LOGMARKER, tickCounter, queue.size()); - - if (actualNE != null && !queue.containsValue(actualNE)) { - LOG.debug("{} {} NE Removed duringprocessing A", LOGMARKER, tickCounter); - resetQueue(); - } - - while (true) { - - if (loopCounter++ >= 1000) { - LOG.error("{} {} Problem in PM iteration. endless condition reached", LOGMARKER, tickCounter); - resetQueue(); - break; - } - - LOG.debug("{} {} Loop ne {}:neiterator {}:Interfaceiterator:{} Loop:{}", LOGMARKER, tickCounter, - actualNE == null ? "null" : mountpointName, neIterator == null ? "null" : neIterator.hasNext(), - actualNE == null ? "null" : actualNE.hasNext(), loopCounter); - - if (actualNE != null && actualNE.hasNext()) { - // Yes, there is an interface, deliver back - LOG.debug("{} {} getNextInterface yes A", LOGMARKER, tickCounter); - actualNE.next(); - break; - - } else { - // No element in neInterfaceInterator .. get next NE and try - if (neIterator != null && neIterator.hasNext()) { - // Set a new NE - LOG.debug("{} {} Next NE A", LOGMARKER, tickCounter); - actualNE = neIterator.next(); - actualNE.resetPMIterator(); - - } else { - // Goto start condition 1) first entry 2) end of queue reached - LOG.debug("{} {} Reset", LOGMARKER, tickCounter); - resetQueue(); - - if (queue.isEmpty()) { - LOG.debug("{} {} no nextInterfac. queue empty", LOGMARKER, tickCounter); - break; - } else if (!started) { - LOG.debug("{} {} getNextInterface start condition. Get interator.", LOGMARKER, tickCounter); - neIterator = queue.values().iterator(); - started = true; - } else { - LOG.debug("{} {} no nextInterface", LOGMARKER, tickCounter); - break; - } - } - } - } // while - - if (actualNE != null && !queue.containsValue(actualNE)) { - LOG.debug("{} {} NE Removed duringprocessing B", LOGMARKER, tickCounter); - resetQueue(); - } - - } + private static final Logger LOG = LoggerFactory.getLogger(PerformanceManagerTask.class); + private static final String LOGMARKER = "PMTick"; + + private int tickCounter = 0; + + private final ConcurrentHashMap queue = new ConcurrentHashMap<>(); + private final DataProvider databaseService; + private final ScheduledExecutorService scheduler; + private final long seconds; + + private ScheduledFuture taskHandle = null; + private Iterator neIterator = null; + private PerformanceDataProvider actualNE = null; + private final NetconfNetworkElementService netconfNetworkElementService; + + /** + * Constructor of PM Task + * + * @param seconds seconds to call PM Task + * @param microwaveHistoricalPerformanceWriterService DB Service to load PM data + * to + * @param netconfNetworkElementService to write into log + */ + + public PerformanceManagerTask(long seconds, DataProvider microwaveHistoricalPerformanceWriterService, + NetconfNetworkElementService netconfNetworkElementService) { + + LOG.info("Init task {} handling time {} seconds", PerformanceManagerTask.class.getSimpleName(), seconds); + this.seconds = seconds; + this.databaseService = microwaveHistoricalPerformanceWriterService; + this.scheduler = Executors.newSingleThreadScheduledExecutor(); + this.netconfNetworkElementService = netconfNetworkElementService; + + } + + /** + * Start PM Task + */ + public void start() { + LOG.info("PM task created"); + taskHandle = this.scheduler.scheduleAtFixedRate(this, 0, seconds, TimeUnit.SECONDS); + LOG.info("PM task scheduled"); + } + + /** + * Stop everything + */ + public void stop() { + LOG.info("Stop {}", PerformanceManagerImpl.class.getSimpleName()); + if (taskHandle != null) { + taskHandle.cancel(true); + try { + scheduler.awaitTermination(10, TimeUnit.SECONDS); + } catch (InterruptedException e) { + LOG.debug("Scheduler stopped.", e); + // Restore interrupted state... + Thread.currentThread().interrupt(); + } + } + } + + /** + * Add NE/Mountpoint to PM Processig + * + * @param mountPointNodeName to be added + * @param ne that is connected to the mountpoint + */ + public void registration(String mountPointNodeName, NetworkElement ne) { + + Optional oPmNe = ne.getService(PerformanceDataProvider.class); + if (oPmNe.isPresent()) { + queue.put(mountPointNodeName, oPmNe.get()); + } + } + + /** + * Remove mountpoint/NE from PM process + * + * @param mountPointNodeName that has to be removed + */ + public void deRegistration(String mountPointNodeName) { + LOG.debug("Deregister {}", mountPointNodeName); + PerformanceDataProvider removedNE = queue.remove(mountPointNodeName); + + if (removedNE == null) { + LOG.warn("Couldn't delete {}", mountPointNodeName); + } + } + + /*-------------------------------------------------------------- + * Task to read PM data from NE + */ + + /** + * Task runner to read all performance data from Network Elements. Catch + * exceptions to make sure, that the Task is not stopped. + */ + @Override + public void run() { + + String mountpointName = "No NE"; + if (actualNE != null && actualNE.getAcessor().isPresent()) { + mountpointName = actualNE.getAcessor().get().getNodeId().getValue(); + } + LOG.debug("{} start {} Start with mountpoint {}", LOGMARKER, tickCounter, mountpointName); + + // Proceed to next NE/Interface + getNextInterface(mountpointName); + + LOG.debug("{} {} Next interface to handle {}", LOGMARKER, tickCounter, + actualNE == null ? "No NE/IF" : actualNE.pmStatusToString()); + + if (actualNE != null) { + try { + LOG.debug("{} Start to read PM from NE ({})", LOGMARKER, tickCounter); + Optional allPm = actualNE.getLtpHistoricalPerformanceData(); + if (allPm.isPresent()) { + LOG.debug("{} {} Got PM list. Start write to DB", LOGMARKER, tickCounter); + databaseService.doWritePerformanceData(allPm.get().getList()); + } + LOG.debug("{} {} PM List end.", LOGMARKER, tickCounter); + } catch (Throwable e) { + LOG.debug("{} {} PM Exception", LOGMARKER, tickCounter); + String msg = new StringBuffer().append(e.getMessage()).toString(); + LOG.warn("{} {} PM read/write failed. Write log entry {}", LOGMARKER, tickCounter, msg); + netconfNetworkElementService.writeToEventLog(mountpointName, "PM Problem", msg); + } + } + + LOG.debug("{} end {}", LOGMARKER, tickCounter); + tickCounter++; + } + + /** + * Reset queue to start from beginning + */ + private void resetQueue() { + actualNE = null; + neIterator = null; + } + + /** + * Get then next interface in the list. First try to find a next on the actual + * NE. If not available search next interface at a NE Special Situations to + * handle: Empty queue, NEs, but no interfaces + */ + private void getNextInterface(String mountpointName) { + boolean started = false; + int loopCounter = 0; + + LOG.debug("{} {} getNextInterface enter. Queue size {} ", LOGMARKER, tickCounter, queue.size()); + + if (actualNE != null && !queue.containsValue(actualNE)) { + LOG.debug("{} {} NE Removed duringprocessing A", LOGMARKER, tickCounter); + resetQueue(); + } + + while (true) { + + if (loopCounter++ >= 1000) { + LOG.error("{} {} Problem in PM iteration. endless condition reached", LOGMARKER, tickCounter); + resetQueue(); + break; + } + + LOG.debug("{} {} Loop ne {}:neiterator {}:Interfaceiterator:{} Loop:{}", LOGMARKER, tickCounter, + actualNE == null ? "null" : mountpointName, neIterator == null ? "null" : neIterator.hasNext(), + actualNE == null ? "null" : actualNE.hasNext(), loopCounter); + + if (actualNE != null && actualNE.hasNext()) { + // Yes, there is an interface, deliver back + LOG.debug("{} {} getNextInterface yes A", LOGMARKER, tickCounter); + actualNE.next(); + break; + + } else { + // No element in neInterfaceInterator .. get next NE and try + if (neIterator != null && neIterator.hasNext()) { + // Set a new NE + LOG.debug("{} {} Next NE A", LOGMARKER, tickCounter); + actualNE = neIterator.next(); + actualNE.resetPMIterator(); + + } else { + // Goto start condition 1) first entry 2) end of queue reached + LOG.debug("{} {} Reset", LOGMARKER, tickCounter); + resetQueue(); + + if (queue.isEmpty()) { + LOG.debug("{} {} no nextInterfac. queue empty", LOGMARKER, tickCounter); + break; + } else if (!started) { + LOG.debug("{} {} getNextInterface start condition. Get interator.", LOGMARKER, tickCounter); + neIterator = queue.values().iterator(); + started = true; + } else { + LOG.debug("{} {} no nextInterface", LOGMARKER, tickCounter); + break; + } + } + } + } // while + + if (actualNE != null && !queue.containsValue(actualNE)) { + LOG.debug("{} {} NE Removed duringprocessing B", LOGMARKER, tickCounter); + resetQueue(); + } + + } } diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml index ebcb32ffb..6b3242c0b 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml index a16cd43df..f8f49d9da 100755 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml index eeaa7b0d3..5df342eb7 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml index 85ebdcdb8..cf4ae3550 100755 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml index 34886499e..0a75fcee3 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java deleted file mode 100644 index 87157e8ce..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * ============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.oran.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 DeviceManagerORanImpl implements AutoCloseable { - - private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerORanImpl.class); - private static final String APPLICATION_NAME = "DeviceManagerORan"; - @SuppressWarnings("unused") - private static final String CONFIGURATIONFILE = "etc/devicemanager-oran.properties"; - - - private NetconfNetworkElementService netconfNetworkElementService; - - private HtDatabaseClient htDatabaseClient; - private Boolean devicemanagerInitializationOk = false; - private FactoryRegistration resORan; - - // Blueprint begin - public DeviceManagerORanImpl() { - LOG.info("Creating provider for {}", APPLICATION_NAME); - resORan = null; - } - - public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) { - this.netconfNetworkElementService = netconfNetworkElementService; - } - - public void init() throws Exception { - - LOG.info("Session Initiated start {}", APPLICATION_NAME); - - resORan = netconfNetworkElementService.registerBindingNetworkElementFactory(new ORanNetworkElementFactory()); - - - 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(resORan); - 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-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java deleted file mode 100644 index c0aa0ac9b..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * ============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.oran.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -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.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -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.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.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Listener for change notifications - */ -public class ORanChangeNotificationListener implements IetfNetconfNotificationsListener { - - private static final Logger log = LoggerFactory.getLogger(ORanChangeNotificationListener.class); - - private final NetconfBindingAccessor netconfAccessor; - private final DataProvider databaseService; - private final NotificationService notificationService; - private final VESCollectorService vesCollectorService; - private final NotificationProxyParser notificationProxyParser; - private ORanNotifToVESEventAssembly mapper = null; - - private static int sequenceNo = 0; - - public ORanChangeNotificationListener(NetconfBindingAccessor netconfAccessor, - DeviceManagerServiceProvider serviceProvider) { - this.netconfAccessor = netconfAccessor; - this.databaseService = serviceProvider.getDataProvider(); - this.notificationService = serviceProvider.getNotificationService(); - this.vesCollectorService = serviceProvider.getVESCollectorService(); - this.notificationProxyParser = vesCollectorService.getNotificationProxyParser(); - } - - @Override - public void onNetconfConfirmedCommit(NetconfConfirmedCommit notification) { - log.info("onNetconfConfirmedCommit {}", notification); - } - - @Override - public void onNetconfSessionStart(NetconfSessionStart notification) { - log.info("onNetconfSessionStart {}", notification); - } - - @Override - public void onNetconfSessionEnd(NetconfSessionEnd notification) { - log.info("onNetconfSessionEnd {}", notification); - } - - @Override - public void onNetconfCapabilityChange(NetconfCapabilityChange notification) { - log.info("onNetconfCapabilityChange {}", notification); - } - - @Override - public void onNetconfConfigChange(NetconfConfigChange notification) { - log.info("onNetconfConfigChange (1) {}", notification.toString()); - - StringBuffer sb = new StringBuffer(); - List editList = notification.nonnullEdit(); - for (Edit edit : editList) { - if (sb.length() > 0) { - sb.append(", "); - } - sb.append(edit); - - InstanceIdentifier target = edit.getTarget(); - if (target != null) { - log.info("TARGET: {} {}", target.getClass(), target.getTargetType()); - for (PathArgument pa : target.getPathArguments()) { - log.info("PathArgument {} Type {}", pa, pa.getType().getFields()); - } - - EventlogEntity eventLogEntity1 = new EventlogBuilder().setNodeId(netconfAccessor.getNodeId().getValue()) - .setCounter(sequenceNo++).setTimestamp(NetconfTimeStampImpl.getConverter().getTimeStamp()) - .setObjectId(target.getTargetType().getCanonicalName()).setAttributeName("N.A") - .setSourceType(SourceType.Netconf).setNewValue(String.valueOf(edit.getOperation())).build(); - databaseService.writeEventLog(eventLogEntity1); - } - } - log.info("onNetconfConfigChange (2) {}", sb); - - if (vesCollectorService.getConfig().isVESCollectorEnabled()) { - if (mapper == null) { - this.mapper = new ORanNotifToVESEventAssembly(netconfAccessor, vesCollectorService); - } - VESCommonEventHeaderPOJO header = - mapper.createVESCommonEventHeader(notificationProxyParser.getTime(notification), - NetconfConfigChange.class.getSimpleName(), sequenceNo); - VESNotificationFieldsPOJO body = - mapper.createVESNotificationFields(notificationProxyParser.parseNotificationProxy(notification), - NetconfConfigChange.class.getSimpleName()); - try { - vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body)); - } catch (JsonProcessingException e) { - log.warn("Exception while generating JSON object ", e); - - } - } - - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java deleted file mode 100644 index a17dcd726..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * ============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.oran.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import java.time.Instant; -import java.time.format.DateTimeParseException; -import java.util.Collection; -import java.util.Date; -import java.util.Objects; -import org.eclipse.jdt.annotation.NonNull; -import org.json.JSONException; -import org.json.JSONObject; -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.service.FaultService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESMessage; -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.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.ORanFmListener; -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.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ORanFaultNotificationListener implements ORanFmListener { - - private static final Logger LOG = LoggerFactory.getLogger(ORanFaultNotificationListener.class); - - private final @NonNull NetconfBindingAccessor netconfAccessor; - private final @NonNull VESCollectorService vesCollectorService; - private final @NonNull ORanFaultToVESFaultMapper mapper; - private final @NonNull FaultService faultService; - private final @NonNull WebsocketManagerService websocketManagerService; - private final @NonNull DataProvider databaseService; - private static final NetconfTimeStamp NETCONFTIME_CONVERTER = NetconfTimeStampImpl.getConverter(); - - private Integer counter; //Local counter is assigned to Notifications - - public ORanFaultNotificationListener(@NonNull NetconfBindingAccessor netconfAccessor, - @NonNull VESCollectorService vesCollectorService, @NonNull FaultService faultService, - @NonNull WebsocketManagerService websocketManagerService, @NonNull DataProvider databaseService) { - this.netconfAccessor = Objects.requireNonNull(netconfAccessor); - this.vesCollectorService = Objects.requireNonNull(vesCollectorService); - this.faultService = Objects.requireNonNull(faultService); - this.websocketManagerService = Objects.requireNonNull(websocketManagerService); - this.databaseService = Objects.requireNonNull(databaseService); - - this.mapper = new ORanFaultToVESFaultMapper(netconfAccessor.getNodeId(), vesCollectorService, - AlarmNotif.class.getSimpleName()); - this.counter = 0; - } - - /** - * Gets the mfg name, mode-name and Uuid of the root component (Ex: Chassis.) - * In cases where there are multiple root components i.e., components with no parent, - * the Uuid of the last occurred component from the componentList will be considered. - * Till now we haven't seen Uuid set for root components, so not an issue for now. - * @param componentList - */ - public void setComponentList(Collection componentList) { - for (Component component : ORanToInternalDataModel.getRootComponents(componentList)) { - mapper.setMfgName(component.getMfgName()); - mapper.setUuid(component.getUuid()!=null?component.getUuid().getValue():netconfAccessor.getNodeId().getValue()); - mapper.setModelName(component.getModelName()); - } - } - - @Override - public void onAlarmNotif(AlarmNotif notification) { - - LOG.debug("onAlarmNotif {}", notification.getClass().getSimpleName()); - counter++; - - // Send devicemanager specific notification for database and ODLUX - Instant eventTimeInstant = ORanToInternalDataModel.getInstantTime(notification.getEventTime()); - faultService.faultNotification( - ORanToInternalDataModel.getFaultLog(notification, netconfAccessor.getNodeId(), counter)); - // Send model specific notification to WebSocketManager - websocketManagerService.sendNotification(notification, netconfAccessor.getNodeId(), AlarmNotif.QNAME); - - try { - if (vesCollectorService.getConfig().isVESCollectorEnabled()) { - VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(notification, eventTimeInstant, counter); - VESFaultFieldsPOJO body = mapper.mapFaultFields(notification); - VESMessage vesMsg = vesCollectorService.generateVESEvent(header, body); - vesCollectorService.publishVESMessage(vesMsg); - LOG.info("VES Message is {}",vesMsg.getMessage()); - writeToEventLog(vesMsg.getMessage(), eventTimeInstant, AlarmNotif.QNAME.toString(), counter); - } - } catch (JsonProcessingException | DateTimeParseException e) { - LOG.debug("Can not convert event into VES message {}", notification, e); - } - } - - private void writeToEventLog(String data, Instant instant, String notificationName, - int sequenceNo) { - EventlogBuilder eventlogBuilder = new EventlogBuilder(); - - eventlogBuilder.setObjectId("Device"); - eventlogBuilder.setCounter(sequenceNo); - eventlogBuilder.setAttributeName(notificationName); - eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()); - String eventLogMsgLvl = vesCollectorService.getConfig().getEventLogMsgDetail(); - if (eventLogMsgLvl.equalsIgnoreCase("SHORT")) { - data = getShortEventLogMessage(data); - } else if (eventLogMsgLvl.equalsIgnoreCase("MEDIUM")) { - data = getMediumEventLogMessage(data); - } else if (eventLogMsgLvl.equalsIgnoreCase("LONG")) { - // do nothing, data already contains long message - } else { // Unknown value, default to "SHORT" - data = getShortEventLogMessage(data); - } - eventlogBuilder.setNewValue(data); - eventlogBuilder.setSourceType(SourceType.Netconf); - - Date eventDate = Date.from(instant); - eventlogBuilder.setTimestamp(new DateAndTime(NETCONFTIME_CONVERTER.getTimeStamp(eventDate))); - - databaseService.writeEventLog(eventlogBuilder.build()); - } - - private String getShortEventLogMessage(String data) { - try { - JSONObject jsonObj = new JSONObject(data); - String domain = jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").getString("domain"); - String eventId = jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").getString("eventId"); - return "domain:" + domain + " eventId:" + eventId; - } catch (JSONException e) { - LOG.debug("{}", e); - return "Invalid message received"; - } - } - - private String getMediumEventLogMessage(String data) { - try { - JSONObject jsonObj = new JSONObject(data); - return jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").toString(); - } catch (JSONException e) { - LOG.debug("{}", e); - return "Invalid message received"; - } - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java deleted file mode 100644 index ec8eaa7b7..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP : ccsdk features - * ================================================================================ - * Copyright (C) 2021 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.oran.impl; - -import java.time.Instant; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -//@formatter:off -/* - * Maps ORAN Fault fields to VES fault domain fields and VES commonEventHeader fields - * - * - * VES Fields Mapping - * ---------- ------- - * domain "fault" - * eventId "nt:network-topology/nt:topology/nt:node/nt:node-id" - * eventName "nt:network-topology/nt:topology/nt:node/nt:node-id" - * eventType "O-RAN-RU-Fault" - * lastEpochMicrosec TimeStamp represented by field in NetConf notification header in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds. - * nfcNamingCode always "" - * nfNamingCode always "" - * nfVendorName /ietf-hardware:hardware/component[not(parent)][1]/mfg-name - * priority "Normal" - * reportingEntityId The OAM-Controller identifier with in the SMO - e.g. the fully qualified domain name or IP-Address. - * reportingEntityName as configured by helm charts for the OpenDaylight cluster name ?????? - * sequence As per NetConf notification increasing sequence number as unsigned integer 32 bits. The value is reused in the eventId field. - * sourceId Value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/uuid or 'nt:network-topology/nt:topology/nt:node/nt:node-id' if ietf component not found. - * sourceName "nt:network-topology/nt:topology/nt:node/nt:node-id" - * startEpochMicrosec Current OAM-Controller Node timestamp in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds. - * timeZoneOffset Static text: "+00:00" - * version "4.1" - * vesEventListenerVersion "7.2.1" - * - * - * alarmAdditionalInformation - * alarmCondition Value of "o-ran-fm:alarm-notif/fault-id" - * alarmInterfaceA Value of "o-ran-fm:alarm-notif/fault-source" - * eventCategory Static text "O-RU failure" - * eventSeverity Value of "o-ran-fm:alarm-notif/fault-severity". But if "o-ran-fm:alarm-notif/is-cleared" then "NORMAL" - * eventSourceType The value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/model-name or "O-RU" if not found. - * faultFieldsVersion "4.0" - * specificProblem A mapping of the fault-id to its description according to O-RAN OpenFronthaul specification. - * vfStatus "Active" - * - */ -//@formatter:on - -public class ORanFaultToVESFaultMapper { - - @SuppressWarnings("unused") - private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class); - private static final String VES_EVENT_DOMAIN = "fault"; - private static final String VES_EVENTTYPE = "ORAN_Fault"; - private static final String VES_EVENT_PRIORITY = "Normal"; - private static final String VES_EVENT_CATEGORY = "O-RU Failure"; - private static final String VES_FAULT_FIELDS_VERSION = "4.0"; - private static final String VES_FAULT_FIELDS_VFSTATUS = "Active"; //virtual function status - - private final VESCollectorService vesProvider; - private final String notifName; // Name - private final String nodeIdString; // Sourcename - private String mfgName; - private String uuid; - private String modelName; - - public ORanFaultToVESFaultMapper(NodeId nodeId, VESCollectorService vesCollectorService, - String notifName) { - this.nodeIdString = nodeId.getValue(); - this.vesProvider = vesCollectorService; - this.notifName = notifName; - } - - public void setMfgName(String mfgName) { - this.mfgName= mfgName; - } - - private String getMfgName() { - return mfgName; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } - - private String getUuid() { - return uuid; - } - - public void setModelName(String modelName) { - this.modelName = modelName; - } - - private String getModelName() { - return modelName; - } - - public VESCommonEventHeaderPOJO mapCommonEventHeader(AlarmNotif notification, Instant eventTime, int sequenceNo) { - VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); - vesCEH.setDomain(VES_EVENT_DOMAIN); - vesCEH.setEventName(notifName); - vesCEH.setEventType(VES_EVENTTYPE); - vesCEH.setPriority(VES_EVENT_PRIORITY); - - String eventId; - - eventId = notifName + "-" + Long.toUnsignedString(sequenceNo); - - vesCEH.setEventId(eventId); - vesCEH.setStartEpochMicrosec(eventTime.toEpochMilli() * 1000); - vesCEH.setLastEpochMicrosec(eventTime.toEpochMilli() * 1000); - vesCEH.setNfVendorName(getMfgName()); - vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); - vesCEH.setSequence(sequenceNo); - vesCEH.setSourceId(getUuid()); - vesCEH.setSourceName(nodeIdString); - - return vesCEH; - } - - public VESFaultFieldsPOJO mapFaultFields(AlarmNotif alarmNotif) { - VESFaultFieldsPOJO vesFaultFields = new VESFaultFieldsPOJO(); - - vesFaultFields.setAlarmCondition(alarmNotif.getFaultId().toString()); - vesFaultFields.setAlarmInterfaceA(alarmNotif.getFaultSource()); - vesFaultFields.setEventCategory(VES_EVENT_CATEGORY); - if (alarmNotif.getIsCleared()) { - vesFaultFields.setEventSeverity("NORMAL"); - } else { - vesFaultFields.setEventSeverity(alarmNotif.getFaultSeverity().getName()); - } - vesFaultFields.setEventSourceType(getModelName()); - vesFaultFields.setFaultFieldsVersion(VES_FAULT_FIELDS_VERSION); - vesFaultFields.setSpecificProblem(alarmNotif.getFaultText()); - vesFaultFields.setVfStatus(VES_FAULT_FIELDS_VFSTATUS); - - return vesFaultFields; - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java deleted file mode 100644 index d3ae5014e..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java +++ /dev/null @@ -1,258 +0,0 @@ -/* - * ============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.oran.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import java.util.Collection; -import java.util.Collections; -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.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO; -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.hardware.rev180313.Hardware; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.System1; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough; -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.NetworkElementDeviceType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.NetconfCallhomeServer; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.netconf.callhome.server.AllowedDevices; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.netconf.callhome.server.allowed.devices.Device; -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; - -public class ORanNetworkElement implements NetworkElement { - - private static final Logger LOG = LoggerFactory.getLogger(ORanNetworkElement.class); - - public static final QName ONAP_SYSTEM = - org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.$YangModuleInfoImpl.getInstance().getName(); - private static final InstanceIdentifier SYSTEM1_IID = InstanceIdentifier - .builder(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.system.rev140806.System.class) - .augmentation(System1.class).build(); - - private final NetconfBindingAccessor netconfAccessor; - private final DataProvider databaseService; - private final ORanRegistrationToVESpnfRegistrationMapper mapper; - private final VESCollectorService vesCollectorService; - - private ListenerRegistration oRanListenerRegistrationResult; - private @NonNull final ORanChangeNotificationListener oRanListener; - private ListenerRegistration oRanFaultListenerRegistrationResult; - private @NonNull final ORanFaultNotificationListener oRanFaultListener; - - ORanNetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) { - LOG.info("Create {}", ORanNetworkElement.class.getSimpleName()); - // Read parameters - this.netconfAccessor = netconfAccess; - - // Get services - this.databaseService = serviceProvider.getDataProvider(); - this.vesCollectorService = serviceProvider.getVESCollectorService(); - - this.mapper = new ORanRegistrationToVESpnfRegistrationMapper(netconfAccessor, vesCollectorService); - - // Register callbacks - this.oRanListenerRegistrationResult = null; - this.oRanListener = new ORanChangeNotificationListener(netconfAccessor, serviceProvider); - - this.oRanFaultListenerRegistrationResult = null; - this.oRanFaultListener = new ORanFaultNotificationListener(netconfAccessor, vesCollectorService, - serviceProvider.getFaultService(), serviceProvider.getWebsocketService(), databaseService); - } - - private Collection initialReadFromNetworkElement() { - Collection componentList; - Hardware hardware = readHardware(); - if (hardware != null) { - componentList = YangHelper.getCollection(hardware.nonnullComponent()); - List inventoryList = - ORanToInternalDataModel.getInventoryList(netconfAccessor.getNodeId(), componentList); - databaseService.writeInventory(netconfAccessor.getNodeId().getValue(), inventoryList); - } else { - componentList = Collections.emptyList(); - } - - Optional oGuicutthrough = ORanToInternalDataModel.getGuicutthrough(getOnapSystemData()); - if (oGuicutthrough.isPresent()) { - databaseService.writeGuiCutThroughData(oGuicutthrough.get(), netconfAccessor.getNodeId().getValue()); - } - return componentList; - } - - @Override - public NetworkElementDeviceType getDeviceType() { - return NetworkElementDeviceType.ORAN; - } - - @Override - public void register() { - // Read data from device - Collection componentList = initialReadFromNetworkElement(); - oRanFaultListener.setComponentList(componentList); - // Publish the mountpoint to VES if enabled - publishMountpointToVES(componentList); - // Register call back class for receiving notifications - this.oRanListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanListener); - this.oRanFaultListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanFaultListener); - // Register notifications stream - if (netconfAccessor.isNotificationsRFC5277Supported()) { - netconfAccessor.registerNotificationsStream(); - } - } - - @Override - public void deregister() { - if (oRanListenerRegistrationResult != null) { - this.oRanListenerRegistrationResult.close(); - } - if (oRanFaultListenerRegistrationResult != null) { - this.oRanFaultListenerRegistrationResult.close(); - } ; - databaseService.clearGuiCutThroughEntriesOfNode(getMountpointId()); - } - - @Override - public NodeId getNodeId() { - return netconfAccessor.getNodeId(); - } - - @Override - public Optional getService(Class clazz) { - return Optional.empty(); - } - - @Override - public void warmstart() {} - - @Override - public Optional getAcessor() { - return Optional.of(netconfAccessor); - } - - // Private functions - - private String getMountpointId() { - return getNodeId().getValue(); - } - - // Read from device - /** - * Read system data with GUI cut through information from device if ONAP_SYSTEM YANG is supported. - * - * @return System1 data with GUI cut through information or null if not available. - */ - private @Nullable System1 getOnapSystemData() { - LOG.info("Get System1 for class {} from mountpoint {}", netconfAccessor.getNodeId().getValue()); - Capabilities x = netconfAccessor.getCapabilites(); - LOG.info("Capabilites: {}", x); - if (x.isSupportingNamespace(ONAP_SYSTEM)) { - @Nullable - System1 res = netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(), - LogicalDatastoreType.OPERATIONAL, SYSTEM1_IID); - LOG.debug("Result of System1 = {}", res); - return res; - } else { - LOG.debug("No GUI cut through support"); - return null; - } - } - - private Hardware readHardware() { - final Class clazzPac = Hardware.class; - LOG.info("DBRead Get hardware for class {} from mountpoint {}", clazzPac.getSimpleName(), - netconfAccessor.getNodeId().getValue()); - InstanceIdentifier hardwareIID = InstanceIdentifier.builder(clazzPac).build(); - Hardware res = netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(), - LogicalDatastoreType.OPERATIONAL, hardwareIID); - LOG.debug("Result of Hardware = {}", res); - return res; - } - - // VES related - private void publishMountpointToVES(Collection componentList) { - - LOG.debug("In publishMountpointToVES()"); - - /* - * 1. Check if this device is in the list of allowed-devices. 2. If device - * exists in allowed-devices, then create VES pnfRegistration event and publish - * to VES - */ - if (inAllowedDevices(getMountpointId())) { - if (vesCollectorService.getConfig().isVESCollectorEnabled()) { - for (Component component : ORanToInternalDataModel.getRootComponents(componentList)) { - // Just get one component. At the moment we don't care which one. Also since - // there is only one management address, we assume there will be only one - // chassis. - // If the device supports subtended configuration then it is assumed that the - // Chassis containing the management interface will be the root component and - // there will be only one root. - VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(component); - VESPNFRegistrationFieldsPOJO body = mapper.mapPNFRegistrationFields(component); - try { - vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body)); - } catch (JsonProcessingException e) { - LOG.warn("Error while serializing VES Event to String ", e); - e.printStackTrace(); - } - } - } - } - } - - private boolean inAllowedDevices(String mountpointName) { - final InstanceIdentifier ALL_DEVICES = - InstanceIdentifier.create(NetconfCallhomeServer.class).child(AllowedDevices.class); - - AllowedDevices allowedDevices = netconfAccessor.getTransactionUtils().readData( - netconfAccessor.getControllerBindingDataBroker(), LogicalDatastoreType.CONFIGURATION, ALL_DEVICES); - - if (allowedDevices != null) { - Collection deviceList = YangHelper.getCollection(allowedDevices.nonnullDevice()); - for (Device device : deviceList) { - LOG.info("Device in allowed-devices is - {}", device.getUniqueId()); - if (device.getUniqueId().equals(netconfAccessor.getNodeId().getValue())) { - LOG.info("Mountpoint is part of allowed-devices list"); - return true; - } - } - } - - LOG.info("Mountpoint {} is not part of allowed-devices list", mountpointName); - return false; - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java deleted file mode 100644 index fff1fba79..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * ============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.oran.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.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT; -import org.opendaylight.yangtools.yang.common.QName; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ORanNetworkElementFactory implements NetworkElementFactory { - - private static final Logger log = LoggerFactory.getLogger(ORanNetworkElementFactory.class); - //Workaround - private static final QName OneCell = - QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern(); - - @Override - public Optional create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) { - Capabilities capabilites = accessor.getCapabilites(); - if (!capabilites.isSupportingNamespace(OneCell)) { - if (capabilites.isSupportingNamespace(ORANHWCOMPONENT.QNAME)) { - log.info("Create device {} ", ORanNetworkElement.class.getName()); - Optional bindingAccessor = accessor.getNetconfBindingAccessor(); - if (bindingAccessor.isPresent()) { - return Optional.of(new ORanNetworkElement(bindingAccessor.get(), serviceProvider)); - } - } - } - return Optional.empty(); - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java deleted file mode 100644 index d99f1c874..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * ============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.oran.impl; - -import java.time.Instant; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map.Entry; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ORanNotifToVESEventAssembly { - - private static final Logger log = LoggerFactory.getLogger(ORanNotifToVESEventAssembly.class); - private static final String VES_EVENT_DOMAIN = "notification"; - private static final String VES_EVENTTYPE = "ORAN_notification"; - private static final String VES_EVENT_PRIORITY = "Normal"; - private NetconfBindingAccessor netconfAccessor; - private VESCollectorService vesProvider; - - public ORanNotifToVESEventAssembly(NetconfBindingAccessor netconfAccessor, VESCollectorService vesProvider) { - this.netconfAccessor = netconfAccessor; - this.vesProvider = vesProvider; - } - - // VES CommonEventHeader fields - public VESCommonEventHeaderPOJO createVESCommonEventHeader(Instant time, String notificationTypeName, - long sequenceNo) { - VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); - vesCEH.setDomain(VES_EVENT_DOMAIN); - vesCEH.setEventName(notificationTypeName); - vesCEH.setEventType(VES_EVENTTYPE); - vesCEH.setPriority(VES_EVENT_PRIORITY); - - String eventId; - - eventId = notificationTypeName + "-" + Long.toUnsignedString(sequenceNo); - - vesCEH.setEventId(eventId); - vesCEH.setStartEpochMicrosec(time.toEpochMilli() * 1000); - vesCEH.setLastEpochMicrosec(time.toEpochMilli() * 1000); - vesCEH.setNfVendorName("ORAN"); - vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); - vesCEH.setSequence(sequenceNo); - vesCEH.setSourceId("ORAN"); - vesCEH.setSourceName(netconfAccessor.getNodeId().getValue()); - return vesCEH; - } - - // Notification fields - public VESNotificationFieldsPOJO createVESNotificationFields(HashMap xPathFields, - String notificationTypeName) { - VESNotificationFieldsPOJO vesNotifFields = new VESNotificationFieldsPOJO(); - - vesNotifFields.setChangeType(notificationTypeName); - vesNotifFields.setChangeIdentifier(netconfAccessor.getNodeId().getValue()); - - StringBuffer buf = new StringBuffer(); - Iterator> it = xPathFields.entrySet().iterator(); - while (it.hasNext()) { - Entry pair = it.next(); - buf.append("\n" + pair.getKey() + " = " + pair.getValue()); - } - log.info("Resultlist({}):{}", xPathFields.size(), buf.toString()); - - ArrayList> arrayOfNamedHashMap = new ArrayList>(); - HashMap namedHashMap = new HashMap(); - namedHashMap.put("hashMap", xPathFields); - namedHashMap.put("name", notificationTypeName); - arrayOfNamedHashMap.add(namedHashMap); - vesNotifFields.setArrayOfNamedHashMap(arrayOfNamedHashMap); - return vesNotifFields; - - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java deleted file mode 100644 index 3524383f2..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP : ccsdk features - * ================================================================================ - * Copyright (C) 2021 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.oran.impl; - -import java.time.Instant; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ORanRegistrationToVESpnfRegistrationMapper { - - @SuppressWarnings("unused") - private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class); - //CommonEventHeader fields - private static final String VES_EVENT_DOMAIN = "pnfRegistration"; - private static final String VES_EVENTTYPE = "NetConf Callhome Registration"; - private static final String VES_EVENT_PRIORITY = "Normal"; - - private final VESCollectorService vesProvider; - private final NetconfAccessor netconfAccessor; - - private Integer sequenceNo; - - - public ORanRegistrationToVESpnfRegistrationMapper(NetconfAccessor netconfAccessor, - VESCollectorService vesCollectorService) { - this.netconfAccessor = netconfAccessor; - this.vesProvider = vesCollectorService; - - this.sequenceNo = 0; - } - - public VESCommonEventHeaderPOJO mapCommonEventHeader(Component component) { - VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); - vesCEH.setDomain(VES_EVENT_DOMAIN); - vesCEH.setEventId(netconfAccessor.getNodeId().getValue()); - vesCEH.setEventName(netconfAccessor.getNodeId().getValue()); - vesCEH.setEventType(VES_EVENTTYPE); - vesCEH.setPriority(VES_EVENT_PRIORITY); - - vesCEH.setStartEpochMicrosec(Instant.now().toEpochMilli() * 1000); - vesCEH.setLastEpochMicrosec(Instant.now().toEpochMilli() * 1000); - vesCEH.setNfVendorName(component.getMfgName()); - vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); - vesCEH.setSequence(sequenceNo++); - vesCEH.setSourceId(component.getUuid() != null ? component.getUuid().toString():netconfAccessor.getNodeId().getValue()); - vesCEH.setSourceName(netconfAccessor.getNodeId().getValue()); - - return vesCEH; - } - - public VESPNFRegistrationFieldsPOJO mapPNFRegistrationFields(Component component) { - VESPNFRegistrationFieldsPOJO vesPnfFields = new VESPNFRegistrationFieldsPOJO(); - vesPnfFields.setModelNumber(component.getModelName()); - vesPnfFields.setOamV4IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address()!=null?netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address().getValue():null); - vesPnfFields.setOamV6IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address()!=null?netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address().getValue():null); - vesPnfFields.setSerialNumber(component.getSerialNum()); - vesPnfFields.setVendorName(component.getMfgName()); - vesPnfFields.setSoftwareVersion(component.getSoftwareRev()); - vesPnfFields.setUnitType(component.getAlias()); - vesPnfFields.setUnitFamily(component.getXmlClass().toString()); - vesPnfFields.setManufactureDate(component.getMfgDate()!=null?component.getMfgDate().toString():"Unknown"); - //vesPnfFields.setLastServiceDate(component.getLastChange()); - - return vesPnfFields; - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java deleted file mode 100644 index 71ab613d2..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java +++ /dev/null @@ -1,276 +0,0 @@ -/* - * ============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.oran.impl; - -import java.time.Instant; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.Alarm.FaultSeverity; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; -import org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.System1; -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.Guicutthrough; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder; -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.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.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yangtools.yang.binding.CodeHelpers; -import org.opendaylight.yangtools.yang.common.Uint32; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Convert data to data-provider model and perform consistency checks.
- * Component list characteristics:
- *
    - *
  • component list is a flat list tree structure specified - *
  • via "component.getParent()": - *
      - *
    • If null we have a root element - *
    • if not null it is a child element with generated child level
      - *
    - *
- * Example of List:
- * - * - */ -public class ORanToInternalDataModel { - - private static final Logger log = LoggerFactory.getLogger(ORanToInternalDataModel.class); - - public static List getInventoryList(NodeId nodeId, Collection componentList) { - - List inventoryResultList = new ArrayList(); - for (Component component : getRootComponents(componentList)) { - inventoryResultList = recurseGetInventory(nodeId, component, componentList, 0, inventoryResultList); - } - // Verify if result is complete - if (componentList.size() != inventoryResultList.size()) { - log.warn( - "Not all data were written to the Inventory. Potential entries with missing " - + "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}", - nodeId.getValue(), componentList.size(), inventoryResultList.size()); - } - return inventoryResultList; - } - - private static List recurseGetInventory(NodeId nodeId, Component component, - Collection componentList, int treeLevel, List inventoryResultList) { - - //Add element to list, if conversion successfull - Optional oInventory = getInternalEquipment(nodeId, component, treeLevel); - if (oInventory.isPresent()) { - inventoryResultList.add(oInventory.get()); - } - //Walk trough list of child keys and add to list - for (String childUuid : CodeHelpers.nonnull(component.getContainsChild())) { - for (Component c : getComponentsByName(childUuid, componentList)) { - inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList); - } - } - return inventoryResultList; - } - - public static List getRootComponents(Collection componentList) { - List resultList = new ArrayList<>(); - for (Component c : componentList) { - if (c.getParent() == null) { // Root elements do not have a parent - resultList.add(c); - } - } - return resultList; - } - - private static List getComponentsByName(String name, Collection componentList) { - List resultList = new ArrayList<>(); - for (Component c : componentList) { - if (name.equals(c.getName())) { // <-- Component list is flat search for child's of name - resultList.add(c); - } - } - return resultList; - } - - /** - * Convert equipment into Inventory. Decide if inventory can by created from content or not. Public for test case. - * - * @param nodeId of node (Similar to mountpointId) - * @param component to handle - * @param treeLevel of components - * @return Inventory if possible to be created. - */ - public static Optional getInternalEquipment(NodeId nodeId, Component component, int treeLevel) { - - // Make sure that expected data are not null - Objects.requireNonNull(nodeId); - Objects.requireNonNull(component); - - // Read manadatory data - - @Nullable - String nodeIdString = nodeId.getValue(); - @Nullable - String uuid = component.getName(); - @Nullable - String idParent = component.getParent(); - @Nullable - String uuidParent = idParent != null ? idParent : uuid; //<- Passt nicht - - // do consistency check if all mandatory parameters are there - if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) { - - // Build output data - - InventoryBuilder inventoryBuilder = new InventoryBuilder(); - - // General assumed as mandatory - inventoryBuilder.setNodeId(nodeIdString); - inventoryBuilder.setUuid(uuid); - inventoryBuilder.setParentUuid(uuidParent); - inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel)); - - // -- String list with ids of holders (optional) - inventoryBuilder.setContainedHolder(CodeHelpers.nonnull(component.getContainsChild())); - - // -- Manufacturer related things (optional) - @Nullable - String mfgName = component.getMfgName(); - inventoryBuilder.setManufacturerName(mfgName); - inventoryBuilder.setManufacturerIdentifier(mfgName); - - // Equipment type (optional) - inventoryBuilder.setDescription(component.getDescription()); - inventoryBuilder.setModelIdentifier(component.getModelName()); - @Nullable - Class xmlClass = component.getXmlClass(); - if (xmlClass != null) { - inventoryBuilder.setPartTypeId(xmlClass.getName()); - } - inventoryBuilder.setTypeName(component.getName()); - inventoryBuilder.setVersion(component.getHardwareRev()); - - // Equipment instance (optional) - @Nullable - DateAndTime mfgDate = component.getMfgDate(); - if (mfgDate != null) { - inventoryBuilder.setDate(mfgDate.getValue()); - } - inventoryBuilder.setSerial(component.getSerialNum()); - - return Optional.of(inventoryBuilder.build()); - } - return Optional.empty(); - } - - /** - * If system data is available convert - * - * @param sys - * @return - */ - public static Optional getGuicutthrough(@Nullable System1 sys) { - if (sys != null) { - String name = sys.getName(); - @Nullable - Uri uri = sys.getWebUi(); - if (uri != null) { - GuicutthroughBuilder gcBuilder = new GuicutthroughBuilder(); - if (name != null) { - gcBuilder.setName(name); - } - gcBuilder.setWeburi(uri.getValue()); - return Optional.of(gcBuilder.build()); - } - log.warn("Uri not set to invoke a Gui cut through session to the device. Please set the Uri in the device"); - } - log.warn("Retrieving augmented System details failed. Gui cut through information not available"); - return Optional.empty(); - } - - /** - * Convert netconf time into Instant - * - * @param eventTime with netconf time - * @return Instant with converted time. If not convertable provide Instant.Min - */ - public static Instant getInstantTime(@Nullable DateAndTime eventTime) { - return eventTime != null ? Instant.parse(eventTime.getValue()) : Instant.MIN; - } - - /** - * Convert fault notification into data-provider FaultLogEntity - * - * @param notification with O-RAN notification - * @param nodeId of node to handle - * @param counter to be integrated into data - * @return FaultlogEntity with data - */ - public static FaultlogEntity getFaultLog(AlarmNotif notification, NodeId nodeId, Integer counter) { - FaultlogBuilder faultAlarm = new FaultlogBuilder(); - faultAlarm.setNodeId(nodeId.getValue()); - faultAlarm.setObjectId(notification.getFaultSource()); - faultAlarm.setProblem(notification.getFaultText()); - faultAlarm.setSeverity(getSeverityType(notification.getFaultSeverity(), notification.isIsCleared())); - faultAlarm.setCounter(counter); - faultAlarm.setId(String.valueOf(notification.getFaultId())); - faultAlarm.setSourceType(SourceType.Netconf); - faultAlarm.setTimestamp(notification.getEventTime()); - return faultAlarm.build(); - } - - /** - * Convert O-RAN specific severity into data-provider severity - * - * @param faultSeverity O-RAN severity - * @param isCleared clear indicator - * @return data-provider severity type - * @throws IllegalArgumentException if conversion not possible. - */ - public static SeverityType getSeverityType(@Nullable FaultSeverity faultSeverity, @Nullable Boolean isCleared) - throws IllegalArgumentException { - if (isCleared != null && isCleared) { - return SeverityType.NonAlarmed; - } - if (faultSeverity != null) { - switch (faultSeverity) { - case CRITICAL: - return SeverityType.Critical; - case MAJOR: - return SeverityType.Major; - case MINOR: - return SeverityType.Minor; - case WARNING: - return SeverityType.Warning; - } - } - throw new IllegalArgumentException("Unknown Alarm state represent as Critical. isCleared=" + isCleared - + " faultSeverity=" + faultSeverity); - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/DeviceManagerORanImpl.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/DeviceManagerORanImpl.java new file mode 100644 index 000000000..7e04e8c1a --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/DeviceManagerORanImpl.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.oran.impl.binding; + +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.oran.impl.startup.ORanNetworkElementFactory; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DeviceManagerORanImpl implements AutoCloseable { + + private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerORanImpl.class); + private static final String APPLICATION_NAME = "DeviceManagerORan"; + @SuppressWarnings("unused") + private static final String CONFIGURATIONFILE = "etc/devicemanager-oran.properties"; + + + private NetconfNetworkElementService netconfNetworkElementService; + + private HtDatabaseClient htDatabaseClient; + private Boolean devicemanagerInitializationOk = false; + private FactoryRegistration resORan; + + // Blueprint begin + public DeviceManagerORanImpl() { + LOG.info("Creating provider for {}", APPLICATION_NAME); + resORan = null; + } + + public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) { + this.netconfNetworkElementService = netconfNetworkElementService; + } + + public void init() throws Exception { + + LOG.info("Session Initiated start {}", APPLICATION_NAME); + + resORan = netconfNetworkElementService.registerBindingNetworkElementFactory(new ORanNetworkElementFactory()); + + + 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(resORan); + 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-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanChangeNotificationListener.java new file mode 100644 index 000000000..abed01a44 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanChangeNotificationListener.java @@ -0,0 +1,138 @@ +/* + * ============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.oran.impl.binding; + +import com.fasterxml.jackson.core.JsonProcessingException; +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.devicemanager.service.DeviceManagerServiceProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; +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.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.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Listener for change notifications + */ +public class ORanChangeNotificationListener implements IetfNetconfNotificationsListener { + + private static final Logger log = LoggerFactory.getLogger(ORanChangeNotificationListener.class); + + private final NetconfBindingAccessor netconfAccessor; + private final DataProvider databaseService; + private final NotificationService notificationService; + private final VESCollectorService vesCollectorService; + private final NotificationProxyParser notificationProxyParser; + private ORanNotifToVESEventAssembly mapper = null; + + private static int sequenceNo = 0; + + public ORanChangeNotificationListener(NetconfBindingAccessor netconfAccessor, + DeviceManagerServiceProvider serviceProvider) { + this.netconfAccessor = netconfAccessor; + this.databaseService = serviceProvider.getDataProvider(); + this.notificationService = serviceProvider.getNotificationService(); + this.vesCollectorService = serviceProvider.getVESCollectorService(); + this.notificationProxyParser = vesCollectorService.getNotificationProxyParser(); + } + + @Override + public void onNetconfConfirmedCommit(NetconfConfirmedCommit notification) { + log.info("onNetconfConfirmedCommit {}", notification); + } + + @Override + public void onNetconfSessionStart(NetconfSessionStart notification) { + log.info("onNetconfSessionStart {}", notification); + } + + @Override + public void onNetconfSessionEnd(NetconfSessionEnd notification) { + log.info("onNetconfSessionEnd {}", notification); + } + + @Override + public void onNetconfCapabilityChange(NetconfCapabilityChange notification) { + log.info("onNetconfCapabilityChange {}", notification); + } + + @Override + public void onNetconfConfigChange(NetconfConfigChange notification) { + log.info("onNetconfConfigChange (1) {}", notification.toString()); + + StringBuffer sb = new StringBuffer(); + List editList = notification.nonnullEdit(); + for (Edit edit : editList) { + if (sb.length() > 0) { + sb.append(", "); + } + sb.append(edit); + + InstanceIdentifier target = edit.getTarget(); + if (target != null) { + log.info("TARGET: {} {}", target.getClass(), target.getTargetType()); + for (PathArgument pa : target.getPathArguments()) { + log.info("PathArgument {} Type {}", pa, pa.getType().getFields()); + } + + EventlogEntity eventLogEntity1 = new EventlogBuilder().setNodeId(netconfAccessor.getNodeId().getValue()) + .setCounter(sequenceNo++).setTimestamp(NetconfTimeStampImpl.getConverter().getTimeStamp()) + .setObjectId(target.getTargetType().getCanonicalName()).setAttributeName("N.A") + .setSourceType(SourceType.Netconf).setNewValue(String.valueOf(edit.getOperation())).build(); + databaseService.writeEventLog(eventLogEntity1); + } + } + log.info("onNetconfConfigChange (2) {}", sb); + + if (vesCollectorService.getConfig().isVESCollectorEnabled()) { + if (mapper == null) { + this.mapper = new ORanNotifToVESEventAssembly(netconfAccessor, vesCollectorService); + } + VESCommonEventHeaderPOJO header = + mapper.createVESCommonEventHeader(notificationProxyParser.getTime(notification), + NetconfConfigChange.class.getSimpleName(), sequenceNo); + VESNotificationFieldsPOJO body = + mapper.createVESNotificationFields(notificationProxyParser.parseNotificationProxy(notification), + NetconfConfigChange.class.getSimpleName()); + try { + vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body)); + } catch (JsonProcessingException e) { + log.warn("Exception while generating JSON object ", e); + + } + } + + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultNotificationListener.java new file mode 100644 index 000000000..d03b39480 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultNotificationListener.java @@ -0,0 +1,166 @@ +/* + * ============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.oran.impl.binding; + +import com.fasterxml.jackson.core.JsonProcessingException; +import java.time.Instant; +import java.time.format.DateTimeParseException; +import java.util.Collection; +import java.util.Date; +import java.util.Objects; +import org.eclipse.jdt.annotation.NonNull; +import org.json.JSONException; +import org.json.JSONObject; +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.service.FaultService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESMessage; +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.hardware.rev180313.hardware.Component; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.ORanFmListener; +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.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ORanFaultNotificationListener implements ORanFmListener { + + private static final Logger LOG = LoggerFactory.getLogger(ORanFaultNotificationListener.class); + + private final @NonNull NetconfBindingAccessor netconfAccessor; + private final @NonNull VESCollectorService vesCollectorService; + private final @NonNull ORanFaultToVESFaultMapper mapper; + private final @NonNull FaultService faultService; + private final @NonNull WebsocketManagerService websocketManagerService; + private final @NonNull DataProvider databaseService; + private static final NetconfTimeStamp NETCONFTIME_CONVERTER = NetconfTimeStampImpl.getConverter(); + + private Integer counter; //Local counter is assigned to Notifications + + public ORanFaultNotificationListener(@NonNull NetconfBindingAccessor netconfAccessor, + @NonNull VESCollectorService vesCollectorService, @NonNull FaultService faultService, + @NonNull WebsocketManagerService websocketManagerService, @NonNull DataProvider databaseService) { + this.netconfAccessor = Objects.requireNonNull(netconfAccessor); + this.vesCollectorService = Objects.requireNonNull(vesCollectorService); + this.faultService = Objects.requireNonNull(faultService); + this.websocketManagerService = Objects.requireNonNull(websocketManagerService); + this.databaseService = Objects.requireNonNull(databaseService); + + this.mapper = new ORanFaultToVESFaultMapper(netconfAccessor.getNodeId(), vesCollectorService, + AlarmNotif.class.getSimpleName()); + this.counter = 0; + } + + /** + * Gets the mfg name, mode-name and Uuid of the root component (Ex: Chassis.) + * In cases where there are multiple root components i.e., components with no parent, + * the Uuid of the last occurred component from the componentList will be considered. + * Till now we haven't seen Uuid set for root components, so not an issue for now. + * @param componentList + */ + public void setComponentList(Collection componentList) { + for (Component component : ORanToInternalDataModel.getRootComponents(componentList)) { + mapper.setMfgName(component.getMfgName()); + mapper.setUuid(component.getUuid()!=null?component.getUuid().getValue():netconfAccessor.getNodeId().getValue()); + mapper.setModelName(component.getModelName()); + } + } + + @Override + public void onAlarmNotif(AlarmNotif notification) { + + LOG.debug("onAlarmNotif {}", notification.getClass().getSimpleName()); + counter++; + + // Send devicemanager specific notification for database and ODLUX + Instant eventTimeInstant = ORanToInternalDataModel.getInstantTime(notification.getEventTime()); + faultService.faultNotification( + ORanToInternalDataModel.getFaultLog(notification, netconfAccessor.getNodeId(), counter)); + // Send model specific notification to WebSocketManager + websocketManagerService.sendNotification(notification, netconfAccessor.getNodeId(), AlarmNotif.QNAME); + + try { + if (vesCollectorService.getConfig().isVESCollectorEnabled()) { + VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(notification, eventTimeInstant, counter); + VESFaultFieldsPOJO body = mapper.mapFaultFields(notification); + VESMessage vesMsg = vesCollectorService.generateVESEvent(header, body); + vesCollectorService.publishVESMessage(vesMsg); + LOG.info("VES Message is {}",vesMsg.getMessage()); + writeToEventLog(vesMsg.getMessage(), eventTimeInstant, AlarmNotif.QNAME.toString(), counter); + } + } catch (JsonProcessingException | DateTimeParseException e) { + LOG.debug("Can not convert event into VES message {}", notification, e); + } + } + + private void writeToEventLog(String data, Instant instant, String notificationName, + int sequenceNo) { + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + + eventlogBuilder.setObjectId("Device"); + eventlogBuilder.setCounter(sequenceNo); + eventlogBuilder.setAttributeName(notificationName); + eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()); + String eventLogMsgLvl = vesCollectorService.getConfig().getEventLogMsgDetail(); + if (eventLogMsgLvl.equalsIgnoreCase("SHORT")) { + data = getShortEventLogMessage(data); + } else if (eventLogMsgLvl.equalsIgnoreCase("MEDIUM")) { + data = getMediumEventLogMessage(data); + } else if (eventLogMsgLvl.equalsIgnoreCase("LONG")) { + // do nothing, data already contains long message + } else { // Unknown value, default to "SHORT" + data = getShortEventLogMessage(data); + } + eventlogBuilder.setNewValue(data); + eventlogBuilder.setSourceType(SourceType.Netconf); + + Date eventDate = Date.from(instant); + eventlogBuilder.setTimestamp(new DateAndTime(NETCONFTIME_CONVERTER.getTimeStamp(eventDate))); + + databaseService.writeEventLog(eventlogBuilder.build()); + } + + private String getShortEventLogMessage(String data) { + try { + JSONObject jsonObj = new JSONObject(data); + String domain = jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").getString("domain"); + String eventId = jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").getString("eventId"); + return "domain:" + domain + " eventId:" + eventId; + } catch (JSONException e) { + LOG.debug("{}", e); + return "Invalid message received"; + } + } + + private String getMediumEventLogMessage(String data) { + try { + JSONObject jsonObj = new JSONObject(data); + return jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").toString(); + } catch (JSONException e) { + LOG.debug("{}", e); + return "Invalid message received"; + } + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultToVESFaultMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultToVESFaultMapper.java new file mode 100644 index 000000000..f5873df96 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanFaultToVESFaultMapper.java @@ -0,0 +1,164 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.binding; + +import java.time.Instant; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +//@formatter:off +/* + * Maps ORAN Fault fields to VES fault domain fields and VES commonEventHeader fields + * + * + * VES Fields Mapping + * ---------- ------- + * domain "fault" + * eventId "nt:network-topology/nt:topology/nt:node/nt:node-id" + * eventName "nt:network-topology/nt:topology/nt:node/nt:node-id" + * eventType "O-RAN-RU-Fault" + * lastEpochMicrosec TimeStamp represented by field in NetConf notification header in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds. + * nfcNamingCode always "" + * nfNamingCode always "" + * nfVendorName /ietf-hardware:hardware/component[not(parent)][1]/mfg-name + * priority "Normal" + * reportingEntityId The OAM-Controller identifier with in the SMO - e.g. the fully qualified domain name or IP-Address. + * reportingEntityName as configured by helm charts for the OpenDaylight cluster name ?????? + * sequence As per NetConf notification increasing sequence number as unsigned integer 32 bits. The value is reused in the eventId field. + * sourceId Value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/uuid or 'nt:network-topology/nt:topology/nt:node/nt:node-id' if ietf component not found. + * sourceName "nt:network-topology/nt:topology/nt:node/nt:node-id" + * startEpochMicrosec Current OAM-Controller Node timestamp in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds. + * timeZoneOffset Static text: "+00:00" + * version "4.1" + * vesEventListenerVersion "7.2.1" + * + * + * alarmAdditionalInformation + * alarmCondition Value of "o-ran-fm:alarm-notif/fault-id" + * alarmInterfaceA Value of "o-ran-fm:alarm-notif/fault-source" + * eventCategory Static text "O-RU failure" + * eventSeverity Value of "o-ran-fm:alarm-notif/fault-severity". But if "o-ran-fm:alarm-notif/is-cleared" then "NORMAL" + * eventSourceType The value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/model-name or "O-RU" if not found. + * faultFieldsVersion "4.0" + * specificProblem A mapping of the fault-id to its description according to O-RAN OpenFronthaul specification. + * vfStatus "Active" + * + */ +//@formatter:on + +public class ORanFaultToVESFaultMapper { + + @SuppressWarnings("unused") + private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class); + private static final String VES_EVENT_DOMAIN = "fault"; + private static final String VES_EVENTTYPE = "ORAN_Fault"; + private static final String VES_EVENT_PRIORITY = "Normal"; + private static final String VES_EVENT_CATEGORY = "O-RU Failure"; + private static final String VES_FAULT_FIELDS_VERSION = "4.0"; + private static final String VES_FAULT_FIELDS_VFSTATUS = "Active"; //virtual function status + + private final VESCollectorService vesProvider; + private final String notifName; // Name + private final String nodeIdString; // Sourcename + private String mfgName; + private String uuid; + private String modelName; + + public ORanFaultToVESFaultMapper(NodeId nodeId, VESCollectorService vesCollectorService, + String notifName) { + this.nodeIdString = nodeId.getValue(); + this.vesProvider = vesCollectorService; + this.notifName = notifName; + } + + public void setMfgName(String mfgName) { + this.mfgName= mfgName; + } + + private String getMfgName() { + return mfgName; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + private String getUuid() { + return uuid; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + private String getModelName() { + return modelName; + } + + public VESCommonEventHeaderPOJO mapCommonEventHeader(AlarmNotif notification, Instant eventTime, int sequenceNo) { + VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); + vesCEH.setDomain(VES_EVENT_DOMAIN); + vesCEH.setEventName(notifName); + vesCEH.setEventType(VES_EVENTTYPE); + vesCEH.setPriority(VES_EVENT_PRIORITY); + + String eventId; + + eventId = notifName + "-" + Long.toUnsignedString(sequenceNo); + + vesCEH.setEventId(eventId); + vesCEH.setStartEpochMicrosec(eventTime.toEpochMilli() * 1000); + vesCEH.setLastEpochMicrosec(eventTime.toEpochMilli() * 1000); + vesCEH.setNfVendorName(getMfgName()); + vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); + vesCEH.setSequence(sequenceNo); + vesCEH.setSourceId(getUuid()); + vesCEH.setSourceName(nodeIdString); + + return vesCEH; + } + + public VESFaultFieldsPOJO mapFaultFields(AlarmNotif alarmNotif) { + VESFaultFieldsPOJO vesFaultFields = new VESFaultFieldsPOJO(); + + vesFaultFields.setAlarmCondition(alarmNotif.getFaultId().toString()); + vesFaultFields.setAlarmInterfaceA(alarmNotif.getFaultSource()); + vesFaultFields.setEventCategory(VES_EVENT_CATEGORY); + if (alarmNotif.getIsCleared()) { + vesFaultFields.setEventSeverity("NORMAL"); + } else { + vesFaultFields.setEventSeverity(alarmNotif.getFaultSeverity().getName()); + } + vesFaultFields.setEventSourceType(getModelName()); + vesFaultFields.setFaultFieldsVersion(VES_FAULT_FIELDS_VERSION); + vesFaultFields.setSpecificProblem(alarmNotif.getFaultText()); + vesFaultFields.setVfStatus(VES_FAULT_FIELDS_VFSTATUS); + + return vesFaultFields; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNetworkElement.java new file mode 100644 index 000000000..e16df1d1c --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNetworkElement.java @@ -0,0 +1,278 @@ +/* + * ============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.oran.impl.binding; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; +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.service.DeviceManagerServiceProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +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.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.ietf.params.xml.ns.yang.ietf.hardware.rev180313.Hardware; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; +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.onap.system.rev201026.System1; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough; +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.NetworkElementDeviceType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.NetconfCallhomeServer; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.netconf.callhome.server.AllowedDevices; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.netconf.callhome.server.allowed.devices.Device; +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; + +public class ORanNetworkElement implements NetworkElement { + + private static final Logger LOG = LoggerFactory.getLogger(ORanNetworkElement.class); + + public static final QName ONAP_SYSTEM = + org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.$YangModuleInfoImpl.getInstance().getName(); + private static final InstanceIdentifier SYSTEM1_IID = InstanceIdentifier + .builder(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.system.rev140806.System.class) + .augmentation(System1.class).build(); + + private final NetconfBindingAccessor netconfAccessor; + private final Optional netconfAccessorOpt; + + private final Optional netconfDomAccessor; + private final DataProvider databaseService; + private final ORanRegistrationToVESpnfRegistrationMapper mapper; + private final VESCollectorService vesCollectorService; + + private ListenerRegistration oRanListenerRegistrationResult; + //private @NonNull final ORanChangeNotificationListener oRanListener; + private ListenerRegistration oRanFaultListenerRegistrationResult; + private @NonNull final ORanFaultNotificationListener oRanFaultListener; + + //ORanNetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) { + ORanNetworkElement(NetconfAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) { + LOG.info("Create {}", ORanNetworkElement.class.getSimpleName()); + // Read parameters + this.netconfAccessorOpt = netconfAccess.getNetconfBindingAccessor(); + this.netconfAccessor = netconfAccessorOpt.get(); + this.netconfDomAccessor = netconfAccess.getNetconfDomAccessor(); + // Get services + this.databaseService = serviceProvider.getDataProvider(); + this.vesCollectorService = serviceProvider.getVESCollectorService(); + + this.mapper = new ORanRegistrationToVESpnfRegistrationMapper(netconfAccessor, vesCollectorService); + + // Register callbacks + this.oRanListenerRegistrationResult = null; + //this.oRanListener = new ORanChangeNotificationListener(netconfAccessor, serviceProvider); + + this.oRanFaultListenerRegistrationResult = null; + this.oRanFaultListener = new ORanFaultNotificationListener(netconfAccessor, vesCollectorService, + serviceProvider.getFaultService(), serviceProvider.getWebsocketService(), databaseService); + + } + + private Collection initialReadFromNetworkElement() { + Collection componentList; + Hardware hardware = readHardware(); + if (hardware != null) { + componentList = YangHelper.getCollection(hardware.nonnullComponent()); + List inventoryList = + ORanToInternalDataModel.getInventoryList(netconfAccessor.getNodeId(), componentList); + databaseService.writeInventory(netconfAccessor.getNodeId().getValue(), inventoryList); + } else { + componentList = Collections.emptyList(); + } + + Optional oGuicutthrough = ORanToInternalDataModel.getGuicutthrough(getOnapSystemData()); + if (oGuicutthrough.isPresent()) { + databaseService.writeGuiCutThroughData(oGuicutthrough.get(), netconfAccessor.getNodeId().getValue()); + } + return componentList; + } + + @Override + public NetworkElementDeviceType getDeviceType() { + return NetworkElementDeviceType.ORAN; + } + + @Override + public void register() { + // Read data from device + Collection componentList = initialReadFromNetworkElement(); + oRanFaultListener.setComponentList(componentList); + // Publish the mountpoint to VES if enabled + publishMountpointToVES(componentList); + // Register call back class for receiving notifications + //this.oRanListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanListener); + this.oRanFaultListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanFaultListener); + // Register notifications stream + /*if (netconfAccessor.isNotificationsRFC5277Supported()) { + netconfAccessor.registerNotificationsStream(); + }*/ + + QName[] notifications = { NetconfConfigChange.QNAME, NetconfConfirmedCommit.QNAME, + NetconfSessionStart.QNAME, NetconfSessionEnd.QNAME, NetconfCapabilityChange.QNAME }; + //netconfDomAccessor.get().doRegisterNotificationListener(new ORanDOMChangeNotificationListener(netconfDomAccessor.get(), databaseService), notifications); + // Output notification streams to LOG + Map streams = netconfDomAccessor.get().getNotificationStreamsAsMap(); + LOG.info("Available notifications streams: {}", streams); + // Register to default stream + netconfDomAccessor.get().invokeCreateSubscription(); + } + + @Override + public void deregister() { + if (oRanListenerRegistrationResult != null) { + this.oRanListenerRegistrationResult.close(); + } + if (oRanFaultListenerRegistrationResult != null) { + this.oRanFaultListenerRegistrationResult.close(); + } ; + databaseService.clearGuiCutThroughEntriesOfNode(getMountpointId()); + } + + @Override + public NodeId getNodeId() { + return netconfAccessor.getNodeId(); + } + + @Override + public Optional getService(Class clazz) { + return Optional.empty(); + } + + @Override + public void warmstart() {} + + @Override + public Optional getAcessor() { + return Optional.of(netconfAccessor); + } + + // Private functions + + private String getMountpointId() { + return getNodeId().getValue(); + } + + // Read from device + /** + * Read system data with GUI cut through information from device if ONAP_SYSTEM YANG is supported. + * + * @return System1 data with GUI cut through information or null if not available. + */ + private @Nullable System1 getOnapSystemData() { + LOG.info("Get System1 for class {} from mountpoint {}", netconfAccessor.getNodeId().getValue()); + Capabilities x = netconfAccessor.getCapabilites(); + LOG.info("Capabilites: {}", x); + if (x.isSupportingNamespace(ONAP_SYSTEM)) { + @Nullable + System1 res = netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(), + LogicalDatastoreType.OPERATIONAL, SYSTEM1_IID); + LOG.debug("Result of System1 = {}", res); + return res; + } else { + LOG.debug("No GUI cut through support"); + return null; + } + } + + private Hardware readHardware() { + final Class clazzPac = Hardware.class; + LOG.info("DBRead Get hardware for class {} from mountpoint {}", clazzPac.getSimpleName(), + netconfAccessor.getNodeId().getValue()); + InstanceIdentifier hardwareIID = InstanceIdentifier.builder(clazzPac).build(); + Hardware res = netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(), + LogicalDatastoreType.OPERATIONAL, hardwareIID); + LOG.debug("Result of Hardware = {}", res); + return res; + } + + // VES related + private void publishMountpointToVES(Collection componentList) { + + LOG.debug("In publishMountpointToVES()"); + + /* + * 1. Check if this device is in the list of allowed-devices. 2. If device + * exists in allowed-devices, then create VES pnfRegistration event and publish + * to VES + */ + if (inAllowedDevices(getMountpointId())) { + if (vesCollectorService.getConfig().isVESCollectorEnabled()) { + for (Component component : ORanToInternalDataModel.getRootComponents(componentList)) { + // Just get one component. At the moment we don't care which one. Also since + // there is only one management address, we assume there will be only one + // chassis. + // If the device supports subtended configuration then it is assumed that the + // Chassis containing the management interface will be the root component and + // there will be only one root. + /*VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(component); + VESPNFRegistrationFieldsPOJO body = mapper.mapPNFRegistrationFields(component); + try { + vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body)); + } catch (JsonProcessingException e) { + LOG.warn("Error while serializing VES Event to String ", e); + }*/ + } + } + } + } + + private boolean inAllowedDevices(String mountpointName) { + final InstanceIdentifier ALL_DEVICES = + InstanceIdentifier.create(NetconfCallhomeServer.class).child(AllowedDevices.class); + + AllowedDevices allowedDevices = netconfAccessor.getTransactionUtils().readData( + netconfAccessor.getControllerBindingDataBroker(), LogicalDatastoreType.CONFIGURATION, ALL_DEVICES); + + if (allowedDevices != null) { + Collection deviceList = YangHelper.getCollection(allowedDevices.nonnullDevice()); + for (Device device : deviceList) { + LOG.info("Device in allowed-devices is - {}", device.getUniqueId()); + if (device.getUniqueId().equals(netconfAccessor.getNodeId().getValue())) { + LOG.info("Mountpoint is part of allowed-devices list"); + return true; + } + } + } + + LOG.info("Mountpoint {} is not part of allowed-devices list", mountpointName); + return false; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNotifToVESEventAssembly.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNotifToVESEventAssembly.java new file mode 100644 index 000000000..6e31ffb6f --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanNotifToVESEventAssembly.java @@ -0,0 +1,99 @@ +/* + * ============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.oran.impl.binding; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ORanNotifToVESEventAssembly { + + private static final Logger log = LoggerFactory.getLogger(ORanNotifToVESEventAssembly.class); + private static final String VES_EVENT_DOMAIN = "notification"; + private static final String VES_EVENTTYPE = "ORAN_notification"; + private static final String VES_EVENT_PRIORITY = "Normal"; + private NetconfBindingAccessor netconfAccessor; + private VESCollectorService vesProvider; + + public ORanNotifToVESEventAssembly(NetconfBindingAccessor netconfAccessor, VESCollectorService vesProvider) { + this.netconfAccessor = netconfAccessor; + this.vesProvider = vesProvider; + } + + // VES CommonEventHeader fields + public VESCommonEventHeaderPOJO createVESCommonEventHeader(Instant time, String notificationTypeName, + long sequenceNo) { + VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); + vesCEH.setDomain(VES_EVENT_DOMAIN); + vesCEH.setEventName(notificationTypeName); + vesCEH.setEventType(VES_EVENTTYPE); + vesCEH.setPriority(VES_EVENT_PRIORITY); + + String eventId; + + eventId = notificationTypeName + "-" + Long.toUnsignedString(sequenceNo); + + vesCEH.setEventId(eventId); + vesCEH.setStartEpochMicrosec(time.toEpochMilli() * 1000); + vesCEH.setLastEpochMicrosec(time.toEpochMilli() * 1000); + vesCEH.setNfVendorName("ORAN"); + vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); + vesCEH.setSequence(sequenceNo); + vesCEH.setSourceId("ORAN"); + vesCEH.setSourceName(netconfAccessor.getNodeId().getValue()); + return vesCEH; + } + + // Notification fields + public VESNotificationFieldsPOJO createVESNotificationFields(HashMap xPathFields, + String notificationTypeName) { + VESNotificationFieldsPOJO vesNotifFields = new VESNotificationFieldsPOJO(); + + vesNotifFields.setChangeType(notificationTypeName); + vesNotifFields.setChangeIdentifier(netconfAccessor.getNodeId().getValue()); + + StringBuffer buf = new StringBuffer(); + Iterator> it = xPathFields.entrySet().iterator(); + while (it.hasNext()) { + Entry pair = it.next(); + buf.append("\n" + pair.getKey() + " = " + pair.getValue()); + } + log.info("Resultlist({}):{}", xPathFields.size(), buf.toString()); + + ArrayList> arrayOfNamedHashMap = new ArrayList>(); + HashMap namedHashMap = new HashMap(); + namedHashMap.put("hashMap", xPathFields); + namedHashMap.put("name", notificationTypeName); + arrayOfNamedHashMap.add(namedHashMap); + vesNotifFields.setArrayOfNamedHashMap(arrayOfNamedHashMap); + return vesNotifFields; + + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanRegistrationToVESpnfRegistrationMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanRegistrationToVESpnfRegistrationMapper.java new file mode 100644 index 000000000..206abb5d7 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanRegistrationToVESpnfRegistrationMapper.java @@ -0,0 +1,114 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.binding; + +import java.time.Instant; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom.ORanDMDOMUtility; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom.ORanDeviceManagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ORanRegistrationToVESpnfRegistrationMapper { + + @SuppressWarnings("unused") + private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class); + //CommonEventHeader fields + private static final String VES_EVENT_DOMAIN = "pnfRegistration"; + private static final String VES_EVENTTYPE = "NetConf Callhome Registration"; + private static final String VES_EVENT_PRIORITY = "Normal"; + + private final VESCollectorService vesProvider; + private final NetconfAccessor netconfAccessor; + + private Integer sequenceNo; + + + public ORanRegistrationToVESpnfRegistrationMapper(NetconfAccessor netconfAccessor, + VESCollectorService vesCollectorService) { + this.netconfAccessor = netconfAccessor; + this.vesProvider = vesCollectorService; + + this.sequenceNo = 0; + } + + public VESCommonEventHeaderPOJO mapCommonEventHeader(MapEntryNode component) { + VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); + vesCEH.setDomain(VES_EVENT_DOMAIN); + vesCEH.setEventId(netconfAccessor.getNodeId().getValue()); + vesCEH.setEventName(netconfAccessor.getNodeId().getValue()); + vesCEH.setEventType(VES_EVENTTYPE); + vesCEH.setPriority(VES_EVENT_PRIORITY); + + vesCEH.setStartEpochMicrosec(Instant.now().toEpochMilli() * 1000); + vesCEH.setLastEpochMicrosec(Instant.now().toEpochMilli() * 1000); + vesCEH.setNfVendorName( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME)); + vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); + vesCEH.setSequence(sequenceNo++); + vesCEH.setSourceId( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID) != null + ? ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID) + : netconfAccessor.getNodeId().getValue()); + vesCEH.setSourceName(netconfAccessor.getNodeId().getValue()); + + return vesCEH; + } + + public VESPNFRegistrationFieldsPOJO mapPNFRegistrationFields(MapEntryNode component) { + VESPNFRegistrationFieldsPOJO vesPnfFields = new VESPNFRegistrationFieldsPOJO(); + vesPnfFields.setModelNumber( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME)); + vesPnfFields + .setOamV4IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address() != null + ? netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv4Address().getValue() + : null); + vesPnfFields + .setOamV6IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address() != null + ? netconfAccessor.getNetconfNode().getHost().getIpAddress().getIpv6Address().getValue() + : null); + vesPnfFields.setSerialNumber( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_SER_NUM)); + vesPnfFields.setVendorName( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME)); + vesPnfFields.setSoftwareVersion( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_SW_REV)); + vesPnfFields.setUnitType( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_ALIAS)); + vesPnfFields.setUnitFamily( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CLASS)); + vesPnfFields + .setManufactureDate( + ORanDMDOMUtility.getLeafValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_DATE) != null + ? ORanDMDOMUtility.getLeafValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_DATE) + : "Unknown"); + //vesPnfFields.setLastServiceDate(component.getLastChange()); + + return vesPnfFields; + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanToInternalDataModel.java new file mode 100644 index 000000000..2469e46b7 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ORanToInternalDataModel.java @@ -0,0 +1,276 @@ +/* + * ============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.oran.impl.binding; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.Alarm.FaultSeverity; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; +import org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.System1; +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.Guicutthrough; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder; +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.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.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.binding.CodeHelpers; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Convert data to data-provider model and perform consistency checks.
+ * Component list characteristics:
+ *
    + *
  • component list is a flat list tree structure specified + *
  • via "component.getParent()": + *
      + *
    • If null we have a root element + *
    • if not null it is a child element with generated child level
      + *
    + *
+ * Example of List:
+ * + * + */ +public class ORanToInternalDataModel { + + private static final Logger log = LoggerFactory.getLogger(ORanToInternalDataModel.class); + + public static List getInventoryList(NodeId nodeId, Collection componentList) { + + List inventoryResultList = new ArrayList(); + for (Component component : getRootComponents(componentList)) { + inventoryResultList = recurseGetInventory(nodeId, component, componentList, 0, inventoryResultList); + } + // Verify if result is complete + if (componentList.size() != inventoryResultList.size()) { + log.warn( + "Not all data were written to the Inventory. Potential entries with missing " + + "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}", + nodeId.getValue(), componentList.size(), inventoryResultList.size()); + } + return inventoryResultList; + } + + private static List recurseGetInventory(NodeId nodeId, Component component, + Collection componentList, int treeLevel, List inventoryResultList) { + + //Add element to list, if conversion successfull + Optional oInventory = getInternalEquipment(nodeId, component, treeLevel); + if (oInventory.isPresent()) { + inventoryResultList.add(oInventory.get()); + } + //Walk trough list of child keys and add to list + for (String childUuid : CodeHelpers.nonnull(component.getContainsChild())) { + for (Component c : getComponentsByName(childUuid, componentList)) { + inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList); + } + } + return inventoryResultList; + } + + public static List getRootComponents(Collection componentList) { + List resultList = new ArrayList<>(); + for (Component c : componentList) { + if (c.getParent() == null) { // Root elements do not have a parent + resultList.add(c); + } + } + return resultList; + } + + private static List getComponentsByName(String name, Collection componentList) { + List resultList = new ArrayList<>(); + for (Component c : componentList) { + if (name.equals(c.getName())) { // <-- Component list is flat search for child's of name + resultList.add(c); + } + } + return resultList; + } + + /** + * Convert equipment into Inventory. Decide if inventory can by created from content or not. Public for test case. + * + * @param nodeId of node (Similar to mountpointId) + * @param component to handle + * @param treeLevel of components + * @return Inventory if possible to be created. + */ + public static Optional getInternalEquipment(NodeId nodeId, Component component, int treeLevel) { + + // Make sure that expected data are not null + Objects.requireNonNull(nodeId); + Objects.requireNonNull(component); + + // Read manadatory data + + @Nullable + String nodeIdString = nodeId.getValue(); + @Nullable + String uuid = component.getName(); + @Nullable + String idParent = component.getParent(); + @Nullable + String uuidParent = idParent != null ? idParent : uuid; //<- Passt nicht + + // do consistency check if all mandatory parameters are there + if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) { + + // Build output data + + InventoryBuilder inventoryBuilder = new InventoryBuilder(); + + // General assumed as mandatory + inventoryBuilder.setNodeId(nodeIdString); + inventoryBuilder.setUuid(uuid); + inventoryBuilder.setParentUuid(uuidParent); + inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel)); + + // -- String list with ids of holders (optional) + inventoryBuilder.setContainedHolder(CodeHelpers.nonnull(component.getContainsChild())); + + // -- Manufacturer related things (optional) + @Nullable + String mfgName = component.getMfgName(); + inventoryBuilder.setManufacturerName(mfgName); + inventoryBuilder.setManufacturerIdentifier(mfgName); + + // Equipment type (optional) + inventoryBuilder.setDescription(component.getDescription()); + inventoryBuilder.setModelIdentifier(component.getModelName()); + @Nullable + Class xmlClass = component.getXmlClass(); + if (xmlClass != null) { + inventoryBuilder.setPartTypeId(xmlClass.getName()); + } + inventoryBuilder.setTypeName(component.getName()); + inventoryBuilder.setVersion(component.getHardwareRev()); + + // Equipment instance (optional) + @Nullable + DateAndTime mfgDate = component.getMfgDate(); + if (mfgDate != null) { + inventoryBuilder.setDate(mfgDate.getValue()); + } + inventoryBuilder.setSerial(component.getSerialNum()); + + return Optional.of(inventoryBuilder.build()); + } + return Optional.empty(); + } + + /** + * If system data is available convert + * + * @param sys + * @return + */ + public static Optional getGuicutthrough(@Nullable System1 sys) { + if (sys != null) { + String name = sys.getName(); + @Nullable + Uri uri = sys.getWebUi(); + if (uri != null) { + GuicutthroughBuilder gcBuilder = new GuicutthroughBuilder(); + if (name != null) { + gcBuilder.setName(name); + } + gcBuilder.setWeburi(uri.getValue()); + return Optional.of(gcBuilder.build()); + } + log.warn("Uri not set to invoke a Gui cut through session to the device. Please set the Uri in the device"); + } + log.warn("Retrieving augmented System details failed. Gui cut through information not available"); + return Optional.empty(); + } + + /** + * Convert netconf time into Instant + * + * @param eventTime with netconf time + * @return Instant with converted time. If not convertable provide Instant.Min + */ + public static Instant getInstantTime(@Nullable DateAndTime eventTime) { + return eventTime != null ? Instant.parse(eventTime.getValue()) : Instant.MIN; + } + + /** + * Convert fault notification into data-provider FaultLogEntity + * + * @param notification with O-RAN notification + * @param nodeId of node to handle + * @param counter to be integrated into data + * @return FaultlogEntity with data + */ + public static FaultlogEntity getFaultLog(AlarmNotif notification, NodeId nodeId, Integer counter) { + FaultlogBuilder faultAlarm = new FaultlogBuilder(); + faultAlarm.setNodeId(nodeId.getValue()); + faultAlarm.setObjectId(notification.getFaultSource()); + faultAlarm.setProblem(notification.getFaultText()); + faultAlarm.setSeverity(getSeverityType(notification.getFaultSeverity(), notification.getIsCleared())); + faultAlarm.setCounter(counter); + faultAlarm.setId(String.valueOf(notification.getFaultId())); + faultAlarm.setSourceType(SourceType.Netconf); + faultAlarm.setTimestamp(notification.getEventTime()); + return faultAlarm.build(); + } + + /** + * Convert O-RAN specific severity into data-provider severity + * + * @param faultSeverity O-RAN severity + * @param isCleared clear indicator + * @return data-provider severity type + * @throws IllegalArgumentException if conversion not possible. + */ + public static SeverityType getSeverityType(@Nullable FaultSeverity faultSeverity, @Nullable Boolean isCleared) + throws IllegalArgumentException { + if (isCleared != null && isCleared) { + return SeverityType.NonAlarmed; + } + if (faultSeverity != null) { + switch (faultSeverity) { + case CRITICAL: + return SeverityType.Critical; + case MAJOR: + return SeverityType.Major; + case MINOR: + return SeverityType.Minor; + case WARNING: + return SeverityType.Warning; + } + } + throw new IllegalArgumentException("Unknown Alarm state represent as Critical. isCleared=" + isCleared + + " faultSeverity=" + faultSeverity); + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/DOMNotificationToXPath.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/DOMNotificationToXPath.java new file mode 100644 index 000000000..64fb9b857 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/DOMNotificationToXPath.java @@ -0,0 +1,235 @@ +/* + * ============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.oran.impl.dom; + +import java.time.Instant; +import java.util.Collection; +import java.util.HashMap; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.VerifyException; + +public class DOMNotificationToXPath { + private static final Logger LOG = LoggerFactory.getLogger(DOMNotificationToXPath.class); + + public HashMap convertDomNotifToXPath(@NonNull DOMNotification domNotification) { + @NonNull + ContainerNode notifContainer = domNotification.getBody(); + HashMap xPathData = new HashMap(); + + Collection data = notifContainer.body(); + for (DataContainerChild data1 : data) { + String namePath = ""; + recurseDOMData(notifContainer, data1, notifContainer, xPathData, namePath); + } + LOG.debug("XPath Data = {}", xPathData); + return xPathData; + + } + + private void recurseDOMData(@NonNull ContainerNode notifContainer, DataContainerChild domData, DataContainerNode cn, + HashMap result, String namePath) { + PathArgument pa1 = domData.getIdentifier(); + namePath += "/" + pa1.getNodeType().getLocalName(); + if (domData.getClass().getSimpleName().equals("ImmutableContainerNode")) { + try { + ContainerNode cn1 = (ContainerNode) cn.getChildByArg(pa1); + for (DataContainerChild data1 : cn1.body()) { + recurseDOMData(notifContainer, data1, cn1, result, namePath); + } + } catch (VerifyException ve) { + LOG.debug("{} does not exist", pa1); + } + } + + if (domData.getClass().getSimpleName().equals("ImmutableChoiceNode")) { + try { + ChoiceNode cn1 = (ChoiceNode) cn.getChildByArg(pa1); + for (DataContainerChild data1 : cn1.body()) { + // recurseChoiceData(data1, cn1, namePath); + recurseDOMData(notifContainer, data1, cn1, result, namePath); + } + } catch (VerifyException ve) { + LOG.debug("{} does not exist", pa1); + } + } + + if (domData.getClass().getSimpleName().equals("ImmutableUnkeyedListNode")) { + try { + UnkeyedListNode cn1 = (UnkeyedListNode) cn.getChildByArg(pa1); + for (UnkeyedListEntryNode data1 : cn1.body()) { + recurseUnkeyedListEntryNodeData(data1, cn1, result, namePath); + } + } catch (VerifyException ve) { + LOG.debug("{} does not exist", pa1); + } + } + + if (domData.getClass().getSimpleName().equals("ImmutableMapNode")) { + try { + MapNode cn1 = (MapNode) cn.getChildByArg(pa1); + for (MapEntryNode data1 : cn1.body()) { + recurseMapEntryNodeData(notifContainer, data1, cn1, result, namePath); + } + } catch (VerifyException ve) { + LOG.debug("{} does not exist", pa1); + } + } + + if (domData.getClass().getSimpleName().equals("ImmutableLeafSetNode")) { + try { + LeafSetNode cn1 = (LeafSetNode) cn.getChildByArg(pa1); + for (LeafSetEntryNode data1 : cn1.body()) { + recurseLeafSetEntryNodeData(data1, cn1, result, namePath); + } + } catch (VerifyException ve) { + LOG.debug("{} does not exist", pa1); + } + } + + if (domData.getClass().getSimpleName().equals("ImmutableLeafNode")) { + recurseLeafNode(domData, result, namePath); + } + } + + private void recurseLeafSetEntryNodeData(LeafSetEntryNode data, LeafSetNode cn1, + HashMap result, String namePath) { + PathArgument pa1 = data.getIdentifier(); + namePath += "/" + pa1.getNodeType().getLocalName(); + + if (data.getClass().getSimpleName().equals("ImmutableLeafSetEntryNode")) { + LOG.debug("{}={}", namePath, data.body()); + result.put(namePath, data.body().toString()); + } + } + + private void recurseMapEntryNodeData(@NonNull ContainerNode notifContainer, MapEntryNode data, MapNode cn1, + HashMap result, String namePath) { + PathArgument pa1 = data.getIdentifier(); + NodeIdentifierWithPredicates ni = data.getIdentifier(); + + for (QName qn : ni.keySet()) { + namePath += "/" + ni.getValue(qn); + } + + if (data.getClass().getSimpleName().equals("ImmutableMapEntryNode")) { + for (DataContainerChild data1 : data.body()) { + if (data1.getClass().getSimpleName().equals("ImmutableLeafSetNode")) { + try { + LeafSetNode cn2 = (LeafSetNode) data.getChildByArg(data1.getIdentifier()); + for (LeafSetEntryNode data2 : cn2.body()) { + recurseLeafSetEntryNodeData(data2, cn2, result, namePath); + } + } catch (VerifyException ve) { + LOG.debug("{} does not exist", data1.getIdentifier()); + } + } else { + recurseLeafNode(data1, result, namePath); + } + } + } + + if (data.getClass().getSimpleName().equals("ImmutableLeafSetNode")) { + try { + LeafSetNode cn2 = (LeafSetNode) notifContainer.getChildByArg(pa1); + for (LeafSetEntryNode data1 : cn2.body()) { + recurseLeafSetEntryNodeData(data1, cn2, result, namePath); + } + } catch (VerifyException ve) { + LOG.debug("{} does not exist", pa1); + } + } + + if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) { + LOG.debug("{}={}", namePath, data.body()); + result.put(namePath, data.body().toString()); + } + } + + private void recurseUnkeyedListEntryNodeData(UnkeyedListEntryNode data, UnkeyedListNode cn1, + HashMap result, String namePath) { + PathArgument pa1 = data.getIdentifier(); + namePath += "/" + pa1.getNodeType().getLocalName(); + + if (data.getClass().getSimpleName().equals("ImmutableUnkeyedListEntryNode")) { + for (DataContainerChild data1 : data.body()) { + recurseLeafNode(data1, result, namePath); + } + } + + if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) { + LOG.debug("{}={}", namePath, data.body()); + result.put(namePath, data.body().toString()); + } + } + + public void recurseLeafNode(DataContainerChild data, HashMap result, String namePath) { + PathArgument pa1 = data.getIdentifier(); + if (!(data.getClass().getSimpleName().equals("ImmutableAugmentationNode"))) + namePath += "/" + pa1.getNodeType().getLocalName(); + if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) { + LOG.debug("{}={}", namePath, data.body()); + result.put(namePath, data.body().toString()); + } + } + + public void recurseChoiceData(HashMap result, DataContainerChild data, ChoiceNode cn, + String namePath) { + PathArgument pa1 = data.getIdentifier(); + namePath += "/" + pa1.getNodeType().getLocalName(); + // NodeIdentifier nodeId = new NodeIdentifier(pa1.getNodeType()); + if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) { + LOG.debug("{}={}", namePath, data.body()); + result.put(namePath, data.body().toString()); + } + } + + public Instant getTime(@NonNull DOMNotification domNotification) { + @NonNull + Instant eventTime; + if (domNotification instanceof DOMEvent) { + eventTime = ((DOMEvent) domNotification).getEventInstant(); + LOG.info("Event time {}", eventTime); + } else { + eventTime = Instant.now(); + LOG.info("Defaulting to actual time of processing the notification - {}", eventTime); + } + return eventTime; + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDMDOMUtility.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDMDOMUtility.java new file mode 100644 index 000000000..947677bb6 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDMDOMUtility.java @@ -0,0 +1,90 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.VerifyException; + +public class ORanDMDOMUtility { + public static final Logger LOG = LoggerFactory.getLogger(ORanDMDOMUtility.class); + + public static String getKeyValue(MapEntryNode componentEntry) { + NodeIdentifierWithPredicates componentKey = componentEntry.getIdentifier(); // list key + return (String) componentKey.getValue(ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_KEY); + } + + public static String getLeafValue(DataContainerNode componentEntry, QName leafQName) { + NodeIdentifier leafNodeIdentifier = new NodeIdentifier(leafQName); + try { + LeafNode optLeafNode = (LeafNode) componentEntry.getChildByArg(leafNodeIdentifier); + if (optLeafNode.body() instanceof QName) { + LOG.debug("Leaf is of type QName"); + } + return optLeafNode.body().toString(); + } catch (VerifyException ve) { + LOG.debug("Leaf with QName {} not found", leafQName.toString()); + return null; + } + } + + public static List getLeafListValue(DataContainerNode componentEntry, QName leafListQName) { + List containsChildList = new ArrayList(); + try { + DataContainerChild childSet = componentEntry.getChildByArg(new NodeIdentifier(leafListQName)); + Collection childEntry = (Collection) childSet.body(); + Iterator childEntryItr = childEntry.iterator(); + while (childEntryItr.hasNext()) { + LeafSetEntryNode childEntryNode = (LeafSetEntryNode) childEntryItr.next(); + containsChildList.add(childEntryNode.body().toString()); + } + } catch (VerifyException ve) { + LOG.debug("Child for {} does not exist", leafListQName); + } + return containsChildList; + } + + public static Instant getNotificationInstant(DOMNotification notification) { + if (notification instanceof DOMEvent) { + return ((DOMEvent) notification).getEventInstant(); + } else { + return Instant.now(); + } + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMChangeNotificationListener.java new file mode 100644 index 000000000..aa375eff7 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMChangeNotificationListener.java @@ -0,0 +1,150 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import com.fasterxml.jackson.core.JsonProcessingException; +import java.time.Instant; +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.types.NetconfTimeStampImpl; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.mdsal.dom.api.DOMNotificationListener; +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.EventlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType; +import org.opendaylight.yangtools.yang.binding.CodeHelpers; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ORanDOMChangeNotificationListener implements DOMNotificationListener { + + private static final Logger log = LoggerFactory.getLogger(ORanDOMChangeNotificationListener.class); + + private final NetconfDomAccessor netconfDomAccessor; + private final DataProvider databaseService; + private @NonNull VESCollectorService vesCollectorService; + private final DOMNotificationToXPath domNotificationXPath; + private ORanDOMNotifToVESEventAssembly mapper = null; + private static int sequenceNo = 0; + + public ORanDOMChangeNotificationListener(NetconfDomAccessor netconfDomAccessor, + @NonNull VESCollectorService vesCollectorService, DataProvider databaseService) { + this.netconfDomAccessor = netconfDomAccessor; + this.databaseService = databaseService; + this.vesCollectorService = vesCollectorService; + domNotificationXPath = new DOMNotificationToXPath(); + } + + @Override + public void onNotification(@NonNull DOMNotification domNotification) { + if (domNotification.getType() + .equals(Absolute.of(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE))) { + handleNetconfConfigChange(domNotification); + } + } + + private void handleNetconfConfigChange(@NonNull DOMNotification domNotification) { + DateAndTime eventTime; + Instant notificationEventTime = null; + if (domNotification instanceof DOMEvent) { + notificationEventTime = ((DOMEvent) domNotification).getEventInstant(); + eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp(notificationEventTime.toString()); + } else { + eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp(); + } + + ContainerNode cn = domNotification.getBody(); + + // Process the changed-by child +// ContainerNode changedByContainerNode = (ContainerNode) cn +// .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_CHANGEDBY)); +// ChoiceNode serverOrUserIDVal = (ChoiceNode) changedByContainerNode +// .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SERVERORUSER)); +// @SuppressWarnings("unused") +// String userIDValue = serverOrUserIDVal +// .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_USERNAME)).body() +// .toString(); +// @SuppressWarnings("unused") +// Integer sessionIDVal = Integer.valueOf(serverOrUserIDVal +// .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SESSIONID)).body() +// .toString()); +// +// // Process the datastore child +// @SuppressWarnings("unused") +// String datastoreValue = cn +// .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_DATASTORE)).body() +// .toString(); + + // Process the edit child + UnkeyedListNode editList = (UnkeyedListNode) cn + .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_EDITNODE)); + if (editList != null) { + for (int listCnt = 0; listCnt < editList.size(); listCnt++) { + String operationValue = editList.childAt(listCnt) + .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_OPERATION)) + .body().toString(); + String targetValue = editList.childAt(listCnt) + .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_TARGET)) + .body().toString(); + + EventlogEntity eventLogEntity1 = new EventlogBuilder() + .setNodeId(netconfDomAccessor.getNodeId().getValue()).setCounter(sequenceNo++) + .setTimestamp(eventTime).setObjectId(targetValue).setAttributeName("N.A") + .setSourceType(SourceType.Netconf).setNewValue(String.valueOf(operationValue)).build(); + databaseService.writeEventLog(eventLogEntity1); + } + } + + if (vesCollectorService.getConfig().isVESCollectorEnabled()) { + if (mapper == null) { + this.mapper = new ORanDOMNotifToVESEventAssembly(netconfDomAccessor, vesCollectorService); + } + VESCommonEventHeaderPOJO header = mapper.createVESCommonEventHeader( + domNotificationXPath.getTime(domNotification), + ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE.getLocalName(), + sequenceNo); + VESNotificationFieldsPOJO body = mapper.createVESNotificationFields( + domNotificationXPath.convertDomNotifToXPath(domNotification), + ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE.getLocalName()); + log.info("domNotification in XPath format = {}", + domNotificationXPath.convertDomNotifToXPath(domNotification)); + try { + vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body)); + } catch (JsonProcessingException e) { + log.warn("Exception while generating JSON object ", e); + + } + } + + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultNotificationListener.java new file mode 100644 index 000000000..494a01f71 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultNotificationListener.java @@ -0,0 +1,171 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import com.fasterxml.jackson.core.JsonProcessingException; +import java.time.Instant; +import java.time.format.DateTimeParseException; +import java.util.Collection; +import java.util.Objects; +import org.eclipse.jdt.annotation.NonNull; +import org.json.JSONException; +import org.json.JSONObject; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESMessage; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.mdsal.dom.api.DOMNotificationListener; +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.data.api.schema.MapEntryNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ORanDOMFaultNotificationListener implements DOMNotificationListener { + + private static final Logger LOG = LoggerFactory.getLogger(ORanDOMFaultNotificationListener.class); + + private final @NonNull NetconfDomAccessor netconfDomAccessor; + private final @NonNull VESCollectorService vesCollectorService; + private final @NonNull ORanDOMFaultToVESFaultMapper mapper; + private final @NonNull FaultService faultService; + private final @NonNull WebsocketManagerService websocketManagerService; + private final @NonNull DataProvider databaseService; + + private Integer counter; //Local counter is assigned to Notifications + + public ORanDOMFaultNotificationListener(@NonNull NetconfDomAccessor netconfDomAccessor, + @NonNull VESCollectorService vesCollectorService, @NonNull FaultService faultService, + @NonNull WebsocketManagerService websocketManagerService, @NonNull DataProvider databaseService) { + this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor); + this.vesCollectorService = Objects.requireNonNull(vesCollectorService); + this.faultService = Objects.requireNonNull(faultService); + this.websocketManagerService = Objects.requireNonNull(websocketManagerService); + this.databaseService = Objects.requireNonNull(databaseService); + + this.mapper = + new ORanDOMFaultToVESFaultMapper(netconfDomAccessor.getNodeId(), vesCollectorService, "AlarmNotif"); + this.counter = 0; + } + + @Override + public void onNotification(@NonNull DOMNotification notification) { + onAlarmNotif(notification); + } + + /** + * Gets the mfg name, mode-name and Uuid of the root component (Ex: Chassis.) In cases where there are multiple root + * components i.e., components with no parent, the Uuid of the last occurred component from the componentList will + * be considered. Till now we haven't seen Uuid set for root components, so not an issue for now. + * + * @param componentList + */ + public void setComponentList(Collection componentList) { + for (MapEntryNode component : ORanDOMToInternalDataModel.getRootComponents(componentList)) { + mapper.setMfgName( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME)); + mapper.setUuid(ORanDMDOMUtility.getLeafValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID) != null + ? ORanDMDOMUtility.getLeafValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_UUID) + : netconfDomAccessor.getNodeId().getValue()); + mapper.setModelName(ORanDMDOMUtility.getLeafValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MODEL_NAME)); + } + } + + public void onAlarmNotif(DOMNotification notification) { + + LOG.debug("onAlarmNotif {}", notification.getClass().getSimpleName()); + counter++; + // Send devicemanager specific notification for database and ODLUX + Instant eventTimeInstant = ORanDMDOMUtility.getNotificationInstant(notification); + faultService.faultNotification( + ORanDOMToInternalDataModel.getFaultLog(notification, netconfDomAccessor.getNodeId(), counter)); + // Send model specific notification to WebSocketManager + websocketManagerService.sendNotification(notification, netconfDomAccessor.getNodeId(), ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF); + + try { + if (vesCollectorService.getConfig().isVESCollectorEnabled()) { + VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(notification, eventTimeInstant, counter); + VESFaultFieldsPOJO body = mapper.mapFaultFields(notification); + VESMessage vesMsg = vesCollectorService.generateVESEvent(header, body); + vesCollectorService.publishVESMessage(vesMsg); + LOG.info("VES Message is {}", vesMsg.getMessage()); + writeToEventLog(vesMsg.getMessage(), eventTimeInstant, ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF.getLocalName(), counter); + } + } catch (JsonProcessingException | DateTimeParseException e) { + LOG.debug("Can not convert event into VES message {}", notification, e); + } + } + + private void writeToEventLog(String data, Instant eventTimeInstant, String notificationName, int sequenceNo) { + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + + eventlogBuilder.setObjectId("Device"); + eventlogBuilder.setCounter(sequenceNo); + eventlogBuilder.setAttributeName(notificationName); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()); + String eventLogMsgLvl = vesCollectorService.getConfig().getEventLogMsgDetail(); + if (eventLogMsgLvl.equalsIgnoreCase("SHORT")) { + data = getShortEventLogMessage(data); + } else if (eventLogMsgLvl.equalsIgnoreCase("MEDIUM")) { + data = getMediumEventLogMessage(data); + } else if (eventLogMsgLvl.equalsIgnoreCase("LONG")) { + // do nothing, data already contains long message + } else { // Unknown value, default to "SHORT" + data = getShortEventLogMessage(data); + } + eventlogBuilder.setNewValue(data); + eventlogBuilder.setSourceType(SourceType.Netconf); + eventlogBuilder.setTimestamp(ORanDOMToInternalDataModel.getDateAndTimeOfInstant(eventTimeInstant)); + + databaseService.writeEventLog(eventlogBuilder.build()); + } + + private String getShortEventLogMessage(String data) { + try { + JSONObject jsonObj = new JSONObject(data); + String domain = jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").getString("domain"); + String eventId = jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").getString("eventId"); + return "domain:" + domain + " eventId:" + eventId; + } catch (JSONException e) { + LOG.debug("{}", e); + return "Invalid message received"; + } + } + + private String getMediumEventLogMessage(String data) { + try { + JSONObject jsonObj = new JSONObject(data); + return jsonObj.getJSONObject("event").getJSONObject("commonEventHeader").toString(); + } catch (JSONException e) { + LOG.debug("{}", e); + return "Invalid message received"; + } + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultToVESFaultMapper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultToVESFaultMapper.java new file mode 100644 index 000000000..b05e83f9a --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMFaultToVESFaultMapper.java @@ -0,0 +1,155 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import java.time.Instant; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanFaultToVESFaultMapper; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +//@formatter:off +/* +* Maps ORAN Fault fields to VES fault domain fields and VES commonEventHeader fields +* +* +* VES Fields Mapping +* ---------- ------- +* domain "fault" +* eventId "nt:network-topology/nt:topology/nt:node/nt:node-id" +* eventName "nt:network-topology/nt:topology/nt:node/nt:node-id" +* eventType "O-RAN-RU-Fault" +* lastEpochMicrosec TimeStamp represented by field in NetConf notification header in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds. +* nfcNamingCode always "" +* nfNamingCode always "" +* nfVendorName /ietf-hardware:hardware/component[not(parent)][1]/mfg-name +* priority "Normal" +* reportingEntityId The OAM-Controller identifier with in the SMO - e.g. the fully qualified domain name or IP-Address. +* reportingEntityName as configured by helm charts for the OpenDaylight cluster name ?????? +* sequence As per NetConf notification increasing sequence number as unsigned integer 32 bits. The value is reused in the eventId field. +* sourceId Value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/uuid or 'nt:network-topology/nt:topology/nt:node/nt:node-id' if ietf component not found. +* sourceName "nt:network-topology/nt:topology/nt:node/nt:node-id" +* startEpochMicrosec Current OAM-Controller Node timestamp in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds. +* timeZoneOffset Static text: "+00:00" +* version "4.1" +* vesEventListenerVersion "7.2.1" +* +* +* alarmAdditionalInformation +* alarmCondition Value of "o-ran-fm:alarm-notif/fault-id" +* alarmInterfaceA Value of "o-ran-fm:alarm-notif/fault-source" +* eventCategory Static text "O-RU failure" +* eventSeverity Value of "o-ran-fm:alarm-notif/fault-severity". But if "o-ran-fm:alarm-notif/is-cleared" then "NORMAL" +* eventSourceType The value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/model-name or "O-RU" if not found. +* faultFieldsVersion "4.0" +* specificProblem A mapping of the fault-id to its description according to O-RAN OpenFronthaul specification. +* vfStatus "Active" +* +*/ +//@formatter:on + +public class ORanDOMFaultToVESFaultMapper { + @SuppressWarnings("unused") + private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class); + private static final String VES_EVENT_DOMAIN = "fault"; + private static final String VES_EVENTTYPE = "ORAN_Fault"; + private static final String VES_EVENT_PRIORITY = "Normal"; + private static final String VES_EVENT_CATEGORY = "O-RU Failure"; + private static final String VES_FAULT_FIELDS_VERSION = "4.0"; + private static final String VES_FAULT_FIELDS_VFSTATUS = "Active"; //virtual function status + + private final VESCollectorService vesProvider; + private final String notifName; // Name + private final String nodeIdString; // Sourcename + //Initialized during registration + private String mfgName; + private String uuid; + private String modelName; + + public ORanDOMFaultToVESFaultMapper(NodeId nodeId, VESCollectorService vesCollectorService, String notifName) { + this.nodeIdString = nodeId.getValue(); + this.vesProvider = vesCollectorService; + this.notifName = notifName; + } + + public void setMfgName(String mfgName) { + this.mfgName = mfgName; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public VESCommonEventHeaderPOJO mapCommonEventHeader(DOMNotification notification, Instant eventTime, + int sequenceNo) { + VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); + vesCEH.setDomain(VES_EVENT_DOMAIN); + vesCEH.setEventName(notifName); + vesCEH.setEventType(VES_EVENTTYPE); + vesCEH.setPriority(VES_EVENT_PRIORITY); + + String eventId = notifName + "-" + Long.toUnsignedString(sequenceNo); + + vesCEH.setEventId(eventId); + vesCEH.setStartEpochMicrosec(eventTime.toEpochMilli() * 1000); + vesCEH.setLastEpochMicrosec(eventTime.toEpochMilli() * 1000); + vesCEH.setNfVendorName(mfgName); + vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); + vesCEH.setSequence(sequenceNo); + vesCEH.setSourceId(uuid); + vesCEH.setSourceName(nodeIdString); + + return vesCEH; + } + + public VESFaultFieldsPOJO mapFaultFields(DOMNotification alarmNotif) { + VESFaultFieldsPOJO vesFaultFields = new VESFaultFieldsPOJO(); + ContainerNode cn = alarmNotif.getBody(); + vesFaultFields.setAlarmCondition(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_ID)); + vesFaultFields + .setAlarmInterfaceA(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE)); + vesFaultFields.setEventCategory(VES_EVENT_CATEGORY); + if (ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED).equals("true")) { + vesFaultFields.setEventSeverity("NORMAL"); + } else { + vesFaultFields.setEventSeverity( + ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY)); + } + vesFaultFields.setEventSourceType(modelName); + vesFaultFields.setFaultFieldsVersion(VES_FAULT_FIELDS_VERSION); + vesFaultFields + .setSpecificProblem(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT)); + vesFaultFields.setVfStatus(VES_FAULT_FIELDS_VFSTATUS); + + return vesFaultFields; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNetworkElement.java new file mode 100644 index 000000000..64006339d --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNetworkElement.java @@ -0,0 +1,283 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.google.common.collect.Sets; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +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.oran.impl.binding.ORanRegistrationToVESpnfRegistrationMapper; +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.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO; +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.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.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough; +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.NetworkElementDeviceType; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +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 ORanDOMNetworkElement implements NetworkElement { + + private static final Logger LOG = LoggerFactory.getLogger(ORanDOMNetworkElement.class); + + private final @NonNull NetconfDomAccessor netconfDomAccessor; + private final @NonNull DataProvider databaseService; + private final @NonNull FaultService faultService; + private final @NonNull NotificationService notificationService; + private final @NonNull ORanDOMChangeNotificationListener oranDomChangeNotificationListener; + private final @NonNull ORanDOMFaultNotificationListener oranDomFaultNotificationListener; + private final @NonNull VESCollectorService vesCollectorService; + private final @NonNull ORanRegistrationToVESpnfRegistrationMapper mapper; + + public ORanDOMNetworkElement(@NonNull NetconfDomAccessor netconfDomAccessor, + @NonNull DeviceManagerServiceProvider serviceProvider) { + LOG.info("Create {}", ORanDOMNetworkElement.class.getSimpleName()); + this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor); + Objects.requireNonNull(serviceProvider); + this.databaseService = serviceProvider.getDataProvider(); + this.vesCollectorService = serviceProvider.getVESCollectorService(); + this.faultService = serviceProvider.getFaultService(); + this.notificationService = serviceProvider.getNotificationService(); + + this.oranDomChangeNotificationListener = + new ORanDOMChangeNotificationListener(netconfDomAccessor, vesCollectorService, databaseService); + + this.oranDomFaultNotificationListener = + new ORanDOMFaultNotificationListener(netconfDomAccessor, vesCollectorService, + serviceProvider.getFaultService(), serviceProvider.getWebsocketService(), databaseService); + + this.mapper = new ORanRegistrationToVESpnfRegistrationMapper(netconfDomAccessor, vesCollectorService); + } + + @Override + public void register() { + Collection componentList = initialReadFromNetworkElement(); + oranDomFaultNotificationListener.setComponentList(componentList); + publishMountpointToVES(componentList); + QName[] notifications = {ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE, + ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIRMED_COMMIT, + ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_START, + ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_END, + ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CAPABILITY_CHANGE}; + netconfDomAccessor.doRegisterNotificationListener(oranDomChangeNotificationListener, notifications); + QName[] faultNotification = {ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF}; + netconfDomAccessor.doRegisterNotificationListener(oranDomFaultNotificationListener, faultNotification); + // Output notification streams to LOG + @SuppressWarnings("unused") + Map streams = netconfDomAccessor.getNotificationStreamsAsMap(); + // Register to default stream + netconfDomAccessor.invokeCreateSubscription(); + } + + public Collection initialReadFromNetworkElement() { + Collection componentMapEntries = null; + NormalizedNode hwData = readHardware(); + + if (hwData != null) { + ContainerNode hwContainer = (ContainerNode) hwData; + MapNode componentMap = (MapNode) hwContainer + .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST)); + if (componentMap != null) { + componentMapEntries = componentMap.body(); + List inventoryList = + ORanDOMToInternalDataModel.getInventoryList(netconfDomAccessor.getNodeId(), hwData); + databaseService.writeInventory(netconfDomAccessor.getNodeId().getValue(), inventoryList); + } + } else { + componentMapEntries = Collections.emptyList(); + } + + Optional oGuicutthrough = ORanDOMToInternalDataModel.getGuicutthrough(getOnapSystemData()); + if (oGuicutthrough.isPresent()) { + databaseService.writeGuiCutThroughData(oGuicutthrough.get(), netconfDomAccessor.getNodeId().getValue()); + } + return componentMapEntries; + } + + @Override + public void deregister() { + /* + * if (oranDomChangeNotificationListener != null) { + * this.oranDomChangeNotificationListener.close(); } if + * (oRanFaultListenerRegistrationResult != null) { + * this.oRanFaultListenerRegistrationResult.close(); } ; + */ + databaseService.clearGuiCutThroughEntriesOfNode(getMountpointId()); + } + + @Override + public NodeId getNodeId() { + return netconfDomAccessor.getNodeId(); + } + + @Override + public NetworkElementDeviceType getDeviceType() { + return NetworkElementDeviceType.ORAN; + } + + @Override + public Optional getService(Class clazz) { + return Optional.empty(); + } + + @Override + public void warmstart() {} + + @Override + public Optional getAcessor() { + return Optional.of(netconfDomAccessor); + } + + // Private functions + + private String getMountpointId() { + return getNodeId().getValue(); + } + + private NormalizedNode readHardware() { + InstanceIdentifierBuilder hardwareIIDBuilder = + YangInstanceIdentifier.builder().node(ORanDeviceManagerQNames.IETF_HW_CONTAINER); + + Optional oData = + netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, hardwareIIDBuilder.build()); + if (oData.isPresent()) { + return oData.get(); + } + return null; + } + + // Read from device + /** + * Read system data with GUI cut through information from device if ONAP_SYSTEM YANG is supported. + * + * @return NormalizedNode data with GUI cut through information or null if not available. + */ + private @Nullable NormalizedNode getOnapSystemData() { + LOG.info("Get System1 for mountpoint {}", netconfDomAccessor.getNodeId().getValue()); + @NonNull + InstanceIdentifierBuilder ietfSystemIID = + YangInstanceIdentifier.builder().node(ORanDeviceManagerQNames.IETF_SYSTEM_CONTAINER); + @NonNull + AugmentationIdentifier onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier.create( + Sets.newHashSet(ORanDeviceManagerQNames.ONAP_SYSTEM_NAME, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI)); + InstanceIdentifierBuilder augmentedOnapSystem = + YangInstanceIdentifier.builder(ietfSystemIID.build()).node(onapSystemIID); + Capabilities x = netconfDomAccessor.getCapabilites(); + LOG.info("Capabilites: {}", x); + if (x.isSupportingNamespace(ORanDeviceManagerQNames.ONAP_SYSTEM_QNAME)) { + Optional res = + netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedOnapSystem.build()); + LOG.debug("Result of System1 = {}", res); + return res.isPresent() ? res.get() : null; + } else { + LOG.debug("No GUI cut through support"); + return null; + } + } + + // VES related + private void publishMountpointToVES(Collection componentList) { + /* + * 1. Check if this device is in the list of allowed-devices. 2. If device + * exists in allowed-devices, then create VES pnfRegistration event and publish + * to VES + */ + if (vesCollectorService.getConfig().isVESCollectorEnabled() && inAllowedDevices(getMountpointId())) { + for (MapEntryNode component : ORanDOMToInternalDataModel.getRootComponents(componentList)) { + // Just get one component. At the moment we don't care which one. Also since + // there is only one management address, we assume there will be only one + // chassis. + // If the device supports subtended configuration then it is assumed that the + // Chassis containing the management interface will be the root component and + // there will be only one root. + VESCommonEventHeaderPOJO header = mapper.mapCommonEventHeader(component); + VESPNFRegistrationFieldsPOJO body = mapper.mapPNFRegistrationFields(component); + try { + vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body)); + } catch (JsonProcessingException e) { + LOG.warn("Error while serializing VES Event to String ", e); + } + } + } + } + + private boolean inAllowedDevices(String mountpointName) { + InstanceIdentifierBuilder callhomeServerIID = + YangInstanceIdentifier.builder().node(ORanDeviceManagerQNames.CALLHOME_SERVER_CONTAINER); + final InstanceIdentifierBuilder allowedDevicesIID = YangInstanceIdentifier.builder(callhomeServerIID.build()) + .node(ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE); + + Optional allowedDevices = netconfDomAccessor + .readControllerDataNode(LogicalDatastoreType.CONFIGURATION, allowedDevicesIID.build()); + + if (allowedDevices.isPresent()) { + ContainerNode allowedDevicesNode = (ContainerNode) allowedDevices.get(); + MapNode deviceList = (MapNode) allowedDevicesNode + .childByArg(new NodeIdentifier(ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE_DEVICE_LIST)); + if (deviceList != null) { + Collection deviceListCollection = deviceList.body(); + for (MapEntryNode device : deviceListCollection) { + // String deviceName = device.getIdentifier() + // .getValue(ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE_KEY).toString(); + String deviceName = ORanDMDOMUtility.getLeafValue(device, + ORanDeviceManagerQNames.CALLHOME_SERVER_ALLOWED_DEVICE_KEY); + if (deviceName != null && deviceName.equals(mountpointName)) { + LOG.info("Mountpoint {} is part of allowed-devices list", mountpointName); + return true; + } + } + } + } + + LOG.info("Mountpoint {} is not part of allowed-devices list", mountpointName); + return false; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNotifToVESEventAssembly.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNotifToVESEventAssembly.java new file mode 100644 index 000000000..b8b5151fe --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMNotifToVESEventAssembly.java @@ -0,0 +1,102 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; +import java.util.Objects; +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ORanDOMNotifToVESEventAssembly { + + private static final Logger log = LoggerFactory.getLogger(ORanDOMNotifToVESEventAssembly.class); + private static final String VES_EVENT_DOMAIN = "notification"; + private static final String VES_EVENTTYPE = "ORAN_notification"; + private static final String VES_EVENT_PRIORITY = "Normal"; + private NetconfDomAccessor netconfDomAccessor; + private VESCollectorService vesProvider; + + public ORanDOMNotifToVESEventAssembly(@NonNull NetconfDomAccessor netconfDomAccessor, + @NonNull VESCollectorService vesCollectorService) { + this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor); + this.vesProvider = Objects.requireNonNull(vesCollectorService); + } + + // VES CommonEventHeader fields + public VESCommonEventHeaderPOJO createVESCommonEventHeader(Instant time, String notificationTypeName, + long sequenceNo) { + VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO(); + vesCEH.setDomain(VES_EVENT_DOMAIN); + vesCEH.setEventName(notificationTypeName); + vesCEH.setEventType(VES_EVENTTYPE); + vesCEH.setPriority(VES_EVENT_PRIORITY); + + String eventId; + + eventId = notificationTypeName + "-" + Long.toUnsignedString(sequenceNo); + + vesCEH.setEventId(eventId); + vesCEH.setStartEpochMicrosec(time.toEpochMilli() * 1000); + vesCEH.setLastEpochMicrosec(time.toEpochMilli() * 1000); + vesCEH.setNfVendorName("ORAN"); + vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName()); + vesCEH.setSequence(sequenceNo); + vesCEH.setSourceId("ORAN"); + vesCEH.setSourceName(netconfDomAccessor.getNodeId().getValue()); + return vesCEH; + } + + // Notification fields + public VESNotificationFieldsPOJO createVESNotificationFields(HashMap xPathFields, + String notificationTypeName) { + VESNotificationFieldsPOJO vesNotifFields = new VESNotificationFieldsPOJO(); + + vesNotifFields.setChangeType(notificationTypeName); + vesNotifFields.setChangeIdentifier(netconfDomAccessor.getNodeId().getValue()); + + StringBuffer buf = new StringBuffer(); + Iterator> it = xPathFields.entrySet().iterator(); + while (it.hasNext()) { + Entry pair = it.next(); + buf.append("\n" + pair.getKey() + " = " + pair.getValue()); + } + log.info("Resultlist({}):{}", xPathFields.size(), buf.toString()); + + ArrayList> arrayOfNamedHashMap = new ArrayList>(); + HashMap namedHashMap = new HashMap(); + namedHashMap.put("hashMap", xPathFields); + namedHashMap.put("name", notificationTypeName); + arrayOfNamedHashMap.add(namedHashMap); + vesNotifFields.setArrayOfNamedHashMap(arrayOfNamedHashMap); + return vesNotifFields; + + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMToInternalDataModel.java new file mode 100644 index 000000000..b157ae4b5 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDOMToInternalDataModel.java @@ -0,0 +1,293 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import org.eclipse.jdt.annotation.Nullable; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; +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.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.Guicutthrough; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder; +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.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.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.binding.CodeHelpers; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +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 ORanDOMToInternalDataModel { + + private static final Logger LOG = LoggerFactory.getLogger(ORanDOMToInternalDataModel.class); + private static final NetconfTimeStamp NETCONFTIME_CONVERTER = NetconfTimeStampImpl.getConverter(); + + public static List getInventoryList(NodeId nodeId, NormalizedNode hwData) { + + List inventoryResultList = new ArrayList(); + ContainerNode hwContainer = (ContainerNode) hwData; + MapNode componentMap = (MapNode) hwContainer + .getChildByArg(new NodeIdentifier(ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST)); + Collection componentMapEntries = componentMap.body(); + + for (MapEntryNode componentMapEntryNode : getRootComponents(componentMapEntries)) { + inventoryResultList = + recurseGetInventory(nodeId, componentMapEntryNode, componentMapEntries, 0, inventoryResultList); + } + // Verify if result is complete + if (componentMapEntries.size() != inventoryResultList.size()) { + LOG.warn( + "Not all data were written to the Inventory. Potential entries with missing " + + "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}", + nodeId.getValue(), componentMapEntries.size(), inventoryResultList.size()); + } + return inventoryResultList; + } + + private static List recurseGetInventory(NodeId nodeId, MapEntryNode component, + Collection componentList, int treeLevel, List inventoryResultList) { + //Add element to list, if conversion successfull + Optional oInventory = getInternalEquipment(nodeId, component, treeLevel); + if (oInventory.isPresent()) { + inventoryResultList.add(oInventory.get()); + } + //Walk through list of child keys and add to list + for (String childUuid : CodeHelpers.nonnull(ORanDMDOMUtility.getLeafListValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CONTAINS_CHILD))) { + for (MapEntryNode c : getComponentsByName(childUuid, componentList)) { + inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList); + } + } + return inventoryResultList; + } + + public static List getRootComponents(Collection componentMapEntries) { + List resultList = new ArrayList<>(); + for (MapEntryNode componentMapEntryNode : componentMapEntries) { + if (ORanDMDOMUtility.getLeafValue(componentMapEntryNode, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_PARENT) == null) { // Root elements do not have a parent + resultList.add(componentMapEntryNode); + } + } + return resultList; + } + + private static List getComponentsByName(String name, Collection componentList) { + List resultList = new ArrayList<>(); + for (MapEntryNode c : componentList) { + if (name.equals(ORanDMDOMUtility.getKeyValue(c))) { // <-- Component list is flat search for child's of name + resultList.add(c); + } + } + return resultList; + } + + public static Optional getInternalEquipment(NodeId nodeId, MapEntryNode component, int treeLevel) { + + // Make sure that expected data are not null + Objects.requireNonNull(nodeId); + Objects.requireNonNull(component); + + // Read mandatory data + + @Nullable + String nodeIdString = nodeId.getValue(); + @Nullable + String uuid = ORanDMDOMUtility.getKeyValue(component); + @Nullable + String idParent = + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_PARENT); + @Nullable + String uuidParent = idParent != null ? idParent : uuid; //<- Passt nicht + + // do consistency check if all mandatory parameters are there + if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) { + // Build output data + + InventoryBuilder inventoryBuilder = new InventoryBuilder(); + + // General assumed as mandatory + inventoryBuilder.setNodeId(nodeIdString); + inventoryBuilder.setUuid(uuid); + inventoryBuilder.setParentUuid(uuidParent); + inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel)); + + // -- String list with ids of holders (optional) + inventoryBuilder.setContainedHolder(ORanDMDOMUtility.getLeafListValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CONTAINS_CHILD)); + + // -- Manufacturer related things (optional) + @Nullable + String mfgName = + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_NAME); + inventoryBuilder.setManufacturerName(mfgName); + inventoryBuilder.setManufacturerIdentifier(mfgName); + + // Equipment type (optional) + inventoryBuilder.setDescription( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_DESC)); + inventoryBuilder.setModelIdentifier(ORanDMDOMUtility.getLeafValue(component, + ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MODEL_NAME)); + + inventoryBuilder.setPartTypeId( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_CLASS)); + + inventoryBuilder.setTypeName(ORanDMDOMUtility.getKeyValue(component)); + inventoryBuilder.setVersion( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_HW_REV)); + + // Equipment instance (optional) + @Nullable + String mfgDate = + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_MFG_DATE); + if (mfgDate != null) { + inventoryBuilder.setDate(mfgDate); + } + inventoryBuilder.setSerial( + ORanDMDOMUtility.getLeafValue(component, ORanDeviceManagerQNames.IETF_HW_COMPONENT_LIST_SER_NUM)); + + return Optional.of(inventoryBuilder.build()); + } + return Optional.empty(); + } + + /** + * If system data is available convert + * + * @param sys + * @return + */ + public static Optional getGuicutthrough(@Nullable NormalizedNode sys) { + AugmentationNode onapSys = (AugmentationNode) sys; + if (onapSys != null) { + String name = ORanDMDOMUtility.getLeafValue(onapSys, ORanDeviceManagerQNames.ONAP_SYSTEM_NAME); + @Nullable + Uri uri = new Uri(ORanDMDOMUtility.getLeafValue(onapSys, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI)); + if (uri.getValue() != null) { + GuicutthroughBuilder gcBuilder = new GuicutthroughBuilder(); + if (name != null) { + gcBuilder.setName(name); + } + gcBuilder.setWeburi(uri.getValue()); + return Optional.of(gcBuilder.build()); + } + LOG.warn("Uri not set to invoke a Gui cut through session to the device. Please set the Uri in the device"); + } + LOG.warn("Retrieving augmented System details failed. Gui cut through information not available"); + return Optional.empty(); + } + + /** + * Convert fault notification into data-provider FaultLogEntity + * + * @param notification with O-RAN notification + * @param nodeId of node to handle + * @param counter to be integrated into data + * @return FaultlogEntity with data + */ + public static FaultlogEntity getFaultLog(DOMNotification notification, NodeId nodeId, Integer counter) { + ContainerNode cn = notification.getBody(); + FaultlogBuilder faultAlarm = new FaultlogBuilder(); + faultAlarm.setNodeId(nodeId.getValue()); + faultAlarm.setObjectId(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE)); + faultAlarm.setProblem(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT)); + faultAlarm.setSeverity(getSeverityType( + ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY), + ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED).equals("true"))); + faultAlarm.setCounter(counter); + faultAlarm.setId(ORanDMDOMUtility.getLeafValue(cn, ORanDeviceManagerQNames.ORAN_FM_FAULT_ID)); + faultAlarm.setSourceType(SourceType.Netconf); + faultAlarm.setTimestamp(getEventTime(notification)); + return faultAlarm.build(); + } + + public static DateAndTime getEventTime(DOMNotification notification) { + DateAndTime eventTime; + Instant notificationEventTime = null; + if (notification instanceof DOMEvent) { + notificationEventTime = ((DOMEvent) notification).getEventInstant(); + eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp(notificationEventTime.toString()); + } else { + eventTime = NetconfTimeStampImpl.getConverter().getTimeStamp(); + } + return eventTime; + } + + /** + * Convert O-RAN specific severity into data-provider severity + * + * @param faultSeverity O-RAN severity + * @param isCleared clear indicator + * @return data-provider severity type + * @throws IllegalArgumentException if conversion not possible. + */ + public static SeverityType getSeverityType(@Nullable String faultSeverity, @Nullable Boolean isCleared) + throws IllegalArgumentException { + if (isCleared != null && isCleared) { + return SeverityType.NonAlarmed; + } + if (faultSeverity != null) { + switch (faultSeverity) { + case "CRITICAL": + return SeverityType.Critical; + case "MAJOR": + return SeverityType.Major; + case "MINOR": + return SeverityType.Minor; + case "WARNING": + return SeverityType.Warning; + } + } + throw new IllegalArgumentException("Unknown Alarm state represent as Critical. isCleared=" + isCleared + + " faultSeverity=" + faultSeverity); + } + + /** + * Convert Instant to NETCONF DataAndTime + * @param eventTimeInstant + * @return DateAndTime + */ + public static DateAndTime getDateAndTimeOfInstant(Instant eventTimeInstant) { + Date eventDate = Date.from(eventTimeInstant); + return new DateAndTime(NETCONFTIME_CONVERTER.getTimeStamp(eventDate)); + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDeviceManagerQNames.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDeviceManagerQNames.java new file mode 100644 index 000000000..e86168abd --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/ORanDeviceManagerQNames.java @@ -0,0 +1,114 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.QName; + +public class ORanDeviceManagerQNames { + + //ietf-system + public static final String IETF_SYSTEM_NS = "urn:ietf:params:xml:ns:yang:ietf-system"; + public static final String IETF_SYSTEM_REVISION = "2014-08-06"; + public static final @NonNull QName IETF_SYSTEM_QNAME = + QName.create(IETF_SYSTEM_NS, IETF_SYSTEM_REVISION, "ietf-system"); + public static final @NonNull QName IETF_SYSTEM_CONTAINER = QName.create(IETF_SYSTEM_QNAME, "system"); + + // onap-system.yang + public static final String ONAP_SYSTEM_NS = "urn:onap:system"; + public static final String ONAP_SYSTEM_REVISION = "2020-10-26"; + public static final @NonNull QName ONAP_SYSTEM_QNAME = + QName.create(ONAP_SYSTEM_NS, ONAP_SYSTEM_REVISION, "onap-system"); + public static final @NonNull QName ONAP_SYSTEM_NAME = QName.create(ONAP_SYSTEM_QNAME, "name"); + public static final @NonNull QName ONAP_SYSTEM_WEB_UI = QName.create(ONAP_SYSTEM_QNAME, "web-ui"); + + //ietf-hardware.yang + public static final String IETF_HW_NS = "urn:ietf:params:xml:ns:yang:ietf-hardware"; + public static final String IETF_HW_REVISION = "2018-03-13"; + public static final @NonNull QName IETF_HW_MODULE_NAME = + QName.create(IETF_HW_NS, IETF_HW_REVISION, "ietf-hardware"); + public static final @NonNull QName IETF_HW_CONTAINER = QName.create(IETF_HW_MODULE_NAME, "hardware"); + public static final @NonNull QName IETF_HW_COMPONENT_LIST = QName.create(IETF_HW_MODULE_NAME, "component"); + public static final @NonNull QName IETF_HW_COMPONENT_LIST_KEY = QName.create(IETF_HW_MODULE_NAME, "name"); + public static final @NonNull QName IETF_HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HW_MODULE_NAME, "mfg-name"); //leaf:String + public static final @NonNull QName IETF_HW_COMPONENT_LIST_UUID = QName.create(IETF_HW_MODULE_NAME, "uuid"); //leaf:yang:uuid + public static final @NonNull QName IETF_HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HW_MODULE_NAME, "model-name"); //leaf:String + public static final @NonNull QName IETF_HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HW_MODULE_NAME, "serial-num"); //leaf:String + public static final @NonNull QName IETF_HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HW_MODULE_NAME, "software-rev"); //leaf:String + public static final @NonNull QName IETF_HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HW_MODULE_NAME, "alias"); //leaf:String + public static final @NonNull QName IETF_HW_COMPONENT_LIST_CLASS = QName.create(IETF_HW_MODULE_NAME, "class"); + public static final @NonNull QName IETF_HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HW_MODULE_NAME, "mfg-date"); //leaf:yang:date-and-time + public static final @NonNull QName IETF_HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HW_MODULE_NAME, "contains-child"); //leaf-list:leafref + public static final @NonNull QName IETF_HW_COMPONENT_LIST_PARENT = QName.create(IETF_HW_MODULE_NAME, "parent"); //leaf:leafref + public static final @NonNull QName IETF_HW_COMPONENT_LIST_DESC = QName.create(IETF_HW_MODULE_NAME, "description"); //leaf:String + public static final @NonNull QName IETF_HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HW_MODULE_NAME, "hardware-rev"); //leaf:String + + //odl-netconf-callhome-server.yang + public static final String CALLHOME_SERVER_NS = "urn:opendaylight:params:xml:ns:yang:netconf-callhome-server"; + public static final String CALLHOME_SERVER_REVISION = "2020-10-15"; + public static final @NonNull QName CALLHOME_SERVER_MODULE = + QName.create(CALLHOME_SERVER_NS, CALLHOME_SERVER_REVISION, "odl-netconf-callhome-server"); + public static final @NonNull QName CALLHOME_SERVER_CONTAINER = + QName.create(CALLHOME_SERVER_MODULE, "netconf-callhome-server"); + public static final @NonNull QName CALLHOME_SERVER_ALLOWED_DEVICE = + QName.create(CALLHOME_SERVER_MODULE, "allowed-devices"); + public static final @NonNull QName CALLHOME_SERVER_ALLOWED_DEVICE_DEVICE_LIST = + QName.create(CALLHOME_SERVER_MODULE, "device"); + public static final @NonNull QName CALLHOME_SERVER_ALLOWED_DEVICE_KEY = + QName.create(CALLHOME_SERVER_MODULE, "unique-id"); + + //o-ran-hardware.yang + public static final String ORAN_HW_NS = "urn:o-ran:hardware:1.0"; + public static final String ORAN_HW_REVISION = "2019-03-28"; + public static final @NonNull QName ORAN_HW_MODULE = QName.create(ORAN_HW_NS, ORAN_HW_REVISION, "o-ran-hardware").intern(); + public static final @NonNull QName ORAN_HW_COMPONENT = QName.create(ORAN_HW_MODULE, "O-RAN-HW-COMPONENT"); + + //o-ran-fm.yang + public static final String ORAN_FM_NS = "urn:o-ran:fm:1.0"; + public static final String ORAN_FM_REVISION = "2019-02-04"; + public static final @NonNull QName ORAN_FM_MODULE = QName.create(ORAN_FM_NS, ORAN_FM_REVISION, "o-ran-fm"); + public static final @NonNull QName ORAN_FM_ALARM_NOTIF = QName.create(ORAN_FM_MODULE, "alarm-notif"); + public static final @NonNull QName ORAN_FM_FAULT_ID = QName.create(ORAN_FM_MODULE, "fault-id"); + public static final @NonNull QName ORAN_FM_FAULT_SOURCE = QName.create(ORAN_FM_MODULE, "fault-source"); + public static final @NonNull QName ORAN_FM_FAULT_SEVERITY = QName.create(ORAN_FM_MODULE, "fault-severity"); + public static final @NonNull QName ORAN_FM_FAULT_TEXT = QName.create(ORAN_FM_MODULE, "fault-text"); + public static final @NonNull QName ORAN_FM_FAULT_IS_CLEARED = QName.create(ORAN_FM_MODULE, "is-cleared"); + + //ietf-netconf-notifications.yang + public static final String IETF_NETCONF_NOTIFICATIONS_NS = "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"; + public static final String IETF_NETCONF_NOTIFICATIONS_REVISION = "2012-02-06"; + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_MODULE = QName.create(IETF_NETCONF_NOTIFICATIONS_NS, IETF_NETCONF_NOTIFICATIONS_REVISION, "ietf-netconf-notifications").intern(); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-config-change"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIRMED_COMMIT = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-confirmed-commit"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_START = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-start"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_SESSION_END = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-session-end"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_NETCONF_CAPABILITY_CHANGE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "netconf-capability-change"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_CHANGEDBY = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "changed-by"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SERVERORUSER = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "server-or-user"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_EDITNODE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "edit"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_USERNAME = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "username"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_SESSIONID = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "session-id"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_OPERATION = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "operation"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_TARGET = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "target"); + public static final @NonNull QName IETF_NETCONF_NOTIFICATIONS_DATASTORE = QName.create(IETF_NETCONF_NOTIFICATIONS_MODULE, "datastore"); + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/startup/ORanNetworkElementFactory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/startup/ORanNetworkElementFactory.java new file mode 100644 index 000000000..afeac1932 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/startup/ORanNetworkElementFactory.java @@ -0,0 +1,59 @@ +/* + * ============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.oran.impl.startup; + +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.oran.impl.dom.ORanDOMNetworkElement; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom.ORanDeviceManagerQNames; +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.NetconfDomAccessor; +import org.opendaylight.yangtools.yang.common.QName; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ORanNetworkElementFactory implements NetworkElementFactory { + + private static final Logger log = LoggerFactory.getLogger(ORanNetworkElementFactory.class); + //Workaround + private static final QName OneCell = + QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern(); + + @Override + public Optional create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) { + Capabilities capabilites = accessor.getCapabilites(); + if (!capabilites.isSupportingNamespace(OneCell)) { + if (capabilites.isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)) { + log.info("Create device {} ", ORanDOMNetworkElement.class.getName()); + //Optional bindingAccessor = accessor.getNetconfBindingAccessor(); + Optional domAccessor = accessor.getNetconfDomAccessor(); + if (domAccessor.isPresent()) { + //return Optional.of(new ORanNetworkElement(bindingAccessor.get(), serviceProvider)); + return Optional.of(new ORanDOMNetworkElement(domAccessor.get(), serviceProvider)); + } + } + } + return Optional.empty(); + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml index 21b761ce2..b4cc2d927 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml @@ -31,7 +31,7 @@ interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/> diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ComponentHelper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ComponentHelper.java deleted file mode 100644 index 05c825fdc..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ComponentHelper.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * ============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.oran.impl; - -import java.util.Arrays; -import java.util.List; -import java.util.Scanner; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import org.json.JSONArray; -import org.json.JSONObject; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Fan; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Port; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Sensor; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.AdminState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.OperState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorStatus; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorValue; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorValueType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.ComponentBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.SensorData; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.SensorDataBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.State; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.StateBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; - -public class ComponentHelper { - - public static Component get(String name, String dateTimeString) { - DateAndTime dateTime = new DateAndTime(dateTimeString); - Uuid uuid = new Uuid("0Aabcdef-0abc-0cfD-0abC-0123456789AB"); - - ComponentBuilder componentBuilder = new ComponentBuilder(); - componentBuilder.setParent("Shelf").setName("Slot-0").setParentRelPos(0); - componentBuilder.setUuid(uuid); - componentBuilder.setContainsChild(Arrays.asList("Card-01A", "Card-01B")); - componentBuilder.setDescription("ORAN Network Element NO-456"); - componentBuilder.setXmlClass(TestHardwareClass.class); - componentBuilder.setMfgName("Nokia"); - componentBuilder.setMfgDate(dateTime); - return componentBuilder.build(); - } - - public static List getComponentList(String resourceName) { - try (Scanner scanner = new Scanner(ComponentHelper.class.getResourceAsStream(resourceName), "UTF-8")) { - String jsonString = scanner.useDelimiter("\\A").next(); - JSONObject jsonHardware = new JSONObject(jsonString).getJSONObject("hardware"); - JSONArray jsonComponentArray = jsonHardware.getJSONArray("component"); - return IntStream.range(0, jsonComponentArray.length()) - .mapToObj(idx -> ComponentHelper.get(jsonComponentArray.getJSONObject(idx))) - .collect(Collectors.toList()); - } - } - - public static Component get(JSONObject jsonComponent) { - ComponentBuilder componentBuilder = new ComponentBuilder(); - componentBuilder.setName(getString(jsonComponent, "name")); - componentBuilder.setParent(getString(jsonComponent, "parent")); - componentBuilder.setParentRelPos(getInteger(jsonComponent, "parent-rel-pos")); - componentBuilder.setAlias(getString(jsonComponent, "alias")); - componentBuilder.setXmlClass(getXmlClass(jsonComponent, "class")); - componentBuilder.setState(getState(jsonComponent, "state")); - componentBuilder.setDescription(getString(jsonComponent, "description")); - componentBuilder.setContainsChild(getStringArray(jsonComponent, "contains-child")); - componentBuilder.setSensorData(getSensorData(jsonComponent, "sensor-data")); - componentBuilder.setFirmwareRev(getString(jsonComponent, "firmware-rev")); - componentBuilder.setSerialNum(getString(jsonComponent, "serial-num")); - componentBuilder.setSoftwareRev(getString(jsonComponent, "software-rev")); - return componentBuilder.build(); - } - - // Private - - private static State getState(JSONObject jsonComponent, String key) { - if (jsonComponent.has(key)) { - JSONObject jsonState = jsonComponent.getJSONObject(key); - StateBuilder stateBuilder = new StateBuilder(); - stateBuilder.setOperState(getString(jsonState, "oper-state", value -> OperState.forName(value)).get()); - stateBuilder.setAdminState(getString(jsonState, "admin-state", value -> AdminState.forName(value)).get()); - return stateBuilder.build(); - } - return null; - } - - private static SensorData getSensorData(JSONObject jsonComponent, String key) { - if (jsonComponent.has(key)) { - JSONObject jsonSonsor = jsonComponent.getJSONObject(key); - SensorDataBuilder sensorBuilder = new SensorDataBuilder(); - sensorBuilder.setValueTimestamp(getString(jsonSonsor, "value-timestamp", value -> new DateAndTime(value))); - sensorBuilder.setValue(getInteger(jsonSonsor, "value", value -> new SensorValue(value))); - sensorBuilder - .setValueType(getString(jsonSonsor, "value-type", value -> SensorValueType.forName(value).get())); - sensorBuilder - .setOperStatus(getString(jsonSonsor, "oper-status", value -> SensorStatus.forName(value).get())); - return sensorBuilder.build(); - } - return null; - } - - // Get data types - private static Class getXmlClass(JSONObject jsonComponent, String key) { - return getString(jsonComponent, key, value -> { - switch (value) { - case "iana-hardware:sensor": - return Sensor.class; - case "iana-hardware:port": - return Port.class; - case "iana-hardware:fan": - return Fan.class; - default: - return HardwareClass.class; - } - }); - } - - private static String getString(JSONObject jsonObject, String key) { - return getString(jsonObject, key, value -> value); - } - - private static Integer getInteger(JSONObject jsonObject, String key) { - return getInteger(jsonObject, key, value -> value); - } - - private interface ConvertString { - T convert(String value); - } - - private static T getString(JSONObject jsonObject, String key, ConvertString convert) { - if (jsonObject.has(key)) { - String value = jsonObject.getString(key); - return convert.convert(value); - } - return null; - } - - private interface ConvertInteger { - T convert(int value); - } - - private static T getInteger(JSONObject jsonObject, String key, ConvertInteger convert) { - if (jsonObject.has(key)) { - int value = jsonObject.getInt(key); - return convert.convert(value); - } - return null; - } - - private static List getStringArray(JSONObject jsonComponent, String key) { - if (jsonComponent.has(key)) { - JSONArray stringArray = jsonComponent.getJSONArray(key); - return IntStream.range(0, stringArray.length()).mapToObj(idx -> stringArray.getString(idx)) - .collect(Collectors.toList()); - } - return null; - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestAlarmNotif.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestAlarmNotif.java deleted file mode 100644 index 4d10dd154..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestAlarmNotif.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * ============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.oran.impl; - -import java.util.Map; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.alarm.AffectedObjects; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.alarm.AffectedObjectsKey; -import org.opendaylight.yangtools.yang.binding.Augmentation; -import org.opendaylight.yangtools.yang.common.Uint16; - -public class TestAlarmNotif implements AlarmNotif { - - private static final Uint16 FAULT_ID = Uint16.valueOf(123); - - @Override - public > @Nullable A augmentation(Class augmentationType) { - return null; - } - - @Override - public @Nullable Uint16 getFaultId() { - return FAULT_ID; - } - - @Override - public @Nullable String getFaultSource() { - return "ORAN-RU-FH"; - } - - @Override - public @Nullable Map getAffectedObjects() { - return null; - } - - @Override - public @Nullable FaultSeverity getFaultSeverity() { - return FaultSeverity.CRITICAL; - } - - @Override - public @Nullable Boolean isIsCleared() { - return true; - } - - @Override - public @Nullable String getFaultText() { - return "CPRI Port Down"; - } - - @Override - public @Nullable DateAndTime getEventTime() { - return new DateAndTime("2021-03-23T18:19:42.326144Z"); - } - - @Override - public @NonNull Map>, Augmentation> augmentations() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Boolean getIsCleared() { - return true; - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestDeviceManagerORanImpl.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestDeviceManagerORanImpl.java deleted file mode 100644 index 98db4bbb6..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestDeviceManagerORanImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * ============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.oran.impl; - -import static org.mockito.Mockito.mock; -import java.io.IOException; -import org.junit.Before; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.DeviceManagerORanImpl; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService; - -public class TestDeviceManagerORanImpl { - DeviceManagerORanImpl devMgrOran; - - @Before - public void init() throws InterruptedException, IOException { - } - - // @Test - public void test() throws Exception { - devMgrOran = new DeviceManagerORanImpl(); - NetconfNetworkElementService netconfNetworkElementService = mock(NetconfNetworkElementService.class); - - try { - devMgrOran.setNetconfNetworkElementService(netconfNetworkElementService); - devMgrOran.init(); - } catch (Exception e) { - throw e; - } - } - - //@After - public void cleanUp() throws Exception { - devMgrOran.close(); - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestHardwareClass.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestHardwareClass.java deleted file mode 100644 index 64b6ac1ab..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestHardwareClass.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * ============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.oran.impl; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; - -public interface TestHardwareClass extends HardwareClass { - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanChangeNotificationListener.java deleted file mode 100644 index da4d830d7..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanChangeNotificationListener.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * ============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.oran.impl; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import java.time.Instant; -import java.util.Arrays; -import java.util.List; -import org.eclipse.jdt.annotation.NonNull; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -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.NotificationProxyParser; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -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.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; - -@RunWith(MockitoJUnitRunner.class) -public class TestORanChangeNotificationListener { - - private static final String NODEID = "node1"; - - @Mock - DeviceManagerServiceProvider serviceProvider; - @Mock - NetconfBindingAccessor netconfAccessor; - @Mock - DataProvider databaseService; - @Mock - VESCollectorService vesCollectorService; - @Mock - VESCollectorCfgService vesCfgService; - @Mock - NotificationProxyParser notifProxyParser; - @Mock - static NetconfConfigChange change; - - @Test - public void test() { - - when(vesCollectorService.getConfig()).thenReturn(vesCfgService); - when(netconfAccessor.getNodeId()).thenReturn(new NodeId(NODEID)); - when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); - when(serviceProvider.getDataProvider()).thenReturn(databaseService); - when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); - when(vesCollectorService.getNotificationProxyParser()).thenReturn(notifProxyParser); - - ORanChangeNotificationListener notifListener = - new ORanChangeNotificationListener(netconfAccessor, serviceProvider); - - Iterable pathArguments = Arrays.asList(new PathArgument() { - - @Override - public int compareTo(PathArgument arg0) { - return 0; - } - - @Override - public Class getType() { - return DataObject.class; - } - }); - InstanceIdentifier target = InstanceIdentifier.create(pathArguments); - NetconfConfigChange confChangeNotification = createNotification(EditOperationType.Create, target); - when(notifProxyParser.getTime(confChangeNotification)).thenReturn(Instant.now()); - notifListener.onNetconfConfigChange(confChangeNotification); - verify(databaseService).writeEventLog(any(EventlogEntity.class)); - } - - /** - * @param type - * @return - */ - private static NetconfConfigChange createNotification(EditOperationType type, InstanceIdentifier target) { - @SuppressWarnings("null") - final @NonNull List edits = Arrays.asList(new EditBuilder().setOperation(type).setTarget(target).build()); - when(change.nonnullEdit()).thenReturn(edits); - return change; - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanFaultNotificationListener.java deleted file mode 100644 index af2515c9a..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanFaultNotificationListener.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * ============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.oran.impl; - -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import com.google.common.io.Files; -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -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.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl; -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.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.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@RunWith(MockitoJUnitRunner.class) -public class TestORanFaultNotificationListener { - - private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class); - private static final String TESTFILENAME = "configFile.txt"; - - // @formatter:off - private static final String TESTCONFIG_CONTENT = "[VESCollector]\n" - + "VES_COLLECTOR_ENABLED=true\n" - + "VES_COLLECTOR_TLS_ENABLED=true\n" - + "VES_COLLECTOR_TRUST_ALL_CERTS=true\n" - + "VES_COLLECTOR_USERNAME=sample1\n" - + "VES_COLLECTOR_PASSWORD=sample1\n" - + "VES_COLLECTOR_IP=[2001:db8:1:1::1]\n" - + "VES_COLLECTOR_PORT=8443\n" - + "VES_COLLECTOR_VERSION=v7\n" - + "REPORTING_ENTITY_NAME=ONAP SDN-R\n" - + "EVENTLOG_MSG_DETAIL=SHORT\n" - + ""; - // @formatter:on - - @Mock NetconfBindingAccessor bindingAccessor; - @Mock DataProvider dataProvider; - @Mock FaultService faultService; - @Mock DeviceManagerServiceProvider serviceProvider; - @Mock WebsocketManagerService websocketManagerService; - @Mock DataProvider databaseService; - VESCollectorService vesCollectorService; - - @After - @Before - public void afterAndBefore() { - File f = new File(TESTFILENAME); - if (f.exists()) { - LOG.info("Remove {}", f.getAbsolutePath()); - f.delete(); - } - } - - @Test - public void test() throws IOException { - Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT); - vesCollectorService = - new VESCollectorServiceImpl(new ConfigurationFileRepresentation(TESTFILENAME)); - when(bindingAccessor.getNodeId()).thenReturn(new NodeId("nSky")); - ORanFaultNotificationListener faultListener = new ORanFaultNotificationListener(bindingAccessor, - vesCollectorService, faultService, websocketManagerService, databaseService); - faultListener.onAlarmNotif(new TestAlarmNotif()); - - verify(faultService).faultNotification(getFaultLog()); - } - - private FaultlogEntity getFaultLog() { - FaultlogBuilder faultAlarm = new FaultlogBuilder(); - faultAlarm.setNodeId("nSky"); - faultAlarm.setObjectId("ORAN-RU-FH"); - faultAlarm.setProblem("CPRI Port Down"); - faultAlarm.setSeverity(SeverityType.NonAlarmed); - faultAlarm.setCounter(1); - faultAlarm.setId("123"); - faultAlarm.setSourceType(SourceType.Netconf); - faultAlarm.setTimestamp(new DateAndTime("2021-03-23T18:19:42.326144Z")); - return faultAlarm.build(); - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java deleted file mode 100644 index af7664ab8..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElement.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * ============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.oran.impl; - -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.eclipse.jdt.annotation.NonNull; -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.ne.service.NetworkElement; -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.NotificationProxyParser; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -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.TransactionUtils; -import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT; -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 TestORanNetworkElement { - - private static final QName OneCell = - QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern(); - private static final @NonNull QName OnapSystem = QName.create("urn:onap:system", "2020-10-26", "onap-system").intern(); - private static String NODEIDSTRING = "nSky"; - private static NodeId nodeId = new NodeId(NODEIDSTRING); - - private static NetconfAccessor accessor; - private static DeviceManagerServiceProvider serviceProvider; - private static Capabilities capabilities; - private static TransactionUtils transactionUtils; - private static NetconfBindingAccessor bindingAccessor; - private static VESCollectorService vesCollectorService; - private static NotificationProxyParser notificationProxyParser; - private static VESCollectorCfgService vesCfgService; - private static WebsocketManagerService websocketManagerService; - - @BeforeClass - public static void init() throws InterruptedException, IOException { - capabilities = mock(Capabilities.class); - accessor = mock(NetconfAccessor.class); - serviceProvider = mock(DeviceManagerServiceProvider.class); - transactionUtils = mock(TransactionUtils.class); - bindingAccessor = mock(NetconfBindingAccessor.class); - vesCollectorService = mock(VESCollectorService.class); - notificationProxyParser = mock(NotificationProxyParser.class); - vesCfgService = mock(VESCollectorCfgService.class); - websocketManagerService = mock(WebsocketManagerService.class); - - when(accessor.getCapabilites()).thenReturn(capabilities); - when(accessor.getNodeId()).thenReturn(nodeId); - when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor)); - when(bindingAccessor.getCapabilites()).thenReturn(capabilities); - when(bindingAccessor.getTransactionUtils()).thenReturn(transactionUtils); - when(bindingAccessor.getNodeId()).thenReturn(nodeId); - when(vesCollectorService.getNotificationProxyParser()).thenReturn(notificationProxyParser); - - DataProvider dataProvider = mock(DataProvider.class); - FaultService faultService = mock(FaultService.class); - when(serviceProvider.getWebsocketService()).thenReturn(websocketManagerService); - when(serviceProvider.getFaultService()).thenReturn(faultService); - when(serviceProvider.getDataProvider()).thenReturn(dataProvider); - when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); - when(vesCollectorService.getConfig()).thenReturn(vesCfgService); - when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); - - } - - @Test - public void test() { - Optional oRanNe; - when(capabilities.isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(true); - when(capabilities.isSupportingNamespace(OneCell)).thenReturn(false); - when(capabilities.isSupportingNamespace(OnapSystem)).thenReturn(false); - - ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); - oRanNe = factory.create(accessor, serviceProvider); - assertTrue(factory.create(accessor, serviceProvider).isPresent()); - oRanNe.get().register(); - oRanNe.get().deregister(); - oRanNe.get().getAcessor(); - oRanNe.get().getDeviceType(); - assertEquals(oRanNe.get().getNodeId().getValue(), "nSky"); - } - - } diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElementFactory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElementFactory.java deleted file mode 100644 index fc382bfe2..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanNetworkElementFactory.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * ============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.oran.impl; - -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.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -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.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -public class TestORanNetworkElementFactory { - - private static String NODEIDSTRING = "nSky"; - - private static NetconfBindingAccessor accessor; - private static DeviceManagerServiceProvider serviceProvider; - private static Capabilities capabilities; - private static VESCollectorService vesCollectorService; - private static FaultService faultService; - private static WebsocketManagerService notificationService; - private static DataProvider databaseService; - - @BeforeClass - public static void init() throws InterruptedException, IOException { - NetconfBindingAccessor bindingAccessor = mock(NetconfBindingAccessor.class); - NodeId nodeId = new NodeId(NODEIDSTRING); - when(bindingAccessor.getTransactionUtils()).thenReturn(mock(TransactionUtils.class)); - when(bindingAccessor.getNodeId()).thenReturn(nodeId); - - capabilities = mock(Capabilities.class); - accessor = mock(NetconfBindingAccessor.class); - serviceProvider = mock(DeviceManagerServiceProvider.class); - vesCollectorService = mock(VESCollectorService.class); - faultService = mock(FaultService.class); - notificationService = mock(WebsocketManagerService.class); - databaseService = mock(DataProvider.class); - - when(accessor.getCapabilites()).thenReturn(capabilities); - when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor)); - when(serviceProvider.getFaultService()).thenReturn(faultService); - when(serviceProvider.getWebsocketService()).thenReturn(notificationService); - when(serviceProvider.getDataProvider()).thenReturn(databaseService); - when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); - - } - - @Test - public void testCreateORANHWComponent() throws Exception { - when(accessor.getCapabilites().isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(true); - ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); - assertTrue((factory.create(accessor, serviceProvider)).isPresent()); - } - - @Test - public void testCreateNone() throws Exception { - when(accessor.getCapabilites().isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(false); - ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); - assertTrue(!(factory.create(accessor, serviceProvider).isPresent())); - } - - @After - public void cleanUp() throws Exception { - - } -} - diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanRegistrationToVESpnfRegistration.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanRegistrationToVESpnfRegistration.java deleted file mode 100644 index 115765d46..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanRegistrationToVESpnfRegistration.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * ============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.oran.impl; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.ORanRegistrationToVESpnfRegistrationMapper; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host; -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.opendaylight.netconf.node.topology.rev150114.NetconfNode; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -@RunWith(MockitoJUnitRunner.class) -public class TestORanRegistrationToVESpnfRegistration { - - @Mock - NetconfAccessor netconfAccessor; - @Mock - VESCollectorService vesCollectorService; - @Mock - VESCollectorCfgService vesCfgService; - - private final int SEQUENCE_NO = 10; - - @Test - public void test() { - String dateTimeString = "2020-02-05T12:30:45.283Z"; - String name = "Slot-0"; - - NetconfNode testNetconfNode = mock(NetconfNode.class); - when(testNetconfNode.getHost()).thenReturn(new Host(new IpAddress(new Ipv4Address("10.10.10.10")))); - - when(netconfAccessor.getNodeId()).thenReturn(new NodeId("nSky")); - when(netconfAccessor.getNetconfNode()).thenReturn(testNetconfNode); - when(vesCollectorService.getConfig()).thenReturn(vesCfgService); - when(vesCfgService.getReportingEntityName()).thenReturn("SDN-R"); - Component testComponent = ComponentHelper.get(name, dateTimeString); - - ORanRegistrationToVESpnfRegistrationMapper mapper = new ORanRegistrationToVESpnfRegistrationMapper(netconfAccessor, vesCollectorService); - mapper.mapCommonEventHeader(testComponent); - mapper.mapPNFRegistrationFields(testComponent); - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanToInternalDataModel.java deleted file mode 100644 index e2e0eb812..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/TestORanToInternalDataModel.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * ============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.oran.impl; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import java.io.IOException; -import java.util.List; -import java.util.Optional; -import java.util.function.IntConsumer; -import java.util.stream.IntStream; -import org.eclipse.jdt.annotation.Nullable; -import org.junit.Test; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.ORanToInternalDataModel; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; -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; - -public class TestORanToInternalDataModel { - - private static final Logger LOG = LoggerFactory.getLogger(TestORanToInternalDataModel.class); - - NodeId nodeId = new NodeId("ORan-1000"); - - @Test - public void testInventory() { - String dateTimeString = "2020-02-05T12:30:45.283Z"; - String name = "Slot-0"; - - Component testComponent = ComponentHelper.get(name, dateTimeString); - Optional oInventory = ORanToInternalDataModel.getInternalEquipment(nodeId, testComponent, 0); - - assertTrue(oInventory.isPresent()); - Inventory inventory = oInventory.get(); - assertEquals(name, inventory.getUuid()); - assertEquals(dateTimeString, inventory.getDate()); - assertEquals(nodeId.getValue(), inventory.getNodeId()); - } - - @Test - public void testInventoryList() throws IOException, ClassNotFoundException { - List componentList = ComponentHelper.getComponentList("/Device-ietf-hardware-Output.json"); - List inventoryList = ORanToInternalDataModel.getInventoryList(nodeId, componentList); - //componentList.forEach(System.out::println); - assertEquals("All elements", 27, inventoryList.size()); - assertEquals("Fully parseable", componentList.size(), inventoryList.size()); - assertEquals("Treelevel always there", 0, - inventoryList.stream().filter(inventory -> inventory.getTreeLevel() == null).count()); - listAsTree(inventoryList); - } - - private void listAsTree(List inventoryList) { - //Walk through complete list and print parameters - IntConsumer action = level -> IntStream.range(0, inventoryList.size()) - .filter(idx -> inventoryList.get(idx).getTreeLevel().intValue() == level) - .forEach(idx2 -> printElements(idx2, level, inventoryList.get(idx2))); - //Walk trough 10 levels - IntStream.range(0, 10) - .forEach(action); - } - - private void printElements(int idx2, int level, Inventory inventory) { - System.out.println(level + ": " + inventory.getParentUuid() + " " - + inventory.getUuid()); - } - - @SuppressWarnings("unused") - private boolean compareLevel(int idx, List componentList, List inventoryList) { - @Nullable - Integer relPos = componentList.get(idx).getParentRelPos(); - @Nullable - Uint32 treeLevel = inventoryList.get(idx).getTreeLevel(); - LOG.warn("Treelevel relPos: {} treeLevel: {}", relPos, treeLevel); - if (relPos != null && treeLevel != null) { - return relPos == treeLevel.intValue(); - } - return false; - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java new file mode 100644 index 000000000..64cdd5f80 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java @@ -0,0 +1,179 @@ +/* + * ============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.oran.impl.binding; + +import java.util.Arrays; +import java.util.List; +import java.util.Scanner; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import org.json.JSONArray; +import org.json.JSONObject; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Fan; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Port; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Sensor; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.AdminState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.OperState; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorStatus; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorValue; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorValueType; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.ComponentBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.SensorData; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.SensorDataBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.State; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.StateBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; + +public class ComponentHelper { + + public static Component get(String name, String dateTimeString) { + DateAndTime dateTime = new DateAndTime(dateTimeString); + Uuid uuid = new Uuid("0Aabcdef-0abc-0cfD-0abC-0123456789AB"); + + ComponentBuilder componentBuilder = new ComponentBuilder(); + componentBuilder.setParent("Shelf").setName("Slot-0").setParentRelPos(0); + componentBuilder.setUuid(uuid); + componentBuilder.setContainsChild(Arrays.asList("Card-01A", "Card-01B")); + componentBuilder.setDescription("ORAN Network Element NO-456"); + componentBuilder.setXmlClass(TestHardwareClass.class); + componentBuilder.setMfgName("Nokia"); + componentBuilder.setMfgDate(dateTime); + return componentBuilder.build(); + } + + public static List getComponentList(String resourceName) { + try (Scanner scanner = new Scanner(ComponentHelper.class.getResourceAsStream(resourceName), "UTF-8")) { + String jsonString = scanner.useDelimiter("\\A").next(); + JSONObject jsonHardware = new JSONObject(jsonString).getJSONObject("hardware"); + JSONArray jsonComponentArray = jsonHardware.getJSONArray("component"); + return IntStream.range(0, jsonComponentArray.length()) + .mapToObj(idx -> ComponentHelper.get(jsonComponentArray.getJSONObject(idx))) + .collect(Collectors.toList()); + } + } + + public static Component get(JSONObject jsonComponent) { + ComponentBuilder componentBuilder = new ComponentBuilder(); + componentBuilder.setName(getString(jsonComponent, "name")); + componentBuilder.setParent(getString(jsonComponent, "parent")); + componentBuilder.setParentRelPos(getInteger(jsonComponent, "parent-rel-pos")); + componentBuilder.setAlias(getString(jsonComponent, "alias")); + componentBuilder.setXmlClass(getXmlClass(jsonComponent, "class")); + componentBuilder.setState(getState(jsonComponent, "state")); + componentBuilder.setDescription(getString(jsonComponent, "description")); + componentBuilder.setContainsChild(getStringArray(jsonComponent, "contains-child")); + componentBuilder.setSensorData(getSensorData(jsonComponent, "sensor-data")); + componentBuilder.setFirmwareRev(getString(jsonComponent, "firmware-rev")); + componentBuilder.setSerialNum(getString(jsonComponent, "serial-num")); + componentBuilder.setSoftwareRev(getString(jsonComponent, "software-rev")); + return componentBuilder.build(); + } + + // Private + + private static State getState(JSONObject jsonComponent, String key) { + if (jsonComponent.has(key)) { + JSONObject jsonState = jsonComponent.getJSONObject(key); + StateBuilder stateBuilder = new StateBuilder(); + stateBuilder.setOperState(getString(jsonState, "oper-state", value -> OperState.forName(value)).get()); + stateBuilder.setAdminState(getString(jsonState, "admin-state", value -> AdminState.forName(value)).get()); + return stateBuilder.build(); + } + return null; + } + + private static SensorData getSensorData(JSONObject jsonComponent, String key) { + if (jsonComponent.has(key)) { + JSONObject jsonSonsor = jsonComponent.getJSONObject(key); + SensorDataBuilder sensorBuilder = new SensorDataBuilder(); + sensorBuilder.setValueTimestamp(getString(jsonSonsor, "value-timestamp", value -> new DateAndTime(value))); + sensorBuilder.setValue(getInteger(jsonSonsor, "value", value -> new SensorValue(value))); + sensorBuilder + .setValueType(getString(jsonSonsor, "value-type", value -> SensorValueType.forName(value).get())); + sensorBuilder + .setOperStatus(getString(jsonSonsor, "oper-status", value -> SensorStatus.forName(value).get())); + return sensorBuilder.build(); + } + return null; + } + + // Get data types + private static Class getXmlClass(JSONObject jsonComponent, String key) { + return getString(jsonComponent, key, value -> { + switch (value) { + case "iana-hardware:sensor": + return Sensor.class; + case "iana-hardware:port": + return Port.class; + case "iana-hardware:fan": + return Fan.class; + default: + return HardwareClass.class; + } + }); + } + + private static String getString(JSONObject jsonObject, String key) { + return getString(jsonObject, key, value -> value); + } + + private static Integer getInteger(JSONObject jsonObject, String key) { + return getInteger(jsonObject, key, value -> value); + } + + private interface ConvertString { + T convert(String value); + } + + private static T getString(JSONObject jsonObject, String key, ConvertString convert) { + if (jsonObject.has(key)) { + String value = jsonObject.getString(key); + return convert.convert(value); + } + return null; + } + + private interface ConvertInteger { + T convert(int value); + } + + private static T getInteger(JSONObject jsonObject, String key, ConvertInteger convert) { + if (jsonObject.has(key)) { + int value = jsonObject.getInt(key); + return convert.convert(value); + } + return null; + } + + private static List getStringArray(JSONObject jsonComponent, String key) { + if (jsonComponent.has(key)) { + JSONArray stringArray = jsonComponent.getJSONArray(key); + return IntStream.range(0, stringArray.length()).mapToObj(idx -> stringArray.getString(idx)) + .collect(Collectors.toList()); + } + return null; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java new file mode 100644 index 000000000..883271d4c --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java @@ -0,0 +1,88 @@ +/* + * ============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.oran.impl.binding; + +import java.util.Map; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.alarm.AffectedObjects; +import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.alarm.AffectedObjectsKey; +import org.opendaylight.yangtools.yang.binding.Augmentation; +import org.opendaylight.yangtools.yang.common.Uint16; + +public class TestAlarmNotif implements AlarmNotif { + + private static final Uint16 FAULT_ID = Uint16.valueOf(123); + + @Override + public > @Nullable A augmentation(Class augmentationType) { + return null; + } + + @Override + public @Nullable Uint16 getFaultId() { + return FAULT_ID; + } + + @Override + public @Nullable String getFaultSource() { + return "ORAN-RU-FH"; + } + + @Override + public @Nullable Map getAffectedObjects() { + return null; + } + + @Override + public @Nullable FaultSeverity getFaultSeverity() { + return FaultSeverity.CRITICAL; + } + + public @Nullable Boolean isIsCleared() { + return true; + } + + @Override + public @Nullable String getFaultText() { + return "CPRI Port Down"; + } + + @Override + public @Nullable DateAndTime getEventTime() { + return new DateAndTime("2021-03-23T18:19:42.326144Z"); + } + + @Override + public @NonNull Map>, Augmentation> augmentations() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Boolean getIsCleared() { + return true; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java new file mode 100644 index 000000000..753e6c97f --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java @@ -0,0 +1,24 @@ +/* + * ============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.oran.impl.binding; + +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; + +public interface TestHardwareClass extends HardwareClass { + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java new file mode 100644 index 000000000..d8ea2664f --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java @@ -0,0 +1,111 @@ +/* + * ============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.oran.impl.binding; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import java.time.Instant; +import java.util.Arrays; +import java.util.List; +import org.eclipse.jdt.annotation.NonNull; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanChangeNotificationListener; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; +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.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; + +@RunWith(MockitoJUnitRunner.class) +public class TestORanChangeNotificationListener { + + private static final String NODEID = "node1"; + + @Mock + DeviceManagerServiceProvider serviceProvider; + @Mock + NetconfBindingAccessor netconfAccessor; + @Mock + DataProvider databaseService; + @Mock + VESCollectorService vesCollectorService; + @Mock + VESCollectorCfgService vesCfgService; + @Mock + NotificationProxyParser notifProxyParser; + @Mock + static NetconfConfigChange change; + + @Test + public void test() { + + when(vesCollectorService.getConfig()).thenReturn(vesCfgService); + when(netconfAccessor.getNodeId()).thenReturn(new NodeId(NODEID)); + when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); + when(serviceProvider.getDataProvider()).thenReturn(databaseService); + when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); + when(vesCollectorService.getNotificationProxyParser()).thenReturn(notifProxyParser); + + ORanChangeNotificationListener notifListener = + new ORanChangeNotificationListener(netconfAccessor, serviceProvider); + + Iterable pathArguments = Arrays.asList(new PathArgument() { + + @Override + public int compareTo(PathArgument arg0) { + return 0; + } + + @Override + public Class getType() { + return DataObject.class; + } + }); + InstanceIdentifier target = InstanceIdentifier.create(pathArguments); + NetconfConfigChange confChangeNotification = createNotification(EditOperationType.Create, target); + when(notifProxyParser.getTime(confChangeNotification)).thenReturn(Instant.now()); + notifListener.onNetconfConfigChange(confChangeNotification); + verify(databaseService).writeEventLog(any(EventlogEntity.class)); + } + + /** + * @param type + * @return + */ + private static NetconfConfigChange createNotification(EditOperationType type, InstanceIdentifier target) { + @SuppressWarnings("null") + final @NonNull List edits = Arrays.asList(new EditBuilder().setOperation(type).setTarget(target).build()); + when(change.nonnullEdit()).thenReturn(edits); + return change; + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java new file mode 100644 index 000000000..e26af989e --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java @@ -0,0 +1,115 @@ +/* + * ============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.oran.impl.binding; + +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import com.google.common.io.Files; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +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.oran.impl.binding.ORanFaultNotificationListener; +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.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl; +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.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.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@RunWith(MockitoJUnitRunner.class) +public class TestORanFaultNotificationListener { + + private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class); + private static final String TESTFILENAME = "configFile.txt"; + + // @formatter:off + private static final String TESTCONFIG_CONTENT = "[VESCollector]\n" + + "VES_COLLECTOR_ENABLED=true\n" + + "VES_COLLECTOR_TLS_ENABLED=true\n" + + "VES_COLLECTOR_TRUST_ALL_CERTS=true\n" + + "VES_COLLECTOR_USERNAME=sample1\n" + + "VES_COLLECTOR_PASSWORD=sample1\n" + + "VES_COLLECTOR_IP=[2001:db8:1:1::1]\n" + + "VES_COLLECTOR_PORT=8443\n" + + "VES_COLLECTOR_VERSION=v7\n" + + "REPORTING_ENTITY_NAME=ONAP SDN-R\n" + + "EVENTLOG_MSG_DETAIL=SHORT\n" + + ""; + // @formatter:on + + @Mock NetconfBindingAccessor bindingAccessor; + @Mock DataProvider dataProvider; + @Mock FaultService faultService; + @Mock DeviceManagerServiceProvider serviceProvider; + @Mock WebsocketManagerService websocketManagerService; + @Mock DataProvider databaseService; + VESCollectorService vesCollectorService; + + @After + @Before + public void afterAndBefore() { + File f = new File(TESTFILENAME); + if (f.exists()) { + LOG.info("Remove {}", f.getAbsolutePath()); + f.delete(); + } + } + + @Test + public void test() throws IOException { + Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT); + vesCollectorService = + new VESCollectorServiceImpl(new ConfigurationFileRepresentation(TESTFILENAME)); + when(bindingAccessor.getNodeId()).thenReturn(new NodeId("nSky")); + ORanFaultNotificationListener faultListener = new ORanFaultNotificationListener(bindingAccessor, + vesCollectorService, faultService, websocketManagerService, databaseService); + faultListener.onAlarmNotif(new TestAlarmNotif()); + + verify(faultService).faultNotification(getFaultLog()); + } + + private FaultlogEntity getFaultLog() { + FaultlogBuilder faultAlarm = new FaultlogBuilder(); + faultAlarm.setNodeId("nSky"); + faultAlarm.setObjectId("ORAN-RU-FH"); + faultAlarm.setProblem("CPRI Port Down"); + faultAlarm.setSeverity(SeverityType.NonAlarmed); + faultAlarm.setCounter(1); + faultAlarm.setId("123"); + faultAlarm.setSourceType(SourceType.Netconf); + faultAlarm.setTimestamp(new DateAndTime("2021-03-23T18:19:42.326144Z")); + return faultAlarm.build(); + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java new file mode 100644 index 000000000..3de211013 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java @@ -0,0 +1,115 @@ +/* + * ============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.oran.impl.binding; + +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.eclipse.jdt.annotation.NonNull; +import org.junit.BeforeClass; +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.oran.impl.startup.ORanNetworkElementFactory; +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.NotificationProxyParser; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +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.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT; +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 TestORanNetworkElement { + + private static final QName OneCell = + QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern(); + private static final @NonNull QName OnapSystem = QName.create("urn:onap:system", "2020-10-26", "onap-system").intern(); + private static String NODEIDSTRING = "nSky"; + private static NodeId nodeId = new NodeId(NODEIDSTRING); + + private static NetconfAccessor accessor; + private static DeviceManagerServiceProvider serviceProvider; + private static Capabilities capabilities; + private static TransactionUtils transactionUtils; + private static NetconfBindingAccessor bindingAccessor; + private static NetconfDomAccessor domAccessor; + private static VESCollectorService vesCollectorService; + private static NotificationProxyParser notificationProxyParser; + private static VESCollectorCfgService vesCfgService; + private static WebsocketManagerService websocketManagerService; + + @BeforeClass + public static void init() throws InterruptedException, IOException { + capabilities = mock(Capabilities.class); + accessor = mock(NetconfAccessor.class); + serviceProvider = mock(DeviceManagerServiceProvider.class); + transactionUtils = mock(TransactionUtils.class); + bindingAccessor = mock(NetconfBindingAccessor.class); + domAccessor = mock(NetconfDomAccessor.class); + vesCollectorService = mock(VESCollectorService.class); + notificationProxyParser = mock(NotificationProxyParser.class); + vesCfgService = mock(VESCollectorCfgService.class); + websocketManagerService = mock(WebsocketManagerService.class); + + when(accessor.getCapabilites()).thenReturn(capabilities); + when(accessor.getNodeId()).thenReturn(nodeId); + when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor)); + when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor)); + when(bindingAccessor.getCapabilites()).thenReturn(capabilities); + when(bindingAccessor.getTransactionUtils()).thenReturn(transactionUtils); + when(bindingAccessor.getNodeId()).thenReturn(nodeId); + when(vesCollectorService.getNotificationProxyParser()).thenReturn(notificationProxyParser); + + DataProvider dataProvider = mock(DataProvider.class); + FaultService faultService = mock(FaultService.class); + when(serviceProvider.getWebsocketService()).thenReturn(websocketManagerService); + when(serviceProvider.getFaultService()).thenReturn(faultService); + when(serviceProvider.getDataProvider()).thenReturn(dataProvider); + when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); + when(vesCollectorService.getConfig()).thenReturn(vesCfgService); + when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); + + } + + //@Test + public void test() { + Optional oRanNe; + when(capabilities.isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(true); + when(capabilities.isSupportingNamespace(OneCell)).thenReturn(false); + when(capabilities.isSupportingNamespace(OnapSystem)).thenReturn(false); + + ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); + oRanNe = factory.create(accessor, serviceProvider); + assertTrue(factory.create(accessor, serviceProvider).isPresent()); + oRanNe.get().register(); + oRanNe.get().deregister(); + oRanNe.get().getAcessor(); + oRanNe.get().getDeviceType(); + assertEquals(oRanNe.get().getNodeId().getValue(), "nSky"); + } + + } diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java new file mode 100644 index 000000000..a4470d335 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java @@ -0,0 +1,96 @@ +/* + * ============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.oran.impl.binding; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import java.io.IOException; +import java.util.List; +import java.util.Optional; +import java.util.function.IntConsumer; +import java.util.stream.IntStream; +import org.eclipse.jdt.annotation.Nullable; +import org.junit.Test; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; +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; + +public class TestORanToInternalDataModel { + + private static final Logger LOG = LoggerFactory.getLogger(TestORanToInternalDataModel.class); + + NodeId nodeId = new NodeId("ORan-1000"); + + @Test + public void testInventory() { + String dateTimeString = "2020-02-05T12:30:45.283Z"; + String name = "Slot-0"; + + Component testComponent = ComponentHelper.get(name, dateTimeString); + Optional oInventory = ORanToInternalDataModel.getInternalEquipment(nodeId, testComponent, 0); + + assertTrue(oInventory.isPresent()); + Inventory inventory = oInventory.get(); + assertEquals(name, inventory.getUuid()); + assertEquals(dateTimeString, inventory.getDate()); + assertEquals(nodeId.getValue(), inventory.getNodeId()); + } + + @Test + public void testInventoryList() throws IOException, ClassNotFoundException { + List componentList = ComponentHelper.getComponentList("/Device-ietf-hardware-Output.json"); + List inventoryList = ORanToInternalDataModel.getInventoryList(nodeId, componentList); + //componentList.forEach(System.out::println); + assertEquals("All elements", 27, inventoryList.size()); + assertEquals("Fully parseable", componentList.size(), inventoryList.size()); + assertEquals("Treelevel always there", 0, + inventoryList.stream().filter(inventory -> inventory.getTreeLevel() == null).count()); + listAsTree(inventoryList); + } + + private void listAsTree(List inventoryList) { + //Walk through complete list and print parameters + IntConsumer action = level -> IntStream.range(0, inventoryList.size()) + .filter(idx -> inventoryList.get(idx).getTreeLevel().intValue() == level) + .forEach(idx2 -> printElements(idx2, level, inventoryList.get(idx2))); + //Walk trough 10 levels + IntStream.range(0, 10) + .forEach(action); + } + + private void printElements(int idx2, int level, Inventory inventory) { + System.out.println(level + ": " + inventory.getParentUuid() + " " + + inventory.getUuid()); + } + + @SuppressWarnings("unused") + private boolean compareLevel(int idx, List componentList, List inventoryList) { + @Nullable + Integer relPos = componentList.get(idx).getParentRelPos(); + @Nullable + Uint32 treeLevel = inventoryList.get(idx).getTreeLevel(); + LOG.warn("Treelevel relPos: {} treeLevel: {}", relPos, treeLevel); + if (relPos != null && treeLevel != null) { + return relPos == treeLevel.intValue(); + } + return false; + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java new file mode 100644 index 000000000..f3932bc41 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java @@ -0,0 +1,52 @@ +/* + * ============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.oran.impl.dom; + +import static org.mockito.Mockito.mock; +import java.io.IOException; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.DeviceManagerORanImpl; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService; + +public class TestDeviceManagerORanImpl { + DeviceManagerORanImpl devMgrOran; + + @Before + public void init() throws InterruptedException, IOException { + } + + @Test + public void test() throws Exception { + devMgrOran = new DeviceManagerORanImpl(); + NetconfNetworkElementService netconfNetworkElementService = mock(NetconfNetworkElementService.class); + + try { + devMgrOran.setNetconfNetworkElementService(netconfNetworkElementService); + devMgrOran.init(); + } catch (Exception e) { + throw e; + } + } + + @After + public void cleanUp() throws Exception { + devMgrOran.close(); + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java new file mode 100644 index 000000000..337996a3d --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java @@ -0,0 +1,250 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +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.util.xml.UntrustedXML; +import org.opendaylight.yangtools.yang.binding.CodeHelpers; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.XMLNamespace; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.SAXException; + +public class TestORANInventory { + + private static final Logger LOG = LoggerFactory.getLogger(TestORANInventory.class); + private static final QNameModule IETF_HARDWARE_MODULE = QNameModule + .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); + private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware"); + private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component"); + private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name"); + private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class"); + private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String + private static final QName HW_COMPONENT_LIST_PARENT = QName.create(IETF_HARDWARE_MODULE, "parent"); // leaf:leafref + private static final QName HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HARDWARE_MODULE, "contains-child"); // leaf-list:leafref + private static final QName HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HARDWARE_MODULE, "hardware-rev"); // leaf:String + private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String + private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HARDWARE_MODULE, "mfg-date"); // leaf:yang:date-and-time + + private static EffectiveModelContext schemaContext; + private static @NonNull Inference hwContainerSchema; + + @BeforeClass + public static void setup() throws IOException { + schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); + hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER); + System.out.println("URL is - " + TestORANReadHardware.class.getResource("/")); + } + + @AfterClass + public static void cleanup() { + schemaContext = null; + hwContainerSchema = null; + } + + @Test + public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { + + final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml"); + + /* + * final XMLInputFactory factory = XMLInputFactory.newInstance(); + * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); + */ + final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + + final NormalizedNodeResult result = new NormalizedNodeResult(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); + xmlParser.parse(reader); + + xmlParser.flush(); + xmlParser.close(); + + NormalizedNode transformedInput = result.getResult(); + NodeId nodeId = new NodeId("nSky"); + getInventoryList(nodeId, transformedInput); + } + + public static List getInventoryList(NodeId nodeId, NormalizedNode hwData) { + + List inventoryResultList = new ArrayList(); + ContainerNode hwContainer = (ContainerNode) hwData; + MapNode componentMap = (MapNode) hwContainer.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST)); + Collection componentMapEntries = componentMap.body(); + + for (MapEntryNode componentMapEntryNode : getRootComponents(componentMapEntries)) { + inventoryResultList = recurseGetInventory(nodeId, componentMapEntryNode, componentMapEntries, 0, + inventoryResultList); + } + // Verify if result is complete + if (componentMapEntries.size() != inventoryResultList.size()) { + LOG.warn( + "Not all data were written to the Inventory. Potential entries with missing " + + "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}", + nodeId.getValue(), componentMapEntries.size(), inventoryResultList.size()); + } + return inventoryResultList; + } + + private static List recurseGetInventory(NodeId nodeId, MapEntryNode component, + Collection componentList, int treeLevel, List inventoryResultList) { + LOG.info("Tree level = {}", treeLevel); + // Add element to list, if conversion successfull + Optional oInventory = getInternalEquipment(nodeId, component, treeLevel); + if (oInventory.isPresent()) { + inventoryResultList.add(oInventory.get()); + } + // Walk through list of child keys and add to list + for (String childUuid : CodeHelpers + .nonnull(ORanDMDOMUtility.getLeafListValue(component, HW_COMPONENT_LIST_CONTAINS_CHILD))) { + LOG.info("Calling recursively- component is {}", childUuid); + for (MapEntryNode c : getComponentsByName(childUuid, componentList)) { + inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList); + } + } + return inventoryResultList; + } + + public static List getRootComponents(Collection componentMapEntries) { + List resultList = new ArrayList<>(); + for (MapEntryNode componentMapEntryNode : componentMapEntries) { + if (ORanDMDOMUtility.getLeafValue(componentMapEntryNode, HW_COMPONENT_LIST_PARENT) == null) { // Root + // elements + // do not + // have a + // parent + resultList.add(componentMapEntryNode); + } + } + return resultList; + } + + private static List getComponentsByName(String name, Collection componentList) { + List resultList = new ArrayList<>(); + for (MapEntryNode c : componentList) { + if (name.equals(ORanDMDOMUtility.getKeyValue(c))) { // <-- Component list is flat search for child's of name + resultList.add(c); + } + } + return resultList; + } + + public static Optional getInternalEquipment(NodeId nodeId, MapEntryNode component, int treeLevel) { + + // Make sure that expected data are not null + Objects.requireNonNull(nodeId); + Objects.requireNonNull(component); + + // Read manadatory data + + @Nullable + String nodeIdString = nodeId.getValue(); + @Nullable + String uuid = ORanDMDOMUtility.getKeyValue(component); + @Nullable + String idParent = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_PARENT); + @Nullable + String uuidParent = idParent != null ? idParent : uuid; // <- Passt nicht + LOG.info("Dump = {}, {}, {}, {}", uuidParent, uuid, treeLevel, nodeIdString); + // do consistency check if all mandatory parameters are there + if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) { + LOG.info("Creating new instance of Inventory"); + // Build output data + + InventoryBuilder inventoryBuilder = new InventoryBuilder(); + + // General assumed as mandatory + inventoryBuilder.setNodeId(nodeIdString); + inventoryBuilder.setUuid(uuid); + inventoryBuilder.setParentUuid(uuidParent); + inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel)); + + // -- String list with ids of holders (optional) + inventoryBuilder + .setContainedHolder(ORanDMDOMUtility.getLeafListValue(component, HW_COMPONENT_LIST_CONTAINS_CHILD)); + + // -- Manufacturer related things (optional) + @Nullable + String mfgName = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MFG_NAME); + inventoryBuilder.setManufacturerName(mfgName); + inventoryBuilder.setManufacturerIdentifier(mfgName); + + // Equipment type (optional) + inventoryBuilder.setDescription(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_DESC)); + inventoryBuilder.setModelIdentifier(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MODEL_NAME)); + + inventoryBuilder.setPartTypeId(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_CLASS)); + + inventoryBuilder.setTypeName(ORanDMDOMUtility.getKeyValue(component)); + inventoryBuilder.setVersion(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_HW_REV)); + + // Equipment instance (optional) + @Nullable + String mfgDate = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MFG_DATE); + if (mfgDate != null) { + inventoryBuilder.setDate(mfgDate); + } + inventoryBuilder.setSerial(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_SER_NUM)); + + return Optional.of(inventoryBuilder.build()); + } + return Optional.empty(); + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java new file mode 100644 index 000000000..b2da8e61f --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java @@ -0,0 +1,383 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import com.google.common.base.VerifyException; +import com.google.common.collect.ImmutableList; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.opendaylight.yangtools.util.xml.UntrustedXML; +import org.opendaylight.yangtools.yang.binding.CodeHelpers; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; +import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; +import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; +//import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; //Yangtool 8.0 +import org.xml.sax.SAXException; + +public class TestORANReadHardware { + + /* + * private static final QNameModule IETF_HARDWARE_MODULE = + * QNameModule.create(XMLNamespace.of( + * "urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); + */ // Applicable for Yangtools 8.0 + // private static final URI IETF_HARDWARE_URI = + // URI.create("urn:ietf:params:xml:ns:yang:ietf-hardware"); + private static final QNameModule IETF_HARDWARE_MODULE = QNameModule + .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); + private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware"); + private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component"); + private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name"); + private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class"); + private static final QName HW_COMPONENT_LIST_PHYSICAL_INDEX = QName.create(IETF_HARDWARE_MODULE, "physical-index"); // leaf:int32 + private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String + private static final QName HW_COMPONENT_LIST_PARENT = QName.create(IETF_HARDWARE_MODULE, "parent"); // leaf:leafref + private static final QName HW_COMPONENT_LIST_PARENT_REL_POS = QName.create(IETF_HARDWARE_MODULE, "parent-rel-pos"); // leaf:int32 + private static final QName HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HARDWARE_MODULE, "contains-child"); // leaf-list:leafref + private static final QName HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HARDWARE_MODULE, "hardware-rev"); // leaf:String + private static final QName HW_COMPONENT_LIST_FW_REV = QName.create(IETF_HARDWARE_MODULE, "firmware-rev"); // leaf:String + private static final QName HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HARDWARE_MODULE, "software-rev"); // leaf:String + private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String + private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HARDWARE_MODULE, "alias"); // leaf:String + private static final QName HW_COMPONENT_LIST_ASSET_ID = QName.create(IETF_HARDWARE_MODULE, "asset-id"); // leaf:String + private static final QName HW_COMPONENT_LIST_IS_FRU = QName.create(IETF_HARDWARE_MODULE, "is-fru"); // leaf:boolean + private static final QName HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HARDWARE_MODULE, "mfg-date"); // leaf:yang:date-and-time + private static final QName HW_COMPONENT_LIST_URI = QName.create(IETF_HARDWARE_MODULE, "uri"); // leaf-list:inet:uri + private static final QName HW_COMPONENT_LIST_UUID = QName.create(IETF_HARDWARE_MODULE, "uuid"); // leaf:yang:uuid + private static final QName HW_COMPONENT_LIST_STATE = QName.create(IETF_HARDWARE_MODULE, "state"); // leaf:yang:uuid + private static final QName HW_COMPONENT_LIST_ADMIN_STATE = QName.create(IETF_HARDWARE_MODULE, "admin-state"); // leaf:yang:uuid + private static final QName HW_COMPONENT_LIST_OPER_STATE = QName.create(IETF_HARDWARE_MODULE, "oper-state"); // leaf:yang:uuid + + private static EffectiveModelContext schemaContext; + private static Inference hwContainerSchema; + + @BeforeClass + public static void setup() throws IOException { + schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); + hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER); + System.out.println("URL is - " + TestORANReadHardware.class.getResource("/")); + } + + @AfterClass + public static void cleanup() { + schemaContext = null; + hwContainerSchema = null; + } + + @Test + public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { + + final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml"); + + /* + * final XMLInputFactory factory = XMLInputFactory.newInstance(); + * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); + */ + final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + + final NormalizedNodeResult result = new NormalizedNodeResult(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); + xmlParser.parse(reader); + + xmlParser.flush(); + xmlParser.close(); + + NormalizedNode transformedInput = result.getResult(); + System.out.println("Hardware Data = " + transformedInput); + + ContainerNode hwContainer = (ContainerNode) transformedInput; + MapNode containerMap = (MapNode) hwContainer.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST)); + Collection containerMapEntries = containerMap.body(); + for (MapEntryNode mapEntryNode : containerMapEntries) { + NodeIdentifierWithPredicates componentKey = mapEntryNode.getIdentifier(); // list key + System.out.println("Key Name is - " + componentKey.keySet()); + System.out.println("Key Value is - " + componentKey.getValue(HW_COMPONENT_LIST_KEY)); + + LeafNode classField = (LeafNode) mapEntryNode + .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CLASS)); + System.out.println("Class = " + classField.getIdentifier().getNodeType().getLocalName() + " Value = " + + classField.body().toString()); + Object obj = classField.body(); + System.out.println(obj.getClass()); + if (obj instanceof QName) { + System.out.println("This is of type QName"); + } + LeafNode aliasLeaf = (LeafNode) mapEntryNode + .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ALIAS)); + // System.out.println("Alias = " + aliasLeaf.getValue().toString()); + System.out.println("Alias = " + getLeafValue(mapEntryNode, HW_COMPONENT_LIST_ALIAS)); + + try { + DataContainerChild childSet = mapEntryNode + .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CONTAINS_CHILD)); + + Collection childEntry = (Collection) childSet.body(); + Iterator childEntryItr = childEntry.iterator(); + while (childEntryItr.hasNext()) { + LeafSetEntryNode childEntryNode = (LeafSetEntryNode) childEntryItr.next(); + System.out.println("Child Node - " + childEntryNode.body()); + } + } catch (VerifyException ve) { + // System.out.println("Child not not exist"); + } + + try { + LeafSetNode containsChildSet = (LeafSetNode) mapEntryNode + .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CONTAINS_CHILD)); + Collection containsChildSetEntry = containsChildSet.body(); + Iterator childItr = containsChildSetEntry.iterator(); + while (childItr.hasNext()) { + LeafSetEntryNode childEntryNode = (LeafSetEntryNode) childItr.next(); + System.out.println("Child Node - " + childEntryNode.body()); + } + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + + try { + System.out + .println(CodeHelpers.nonnull(getLeafListValue(mapEntryNode, HW_COMPONENT_LIST_CONTAINS_CHILD))); + for (String childUuid : CodeHelpers + .nonnull(getLeafListValue(mapEntryNode, HW_COMPONENT_LIST_CONTAINS_CHILD))) { + System.out.println("Calling recursively - " + childUuid); + } + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String description = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_DESC)) + .body(); + System.out.println("Description = " + description); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String serialNum = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_SER_NUM)) + .body(); + System.out.println("Serial Number = " + serialNum); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String firmwareRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_FW_REV)) + .body(); + System.out.println("Firmware Rev = " + firmwareRev); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String swRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_SW_REV)).body(); + System.out.println("Software Rev = " + swRev); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String modelName = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MODEL_NAME)) + .body(); + System.out.println("Model Name = " + modelName); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + Integer parentRelPos = (Integer) mapEntryNode + .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_PARENT_REL_POS)).body(); + System.out.println("Parent Rel Pos = " + (parentRelPos != null ? parentRelPos.intValue() : null)); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String parent = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_PARENT)) + .body(); + System.out.println("Parent = " + parent); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String hwRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_HW_REV)).body(); + System.out.println("Hardware Revision = " + hwRev); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String mfgName = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME)) + .body(); + System.out.println("Manufacturer Name = " + mfgName); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + DataContainerChild mfgNameOpt = mapEntryNode + .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME)); + if (mfgNameOpt != null) { + System.out.println("Mfg Name - " + (String) mfgNameOpt.body()); + } + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String assetID = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ASSET_ID)) + .body(); + System.out.println("Asset ID = " + assetID); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String mfgDate = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_DATE)) + .body(); + System.out.println("Mfg Date = " + mfgDate); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String uri = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_URI)).body(); + System.out.println("URI = " + uri); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + Boolean isFRU = (Boolean) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_IS_FRU)) + .body(); + System.out.println("IS FRU = " + isFRU); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + try { + String uuid = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_UUID)).body() + .toString(); + System.out.println("UUID = " + uuid); + } catch (VerifyException | NoSuchElementException e) { + // System.out.println("Child not not exist"); + } + + try { + ContainerNode state = (ContainerNode) mapEntryNode + .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_STATE)); + String adminState = (String) state.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ADMIN_STATE)) + .body().toString(); + System.out.println("Admin State = " + adminState); + String operState = (String) state.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_OPER_STATE)).body() + .toString(); + + System.out.println("Oper State = " + operState); + } catch (VerifyException | NoSuchElementException e) { + System.out.println("Child not not exist"); + } + + System.out.println("********************************************"); + + } + // assertNotNull(transformedInput); + + } + + public static String getLeafValue(DataContainerNode componentEntry, QName leafQName) { + NodeIdentifier leafNodeIdentifier = new NodeIdentifier(leafQName); + try { + LeafNode optLeafNode = (LeafNode) componentEntry.getChildByArg(leafNodeIdentifier); + if (optLeafNode.body() instanceof QName) { + System.out.println("Leaf is of type QName"); + } + return optLeafNode.body().toString(); + } catch (NoSuchElementException nsee) { + System.out.println("Leaf with QName {} not found" + leafQName.toString()); + return null; + } + } + + public static List getLeafListValue(DataContainerNode componentEntry, QName leafListQName) { + if (componentEntry instanceof MapEntryNode) { + List containsChildList = new ArrayList(); + DataContainerChild childSet = componentEntry.getChildByArg(new NodeIdentifier(leafListQName)); + if (childSet != null) { + Collection childEntry = (Collection) childSet.body(); + Iterator childEntryItr = childEntry.iterator(); + while (childEntryItr.hasNext()) { + LeafSetEntryNode childEntryNode = (LeafSetEntryNode) childEntryItr.next(); + containsChildList.add(childEntryNode.body().toString()); + } + } + return containsChildList; + } + return null; + } + + @Test + public void testIetfHardwareFromNormalizedNode() { + buildIetfHardwareContainerNode(); + } + + private static NormalizedNode buildIetfHardwareContainerNode() { + MapNode componentMap = Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST)) + .withChild(Builders.mapEntryBuilder() + .withNodeIdentifier( + NodeIdentifierWithPredicates.of(HW_COMPONENT_LIST, HW_COMPONENT_LIST_KEY, "chassis")) + .withChild( + Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_CLASS)) + .withValue("ianahw:chassis").build()) + .withChild(Builders.leafBuilder() + .withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_PHYSICAL_INDEX)).withValue(1) + .build()) + .build()) + .build(); + return componentMap; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java new file mode 100644 index 000000000..8abfb2d3e --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java @@ -0,0 +1,164 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import com.google.common.io.Files; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.time.Instant; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +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.oran.impl.binding.TestORanFaultNotificationListener; +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.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@RunWith(MockitoJUnitRunner.class) +public class TestORanDOMFaultNotificationListener { + private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class); + private static final String TESTFILENAME = "configFile.txt"; + + // @formatter:off + private static final String TESTCONFIG_CONTENT = "[VESCollector]\n" + + "VES_COLLECTOR_ENABLED=true\n" + + "VES_COLLECTOR_TLS_ENABLED=true\n" + + "VES_COLLECTOR_TRUST_ALL_CERTS=true\n" + + "VES_COLLECTOR_USERNAME=sample1\n" + + "VES_COLLECTOR_PASSWORD=sample1\n" + + "VES_COLLECTOR_IP=[2001:db8:1:1::1]\n" + + "VES_COLLECTOR_PORT=8443\n" + + "VES_COLLECTOR_VERSION=v7\n" + + "REPORTING_ENTITY_NAME=ONAP SDN-R\n" + + "EVENTLOG_MSG_DETAIL=SHORT\n" + + ""; + // @formatter:on + + @Mock + NetconfDomAccessor domAccessor; + @Mock + DataProvider dataProvider; + @Mock + FaultService faultService; + @Mock + DeviceManagerServiceProvider serviceProvider; + @Mock + WebsocketManagerService websocketManagerService; + @Mock + DataProvider databaseService; + VESCollectorService vesCollectorService; + + @After + @Before + public void afterAndBefore() { + File f = new File(TESTFILENAME); + if (f.exists()) { + LOG.info("Remove {}", f.getAbsolutePath()); + f.delete(); + } + } + + @Test + public void test() throws IOException { + Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT); + vesCollectorService = new VESCollectorServiceImpl(new ConfigurationFileRepresentation(TESTFILENAME)); + when(domAccessor.getNodeId()).thenReturn(new NodeId("nSky")); + ORanDOMFaultNotificationListener faultListener = new ORanDOMFaultNotificationListener(domAccessor, + vesCollectorService, faultService, websocketManagerService, databaseService); + NetconfDeviceNotification ndn = new NetconfDeviceNotification(createORANDOMFault(), Instant.now()); + faultListener.onNotification(ndn); + + verify(faultService).faultNotification(any(FaultlogEntity.class)); + } + + public static ContainerNode createORANDOMFault() { + final QName fault_id = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-id"); + final QName fault_source = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-source"); + final QName fault_severity = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-severity"); + final QName is_cleared = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "is-cleared"); + final QName fault_text = QName.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF, "fault-text"); + return Builders.containerBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF)) + .withChild(ImmutableNodes.leafNode(fault_id, "47")) + .withChild(ImmutableNodes.leafNode(fault_source, "Slot-2-Port-B")) + .withChild(ImmutableNodes.leafNode(fault_severity, "MAJOR")) + .withChild(ImmutableNodes.leafNode(is_cleared, "true")) + .withChild(ImmutableNodes.leafNode(fault_text, "CPRI Port Down")).build(); + } + + + public static class NetconfDeviceNotification implements DOMNotification, DOMEvent { + private final ContainerNode content; + private final Absolute schemaPath; + private final Instant eventTime; + + NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = Absolute.of(content.getIdentifier().getNodeType()); + } + + NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = schemaPath; + } + + @Override + public Absolute getType() { + return schemaPath; + } + + @Override + public ContainerNode getBody() { + return content; + } + + @Override + public Instant getEventInstant() { + return eventTime; + } + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java new file mode 100644 index 000000000..c75f4f5a1 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java @@ -0,0 +1,111 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +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.eclipse.jdt.annotation.NonNull; +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.ne.service.NetworkElement; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory; +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.NotificationProxyParser; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +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.NetconfDomAccessor; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +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 TestORanDOMNetworkElement { + + private static final QName OneCell = + QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern(); + private static final @NonNull QName OnapSystem = + QName.create("urn:onap:system", "2020-10-26", "onap-system").intern(); + private static String NODEIDSTRING = "nSky"; + private static NodeId nodeId = new NodeId(NODEIDSTRING); + + private static NetconfAccessor accessor; + private static DeviceManagerServiceProvider serviceProvider; + private static Capabilities capabilities; + private static NetconfDomAccessor domAccessor; + private static VESCollectorService vesCollectorService; + private static NotificationProxyParser notificationProxyParser; + private static VESCollectorCfgService vesCfgService; + private static WebsocketManagerService websocketManagerService; + + @BeforeClass + public static void init() throws InterruptedException, IOException { + capabilities = mock(Capabilities.class); + accessor = mock(NetconfAccessor.class); + serviceProvider = mock(DeviceManagerServiceProvider.class); + domAccessor = mock(NetconfDomAccessor.class); + vesCollectorService = mock(VESCollectorService.class); + notificationProxyParser = mock(NotificationProxyParser.class); + vesCfgService = mock(VESCollectorCfgService.class); + websocketManagerService = mock(WebsocketManagerService.class); + + when(accessor.getCapabilites()).thenReturn(capabilities); + when(accessor.getNodeId()).thenReturn(nodeId); + when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor)); + when(domAccessor.getNodeId()).thenReturn(nodeId); + when(domAccessor.getCapabilites()).thenReturn(capabilities); + when(vesCollectorService.getNotificationProxyParser()).thenReturn(notificationProxyParser); + + DataProvider dataProvider = mock(DataProvider.class); + FaultService faultService = mock(FaultService.class); + when(serviceProvider.getWebsocketService()).thenReturn(websocketManagerService); + when(serviceProvider.getFaultService()).thenReturn(faultService); + when(serviceProvider.getDataProvider()).thenReturn(dataProvider); + when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); + when(vesCollectorService.getConfig()).thenReturn(vesCfgService); + when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); + + } + + @Test + public void test() { + Optional oRanNe; + when(capabilities.isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)).thenReturn(true); + when(capabilities.isSupportingNamespace(OneCell)).thenReturn(false); + when(capabilities.isSupportingNamespace(OnapSystem)).thenReturn(false); + + ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); + oRanNe = factory.create(accessor, serviceProvider); + assertTrue(factory.create(accessor, serviceProvider).isPresent()); + oRanNe.get().register(); + oRanNe.get().deregister(); + oRanNe.get().getAcessor(); + oRanNe.get().getDeviceType(); + assertEquals(oRanNe.get().getNodeId().getValue(), "nSky"); + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNotification.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNotification.java new file mode 100644 index 000000000..1665ac1ad --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNotification.java @@ -0,0 +1,184 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import java.time.Instant; +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.service.VESCollectorCfgService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +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.common.Uint32; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +public class TestORanDOMNotification { + + private static final Logger log = LoggerFactory.getLogger(TestORanDOMNotification.class); + static ContainerNode cn = null; + static NodeId nodeId = new NodeId("nSky"); + private static NetconfDomAccessor domAccessor; + private static VESCollectorService vesCollectorService; + private static DataProvider databaseService; + private static VESCollectorCfgService vesCfgService; + // Use the below procedure for creating QName if binding generated classes are not available + /*String ietf_netconf_notif_ns = "urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"; + String ietf_netconf_notif_ns_date = "2012-02-06"; + QName username = QName.create(ietf_netconf_notif_ns, ietf_netconf_notif_ns_date, "username");*/ + + + @BeforeClass + public static void prepare() { + domAccessor = mock(NetconfDomAccessor.class); + vesCollectorService = mock(VESCollectorService.class); + databaseService = mock(DataProvider.class); + vesCfgService = mock(VESCollectorCfgService.class); + when(vesCollectorService.getConfig()).thenReturn(vesCfgService); + when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); + when(domAccessor.getNodeId()).thenReturn(nodeId); + } + + /* + ImmutableContainerNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)netconf-config-change, + value=[ + ImmutableContainerNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)changed-by, + value=[ + ImmutableChoiceNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)server-or-user, + value=[ + ImmutableLeafNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)username, + value=root + }, + ImmutableLeafNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)session-id, + value=2 + } + ] + } + ] + }, + ImmutableUnkeyedListNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)edit, + value=[ + ImmutableUnkeyedListEntryNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)edit, + value=[ + ImmutableLeafNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)operation, + value=replace + }, + ImmutableLeafNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)target, value=/(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)hardware/component/component[{(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)name=chassis-fan3}]/alias + } + ] + } + ] + }, + ImmutableLeafNode{ + identifier=(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)datastore, + value=running + } + ] + } + */ + private static ContainerNode createDOMNotificationBody() { + return Builders.containerBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_NETCONF_CONFIG_CHANGE)) + .withChild( + Builders.containerBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_CHANGEDBY)) + .withChild(Builders.choiceBuilder() + .withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SERVERORUSER)) + .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_USERNAME, "root")) + .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_SESSIONID, Uint32.valueOf(2))).build()) + .build()) + .withChild(Builders.unkeyedListBuilder().withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_EDITNODE)) + .withChild(Builders.unkeyedListEntryBuilder() + .withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_EDITNODE)) + .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_OPERATION, "replace")) + .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_TARGET, + "/(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)hardware/component[{(urn:ietf:params:xml:ns:yang:ietf-hardware?revision=2018-03-13)name=chassis-fan3}]/alias")) + .build()) + .build()) + .withChild(ImmutableNodes.leafNode(ORanDeviceManagerQNames.IETF_NETCONF_NOTIFICATIONS_DATASTORE, "running")).build(); + } + + @Test + public void test() { + ContainerNode cn = createDOMNotificationBody(); + System.out.println(cn.toString()); + NetconfDeviceNotification ndn = new NetconfDeviceNotification(cn, Instant.now()); + ORanDOMChangeNotificationListener changeListener = new ORanDOMChangeNotificationListener(domAccessor, vesCollectorService, databaseService); + changeListener.onNotification(ndn); + verify(databaseService).writeEventLog(any(EventlogEntity.class)); + } + + public static class NetconfDeviceNotification implements DOMNotification, DOMEvent { + private final ContainerNode content; + private final Absolute schemaPath; + private final Instant eventTime; + + NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = Absolute.of(content.getIdentifier().getNodeType()); + } + + NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = schemaPath; + } + + @Override + public Absolute getType() { + return schemaPath; + } + + @Override + public ContainerNode getBody() { + return content; + } + + @Override + public Instant getEventInstant() { + return eventTime; + } + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java new file mode 100644 index 000000000..4eac71cde --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java @@ -0,0 +1,202 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import static org.junit.Assert.assertEquals; +import com.google.common.collect.Sets; +import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; +import java.time.Instant; +import java.util.List; +import java.util.Optional; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +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.Guicutthrough; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.util.xml.UntrustedXML; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; +import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; +import org.xml.sax.SAXException; + +public class TestORanDOMToInternalDataModel { + + private static final QNameModule IETF_HARDWARE_MODULE = QNameModule + .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); + private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware"); + + private static final QNameModule IETF_SYSTEM_MODULE = QNameModule + .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-system"), Revision.of("2014-08-06")); + private static final QName IETF_CONTAINER = QName.create(IETF_SYSTEM_MODULE, "system"); + + private static EffectiveModelContext schemaContext; + private static Inference hwContainerSchema; + private static Inference systemSchema; + + private static final NodeId nodeId = new NodeId("nSky"); + + @BeforeClass + public static void setup() throws IOException { + schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); + hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER); + systemSchema = Inference.ofDataTreePath(schemaContext, IETF_CONTAINER); + } + + @AfterClass + public static void cleanup() { + schemaContext = null; + hwContainerSchema = null; + systemSchema = null; + } + + @Test + public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { + + final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml"); + + /* + * final XMLInputFactory factory = XMLInputFactory.newInstance(); + * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); + */ + final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + + final NormalizedNodeResult result = new NormalizedNodeResult(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); + xmlParser.parse(reader); + + xmlParser.flush(); + xmlParser.close(); + + NormalizedNode transformedInput = result.getResult(); + + List inventoryList = ORanDOMToInternalDataModel.getInventoryList(nodeId, transformedInput); + assertEquals("All elements", 27, inventoryList.size()); + assertEquals("Treelevel always there", 0, + inventoryList.stream().filter(inventory -> inventory.getTreeLevel() == null).count()); + } + + @Test + public void testIetfSystemFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { + + final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/onap-system.xml"); + + final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + + final NormalizedNodeResult result = new NormalizedNodeResult(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, systemSchema); + xmlParser.parse(reader); + + xmlParser.flush(); + xmlParser.close(); + + NormalizedNode transformedInput = result.getResult(); + ContainerNode cn = (ContainerNode) transformedInput; + AugmentationIdentifier onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier.create( + Sets.newHashSet(ORanDeviceManagerQNames.ONAP_SYSTEM_NAME, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI)); + Optional gc = ORanDOMToInternalDataModel.getGuicutthrough(cn.getChildByArg(onapSystemIID)); + assertEquals(gc.isPresent(), true); + + } + + @Test + public void testORANFault() { + ContainerNode cn = createORANDOMFault(); + NetconfDeviceNotification faultNotif = new NetconfDeviceNotification(cn, Instant.now()); + FaultlogEntity fle = ORanDOMToInternalDataModel.getFaultLog(faultNotif, nodeId, 1); + assertEquals(fle.getId(), "47"); + } + + public static ContainerNode createORANDOMFault() { + final QName fault_id = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_ID, "fault-id"); + final QName fault_source = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE, "fault-source"); + final QName fault_severity = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY, "fault-severity"); + final QName is_cleared = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED, "is-cleared"); + final QName fault_text = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT, "fault-text"); + return Builders.containerBuilder() + .withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF)) + .withChild(ImmutableNodes.leafNode(fault_id, "47")) + .withChild(ImmutableNodes.leafNode(fault_source, "Slot-2-Port-B")) + .withChild(ImmutableNodes.leafNode(fault_severity, "MAJOR")) + .withChild(ImmutableNodes.leafNode(is_cleared, "true")) + .withChild(ImmutableNodes.leafNode(fault_text, "CPRI Port Down")).build(); + } + + public static class NetconfDeviceNotification implements DOMNotification, DOMEvent { + private final ContainerNode content; + private final Absolute schemaPath; + private final Instant eventTime; + + NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = Absolute.of(content.getIdentifier().getNodeType()); + } + + NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = schemaPath; + } + + @Override + public Absolute getType() { + return schemaPath; + } + + @Override + public ContainerNode getBody() { + return content; + } + + @Override + public Instant getEventInstant() { + return eventTime; + } + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java new file mode 100644 index 000000000..27793e4bb --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java @@ -0,0 +1,101 @@ +/* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2021 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.oran.impl.dom; + +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.oran.impl.startup.ORanNetworkElementFactory; +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.VESCollectorService; +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.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +public class TestORanNetworkElementFactory { + + private static String NODEIDSTRING = "nSky"; + + private static NetconfAccessor accessor; + private static DeviceManagerServiceProvider serviceProvider; + private static Capabilities capabilities; + private static VESCollectorService vesCollectorService; + private static FaultService faultService; + private static WebsocketManagerService notificationService; + private static DataProvider databaseService; + private static NodeId nodeId = new NodeId(NODEIDSTRING); + + @BeforeClass + public static void init() throws InterruptedException, IOException { + 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); + + capabilities = mock(Capabilities.class); + //accessor = mock(NetconfBindingAccessor.class); + accessor = mock(NetconfAccessor.class); + serviceProvider = mock(DeviceManagerServiceProvider.class); + vesCollectorService = mock(VESCollectorService.class); + faultService = mock(FaultService.class); + notificationService = mock(WebsocketManagerService.class); + databaseService = mock(DataProvider.class); + + when(accessor.getCapabilites()).thenReturn(capabilities); + when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor)); + when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor)); + when(serviceProvider.getFaultService()).thenReturn(faultService); + when(serviceProvider.getWebsocketService()).thenReturn(notificationService); + when(serviceProvider.getDataProvider()).thenReturn(databaseService); + when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); + + } + + @Test + public void testCreateORANHWComponent() throws Exception { + when(accessor.getCapabilites().isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)).thenReturn(true); + ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); + assertTrue((factory.create(accessor, serviceProvider)).isPresent()); + } + + @Test + public void testCreateNone() throws Exception { + when(accessor.getCapabilites().isSupportingNamespace(ORanDeviceManagerQNames.ORAN_HW_COMPONENT)).thenReturn(false); + ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); + assertTrue(!(factory.create(accessor, serviceProvider).isPresent())); + } + + @After + public void cleanUp() throws Exception { + + } +} + diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java new file mode 100644 index 000000000..d520af5ba --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java @@ -0,0 +1,119 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.oran.impl.dom; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanRegistrationToVESpnfRegistrationMapper; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host; +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.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; + +@RunWith(MockitoJUnitRunner.class) +public class TestORanRegistrationToVESpnfRegistration { + + @Mock + NetconfAccessor netconfAccessor; + @Mock + VESCollectorService vesCollectorService; + @Mock + VESCollectorCfgService vesCfgService; + + private static final QNameModule IETF_HARDWARE_MODULE = QNameModule + .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); + private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component"); + private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name"); + private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class"); + private static final QName HW_COMPONENT_LIST_PHYSICAL_INDEX = QName.create(IETF_HARDWARE_MODULE, "physical-index"); // leaf:int32 + private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String + private static final QName HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HARDWARE_MODULE, "software-rev"); // leaf:String + private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String + private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HARDWARE_MODULE, "alias"); // leaf:String + + @Test + public void test() { + NetconfNode testNetconfNode = mock(NetconfNode.class); + when(testNetconfNode.getHost()).thenReturn(new Host(new IpAddress(new Ipv4Address("10.10.10.10")))); + + when(netconfAccessor.getNodeId()).thenReturn(new NodeId("nSky")); + when(netconfAccessor.getNetconfNode()).thenReturn(testNetconfNode); + when(vesCollectorService.getConfig()).thenReturn(vesCfgService); + when(vesCfgService.getReportingEntityName()).thenReturn("SDN-R"); + + ORanRegistrationToVESpnfRegistrationMapper mapper = new ORanRegistrationToVESpnfRegistrationMapper( + netconfAccessor, vesCollectorService); + VESCommonEventHeaderPOJO commonHeader = mapper.mapCommonEventHeader(buildComponentEntry()); + VESPNFRegistrationFieldsPOJO pnfFields = mapper.mapPNFRegistrationFields(buildComponentEntry()); + + assertEquals(commonHeader.getNfVendorName(), "ISCO"); + assertEquals(pnfFields.getUnitType(), "chassis"); + assertEquals(pnfFields.getSerialNumber(), "10283"); + assertEquals(pnfFields.getSoftwareVersion(), "3.8.1 (2020-10-30 11:47:59)"); + } + + public MapEntryNode buildComponentEntry() { + return Builders.mapEntryBuilder() + .withNodeIdentifier( + NodeIdentifierWithPredicates.of(HW_COMPONENT_LIST, HW_COMPONENT_LIST_KEY, "chassis")) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_CLASS)) + .withValue("ianahw:chassis").build()) + .withChild(Builders.leafBuilder() + .withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_PHYSICAL_INDEX)).withValue(1).build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME)) + .withValue("ISCO").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MODEL_NAME)) + .withValue("ProteusCPRI Compact").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_ALIAS)) + .withValue("chassis").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SER_NUM)) + .withValue("10283").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_DESC)) + .withValue("HighStreet-ONAP40").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SW_REV)) + .withValue("3.8.1 (2020-10-30 11:47:59)").build()) + .build(); + + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/YangParserTestUtils.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/YangParserTestUtils.java new file mode 100644 index 000000000..1d1726003 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/YangParserTestUtils.java @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom; + +import com.google.common.annotations.Beta; +import java.io.File; +import java.io.FileFilter; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.ServiceLoader; +import java.util.Set; +import java.util.stream.Collectors; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.YangConstants; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.parser.api.YangParser; +import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration; +import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; +import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; +import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; + +/** + * Utility class which provides convenience methods for producing effective schema context based on the supplied + * yang/yin sources or paths to these sources. + */ +@Beta +public final class YangParserTestUtils { + + private static final FileFilter YANG_FILE_FILTER = file -> { + // Locale keeps SpotBugs happy. It should not matter that much anyway. + final String name = file.getName().toLowerCase(Locale.ENGLISH); + return name.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION) && file.isFile(); + }; + + private static final @NonNull YangParserFactory PARSER_FACTORY; + + static { + final Iterator<@NonNull YangParserFactory> it = ServiceLoader.load(YangParserFactory.class).iterator(); + if (!it.hasNext()) { + throw new IllegalStateException("No YangParserFactory found"); + } + PARSER_FACTORY = it.next(); + } + + private YangParserTestUtils() { + // Hidden on purpose + } + + /** + * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param resource relative path to the YANG file to be parsed + * + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource) { + return parseYangResource(resource, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG source. All YANG features are supported. + * + * @param resource relative path to the YANG file to be parsed + * @param parserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config) { + return parseYangResource(resource, config, null); + } + + /** + * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to + * default mode. + * + * @param resource relative path to the YANG file to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * model are resolved + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource, final Set supportedFeatures) { + return parseYangResource(resource, YangParserConfiguration.DEFAULT, supportedFeatures); + } + + /** + * Creates a new effective schema context containing the specified YANG source. + * + * @param resource relative path to the YANG file to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * model are resolved + * @param parserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config, + final Set supportedFeatures) { + final YangTextSchemaSource source = YangTextSchemaSource.forResource(YangParserTestUtils.class, resource); + return parseYangSources(config, supportedFeatures, source); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final File... files) { + return parseYangFiles(Arrays.asList(files)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param files collection of YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Collection files) { + return parseYangFiles(YangParserConfiguration.DEFAULT, files); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode. + * + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, final File... files) { + return parseYangFiles(supportedFeatures, Arrays.asList(files)); + } + + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, + final Collection files) { + return parseYangFiles(supportedFeatures, YangParserConfiguration.DEFAULT, files); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param parserMode mode of statement parser + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config, final File... files) { + return parseYangFiles(config, Arrays.asList(files)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param parserMode mode of statement parser + * @param files collection of YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config, + final Collection files) { + return parseYangFiles(null, config, files); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param parserMode mode of statement parser + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, + final YangParserConfiguration config, final File... files) { + return parseYangFiles(supportedFeatures, config, Arrays.asList(files)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param parserMode mode of statement parser + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, + final YangParserConfiguration config, final Collection files) { + return parseSources(config, supportedFeatures, + files.stream().map(YangTextSchemaSource::forFile).collect(Collectors.toList())); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath) { + return parseYangResourceDirectory(resourcePath, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @param parserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath, + final YangParserConfiguration config) { + return parseYangResourceDirectory(resourcePath, null, config); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @return effective schema context + */ + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath, + final Set supportedFeatures) { + return parseYangResourceDirectory(resourcePath, supportedFeatures, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param parserMode mode of statement parser + * @return effective schema context + */ + @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles") + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath, + final Set supportedFeatures, final YangParserConfiguration config) { + final URI directoryPath; + try { + directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Failed to open resource " + resourcePath, e); + } + return parseYangFiles(supportedFeatures, config, new File(directoryPath).listFiles(YANG_FILE_FILTER)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param clazz Resource lookup base + * @param resources Resource names to be looked up + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final Class clazz, final String... resources) { + return parseYangResources(clazz, Arrays.asList(resources)); + } + + public static EffectiveModelContext parseYangResources(final Class clazz, final Collection resources) { + final List sources = new ArrayList<>(resources.size()); + for (final String r : resources) { + sources.add(YangTextSchemaSource.forResource(clazz, r)); + } + return parseSources(YangParserConfiguration.DEFAULT, null, sources); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode. + * + * @param yangDirs relative paths to the directories containing YANG files to be parsed + * @param yangFiles relative paths to the YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final List yangDirs, final List yangFiles, + final Set supportedFeatures) { + return parseYangResources(yangDirs, yangFiles, supportedFeatures, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed + * @param yangResources relative paths to the YANG files to be parsed + * @param statementParserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final List yangResourceDirs, + final List yangResources, final YangParserConfiguration config) { + return parseYangResources(yangResourceDirs, yangResources, null, config); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed + * @param yangResources relative paths to the YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param statementParserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final List yangResourceDirs, + final List yangResources, final Set supportedFeatures, + final YangParserConfiguration config) { + final List allYangFiles = new ArrayList<>(); + for (final String yangDir : yangResourceDirs) { + allYangFiles.addAll(getYangFiles(yangDir)); + } + + for (final String yangFile : yangResources) { + try { + allYangFiles.add(new File(YangParserTestUtils.class.getResource(yangFile).toURI())); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Invalid resource " + yangFile, e); + } + } + + return parseYangFiles(supportedFeatures, config, allYangFiles); + } + + public static EffectiveModelContext parseYangSources(final YangParserConfiguration config, + final Set supportedFeatures, final YangTextSchemaSource... sources) { + return parseSources(config, supportedFeatures, Arrays.asList(sources)); + } + + public static EffectiveModelContext parseSources(final YangParserConfiguration config, + final Set supportedFeatures, final Collection sources) { + final YangParser parser = PARSER_FACTORY.createParser(config); + if (supportedFeatures != null) { + parser.setSupportedFeatures(supportedFeatures); + } + + try { + parser.addSources(sources); + } catch (YangSyntaxErrorException e) { + throw new IllegalArgumentException("Malformed source", e); + } catch (IOException e) { + throw new IllegalArgumentException("Failed to read a source", e); + } + + try { + return parser.buildEffectiveModel(); + } catch (YangParserException e) { + throw new IllegalStateException("Failed to assemble SchemaContext", e); + } + } + + @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles") + private static Collection getYangFiles(final String resourcePath) { + final URI directoryPath; + try { + directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Failed to open resource directory " + resourcePath, e); + } + return Arrays.asList(new File(directoryPath).listFiles(YANG_FILE_FILTER)); + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-crypt-hash@2014-08-06.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-crypt-hash@2014-08-06.yang new file mode 100644 index 000000000..44c4674f8 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-crypt-hash@2014-08-06.yang @@ -0,0 +1,120 @@ +module iana-crypt-hash { + namespace "urn:ietf:params:xml:ns:yang:iana-crypt-hash"; + prefix ianach; + + organization "IANA"; + contact + " Internet Assigned Numbers Authority + + Postal: ICANN + 12025 Waterfront Drive, Suite 300 + Los Angeles, CA 90094-2536 + United States + + Tel: +1 310 301 5800 + E-Mail: iana@iana.org>"; + description + "This YANG module defines a type for storing passwords + using a hash function and features to indicate which hash + functions are supported by an implementation. + + The latest revision of this YANG module can be obtained from + the IANA web site. + + Requests for new values should be made to IANA via + email (iana@iana.org). + + Copyright (c) 2014 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 + (http://trustee.ietf.org/license-info). + + The initial version of this YANG module is part of RFC 7317; + see the RFC itself for full legal notices."; + + revision 2014-08-06 { + description + "Initial revision."; + reference + "RFC 7317: A YANG Data Model for System Management"; + } + + typedef crypt-hash { + type string { + pattern + '$0$.*' + + '|$1$[a-zA-Z0-9./]{1,8}$[a-zA-Z0-9./]{22}' + + '|$5$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{43}' + + '|$6$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{86}'; + } + description + "The crypt-hash type is used to store passwords using + a hash function. The algorithms for applying the hash + function and encoding the result are implemented in + various UNIX systems as the function crypt(3). + + A value of this type matches one of the forms: + + $0$ + $$$ + $$$$ + + The '$0$' prefix signals that the value is clear text. When + such a value is received by the server, a hash value is + calculated, and the string '$$$' or + $$$$ is prepended to the result. This + value is stored in the configuration data store. + If a value starting with '$$', where is not '0', is + received, the server knows that the value already represents a + hashed value and stores it 'as is' in the data store. + + When a server needs to verify a password given by a user, it + finds the stored password hash string for that user, extracts + the salt, and calculates the hash with the salt and given + password as input. If the calculated hash value is the same + as the stored value, the password given by the client is + accepted. + + This type defines the following hash functions: + + id | hash function | feature + ---+---------------+------------------- + 1 | MD5 | crypt-hash-md5 + 5 | SHA-256 | crypt-hash-sha-256 + 6 | SHA-512 | crypt-hash-sha-512 + + The server indicates support for the different hash functions + by advertising the corresponding feature."; + reference + "IEEE Std 1003.1-2008 - crypt() function + RFC 1321: The MD5 Message-Digest Algorithm + FIPS.180-4.2012: Secure Hash Standard (SHS)"; + } + + feature crypt-hash-md5 { + description + "Indicates that the device supports the MD5 + hash function in 'crypt-hash' values."; + reference "RFC 1321: The MD5 Message-Digest Algorithm"; + } + + feature crypt-hash-sha-256 { + description + "Indicates that the device supports the SHA-256 + hash function in 'crypt-hash' values."; + reference "FIPS.180-4.2012: Secure Hash Standard (SHS)"; + } + + feature crypt-hash-sha-512 { + description + "Indicates that the device supports the SHA-512 + hash function in 'crypt-hash' values."; + reference "FIPS.180-4.2012: Secure Hash Standard (SHS)"; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-hardware.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/iana-hardware.yang new file mode 100755 index 000000000..52bcaf3a0 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/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-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.xml b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.xml new file mode 100644 index 000000000..60f998630 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.xml @@ -0,0 +1,418 @@ + + + + chassis + chassis + ianahw:chassis + + unlocked + enabled + + 10283 + 3.8.1 (2020-10-30 11:47:59) + ISCO + ProteusCPRI Compact + HighStreet-ONAP40 + chassis-temperature-exhaust + chassis-temperature-inlet + chassis-fan0 + chassis-fan1 + chassis-fan2 + chassis-fan3 + cpu + slot0 + slot2 + + + chassis-temperature-exhaust + chassis-temperature-exhaust + ianahw:sensor + + locked + enabled + + chassis + 0 + + 30 + celsius + 2021-03-18T19:51:50.3Z + ok + + + + chassis-temperature-inlet + chassis-temperature-inlet + ianahw:sensor + + locked + enabled + + chassis + 1 + + 29 + celsius + 2021-03-18T19:51:50.3Z + ok + + + + chassis-fan0 + chassis-fan0 + ianahw:fan + + locked + enabled + + chassis + 2 + chassis-fan0-speed + + + chassis-fan0-speed + chassis-fan0-speed + ianahw:sensor + + locked + enabled + + chassis-fan0 + 0 + + 4100 + rpm + 2021-03-18T19:51:50.3Z + ok + + + + chassis-fan1 + chassis-fan1 + ianahw:fan + + locked + enabled + + chassis + 3 + chassis-fan1-speed + + + chassis-fan1-speed + chassis-fan1-speed + ianahw:sensor + + locked + enabled + + chassis-fan1 + 0 + + 4100 + rpm + 2021-03-18T19:51:50.3Z + ok + + + + chassis-fan2 + chassis-fan2 + ianahw:fan + + locked + enabled + + chassis + 4 + chassis-fan2-speed + + + chassis-fan2-speed + chassis-fan2-speed + ianahw:sensor + + locked + enabled + + chassis-fan2 + 0 + + 4100 + rpm + 2021-03-18T19:51:50.3Z + ok + + + + chassis-fan3 + chassis-fan3 + ianahw:fan + + locked + enabled + + chassis + 5 + chassis-fan3-speed + + + chassis-fan3-speed + chassis-fan3-speed + ianahw:sensor + + locked + enabled + + chassis-fan3 + 0 + + 1000 + rpm + 2021-03-18T19:51:50.3Z + ok + + + + cpu + cpu + ianahw:cpu + + locked + enabled + + chassis + 6 + cpu-temperature + + + cpu-temperature + cpu-temperature + ianahw:sensor + + locked + enabled + + cpu + 0 + + 30 + celsius + 2021-03-18T19:51:50.3Z + ok + + + + slot0 + slot0 + ianahw:module + + unlocked + enabled + + chassis + 7 + 7220530 + 12.00.42-S (0F7F1001) + 0 + 385A-SFP-2P-40-FHL-JC3 + slot0-temperature + slot0-logical0 + slot0-logical1 + slot0-logical2 + + + slot0-temperature + slot0-temperature + ianahw:sensor + + locked + enabled + + slot0 + 0 + + 51 + celsius + 2021-03-18T19:51:50.3Z + ok + + + + slot0-logical0 + Slot0-A + ianahw:module + + unlocked + enabled + + slot0 + 1 + SLOT0-AZ + slot0-logical0-bbu + slot0-logical0-rrh + + + slot0-logical0-bbu + Slot0-A-bbu + ianahw:port + + unlocked + enabled + + slot0-logical0 + 0 + slot0-logical0-bbu + AYR3GA2 + FINISAR CORP. + FTLX1475D3BTL-E7 + slot0-logical0-bbu-temperature + + + slot0-logical0-bbu-temperature + Slot0-A-bbu-temperature + ianahw:sensor + + locked + enabled + + slot0-logical0-bbu + 0 + + 37 + celsius + 2021-03-18T19:51:50.3Z + ok + + + + slot0-logical0-rrh + Slot0-A-rrh + ianahw:port + + unlocked + enabled + + slot0-logical0 + 1 + slot0-logical0-rrh + AYR3GA9 + FINISAR CORP. + FTLX1475D3BTL-E7 + slot0-logical0-rrh-temperature + + + slot0-logical0-rrh-temperature + Slot0-A-rrh-temperature + ianahw:sensor + + locked + enabled + + slot0-logical0-rrh + 0 + + 35 + celsius + 2021-03-18T19:51:50.3Z + ok + + + + slot0-logical1 + Slot0-B + ianahw:module + + unlocked + disabled + + slot0 + 2 + SLOT0-B + + + slot0-logical2 + Slot0-C + ianahw:module + + unlocked + disabled + + slot0 + 3 + SLOT0-C + + + slot2 + slot2 + ianahw:module + + unlocked + enabled + + chassis + 9 + 7220718 + 12.00.42-S (0F7F1001) + 0 + 385A-SFP-2P-40-FHL-JC3 + 2021-10-12T14:41:55.234Z + slot2-temperature + slot2-logical0 + slot2-logical1 + slot2-logical2 + + + slot2-temperature + slot2-temperature + ianahw:sensor + + locked + enabled + + slot2 + 0 + + 49 + celsius + 2021-03-18T19:51:50.3Z + ok + + + + slot2-logical0 + Slot2-C + ianahw:module + + unlocked + disabled + + slot2 + 1 + SLOT2-C + + + slot2-logical1 + Slot3-A + ianahw:module + + unlocked + disabled + + slot2 + 2 + SLOT3-A + + + slot2-logical2 + Slot3-B + ianahw:module + + unlocked + disabled + + slot2 + 3 + SLOT3-B + + \ No newline at end of file diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-hardware.yang new file mode 100755 index 000000000..f444e26ee --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/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: + WG List: + Editor: Andy Bierman + + Editor: Martin Bjorklund + + Editor: Jie Dong + + Editor: Dan Romascanu + "; + +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-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-inet-types.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-inet-types.yang new file mode 100644 index 000000000..f91aa1fb8 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-inet-types.yang @@ -0,0 +1,429 @@ +module ietf-inet-types { + + namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; + prefix "inet"; + + organization + "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + + contact + "WG Web: + WG List: + WG Chair: David Kessens + + WG Chair: Juergen Schoenwaelder + + Editor: Juergen Schoenwaelder + "; + + description + "This module contains a collection of generally useful derived + YANG data types for Internet addresses and related things. + Copyright (c) 2013 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 + (http://trustee.ietf.org/license-info). + This version of this YANG module is part of RFC 6991; see + the RFC itself for full legal notices."; + + revision 2013-07-15 { + description + "This revision adds the following new data types: + - ip-address-no-zone + - ipv4-address-no-zone + - ipv6-address-no-zone"; + reference + "RFC 6991: Common YANG Data Types"; + } + + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of types related to protocol fields ***/ + + typedef ip-version { + type enumeration { + enum unknown { + value "0"; + description + "An unknown or unspecified version of the Internet + protocol."; + } + enum ipv4 { + value "1"; + description + "The IPv4 protocol as defined in RFC 791."; + } + enum ipv6 { + value "2"; + description + "The IPv6 protocol as defined in RFC 2460."; + } + } + description + "This value represents the version of the IP protocol. + In the value set and its semantics, this type is equivalent + to the InetVersion textual convention of the SMIv2."; + reference + "RFC 791: Internet Protocol + RFC 2460: Internet Protocol, Version 6 (IPv6) Specification + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef dscp { + type uint8 { + range "0..63"; + } + description + "The dscp type represents a Differentiated Services Code Point + that may be used for marking packets in a traffic stream. + In the value set and its semantics, this type is equivalent + to the Dscp textual convention of the SMIv2."; + reference + "RFC 3289: Management Information Base for the Differentiated + Services Architecture + RFC 2474: Definition of the Differentiated Services Field + (DS Field) in the IPv4 and IPv6 Headers + RFC 2780: IANA Allocation Guidelines For Values In + the Internet Protocol and Related Headers"; + } + + typedef ipv6-flow-label { + type uint32 { + range "0..1048575"; + } + description + "The ipv6-flow-label type represents the flow identifier or Flow + Label in an IPv6 packet header that may be used to + discriminate traffic flows. + In the value set and its semantics, this type is equivalent + to the IPv6FlowLabel textual convention of the SMIv2."; + reference + "RFC 3595: Textual Conventions for IPv6 Flow Label + RFC 2460: Internet Protocol, Version 6 (IPv6) Specification"; + } + + typedef port-number { + type uint16 { + range "0..65535"; + } + description + "The port-number type represents a 16-bit port number of an + Internet transport-layer protocol such as UDP, TCP, DCCP, or + SCTP. Port numbers are assigned by IANA. A current list of + all assignments is available from . + Note that the port number value zero is reserved by IANA. In + situations where the value zero does not make sense, it can + be excluded by subtyping the port-number type. + In the value set and its semantics, this type is equivalent + to the InetPortNumber textual convention of the SMIv2."; + reference + "RFC 768: User Datagram Protocol + RFC 793: Transmission Control Protocol + RFC 4960: Stream Control Transmission Protocol + RFC 4340: Datagram Congestion Control Protocol (DCCP) + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + /*** collection of types related to autonomous systems ***/ + + typedef as-number { + type uint32; + description + "The as-number type represents autonomous system numbers + which identify an Autonomous System (AS). An AS is a set + of routers under a single technical administration, using + an interior gateway protocol and common metrics to route + packets within the AS, and using an exterior gateway + protocol to route packets to other ASes. IANA maintains + the AS number space and has delegated large parts to the + regional registries. + Autonomous system numbers were originally limited to 16 + bits. BGP extensions have enlarged the autonomous system + number space to 32 bits. This type therefore uses an uint32 + base type without a range restriction in order to support + a larger autonomous system number space. + In the value set and its semantics, this type is equivalent + to the InetAutonomousSystemNumber textual convention of + the SMIv2."; + reference + "RFC 1930: Guidelines for creation, selection, and registration + of an Autonomous System (AS) + RFC 4271: A Border Gateway Protocol 4 (BGP-4) + RFC 4001: Textual Conventions for Internet Network Addresses + RFC 6793: BGP Support for Four-Octet Autonomous System (AS) + Number Space"; + } + + /*** collection of types related to IP addresses and hostnames ***/ + + typedef ip-address { + type union { + type inet:ipv4-address; + type inet:ipv6-address; + } + description + "The ip-address type represents an IP address and is IP + version neutral. The format of the textual representation + implies the IP version. This type supports scoped addresses + by allowing zone identifiers in the address format."; + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + + typedef ipv4-address { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '(%[\p{N}\p{L}]+)?'; + } + description + "The ipv4-address type represents an IPv4 address in + dotted-quad notation. The IPv4 address may include a zone + index, separated by a % sign. + The zone index is used to disambiguate identical address + values. For link-local addresses, the zone index will + typically be the interface index number or the name of an + interface. If the zone index is not present, the default + zone of the device will be used. + The canonical format for the zone index is the numerical + format"; + } + + typedef ipv6-address { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + + '(%[\p{N}\p{L}]+)?'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + + '(%.+)?'; + } + description + "The ipv6-address type represents an IPv6 address in full, + mixed, shortened, and shortened-mixed notation. The IPv6 + address may include a zone index, separated by a % sign. + The zone index is used to disambiguate identical address + values. For link-local addresses, the zone index will + typically be the interface index number or the name of an + interface. If the zone index is not present, the default + zone of the device will be used. + The canonical format of IPv6 addresses uses the textual + representation defined in Section 4 of RFC 5952. The + canonical format for the zone index is the numerical + format as described in Section 11.2 of RFC 4007."; + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-address-no-zone { + type union { + type inet:ipv4-address-no-zone; + type inet:ipv6-address-no-zone; + } + description + "The ip-address-no-zone type represents an IP address and is + IP version neutral. The format of the textual representation + implies the IP version. This type does not support scoped + addresses since it does not allow zone identifiers in the + address format."; + reference + "RFC 4007: IPv6 Scoped Address Architecture"; + } + + typedef ipv4-address-no-zone { + type inet:ipv4-address { + pattern '[0-9\.]*'; + } + description + "An IPv4 address without a zone index. This type, derived from + ipv4-address, may be used in situations where the zone is + known from the context and hence no zone index is needed."; + } + + typedef ipv6-address-no-zone { + type inet:ipv6-address { + pattern '[0-9a-fA-F:\.]*'; + } + description + "An IPv6 address without a zone index. This type, derived from + ipv6-address, may be used in situations where the zone is + known from the context and hence no zone index is needed."; + reference + "RFC 4291: IP Version 6 Addressing Architecture + RFC 4007: IPv6 Scoped Address Architecture + RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + typedef ip-prefix { + type union { + type inet:ipv4-prefix; + type inet:ipv6-prefix; + } + description + "The ip-prefix type represents an IP prefix and is IP + version neutral. The format of the textual representations + implies the IP version."; + } + + typedef ipv4-prefix { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; + } + description + "The ipv4-prefix type represents an IPv4 address prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 32. + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0. + The canonical format of an IPv4 prefix has all bits of + the IPv4 address set to zero that are not part of the + IPv4 prefix."; + } + + typedef ipv6-prefix { + type string { + pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' + + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' + + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' + + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; + pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' + + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' + + '(/.+)'; + } + + description + "The ipv6-prefix type represents an IPv6 address prefix. + The prefix length is given by the number following the + slash character and must be less than or equal to 128. + A prefix length value of n corresponds to an IP address + mask that has n contiguous 1-bits from the most + significant bit (MSB) and all other bits set to 0. + The IPv6 address should have all bits that do not belong + to the prefix set to zero. + The canonical format of an IPv6 prefix has all bits of + the IPv6 address set to zero that are not part of the + IPv6 prefix. Furthermore, the IPv6 address is represented + as defined in Section 4 of RFC 5952."; + reference + "RFC 5952: A Recommendation for IPv6 Address Text + Representation"; + } + + /*** collection of domain name and URI types ***/ + + typedef domain-name { + type string { + pattern + '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + + '|\.'; + length "1..253"; + } + description + "The domain-name type represents a DNS domain name. The + name SHOULD be fully qualified whenever possible. + Internet domain names are only loosely specified. Section + 3.5 of RFC 1034 recommends a syntax (modified in Section + 2.1 of RFC 1123). The pattern above is intended to allow + for current practice in domain name use, and some possible + future expansion. It is designed to hold various types of + domain names, including names used for A or AAAA records + (host names) and other records, such as SRV records. Note + that Internet host names have a stricter syntax (described + in RFC 952) than the DNS recommendations in RFCs 1034 and + 1123, and that systems that want to store host names in + schema nodes using the domain-name type are recommended to + adhere to this stricter standard to ensure interoperability. + The encoding of DNS names in the DNS protocol is limited + to 255 characters. Since the encoding consists of labels + prefixed by a length bytes and there is a trailing NULL + byte, only 253 characters can appear in the textual dotted + notation. + The description clause of schema nodes using the domain-name + type MUST describe when and how these names are resolved to + IP addresses. Note that the resolution of a domain-name value + may require to query multiple DNS records (e.g., A for IPv4 + and AAAA for IPv6). The order of the resolution process and + which DNS record takes precedence can either be defined + explicitly or may depend on the configuration of the + resolver. + Domain-name values use the US-ASCII encoding. Their canonical + format uses lowercase US-ASCII characters. Internationalized + domain names MUST be A-labels as per RFC 5890."; + reference + "RFC 952: DoD Internet Host Table Specification + RFC 1034: Domain Names - Concepts and Facilities + RFC 1123: Requirements for Internet Hosts -- Application + and Support + RFC 2782: A DNS RR for specifying the location of services + (DNS SRV) + RFC 5890: Internationalized Domain Names in Applications + (IDNA): Definitions and Document Framework"; + } + + typedef host { + type union { + type inet:ip-address; + type inet:domain-name; + } + description + "The host type represents either an IP address or a DNS + domain name."; + } + + typedef uri { + type string; + description + "The uri type represents a Uniform Resource Identifier + (URI) as defined by STD 66. + Objects using the uri type MUST be in US-ASCII encoding, + and MUST be normalized as described by RFC 3986 Sections + 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary + percent-encoding is removed, and all case-insensitive + characters are set to lowercase except for hexadecimal + digits, which are normalized to uppercase as described in + Section 6.2.2.1. + The purpose of this normalization is to help provide + unique URIs. Note that this normalization is not + sufficient to provide uniqueness. Two URIs that are + textually distinct after this normalization may still be + equivalent. + Objects using the uri type may restrict the schemes that + they permit. For example, 'data:' and 'urn:' schemes + might not be appropriate. + A zero-length URI is not a valid URI. This can be used to + express 'URI absent' where required. + In the value set and its semantics, this type is equivalent + to the Uri SMIv2 textual convention defined in RFC 5017."; + reference + "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax + RFC 3305: Report from the Joint W3C/IETF URI Planning Interest + Group: Uniform Resource Identifiers (URIs), URLs, + and Uniform Resource Names (URNs): Clarifications + and Recommendations + RFC 5017: MIB Textual Conventions for Uniform Resource + Identifiers (URIs)"; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-netconf-acm.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-netconf-acm.yang new file mode 100644 index 000000000..bf4855faf --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-netconf-acm.yang @@ -0,0 +1,464 @@ +module ietf-netconf-acm { + + namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-acm"; + + prefix nacm; + + import ietf-yang-types { + prefix yang; + } + + organization + "IETF NETCONF (Network Configuration) Working Group"; + + contact + "WG Web: + WG List: + + Author: Andy Bierman + + + Author: Martin Bjorklund + "; + + description + "Network Configuration Access Control Model. + + Copyright (c) 2012 - 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 8341; see + the RFC itself for full legal notices."; + + revision "2018-02-14" { + description + "Added support for YANG 1.1 actions and notifications tied to + data nodes. Clarified how NACM extensions can be used by + other data models."; + reference + "RFC 8341: Network Configuration Access Control Model"; + } + + revision "2012-02-22" { + description + "Initial version."; + reference + "RFC 6536: Network Configuration Protocol (NETCONF) + Access Control Model"; + } + + /* + * Extension statements + */ + + extension default-deny-write { + description + "Used to indicate that the data model node + represents a sensitive security system parameter. + + If present, the NETCONF server will only allow the designated + 'recovery session' to have write access to the node. An + explicit access control rule is required for all other users. + + If the NACM module is used, then it must be enabled (i.e., + /nacm/enable-nacm object equals 'true'), or this extension + is ignored. + + The 'default-deny-write' extension MAY appear within a data + definition statement. It is ignored otherwise."; + } + + extension default-deny-all { + description + "Used to indicate that the data model node + controls a very sensitive security system parameter. + + If present, the NETCONF server will only allow the designated + 'recovery session' to have read, write, or execute access to + the node. An explicit access control rule is required for all + other users. + + If the NACM module is used, then it must be enabled (i.e., + /nacm/enable-nacm object equals 'true'), or this extension + is ignored. + + The 'default-deny-all' extension MAY appear within a data + definition statement, 'rpc' statement, or 'notification' + statement. It is ignored otherwise."; + } + + /* + * Derived types + */ + + typedef user-name-type { + type string { + length "1..max"; + } + description + "General-purpose username string."; + } + + typedef matchall-string-type { + type string { + pattern '\*'; + } + description + "The string containing a single asterisk '*' is used + to conceptually represent all possible values + for the particular leaf using this data type."; + } + + typedef access-operations-type { + type bits { + bit create { + description + "Any protocol operation that creates a + new data node."; + } + bit read { + description + "Any protocol operation or notification that + returns the value of a data node."; + } + bit update { + description + "Any protocol operation that alters an existing + data node."; + } + bit delete { + description + "Any protocol operation that removes a data node."; + } + bit exec { + description + "Execution access to the specified protocol operation."; + } + } + description + "Access operation."; + } + + typedef group-name-type { + type string { + length "1..max"; + pattern '[^\*].*'; + } + description + "Name of administrative group to which + users can be assigned."; + } + + typedef action-type { + type enumeration { + enum permit { + description + "Requested action is permitted."; + } + enum deny { + description + "Requested action is denied."; + } + } + description + "Action taken by the server when a particular + rule matches."; + } + + typedef node-instance-identifier { + type yang:xpath1.0; + description + "Path expression used to represent a special + data node, action, or notification instance-identifier + string. + + A node-instance-identifier value is an + unrestricted YANG instance-identifier expression. + All the same rules as an instance-identifier apply, + except that predicates for keys are optional. If a key + predicate is missing, then the node-instance-identifier + represents all possible server instances for that key. + + This XML Path Language (XPath) expression is evaluated in the + following context: + + o The set of namespace declarations are those in scope on + the leaf element where this type is used. + + o The set of variable bindings contains one variable, + 'USER', which contains the name of the user of the + current session. + + o The function library is the core function library, but + note that due to the syntax restrictions of an + instance-identifier, no functions are allowed. + + o The context node is the root node in the data tree. + + The accessible tree includes actions and notifications tied + to data nodes."; + } + + /* + * Data definition statements + */ + + container nacm { + nacm:default-deny-all; + + description + "Parameters for NETCONF access control model."; + + leaf enable-nacm { + type boolean; + default "true"; + description + "Enables or disables all NETCONF access control + enforcement. If 'true', then enforcement + is enabled. If 'false', then enforcement + is disabled."; + } + + leaf read-default { + type action-type; + default "permit"; + description + "Controls whether read access is granted if + no appropriate rule is found for a + particular read request."; + } + + leaf write-default { + type action-type; + default "deny"; + description + "Controls whether create, update, or delete access + is granted if no appropriate rule is found for a + particular write request."; + } + + leaf exec-default { + type action-type; + default "permit"; + description + "Controls whether exec access is granted if no appropriate + rule is found for a particular protocol operation request."; + } + + leaf enable-external-groups { + type boolean; + default "true"; + description + "Controls whether the server uses the groups reported by the + NETCONF transport layer when it assigns the user to a set of + NACM groups. If this leaf has the value 'false', any group + names reported by the transport layer are ignored by the + server."; + } + + leaf denied-operations { + type yang:zero-based-counter32; + config false; + mandatory true; + description + "Number of times since the server last restarted that a + protocol operation request was denied."; + } + + leaf denied-data-writes { + type yang:zero-based-counter32; + config false; + mandatory true; + description + "Number of times since the server last restarted that a + protocol operation request to alter + a configuration datastore was denied."; + } + + leaf denied-notifications { + type yang:zero-based-counter32; + config false; + mandatory true; + description + "Number of times since the server last restarted that + a notification was dropped for a subscription because + access to the event type was denied."; + } + + container groups { + description + "NETCONF access control groups."; + + list group { + key name; + + description + "One NACM group entry. This list will only contain + configured entries, not any entries learned from + any transport protocols."; + + leaf name { + type group-name-type; + description + "Group name associated with this entry."; + } + + leaf-list user-name { + type user-name-type; + description + "Each entry identifies the username of + a member of the group associated with + this entry."; + } + } + } + + list rule-list { + key name; + ordered-by user; + description + "An ordered collection of access control rules."; + + leaf name { + type string { + length "1..max"; + } + description + "Arbitrary name assigned to the rule-list."; + } + leaf-list group { + type union { + type matchall-string-type; + type group-name-type; + } + description + "List of administrative groups that will be + assigned the associated access rights + defined by the 'rule' list. + + The string '*' indicates that all groups apply to the + entry."; + } + + list rule { + key name; + ordered-by user; + description + "One access control rule. + + Rules are processed in user-defined order until a match is + found. A rule matches if 'module-name', 'rule-type', and + 'access-operations' match the request. If a rule + matches, the 'action' leaf determines whether or not + access is granted."; + + leaf name { + type string { + length "1..max"; + } + description + "Arbitrary name assigned to the rule."; + } + + leaf module-name { + type union { + type matchall-string-type; + type string; + } + default "*"; + description + "Name of the module associated with this rule. + + This leaf matches if it has the value '*' or if the + object being accessed is defined in the module with the + specified module name."; + } + choice rule-type { + description + "This choice matches if all leafs present in the rule + match the request. If no leafs are present, the + choice matches all requests."; + case protocol-operation { + leaf rpc-name { + type union { + type matchall-string-type; + type string; + } + description + "This leaf matches if it has the value '*' or if + its value equals the requested protocol operation + name."; + } + } + case notification { + leaf notification-name { + type union { + type matchall-string-type; + type string; + } + description + "This leaf matches if it has the value '*' or if its + value equals the requested notification name."; + } + } + + case data-node { + leaf path { + type node-instance-identifier; + mandatory true; + description + "Data node instance-identifier associated with the + data node, action, or notification controlled by + this rule. + + Configuration data or state data + instance-identifiers start with a top-level + data node. A complete instance-identifier is + required for this type of path value. + + The special value '/' refers to all possible + datastore contents."; + } + } + } + + leaf access-operations { + type union { + type matchall-string-type; + type access-operations-type; + } + default "*"; + description + "Access operations associated with this rule. + + This leaf matches if it has the value '*' or if the + bit corresponding to the requested operation is set."; + } + + leaf action { + type action-type; + mandatory true; + description + "The access control action associated with the + rule. If a rule has been determined to match a + particular request, then this object is used + to determine whether to permit or deny the + request."; + } + + leaf comment { + type string; + description + "A textual description of the access rule."; + } + } + } + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-system@2014-08-06.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-system@2014-08-06.yang new file mode 100644 index 000000000..1618242bc --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-system@2014-08-06.yang @@ -0,0 +1,800 @@ +module ietf-system { + namespace "urn:ietf:params:xml:ns:yang:ietf-system"; + prefix "sys"; + + import ietf-yang-types { + prefix yang; + } + + import ietf-inet-types { + prefix inet; + } + + import ietf-netconf-acm { + prefix nacm; + } + + import iana-crypt-hash { + prefix ianach; + } + + organization + "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + + contact + "WG Web: + WG List: + + WG Chair: Thomas Nadeau + + + WG Chair: Juergen Schoenwaelder + + + Editor: Andy Bierman + + + Editor: Martin Bjorklund + "; + + description + "This module contains a collection of YANG definitions for the + configuration and identification of some common system + properties within a device containing a NETCONF server. This + includes data node definitions for system identification, + time-of-day management, user management, DNS resolver + configuration, and some protocol operations for system + management. + + Copyright (c) 2014 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 + (http://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC 7317; see + the RFC itself for full legal notices."; + + revision 2014-08-06 { + description + "Initial revision."; + reference + "RFC 7317: A YANG Data Model for System Management"; + } + + /* + * Typedefs + */ + + typedef timezone-name { + type string; + description + "A time zone name as used by the Time Zone Database, + sometimes referred to as the 'Olson Database'. + + The exact set of valid values is an implementation-specific + matter. Client discovery of the exact set of time zone names + for a particular server is out of scope."; + reference + "RFC 6557: Procedures for Maintaining the Time Zone Database"; + } + + /* + * Features + */ + + feature radius { + description + "Indicates that the device can be configured as a RADIUS + client."; + reference + "RFC 2865: Remote Authentication Dial In User Service (RADIUS)"; + } + + feature authentication { + description + "Indicates that the device supports configuration of + user authentication."; + } + + feature local-users { + if-feature authentication; + description + "Indicates that the device supports configuration of + local user authentication."; + } + + feature radius-authentication { + if-feature radius; + if-feature authentication; + description + "Indicates that the device supports configuration of user + authentication over RADIUS."; + reference + "RFC 2865: Remote Authentication Dial In User Service (RADIUS) + RFC 5607: Remote Authentication Dial-In User Service (RADIUS) + Authorization for Network Access Server (NAS) + Management"; + } + + feature ntp { + description + "Indicates that the device can be configured to use one or + more NTP servers to set the system date and time."; + } + + feature ntp-udp-port { + if-feature ntp; + description + "Indicates that the device supports the configuration of + the UDP port for NTP servers. + + This is a 'feature', since many implementations do not support + any port other than the default port."; + } + + feature timezone-name { + description + "Indicates that the local time zone on the device + can be configured to use the TZ database + to set the time zone and manage daylight saving time."; + reference + "RFC 6557: Procedures for Maintaining the Time Zone Database"; + } + + feature dns-udp-tcp-port { + description + "Indicates that the device supports the configuration of + the UDP and TCP port for DNS servers. + + This is a 'feature', since many implementations do not support + any port other than the default port."; + } + + /* + * Identities + */ + + identity authentication-method { + description + "Base identity for user authentication methods."; + } + + identity radius { + base authentication-method; + description + "Indicates user authentication using RADIUS."; + reference + "RFC 2865: Remote Authentication Dial In User Service (RADIUS) + RFC 5607: Remote Authentication Dial-In User Service (RADIUS) + Authorization for Network Access Server (NAS) + Management"; + } + + identity local-users { + base authentication-method; + description + "Indicates password-based authentication of locally + configured users."; + } + + identity radius-authentication-type { + description + "Base identity for RADIUS authentication types."; + } + + identity radius-pap { + base radius-authentication-type; + description + "The device requests Password Authentication Protocol (PAP) + authentication from the RADIUS server."; + reference + "RFC 2865: Remote Authentication Dial In User Service (RADIUS)"; + } + + identity radius-chap { + base radius-authentication-type; + description + "The device requests Challenge Handshake Authentication + Protocol (CHAP) authentication from the RADIUS server."; + reference + "RFC 2865: Remote Authentication Dial In User Service (RADIUS)"; + } + + /* + * Configuration data nodes + */ + + container system { + description + "System group configuration."; + + leaf contact { + type string; + description + "The administrator contact information for the system. + + A server implementation MAY map this leaf to the sysContact + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and sysContact. The definition of + such a mechanism is outside the scope of this document."; + reference + "RFC 3418: Management Information Base (MIB) for the + Simple Network Management Protocol (SNMP) + SNMPv2-MIB.sysContact"; + } + leaf hostname { + type inet:domain-name; + description + "The name of the host. This name can be a single domain + label or the fully qualified domain name of the host."; + } + leaf location { + type string; + description + "The system location. + + A server implementation MAY map this leaf to the sysLocation + MIB object. Such an implementation needs to use some + mechanism to handle the differences in size and characters + allowed between this leaf and sysLocation. The definition + of such a mechanism is outside the scope of this document."; + reference + "RFC 3418: Management Information Base (MIB) for the + Simple Network Management Protocol (SNMP) + SNMPv2-MIB.sysLocation"; + } + + container clock { + description + "Configuration of the system date and time properties."; + + choice timezone { + description + "The system time zone information."; + + case timezone-name { + if-feature timezone-name; + leaf timezone-name { + type timezone-name; + description + "The TZ database name to use for the system, such + as 'Europe/Stockholm'."; + } + } + case timezone-utc-offset { + leaf timezone-utc-offset { + type int16 { + range "-1500 .. 1500"; + } + units "minutes"; + description + "The number of minutes to add to UTC time to + identify the time zone for this system. For example, + 'UTC - 8:00 hours' would be represented as '-480'. + Note that automatic daylight saving time adjustment + is not provided if this object is used."; + } + } + } + } + + container ntp { + if-feature ntp; + presence + "Enables the NTP client unless the 'enabled' leaf + (which defaults to 'true') is set to 'false'"; + description + "Configuration of the NTP client."; + + leaf enabled { + type boolean; + default true; + description + "Indicates that the system should attempt to + synchronize the system clock with an NTP server + from the 'ntp/server' list."; + } + list server { + key name; + description + "List of NTP servers to use for system clock + synchronization. If '/system/ntp/enabled' + is 'true', then the system will attempt to + contact and utilize the specified NTP servers."; + + leaf name { + type string; + description + "An arbitrary name for the NTP server."; + } + choice transport { + mandatory true; + description + "The transport-protocol-specific parameters for this + server."; + + case udp { + container udp { + description + "Contains UDP-specific configuration parameters + for NTP."; + leaf address { + type inet:host; + mandatory true; + description + "The address of the NTP server."; + } + leaf port { + if-feature ntp-udp-port; + type inet:port-number; + default 123; + description + "The port number of the NTP server."; + } + } + } + } + leaf association-type { + type enumeration { + enum server { + description + "Use client association mode. This device + will not provide synchronization to the + configured NTP server."; + } + enum peer { + description + "Use symmetric active association mode. + This device may provide synchronization + to the configured NTP server."; + } + enum pool { + description + "Use client association mode with one or + more of the NTP servers found by DNS + resolution of the domain name given by + the 'address' leaf. This device will not + provide synchronization to the servers."; + } + } + default server; + description + "The desired association type for this NTP server."; + } + leaf iburst { + type boolean; + default false; + description + "Indicates whether this server should enable burst + synchronization or not."; + } + leaf prefer { + type boolean; + default false; + description + "Indicates whether this server should be preferred + or not."; + } + } + } + + container dns-resolver { + description + "Configuration of the DNS resolver."; + + leaf-list search { + type inet:domain-name; + ordered-by user; + description + "An ordered list of domains to search when resolving + a host name."; + } + list server { + key name; + ordered-by user; + description + "List of the DNS servers that the resolver should query. + + When the resolver is invoked by a calling application, it + sends the query to the first name server in this list. If + no response has been received within 'timeout' seconds, + the resolver continues with the next server in the list. + If no response is received from any server, the resolver + continues with the first server again. When the resolver + has traversed the list 'attempts' times without receiving + any response, it gives up and returns an error to the + calling application. + + Implementations MAY limit the number of entries in this + list."; + + leaf name { + type string; + description + "An arbitrary name for the DNS server."; + } + choice transport { + mandatory true; + description + "The transport-protocol-specific parameters for this + server."; + + case udp-and-tcp { + container udp-and-tcp { + description + "Contains UDP- and TCP-specific configuration + parameters for DNS."; + reference + "RFC 1035: Domain Names - Implementation and + Specification + RFC 5966: DNS Transport over TCP - Implementation + Requirements"; + + leaf address { + type inet:ip-address; + mandatory true; + description + "The address of the DNS server."; + } + leaf port { + if-feature dns-udp-tcp-port; + type inet:port-number; + default 53; + description + "The UDP and TCP port number of the DNS server."; + } + } + } + } + } + container options { + description + "Resolver options. The set of available options has been + limited to those that are generally available across + different resolver implementations and generally useful."; + leaf timeout { + type uint8 { + range "1..max"; + } + units "seconds"; + default "5"; + description + "The amount of time the resolver will wait for a + response from each remote name server before + retrying the query via a different name server."; + } + leaf attempts { + type uint8 { + range "1..max"; + } + default "2"; + description + "The number of times the resolver will send a query to + all of its name servers before giving up and returning + an error to the calling application."; + } + } + } + + container radius { + if-feature radius; + + description + "Configuration of the RADIUS client."; + + list server { + key name; + ordered-by user; + description + "List of RADIUS servers used by the device. + + When the RADIUS client is invoked by a calling + application, it sends the query to the first server in + this list. If no response has been received within + 'timeout' seconds, the client continues with the next + server in the list. If no response is received from any + server, the client continues with the first server again. + When the client has traversed the list 'attempts' times + without receiving any response, it gives up and returns an + error to the calling application."; + + leaf name { + type string; + description + "An arbitrary name for the RADIUS server."; + } + choice transport { + mandatory true; + description + "The transport-protocol-specific parameters for this + server."; + + case udp { + container udp { + description + "Contains UDP-specific configuration parameters + for RADIUS."; + leaf address { + type inet:host; + mandatory true; + description + "The address of the RADIUS server."; + } + + leaf authentication-port { + type inet:port-number; + default "1812"; + description + "The port number of the RADIUS server."; + } + leaf shared-secret { + type string; + mandatory true; + nacm:default-deny-all; + description + "The shared secret, which is known to both the + RADIUS client and server."; + reference + "RFC 2865: Remote Authentication Dial In User + Service (RADIUS)"; + } + } + } + } + leaf authentication-type { + type identityref { + base radius-authentication-type; + } + default radius-pap; + description + "The authentication type requested from the RADIUS + server."; + } + } + container options { + description + "RADIUS client options."; + + leaf timeout { + type uint8 { + range "1..max"; + } + units "seconds"; + default "5"; + description + "The number of seconds the device will wait for a + response from each RADIUS server before trying with a + different server."; + } + + leaf attempts { + type uint8 { + range "1..max"; + } + default "2"; + description + "The number of times the device will send a query to + all of its RADIUS servers before giving up."; + } + } + } + + container authentication { + nacm:default-deny-write; + if-feature authentication; + + description + "The authentication configuration subtree."; + + leaf-list user-authentication-order { + type identityref { + base authentication-method; + } + must '(. != "sys:radius" or ../../radius/server)' { + error-message + "When 'radius' is used, a RADIUS server" + + " must be configured."; + description + "When 'radius' is used as an authentication method, + a RADIUS server must be configured."; + } + ordered-by user; + + description + "When the device authenticates a user with a password, + it tries the authentication methods in this leaf-list in + order. If authentication with one method fails, the next + method is used. If no method succeeds, the user is + denied access. + + An empty user-authentication-order leaf-list still allows + authentication of users using mechanisms that do not + involve a password. + + If the 'radius-authentication' feature is advertised by + the NETCONF server, the 'radius' identity can be added to + this list. + + If the 'local-users' feature is advertised by the + NETCONF server, the 'local-users' identity can be + added to this list."; + } + + list user { + if-feature local-users; + key name; + description + "The list of local users configured on this device."; + + leaf name { + type string; + description + "The user name string identifying this entry."; + } + leaf password { + type ianach:crypt-hash; + description + "The password for this entry."; + } + list authorized-key { + key name; + description + "A list of public SSH keys for this user. These keys + are allowed for SSH authentication, as described in + RFC 4253."; + reference + "RFC 4253: The Secure Shell (SSH) Transport Layer + Protocol"; + + leaf name { + type string; + description + "An arbitrary name for the SSH key."; + } + + leaf algorithm { + type string; + mandatory true; + description + "The public key algorithm name for this SSH key. + + Valid values are the values in the IANA 'Secure Shell + (SSH) Protocol Parameters' registry, Public Key + Algorithm Names."; + reference + "IANA 'Secure Shell (SSH) Protocol Parameters' + registry, Public Key Algorithm Names"; + } + leaf key-data { + type binary; + mandatory true; + description + "The binary public key data for this SSH key, as + specified by RFC 4253, Section 6.6, i.e.: + + string certificate or public key format + identifier + byte[n] key/certificate data."; + reference + "RFC 4253: The Secure Shell (SSH) Transport Layer + Protocol"; + } + } + } + } + } + + /* + * Operational state data nodes + */ + + container system-state { + config false; + description + "System group operational state."; + + container platform { + description + "Contains vendor-specific information for + identifying the system platform and operating system."; + reference + "IEEE Std 1003.1-2008 - sys/utsname.h"; + + leaf os-name { + type string; + description + "The name of the operating system in use - + for example, 'Linux'."; + reference + "IEEE Std 1003.1-2008 - utsname.sysname"; + } + leaf os-release { + type string; + description + "The current release level of the operating + system in use. This string MAY indicate + the OS source code revision."; + reference + "IEEE Std 1003.1-2008 - utsname.release"; + } + leaf os-version { + type string; + description + "The current version level of the operating + system in use. This string MAY indicate + the specific OS build date and target variant + information."; + reference + "IEEE Std 1003.1-2008 - utsname.version"; + } + leaf machine { + type string; + description + "A vendor-specific identifier string representing + the hardware in use."; + reference + "IEEE Std 1003.1-2008 - utsname.machine"; + } + } + + container clock { + description + "Monitoring of the system date and time properties."; + + leaf current-datetime { + type yang:date-and-time; + description + "The current system date and time."; + } + + leaf boot-datetime { + type yang:date-and-time; + description + "The system date and time when the system last restarted."; + } + } + } + + rpc set-current-datetime { + nacm:default-deny-all; + description + "Set the /system-state/clock/current-datetime leaf + to the specified value. + + If the system is using NTP (i.e., /system/ntp/enabled + is set to 'true'), then this operation will fail with + error-tag 'operation-failed' and error-app-tag value of + 'ntp-active'."; + input { + leaf current-datetime { + type yang:date-and-time; + mandatory true; + description + "The current system date and time."; + } + } + } + + rpc system-restart { + nacm:default-deny-all; + description + "Request that the entire system be restarted immediately. + A server SHOULD send an rpc reply to the client before + restarting the system."; + } + + rpc system-shutdown { + nacm:default-deny-all; + description + "Request that the entire system be shut down immediately. + A server SHOULD send an rpc reply to the client before + shutting down the system."; + } + +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-yang-types.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-yang-types.yang new file mode 100644 index 000000000..20a3ef0d3 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/ietf-yang-types.yang @@ -0,0 +1,435 @@ +module ietf-yang-types { + + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; + prefix "yang"; + + organization + "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + + contact + "WG Web: + WG List: + WG Chair: David Kessens + + WG Chair: Juergen Schoenwaelder + + Editor: Juergen Schoenwaelder + "; + + description + "This module contains a collection of generally useful derived + YANG data types. + Copyright (c) 2013 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 + (http://trustee.ietf.org/license-info). + This version of this YANG module is part of RFC 6991; see + the RFC itself for full legal notices."; + + revision 2013-07-15 { + description + "This revision adds the following new data types: + - yang-identifier + - hex-string + - uuid + - dotted-quad"; + reference + "RFC 6991: Common YANG Data Types"; + } + + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of counter and gauge types ***/ + + typedef counter32 { + type uint32; + description + "The counter32 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^32-1 (4294967295 decimal), when it + wraps around and starts increasing again from zero. + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system, and at other times as specified in the + description of a schema node using this type. If such + other times can occur, for example, the creation of + a schema node of type counter32 at times other than + re-initialization, then a corresponding schema node + should be defined, with an appropriate type, to indicate + the last discontinuity. + The counter32 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter32. + In the value set and its semantics, this type is equivalent + to the Counter32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter32 { + type yang:counter32; + default "0"; + description + "The zero-based-counter32 type represents a counter32 + that has the defined 'initial' value zero. + A schema node of this type will be set to zero (0) on creation + and will thereafter increase monotonically until it reaches + a maximum value of 2^32-1 (4294967295 decimal), when it + wraps around and starts increasing again from zero. + Provided that an application discovers a new schema node + of this type within the minimum time to wrap, it can use the + 'initial' value as a delta. It is important for a management + station to be aware of this minimum time and the actual time + between polls, and to discard data if the actual time is too + long or there is no defined minimum time. + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter32 textual convention of the SMIv2."; + reference + "RFC 4502: Remote Network Monitoring Management Information + Base Version 2"; + } + + typedef counter64 { + type uint64; + description + "The counter64 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^64-1 (18446744073709551615 decimal), + when it wraps around and starts increasing again from zero. + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system, and at other times as specified in the + description of a schema node using this type. If such + other times can occur, for example, the creation of + a schema node of type counter64 at times other than + re-initialization, then a corresponding schema node + should be defined, with an appropriate type, to indicate + the last discontinuity. + The counter64 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter64. + In the value set and its semantics, this type is equivalent + to the Counter64 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter64 { + type yang:counter64; + default "0"; + description + "The zero-based-counter64 type represents a counter64 that + has the defined 'initial' value zero. + A schema node of this type will be set to zero (0) on creation + and will thereafter increase monotonically until it reaches + a maximum value of 2^64-1 (18446744073709551615 decimal), + when it wraps around and starts increasing again from zero. + Provided that an application discovers a new schema node + of this type within the minimum time to wrap, it can use the + 'initial' value as a delta. It is important for a management + station to be aware of this minimum time and the actual time + between polls, and to discard data if the actual time is too + long or there is no defined minimum time. + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter64 textual convention of the SMIv2."; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + typedef gauge32 { + type uint32; + description + "The gauge32 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^32-1 (4294967295 decimal), and + the minimum value cannot be smaller than 0. The value of + a gauge32 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases + below (increases above) the maximum (minimum) value, the + gauge32 also decreases (increases). + In the value set and its semantics, this type is equivalent + to the Gauge32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef gauge64 { + type uint64; + description + "The gauge64 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^64-1 (18446744073709551615), and + the minimum value cannot be smaller than 0. The value of + a gauge64 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases + below (increases above) the maximum (minimum) value, the + gauge64 also decreases (increases). + In the value set and its semantics, this type is equivalent + to the CounterBasedGauge64 SMIv2 textual convention defined + in RFC 2856"; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + /*** collection of identifier-related types ***/ + + typedef object-identifier { + type string { + pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + + '(\.(0|([1-9]\d*)))*'; + } + description + "The object-identifier type represents administratively + assigned names in a registration-hierarchical-name tree. + Values of this type are denoted as a sequence of numerical + non-negative sub-identifier values. Each sub-identifier + value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers + are separated by single dots and without any intermediate + whitespace. + The ASN.1 standard restricts the value space of the first + sub-identifier to 0, 1, or 2. Furthermore, the value space + of the second sub-identifier is restricted to the range + 0 to 39 if the first sub-identifier is 0 or 1. Finally, + the ASN.1 standard requires that an object identifier + has always at least two sub-identifiers. The pattern + captures these restrictions. + Although the number of sub-identifiers is not limited, + module designers should realize that there may be + implementations that stick with the SMIv2 limit of 128 + sub-identifiers. + This type is a superset of the SMIv2 OBJECT IDENTIFIER type + since it is not restricted to 128 sub-identifiers. Hence, + this type SHOULD NOT be used to represent the SMIv2 OBJECT + IDENTIFIER type; the object-identifier-128 type SHOULD be + used instead."; + reference + "ISO9834-1: Information technology -- Open Systems + Interconnection -- Procedures for the operation of OSI + Registration Authorities: General procedures and top + arcs of the ASN.1 Object Identifier tree"; + } + + typedef object-identifier-128 { + type object-identifier { + pattern '\d*(\.\d*){1,127}'; + } + description + "This type represents object-identifiers restricted to 128 + sub-identifiers. + In the value set and its semantics, this type is equivalent + to the OBJECT IDENTIFIER type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef yang-identifier { + type string { + length "1..max"; + pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; + pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; + } + description + "A YANG identifier string as defined by the 'identifier' + rule in Section 12 of RFC 6020. An identifier must + start with an alphabetic character or an underscore + followed by an arbitrary sequence of alphabetic or + numeric characters, underscores, hyphens, or dots. + A YANG identifier MUST NOT start with any possible + combination of the lowercase or uppercase character + sequence 'xml'."; + reference + "RFC 6020: YANG - A Data Modeling Language for the Network + Configuration Protocol (NETCONF)"; + } + + /*** collection of types related to date and time***/ + + typedef date-and-time { + type string { + pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + + '(Z|[\+\-]\d{2}:\d{2})'; + } + description + "The date-and-time type is a profile of the ISO 8601 + standard for representation of dates and times using the + Gregorian calendar. The profile is defined by the + date-time production in Section 5.6 of RFC 3339. + The date-and-time type is compatible with the dateTime XML + schema type with the following notable exceptions: + (a) The date-and-time type does not allow negative years. + (b) The date-and-time time-offset -00:00 indicates an unknown + time zone (see RFC 3339) while -00:00 and +00:00 and Z + all represent the same time zone in dateTime. + (c) The canonical format (see below) of data-and-time values + differs from the canonical format used by the dateTime XML + schema type, which requires all times to be in UTC using + the time-offset 'Z'. + This type is not equivalent to the DateAndTime textual + convention of the SMIv2 since RFC 3339 uses a different + separator between full-date and full-time and provides + higher resolution of time-secfrac. + The canonical format for date-and-time values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause date-and-time values + to change accordingly. Such changes might happen periodically + in case a server follows automatically daylight saving time + (DST) time zone offset changes. The canonical format for + date-and-time values with an unknown time zone (usually + referring to the notion of local time) uses the time-offset + -00:00."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + RFC 2579: Textual Conventions for SMIv2 + XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; + } + + typedef timeticks { + type uint32; + description + "The timeticks type represents a non-negative integer that + represents the time, modulo 2^32 (4294967296 decimal), in + hundredths of a second between two epochs. When a schema + node is defined that uses this type, the description of + the schema node identifies both of the reference epochs. + In the value set and its semantics, this type is equivalent + to the TimeTicks type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef timestamp { + type yang:timeticks; + description + "The timestamp type represents the value of an associated + timeticks schema node at which a specific occurrence + happened. The specific occurrence must be defined in the + description of any schema node defined using this type. When + the specific occurrence occurred prior to the last time the + associated timeticks attribute was zero, then the timestamp + value is zero. Note that this requires all timestamp values + to be reset to zero when the value of the associated timeticks + attribute reaches 497+ days and wraps around to zero. + The associated timeticks schema node must be specified + in the description of any schema node using this type. + In the value set and its semantics, this type is equivalent + to the TimeStamp textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of generic address types ***/ + + typedef phys-address { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + + description + "Represents media- or physical-level addresses represented + as a sequence octets, each octet represented by two hexadecimal + numbers. Octets are separated by colons. The canonical + representation uses lowercase characters. + In the value set and its semantics, this type is equivalent + to the PhysAddress textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + typedef mac-address { + type string { + pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; + } + description + "The mac-address type represents an IEEE 802 MAC address. + The canonical representation uses lowercase characters. + In the value set and its semantics, this type is equivalent + to the MacAddress textual convention of the SMIv2."; + reference + "IEEE 802: IEEE Standard for Local and Metropolitan Area + Networks: Overview and Architecture + RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of XML-specific types ***/ + + typedef xpath1.0 { + type string; + description + "This type represents an XPATH 1.0 expression. + When a schema node is defined that uses this type, the + description of the schema node MUST specify the XPath + context in which the XPath expression is evaluated."; + reference + "XPATH: XML Path Language (XPath) Version 1.0"; + } + + /*** collection of string types ***/ + + typedef hex-string { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + description + "A hexadecimal string with octets represented as hex digits + separated by colons. The canonical representation uses + lowercase characters."; + } + + typedef uuid { + type string { + pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; + } + description + "A Universally Unique IDentifier in the string representation + defined in RFC 4122. The canonical representation uses + lowercase characters. + The following is an example of a UUID in string representation: + f81d4fae-7dec-11d0-a765-00a0c91e6bf6 + "; + reference + "RFC 4122: A Universally Unique IDentifier (UUID) URN + Namespace"; + } + + typedef dotted-quad { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; + } + description + "An unsigned 32-bit number expressed in the dotted-quad + notation, i.e., four octets written as decimal numbers + and separated with the '.' (full stop) character."; + } +} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/o-ran-hardware@2019-07-03.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/o-ran-hardware@2019-07-03.yang new file mode 100644 index 000000000..ec6b359c1 --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/o-ran-hardware@2019-07-03.yang @@ -0,0 +1,271 @@ +module o-ran-hardware { + yang-version 1.1; + namespace "urn:o-ran:hardware:1.0"; + prefix "o-ran-hw"; + + import ietf-hardware { + prefix hw; + } + import iana-hardware { + prefix ianahw; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the YANG definitions for managng the O-RAN hardware. + + Copyright 2019 the O-RAN Alliance. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '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 SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 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. + + 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 above disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the above disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the Members of the O-RAN Alliance nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) added new identities to accommodate cross working group use of + o-ran-hardware and assoicated set of augmentations that are backwards + compatible to version 1.0.0"; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-02-04" { + description + "version 1.0.0 + + 1) imported model from xRAN + 2) changed namespace and reference from xran to o-ran"; + + reference "ORAN-WG4.M.0-v01.00"; + } + + feature ENERGYSAVING { + description + "Indicates that the Radio Unit supports energy saving state."; + } + + // identity statements + identity O-RAN-RADIO { + base ianahw:module; + description + "Module used as it represents a self-contained sub-system + used in /hw:/hardware/hw:component/hw:class to represent + an O-RAN RU"; + } + + identity O-RAN-HW-COMPONENT { + base ianahw:module; + description + "Module used as it represents a self-contained sub-system + used in /hw:/hardware/hw:component/hw:class to represent + any O-RAN hardware component"; + } + + identity O-DU-COMPONENT { + base O-RAN-HW-COMPONENT; + description + "Used in /hw:/hardware/hw:component/hw:class to represent + any O-RAN defined O-DU hardware component"; + } + + identity O-RU-COMPONENT { + base O-RAN-HW-COMPONENT; + description + "Used in /hw:/hardware/hw:component/hw:class to represent + any O-RAN defined O-RU hardware component, including a stand-alone + O-RU or an O-RU component integrated into a multi-module system."; + } + + // typedef statements + typedef energysaving-state { + type enumeration { + enum UNKNOWN { + description "The Radio Unit is unable to report energy saving state."; + } + enum SLEEPING { + description + "The Radio Unit is in a sleep state. The NETCONF management plane + connection is functioning. Other functions and hardware which are + not needed for management plane may be in energy saving mode."; + } + enum AWAKE { + description + "The Radio Unit is not in an energy saving state."; + } + } + description + "new typedef since ietf-hardware only covers pwer-state + for redundancy purposes and not power saving operations."; + } + + typedef availability-type { + type enumeration { + enum UNKNOWN { + description "The Radio Unit is unable to report its availability state."; + } + enum NORMAL { + description + "The equipment is functioning correctly."; + } + enum DEGRADED { + description + "The equipment may be reporting a major alarm or may be reporting a critical + alarm that is only impacting one or more subcomponent, but where the + equipment's implementation permit it to continue operation (server traffic) + in a degraded state. + + Used for example, when the equipment has M identical sub-components and + when a critical alarm is imapcting only N subcomponents, where N + + + UTC + + NTS_FUNCTION_TYPE_O_RAN_FH-0 + http://172.18.0.3:8181/odlux/index.html#/configuration/NTS_FUNCTION_TYPE_O_RAN_FH-0 + O-RAN-SC SIM project + NTS_FUNCTION_TYPE_O_RAN_FH-0 + Open Wireless Lab + + false + + + \ No newline at end of file diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.yang b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.yang new file mode 100644 index 000000000..3e194298e --- /dev/null +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/resources/onap-system.yang @@ -0,0 +1,59 @@ +module onap-system { + yang-version 1.1; + namespace "urn:onap:system"; + prefix os; + + import ietf-inet-types { + prefix inet; + } + import ietf-system { + prefix sys; + } + + organization + "ONAP - Open Network Automation Platform"; + contact + "Web: + Editors: + Alex Stancu + Adrian Lita + Martin Skorupski "; + description + "This module augments ietf-system with ONAP details. + + Copyright 2020 the O-RAN Alliance. + + 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-10-26 { + description + "Initial revision for the ietf-system augmentation for ONAP."; + reference + "https://jira.onap.org/browse/SDNC-1396"; + } + + augment "/sys:system" { + leaf name { + type string; + description + "The name of the system."; + } + leaf web-ui { + type inet:uri; + description + "The URI of the system Web UI."; + } + description + "Enhancing the system information."; + } +} diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml index 9cea31a3d..c581fbcc8 100644 --- a/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml +++ b/sdnr/wt/devicemanager-onap/adapter-manager/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml index 08646f928..ac67cb0d1 100755 --- a/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml +++ b/sdnr/wt/devicemanager-onap/adapter-manager/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml index 895ac6df0..dd531e6a2 100644 --- a/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml +++ b/sdnr/wt/devicemanager-onap/adapter-manager/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml index dca308bf2..a6d0ffb0a 100755 --- a/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml +++ b/sdnr/wt/devicemanager-onap/adapter-manager/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml index 4c9350948..7c6d3889b 100644 --- a/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml +++ b/sdnr/wt/devicemanager-onap/adapter-manager/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml b/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml index 8f31c4b87..13f6b7fe6 100644 --- a/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf12/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml b/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml index 09d11e04a..9a81fcbf5 100755 --- a/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf12/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf12/model/pom.xml b/sdnr/wt/devicemanager-onap/onf12/model/pom.xml index 2f05d2864..108883d7a 100644 --- a/sdnr/wt/devicemanager-onap/onf12/model/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf12/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf12/pom.xml b/sdnr/wt/devicemanager-onap/onf12/pom.xml index 414d9ea60..a2ec498e2 100755 --- a/sdnr/wt/devicemanager-onap/onf12/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf12/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml b/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml index cd56f5abc..9c2982f05 100644 --- a/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf12/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT 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 index a0813eee6..81e7d85a9 100644 --- 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 @@ -29,6 +29,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ptp.dataset 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.opendaylight.yangtools.yang.common.Uint16; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,7 +43,7 @@ public class WrapperPTPModelRev170208 { private static final Logger LOG = LoggerFactory.getLogger(WrapperPTPModelRev170208.class); protected static final InstanceIdentifier PTPINSTANCES_IID = - InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(1)).build(); + InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(Uint16.valueOf(1))).build(); /** * Query synchronization information out of NE 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 index d5ca9c388..242e100a7 100644 --- 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 @@ -1,5 +1,4 @@ /* - * ============LICENSE_START======================================================================== * ONAP : ccsdk feature sdnr wt * ================================================================================================= * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. @@ -46,7 +45,7 @@ public class PerformanceDataAirInterface170324Builder extends PmdataEntityBuilde this.setNodeName(nodeId.getValue()); this.setScannerId(pmRecord.getHistoryDataId()); this.setTimeStamp(pmRecord.getPeriodEndTime()); - this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag()); + this.setSuspectIntervalFlag(pmRecord.requireSuspectIntervalFlag()); } /** 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 index 275252f4d..7faca3c06 100644 --- 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 @@ -46,7 +46,7 @@ public class PerformanceDataAirInterface180907Builder extends PmdataEntityBuilde this.setNodeName(nodeId.getValue()); this.setScannerId(pmRecord.getHistoryDataId()); this.setTimeStamp(pmRecord.getPeriodEndTime()); - this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag()); + this.setSuspectIntervalFlag(pmRecord.requireSuspectIntervalFlag()); } /** 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 index 0c379b10e..6b42bd2d3 100644 --- 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 @@ -46,7 +46,7 @@ public class PerformanceDataAirInterface181010Builder extends PmdataEntityBuilde this.setNodeName(nodeId.getValue()); this.setScannerId(pmRecord.getHistoryDataId()); this.setTimeStamp(pmRecord.getPeriodEndTime()); - this.setSuspectIntervalFlag(pmRecord.isSuspectIntervalFlag()); + this.setSuspectIntervalFlag(pmRecord.requireSuspectIntervalFlag()); } /** 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 index 20d479efa..3ded68537 100644 --- 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 @@ -26,6 +26,7 @@ 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.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper; 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; @@ -66,7 +67,7 @@ public class TestExtendedEquipment { new ManufacturedThingBuilder().setManufacturerProperties(manufacturerProps).setEquipmentType(eqptType) .setEquipmentInstance(eqptInstance).build(); - Equipment equipment = new EquipmentBuilder().setUuid(id).setContainedHolder(holder) + Equipment equipment = new EquipmentBuilder().setUuid(id).setContainedHolder(YangToolsMapperHelper.toMap(holder)) .setManufacturedThing(manufacturedThing).build(); ExtendedEquipment extEqpt = new ExtendedEquipment(NODEID, "1234567890", equipment, "/var/opt", 3); 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 index 4049a549d..f4a0aaedb 100644 --- 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 @@ -32,6 +32,7 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData; import org.onap.ccsdk.features.sdnr.wt.devicemanager.util.InconsistentPMDataException; 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.yang.mapper.YangToolsMapperHelper; 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; @@ -109,7 +110,7 @@ public class TestWrapperMicrowaveModelRev170324 { Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal") .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build()); airInterfaceCurrentProblems = - new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid)) .child(EthernetContainerCurrentProblems.class).build(); @@ -120,7 +121,7 @@ public class TestWrapperMicrowaveModelRev170324 { .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null) .build()); ethernetContainerCurrentProblems = - new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build(); + new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(ethCurrentProblemsList)).build(); NodeId nNodeId = new NodeId("nSky"); when(accessor.getNodeId()).thenReturn(nNodeId); @@ -189,7 +190,7 @@ public class TestWrapperMicrowaveModelRev170324 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); TdmContainerCurrentProblems tdmInterfaceCurrentProblems = - new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems); @@ -214,7 +215,7 @@ public class TestWrapperMicrowaveModelRev170324 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems = - new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -239,7 +240,7 @@ public class TestWrapperMicrowaveModelRev170324 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems = - new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -264,7 +265,7 @@ public class TestWrapperMicrowaveModelRev170324 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems = - new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -306,9 +307,10 @@ public class TestWrapperMicrowaveModelRev170324 { new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder() .setHistoryDataId("123") .setGranularityPeriod(GranularityPeriodType.Period15Min) - .setPerformanceData(performanceData).build()); + .setSuspectIntervalFlag(true) + .setPerformanceData(performanceData).build()); AirInterfaceHistoricalPerformances airHistoricalPerformanceData = - new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build(); + new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(airHistPMList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData); @@ -323,10 +325,11 @@ public class TestWrapperMicrowaveModelRev170324 { Arrays.asList( new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder() .setHistoryDataId("123") + .setSuspectIntervalFlag(true) .setGranularityPeriod(GranularityPeriodType.Period24Hours) .setPerformanceData(ethPerformanceData).build()); EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData = - new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList) + new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(ethHistPMList)) .build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData); 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 index 078890fd2..173b973b9 100644 --- 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 @@ -32,6 +32,7 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData; import org.onap.ccsdk.features.sdnr.wt.devicemanager.util.InconsistentPMDataException; 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.yang.mapper.YangToolsMapperHelper; 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; @@ -106,7 +107,7 @@ public class TestWrapperMicrowaveModelRev180907 { Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal") .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build()); airInterfaceCurrentProblems = - new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid)) .child(EthernetContainerCurrentProblems.class).build(); @@ -117,7 +118,7 @@ public class TestWrapperMicrowaveModelRev180907 { .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null) .build()); ethernetContainerCurrentProblems = - new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build(); + new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(ethCurrentProblemsList)).build(); NodeId nNodeId = new NodeId("nSky"); when(accessor.getNodeId()).thenReturn(nNodeId); @@ -185,7 +186,7 @@ public class TestWrapperMicrowaveModelRev180907 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); TdmContainerCurrentProblems tdmInterfaceCurrentProblems = - new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems); @@ -210,7 +211,7 @@ public class TestWrapperMicrowaveModelRev180907 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems = - new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -235,7 +236,7 @@ public class TestWrapperMicrowaveModelRev180907 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems = - new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -260,7 +261,7 @@ public class TestWrapperMicrowaveModelRev180907 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems = - new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -302,9 +303,10 @@ public class TestWrapperMicrowaveModelRev180907 { new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder() .setHistoryDataId("123") .setGranularityPeriod(GranularityPeriodType.Period15Min) + .setSuspectIntervalFlag(true) .setPerformanceData(performanceData).build()); AirInterfaceHistoricalPerformances airHistoricalPerformanceData = - new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build(); + new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(airHistPMList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData); @@ -320,9 +322,10 @@ public class TestWrapperMicrowaveModelRev180907 { new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder() .setHistoryDataId("123") .setGranularityPeriod(GranularityPeriodType.Period24Hours) + .setSuspectIntervalFlag(true) .setPerformanceData(ethPerformanceData).build()); EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData = - new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList) + new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(ethHistPMList)) .build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData); 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 index 51e9dae72..c282e1a7b 100644 --- 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 @@ -32,8 +32,11 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData; import org.onap.ccsdk.features.sdnr.wt.devicemanager.util.InconsistentPMDataException; 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.yang.mapper.YangToolsMapperHelper; +import org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions.YangtoolsMapDesirializer; 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.netconf.monitoring.rev101004.Yang; 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; @@ -110,7 +113,7 @@ public class TestWrapperMicrowaveModelRev181010 { Arrays.asList(new CurrentProblemListBuilder().setProblemName("Loss of Signal") .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null).build()); airInterfaceCurrentProblems = - new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new AirInterfaceCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); mwEthInterfaceIID = InstanceIdentifier.builder(MwEthernetContainerPac.class, new MwEthernetContainerPacKey(uid)) .child(EthernetContainerCurrentProblems.class).build(); @@ -121,7 +124,7 @@ public class TestWrapperMicrowaveModelRev181010 { .setProblemSeverity(SeverityType.Critical).setSequenceNumber(1).setTimeStamp(null) .build()); ethernetContainerCurrentProblems = - new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(ethCurrentProblemsList).build(); + new EthernetContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(ethCurrentProblemsList)).build(); NodeId nNodeId = new NodeId("nSky"); when(accessor.getNodeId()).thenReturn(nNodeId); @@ -190,7 +193,7 @@ public class TestWrapperMicrowaveModelRev181010 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); TdmContainerCurrentProblems tdmInterfaceCurrentProblems = - new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new TdmContainerCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(tdmInterfaceCurrentProblems); @@ -215,7 +218,7 @@ public class TestWrapperMicrowaveModelRev181010 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); HybridMwStructureCurrentProblems hybridMwStructureCurrentProblems = - new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new HybridMwStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -240,7 +243,7 @@ public class TestWrapperMicrowaveModelRev181010 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); AirInterfaceDiversityCurrentProblems hybridMwStructureCurrentProblems = - new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new AirInterfaceDiversityCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -265,7 +268,7 @@ public class TestWrapperMicrowaveModelRev181010 { .setProblemName("Loss of Payload").setProblemSeverity(SeverityType.Major) .setSequenceNumber(2).setTimeStamp(null).build()); PureEthernetStructureCurrentProblems hybridMwStructureCurrentProblems = - new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(currentProblemList).build(); + new PureEthernetStructureCurrentProblemsBuilder().setCurrentProblemList(YangToolsMapperHelper.toMap(currentProblemList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwEthInterfaceIID)).thenReturn(hybridMwStructureCurrentProblems); @@ -306,9 +309,10 @@ public class TestWrapperMicrowaveModelRev181010 { new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.air._interface.historical.performances.g.HistoricalPerformanceDataListBuilder() .setHistoryDataId("123") .setGranularityPeriod(GranularityPeriodType.Period15Min) + .setSuspectIntervalFlag(true) .setPerformanceData(performanceData).build()); AirInterfaceHistoricalPerformances airHistoricalPerformanceData = - new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(airHistPMList).build(); + new AirInterfaceHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(airHistPMList)).build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, mwAirInterfaceHistoricalPerformanceIID)).thenReturn(airHistoricalPerformanceData); @@ -324,9 +328,10 @@ public class TestWrapperMicrowaveModelRev181010 { new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.ethernet.container.historical.performances.g.HistoricalPerformanceDataListBuilder() .setHistoryDataId("123") .setGranularityPeriod(GranularityPeriodType.Period24Hours) + .setSuspectIntervalFlag(true) .setPerformanceData(ethPerformanceData).build()); EthernetContainerHistoricalPerformances ethContainerHistoricalPerformanceData = - new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(ethHistPMList) + new EthernetContainerHistoricalPerformancesBuilder().setHistoricalPerformanceDataList(YangToolsMapperHelper.toMap(ethHistPMList)) .build(); when(accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, ethContainerIID)).thenReturn(ethContainerHistoricalPerformanceData); diff --git a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java index 1cda8716d..9e330cb25 100644 --- a/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java +++ b/sdnr/wt/devicemanager-onap/onf12/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf/ifpac/microwave/test/TestWrapperNoPmData.java @@ -41,7 +41,7 @@ public class TestWrapperNoPmData { Lp lp = new LpBuilder().setUuid(new UniversalId("NodeUUID")).build(); //Build empty, without PerformanceData HistoricalPerformanceDataList pmRecord = - new HistoricalPerformanceDataListBuilder().setHistoryDataId("1").build(); + new HistoricalPerformanceDataListBuilder().setSuspectIntervalFlag(true).setHistoryDataId("1").build(); AirInterfaceConfiguration airConfiguration = new AirInterfaceConfigurationBuilder().build(); @SuppressWarnings("unused") 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 index 2adc248e1..a35e756a6 100644 --- 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 @@ -27,6 +27,7 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.WrapperPTPModelRe 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.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper; 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; @@ -65,9 +66,9 @@ public class TestWrapperPTPModelRev170208 { List portDsList = Arrays.asList(new PortDsListBuilder().setPortNumber(portNumber).setPortIdentity(portIdentity).build()); InstanceList instanceList = - new InstanceListBuilder().setInstanceNumber(Uint16.valueOf(1)).setPortDsList(portDsList).build(); + new InstanceListBuilder().setInstanceNumber(Uint16.valueOf(1)).setPortDsList(YangToolsMapperHelper.toMap(portDsList)).build(); InstanceIdentifier PTPINSTANCES_IID = - InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(1)).build(); + InstanceIdentifier.builder(InstanceList.class, new InstanceListKey(Uint16.valueOf(1))).build(); when(netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, PTPINSTANCES_IID)).thenReturn(instanceList); } diff --git a/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml b/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml index 861eb7750..848358894 100644 --- a/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf14/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml b/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml index b0ffb9e30..81b98ac3c 100755 --- a/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf14/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf14/model/pom.xml b/sdnr/wt/devicemanager-onap/onf14/model/pom.xml index 8eb16c04d..f93f5cdf6 100644 --- a/sdnr/wt/devicemanager-onap/onf14/model/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf14/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf14/pom.xml b/sdnr/wt/devicemanager-onap/onf14/pom.xml index fced5d846..3d47217bb 100755 --- a/sdnr/wt/devicemanager-onap/onf14/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf14/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml b/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml index 58db0ee60..3a6522ed0 100644 --- a/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml +++ b/sdnr/wt/devicemanager-onap/onf14/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT @@ -51,7 +51,7 @@ ${maven.build.timestamp} UTC 49400 - + @@ -86,6 +86,7 @@ org.opendaylight.netconf sal-netconf-connector + 2.0.4 provided @@ -107,6 +108,34 @@ true + + + org.opendaylight.yangtools + yang-maven-plugin + 7.0.9 + + + binding + none + + generate-sources + + + true + + + + + + org.opendaylight.mdsal + mdsal-binding-java-api-generator + 8.0.6 + compile + + + + + org.jacoco @@ -120,6 +149,46 @@ + + maven-enforcer-plugin + 3.0.0 + + + enforce-maven + + enforce + + + + + 11 + + + [3.5.0,) + + + + + + enforce-banned-dependencies + + enforce + + + + + Please always use mockito-core instead of mockito-all (see https://bugs.opendaylight.org/show_bug.cgi?id=7662), and spotbugs:annotations instead of findbugs:annotations + + org.mockito:mockito-all + com.google.code.findbugs:annotations + + + + false + + + + diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/DeviceManagerOnf14Impl.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/DeviceManagerOnf14Impl.java new file mode 100644 index 000000000..a974f4b8c --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/DeviceManagerOnf14Impl.java @@ -0,0 +1,88 @@ +/* + * ============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.dom.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 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 Onf14DomNetworkElementFactory()); + + 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/dom/impl/Onf14DomAirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomAirInterfaceNotificationListener.java new file mode 100644 index 000000000..f72158e06 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomAirInterfaceNotificationListener.java @@ -0,0 +1,168 @@ +/* + * ============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.dom.impl; + +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.mdsal.dom.api.DOMNotificationListener; +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.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.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Onf14DomAirInterfaceNotificationListener implements DOMNotificationListener { + + private static final Logger log = LoggerFactory.getLogger(Onf14DomAirInterfaceNotificationListener.class); + + private final NetconfDomAccessor netconfDomAccessor; + private final DeviceManagerServiceProvider serviceProvider; + + public Onf14DomAirInterfaceNotificationListener(NetconfDomAccessor netconfDomAccessor, + DeviceManagerServiceProvider serviceProvider) { + this.netconfDomAccessor = netconfDomAccessor; + this.serviceProvider = serviceProvider; + } + + @Override + public void onNotification(@NonNull DOMNotification domNotification) { + if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION))) { + onObjectCreateNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION))) { + onObjectAVCNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION))) { + onObjectProblemNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION))) { + onObjectDeletionNotification(domNotification); + } + } + + private void onObjectCreateNotification(@NonNull DOMNotification domNotification) { + + ContainerNode cn = domNotification.getBody(); + + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()) + .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE)) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER))) + .setNewValue("created") + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF)) + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP))); + + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP))); + log.debug("onObjectCreationNotification log entry written"); + } + + private void onObjectAVCNotification(@NonNull DOMNotification domNotification) { + + ContainerNode cn = domNotification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()) + .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME)) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER))) + .setNewValue(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE)) + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF)) + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP))); + + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION, new DateAndTime(Onf14DMDOMUtility + .getLeafValue(cn, Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP))); + log.debug("onAttributeValueChangedNotification log entry written"); + } + + private void onObjectProblemNotification(@NonNull DOMNotification domNotification) { + + ContainerNode cn = domNotification.getBody(); + FaultlogEntity faultAlarm = + new FaultlogBuilder() + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF)) + .setProblem(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM)) + .setSourceType(SourceType.Netconf) + .setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))) + .setNodeId(this.netconfDomAccessor.getNodeId().getValue()) + .setSeverity(InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY))) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER))) + .build(); + + serviceProvider.getFaultService().faultNotification(faultAlarm); + serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))); + } + + private void onObjectDeletionNotification(@NonNull DOMNotification domNotification) { + + ContainerNode cn = domNotification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()).setAttributeName("") + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER))) + .setNewValue("deleted") + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF)) + + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP))); + + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(domNotification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP))); + + log.debug("onObjectDeletionNotification log entry written"); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomEthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomEthernetContainerNotificationListener.java new file mode 100644 index 000000000..218ece4e7 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomEthernetContainerNotificationListener.java @@ -0,0 +1,151 @@ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl; + +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.mdsal.dom.api.DOMNotificationListener; +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.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.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Onf14DomEthernetContainerNotificationListener implements DOMNotificationListener { + + private static final Logger log = LoggerFactory.getLogger(Onf14DomEthernetContainerNotificationListener.class); + + private final NetconfDomAccessor netconfDomAccessor; + private final DeviceManagerServiceProvider serviceProvider; + + public Onf14DomEthernetContainerNotificationListener(NetconfDomAccessor netconfDomAccessor, + DeviceManagerServiceProvider serviceProvider) { + this.netconfDomAccessor = netconfDomAccessor; + this.serviceProvider = serviceProvider; + } + + @Override + public void onNotification(@NonNull DOMNotification domNotification) { + log.debug("Got event of type :: {}", domNotification.getType()); + if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION))) { + onObjectCreationNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION))) { + onAttributeValueChangedNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION))) { + onProblemNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION))) { + onObjectDeletionNotification(domNotification); + } + } + + public void onObjectDeletionNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()).setAttributeName("") + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER))) + .setNewValue("deleted") + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF)) + + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP))); + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getNotificationService().deletionNotification(netconfDomAccessor.getNodeId(), + Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER)), + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP)), + Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF)); + + log.debug("onObjectDeletionNotification log entry written"); + } + + public void onProblemNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + FaultlogEntity faultAlarm = new FaultlogBuilder() + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF)) + .setProblem(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_PROBLEM)) + .setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))) + .setNodeId(this.netconfDomAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf) + .setSeverity(InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_SEVERITY))) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER))) + .build(); + serviceProvider.getFaultService().faultNotification(faultAlarm); + serviceProvider.getWebsocketService() + .sendNotification(notification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF, + new DateAndTime(cn.childByArg(new NodeIdentifier( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP)) + .body().toString())); + + } + + public void onAttributeValueChangedNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()) + .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME)) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER))) + .setNewValue(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_NEW_VALUE)) + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF)) + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP))); + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP))); + + log.debug("onAttributeValueChangedNotification log entry written"); + } + + public void onObjectCreationNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()) + .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF)) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_COUNTER))) + .setNewValue("created") + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF)) + + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP))); + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP))); + + 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/dom/impl/Onf14DomNetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElement.java new file mode 100644 index 000000000..56834a13d --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElement.java @@ -0,0 +1,163 @@ +/* + * ============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.dom.impl; + +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.dom.impl.dataprovider.Onf14DomToInternalDataModel; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.equipment.Onf14DomEquipmentManager; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.Onf14DomInterfacePacManager; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +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.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.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.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +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: + */ +public class Onf14DomNetworkElement implements NetworkElement { + + private static final Logger log = LoggerFactory.getLogger(Onf14DomNetworkElement.class); + + protected static final YangInstanceIdentifier TOPLEVELEQUIPMENT_IID = + YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_TOP_LEVEL_EQPT).build(); + + private final NetconfDomAccessor netconfDomAccessor; + private final DataProvider databaseService; + private final @NonNull FaultService faultService; + private final @NonNull NotificationService notificationService; + + private final Onf14DomToInternalDataModel onf14Mapper; + + private final @NonNull Onf14DomEquipmentManager equipmentManager; + private final @NonNull Onf14DomInterfacePacManager interfacePacManager; + private final @NonNull String namespaceRevision; + + 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 Onf14DomToInternalDataModel(); + this.equipmentManager = new Onf14DomEquipmentManager(netconfDomAccessor, databaseService, onf14Mapper); + this.interfacePacManager = new Onf14DomInterfacePacManager(netconfDomAccessor, serviceProvider); + + } + + /** + * reading the inventory (CoreModel 1.4 Equipment Model) and adding it to the DB + */ + public void initialReadFromNetworkElement() { + log.info("Calling read equipment"); + // Read complete device tree + readEquipmentData(); + + // Read fault data and subscribe for notifications + interfacePacManager.register(); + + int problems = faultService.removeAllCurrentProblemsOfNode(netconfDomAccessor.getNodeId()); + log.debug("Removed all {} problems from database at registration", problems); + + } + + /** + * @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()) { + // Output notification streams to LOG + Map 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 Optional getService(Class clazz) { + return Optional.empty(); + } + + @Override + public void warmstart() {} + + @Override + public Optional getAcessor() { + return Optional.of(netconfDomAccessor); + } + + @Override + public NetworkElementDeviceType getDeviceType() { + return NetworkElementDeviceType.Wireless; + } + + private void readEquipmentData() { + Optional topLevelEquipment = readTopLevelEquipment(netconfDomAccessor); + log.info("Top level equipment data is {}", topLevelEquipment.isPresent() ? topLevelEquipment.get() : null); + if (topLevelEquipment.isPresent()) { + equipmentManager.setEquipmentData(topLevelEquipment.get()); + } + + } + + private Optional readTopLevelEquipment(NetconfDomAccessor netconfDomAccessor) { + log.info("Reading Top level equipment data"); + return netconfDomAccessor.readDataNode(LogicalDatastoreType.CONFIGURATION, TOPLEVELEQUIPMENT_IID); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElementFactory.java new file mode 100644 index 000000000..b47f56d31 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomNetworkElementFactory.java @@ -0,0 +1,54 @@ +/* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2022 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.dom.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.onf14.dom.impl.util.Onf14DevicemanagerQNames; +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.NetconfDomAccessor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Onf14DomNetworkElementFactory implements NetworkElementFactory { + + private static final Logger log = LoggerFactory.getLogger(Onf14DomNetworkElementFactory.class); + + @Override + public Optional create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) { + + Optional ne = Optional.empty(); + Capabilities capabilities = accessor.getCapabilites(); + if (capabilities.isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)) { + String namespaceRevision = capabilities.getRevisionForNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER); + + Optional domAccessor = accessor.getNetconfDomAccessor(); + if (domAccessor.isPresent()) { + ne = Optional.of(new Onf14DomNetworkElement(domAccessor.get(), serviceProvider, namespaceRevision)); + } + + log.info("Create device:{}", ne.isPresent() ? ne.get().getClass().getSimpleName() : "not"); + } + return ne; + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomWireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomWireInterfaceNotificationListener.java new file mode 100644 index 000000000..5d148d3a3 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/Onf14DomWireInterfaceNotificationListener.java @@ -0,0 +1,145 @@ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl; + +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.mdsal.dom.api.DOMNotificationListener; +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.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.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Onf14DomWireInterfaceNotificationListener implements DOMNotificationListener { + + private static final Logger log = LoggerFactory.getLogger(Onf14DomWireInterfaceNotificationListener.class); + + private final NetconfDomAccessor netconfDomAccessor; + private final DeviceManagerServiceProvider serviceProvider; + + public Onf14DomWireInterfaceNotificationListener(NetconfDomAccessor netconfDomAccessor, + DeviceManagerServiceProvider serviceProvider) { + this.netconfDomAccessor = netconfDomAccessor; + this.serviceProvider = serviceProvider; + } + + @Override + public void onNotification(@NonNull DOMNotification domNotification) { + log.debug("Got event of type :: {}", domNotification.getType()); + if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION))) { + onObjectCreationNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION))) { + onAttributeValueChangedNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION))) { + onProblemNotification(domNotification); + } else if (domNotification.getType() + .equals(Absolute.of(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION))) { + onObjectDeletionNotification(domNotification); + } + } + + public void onObjectDeletionNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()).setAttributeName("") + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER))) + .setNewValue("deleted") + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF)) + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP))); + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP))); + + log.debug("onObjectDeletionNotification log entry written"); + } + + public void onProblemNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + FaultlogEntity faultAlarm = + new FaultlogBuilder() + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF)) + .setProblem(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM)) + .setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))) + .setNodeId(this.netconfDomAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf) + .setSeverity(InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY))) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER))) + .build(); + serviceProvider.getFaultService().faultNotification(faultAlarm); + serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))); + + } + + public void onAttributeValueChangedNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()) + .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME)) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER))) + .setNewValue(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE)) + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF)) + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))); + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))); + + log.debug("onAttributeValueChangedNotification log entry written"); + } + + public void onObjectCreationNotification(DOMNotification notification) { + + ContainerNode cn = notification.getBody(); + EventlogBuilder eventlogBuilder = new EventlogBuilder(); + eventlogBuilder.setNodeId(netconfDomAccessor.getNodeId().getValue()) + .setAttributeName(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE)) + .setCounter(Integer.parseInt(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER))) + .setNewValue("created") + .setObjectId(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF)) + + .setSourceType(SourceType.Netconf).setTimestamp(new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))); + serviceProvider.getDataProvider().writeEventLog(eventlogBuilder.build()); + serviceProvider.getWebsocketService().sendNotification(notification, netconfDomAccessor.getNodeId(), + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION, + new DateAndTime(Onf14DMDOMUtility.getLeafValue(cn, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP))); + + 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/dom/impl/dataprovider/InternalDataModelSeverity.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/InternalDataModelSeverity.java new file mode 100644 index 000000000..6d31d7392 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/InternalDataModelSeverity.java @@ -0,0 +1,46 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2022 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.dom.impl.dataprovider; + +import java.util.Map; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class InternalDataModelSeverity { + + private static Logger log = LoggerFactory.getLogger(InternalDataModelSeverity.class); + private static final Map SEVERITYMAP = + Map.of("SEVERITY_TYPE_MAJOR", SeverityType.Major, "SEVERITY_TYPE_CRITICAL", SeverityType.Critical, + "SEVERITY_TYPE_MINOR", SeverityType.Minor, "SEVERITY_TYPE_WARNING", SeverityType.Warning); + + public static SeverityType mapSeverity(String severity) { + log.debug("Severity is - {}", severity); + SeverityType res = null; + if (severity != null) { + res = SEVERITYMAP.get(severity); + } + 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/dom/impl/dataprovider/Onf14DomToInternalDataModel.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/Onf14DomToInternalDataModel.java new file mode 100644 index 000000000..8a75bbc11 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/dataprovider/Onf14DomToInternalDataModel.java @@ -0,0 +1,126 @@ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +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.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Onf14DomToInternalDataModel { + private static final Logger LOG = LoggerFactory.getLogger(Onf14DomToInternalDataModel.class); + + public Inventory getInternalEquipment(NodeId nodeId, MapEntryNode currentEq, MapEntryNode parentEq, + long treeLevel) { + + Objects.requireNonNull(nodeId); + Objects.requireNonNull(currentEq); + + InventoryBuilder inventoryBuilder = new InventoryBuilder(); + String parentUuid = parentEq != null ? Onf14DMDOMUtility.getUuidFromEquipment(parentEq) : "None"; + + // General + inventoryBuilder.setNodeId(nodeId.getValue()); + inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel)); + inventoryBuilder.setUuid(Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + inventoryBuilder.setParentUuid(parentUuid); + + List containedHolderKeyList = new ArrayList<>(); + MapNode containedHolderMap = (MapNode) currentEq + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_CONTAINED_HOLDER)); + if (containedHolderMap != null) { + Collection containedHolderCollection = containedHolderMap.body(); + for (MapEntryNode holder : containedHolderCollection) { + String occupyingFru = Onf14DMDOMUtility.getLeafValue(holder, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_OCCUPYING_FRU); + + if (occupyingFru != null) { + containedHolderKeyList.add(occupyingFru); + } + } + } + inventoryBuilder.setContainedHolder(containedHolderKeyList); + + // actual-equipment + ContainerNode actualEquipment = (ContainerNode) currentEq + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQUIPMENT)); + if (actualEquipment != null) { + ContainerNode manThing = (ContainerNode) actualEquipment + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURED_THING)); + if (manThing != null) { + // Manufacturer properties + ContainerNode props = (ContainerNode) manThing + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_PROPS)); + if (props != null) { + inventoryBuilder.setManufacturerName(Onf14DMDOMUtility.getLeafValue(props, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_NAME)); + + inventoryBuilder.setManufacturerIdentifier(Onf14DMDOMUtility.getLeafValue(props, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_ID)); + + } else { + LOG.debug("manufacturer-properties is not present in Equipment with uuid={}", + Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + } + + // Equipment instance + ContainerNode equipmentInstance = (ContainerNode) manThing.childByArg( + new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE)); + if (equipmentInstance != null) { + inventoryBuilder.setSerial(Onf14DMDOMUtility.getLeafValue(equipmentInstance, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_SERIAL_NUM)); + + inventoryBuilder.setDate(Onf14DMDOMUtility.getLeafValue(equipmentInstance, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_MANUFACTURED_DATE)); + + } else { + LOG.debug("equipment-instance is not present in Equipment with uuid={}", + Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + } + + // Equipment type + ContainerNode equipmentType = (ContainerNode) manThing.childByArg( + new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE)); + if (equipmentType != null) { + inventoryBuilder.setVersion(Onf14DMDOMUtility.getLeafValue(equipmentType, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_VERSION)); + + inventoryBuilder.setDescription(Onf14DMDOMUtility.getLeafValue(equipmentType, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_DESCRIPTION)); + + inventoryBuilder.setPartTypeId(Onf14DMDOMUtility.getLeafValue(equipmentType, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_PART_TYPE_ID)); + + inventoryBuilder.setModelIdentifier(Onf14DMDOMUtility.getLeafValue(equipmentType, + + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_MODEL_ID)); + + inventoryBuilder.setTypeName(Onf14DMDOMUtility.getLeafValue(equipmentType, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_TYPE_NAME)); + + } else { + LOG.debug("equipment-type is not present in Equipment with uuid={}", + Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + } + } else { + LOG.debug("manufactured-thing is not present in Equipment with uuid={}", + Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + } + } else { + LOG.debug("actual-equipment is not present in Equipment with uuid={}", + Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + } + + return inventoryBuilder.build(); + } +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/equipment/Onf14DomEquipmentManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/equipment/Onf14DomEquipmentManager.java new file mode 100644 index 000000000..8f7a44858 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/equipment/Onf14DomEquipmentManager.java @@ -0,0 +1,171 @@ +/* + * ============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.dom.impl.equipment; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.Onf14DomToInternalDataModel; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; +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.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +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 { + + private static final Logger log = LoggerFactory.getLogger(Onf14DomEquipmentManager.class); + private static final int EQUIPMENTROOTLEVEL = 0; + + private final NetconfDomAccessor netconfDomAccessor; + private final DataProvider databaseService; + private final Onf14DomToInternalDataModel onf14Mapper; + private final List equipmentUuidList; + + public Onf14DomEquipmentManager(NetconfDomAccessor netconfDomAccessor, DataProvider databaseService, + Onf14DomToInternalDataModel onf14Mapper) { + super(); + this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor); + this.databaseService = Objects.requireNonNull(databaseService); + this.onf14Mapper = Objects.requireNonNull(onf14Mapper); + + this.equipmentUuidList = new ArrayList<>(); + } + + public List getEquipmentUuidList() { + return equipmentUuidList; + } + + private List collectEquipment(List list, MapEntryNode currentEq, MapEntryNode 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(Onf14DMDOMUtility.getUuidFromEquipment(currentEq))) { + log.debug("Not adding equipment with uuid {} because it was aleady added...", + Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + return list; + } + + // we add this to our internal list, such that we avoid circular dependencies + equipmentUuidList.add(Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + log.debug("Adding equipment with uuid {} to the database...", + Onf14DMDOMUtility.getUuidFromEquipment(currentEq)); + + // 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 + + MapNode containedHolderMap = (MapNode) currentEq + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_CONTAINED_HOLDER)); + if (containedHolderMap != null) { + Collection containedHolderCollection = containedHolderMap.body(); + for (MapEntryNode holder : containedHolderCollection) { + String occupyingFru = Onf14DMDOMUtility.getLeafValue(holder, + Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_OCCUPYING_FRU); + + if (occupyingFru != null) { + Optional childEq = readEquipmentInstance(netconfDomAccessor, occupyingFru); + if (childEq.isPresent()) { + // current becomes parent and tree level increases by 1 + collectEquipment(list, (MapEntryNode) childEq.get(), currentEq, treeLevel + 1); + } + } + } + } + + return list; + } + + // public methods + /** + * Set all equipment data from controlConstruct into database and into this manager. + * + * @param controlConstruct with complete device data + */ + public void setEquipmentData(NormalizedNode 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 + List inventoryList = new ArrayList<>(); + for (String uuid : getTopLevelEquipment(controlConstruct)) { + Optional equipment = readEquipmentInstance(netconfDomAccessor, uuid); + MapEntryNode equipmentEntry = (MapEntryNode) equipment.get(); + if (equipmentEntry != null) { + collectEquipment(inventoryList, equipmentEntry, null, EQUIPMENTROOTLEVEL); + } + } + this.databaseService.writeInventory(netconfDomAccessor.getNodeId().getValue(), inventoryList); + + } + + private List getTopLevelEquipment(NormalizedNode transformedInput) { + List topLvlEqptList = new ArrayList<>(); + Collection topLevelEqptListColl = (Collection) transformedInput.body(); + Iterator childEntryItr = topLevelEqptListColl.iterator(); + while (childEntryItr.hasNext()) { + LeafSetEntryNode childEntryNode = (LeafSetEntryNode) childEntryItr.next(); + topLvlEqptList.add((String) childEntryNode.body()); + } + return topLvlEqptList; + } + + /** + * @param accessData to access device + * @param equipmentUuid uuid of equipment to be read + * @return Optional Equipment + */ + private Optional readEquipmentInstance(NetconfDomAccessor accessData, String equipmentUuid) { + + log.info("DBRead Get equipment from mountpoint {} for uuid {}", accessData.getNodeId().getValue(), + equipmentUuid); + + InstanceIdentifierBuilder equipmentIIDBuilder = YangInstanceIdentifier.builder() + .node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT) + .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT, + QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT, "uuid").intern(), equipmentUuid); + + return accessData.readDataNode(LogicalDatastoreType.CONFIGURATION, equipmentIIDBuilder.build()); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/Onf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/Onf14DomInterfacePacManager.java new file mode 100644 index 000000000..eed6f5da3 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/Onf14DomInterfacePacManager.java @@ -0,0 +1,458 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2022 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.dom.impl.interfaces; + +import com.google.common.collect.Sets; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomAirInterfaceNotificationListener; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomEthernetContainerNotificationListener; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomWireInterfaceNotificationListener; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.InternalDataModelSeverity; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Debug; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +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.NetconfDomAccessor; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +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; + +/* +* 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 { + + private static final Logger log = LoggerFactory.getLogger(Onf14DomInterfacePacManager.class); + + private static final YangInstanceIdentifier LTP_IID = + YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP).build(); + + private final NetconfDomAccessor netconfDomAccessor; + private final @NonNull DeviceManagerServiceProvider serviceProvider; + + // air interface related members + private final List airInterfaceList = new ArrayList<>(); + @NonNull + private final Onf14DomAirInterfaceNotificationListener airInterfaceNotificationListener; + + // ethernet container related members + private final List ethernetContainerList = new ArrayList<>(); + @NonNull + private final Onf14DomEthernetContainerNotificationListener ethernetContainerNotificationListener; + + // wire interface related members + private final List wireInterfaceList = new ArrayList<>(); + @NonNull + private final Onf14DomWireInterfaceNotificationListener wireInterfaceNotificationListener; + + private final @NonNull FaultService faultService; + + public Onf14DomInterfacePacManager(@NonNull NetconfDomAccessor netconfDomAccessor, + @NonNull DeviceManagerServiceProvider serviceProvider) { + + this.netconfDomAccessor = Objects.requireNonNull(netconfDomAccessor); + this.serviceProvider = Objects.requireNonNull(serviceProvider); + this.faultService = Objects.requireNonNull(serviceProvider.getFaultService()); + + this.airInterfaceNotificationListener = + new Onf14DomAirInterfaceNotificationListener(netconfDomAccessor, serviceProvider); + this.ethernetContainerNotificationListener = + new Onf14DomEthernetContainerNotificationListener(netconfDomAccessor, serviceProvider); + this.wireInterfaceNotificationListener = + new Onf14DomWireInterfaceNotificationListener(netconfDomAccessor, serviceProvider); + } + + public void register() { + // storing all the LTP UUIDs internally, for later usage, for air-interface and + // ethernet-container and wire-interface + readKeys(); + readAndWriteInterfaceCurrentProblems(); + registerForNotifications(); + } + + private void readAndWriteInterfaceCurrentProblems() { + // Read all fault data + FaultData resultList = new FaultData(); + int 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.", problems); + + 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"); + + } + + private void readKeys() { + Optional ltpData = readLtpData(netconfDomAccessor); + log.info("LTP Data is - {}", ltpData); + if (ltpData.isPresent()) { + log.debug("In readKeys - ltpData = {}", ltpData.get()); + + MapNode ccLtp = (MapNode) ltpData.get(); + if (ccLtp != null) { + log.debug("Iterating the LTP list for node {}", netconfDomAccessor.getNodeId().getValue()); + Collection ltpList = ccLtp.body(); + + // iterating all the Logical Termination Point list + for (MapEntryNode ltp : ltpList) { + MapNode lpList = (MapNode) ltp + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL)); + // the Layer Protocol list should contain only one item, since we have an 1:1 + // relationship between the LTP and the LP + if (lpList != null && lpList.size() != 1) { + log.debug("Layer protocol has no 1:1 relationship with the LTP."); + return; + } + // accessing the LP, which should be only 1 + Collection lp = lpList.body(); + for (MapEntryNode lpEntry : lp) { + String layerProtocolName = Onf14DMDOMUtility.getLeafValue(lpEntry, + + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_NAME); + if (layerProtocolName != null) { + // if the LTP has an airInterface technology extension, the layer protocol name + // is air-layer + if (layerProtocolName.contains("LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER")) { + TechnologySpecificPacKeys airInterfaceKey = new TechnologySpecificPacKeys( + Onf14DMDOMUtility.getLeafValue(ltp, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID), + Onf14DMDOMUtility.getLeafValue(lpEntry, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID)); + airInterfaceList.add(airInterfaceKey); + log.debug("Adding Ltp with uuid {} and local-id {} to the air-interface list", + Onf14DMDOMUtility.getLeafValue(ltp, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID), + Onf14DMDOMUtility.getLeafValue(lpEntry, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID)); + } + // if the LTP has an ethernetContainier technology extension, the layer protocol + // name is ethernet-container-layer + else if (layerProtocolName.contains("LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER")) { + TechnologySpecificPacKeys ethernetContainerKey = new TechnologySpecificPacKeys( + Onf14DMDOMUtility.getLeafValue(ltp, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID), + Onf14DMDOMUtility.getLeafValue(lpEntry, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID)); + ethernetContainerList.add(ethernetContainerKey); + log.debug("Adding Ltp with uuid {} and local-id {} to the ethernet-container list", + Onf14DMDOMUtility.getLeafValue(ltp, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID), + Onf14DMDOMUtility.getLeafValue(lpEntry, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID)); + } else if (layerProtocolName.contains("LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER")) { + TechnologySpecificPacKeys wireInterfaceKey = new TechnologySpecificPacKeys( + Onf14DMDOMUtility.getLeafValue(ltp, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID), + Onf14DMDOMUtility.getLeafValue(lpEntry, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID)); + wireInterfaceList.add(wireInterfaceKey); + log.debug("Adding Ltp with uuid {} and local-id {} to the wire-interface list", + Onf14DMDOMUtility.getLeafValue(ltp, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_UUID), + Onf14DMDOMUtility.getLeafValue(lpEntry, + Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID)); + } + } + } + } + } + } + } + + private void readAllAirInterfaceCurrentProblems(FaultData resultList) { + + int idxStart; // Start index for debug messages + + for (TechnologySpecificPacKeys key : airInterfaceList) { + idxStart = resultList.size(); + + readAirInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList); + Debug.debugResultList(key.getLtpUuid(), resultList, idxStart); + } + } + + private void readAllEhernetContainerCurrentProblems(FaultData resultList) { + + int idxStart; // Start index for debug messages + + for (TechnologySpecificPacKeys key : ethernetContainerList) { + idxStart = resultList.size(); + + readEthernetContainerCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList); + Debug.debugResultList(key.getLtpUuid(), resultList, idxStart); + } + } + + private void readAllWireInterfaceCurrentProblems(FaultData resultList) { + + int idxStart; // Start index for debug messages + + for (TechnologySpecificPacKeys key : wireInterfaceList) { + idxStart = resultList.size(); + + readWireInterfaceCurrentProblemForLtp(key.getLtpUuid(), key.getLocalId(), resultList); + Debug.debugResultList(key.getLtpUuid(), resultList, idxStart); + } + } + + private void readAirInterfaceCurrentProblemForLtp(String ltpUuid, String localId, FaultData resultList) { + + log.info("DBRead Get current problems for class {} from mountpoint {} for LTP uuid {} and local-id {}", + Onf14DevicemanagerQNames.AIR_INTERFACE_2_0_MODULE, netconfDomAccessor.getNodeId().getValue(), ltpUuid, + localId); + + // constructing the IID needs the augmentation exposed by the air-interface-2-0 + // model + + InstanceIdentifierBuilder layerProtocolIID = + YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP) + .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, + QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, "uuid").intern(), ltpUuid) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL) + .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, QName + .create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, "local-id").intern(), + localId); + + @NonNull + AugmentationIdentifier airInterfacePacIID = YangInstanceIdentifier.AugmentationIdentifier + .create(Sets.newHashSet(Onf14DevicemanagerQNames.AIR_INTERFACE_PAC)); + + InstanceIdentifierBuilder augmentedAirInterfacePacIID = + YangInstanceIdentifier.builder(layerProtocolIID.build()).node(airInterfacePacIID); + + // reading all the current-problems list for this specific LTP and LP + Optional airInterfacePacDataOpt = + netconfDomAccessor.readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedAirInterfacePacIID.build()); + + if (airInterfacePacDataOpt.isPresent()) { + AugmentationNode airInterfacePacData = (AugmentationNode) airInterfacePacDataOpt.get(); + + MapNode airInterfaceCurrentProblemsList = (MapNode) airInterfacePacData + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_LIST)); + if (airInterfaceCurrentProblemsList != null) { + Collection airInterfaceProblemsCollection = airInterfaceCurrentProblemsList.body(); + for (MapEntryNode airInterfaceProblem : airInterfaceProblemsCollection) { + resultList.add(netconfDomAccessor.getNodeId(), + Integer.parseInt(Onf14DMDOMUtility.getLeafValue(airInterfaceProblem, + Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_SEQ_NO)), + new DateAndTime(Onf14DMDOMUtility.getLeafValue(airInterfaceProblem, + Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP)), + ltpUuid, + Onf14DMDOMUtility.getLeafValue(airInterfaceProblem, + Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME), + InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(airInterfaceProblem, + Onf14DevicemanagerQNames.AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY))); + } + } else { + log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid); + } + } + } + + private void readEthernetContainerCurrentProblemForLtp(String ltpUuid, String localId, FaultData resultList) { + + log.info( + "DBRead Get current problems for Ethernet Container from mountpoint {} for LTP uuid {} and local-id {}", + netconfDomAccessor.getNodeId().getValue(), ltpUuid, localId); + + // constructing the IID needs the augmentation exposed by the + // ethernet-container-2-0 model + InstanceIdentifierBuilder layerProtocolIID = + YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP) + .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, + QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, "uuid").intern(), ltpUuid) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL) + .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, QName + .create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, "local-id").intern(), + localId); + + @NonNull + AugmentationIdentifier ethernetContainerIID = YangInstanceIdentifier.AugmentationIdentifier + .create(Sets.newHashSet(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_PAC)); + + InstanceIdentifierBuilder augmentedEthernetContainerConfigurationIID = + YangInstanceIdentifier.builder(layerProtocolIID.build()).node(ethernetContainerIID); + + // reading all the current-problems list for this specific LTP and LP + Optional etherntContainerConfigurationOpt = netconfDomAccessor + .readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedEthernetContainerConfigurationIID.build()); + + if (etherntContainerConfigurationOpt.isPresent()) { + AugmentationNode etherntContainerConfiguration = (AugmentationNode) etherntContainerConfigurationOpt.get(); + MapNode ethernetContainerCurrentProblemsList = (MapNode) etherntContainerConfiguration + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_LIST)); + if (ethernetContainerCurrentProblemsList != null) { + Collection ethernetContainerProblemsCollection = + ethernetContainerCurrentProblemsList.body(); + for (MapEntryNode ethernetContainerProblem : ethernetContainerProblemsCollection) { + resultList.add(netconfDomAccessor.getNodeId(), + Integer.parseInt(Onf14DMDOMUtility.getLeafValue(ethernetContainerProblem, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_SEQ_NO)), + new DateAndTime(Onf14DMDOMUtility.getLeafValue(ethernetContainerProblem, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_TIMESTAMP)), + ltpUuid, + Onf14DMDOMUtility.getLeafValue(ethernetContainerProblem, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_NAME), + InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue( + ethernetContainerProblem, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_SEVERITY))); + } + } else { + log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid); + } + } + + } + + private void readWireInterfaceCurrentProblemForLtp(String ltpUuid, String localId, FaultData resultList) { + + log.info("DBRead Get current problems for Wire Interface from mountpoint {} for LTP uuid {} and local-id {}", + netconfDomAccessor.getNodeId().getValue(), ltpUuid, localId); + + // constructing the IID needs the augmentation exposed by the wire-interface-2-0 + // model + InstanceIdentifierBuilder layerProtocolIID = + YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP) + .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, + QName.create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP, "uuid").intern(), ltpUuid) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL) + .nodeWithKey(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, QName + .create(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP_LAYER_PROTOCOL, "local-id").intern(), + localId); + + @NonNull + AugmentationIdentifier wireInterfacePacIID = YangInstanceIdentifier.AugmentationIdentifier + .create(Sets.newHashSet(Onf14DevicemanagerQNames.WIRE_INTERFACE_PAC)); + + InstanceIdentifierBuilder augmentedWireInterfaceConfigurationIID = + YangInstanceIdentifier.builder(layerProtocolIID.build()).node(wireInterfacePacIID); + + // reading all the current-problems list for this specific LTP and LP + Optional wireInterfaceConfigurationOpt = netconfDomAccessor + .readDataNode(LogicalDatastoreType.OPERATIONAL, augmentedWireInterfaceConfigurationIID.build()); + + if (wireInterfaceConfigurationOpt.isPresent()) { + AugmentationNode wireInterfaceConfiguration = (AugmentationNode) wireInterfaceConfigurationOpt.get(); + MapNode wireInterfaceCurrentProblemsList = (MapNode) wireInterfaceConfiguration + .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_LIST)); + if (wireInterfaceCurrentProblemsList != null) { + Collection wireInterfaceProblemsCollection = wireInterfaceCurrentProblemsList.body(); + for (MapEntryNode wireInterfaceProblem : wireInterfaceProblemsCollection) { + resultList.add(netconfDomAccessor.getNodeId(), + Integer.parseInt(Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem, + Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_SEQ_NO)), + new DateAndTime(Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem, + Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP)), + ltpUuid, + Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem, + Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME), + InternalDataModelSeverity.mapSeverity(Onf14DMDOMUtility.getLeafValue(wireInterfaceProblem, + Onf14DevicemanagerQNames.WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY))); + } + } else { + log.debug("DBRead Id {} empty CurrentProblemList", ltpUuid); + } + } + + } + + private void registerForNotifications() { + QName[] airInterfaceNotifications = {Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION, + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION}; + netconfDomAccessor.doRegisterNotificationListener(airInterfaceNotificationListener, airInterfaceNotifications); + + QName[] ethernetContainerNotifications = + {Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION, + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION}; + netconfDomAccessor.doRegisterNotificationListener(ethernetContainerNotificationListener, + ethernetContainerNotifications); + + QName[] wireInterfaceNotifications = {Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION, + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION}; + netconfDomAccessor.doRegisterNotificationListener(wireInterfaceNotificationListener, + wireInterfaceNotifications); + } + + public Optional readLtpData(NetconfDomAccessor netconfDomAccessor) { + log.info("Reading Logical Termination Point data"); + return netconfDomAccessor.readDataNode(LogicalDatastoreType.CONFIGURATION, LTP_IID); + } +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/TechnologySpecificPacKeys.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/TechnologySpecificPacKeys.java new file mode 100644 index 000000000..3fcc332c0 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/interfaces/TechnologySpecificPacKeys.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.onf14.dom.impl.interfaces; + + +/** + * Defining a structure that can map the LP local-id and its corresponding LTP uuid + */ +public class TechnologySpecificPacKeys { + + private String ltpUuid; + private String localId; + + public TechnologySpecificPacKeys(String uuid, String lId) { + this.ltpUuid = uuid; + this.localId = lId; + } + + public String getLtpUuid() { + return ltpUuid; + } + + public String getLocalId() { + return localId; + } + + public void setLtpUuid(String 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/dom/impl/util/Debug.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Debug.java new file mode 100644 index 000000000..978c71e31 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/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.dom.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/dom/impl/util/Onf14DMDOMUtility.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DMDOMUtility.java new file mode 100644 index 000000000..1cae567ff --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DMDOMUtility.java @@ -0,0 +1,77 @@ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util; + +import com.google.common.base.VerifyException; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Onf14DMDOMUtility { + + public static final Logger LOG = LoggerFactory.getLogger(Onf14DMDOMUtility.class); + + private Onf14DMDOMUtility() {} + + public static String getLeafValue(DataContainerNode componentEntry, QName leafQName) { + NodeIdentifier leafNodeIdentifier = new NodeIdentifier(leafQName); + try { + LeafNode optLeafNode = (LeafNode) componentEntry.getChildByArg(leafNodeIdentifier); + if (optLeafNode.body() instanceof QName) { + LOG.debug("Leaf is of type QName"); //Ex: ImmutableLeafNode{identifier=(urn:onf:yang:air-interface-2-0?revision=2020-01-21)severity, body=(urn:onf:yang:air-interface-2-0?revision=2020-01-21)SEVERITY_TYPE_MAJOR} + String severity_ = optLeafNode.body().toString(); + return severity_.substring(severity_.indexOf(')')+1); //Any other solution?? + } + return optLeafNode.body().toString(); + } catch (VerifyException ve) { + LOG.debug("Leaf with QName {} not found", leafQName); + return null; + } + } + + public static List getLeafListValue(DataContainerNode componentEntry, QName leafListQName) { + List containsChildList = new ArrayList<>(); + try { + DataContainerChild childSet = componentEntry.getChildByArg(new NodeIdentifier(leafListQName)); + Collection childEntry = (Collection) childSet.body(); + Iterator childEntryItr = childEntry.iterator(); + while (childEntryItr.hasNext()) { + LeafSetEntryNode childEntryNode = (LeafSetEntryNode) childEntryItr.next(); + containsChildList.add(childEntryNode.body().toString()); + } + } catch (VerifyException ve) { + LOG.debug("Child for {} does not exist", leafListQName); + } + return containsChildList; + } + + public static String getUuidFromEquipment(MapEntryNode equipment) { + LOG.debug("Equipment Identifier is {}", equipment.getIdentifier()); + NodeIdentifierWithPredicates componentKey = equipment.getIdentifier(); // list key + LOG.debug("Key Name is - {}", componentKey.keySet()); + LOG.debug("Key Value is - {}", + componentKey.getValue(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_GLOBAL_CLASS_UUID)); + + return componentKey.getValue(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_GLOBAL_CLASS_UUID).toString(); + } + + public static Instant getNotificationInstant(DOMNotification notification) { + if (notification instanceof DOMEvent) { + return ((DOMEvent) notification).getEventInstant(); + } else { + return Instant.now(); + } + } +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DevicemanagerQNames.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DevicemanagerQNames.java new file mode 100644 index 000000000..58abf021f --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/impl/util/Onf14DevicemanagerQNames.java @@ -0,0 +1,251 @@ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util; + +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; + +public class Onf14DevicemanagerQNames { + public static final QNameModule CORE_MODEL_1_4_MODULE = + QNameModule.create(XMLNamespace.of("urn:onf:yang:core-model-1-4"), Revision.of("2019-11-27")); + public static final QName CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER = + QName.create(CORE_MODEL_1_4_MODULE, "control-construct"); + public static final QName CORE_MODEL_CC_TOP_LEVEL_EQPT = QName.create(CORE_MODEL_1_4_MODULE, "top-level-equipment"); + public static final QName CORE_MODEL_CC_EQPT = QName.create(CORE_MODEL_1_4_MODULE, "equipment"); + public static final QName CORE_MODEL_CC_EQPT_GLOBAL_CLASS_UUID = QName.create(CORE_MODEL_1_4_MODULE, "uuid"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQUIPMENT = + QName.create(CORE_MODEL_1_4_MODULE, "actual-equipment"); + public static final QName CORE_MODEL_CC_EQPT_CONTAINED_HOLDER = + QName.create(CORE_MODEL_1_4_MODULE, "contained-holder"); + public static final QName CORE_MODEL_CC_EQPT_OCCUPYING_FRU = QName.create(CORE_MODEL_1_4_MODULE, "occupying-fru"); + public static final QName CORE_MODEL_CC_EQPT_MANUFACTURED_THING = + QName.create(CORE_MODEL_1_4_MODULE, "manufactured-thing"); + public static final QName CORE_MODEL_CC_EQPT_MANUFACTURER_PROPS = + QName.create(CORE_MODEL_1_4_MODULE, "manufacturer-properties"); + public static final QName CORE_MODEL_CC_EQPT_MANUFACTURER_NAME = + QName.create(CORE_MODEL_1_4_MODULE, "manufacturer-name"); + public static final QName CORE_MODEL_CC_EQPT_MANUFACTURER_ID = + QName.create(CORE_MODEL_1_4_MODULE, "manufacturer-identifier"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE = + QName.create(CORE_MODEL_1_4_MODULE, "equipment-instance"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_SERIAL_NUM = + QName.create(CORE_MODEL_1_4_MODULE, "serial-number"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_MANUFACTURED_DATE = + QName.create(CORE_MODEL_1_4_MODULE, "manufactured-date"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE = + QName.create(CORE_MODEL_1_4_MODULE, "equipment-type"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_VERSION = + QName.create(CORE_MODEL_1_4_MODULE, "version"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_DESCRIPTION = + QName.create(CORE_MODEL_1_4_MODULE, "description"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_MODEL_ID = + QName.create(CORE_MODEL_1_4_MODULE, "model-identifier"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_PART_TYPE_ID = + QName.create(CORE_MODEL_1_4_MODULE, "part-type-identifier"); + public static final QName CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_TYPE_NAME = + QName.create(CORE_MODEL_1_4_MODULE, "type-name"); + + + public static final QName CORE_MODEL_CC_LTP = QName.create(CORE_MODEL_1_4_MODULE, "logical-termination-point"); + public static final QName CORE_MODEL_CC_LTP_LAYER_PROTOCOL = QName.create(CORE_MODEL_1_4_MODULE, "layer-protocol"); + public static final QName CORE_MODEL_CC_LTP_LAYER_PROTOCOL_NAME = + QName.create(CORE_MODEL_1_4_MODULE, "layer-protocol-name"); + public static final QName CORE_MODEL_CC_LTP_LAYER_PROTOCOL_LOCAL_ID = + QName.create(CORE_MODEL_1_4_MODULE, "local-id"); + public static final QName CORE_MODEL_CC_LTP_UUID = QName.create(CORE_MODEL_1_4_MODULE, "uuid"); + + //Interface Notifications - common fields + private static String COUNTER = "counter"; + private static String OBJECT_ID_REF = "object-id-ref"; + private static String TIMESTAMP = "timestamp"; + // Air-interface + public static final QNameModule AIR_INTERFACE_2_0_MODULE = + QNameModule.create(XMLNamespace.of("urn:onf:yang:air-interface-2-0"), Revision.of("2020-01-21")); + public static final QName AIR_INTERFACE_PAC = QName.create(AIR_INTERFACE_2_0_MODULE, "air-interface-pac"); + public static final QName AIR_INTERFACE_CURRENT_PROBLEMS = + QName.create(AIR_INTERFACE_2_0_MODULE, "air-interface-current-problems"); + public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_LIST = + QName.create(AIR_INTERFACE_2_0_MODULE, "current-problem-list"); + public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_SEQ_NO = + QName.create(AIR_INTERFACE_2_0_MODULE, "sequence-number"); + public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP = + QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP); + public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME = + QName.create(AIR_INTERFACE_2_0_MODULE, "problem-name"); + public static final QName AIR_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY = + QName.create(AIR_INTERFACE_2_0_MODULE, "problem-severity"); + // Creation notification + public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION = + QName.create(AIR_INTERFACE_2_0_MODULE, "object-creation-notification"); + public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE = + QName.create(AIR_INTERFACE_2_0_MODULE, "object-type"); + public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER = + QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER); + public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP = + QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP); + public static final QName AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF = + QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + //AVC notification + public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION = + QName.create(AIR_INTERFACE_2_0_MODULE, "attribute-value-changed-notification"); + public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER = + QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER); + public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP = + QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP); + public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF = + QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME = + QName.create(AIR_INTERFACE_2_0_MODULE, "attribute-name"); + public static final QName AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE = + QName.create(AIR_INTERFACE_2_0_MODULE, "new-value"); + //problem notification + public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION = + QName.create(AIR_INTERFACE_2_0_MODULE, "problem-notification"); + public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF = + QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM = + QName.create(AIR_INTERFACE_2_0_MODULE, "problem"); + public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY = + QName.create(AIR_INTERFACE_2_0_MODULE, "severity"); + public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER = + QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER); + public static final QName AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP = + QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP); + // Delete notification + public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION = + QName.create(AIR_INTERFACE_2_0_MODULE, "object-deletion-notification"); + public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER = + QName.create(AIR_INTERFACE_2_0_MODULE, COUNTER); + public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF = + QName.create(AIR_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + public static final QName AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP = + QName.create(AIR_INTERFACE_2_0_MODULE, TIMESTAMP); + + // Ethernet interface + public static final QNameModule ETHERNET_CONTAINER_2_0_MODULE = + QNameModule.create(XMLNamespace.of("urn:onf:yang:ethernet-container-2-0"), Revision.of("2020-01-21")); + public static final QName ETHERNET_CONTAINER_PAC = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "ethernet-container-pac"); + public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "ethernet-container-current-problems"); + public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_LIST = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "current-problem-list"); + public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_SEQ_NO = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "sequence-number"); + public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_TIMESTAMP = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP); + public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_NAME = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem-name"); + public static final QName ETHERNET_CONTAINER_CURRENT_PROBLEMS_PROBLEM_SEVERITY = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem-severity"); + // Creation notification + public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "object-creation-notification"); + public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "object-type"); + public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_COUNTER = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER); + public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP); + public static final QName ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF); + //AVC notification + public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "attribute-value-changed-notification"); + public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_COUNTER = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER); + public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP); + public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF); + public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "attribute-name"); + public static final QName ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_NEW_VALUE = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "new-value"); + //problem notification + public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem-notification"); + public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF); + public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_PROBLEM = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "problem"); + public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_SEVERITY = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "severity"); + public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER); + public static final QName ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP); + // Delete notification + public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, "object-deletion-notification"); + public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, COUNTER); + public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, OBJECT_ID_REF); + public static final QName ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP = + QName.create(ETHERNET_CONTAINER_2_0_MODULE, TIMESTAMP); + + //Wire interface + public static final QNameModule WIRE_INTERFACE_2_0_MODULE = + QNameModule.create(XMLNamespace.of("urn:onf:yang:wire-interface-2-0"), Revision.of("2020-01-23")); + public static final QName WIRE_INTERFACE_PAC = QName.create(WIRE_INTERFACE_2_0_MODULE, "wire-interface-pac"); + public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS = + QName.create(WIRE_INTERFACE_2_0_MODULE, "wire-interface-current-problems"); + public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_LIST = + QName.create(WIRE_INTERFACE_2_0_MODULE, "current-problem-list"); + public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_SEQ_NO = + QName.create(WIRE_INTERFACE_2_0_MODULE, "sequence-number"); + public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_TIMESTAMP = + QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP); + public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_NAME = + QName.create(WIRE_INTERFACE_2_0_MODULE, "problem-name"); + public static final QName WIRE_INTERFACE_CURRENT_PROBLEMS_PROBLEM_SEVERITY = + QName.create(WIRE_INTERFACE_2_0_MODULE, "problem-severity"); + // Creation notification + public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION = + QName.create(WIRE_INTERFACE_2_0_MODULE, "object-creation-notification"); + public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE = + QName.create(WIRE_INTERFACE_2_0_MODULE, "object-type"); + public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER = + QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER); + public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP = + QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP); + public static final QName WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF = + QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + //AVC notification + public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION = + QName.create(WIRE_INTERFACE_2_0_MODULE, "attribute-value-changed-notification"); + public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER = + QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER); + public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP = + QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP); + public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF = + QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME = + QName.create(WIRE_INTERFACE_2_0_MODULE, "attribute-name"); + public static final QName WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE = + QName.create(WIRE_INTERFACE_2_0_MODULE, "new-value"); + //problem notification + public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION = + QName.create(WIRE_INTERFACE_2_0_MODULE, "problem-notification"); + public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF = + QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM = + QName.create(WIRE_INTERFACE_2_0_MODULE, "problem"); + public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY = + QName.create(WIRE_INTERFACE_2_0_MODULE, "severity"); + public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER = + QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER); + public static final QName WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP = + QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP); + // Delete notification + public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION = + QName.create(WIRE_INTERFACE_2_0_MODULE, "object-deletion-notification"); + public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER = + QName.create(WIRE_INTERFACE_2_0_MODULE, COUNTER); + public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF = + QName.create(WIRE_INTERFACE_2_0_MODULE, OBJECT_ID_REF); + public static final QName WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP = + QName.create(WIRE_INTERFACE_2_0_MODULE, TIMESTAMP); + +} 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 deleted file mode 100644 index 5c57054ff..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/DeviceManagerOnf14Impl.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * ============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 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 deleted file mode 100644 index 8396e8d9c..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14Configuration.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * ============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 deleted file mode 100644 index 177f25e1e..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14DomNetworkElement.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * ============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_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 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 res1 = equipmentManager.readEquipmentInstance(netconfDomAccessor, uuid); - log.info("Res1: {}", res1.isPresent() ? res1.get() : "No data1"); - - /*List 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 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 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 Optional getService(Class clazz) { - return Optional.empty(); - } - - @Override - public void warmstart() {} - - @Override - public Optional getAcessor() { - return Optional.of(netconfDomAccessor); - } - - @Override - public NetworkElementDeviceType getDeviceType() { - return NetworkElementDeviceType.Wireless; - } - - private static Optional 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 deleted file mode 100644 index 4a23b6b3c..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElement.java +++ /dev/null @@ -1,552 +0,0 @@ -/* - * ============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_IID = - InstanceIdentifier.builder(ControlConstruct.class).build(); - - private static final int EQUIPMENTROOTLEVEL = 0; - - private final NetconfBindingAccessor netconfAccessor; - private final DataProvider databaseService; - private final Onf14ToInternalDataModel onf14Mapper; - @NonNull - private final FaultService faultService; - - // for storing the Equipment UUIDs that are inserted in the DB - private final List equipmentUuidList = new ArrayList<>(); - - // air interface related members - private final List airInterfaceList = new ArrayList<>(); - @SuppressWarnings("unused") - private ListenerRegistration airInterfaceNotificationListenerHandler; - @NonNull - private final Onf14AirInterfaceNotificationListener airInterfaceNotificationListener; - - // ethernet container related members - private final List ethernetContainerList = new ArrayList<>(); - @SuppressWarnings("unused") - private ListenerRegistration etherneContainerNotificationListenerHandler; - @NonNull - private final Onf14EthernetContainerNotificationListener ethernetContainerNotificationListener; - - // wire interface related members - private final List wireInterfaceList = new ArrayList<>(); - @SuppressWarnings("unused") - private ListenerRegistration wireInterfaceNotificationListenerHandler; - @NonNull - private 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(); - - var 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); - // Register to default (NETCONF) stream - netconfAccessor.registerNotificationsStream(); - } - - @Override - public void deregister() {} - - - @Override - public NodeId getNodeId() { - return netconfAccessor.getNodeId(); - } - - @Override - public Optional getService(Class clazz) { - return Optional.empty(); - } - - @Override - public void warmstart() {} - - @Override - public Optional getAcessor() { - return Optional.of(netconfAccessor); - } - - @Override - public NetworkElementDeviceType getDeviceType() { - return NetworkElementDeviceType.Wireless; - } - - private void readEquipmentData() { - - Optional 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 topLevelEquipment = controlConstruct.get().getTopLevelEquipment(); - - if (topLevelEquipment != null) { - List 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 collectEquipment(List 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 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) { - - if (controlConstruct.isPresent()) { - @NonNull - Collection 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 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 layerProtocolName = lp.getLayerProtocolName(); - if (layerProtocolName != null) { - // if the LTP has an airInterface technology extension, the layer protocol name is air-layer - if (layerProtocolName.getTypeName().equals(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().equals(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().equals(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 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 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 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 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 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 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 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 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 deleted file mode 100644 index ecf53a1fa..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/Onf14NetworkElementFactory.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * ============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 configuration = Optional.empty(); - - @Override - public Optional create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) { - - Optional 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 domAccessor = accessor.getNetconfDomAccessor(); - if (domAccessor.isPresent()) { - ne = Optional.of(new Onf14DomNetworkElement(domAccessor.get(), serviceProvider, namespaceRevision)); - } - } else { - Optional 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 deleted file mode 100644 index 97395f496..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/InternalDataModelSeverity.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * ============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 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 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 deleted file mode 100644 index 52436da61..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/dataprovider/Onf14ToInternalDataModel.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * ============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 containedHolderKeyList = new ArrayList(); - @NonNull - Collection 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 deleted file mode 100644 index 092ad4a8f..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/equipment/Onf14DomEquipmentManager.java +++ /dev/null @@ -1,265 +0,0 @@ -/* - * ============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 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 getEquipmentUuidList() { - return equipmentUuidList; - } - // end of getters and setters - - // private methods - private List collectEquipment(List list, Equipment currentEq, Equipment parentEq, - long treeLevel, Map 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 equipmentMap = controlConstruct.nonnullEquipment(); - // recursively adding the root equipment and all its children into the DB - List 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 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 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> 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 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> 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> topLevelEquipmentCollection = - (UnmodifiableCollection>) value; - @NonNull - Iterator> it = topLevelEquipmentCollection.iterator(); - while (it.hasNext()) { - LeafSetEntryNode 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 deleted file mode 100644 index 2d0d3c52d..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterface.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * ============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 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 deleted file mode 100644 index 1f3f30927..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14AirInterfaceNotificationListener.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * ============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,SeverityType> severityMap = initSeverityMap(); - - public Onf14AirInterfaceNotificationListener(NetconfAccessor netconfAccessor, - DeviceManagerServiceProvider serviceProvider) { - this.netconfAccessor = netconfAccessor; - this.serviceProvider = serviceProvider; - } - - private static Map, SeverityType> initSeverityMap() { - Map, 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(), - 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(), - ProblemNotification.QNAME, notification.getTimestamp()); - - } - - private SeverityType mapSeverity(@Nullable Class 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(), - 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(), - 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 deleted file mode 100644 index 422f6b0fa..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14DomInterfacePacManager.java +++ /dev/null @@ -1,419 +0,0 @@ -/* - * ============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 airInterfaceList = new ArrayList(); - private @NonNull final Onf14AirInterfaceNotificationListener airInterfaceNotificationListener; - - // ethernet container related members - private final List ethernetContainerList = new ArrayList(); - private @NonNull final Onf14EthernetContainerNotificationListener ethernetContainerNotificationListener; - - // wire interface related members - private final List wireInterfaceList = new ArrayList(); - 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 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 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 layerProtocolName = lp.getLayerProtocolName(); - if (layerProtocolName != null) { - // if the LTP has an airInterface technology extension, the layer protocol name is air-layer - if (layerProtocolName.getTypeName().equals(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().equals(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().equals(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 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 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 ltpMap = - controlConstruct.nonnullLogicalTerminationPoint(); - LogicalTerminationPoint ltp = ltpMap.get(new LogicalTerminationPointKey(ltpUuid)); - if (ltp != null) { - @NonNull - Map 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 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 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 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 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 deleted file mode 100644 index f9769951f..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainer.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ============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 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 deleted file mode 100644 index b76572ba5..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14EthernetContainerNotificationListener.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * ============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, SeverityType> severityMap = initSeverityMap(); - - public Onf14EthernetContainerNotificationListener(NetconfAccessor netconfAccessor, - DeviceManagerServiceProvider serviceProvider) { - this.netconfAccessor = netconfAccessor; - this.serviceProvider = serviceProvider; - } - - private static Map, SeverityType> initSeverityMap() { - Map, 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(), - ProblemNotification.QNAME, notification.getTimestamp()); - - } - - private SeverityType mapSeverity(@Nullable Class 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(), - 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(), - 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 deleted file mode 100644 index acb262fcb..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterface.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ============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 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 deleted file mode 100644 index 6848e6765..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/Onf14WireInterfaceNotificationListener.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * ============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,SeverityType> severityMap = initSeverityMap(); - - public Onf14WireInterfaceNotificationListener(NetconfAccessor netconfAccessor, - DeviceManagerServiceProvider serviceProvider) { - this.netconfAccessor = netconfAccessor; - this.serviceProvider = serviceProvider; - } - - private static Map, SeverityType> initSeverityMap() { - Map, 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(), - 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()) - .build(); - serviceProvider.getFaultService().faultNotification(faultAlarm); - serviceProvider.getWebsocketService().sendNotification( notification, netconfAccessor.getNodeId(), - ProblemNotification.QNAME, notification.getTimestamp()); - - } - - private SeverityType mapSeverity(@Nullable Class 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(), - 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(), - 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 deleted file mode 100644 index 552ba6604..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/interfaces/TechnologySpecificPacKeys.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * ============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 deleted file mode 100644 index efa3cf169..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/impl/util/Debug.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * ============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 deleted file mode 100644 index fc4de9104..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Control.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * ============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 deleted file mode 100644 index 9b516bb67..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/OperatorState.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * ============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 deleted file mode 100644 index 7966c1c71..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/Resource.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * ============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 deleted file mode 100644 index c7e9103a1..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/ResourceMatch.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * ============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 deleted file mode 100644 index 1b39bf928..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/SeverityWithClear.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * ============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 deleted file mode 100644 index 0769687e8..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/yang/package-info.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * ============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 index 0be800784..38c9e15c3 100644 --- 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 @@ -31,7 +31,7 @@ interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/> 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 deleted file mode 100644 index 4b69e4232..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestDeviceManagerOnf14Impl.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * ============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 deleted file mode 100644 index b9f1c2131..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14AirInterfaceNotificationListener.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * ============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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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/TestOnf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomInterfacePacManager.java deleted file mode 100644 index e0384e72b..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomInterfacePacManager.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * ============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.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import org.eclipse.jdt.annotation.NonNull; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -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.netconfnodestateservice.NetconfDomAccessor; -import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; -import org.opendaylight.mdsal.dom.api.DOMNotification; -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.LAYERPROTOCOLNAMETYPEAIRLAYER; -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.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.LogicalTerminationPoint; -import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointBuilder; -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.LayerProtocolBuilder; -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.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -@RunWith(MockitoJUnitRunner.class) -public class TestOnf14DomInterfacePacManager { - - private static String NODEIDSTRING = "nSky"; - - @Mock - NetconfDomAccessor netconfDomAccessor; - @Mock - DeviceManagerServiceProvider serviceProvider; - @Mock - ControlConstruct controlConstruct; - @Mock - BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer; - @Mock - FaultService faultService; - @Mock - WebsocketManagerService websocketService; - @Mock - DataProvider databaseService; - - Onf14DomInterfacePacManager domPacManager; - NodeId nodeId = new NodeId(NODEIDSTRING); - - @Before - public void init() { - when(netconfDomAccessor.getNodeId()).thenReturn(nodeId); - when(netconfDomAccessor.getBindingNormalizedNodeSerializer()).thenReturn(bindingNormalizedNodeSerializer); - when(serviceProvider.getFaultService()).thenReturn(faultService); - when(serviceProvider.getWebsocketService()).thenReturn(websocketService); - when(serviceProvider.getDataProvider()).thenReturn(databaseService); - - domPacManager = new Onf14DomInterfacePacManager(netconfDomAccessor, serviceProvider); - - UniversalId uuid = new UniversalId("0Aabcdef-0abc-0cfD-0abC-0123456789AB"); - @NonNull Map lptMap = new HashMap(); - var lpMap = new HashMap(); - - LayerProtocol lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEAIRLAYER.class).setLocalId("TESTAIRLAYER").build(); - LayerProtocolKey lpKey = new LayerProtocolKey("AIRPROTOCOL"); - lpMap.put(lpKey, lp); - LogicalTerminationPoint ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build(); - UniversalId ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789AB"); - LogicalTerminationPointKey ltpKey = new LogicalTerminationPointKey(ltpUuid); - - lptMap.put(ltpKey, ltp); - - lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class).setLocalId("TESTETHCONTAINERLAYER").build(); - lpKey = new LayerProtocolKey("ETHERNETCONTAINERPROTOCOL"); - lpMap = new HashMap(); - lpMap.put(lpKey, lp); - ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build(); - ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789BC"); - ltpKey = new LogicalTerminationPointKey(ltpUuid); - - lptMap.put(ltpKey, ltp); - - lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEWIRELAYER.class).setLocalId("TESTWIRELAYER").build(); - lpKey = new LayerProtocolKey("WIREPROTOCOL"); - lpMap = new HashMap(); - lpMap.put(lpKey, lp); - ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build(); - ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789CD"); - ltpKey = new LogicalTerminationPointKey(ltpUuid); - - lptMap.put(ltpKey, ltp); - - when(Optional.of(controlConstruct).get().nonnullLogicalTerminationPoint()).thenReturn(lptMap); - } - - @Test - public void test() { - domPacManager.readKeys(controlConstruct); - } - - @Test - public void testProblemNotification() { - DOMNotification domNotif = mock(DOMNotification.class); - ProblemNotification problemNotif = mock(ProblemNotification.class); - when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(problemNotif); - 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"); - - domPacManager.onNotification(domNotif); - } - - @Test - public void testAVCNotification() { - DOMNotification domNotif = mock(DOMNotification.class); - AttributeValueChangedNotification attrValChangedNotif = mock(AttributeValueChangedNotification.class); - when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(attrValChangedNotif); - 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")); - domPacManager.onNotification(domNotif); - } - - @Test - public void testObjectDeletionNotification() { - DOMNotification domNotif = mock(DOMNotification.class); - ObjectDeletionNotification deletionNotif = mock(ObjectDeletionNotification.class); - when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(deletionNotif); - 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")); - domPacManager.onNotification(domNotif); - } - - @Test - public void testObjectCreationNotification() { - DOMNotification domNotif = mock(DOMNotification.class); - ObjectCreationNotification creationNotif = mock(ObjectCreationNotification.class); - when(bindingNormalizedNodeSerializer.fromNormalizedNodeNotification(domNotif.getType(), domNotif.getBody())).thenReturn(creationNotif); - 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")); - domPacManager.onNotification(domNotif); - } - -} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomNetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomNetworkElement.java deleted file mode 100644 index d07070694..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14DomNetworkElement.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14; - -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.util.Optional; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -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.Onf14Configuration; -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.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; -import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -@RunWith(MockitoJUnitRunner.class) -public class TestOnf14DomNetworkElement { - - private static String NODEIDSTRING = "nSky"; - - @Mock - NetconfDomAccessor netconfDomAccessor; - @Mock - NetconfBindingAccessor netconfBindingAccessor; - @Mock - DataProvider dataProvider; - @Mock - FaultService faultService; - @Mock - DeviceManagerServiceProvider serviceProvider; - @Mock - WebsocketManagerService websocketManagerService; - @Mock - DataProvider databaseService; - @Mock - Capabilities capabilities; - @Mock - BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer; - - NodeId nodeId = new NodeId(NODEIDSTRING); - - @Before - public void init() { - - ConfigurationFileRepresentation configurationRepresentation = mock(ConfigurationFileRepresentation.class); - when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation); - Optional onf14Cfg = Optional.of(new Onf14Configuration(configurationRepresentation)); - System.out.println(onf14Cfg.isPresent()); - when(onf14Cfg.get().isUseDomApiEnabled()).thenReturn(true); - when(netconfDomAccessor.getCapabilites()).thenReturn(capabilities); - when(netconfDomAccessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true); - when(netconfDomAccessor.getNetconfDomAccessor()).thenReturn(Optional.of(netconfDomAccessor)); - when(netconfDomAccessor.getBindingNormalizedNodeSerializer()).thenReturn(bindingNormalizedNodeSerializer); - when(netconfDomAccessor.getNodeId()).thenReturn(nodeId); - when(serviceProvider.getDataProvider()).thenReturn(dataProvider); - when(serviceProvider.getFaultService()).thenReturn(faultService); - } - - @Test - public void test() { - Optional onfDomNe; - - Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory(); - factory.init(serviceProvider); - onfDomNe = factory.create(netconfDomAccessor, serviceProvider); - assertTrue(onfDomNe.isPresent()); - - onfDomNe.get().register(); - onfDomNe.get().deregister(); - onfDomNe.get().getAcessor(); - onfDomNe.get().getDeviceType(); - onfDomNe.get().warmstart(); - onfDomNe.get().getService(null); - assertEquals(onfDomNe.get().getNodeId().getValue(), "nSky"); - } - -} 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 deleted file mode 100644 index 09e44f47d..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14EthernetContainerNotificationListener.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * ============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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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 deleted file mode 100644 index 0a39913f6..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElement.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * ============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.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import org.eclipse.jdt.annotation.NonNull; -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.binding.api.DataBroker; -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.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.control.construct.LogicalTerminationPoint; -import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.control.construct.LogicalTerminationPointBuilder; -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.LayerProtocolBuilder; -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.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -public class TestOnf14NetworkElement extends Mockito { - - private static String NODEIDSTRING = "nSky"; - - static NetconfBindingAccessor bindingAccessor; - static DeviceManagerServiceProvider serviceProvider; - static Capabilities capabilities; - static DataProvider dataProvider; - static FaultService faultService; - static DataBroker dataBroker; - static TransactionUtils transactionUtils; - static ControlConstruct controlConstruct; - static Equipment equipment; - - @Before - public void init() { - capabilities = mock(Capabilities.class); - bindingAccessor = mock(NetconfBindingAccessor.class); - serviceProvider = mock(DeviceManagerServiceProvider.class); - - NodeId nNodeId = new NodeId("nSky"); - when(bindingAccessor.getCapabilites()).thenReturn(capabilities); - when(bindingAccessor.getNodeId()).thenReturn(nNodeId); - - dataProvider = mock(DataProvider.class); - when(serviceProvider.getDataProvider()).thenReturn(dataProvider); - - faultService = mock(FaultService.class); - when(serviceProvider.getFaultService()).thenReturn(faultService); - - dataBroker = mock(DataBroker.class); - when(bindingAccessor.getDataBroker()).thenReturn(dataBroker); - - controlConstruct = mock(ControlConstruct.class); - - InstanceIdentifier CONTROLCONSTRUCT_IID = InstanceIdentifier.builder(ControlConstruct.class).build(); - when(bindingAccessor.getTransactionUtils()).thenReturn(mock(TransactionUtils.class)); - when(bindingAccessor.getTransactionUtils().readData(bindingAccessor.getDataBroker(), LogicalDatastoreType.CONFIGURATION, CONTROLCONSTRUCT_IID)).thenReturn(controlConstruct); - - List topLevelEqList = null; - UniversalId uuid = new UniversalId("0Aabcdef-0abc-0cfD-0abC-0123456789AB"); - topLevelEqList = Arrays.asList(uuid); - when(Optional.of(controlConstruct).get().getTopLevelEquipment()).thenReturn(topLevelEqList); - - InstanceIdentifier equipmentIID = InstanceIdentifier.builder(ControlConstruct.class) - .child(Equipment.class, new EquipmentKey(uuid)).build(); - - equipment = mock(Equipment.class); - when(bindingAccessor.getTransactionUtils().readData(bindingAccessor.getDataBroker(), LogicalDatastoreType.CONFIGURATION, - equipmentIID)).thenReturn(equipment); - UniversalId eqpUid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789AB"); - when(equipment.getUuid()).thenReturn(eqpUid); - - @NonNull Map lptMap = new HashMap(); - var lpMap = new HashMap(); - - LayerProtocol lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEAIRLAYER.class).setLocalId("TESTAIRLAYER").build(); - LayerProtocolKey lpKey = new LayerProtocolKey("AIRPROTOCOL"); - lpMap.put(lpKey, lp); - LogicalTerminationPoint ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build(); - UniversalId ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789AB"); - LogicalTerminationPointKey ltpKey = new LogicalTerminationPointKey(ltpUuid); - - lptMap.put(ltpKey, ltp); - - lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEETHERNETCONTAINERLAYER.class).setLocalId("TESTETHCONTAINERLAYER").build(); - lpKey = new LayerProtocolKey("ETHERNETCONTAINERPROTOCOL"); - lpMap = new HashMap(); - lpMap.put(lpKey, lp); - ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build(); - ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789BC"); - ltpKey = new LogicalTerminationPointKey(ltpUuid); - - lptMap.put(ltpKey, ltp); - - lp = new LayerProtocolBuilder().setLayerProtocolName(LAYERPROTOCOLNAMETYPEWIRELAYER.class).setLocalId("TESTWIRELAYER").build(); - lpKey = new LayerProtocolKey("WIREPROTOCOL"); - lpMap = new HashMap(); - lpMap.put(lpKey, lp); - ltp = new LogicalTerminationPointBuilder().setLayerProtocol(lpMap).setUuid(uuid).build(); - ltpUuid = new UniversalId("1Aabcdef-1abc-1cfD-1abc-0123456789CD"); - ltpKey = new LogicalTerminationPointKey(ltpUuid); - - lptMap.put(ltpKey, ltp); - - when(Optional.of(controlConstruct).get().nonnullLogicalTerminationPoint()).thenReturn(lptMap); - - } - - @Test - public void testGeneric() { - Optional onfNe; - NodeId nodeId = new NodeId(NODEIDSTRING); - - when(bindingAccessor.getNodeId()).thenReturn(nodeId); - - NetconfDomAccessor domAccessor = mock(NetconfDomAccessor.class); - when(domAccessor.getNodeId()).thenReturn(nodeId); - - when(bindingAccessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true); - when(bindingAccessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor)); - when(bindingAccessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor)); - - ConfigurationFileRepresentation configurationRepresentation = mock(ConfigurationFileRepresentation.class); - when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation); - - Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory(); - onfNe = factory.create(bindingAccessor, 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 deleted file mode 100644 index 493167ac3..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14NetworkElementFactory.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * ============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 com.google.common.io.Files; -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.Optional; -import org.junit.AfterClass; -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.NetconfAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; -import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; -import org.opendaylight.yang.gen.v1.urn.onf.yang.core.model._1._4.rev191127.ControlConstruct; - -public class TestOnf14NetworkElementFactory extends Mockito { - - private static NetconfAccessor accessor; - private static Optional domAccessor; - private static Capabilities capabilities; - private static DeviceManagerServiceProvider serviceProvider; - private static ConfigurationFileRepresentation configurationRepresentation; - private static String filename = "test.properties"; - - // @formatter:off - private static final String TESTCONFIG_CONTENT = "[dmonf14]\n" - + "useDomApi=true\n" - + ""; - // @formatter:on - - - @BeforeClass - public static void init() throws InterruptedException, IOException { - Files.asCharSink(new File(filename), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT); - configurationRepresentation = new ConfigurationFileRepresentation(filename); - capabilities = mock(Capabilities.class); - accessor = mock(NetconfAccessor.class); - domAccessor = Optional.of(mock(NetconfDomAccessor.class)); - serviceProvider = mock(DeviceManagerServiceProvider.class); - - when(accessor.getCapabilites()).thenReturn(capabilities); - when(serviceProvider.getDataProvider()).thenReturn(mock(DataProvider.class)); - when(serviceProvider.getConfigurationFileRepresentation()).thenReturn(configurationRepresentation); - } - - @Test - public void testCreateOnf14Dom() throws Exception { - when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true); - when(accessor.getNetconfDomAccessor()).thenReturn(domAccessor); - when(domAccessor.get().getBindingNormalizedNodeSerializer()).thenReturn(mock(BindingNormalizedNodeSerializer.class)); - Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory(); - factory.init(serviceProvider); - assertTrue((factory.create(accessor, serviceProvider)).isPresent()); - } - - @Test - public void testCreateOnf14Binding() throws Exception { - when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(true); - when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(mock(NetconfBindingAccessor.class))); - Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory(); - assertTrue(factory.create(accessor, serviceProvider).isPresent()); - } - - @Test - public void testCreateNone() throws Exception { - when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(mock(NetconfBindingAccessor.class))); - when(accessor.getCapabilites().isSupportingNamespace(ControlConstruct.QNAME)).thenReturn(false); - Onf14NetworkElementFactory factory = new Onf14NetworkElementFactory(); - assertTrue(factory.create(accessor, serviceProvider).isEmpty()); - } - - @AfterClass - public static void cleanUp() { - File file = new File(filename); - if (file.exists()) { - System.out.println("File exists, Deleting it"); - file.delete(); - } - } -} - 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 deleted file mode 100644 index b0b00d935..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14ToInternalDataModel2.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * ============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 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 deleted file mode 100644 index e64847b91..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestOnf14WireInterfaceNotificationListener.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * ============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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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>() { - @Override - public Class 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 deleted file mode 100644 index 686942a6b..000000000 --- a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/TestSeverity.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * ============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/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestDeviceManagerOnf14Impl.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestDeviceManagerOnf14Impl.java new file mode 100644 index 000000000..21bbfcebc --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestDeviceManagerOnf14Impl.java @@ -0,0 +1,56 @@ +/* + * ============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.dom; + +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.dom.impl.DeviceManagerOnf14Impl; +//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/dom/TestOnf14DomAirInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomAirInterfaceNotificationListener.java new file mode 100644 index 000000000..a8e97e173 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomAirInterfaceNotificationListener.java @@ -0,0 +1,157 @@ +/* + * ============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.dom; + +import java.time.Instant; +import org.eclipse.jdt.annotation.NonNull; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomAirInterfaceNotificationListener; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.NetconfDeviceNotification; +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.NetconfDomAccessor; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; + +public class TestOnf14DomAirInterfaceNotificationListener extends Mockito { + private NetconfDomAccessor accessor; + private NodeId nodeId; + private DeviceManagerServiceProvider serviceProvider; + private FaultService faultService; + private DataProvider databaseService; + private NotificationService notificationService; + + private @NonNull WebsocketManagerService websocketService; + + @Before + public void init() { + accessor = mock(NetconfDomAccessor.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); + + when(accessor.getNodeId()).thenReturn(nodeId); + when(serviceProvider.getFaultService()).thenReturn(faultService); + when(serviceProvider.getDataProvider()).thenReturn(databaseService); + when(serviceProvider.getNotificationService()).thenReturn(notificationService); + when(serviceProvider.getWebsocketService()).thenReturn(websocketService); + } + + @Test + public void testOtherNotif() { + Onf14DomAirInterfaceNotificationListener notifListener = + new Onf14DomAirInterfaceNotificationListener(accessor, serviceProvider); + + NetconfDeviceNotification ndn = + new NetconfDeviceNotification(createAirInterfaceCreationNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createAirInterfaceAVCNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createAirInterfaceDeletionNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createAirInterfaceProblemNotification(), Instant.now()); + notifListener.onNotification(ndn); + } + + private ContainerNode createAirInterfaceProblemNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM, + "12345678-0123-2345-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY, + "SEVERITY_TYPE_CRITICAL")) + .build(); + } + + private ContainerNode createAirInterfaceAVCNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME, + "12345678-0123-2345-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE, "new-value")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .build(); + } + + private ContainerNode createAirInterfaceDeletionNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .build(); + } + + private ContainerNode createAirInterfaceCreationNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE, + "air-interface-name")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.AIR_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .build(); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomEthernetContainerNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomEthernetContainerNotificationListener.java new file mode 100644 index 000000000..c2f7984a2 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomEthernetContainerNotificationListener.java @@ -0,0 +1,156 @@ +/* + * ============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.dom; + +import java.time.Instant; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomEthernetContainerNotificationListener; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.NetconfDeviceNotification; +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.NetconfDomAccessor; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; + +public class TestOnf14DomEthernetContainerNotificationListener extends Mockito { + private NetconfDomAccessor accessor; + private NodeId nodeId; + private DeviceManagerServiceProvider serviceProvider; + private FaultService faultService; + private DataProvider databaseService; + private NotificationService notificationService; + + private WebsocketManagerService websocketService; + + @Before + public void init() { + accessor = mock(NetconfDomAccessor.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); + + when(serviceProvider.getFaultService()).thenReturn(faultService); + when(serviceProvider.getDataProvider()).thenReturn(databaseService); + when(serviceProvider.getNotificationService()).thenReturn(notificationService); + when(serviceProvider.getWebsocketService()).thenReturn(websocketService); + when(accessor.getNodeId()).thenReturn(nodeId); + } + + @Test + public void testOtherNotif() { + Onf14DomEthernetContainerNotificationListener notifListener = + new Onf14DomEthernetContainerNotificationListener(accessor, serviceProvider); + + NetconfDeviceNotification ndn = + new NetconfDeviceNotification(createEthernetContainerCreationNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createEthernetContainerAVCNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createEthernetContainerDeletionNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createEthernetContainerProblemNotification(), Instant.now()); + notifListener.onNotification(ndn); + } + + private ContainerNode createEthernetContainerProblemNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION)) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_PROBLEM, + "12345678-0123-2345-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_PROBLEM_NOTIFICATION_SEVERITY, + "SEVERITY_TYPE_CRITICAL")) + .build(); + } + + private ContainerNode createEthernetContainerAVCNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME, + "12345678-0123-2345-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_NEW_VALUE, "new-value")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_AVC_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .build(); + } + + private ContainerNode createEthernetContainerDeletionNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .build(); + } + + private ContainerNode createEthernetContainerCreationNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE, + "ethernet-interface-name")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.ETHERNET_CONTAINER_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .build(); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomInterfacePacManager.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomInterfacePacManager.java new file mode 100644 index 000000000..9f54ca521 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomInterfacePacManager.java @@ -0,0 +1,52 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2022 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.dom; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import java.io.IOException; +import java.net.URISyntaxException; +import java.util.Optional; +import javax.xml.stream.XMLStreamException; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.interfaces.Onf14DomInterfacePacManager; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.Onf14DomTestUtils; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.xml.sax.SAXException; + +public class TestOnf14DomInterfacePacManager { + + @Test + public void test() throws XMLStreamException, URISyntaxException, IOException, SAXException { + NetconfDomAccessor netconfDomAccessor = mock(NetconfDomAccessor.class); + Onf14DomInterfacePacManager interfacePacMgr = mock(Onf14DomInterfacePacManager.class); + ContainerNode cn = (ContainerNode) Onf14DomTestUtils.getNormalizedNodeFromXML(); + NormalizedNode ltpData = cn.getChildByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_LTP)); + when(interfacePacMgr.readLtpData(netconfDomAccessor)).thenReturn(Optional.of(ltpData)); + interfacePacMgr.register(); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomNetworkElement.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomNetworkElement.java new file mode 100644 index 000000000..0d30e4dd0 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomNetworkElement.java @@ -0,0 +1,85 @@ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; +import java.util.Optional; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +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.dom.impl.Onf14DomNetworkElementFactory; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +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.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; + +@RunWith(MockitoJUnitRunner.class) +public class TestOnf14DomNetworkElement { + + private static String NODEIDSTRING = "nSky"; + private static final YangInstanceIdentifier TOPLEVELEQUIPMENT_IID = + YangInstanceIdentifier.builder().node(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER) + .node(Onf14DevicemanagerQNames.CORE_MODEL_CC_TOP_LEVEL_EQPT).build(); + @Mock + NetconfDomAccessor netconfDomAccessor; + @Mock + NetconfBindingAccessor netconfBindingAccessor; + @Mock + DataProvider dataProvider; + @Mock + FaultService faultService; + @Mock + DeviceManagerServiceProvider serviceProvider; + @Mock + WebsocketManagerService websocketManagerService; + @Mock + DataProvider databaseService; + @Mock + Capabilities capabilities; + + NodeId nodeId = new NodeId(NODEIDSTRING); + + @Before + public void init() { + + when(netconfDomAccessor.getCapabilites()).thenReturn(capabilities); + when(netconfDomAccessor.getCapabilites() + .isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)) + .thenReturn(true); + when(netconfDomAccessor.getNetconfDomAccessor()).thenReturn(Optional.of(netconfDomAccessor)); + when(netconfDomAccessor.getNodeId()).thenReturn(nodeId); + when(serviceProvider.getDataProvider()).thenReturn(dataProvider); + when(serviceProvider.getFaultService()).thenReturn(faultService); + when(netconfDomAccessor.readDataNode(LogicalDatastoreType.CONFIGURATION, TOPLEVELEQUIPMENT_IID)) + .thenReturn(Optional.empty()); + } + + @Test + public void test() { + Optional onfDomNe; + + Onf14DomNetworkElementFactory factory = new Onf14DomNetworkElementFactory(); + factory.init(serviceProvider); + onfDomNe = factory.create(netconfDomAccessor, serviceProvider); + assertTrue(onfDomNe.isPresent()); + + onfDomNe.get().register(); + onfDomNe.get().deregister(); + onfDomNe.get().getAcessor(); + onfDomNe.get().getDeviceType(); + onfDomNe.get().warmstart(); + onfDomNe.get().getService(null); + assertEquals(onfDomNe.get().getNodeId().getValue(), "nSky"); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomWireInterfaceNotificationListener.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomWireInterfaceNotificationListener.java new file mode 100644 index 000000000..37cd5b45a --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14DomWireInterfaceNotificationListener.java @@ -0,0 +1,157 @@ +/* + * ============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.dom; + +import java.time.Instant; +import org.eclipse.jdt.annotation.NonNull; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.Onf14DomWireInterfaceNotificationListener; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.NetconfDeviceNotification; +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.NetconfDomAccessor; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; + +public class TestOnf14DomWireInterfaceNotificationListener extends Mockito { + private NetconfDomAccessor accessor; + private NodeId nodeId; + private DeviceManagerServiceProvider serviceProvider; + private FaultService faultService; + private DataProvider databaseService; + private NotificationService notificationService; + + private @NonNull WebsocketManagerService websocketService; + + @Before + public void init() { + accessor = mock(NetconfDomAccessor.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); + + when(accessor.getNodeId()).thenReturn(nodeId); + when(serviceProvider.getFaultService()).thenReturn(faultService); + when(serviceProvider.getDataProvider()).thenReturn(databaseService); + when(serviceProvider.getNotificationService()).thenReturn(notificationService); + when(serviceProvider.getWebsocketService()).thenReturn(websocketService); + } + + @Test + public void testOtherNotif() { + Onf14DomWireInterfaceNotificationListener notifListener = + new Onf14DomWireInterfaceNotificationListener(accessor, serviceProvider); + + NetconfDeviceNotification ndn = + new NetconfDeviceNotification(createWireInterfaceCreationNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createWireInterfaceAVCNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createWireInterfaceDeletionNotification(), Instant.now()); + notifListener.onNotification(ndn); + ndn = new NetconfDeviceNotification(createWireInterfaceProblemNotification(), Instant.now()); + notifListener.onNotification(ndn); + } + + private ContainerNode createWireInterfaceProblemNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_PROBLEM, + "12345678-0123-2345-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_PROBLEM_NOTIFICATION_SEVERITY, + "SEVERITY_TYPE_CRITICAL")) + .build(); + } + + private ContainerNode createWireInterfaceAVCNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_ATTRIBUTE_NAME, + "12345678-0123-2345-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_NEW_VALUE, "new-value")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_AVC_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .build(); + } + + private ContainerNode createWireInterfaceDeletionNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_DELETE_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .build(); + } + + private ContainerNode createWireInterfaceCreationNotification() { + return Builders.containerBuilder() + .withNodeIdentifier( + NodeIdentifier.create(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION)) + .withChild(ImmutableNodes + .leafNode(Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_COUNTER, "47")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_TYPE, + "Wire-interface-name")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_TIMESTAMP, + "2022-02-05T12:30:45.283Z")) + .withChild(ImmutableNodes.leafNode( + Onf14DevicemanagerQNames.WIRE_INTERFACE_OBJECT_CREATE_NOTIFICATION_OBJECT_ID_REF, + "12345678-0123-1234-abcd-0123456789AB")) + .build(); + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14NetworkElementFactory.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14NetworkElementFactory.java new file mode 100644 index 000000000..657b994f3 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14NetworkElementFactory.java @@ -0,0 +1,88 @@ +/* + * ============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.dom; + +import static org.junit.Assert.assertTrue; +import java.io.File; +import java.io.IOException; +import java.util.Optional; +import org.junit.AfterClass; +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.dom.impl.Onf14DomNetworkElementFactory; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +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.NetconfAccessor; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; + +public class TestOnf14NetworkElementFactory extends Mockito { + + private static NetconfAccessor accessor; + private static Optional domAccessor; + private static Capabilities capabilities; + private static DeviceManagerServiceProvider serviceProvider; + private static ConfigurationFileRepresentation configurationRepresentation; + private static String filename = "test.properties"; + + + @BeforeClass + public static void init() throws InterruptedException, IOException { + capabilities = mock(Capabilities.class); + accessor = mock(NetconfAccessor.class); + domAccessor = Optional.of(mock(NetconfDomAccessor.class)); + serviceProvider = mock(DeviceManagerServiceProvider.class); + + when(accessor.getCapabilites()).thenReturn(capabilities); + when(serviceProvider.getDataProvider()).thenReturn(mock(DataProvider.class)); + when(serviceProvider.getFaultService()).thenReturn(mock(FaultService.class)); + + } + + @Test + public void testCreateOnf14Dom() throws Exception { + when(accessor.getCapabilites().isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)).thenReturn(true); + when(accessor.getNetconfDomAccessor()).thenReturn(domAccessor); + Onf14DomNetworkElementFactory factory = new Onf14DomNetworkElementFactory(); + factory.init(serviceProvider); + assertTrue((factory.create(accessor, serviceProvider)).isPresent()); + } + + @Test + public void testCreateNone() throws Exception { + when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(mock(NetconfBindingAccessor.class))); + when(accessor.getCapabilites().isSupportingNamespace(Onf14DevicemanagerQNames.CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER)).thenReturn(false); + Onf14DomNetworkElementFactory factory = new Onf14DomNetworkElementFactory(); + assertTrue(factory.create(accessor, serviceProvider).isEmpty()); + } + + @AfterClass + public static void cleanUp() { + File file = new File(filename); + if (file.exists()) { + System.out.println("File exists, Deleting it"); + file.delete(); + } + } +} + diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14ToInternalDataModel2.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14ToInternalDataModel2.java new file mode 100644 index 000000000..090982956 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/dom/TestOnf14ToInternalDataModel2.java @@ -0,0 +1,93 @@ +/* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2022 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.dom; + +import static org.junit.Assert.assertEquals; +import java.io.IOException; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import javax.xml.stream.XMLStreamException; +import org.junit.After; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider.Onf14DomToInternalDataModel; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util.Onf14DomTestUtils; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.xml.sax.SAXException; + +public class TestOnf14ToInternalDataModel2 extends Mockito { + + private static NodeId nodeId; + + @BeforeClass + public static void init() { + nodeId = mock(NodeId.class); + } + + @After + public void cleanUp() { + Onf14DomTestUtils.cleanup(); + } + + @Test + public void testWithNormalizedNodeFromJson() throws IOException, URISyntaxException { + + Onf14DomToInternalDataModel model = new Onf14DomToInternalDataModel(); + + ContainerNode cn = (ContainerNode) Onf14DomTestUtils.getNormalizedNodeFromJson(); + MapNode equipmentMap = + (MapNode) cn.getChildByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT)); + List inventoryList = new ArrayList(); + + Collection containerMapEntries = equipmentMap.body(); + for (MapEntryNode mapEntryNode : containerMapEntries) { + inventoryList.add(model.getInternalEquipment(new NodeId("nSky"), mapEntryNode, null, 0)); + } + assertEquals("All elements", 1, inventoryList.size()); + + } + + @Test + public void testWithNormalizedNodeFromXML() + throws IOException, URISyntaxException, XMLStreamException, SAXException { + + Onf14DomToInternalDataModel model = new Onf14DomToInternalDataModel(); + + ContainerNode cn = (ContainerNode) Onf14DomTestUtils.getNormalizedNodeFromXML(); + MapNode equipmentMap = + (MapNode) cn.getChildByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT)); + List inventoryList = new ArrayList(); + + Collection containerMapEntries = equipmentMap.body(); + for (MapEntryNode mapEntryNode : containerMapEntries) { + inventoryList.add(model.getInternalEquipment(new NodeId("nSky"), mapEntryNode, null, 0)); + } + assertEquals("All elements", 1, inventoryList.size()); + + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/NetconfDeviceNotification.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/NetconfDeviceNotification.java new file mode 100644 index 000000000..c12ca4a18 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/NetconfDeviceNotification.java @@ -0,0 +1,40 @@ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util; + +import java.time.Instant; +import org.opendaylight.mdsal.dom.api.DOMEvent; +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; + +public class NetconfDeviceNotification implements DOMNotification, DOMEvent { + private final ContainerNode content; + private final Absolute schemaPath; + private final Instant eventTime; + + public NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = Absolute.of(content.getIdentifier().getNodeType()); + } + + NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = schemaPath; + } + + @Override + public Absolute getType() { + return schemaPath; + } + + @Override + public ContainerNode getBody() { + return content; + } + + @Override + public Instant getEventInstant() { + return eventTime; + } +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/Onf14DomTestUtils.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/Onf14DomTestUtils.java new file mode 100644 index 000000000..6dc9b50b5 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/Onf14DomTestUtils.java @@ -0,0 +1,132 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2021 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.util; + +import com.google.gson.stream.JsonReader; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import org.opendaylight.yangtools.util.xml.UntrustedXML; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory; +import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier; +import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream; +import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; +import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; +//import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; //Yangtool 8.0 +import org.xml.sax.SAXException; + +public class Onf14DomTestUtils { + + private static final QNameModule CORE_MODEL_1_4_MODULE = + QNameModule.create(XMLNamespace.of("urn:onf:yang:core-model-1-4"), Revision.of("2019-11-27")); + private static final QName CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER = + QName.create(CORE_MODEL_1_4_MODULE, "control-construct"); + + private static EffectiveModelContext schemaContext; + private static Inference hwContainerSchema; + static JSONCodecFactory lhotkaCodecFactory; + private static String streamAsString; + private static NormalizedNode transformedInput; + + public static void cleanup() { + lhotkaCodecFactory = null; + schemaContext = null; + hwContainerSchema = null; + } + + static String loadTextFile(final File file) throws IOException { + final StringBuilder result = new StringBuilder(); + try (BufferedReader bufReader = new BufferedReader(new FileReader(file, StandardCharsets.UTF_8))) { + String line = null; + while ((line = bufReader.readLine()) != null) { + result.append(line); + } + } + return result.toString(); + } + + + public static NormalizedNode getNormalizedNodeFromJson() throws IOException, URISyntaxException { + schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); + lhotkaCodecFactory = JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(schemaContext); + streamAsString = + loadTextFile(new File(Onf14DomTestUtils.class.getResource("/ControlConstruct-data-test.json").toURI())); + final JsonReader reader = new JsonReader(new StringReader(streamAsString)); + + NormalizedNodeResult result = new NormalizedNodeResult(); + + // StreamWriter which attaches NormalizedNode under parent + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + // JSON -> StreamWriter parser + try (JsonParserStream handler = JsonParserStream.create(streamWriter, lhotkaCodecFactory)) { + handler.parse(new JsonReader(new StringReader(streamAsString))); + } + + // Finally build the node + transformedInput = result.getResult(); + return transformedInput; + } + + public static NormalizedNode getNormalizedNodeFromXML() + throws XMLStreamException, URISyntaxException, IOException, SAXException { + schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); + hwContainerSchema = Inference.ofDataTreePath(schemaContext, CORE_MODEL_CONTROL_CONSTRUCT_CONTAINER); + final InputStream resourceAsStream = + Onf14DomTestUtils.class.getResourceAsStream("/ControlConstruct-data-test.xml"); + + /* + * final XMLInputFactory factory = XMLInputFactory.newInstance(); + * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); + */ + final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + + final NormalizedNodeResult result = new NormalizedNodeResult(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); + xmlParser.parse(reader); + + xmlParser.flush(); + xmlParser.close(); + + transformedInput = result.getResult(); + return transformedInput; + } + +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/YangParserTestUtils.java b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/YangParserTestUtils.java new file mode 100644 index 000000000..2f8c83556 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/onf14/util/YangParserTestUtils.java @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.util; + +import com.google.common.annotations.Beta; +import java.io.File; +import java.io.FileFilter; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.ServiceLoader; +import java.util.Set; +import java.util.stream.Collectors; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.YangConstants; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.parser.api.YangParser; +import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration; +import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; +import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; +import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; + +/** + * Utility class which provides convenience methods for producing effective schema context based on the supplied + * yang/yin sources or paths to these sources. + */ +@Beta +public final class YangParserTestUtils { + + private static final FileFilter YANG_FILE_FILTER = file -> { + // Locale keeps SpotBugs happy. It should not matter that much anyway. + final String name = file.getName().toLowerCase(Locale.ENGLISH); + return name.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION) && file.isFile(); + }; + + private static final @NonNull YangParserFactory PARSER_FACTORY; + + static { + final Iterator<@NonNull YangParserFactory> it = ServiceLoader.load(YangParserFactory.class).iterator(); + if (!it.hasNext()) { + throw new IllegalStateException("No YangParserFactory found"); + } + PARSER_FACTORY = it.next(); + } + + private YangParserTestUtils() { + // Hidden on purpose + } + + /** + * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param resource relative path to the YANG file to be parsed + * + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource) { + return parseYangResource(resource, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG source. All YANG features are supported. + * + * @param resource relative path to the YANG file to be parsed + * @param parserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config) { + return parseYangResource(resource, config, null); + } + + /** + * Creates a new effective schema context containing the specified YANG source. Statement parser mode is set to + * default mode. + * + * @param resource relative path to the YANG file to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * model are resolved + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource, final Set supportedFeatures) { + return parseYangResource(resource, YangParserConfiguration.DEFAULT, supportedFeatures); + } + + /** + * Creates a new effective schema context containing the specified YANG source. + * + * @param resource relative path to the YANG file to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * model are resolved + * @param parserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResource(final String resource, final YangParserConfiguration config, + final Set supportedFeatures) { + final YangTextSchemaSource source = YangTextSchemaSource.forResource(YangParserTestUtils.class, resource); + return parseYangSources(config, supportedFeatures, source); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final File... files) { + return parseYangFiles(Arrays.asList(files)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param files collection of YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Collection files) { + return parseYangFiles(YangParserConfiguration.DEFAULT, files); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode. + * + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, final File... files) { + return parseYangFiles(supportedFeatures, Arrays.asList(files)); + } + + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, + final Collection files) { + return parseYangFiles(supportedFeatures, YangParserConfiguration.DEFAULT, files); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param parserMode mode of statement parser + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config, final File... files) { + return parseYangFiles(config, Arrays.asList(files)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param parserMode mode of statement parser + * @param files collection of YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final YangParserConfiguration config, + final Collection files) { + return parseYangFiles(null, config, files); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param parserMode mode of statement parser + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, + final YangParserConfiguration config, final File... files) { + return parseYangFiles(supportedFeatures, config, Arrays.asList(files)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param parserMode mode of statement parser + * @param files YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangFiles(final Set supportedFeatures, + final YangParserConfiguration config, final Collection files) { + return parseSources(config, supportedFeatures, + files.stream().map(YangTextSchemaSource::forFile).collect(Collectors.toList())); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @return effective schema context + */ + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath) { + return parseYangResourceDirectory(resourcePath, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @param parserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath, + final YangParserConfiguration config) { + return parseYangResourceDirectory(resourcePath, null, config); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @return effective schema context + */ + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath, + final Set supportedFeatures) { + return parseYangResourceDirectory(resourcePath, supportedFeatures, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param resourcePath relative path to the directory with YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param parserMode mode of statement parser + * @return effective schema context + */ + @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles") + public static EffectiveModelContext parseYangResourceDirectory(final String resourcePath, + final Set supportedFeatures, final YangParserConfiguration config) { + final URI directoryPath; + try { + directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Failed to open resource " + resourcePath, e); + } + return parseYangFiles(supportedFeatures, config, new File(directoryPath).listFiles(YANG_FILE_FILTER)); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode and all YANG features are supported. + * + * @param clazz Resource lookup base + * @param resources Resource names to be looked up + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final Class clazz, final String... resources) { + return parseYangResources(clazz, Arrays.asList(resources)); + } + + public static EffectiveModelContext parseYangResources(final Class clazz, final Collection resources) { + final List sources = new ArrayList<>(resources.size()); + for (final String r : resources) { + sources.add(YangTextSchemaSource.forResource(clazz, r)); + } + return parseSources(YangParserConfiguration.DEFAULT, null, sources); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. Statement parser mode is set to + * default mode. + * + * @param yangDirs relative paths to the directories containing YANG files to be parsed + * @param yangFiles relative paths to the YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final List yangDirs, final List yangFiles, + final Set supportedFeatures) { + return parseYangResources(yangDirs, yangFiles, supportedFeatures, YangParserConfiguration.DEFAULT); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. All YANG features are supported. + * + * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed + * @param yangResources relative paths to the YANG files to be parsed + * @param statementParserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final List yangResourceDirs, + final List yangResources, final YangParserConfiguration config) { + return parseYangResources(yangResourceDirs, yangResources, null, config); + } + + /** + * Creates a new effective schema context containing the specified YANG sources. + * + * @param yangResourceDirs relative paths to the directories containing YANG files to be parsed + * @param yangResources relative paths to the YANG files to be parsed + * @param supportedFeatures set of supported features based on which all if-feature statements in the parsed YANG + * models are resolved + * @param statementParserMode mode of statement parser + * @return effective schema context + */ + public static EffectiveModelContext parseYangResources(final List yangResourceDirs, + final List yangResources, final Set supportedFeatures, + final YangParserConfiguration config) { + final List allYangFiles = new ArrayList<>(); + for (final String yangDir : yangResourceDirs) { + allYangFiles.addAll(getYangFiles(yangDir)); + } + + for (final String yangFile : yangResources) { + try { + allYangFiles.add(new File(YangParserTestUtils.class.getResource(yangFile).toURI())); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Invalid resource " + yangFile, e); + } + } + + return parseYangFiles(supportedFeatures, config, allYangFiles); + } + + public static EffectiveModelContext parseYangSources(final YangParserConfiguration config, + final Set supportedFeatures, final YangTextSchemaSource... sources) { + return parseSources(config, supportedFeatures, Arrays.asList(sources)); + } + + public static EffectiveModelContext parseSources(final YangParserConfiguration config, + final Set supportedFeatures, final Collection sources) { + final YangParser parser = PARSER_FACTORY.createParser(config); + if (supportedFeatures != null) { + parser.setSupportedFeatures(supportedFeatures); + } + + try { + parser.addSources(sources); + } catch (YangSyntaxErrorException e) { + throw new IllegalArgumentException("Malformed source", e); + } catch (IOException e) { + throw new IllegalArgumentException("Failed to read a source", e); + } + + try { + return parser.buildEffectiveModel(); + } catch (YangParserException e) { + throw new IllegalStateException("Failed to assemble SchemaContext", e); + } + } + + @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", justification = "Wrong inferent on listFiles") + private static Collection getYangFiles(final String resourcePath) { + final URI directoryPath; + try { + directoryPath = YangParserTestUtils.class.getResource(resourcePath).toURI(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Failed to open resource directory " + resourcePath, e); + } + return Arrays.asList(new File(directoryPath).listFiles(YANG_FILE_FILTER)); + } +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.json b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.json new file mode 100644 index 000000000..28ee95a5a --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.json @@ -0,0 +1,24298 @@ +{ + "core-model-1-4:control-construct": { + "uuid": "8abce474-8da2-a540-b219-2a012779b195", + "equipment": [ + { + "uuid": "c942beda-266b-a670-ca1b-e78a3653775b", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "i76q6kFWyyFWXeHzFcEXII16sPxy2S0lZZDYbjMKRrGGFnfdzT29C38WLxu", + "value": "qm0hdE7pPT9ydHeKXmPofRyJVyxy51lngeFtKEKzqL7Dtdfqz5OHWeiJEQhKRvZZJwltb5UBRT6c6luyqaffpxY3fgF7LxYm" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "contained-holder": [ + { + "local-id": "69eIK8tns8xHGAn1rcbfpyeG8mPVkierrs1btuqVuQu3qR4JV7YkFdTFrIBM0P5ja6mDtNqXvVSNEOxsVn", + "expected-holder": { + "environmental-rating": { + "power-rating": { + "power-rating-name": "WRmN0Z6ISdWZ4ApBJP6Y0S31Jvb", + "power-rating-value": "jcZ7VdMNcToX6cO2M5wnUClNngO6M0W54V509RNdC32B" + }, + "humidity-rating": "Qv2V1hIwDvLTbJx3Fv8tA0ujFHWJKpYsUSgOaYcFlXqwyYAetAz3s3e7K2QmrHHezPUJF6g0VHotFQz8q83Sb9SOcA2vhBJJqvk5tBXoieKX4jXnkS7v1ZbdA6JJHkk8IF5bgVAq9cfdv4APWIdXzg31mEL4Q54yC9KKWca5opbLtDthdG7NW2OjGrfopjXTszEhDOmT6pEr37J8FIVuKCNqV2OcdD6F4KWHqbAos7", + "thermal-rating": { + "maximum-temperature": "6058108260670861.0", + "minimum-temperature": "-4624397495984346.0", + "thermal-rating-name": "oKFD46bC2JaI4kAeHPNGSoKNFTOJZxVfhsTez4ItFS4B4EPLmCs6T4LyXziP654gqPuZL4krXo2TVKFheZf730GSzQzxNwNdl947ehq3FkWs4tBbsQinQQghyPPmdCrzMoySFYVcaRF7d8iFZs3Pbb7JSWX6qhx4F5WcVJoXtV4G4el3zgKKjJl4xj2YAzU7wRjrsHgVvlBzrPu05eKhY6lnhnlJO8QkZ9DjQTfd6QMyF8yDnbMd9ZAie" + } + }, + "spatial-properties-of-type": { + "height": "zxCFbasbrFG5HtXrjnkZwYcj7nAmAni9VVOYXg1gVHdv3aWmx8lV7x6eUHsm4KwRxkImtJugjHLmJzI9I34Ps33eKnBGZ7qpj0LEJgVUPGgz8QAQLwF5zAkbXNSOMad5aZCT7xGO5WfdFP3qmAwV2I7ZvRGh1Te3KQWJfuydjNqYDmgZWEMZmLQJCw0vi7y2P", + "width": "MXRcaaZA0uOhlLV0CaLkTgJML1LcVArzpiLzlD2l", + "length": "Quttit5s6ilm1Z02K4PdvpCNac0N6eNWI8q0tnkzxGWyxOsiSivnzZ2J33p9946R" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "9nnmA3rKb0e4Uu6m632P62p4jT2w2ztbOQppTJ1WBfSvBYSA1Mh0OG47zYwBqZFeHWvAFwphDhEfgoP9a61ZE5654uHmleA2a6vIuUZ83Dnj24l4am3Os2ToosKKycMBahjF3aF7NUqHYDE", + "value": "0HGkBrA0UcKkooVrGe6" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "WPzxDTd2GtHB0hES06Yc2N5h5F7Lx2ulJ3SfO6hnrYYr7ub7A1cvO9MLOLoeNTzpOkEviVSJLQ3TdeSNg4iWeWI2H68nRIMG2q3cdVVYDYJQ5CElyO9MDRHkQPzHplfjDivQ5jHJhqzm25zBMJfpsOBawbKNoZ72auSfNzY5SqjUnTn9uvqO", + "value": "2ZH5JntAuvKQg0EHQBz8MmwxBx16" + } + ], + "position": { + "relative-position": "v6jEM1rgLVV3RPJ32n1zjDo1WrtkTs2hzdNdeetZ2g2TXEOZ1IqclGdh7zu11oaACXNQ38I" + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "local-id": "gF", + "label": [ + { + "value-name": "oDQ4x9DnMhnER3YkuycgKWB1dosLvqmT35PselPSu4pl7nytOKKqzdjMBLx63TSYYzq4U7PhbeCat2EhNoAmtT8WxxVAiFzheRd1Z2i2gMdKPRTC7lQAfYoMnjeFYNO5x26o4gqdUvPBmA5lWVN3LcP8", + "value": "3OmJurgwpEtxWyrsf3GP82L4POH1vQprwLa04iptWS0KijcxmTmnN0jCG0w4INv6qx7uPoXD8Xnq8sXvdbK033uKV0GwFbC5AJzp7oU7d9xmBmROytOBobdb3THJWkOwVgNVEz2SJAecWX1miHQGS3" + } + ], + "holder-structure": { + "holder-category": "core-model-1-4:HOLDER_CATEGORY_SLOT", + "is-guided": false, + "is-captive": false, + "is-quantised-space": false + }, + "address": [ + "RXi6iSAOvj4nXDdqdeczKK29D97ljR22Ok975BNAUJXJm29rgeS0YV2t49Pf1J9HWaG1MlByWqabsjCJpvBfqDJmFqty9u75FGYj1rRQR11cdDVC0oSiUtErTZZ2uY01EYkyi3g9Xh" + ] + }, + "occupying-fru": "c942beda-266b-a670-ca1b-e78a3653775b", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "ssx8U8By0qvksBy54doUIbEwHtV9g", + "value": "OJDdJplkXeCsy5V62SciEUtii3DdcUoSv1Yeibyfp2zX7mW2e0kSUO3dRyiVsGGPzE3RPtYfwp4vMSx0SSLNGGSpeaczJSoiwk2eN0tbipH4ie426HPEfzVuK83l0jDpDxDjq6mIn3MFaII8ipFxZs1BAWWt8rSDRnOhlbZI6Do8dY9vfO36gWHJLvcLPWoGj5PEg" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "OqycqBBcrnx092qKYVCxFI75HT1UTkMACkEUN76euEeDyEowsSVZsVX9OQ3A3I2F2GAIOyWi43ODz411WPTgKQiqGdSJVUhQBJyhhmzmhfRRjSKfzDojlGK2TuDPpUFSv59NrA1JQSs9Cch4IFn3lZX6utVLfsDLxEqZ6rIWb2YFe7JOMZKZYz5k215alAN", + "value": "edSlws9zu7eAeQpSP1RFAP0vIXx3ykWMxGZV09uu8A5fqm77fRNPyFcgCJb238PsGGnHHJbQk85Km4KBNxjl4vtG7FJaNqvlYK2Gu6oOelqtpa45zfqDLUcSrNU65hr32uBwAZcGkC9CF6H6lZCYLOIctviqMKtOe5cGWomhTwTquswHr8GdOgp9LAzqk36q0j6OHs5sQQScipUKpsPeI6nmGXM0SS" + } + ], + "actual-holder": { + "environmental-rating": { + "power-rating": { + "power-rating-name": "TSpoDFvU2g96tmW", + "power-rating-value": "kqHY02YmgmzyAj9l3yJy56k0mm6PAV7UdGK5ABrQX0hxcqS7QuGVASVXeUEPHDBUcmZMXqvMjMcv44uUq2P1VDQ1pmIY0kS4yJQv9l9k7lPbic5IeN" + }, + "humidity-rating": "9ijbzGTxy5hCD0k01GamFv3RNfOoutZvDjG4RsthpKL3C5VEL5SjtV283QwpcwUHHtMqVfHcSk7up3030KmlyouB600aoUSXfwn2DWfv8mSyhKtavHv3XZw3So68aQYqedsRaHfi47IdJ3n6KT9HKxDuVBv6rtwFGYoIGDTCCBHex5", + "thermal-rating": { + "maximum-temperature": "-9192647172244746.0", + "minimum-temperature": "-4767478425937178.0", + "thermal-rating-name": "bsNCRx30IYF4AiNBatfSz3Y7DAwZNNqZ75tQCwQkmvoOF4pHxwA6sy550B4OgmFfr0X3wNgSawGHAYp7uZ5WpbUqEY6NdD2ED0I9FQTImrpXpG4MF2AX5ufJllwyYrctjMCQCvyRWQOewK04EsTJX8talRIbiMEBr8k3DSMrAAxZdpVRSOBHWWR9NrkY5Yrw6LsBweU6HkXUJSDtG6au2TvIcPGiF7ODTg6hvTn4ddYW5tqEAs0uewcq" + } + }, + "spatial-properties-of-type": { + "height": "2U8ENpo5bJCCCBtxXrpYYfioxmEHbVUdH3Rmk8svR47mxsLvTatJpEZP0Do3qig0d7mx7GURK15ilQF708QhMQ6ElmHEFXwKXKaWr4F3YKljs0qk19CFZAccXLIuBeeqZoeilUljwzCZr3js4N03g475PIzqWFINWXXhRjAnS4ejZyE3lwYBA6GpG7IuNqaJn7S6qsmaoAmo80rmoqXYown4DXqioATDILC05YbuypSzhbVFtKDJ", + "width": "SFEQ6W6GIJo", + "length": "dh" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "ZZnUlg6HvQkx1x106xEjZNfAftn0Km3Jdiwyzu7Wksml", + "value": "neXMS8Dxo5FJsFlOAW1SsAjXHg91Cv1RJQDtZ81fdyQGdbuF7opsQJhpRqrlNs4oaHS1HLgUj6Ao9X39dkB3VKsM2TZQd3eoCYpjJy6UEGaGv5PIqqLl2604ZRU5V1tpZKJBiPvPny" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "ZKMc4Ho0aqFHD6RI2rNxNwGkK1g7j5TaHFnMfDMh4jYzhIhj95QOto15phdAn6L4E0QTDuaHO19XJqhKn7qJorOFJ1g60T2ELLpofrYVs", + "value": "T3p2FF16gpp458Yd6YY9uJUTZ1kPPFWAAeCgTve1VD5SEVXKTNTfwF0nzldoS1Ys7sA0XG1KkZuYUrAG6mNC1OSs15QTYOd68OY6mSQGRlwDEZbLlZfeF7HG4pz36M9es7" + } + ], + "position": { + "relative-position": "hQuRA1mXPXsVgNrNlh34PHXjbq1pX6K7W6QoZcdO1xJ9k2OGcRC1yzlCRm1HkLO8JEoJICxB99Km3q2fhEhI5ukOQlv2ZbaIPyjpaJ0cSCyN2s3c6cU3GeRorfqiqAT80cx3VqfFUNlPfg1dsN80TRgk6Gvp8ox0AW3oeiV95gQcw" + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "local-id": "Qh9YB7w6wEm3FP0Id6T0fQhX3NGcE4umlvdPCJN9ga4VZWv43g4a7d821GexLALY5YNIItJYDFLuC8qxpmHwAPqtoE097D7cCNMcgn2L3N7xNp4cLLAlt0ORxGSEkRIOwn0MK2pFHocuNgzzU1Mn2t6r1YXlHF1eU1SFVacuypZmFqVrrzOt2MM4CJhkhjqbciI0sVu1klfRL2jdBZywElsg4JsdUSpZ", + "label": [ + { + "value-name": "LDkt3C7hE59I40D9NEudvfO6xDueS2JDF3ZBxYKb3TM7Lh9r", + "value": "vEiKspaXToHV0ls3c3taFwdqic4zdvmJ9Flt4viP" + } + ], + "holder-structure": { + "holder-category": "core-model-1-4:HOLDER_CATEGORY_SLOT", + "is-guided": false, + "is-captive": true, + "is-quantised-space": false + }, + "address": [ + "AoM62LhFY8V4N2LlZbU2hz3vT2IAUTQu9CA3fKJ5KE9qyVLxYyr77muSpctbXjx6N0aUKTZmp0MPVyfL6GK53fXkjivht2f82h2E2T1rUNhHdwtb458ZkYjE8GNCJ2KDkNamybGsQXaWlv7hA8hV6s" + ] + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "holder-location": "Xy1G8MdV8bpfkN", + "label": [ + { + "value-name": "mebCnoswUIcPOsDo3gT7TA3a8efXSvv7JGB654uRMGyA13Y4cKc5c7flmuaeRydBePzbTW2xCs7DoYAAAMFMTNZ792m1AruOg301RUyufyZDwr565KKZpK6zMkAmM42UZUWRHmdWU4rqwwoB89syLr7xDzLhvNcmI05pmidhfEzL2QeaZzAC0z9v8UNvzRS9RXy58Den9O0bEeevN", + "value": "7Fo8boUQUlHMvqJ3vRzK6Iq6M4d0r" + } + ], + "address": [ + "DJw5reYExfy9w0QKAW0WDPAvzlGbg4BTFZZ7ePDDW3Es3u5" + ] + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "WNLNfh4bUZ4pBHVMwv2rNHXr7yVoi59eSUUZ3Y3YP7fqHb45y6wmGtFNUA4cxdiqZch32kTRk8a1be6KduYTPDGJ6KVDP6VPidKdpD4JDeKPlIzycxr22ZD8CrMrxzgHM0UcvZV95yYq8pY", + "value": "OhfQhKRTbvkA4tiRl4VJ3IS18IjhZiuNzJvIlmBxRO7O9hxumsdh2XibxCkoMO3dpzWKNphxdhlmySJMcO46MehbIBAuhDAG4orSNAhTRC7imQ4yF0EjfOmXhWkzsUfwaygX9xQ01YanG7Nl7kwe8TchHoQ9aYykwOhxm0" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "local-id": "AKXMmfqgjj2081f2XmP6b930tbKMFTnfDcTZsb8LvaDD3SF06mZhvUiR5UDCNSRi4CaoOi1jkFOoplgwH7F42XV7KqCxitQf60DMaF5ucLKB61ZN0FJ2uF2eXEE8ZmnXeSJoxGSBrDdpw4", + "is-field-replaceable": true, + "connector": [ + { + "local-id": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "connector-type": "zv6v1FQLb87s9b", + "orientation": "core-model-1-4:CONNECTOR_AND_PIN_ORIENTATION_FEMALE", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "woxGy1VZq50AIs4oVGzEh3XD8mnxqNLOcivCjiCBoub6WgmJOWg5ZdA7sXwKDizPsWjE6Nfuhjt6rPHfLXdK3NKvDg7gqGXTugxB4E5dPqbggToTQBwTg8gToo1", + "value": "4YAr7ZU3vR8liktqdRj3kHPBP5m6toNqefRleDgBupWMJq4W9gRuXG5NMrT7HGxWVgh1TyCoXr2yJ7uSflmcUjZGDKNkqdgdtq6fQJDF2xdLwzDLUSYG3PeGA21S79YAr4PhNkOPK1s8A6UnQK3TraAT4tMbuCDWGl5mFU3hNwqgucvkWqdfAF9E8NPvptr5OojlanDYTVen7Jz31MaCsjgs66Xvrgt7FMsP1XFUSL9ZmIUon50Hgg" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "xvPsMJrn3DeWWtNl1tlOR2Ozg0q9kMvJ9dbNOvbS0hGWLuaEXnkPp0gF1GHdkcWmh096ncQnuwb7SlLQIXx8Y", + "value": "FZdmcyr0UI0VOf8ECC3OBV9eDKb2S1Hx0VM4ld5fVX2K5agHEjvf7xtKhxN1ymqzhcvCpsJdiMPnO54thsAoR400BF112rAbwYGNqh0I3PXSN2d4mNkdJcdcS6eMpGXVEvJ5NBFIrvs6pF2LleQ4qV9a1nWq3MeIhXFWycFRH7X6FRJ05rWwm5GnsvGohU6qJDn9H21h1QfGIRyFivbFAKUVfA" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "connector": "ir7YPQ2fCxLcwxXGWBi5dKDbClLrh4dzvcqk2szxZcJnBy4y9mve60pId21u6fWCrmWmOoTFsu3427u3lZhsRy24B4qHbmbCI0YooJ4Q5ZM7Yg2j7bDYKGUdCdMNzYhaYgqeRmWXlJWjRZvZ28PEGCRiPwXomfqcnRqedebrP0KHZ7yTgnyWZh7OF451bndyevFkKQLrQn8HvGtLWTHN2GuILzJOWXn3s2n4K8wtvw205nD", + "label": [ + { + "value-name": "neZKF75MMS7uT41GPNHG9qtxFqxmGGnVUmysuD68ndu9awPZboFkO0Klq9HZP5UCjs4NYaOloiuyGbpRAWcgXWCf5beNg1pAtlfjv3FLe1bU5AMxxQNmEhBBlQoBRF3c0bwo639k4lf1NTycJeyfv2QQS7kBMfNFqb3xe4JbpYc5JLhkZIzmKi5Cph53wKAPWDe2IX5ZOi4pVeKUWb8Gt5aKmfOLZgANUGIuvNtj5q", + "value": "0ElMswN00SaKfhq08HsWt0wXvjiHhAi96DWy9By1tAEARWs0vMOYMkNavYRMy9WxMK5NlwPG6l9YhBQNgwD2Ijcdh30H4WeQGcwTIdzGyIwHcmusK0msjrGAmy9ruo92sFNaSeQiXf01BmlemHGx8e7vM9W8pXaRDX1n4Jy1YqUsMfG1WeyXtykfH8o65qPAgIYkjodaO7Cseat2gUZJsjZ1rfZpFOZNoP7HdkR1jl" + } + ], + "pin-layout": "dOjTa1wJKlyzAtUuQY6QmrdTu6QRJR0OxjIIc6jWrJo14anU0uCnVI8hOY1pH1e6cOGoUSceBA7GKvsLZX0MF0WlYXKxQQD2wcir4uFxXM5z9qc0ncNUcJf2yRzgA5i6hAxdW4KTJQtS8FTvKGpWhwZHnqXXn7WEzlJvqup9cK1khMH1kYYBuPaJ7", + "role": "3ntP4na2dDo2O71NyoU3qzM3KUa44d87ACWEZYy4CW6qVZ5uoZpGzbJbYLgUYo1ySP4JGCNiqLAlDFH1F7H6aih83p21GVrqDvab7Ptxt3K6As77zGdBQnKTMEMksdLXIV8HCte5oYbYia6JIblyyXjlt5FVaiKK5KrIdxNtoRsGTqquBL2aAen3bURedBYieq0jXGNlp7UaxkE0Xz2xNpsQcj4pN3z1lsk", + "address": [ + "5M3ft58CZYSxyB66TBhq3TlY8Nhwaqd7cgmyemaddUKLvIRhj1HfU2dVInjSNwR0F6yTsAYFvAjSj29u3RJQLXDtcWdZl5R0bhLDSJbfju7uw9ZA0IiDxV7JJcJW9AOcSrQCa1RmnQQTZPlRqDnXqmH2yiQIKFUu6C69vPnSG5ExVZhdDEaV0" + ] + } + ], + "equipment-functional-boundary": "DFZFi1kezWboDZkE3FzhFvKzGTxCIlKd0CLiv5o4TAkwrE3ukCER7oqGiPa0bM53oQeTVCPO4adwOgS0KwSJVah50rX3626uTcgGP", + "label": [ + { + "value-name": "jPepJH8uNkA1O0rY7GfFFbUNITqfKMb3BpkcZsGME8Nk17b8FiNclAZ4lpb5bm1EElIDGghchXxi4AqBS6OeGNaT5dR8AKN65nJDESQVPfdLHDnzJ3FhQH3VVU4vwJBt6c7C4PxMWCpDgM4RPC1y", + "value": "4leQhBmS4PZgOtdD1ZrDg4L31vKDwaWAo3qFEMyBtpRi" + } + ], + "external-managed-id": { + "manager-identifier": "nL7shOA2Ok", + "external-managed-uuid": "yVlBdqtwnoCimZ3zfJocY1cqj00lGcL707Idx3BNr65N58mcRCoIEs8Ps1215N05UIikDM74ScRXk693IpLeSM3cF5dKTdQFN0ZqM6mEa6BucCqM231MHWYm247N9XsXXkfKqCg" + }, + "expected-equipment": [ + { + "local-id": "5ogMVncCkWcARJDyVgLpJCBx1YnHNkdSIlwwIJ8UxlvgW0GRhs9SWKhXIEFnZK8H5EdGfmAMzX2nYBff3g7R0pPA3mYU66C3CHJS3kwu9rS72ZmXfmO7", + "environmental-rating": { + "power-rating": { + "power-rating-name": "SbCxUE3gjB1d3ZL38Z9ouW5rLcw45P5YSHnMmqUFTNSXNv0Vm1bQXgiAsO", + "power-rating-value": "qvJgnjv1FONcHB4wgro3NpeDemNPHtl7YXfdgK6NqUZ8nVwDeVG1cMwr0c8HFtGEiVRyyYlYKcY77vKliieu4DV4P3Eupk0H8S8yItokyfrFC3TUdZo9Cc5r7JW" + }, + "humidity-rating": "WW6WGeugHKs7ZTNBOyn1xE22Q8tXJhmF6sBEGXNfAfnz123HsiBZWDTMLfCnwQ2uaw1QlOXVVknWeiEGA7yxKrboGFL5vFrFbsnp8lk4xH0MZwksDSZgcaESQhPdWhL0J8pSlJWTjOxadRCIKtYWEuGmLwrINcIod78yIWrTD", + "thermal-rating": { + "maximum-temperature": "-7247948325455645.0", + "minimum-temperature": "4209239608997998.5", + "thermal-rating-name": "3VU4BAUwgYFaORDST5k3xKLJOazisrwnmjsPTmm1dTb1CGTvMdqbPcMDedNyEkW0DgQou4qHXtAAatXWyoZfsLTyZy6DKUwf2eExiW67hHzr2pfBNeQ7SBFR2DmMyS2A6y7gm6gDNPXPecq" + } + }, + "location": { + "geographical-location": "f828XwBLybRXcsaIZ0jOXNzA8tHU8tTntNvqkZ3SaUPmm0Wm0f2PUBp24YWcrIzVvXdHWhAY3hcq98E2fGR199467SirsKmQzrxnIZlM9x4ixIcMgWNp5Jv4CGvWiJ", + "equipment-location": "YwBCp3J233Rf8rnCwiacXXkPW4iTjPthlXTK0CN3FwaGXqalIkxF9Rv5WFQ7ucoI9hk1L7Wiv6Yto9O6leEv51sTGj03vgLwx5pa5ltsjjNIsuGOIkbFlDzUWrXjIAP7x6iurDXDWCdh6T5O6gujLVdAe2TWCBW2H6w1JlwxYJOWuTLs17MNU" + }, + "spatial-properties-of-type": { + "height": "5mR00v5vpPC0NGKNq0ZDQoaa5", + "width": "PVmctrqljiQgG75i8KQKygKxMsNWDSGsF2w9uPuN7c4Fj1XjMF3cOGBA8ooD85XN7uWtbi9iu5YOYN7Cl3O1JhBJxZnFWktWGhhRAi2WnSCexCQSFxTgOmZeemT2zeY7wgZYyTMOLp2a1KVy9GOQ3N492Xbt4aAAirqIccoXt", + "length": "0" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "physical-characteristics": { + "materials": "NJGeXg2WxjkHdsDqik1UJXBYjUED5D2SeB64R0SgjdXpxsPPEQCn", + "fire-characteristics": "bPgqhxfuF94EN7j72kRDp2as5Nm0cxSne0NnxUSd4WJRV2RXmABDCD5AqjACQkRWkwkSqcXm0G6VAXLWper2RpuhI4LrhunB0HliLiFLQLzqAkeZyGThXfyFkb6tFm4FViPHsmkjZLJzXQrnocElsc0EnZ72d3z0dhHGDURDxs4vinSGsx1MBUqRLpLQkdQyuq67kXCRpzeIO7ggwa274kYHBCxWPnmjNsiZ", + "weight-characeristics": "DG64U0uGESMCi2b9YgRPcJV8wOcXoau1QsXDtrj7c5Cm8FvYWfN0YA0mgcbEeFx58vABOTA0QceYSKOGRuyHWy3dL6RZMhWUMwnshPl82zYMbNk29SB5iEa3LU3pb" + }, + "manufactured-thing": { + "operator-augmented-equipment-instance": { + "asset-instance-identifier": "SfXxYr4p7t0pQbLzj5MUMIDjQMPsxcair7PhqLGxeyPXJAoVx3PjLlutZjVwvYOO5" + }, + "manufacturer-properties": { + "manufacturer-name": "7OIR33RzFZDwC9Ro2V69WEokuIR9K9eSXXBTSskprPV4YMkSzj2oXiIk1stDBIvrx7khrwGLlCHcg14QkYea9Ou2gXFSx3jW2vdt1U6eoNqEPnm1dAbehxgxvWpURART5WeYIld60vDPKZJQsU4Jkl8P9qB00kLYhRWZ41", + "manufacturer-identifier": "4QQyqs2hgyDWMpkdZZizovyo38lv2YlYG3w6nqfDYTsKaMQ1M8A2D0qG8L32Bh0hkpgIPndO8Fqisgj6oL8TDqAM4vGFMHP76XHVkUBtA2DUaX0rA0keqMSmiy2W7JV5GCT0pulRoZLrODSgv4mVRea1FcXEVTKtnDlEZHvgy8HeDru8vRWeX6fua59XQTq5oLKnk7vK8cYLvlM14I71GnwQkFNaq" + }, + "equipment-instance": { + "serial-number": "ELS6pekpUYxIgQpActis3mWg5lzjR75wLPu23OrXEYxVHXnTiGed22t0fVj72gvF5ZI0F9Pk0f7z4ukm2yAXtVXIQgPLwcitb0lJ2aV2p2ttwNIreaoH5lpOt7rZjJknCF6wHTq7VTsjGaKUk0B", + "asset-instance-identifier": "lT6", + "manufacture-date": "2021-07-30T20:01:16Z" + }, + "equipment-type": { + "model-identifier": "VoCSZy2YNxswQi1KVVeL35V5gquJC2TpqnhhOk7BJzZrS0bNOpqJmlOCLadfcZEvmNE", + "version": "rMum7OL8NijPku4IgzcClRwrd", + "part-type-identifier": "7MEIlv95olScCaVZvBt8EHfQyLdUzSXywthJYiPmDzqgKd77PA8l9n3H9huA1j0xMh8KAXZ5xpd9Dk8kNgFOEIoFZS7S37hPpqzRnqOMQ2NteWF1ckII26fUQmETuWITe9CBAqgik3DzZis4C2Mw82iQgPBKLbvZl7sNqA5KwAbnSwrmy6KH03pgK11ncwepw", + "type-name": "4O91qFBC2t8mPGssfknxA7ytuCSI2og64p8u4J6Z56lMFFeMZBjzIRV4mNMo33m7kuBh6AgbGtXd8407Fjyg3tkp87Fb21imwMDumLF26u8ey8d", + "description": "5pBM9svZMi4nChwjiWUaOfVMoEBnBClG1Os39QUN8QbK7zVpnPz3WmQkTjAuVN2PCmKDcEqkvtWu2RMhzdlns3AlmaH9XJQr5AWi7nuuIjYD2CUtQ7Riajvwtcy" + }, + "operator-augmented-equipment-type": { + "asset-type-identifier": "SpF30Rquwo069qd4jxg0I0MU1gce1aVTrAWskfWQvXWFf1BzzRr9K53Dl8RmiE7K744rbS9GH6dXZPoqGHriMvV0vFmNjupqqlRBe19VZnKQc89KPA3u5YusvQ8Pcx7CLZ5ZSfMJCxzGxIqnbtR8kdBP3Jw88EKTv" + } + }, + "name": [ + { + "value-name": "vHyRxtPvXT0ECKAO84YzO5tFkiUy71buBJe043o1Ogyj087845AL33qfmdNl6YHHzVAwRQpx6XQ65Y62VGNQKd5YqKbxAS62OyyxoX4uVVsSLzUy7z", + "value": "JNmH57SuHLtJr19Qi7MEUz7MkyzLF82hNoYL" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "4oYdAyxQ2mwPdgF3AYN6Mbgbc5QfCxMHVCUn2s5WGBMTRjXjhCq3Gy7KEXRgmvX98Kwa4t7K4LEN4t6dXo8vXffB46RqCHzCjXEnqD7moD1k60pWoyrdFzOKFya97CDqziN0VMecqgoogOcweEKT5yDKYGM5ipnRzaJvPYH765", + "value": "mLASZ6" + } + ], + "function-enablers": { + "power-state": "GRUgSQ8dvubEDIH5LyThXxjoHwFyfAPVrJcjrcwWGztba2hNA24xzgVgMsH22wPm71Fq64fMvIYFK7lk1hJAxwIcYp61NVfMPUdVQsz" + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "structure": { + "category": "core-model-1-4:EQUIPMENT_CATEGORY_STAND_ALONE_UNIT" + }, + "physical-properties": { + "temperature": "k6LbrpkQtDn3H9bDOtAyYF2w2YOMLxXXDA8W0tMlY9hxas3ZVDpMaradpRR2" + }, + "swappability": { + "is-hot-swappable": true + }, + "label": [ + { + "value-name": "J7XmAyFuIvMHhqBRpf3XGOvPQMu7C7udfjzPSejAB5hToKCNZxDye0fWEJ38Rqm6JVNt273D4cokWS0Oqvewvts1co9VGnThjHLdGGQKTfXH7XnpsBNP48Q9wRW4fQdqxYD5xlPi", + "value": "EZABfRVIFKFNsGbcC7jkkJRbeWIzE02aRuM6lHHSkexEUAQoH9J2Ks5YhNyNNsXEWJD9jc2vqr9c20AB1bvMEACVn2I2uxHq9cAsouPGVYSPQkrKwWwap0XM3xP" + } + ], + "mechanical-functions": { + "rotation-speed": "2pTMo6YpoHZV5IZ3Z5WN1bzIY" + }, + "address": [ + "VT4zZeReYqpHN6xmdDkIR5aK5geQr96f3bOUhx8fYpPLvm0ISkjJptlmKs4bBbqwe7ivEjLuIA86O8OGsZiRlv65Xa8rdrXry8X4rIz1az7YHOx9NHS8cQ5a16t6xiyXqv1R5sTf105AGCJujuuoksydy1k5bS2CfVlkgezh7ESN9t9kPwI2Y87" + ] + } + ], + "function-block": [ + "XkVMUjd7ZgoVR9tJ8sXP5sL0663s3yK0SyEFJREA7UnQ4Qz4aoU7Ix7Gv28ytLydbcSUVpu2bJLfsckCB6CjvJ01M0z7D8kOc5I8u42FONNg07Kt5mE" + ], + "actual-equipment": { + "environmental-rating": { + "power-rating": { + "power-rating-name": "3SZMGiFUhMoshIDCg0eR", + "power-rating-value": "cT2Ym0Zppks9jfPCMKLr05IIJkZJyIrCtmtPmk6DFzFYGusk66L63tHMFyn58HIC3" + }, + "humidity-rating": "jhvqN2", + "thermal-rating": { + "maximum-temperature": "-1325319967772047.5", + "minimum-temperature": "-2252146517379021.0", + "thermal-rating-name": "xDU7hkzWqyKWEAbqxNS0ltxBRTQchycO37VkjuhKVTyrtCRSpBKK4idO330kt59p4WJnjS7eLyF7aoRzZCcWUhCPdCaGzb5D7H1qr0E5ybcIr3arxmfjDR9QlbpVmmytVzUnAqs8uwJVrTeZ7taCkjlGuKBQY1cMB69" + } + }, + "location": { + "geographical-location": "99FYsX04wh86xIytrlquYTgvcbi17gj8pY6RNYObgOhFwP0Pbqj9jsFvDPoC5HCmxA6lyMwGAOm", + "equipment-location": "1rtdbvPiiaCyh3IgIs3RV53DtMFrUMPW6" + }, + "spatial-properties-of-type": { + "height": "GWd8gNdSEfmByt4YqjnwyDOPVmHBrZXZV283PlVmBaX1DTZ44eADRgkEu17W0WNNYVRG9E2CGRvkCmg", + "width": "AIjrYvXsw4goS44QRVoSrim09RkLdskNaD6013kxZBWRx0AgNY96hv6ifiWsKggMLeEMiZc9s0TZ0l7Fj8DsECDTUzdxHlbsAQ7SHjT9jM0b77QjglDMXgxKHK9o6cRy2YiB9bKsQCDPKl0SGEwwM38uF9SDlB3grlRAxu2f6F4I05szBYXnT", + "length": "Rr6CWr50zxlrZSNU7Tr4uk1WTCVQRGNB7Td4ca4MHh5z2St1DU57e64ZARHsxm3Ff8Bkix6SObjIVMKyyHGFGCEgteA0AvxQv02Gx8yebRW6vyE3gcAWOf49txa32zLqAN6ZNw5YfUWKstFAFgwmntvI" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "physical-characteristics": { + "materials": "iLF806TbgHfhZj7kqm8jNT5tXciHrBVJeAJezuhPcw63I5o8rwsfhpI6tSOUtJvHbfNCJ5rNtqR3n7cPvwWMNwKgoybJ9GidN5Pp29cwzVzW2DDx9rbWXW5dm8WwOeJukqTmz5K0TkXVXslZUwNJkSXH0T5H8G3k6WyGTjGMvvAsQVjCj7lwRi5K4arcIuoGiWeb7VQCiqX0dgCofYU78ZRc1agJwEqOtERArzdCZ2C4i7ty5nx5fgigiy0Odi", + "fire-characteristics": "1CNzF924SloXB1tSvJJB4VMJpsLMU27OwUfbV98NvoD6i6QNIAgMn3nMn8qa3xYzj5DefD2C1xAjvqYdSfR7a6TxfczaBpBVv61CJVeLsOWY6V3Z2VY41KB8W3apsMkXSezu9F7Ct3sAQnrSahW41q4XtffV1zLLNcfPSmj", + "weight-characeristics": "dM4UCWGId8t6VbNMcDbwmO3l1Jr3mf6A12uDR2d4bH2YSHL4cWsyLvLE6dztsy3mApRjs5nDEhBoZekbbNCOansh" + }, + "manufactured-thing": { + "operator-augmented-equipment-instance": { + "asset-instance-identifier": "vcqRn2LFkK5vrcG7HhCEjJFcmheAoJHTN7C21nIe7NBqRixqr24KLCO7T3I9EhUrholiL3oLI03ratStvO5giTf4WP5s70Too7y22XFLPI4ZbWkGDpOVi4R7LXzSXl8dsH7uwM7lvccy0w7DVVr5Racv7MnW7o2z593tWbOjfSRfgQL3E48nedSmZ8i6wkxBus4ivKtKuc" + }, + "manufacturer-properties": { + "manufacturer-name": "fmHPSCbtBbnwaKDSBw528qWPad5rQHWXVEEO8P9JSwgU8TFBhKDq2r7dEdEm", + "manufacturer-identifier": "s1pOlJVjvTnQs1oShtTYbnTeGaCYXEHhx66TQT4dErVZtjRKNCAQZt5GvHwlleCTcAE2tA702VZneIZTlzKkUHSpopCB" + }, + "equipment-instance": { + "serial-number": "E3NTbuKc33zwyn5T9md81bYFJdRVzpc5sZYvlJIoM9VdxS6yebGgnxNYKEMcWYhgPgM2ZmrDveQ26PAlS9tfG86iFSuBIMJpUnrLJSofY7h5OKiGTDOrLUJqMeTuSDTM0cxCXNRVM0SAKa9vNXWrJyRnMDRw8Ca0GHCDmtz1mjB6uCu9rqsaYcxCPg0XKaXrJsW6Nn79HA835Ccw2FzTR6nyf", + "asset-instance-identifier": "nRqcaaE78su7BbHJeMdjb8QK1zIg7XwuHPGRZdQ7Fl68oNKvsXOD5wnY5574VvqukYlbb4aIpgJF4taoiQ1geg6jddf8JFCVEQ7HU9qbq1QmuTKEBDUQT1166h7HOBDkjC2dLkgblZpHS9l", + "manufacture-date": "2021-07-09T07:06:58Z" + }, + "equipment-type": { + "model-identifier": "6kSWyYDrdbvnHTjO8CX0O8okCnVCLJLRVDGttjNHuiWbbf0bJPbqPrKsPx4A9Hj4cZqxjd6Nn2Ry9JJTqNb76VzVsvnB4HygyYGR3MxqPgYQZzBheMolzQ82loviXVyvT6fWTMmAUcqLE22KGi5g86ammxEjt4GebVb4zpwtuW60Q8KxjINrOPN2mjdPoT4zH7vgo1CS", + "version": "oi04ZKOr2Xe6p5l5wHYiUeZ6rTyt3Npk5pgX14g3Tu1brm8XW6gQk7OLSe7W1wgZNwOPsWKdiMoK0wzWuHEOPkszyznsXDjK1ZrlVczdYXPYmpVQ6rxNMZfcqCwf8HZ1GjntvWztLoj7F6QEynjc", + "part-type-identifier": "ISGJD52lKl1z13Vk8DI1z9IG", + "type-name": "R4plPf3HNEcSGpu2i33dQfllYnUZXsoOpN9625FHJSri9VcsQfFzu1UkoHcd1A2in", + "description": "tjH7Qn7xoQqMYkUJZn1C0jEriJYvok9RwRQm6PTnFb9woWffj8RkjoDC7BZnO" + }, + "operator-augmented-equipment-type": { + "asset-type-identifier": "E8bx15w7mvPa6kvqWpvHJML4LaDvcYIQ6Ug7ZE7d9WffgCx413DCHoykrbHv2pl0bt0277fg3nobZV71QKDp14JsfqXhQaiTEiWDp3MkqanqXujGeO5fSPz87wpPzzJ5RxI8Aus1wPjmbC2qqZxbG7jOvAv4ae11LK2e6u" + } + }, + "name": [ + { + "value-name": "Fp1mZ2O6CXLg1iSnyijEkUJhLu7MkyHZYIdPC1OeYrvSJffhxzORlx16T8KeGs5w2jeFcUL3l8VWfa5NBTwWixU4xFieZfC1qQyDCcGPktLAvRf7CLVNbIRIf1Oe8jfz1G4ESKtc57", + "value": "AQTzkxv7AdQasRZy0aNrblvPd7biciWM8IesfJsHOiR82IGUSld4HITUP4cTe1xmJLHQu9xajoidZY7RccNTUzFBvKuKL2YuNFcaGJk0Zv5Yl5Ixhvi" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "f4NPDEpcijr4goNfC4TQrer1oG97yMONQBClgTxy5Zulf9ARemHFA9zQHIQfmE248wqgiXOnOaI3jaUxwu5YvwH46xks3ewbDWrVM7aA9SwlUiKjMP99lQ", + "value": "rfqLjEim96GWSF6lPQR2D1MWGC5PPW393tUe0" + } + ], + "function-enablers": { + "power-state": "Il7w7RB2VaTg" + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "local-id": "C3LFHPF43SXhR5APBMe48H0q4CTPY6PA1s7I9MMcFBuoyW61Ic5RLX9Qr", + "structure": { + "category": "core-model-1-4:EQUIPMENT_CATEGORY_STAND_ALONE_UNIT" + }, + "physical-properties": { + "temperature": "NGNYQYqnmV4Kp1k1fRBl4a7BQzh4xMjct6bbWtqapuVOn7QCYjYVtXocpF8Wjr1Mp4PexfoWBbDYitt9Mj48gscFZkuiEnX3rMhY2GNvJqm2LP3p87pgrBWiOiAsxpnYcFO6dtBWLXQwETOMSd3bHRln1WHyd4opBcnGyZvjO" + }, + "swappability": { + "is-hot-swappable": true + }, + "label": [ + { + "value-name": "4YNAIaclcaHRQT1oCegBBmsWramAFEMCus44ugpGq6p8ZjxtpNX01pWkriV6PzAjTEonUNVlMllLES73y4VrlRMM2HKR8l22ZqpM6dZSykv45CZDyU4TDIFxhqgqDjsuBJgHWfzmsXqxzha", + "value": "36THPz66RnouGQY9s7RgmiDOfVdHdnHgmAP31W9SjymRgd0AkJRy2mf9hsQmQxv40k7188MjG0aPd3hxM86GmlQENGSv6nr6AyZIHL2fM44RZepMmnkJAaffRZD" + } + ], + "mechanical-functions": { + "rotation-speed": "U4ekibIzMVXtlOYEubmPaKX2mZPwL54F2a0clAL0nItIwjn1uBQxmFrIxg6id2P75Hjqi5qFNLoc4D5reVYAtpa0x9aKbZSgzbzR8ZoWDE0Hh50o0YQlf1dM2fx57hmGkNptENhhkhZtmZReQIA5BFSDVhI2qWIKJ7dgMuxYLos7gje6TO3mtVZg4Aiuo070ZkgEHNuk4Wkk8yi1eloz9fQ5H8AY1HYST6osLTNPPZ1PxjRDF7cGe2LO" + }, + "address": [ + "YVOW" + ] + }, + "address": [ + "wHqKHKgVK1Z2JnKSxAqJ771wlTWIJxd76ERFo8B19A3SQNDfgVZf2SLnLIYm7bt5HlL6lm7mO27wHKMXxLcsvYP8yFuFJPKq2vonJnCqhJWZlIWSl1kQR2Qpzc4i2GB4cZkNfWdwxanSKcC6dXO4RFliRpBL54I9V2XaQ2zncW7X8JVdyBhp8CISTbDR7lS2fH55KEkOArDBbqOJ2Y1asB2mEy5LLXN1xSY9ob" + ] + } + ], + "profile-collection": { + "profile": [ + { + "uuid": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "qos-profile-1-0:qos-profile-pac": { + "qos-profile-capability": { + "drop-precedence-at-prio-queues-is-avail": true, + "drop-precedence-at-be-queue-is-avail": true, + "available-qos-profile-kind-list": "qos-profile-1-0:QOS_PROFILE_KIND_TYPE_NOT_YET_DEFINED", + "profile-naming-is-avail": true, + "drop-precedence-at-af-queues-is-avail": true, + "available-queue-list": [ + "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3" + ] + }, + "qos-profile-configuration": { + "profile-name": "PZkbk7LqVmJSYM7K", + "egress-per-hop-behavior-to-mpls-exp-mapping-list": [ + { + "mapping-number": 24307, + "value-of-priority-bits": 92, + "per-hop-behavior": { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + } + } + ], + "egress-per-hop-behavior-to-ip-dscp-mapping-list": [ + { + "mapping-number": 13645, + "value-of-priority-bits": -10, + "per-hop-behavior": { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + } + } + ], + "ingress-8021p-to-per-hop-behavior-mapping-list": [ + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + } + ], + "writing-per-hop-behavior-into-8021p-is-on": true, + "qos-profile-kind": "qos-profile-1-0:QOS_PROFILE_KIND_TYPE_NONE", + "egress-per-hop-behavior-to-8021p-mapping-list": [ + { + "mapping-number": -20269, + "value-of-priority-bits": -15, + "per-hop-behavior": { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + } + } + ], + "ingress-exp-to-per-hop-behavior-mapping-list": [ + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + } + ], + "ingress-ip-dscp-to-per-hop-behavior-mapping-list": [ + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_LOW" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_HIGH" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_NOT_YET_DEFINED", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NONE" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + }, + { + "queue-name": "qos-profile-1-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "drop-precedence-inside-queue": "qos-profile-1-0:DROP_PRECEDENCE_TYPE_MEDIUM" + } + ], + "writing-per-hop-behavior-into-ip-dscp-is-on": false, + "writing-per-hop-behavior-into-mpls-exp-is-on": false + } + }, + "profile-name": "core-model-1-4:PROFILE_NAME_TYPE_USER_PROFILE", + "name": [ + { + "value-name": "5VNHFFjaA5t6400kijlRiepS46yBCrvHfbhUQA4rFppChpWAAhrSwILsPb3jCrTRCaDsKATiZaUhsIJ2S2VgKyIrJDLd4EX", + "value": "OA9qaUA2Xmbp5UrPWe5GEF8fiTtnpiV5S4nVRYXOc8592oYQDVw9AwpLhK0G2VDMS1HJRwp3wmdqKbgf7NpzbOktqk9s8N60GOBxc0AJeF9YRqeQ5DhgjuJJGL3Oq9O" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "bBrG1gG5s2mlsVc5DqinE1ULHvWn0KebdFR6OpcgrytLlFJR61eKV8nuvcRwW6H2Dr0rIcz2D3NQAoHyiWa5WyzkKqQyopA2IBlrFVtaQ81ixARHo1MlzlxjDfS2EkWfV9ytWTDM1E5q7O7vPLQp6fACukw1Fk", + "value": "stOVqzr4A51T4PSAxEiOCyo62JC3gWjIiZwAyXw1UyMZfEzEi" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "l-3vpn-profile-1-0:l-3vpn-pac": { + "l-3vpn-configuration": { + "l-3vpn-configuration-list": [ + { + "label-mode": "l-3vpn-profile-1-0:LABEL_MODE_TYPE_PER_ROUTE", + "route-distinguisher": { + "vpn-number": 1666408882, + "loop-back-ip-address": "WNkA70P7x9Z0dh4C9oBvE7GiD3AsqbMnYYX6ZE5wFWoSetvnJ6Sn5qFIu7aUiO98NZ6EDc2j0", + "as-number": 1319500588, + "device-identifier-kind": "l-3vpn-profile-1-0:DEVICE_IDENTIFIER_KIND_TYPE_LOOP_BACK_IP_ADDRESS" + }, + "route-target-export-list": [ + { + "vpn-number": 1879044886, + "loop-back-ip-address": "EtU9rxc2gIYKhA11yUGk7ifEpqkWxS93d4cEtpzJ7xto8upygYSn8ZTxhetOYvRbr4HUlgDkGYAOk0eAQ6XYYInfWR4MeNPFJxz4N4gl2R1mJfWzeLpctMrivnWJbMoUjXRY17kVYlhHB58PQxTcckmHAijL4Hxfxo6qoimeDvW6BWNrmG", + "as-number": 3793699902, + "device-identifier-kind": "l-3vpn-profile-1-0:DEVICE_IDENTIFIER_KIND_TYPE_NOT_YET_DEFINED" + } + ], + "route-target-import-list": [ + { + "vpn-number": 3136842246, + "loop-back-ip-address": "ytuEeJBEgj0nlNx2WGHVElrQnCRNFXrejVKxFm3Vx4bLRINFgutVPMD4omJ3ca9v6MUD0XqxTtaC4XakjDf0pL4F7OAjYCOWoAroyKNjdYWhN6u7BJ7Smcxu07FQBmFZW6fmIVGOTu5yArF33NVpRkTJjzzVV6UJ526NXMBIgzgI0OL3BylkSe3bFu6sBTcGNalKWPk4gsE8gh4JPp3HD6KbBJv4CHKhRX1FMdB2FfbO", + "as-number": 1088276156, + "device-identifier-kind": "l-3vpn-profile-1-0:DEVICE_IDENTIFIER_KIND_TYPE_LOOP_BACK_IP_ADDRESS" + } + ], + "address-family": "l-3vpn-profile-1-0:ADDRESS_FAMILY_TYPE_UNKNOWN" + } + ], + "profile-name": "YQpguoPvI1kKzBOcAiIxZqrfq0KyJqDz93Pvjw0TpcDZNsboKMNBceIC7l3QLGhMBYiUnaFMnjD2DPqfteQFkrarM59pLi4nhm9woPiL", + "l-3vpn-description": "WODD6S6cADx1FQFKS5oa9LjnMPLt0plW5YrbIpobUV4ADKcvHAyQdR5SHIlH7HvcxWo8dEj7rnz47MsOe0wkRtcqcpZj6mowaEEni" + }, + "l-3vpn-capability": { + "l-3vpn-based-on-ip-v-6-is-avail": false, + "profile-naming-is-avail": false + } + }, + "local-id": "6rDvTGoHAysa4G1PSP5JpXN7EVJBsRsqi5V4MjLmR5pNLqCvfzewoUD3HfE966rh3mdPxY4h3t4GLz4S8apx4UsL16M84dhZruPZkL8f64VRDRJM20b6NDKOBwWxC5w3zdUTYU84ZWNCNpgHhrO44qTFOH4qNBmeO80F30B2WhwCGFjX6ZU3hFA6mFw1gK8WT8BW85QXmmz21KR0CDVTivZx2oqi8y71", + "wred-profile-1-0:wred-profile-pac": { + "wred-profile-capability": { + "coloring-is-avail": true, + "gentle-wred-is-avail": true, + "drop-probability-at-threshold-low-is-avail": true, + "available-buffer-size": -1747835285, + "sensitivity-setting-is-avail": true + } + }, + "label": [ + { + "value-name": "Ppv2hXLvDUumcA49dlqoH1Z", + "value": "M2c431aLixNsvqX8cjmpTqyYDQmlSdJw7NBbGDW" + } + ], + "external-managed-id": { + "manager-identifier": "xSv6QYuIcW0t25SeqF2DDvNQgkl0SluidZgVPKw1HwnJufPMVJhq6Xgnhtf2OJk2IAPqcljLKGm6ObSBM21TZ988CnarZmlzOaZ1", + "external-managed-uuid": "jM8R1eFc68Z09KZiS8N7ae6xrydtxeRITZAUd7YcgPcpz4AjcnjmthTUP7ffd7XY6pKcxJgNqk40owbALuXeMI0tHgINfyLlXopm7F1x06poutRgXOmBon5YvFLKdoXbMnxLUzbMxs31VU9LAweYTjWgZzS4QP7C4Fg" + }, + "address": [ + "TsswnIkHiuyO4ZLBSG1EF8i6NtX7gfY1zixWSKvb64ZbVLENjxrQFBWkWLs40i6ztDolfTwmXopK13xksQ2ZkYkgBElCWr3hWrDcd1q2pPNqKkK43M3nCfDeTYIIhDZe5CiaEIc3pZm1c65fL8Cno7thYb" + ], + "co-channel-profile-1-0:co-channel-profile-pac": { + "co-channel-profile-capability": { + "number-of-mimo-channels-max": 36, + "xpic-is-avail": true, + "mimo-is-avail": false, + "alic-is-avail": false + } + } + } + ] + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "ZdR3eJDo3gGM4kEKgCp7kd24Q4tR1TsSYbN4UrsYz0CDl9ftDEBPSvTAzfjs0EcYPZ2KimARm4mz5B3Igwp81jAsyTUyx6onXqZgMz70DuAJ5Djd1Jl2UVukHgK6e8tbqkr4Tr4pVE0S9b62Uj4G7q0OyKUM", + "value": "gYaAhemAbDnHDgROeTBpQhw8acHUZtF7jHztOV3ZyrG3zpKFbl4TuB1EFIzE46DfFdAt0EszX1uoie3tr7mWAgA8Q1MU7i2FvC8v8tWXurlMxg8ZomVQCvYtpDfoV93qMcNMxKK13XFAeFzu2ukwSbRhO7F" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "iEDLNJBN9u74cX2dhWaqQUsXWkeI4hCeW80BJtgSQfW25Y7eNhEv37kZjzHfQcmEce8VHoGpEuk", + "value": "lrP8JtvEsPEDodT7h7DtlLpU2XkGrE9M5YMGjhlM7Rpn4ameh0HCLYpNVJlfnuTksG1MPmqO5H41Sqf1qXw4NVRBE5QTrJ5Uh6yZkQNpxJrhaGbsvHwbugM0lCTMdYyvXYmhG1H6L0nVGqn47MfB21BfvmTIdk5airjZt05eSk1rLgvK2Ce4DHb045I9pGjz7C" + } + ], + "logical-termination-point": [ + { + "uuid": "d3101c51-444d-154e-b534-b8cb7bceb4e6", + "embedded-clock": [ + { + "local-id": "Oohe2V5CMTJbzW2EK42keRdRDN7gEvHkTRzNEwirh1CQPFuzBoLIfZzLMy1i4JDXA4D6AVxRW2HLH4casYSAPjltSeMOXhDplgwVb3E75dKEhPHCFr4uLpXvDBjtSWK55gSgcwg9KSGTHfvmGzIjQyOm9ZPUOrZTIS1Mg9N02lMBAhQhJyAz6hN88u2OWTzwLBiUCXMwjy0TIQ2rgDSfMGnMahB6aauODMIgCmEVVE", + "run-mode": "core-model-1-4:RUN_MODE_LOCKED", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "encapsulated-casc": [ + "4yH4guWFnxFJutGWf9lCTTeqxxHdbk2fTJb157HsEe31IJXXSasEVy4lXEy8YAgRbrLgrsA5GEYgfO60QqEEYAZOepOdZ4W2wHaX1KUAgLQw" + ], + "name": [ + { + "value-name": "DuRWLmOS0m7MpofnqqS63wO", + "value": "83Q3YmKtRtpuH5mHstlRJBe9T6gODW0DZIHP4jiNEH9lNnU7Q7YrI4tBbJiGxajpSSeO3xuH6D2L1OSJWQ3wVw0Y7iwEsPVcAa0DzmdxS7jLWbmKUpgPVgFUybr0Smcko5YXj3vbaGWYRbILAZso7ZaGaBGVYLfmQ5c18zdbf196cSKFJ4VQ45w6H51xI9Tqe5rfwEqLyzKKjmh2i4TeahlJeegW" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "2PWd7UjmC46WNYDp7dg3WxUYAd9n8VIbDwgCqsYUo5Ib3lB3rR6ngSeR6n66aOhNkyhC0gpgd7r8lU3ME21UUfLSCRZFxgsJGKmySDOXK85521JG3LBXSeQnYH2nXm", + "value": "w6lWQYLNITLGNMhuPUXEN3ma134hTqohpJdfHQVhByPpc7L1TIxyLMIFPMWA5cRuVXJuNwLh4tG8sj1l1zUElub29ZvebeIYbj" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "label": [ + { + "value-name": "1mu7OJvk9hSA1vUfEWxJHMTRZC55KUlL8PKOqg1rxT1qgVxVK4ErQpaHT8ND28o2X9RfhSGODH6UvDHfzdyiCJZvRM0LUoFJpoQG8wmM6kyBX7QpkoHWZyjQljt7H9J7xzFGY2k4mKxcRntbDa7DIqlVJH", + "value": "iIwh75XNVRZR5Jo9ADCDhEKMf2ZaDGXOgt5orU3mD36JEuK78nKh1n3gpUjVtgJJCG73tbh66nHKSsRSHC9IZ4RgY2bjaM3M" + } + ], + "encapsulated-fc": [ + { + "uuid": "bba38854-3ef7-8fd3-458c-05f8d377bc70", + "service-priority": "-9223372036854775808", + "supporting-pc": "OP5BBXVWALVu6lU3AtMjfw1Bb31ycnvScBtNygC02pv0Kp3kKPvRdpspsuXERloWWRBmZdmTDRUf8XsKFXCSeW9Gi7c2sAYgjrCjFQ4aAYpIORllHP5VLfuWmyYG1OWc7qvEgAOQq6rePEzotFc6UG286SO7yCcGUHc291LAZ4GOIgdbVphHXcPVWvVvZ73TGfNQ8y", + "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "7NyTJ04hwItSeAUv50uPDntZeK86xWtEB1qcTmuq4XaapWFvO1cso", + "value": "jDhjJP7clJ6LVZ7ph3fr6wnLT4" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "6vPyQEgVbNyXQX8qVpys6XtIIEAdGG5M3MlMiBHtg8jY5roSQWcOMFwmbYz", + "value": "xwwsaJetdOWtWfk1yIMgxY4bwsxHjYrQmYiwzpZMdW89bs2K2G0zxXC3h1CAZWq" + } + ], + "fc-route": "RKMpPoRUhW5ivn28r1D2EnNHgUJvVgWE1B4IZVC8Jzq6XlegmJjS7YzfSbCGrzck2g213x2MYsSNNY42InUHdmO6prEQSQ3UZXN2mPPliz8XqcZ0rMHF0nDpO97yR2kQ08TmXAH71IXrMOres0LsogJ4pRv8TPZLXK8NcHM5hJx4yQa0RVl7b43sNy", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "rrtgs9E7hrnEBPfvR38QBbXqfGH3t2nMmQ3O0zN90aNBS2YJY6rz9p0hXHkiBI5Xq0LizzrrB7Ut1T5ZRwz1NriL0u3B40zvScNjD7KfeFA" + ], + "local-id": "TJYLU0EFub7cMVriGEEclE62gD6ZKL1", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "aeNQnT8Fs1vHAyPm62ymxZt1kvY0EZVO6AwtlE1Nxwm04bm26UpvLKw6gm6MmTAkm6NHCO", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "ul5zBO11VWdhMIc8xyACWndiKLhoDN4809HCYIvLEI2ii7iQxSktgyLSbU8PzcXAlw4bezPKhR2rQ" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "9dZGh6i", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "TXfHbgLGdkgCr7CtaWF8" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "1cJ18NfbT1sgNcMTk1Z6nKyH6wmO03327MV8z3jk4DARPfK2gB8vez4k5i06l30tQNBhQMuVp4M6bp0j09G6IKrF3jDgnDB5j4e9QIW7FJ6Q062S7IZPlqngJ0wYw83PcaQVSN2xo0go7i8eS7Wdpjt1bSZH0Vo45fZXUUniUDy1NGgFO4L5n6", + "value": "yY68Q1wVYLUNFGaPBNfCAWK8COTH3ROCQMKGF8tDUgirWt9x8o2JcEJGlugol" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "extension": [ + { + "value-name": "KVljo916OrDtqS2U1Uu75MOf4g8tcoXOba8zj1GZsjsT3mF4913eOKtK0Bd4RaT2kTCvUavmlP7o4EkdGoru0U60oj47mPayIE4COrR9gQxkvRxb7Yx7LDZ1WW0aLaJmGNYu6HvmyUzVE66DXvDA8CtWqt74wIqcngztY4PoRojvnh8cMLMMg7IyAHC6p2bMjKf9OXxxdI2AZ3EDGipOpZn0HZYY29DdTSmAHT7Vt2nkX2", + "value": "DkesC5HuMGsDAugNf09HIUHvnBKHyMw3ZKvBQ45uLp7dLf1182AQXhdkSX2iCqmtbJWTOTfzafMWuFPCIpkFzpRjnLCRcQkfz88n1nObCt7Z8OBI6OnFd7QsSkj4avjKDjZEHOIb9PahwE0Csfhxm707kbbuzn6cG6JnUrr38BcE748zcpZqpZxJ2J5B6cGEih24IlZIW3f40nvcFu" + } + ], + "prot-type": "ruQCOBjMTe1khy", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": "ho5CJl2nddhlURxRrKfvOtWD55m7w5cOthi4CcrHhJUcsjVL3b8", + "internal-configuration-and-switch-control": "E4eK9BJFGVl14v5yHpfZ01", + "label": [ + { + "value-name": "S3IuCfD5Sxl2QavZzEgBfs8Y1tkhRFdKJN6d2JiM8wOZGkQfQ6J5rRVscfB3UOFvtMIvnT9wpXvX9l4ZkNWLwR5A6GwTm3gPPRc5KlB1a6QcjUbDA0gYRlzQT5Jf8RWQI8Vklwdou3ANQLjqLrovFPlyUWOVNCLoLyAY4GmqJW5rAoRdI8InXVVKR", + "value": "FxeiNRQfHMV4cxShYkyIygQ8DF4qpN2Wc8eRRW7yIUuUrn4iHC07SQ8nn4NFRHBWHIFyEMZfzt90IdiiPapz0xWg" + } + ], + "selected-fc-port": [ + { + "local-id": "T8ZdCk10tlRvPXEXnv2dM25N1yoz2emWmd1Qx2Q1gzoXw3ULqXZ4R4SKu8jxmxtALmqahg3xHsm6ngRF5QJOMBqhKKOY99zUvZXM80bPkxVHGNeDvYkirKr3u72EgBqDsfiA8lisL52rKgWgegqG1RJnYLT6ecJHrT9zfj20p4j9cfhroHZpyAMweyCsKe1b73LemF6DBpNNxW6VEXc4yYtMo568b8kbbXppuw35NIKkEJ7aGjf6aISyFZH", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "ZTU2QbrcHu9v4LHJuPL3801iAUR8LqRKjLM1W5dwAmTw7A7uhTpqTqAmcruXRlz2Yd3Uj8iTubhuEpQVi7l3xWpCfTzZ6114eXRx51isdAORZEMhD0c2OCEVn6Mm7GqlD9TAb32gDQ7umLLZDY2jsGfHM13LHm7cvSNyVHOryVVMzzE4pGoJeDqTwuE6QDid", + "value": "XMbFAC5opRPQnTf3hYaUhVjLrpt5zGkxkv4VZ1bhS078Tf335dPm08ZspspZ1Jod7s06tbfd3nlPCpSHuH4vI3P7o66hPmuOOvN9y2fCpsrTJbBeSxBAsiAIoGZ53mUJRHLhBSTTkcM4nfagMDIfViXjRPoM3inUR03lSXe5909xgbFUOf1J" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "LJGLC7LNozS1MJ8", + "value": "WOYSvY4eUuL3JcpuVX8pWTclk4e7GeJuUzepyiEkMhfntESot0NqTSD6OR5mXOIRfW8N6M0T3f8oM0EfSkxEcaKSTP7QvPzKMIqSmqDiFMGjElrxFY3J1NBUCID7q4JcM949zAr7mZq0kRpRIsAJ74vJE0I45k8Jt5K3F32T3kLf437MvznDvSeaLP6I9frCccxRfrCaMnqQqxuO6RruBxEemCW" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "Z2hGiVJtivkbyF3nL8xM9WUkBO0QQJgHDpfWkQhvlBGL9J9UKyyTuk6516NJQWillx9GfqbAURd3smPcUgYgs4dta140PmeaLnI0OTsACGvXUc1Hs", + "value": "XN33864d6LzcVdAEdgpyQUedJ0pKHSKxxFAFLwSKhkW4xoACw0aeMgrvhR7QBJn8pXN2lyECStzhR9Tg1WmNcOalxac0Tz8apNdCdR75kGe4P8cR4yw8ez" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "2PxtShvfFjP4zzU1JfKIz8e6hidkCsVw9kR2Be98xYdYpZR17tJGCX" + ], + "is-internal-port": true, + "role": "DhO7NGcKxATf8zIz3zbK2mwVApgRQAitR6swEEh4", + "address": [ + "shMzJgKnEa5WzzKxi31LBx0PaOdT45HoelYXCAkgCp4bQPI8SCMl9MbbsgXxdEVrZLhBlBJXTO0JvBKndwBeaMqCUf97TXqKIHe4bPT4DUN0npoAVZO5D6ApdJo6yOJhoPdzEYvaKaa7AqHvhotUm3bAEzydg9mwYz5DpsFaCPh4gRAx7VktQvVuXmz5vVBumyZM0E" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "gDCRBOpfYG92guTZjX6nXlK107DWkxtAaYkLMJ1Di2FyxrpQov5dRPeJWRy9h1JrR3dwF69X8GvF7NnvasI1aWDYGb7X4RgWMl" + ] + } + ], + "supported-link": [ + "h4OaJ7ku7PqITi9gbm4uR3f6hMzwc6Ll2rwMyQ8FFqorJpHULDovGvtX92ml17H3z5HZVIFt8VURktLYZ2txpWnzRJUSItN9yn9m" + ], + "label": [ + { + "value-name": "6w3DHGV1qC0uXJABxsAWJw33CAiftm2rS65sE0l4ulrjX1Uulni5Tm0nOiC9FxBpvGR9y462ixlfq8BMvTJg7BvVT75ywGQ1ezbME9GWG13Y1wCopdwpO1kI1h8xXYrbyuP4DvSjpN9qjMHA", + "value": "dZOfko8BwxrnYuNskR5PBg6oqpHc6h3j9RqtfyWE6f1WKOpWxmD8vKwV95Zfe2qnURI1hFFfMycwmtkLPYTkIh7Je6Yt1gQN7zOh6mwSUIh9bBUTrG59XdS4bIx4RfRQOy7MMExGeGHi9ubBa8CZln3p5AtOQdFwDMbpiAXpgFHp9KSbSva6" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "7CYOk6TnTaF", + "external-managed-uuid": "7Jh2FEP2DWXoD5cldCvdfl1rsUPd4mG35XXCCNF7BCo6HArN4W0jaTLuFAHBWnwTdtvH82OCxcI6E" + }, + "fc-port": [ + { + "local-id": "xoU5X4zCMo4hA3Q4Nw4GaQZfrCqai", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "0IzUNoQe0vCXE5Sn9FTdeV453nHtxZFx", + "value": "6jmvaAnF5cb24y3Cj9Qf5VisuDZlioVpH9MJC9gHmsBi0EUkNCzSpJcTe3fxr2O1bAKNB1mPtX8tuUF9p62OPeA4iPtBR9C2BfIcg42BU24oOCxdIrUyyuuIbPj2YOWz3wDjBFUnzQDok2t3" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "Vs2AF73H0sCORH6Q60lJBhpRHbRl9dGWGIpdPsUHUpvDYBl4uHF5Y4WxfFThSrdq9CEQWqxQH2lFvHJZggW6kKEshpBaQOARj6H7xeY68bMvSnn0Ej7QWDad2LfKsQBLWaSloIsoM6TwtgxZsEQo90tbMJN6roRfyBBOcV4Y1Xmm6Tmyp4OyWhBA0oGjEpz412S5XWVQMh4", + "value": "3iqsme1jnuTgTszxR8CKamPZbCPXMMPP479rl2CAxnQqPqPHqjjBG1sRDaOhWv60C8jXaVpHbgZSyPrY0LrGMUxp4dH0IFSkNc9YZzx2HpVf6m567pNTjcbfqK70hZd53eVVNkXmJKtP7zW6YBS9NVg5Fn6OebLapy5" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "nt2RXC2MVWCJL3EhGXKeJ7NsK3MNxH9Ua3E7FGLsvf4giIxZyad9h0BU4gHtXIn0L1ZqADS5SWdbxC25Mfe47IQ3YpwN7MFSFFafiUc2JhdgU7lymrum9khZJGFQskA7ZKf9xjcgBhonpBVL2qZcKhbmXQ4h3Fg2hv4OHgWixkxWVsAQKr2nI5JxONGRsXLCk", + "value": "q1XfbnrIjf3L5Nd7aN4TdSzTBTIfv3WOWU30huIsJD6OrjNt6KfbuO56HFd5A9TpVWp4iZx2DDI4OopM0EYu" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "psqW1KmW0yXbUVY42nHBAO0PZXXq4Jpt3Ii4kw0l4QwRLmNNJmhc2hT2eQsazJwCjOGEczZ9hn02CFHd1Yh38a5m0pxr93VsJu6NVXWcdO6HtNUuE4qMev87NxqWseg3IfRv4FH9uNQPsDc6zCSN7TMMi5ALjRGT" + ], + "is-internal-port": false, + "role": "zozkdbk0f2FljgSfOIpHrkUqnQuPE2qdiRpw3KoiM3DXcnd0YCzhPlIccc2I6kVpbcN6WbpA7UyjaDb87DpWY712bVKifxzqKmxGpO9oAHHKcLKbg206119dWLn3bWtVaStzGCYhbxTfaErqGrxHsyUgb9jm5Mh7xDHd7xmjW", + "address": [ + "FVcEm8KkJulopBuWYsL4Dwe25b7Q6zcDmo9IwTU7gfoFQSuGc7CPDJRAURiSivnETweii8hynF55pzDBG7qcQaEL1PvbkTP5h3fz3xZic5nCwS55Zw9Qy" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "0J8dFgeJIglKXdcm2GpkITUzPdNBGxPG8XLG5ZpN7CpWPtiKaz4StQjaVYEBnt9wiUcnLt2T5jHMN0wXrsHMb0X6RtAeWJK6wOthhn2eGC1tupqVKZIVSxTJ0tXO5AUBonKyKFMihFML" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "ErGNTZO6SfSoAfAvor0uv64tafO1XM1udzh6q54adXyNc0ass2WX9Sij76cXK5rXEIVWF06SXwy9xABRDpGEhQPgP1dzYExue" + ] + } + ], + "supporting-pc": "qMkow", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "1c7e2c79-af6e-8d12-d18a-957fe616ceeb", + "layer-protocol": [ + { + "local-id": "pMJKwSvhBT6OxuMh", + "layer-protocol-name": "air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": 10825, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ], + "number-of-available-traffic-classes": -84, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D" + ], + "drop-eligible-indicator-is-avail": false, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": false, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": 47 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2020-01-04T12:45:51Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_TESTING", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 118, + "current-problem-list": [ + { + "sequence-number": 23304, + "timestamp": "2021-05-03T14:53:55Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR", + "problem-name": "CKWQZrskEsC1K540Z6Gw4Emxgzdy6B9Bl6rcxTwbl14Y60YX6xu3bIAraFR881Jt7axw3WzhXD7Vv5TCufFFX7ZZMQ8UJRfQ2EeXAN6pidlOb6qFlXda4c2I2auE1JmVnBLQoJfHXsn0yN" + } + ], + "time-of-latest-change": "2021-09-15T05:34:50Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -5606, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-09-29T08:47:02Z", + "performance-data": { + "es": -817528707, + "ses": 500388388, + "low-power-idle-receiver-ms": 1118105620, + "low-power-idle-transmitter-ms": 1074174858, + "symbol-error-during-carrier": 223085380 + }, + "history-data-id": "K2zgUMxk0Tz6XfvX3bNhfRyaRQMV0kIDf9T1WilWbM21", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-10-02T05:49:11Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_MASTER", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + -51 + ], + "tx-level-cur": 50, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "pmd-kind-cur": "4QBKggm67P52cUJ4Zed1u0NY0PLDcgy869Sei7cpOhs1335UiaVMaBC3qnyCD6KB8vQqu2Pic9bfd8ana59dyLgZ1GBEFe8NJY5dSMn4Wrc1zmoKjxXSa5J3DcIiqIX1y2eqHun", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "pmd-is-up": false, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 1454399402 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI" + ], + "rxlevel-high-threshold": -49, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -844821035 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "nlLEsHS6cSQWhKJ6RbqIASVIoQZzsnNPIyl3759kYR87tR5d2vVCoJdMr4dTr0AaqOdxTeJJ6SIrBOEwbs0z3dduiqoBiQLIEQ8q5R13BCm5q1BBlB3oP8SZr8AJRekn4sN1bH4FjrKBkl4xW7NDgxCHG5ipjCMf4sh89lNkExVYKZnGZak7IOGgTYF4BrkxTBxUW", + "speed": "6tJ1rlTP2KReRz2xPOnmSQO4gzFNmu0sXBmgX7XRRP5AgZ7YFmkqd0uts28Ow8glKCtzJrqA8n2oe1mUozkBzGW1I4H65YjPANgceGEeVHC9IR36qfzRWvLwssvxiOeLBuXH2BVXiy61h2Zz9zqXW3ugoZNGF1rhngYpSUe2kdVt7", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": false, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE", + "temperature-low-threshold": 106, + "maintenance-timer-range": "TzcYmF59zenTsqhURVdP8jPMrdyxS5pDEBC08zaHNps7PK1yxeoFqdjRiSoaXNGtgitgRvPxVhEKTGbrMzYcMa35Uj7JYNceXxmH3beQtSsmq", + "supported-alarm-list": [ + "Fd4whRGdOAwNbntnBiUYZP15xuQSJ8vgdAMvjkIZM6EXt7kXi7N9OO7ebX6M5t2bVHG61g5OmCLIBYFTXk3D8aRbZXXWj07ezNlA3igiUU0wSxhHRkkRm43d10acS9rjXEUSW22JWUfGrwnaJA2XE5bxXlKIu31jHN4vQYeMTltcKIntipiWmtujG6" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_X2", + "rxlevel-low-threshold": 51, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": 1827314478, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": false, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": false, + "temperature-high-threshold": 101, + "admin-shut-down-is-avail": false, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_NO_SEPERABLE_CONNECTOR" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "performance-data": { + "es": -488002967, + "ses": -1299357415, + "low-power-idle-receiver-ms": -932795051, + "low-power-idle-transmitter-ms": 1681551096, + "symbol-error-during-carrier": -101161613 + }, + "timestamp": "2021-07-15T12:39:43Z", + "scanner-id": "AssqJbyi00F0rkGcWq0unICmImRCzIj93DAMG04H0Jzj37oZyglVZX9Hb0bKAmTDZlpydlf64Op7WNYm4b", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -119 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED" + ], + "maintenance-timer-range": "fRiQx0CwDSEqst9BjhDQ6pK1G3PQCpTRh4zO43cIWI8gbaRnrmdxMYqkTg3wFOfOSPuXSGxGoFOsHxP9U2yySZKE7N2EChtmYXjJwQhUo6e5v36hYxPIwsmvfo9Jyu6wkh7Q0pKonZlKUs2SZJtnbHKj6T2wg0UAa2qaj2yGTTqOdky44Tj7B3qzPl55dZxnTXxcR5KLR3rWnRTjL4re8RNP4KMiBjxv", + "supported-alarm-list": [ + "zR2kuLnVAKFt4ixnwx6bmbV0lobSLjPl3SxxvUl5w0ysaYPyvOJKZwKcUWWy7MTawqI1c37AVx35vKvTyevpC7toVqW34H5A7FBbAIMn8HkvjPoSVL9xTvWOVKJZsHzre2vPDh4LQpg9exT2i3z3qnSl0tcsaDLpFg6ipaVfzcpGBiITd9XDxHQxaURdxCu5TAfaCbq4", + "PKQZkJ5tyAS7jhid0nLDRIojXyV8YRnFtdxNPu9f4TnnbxBbUeGDW4WLvJUlB9T4fiK4MLbQEy6H5zTZNruBoqeT286vaZrp93tVOE" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WFQ" + ], + "max-queue-depth": 576710958 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "xQIqucnbzlUq1TRuQ5rkLac8JPgX8BgyjQQN3dZCqL2rELVnJeHuoLC7ALXBe51xVRkY4btmXnOt1BQKQxe6bJ6LuVeI0f7V6rM2D7psu5VvyM7gbmnmXl0jg61gm03srHnWOEojJcGhYOy12NgZ88ioebwAbrVu9irPWH0xTHGJv6DpTTo11yhfJFQM7Dg8VHXJhYg", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_AUTO" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED", + "compressed-header-length": 11570 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -1050597843, + "fec-is-avail": false, + "burst-size-max": -15456, + "ingress-policing-is-avail": true, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_16" + ], + "egress-shaping-is-avail": false, + "information-rate-max": 835366982, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": 3, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12" + ], + "burst-size-min": 25921, + "fec-word-size-max": -32576, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 123, + "current-problem-list": [ + { + "sequence-number": 29336, + "problem-name": "KJzSIuJiOCfY3rYzBBW7BNZgzJQ0GKLqmca4zTfnwudrOb0pEXofCfnbYe4EQPWc179s0gPoK", + "timestamp": "2021-12-18T04:37:39Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2020-09-06T23:47:58Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 20856, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-12-24T03:35:16Z", + "suspect-interval-flag": true, + "history-data-id": "j0j057bdLR4qOvXoJbUeLjHJh74NhrlArwAoDDthuqHbVwzEHtSkEsWOzSBQbOqDlSTYnffRFO2Act6UPR6tj29SMLAYr0tMKeD7tKQ8zLILeHxVywhRqqBdbb3D3whNKUUexKm6nXJCE9p4FGV57oiazlNuJXhuJ3AgFWe3LYxh7WlMD8JKo2UXfAjZpAl8", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "max-queue-length": -207013767, + "avg-queue-length": -367460301 + } + ], + "fec-uncorrectable-blocks": -1202116279, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -900255703, + "tx-ethernet-bytes-max-s": 1348206786, + "time-period": -11305063 + } + } + ], + "time-of-latest-change": "2020-05-12T20:45:43Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2021-04-08T18:46:35Z", + "scanner-id": "f7SosKEh1h4QH1yxD5Kuf5AsnNRkQX55WPmorSys9CjJDJggHSCOX5gdS7xIWuFSb19CUH5VbgEORM5yxzmm", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "max-queue-length": 1408436404, + "avg-queue-length": -529297907 + } + ], + "fec-uncorrectable-blocks": -978124375, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 26728102, + "tx-ethernet-bytes-max-s": 689275334, + "time-period": -759554783 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 51 + }, + "ethernet-container-status": { + "timestamp": "2021-03-16T12:16:19Z", + "last-10-sec-data-output-rate": 1969235176, + "bundling-is-up": true, + "total-bytes-output": "7699105425742983168", + "total-bytes-input": "5836000370521491456", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 1233408870, + "forwarded-bytes-output": "8755034470374982656", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "831599114496302592", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": true, + "segment-status-list": [ + { + "segment-status-type-id": 13239, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2022-02-15T07:44:05Z", + "history-data-id": "Wg6rdkv14L9mL32brczTZ2t8RZxT98DXoKo", + "performance-data": { + "rx-level-avg": -112, + "es": 1319024588, + "unavailability": -1245024827, + "cses": -1513832859, + "ses": -1738199271, + "rx-level-min": 13, + "time-period": 562996406, + "rx-level-max": -108 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": 22073, + "time-of-latest-change": "2021-05-09T10:09:36Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 16119, + "problem-name": "OCb0EL7XY9AYaS2qwdA26TwBLzetJ4NpGYqdCx2AHCzRu", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MINOR", + "timestamp": "2020-09-17T23:14:36Z" + } + ], + "number-of-current-problems": 117, + "time-of-latest-change": "2021-11-09T12:05:39Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "8w746S5yTaNY56uZNijaN1ARXBb0cSmcou8mmeM7oA5mysdlCxvpyY9nzkgD4CPk6YGkclssVpOlJ2yer4DZUEmtZCZVfOgdEOyI9S349RhLLQZ4Mu3G9q1020V9Hbfd0FW1xZYyIfjm5iqJNuhOMjOGbJISNXYFCUG1LwzlMLHJV0lAmCo8VcG7OoRtlH0PtGQe5isRV1sQ1NrnqPndU", + "tdm-segment-size": -2042579075, + "max-number-of-segments-reservable": -47 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "kW3GD3n7B6dGgFpbHS1IxkYX2d3W9foubj2PmpOPv1oLzNWgxQQ52G24U5S3dgxozz5NZLDmN10eGOueEcjHTdDNbwIgMgEeHC1ynwV2pNgYBCc8PnHIsknvQ5LvdiBVUul9184iVc8xPkFEzee2yBxhybMMtnznRUoK3sVYF3nmgU0P86JHz9Y7kCLNRk2A7qdaL" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "timestamp": "2020-03-14T09:21:48Z", + "performance-data": { + "rx-level-avg": 97, + "es": -1647427283, + "unavailability": 1075784562, + "cses": -1050551279, + "ses": 1544392968, + "rx-level-min": 57, + "time-period": -1531060549, + "rx-level-max": 35 + }, + "scanner-id": "q4SP6kwALf4eoWF0Icv8kDZy7rJprAFJEpzCJXcv58Bt4glEkIMEeD5l4OKogh7UGyoio", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -119 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "aeH8A5Kag9sfrqol8FWOjUlmcIMK2Ns42acCfOEnYYChpSuxxjdIdz5q9Ra3wu7ywb2L0G1QxD7WoBlVUyw07BqhkskQWkhtvj6nS7dpDcdTOyGA6cs6NSf7crQ9L7u9iswasKr", + "value": "WEQC4w53Jx9oigouH6vldZuvk0yMCZJrEr3IX0LyqMPI2dcCjIXozjTTbjxOjg7XH2xx3bXtXM3SR7u2PjqhCc2FvAlOIsDiv3PqeML3rOViVhlDsLU4POCloX17qFpNA6dOKYRbEFmzOH4hkYd2FPn3No25VjSvp5b2VV5zsr0g05xdVLfAsCw7SycGK4311f3O29fuAgKBdaO8V3Bfx7nh" + } + ], + "configured-client-capacity": "Lpw3VPwNwO6fMhOlAw1pV9LFx02Yt4qeuWahEy5aebp0ldlNCecpgQ4FI6Db33qxSsOo0Ty6XP6i2j5wq9VGRSlzQQLTL3ivv7TnSrtH8rZ3KWzaYnQPf3h5T2RFX92k8WH1f2IotAr5o0gefYWu2dsN7jkWsngBjPuyR4Wcw", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": -323102281, + "last-10-sec-data-output-rate": -1210448219, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 69004692, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "J3VTEX6tIUL1OeegJ6vt6UosmuUyi7H12uMHrTa2NW3t29BMgZ7mTwG70sFbAm4uIRb1Ce3pa7L4gmQodYL6mj5mMKpe6uIGdUIP8L6aKRe16XhjNUi9enn08Ne6hWNu", + "fixed-ip-v-4-address-prefix-length": 31, + "fixed-default-gateway-ip-v-4-address": "bI8hST9ZMfW3qBYIK46746MacV6RhHespnKa8T9U0XPqyF1aJ79F5WPhRO19vfBMudWC6XwYUmps1qCDpMiuA0DjOEsbMWXg9MT8Jh6wDnYxFt247kqzk4S0Adbm91vaNoaoFhUbwLAc6C85OrE1nw1XJ5cK6HVTX59ue4FLH7PNJPSqgwrv2slExxov6bgV9qpnm5034HQOxAeF6xb0Zw" + } + ], + "broadcast-packets-output": 1544675252, + "dropped-packets-input": 1791495756, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "dropped-packets-output": -1023119867, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "VVUT63O7tdvPanSf5AVCa198yk0pIxGDstoqwcyZiVOkiyzn0mRan1iVdidOPTj9mIsSUSJ4NppXXYdXd4ZAX9o3stR9m2bBKvtFn5J2u0ZsZ4h41hwQqUTK", + "neighbor-ip-v-4-address-list": "CMCFXdhkyWHDyB8ysspxBlySSobEaNUEzwboBtI1hhFHSF8lZpKALilDyohAbb7DziT2Du4VLBuw8CJ72tHND2ibizEuDL743S7Hmbu0EYwMtfTvIsadnsoF129wF8BJ1IifLEfpuLbXSWssouFLW4rQYsmwtP7mxpBaVRzpuCnnyHPPcvA0rTQh", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC" + } + ], + "timestamp": "2020-10-24T19:03:19Z", + "forwarded-data-volume-output": -497519507, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1811945589, + "last-10-sec-packet-output-rate": 253441616, + "vpn-binding-is-up": true, + "multicast-packets-output": 584331504, + "broadcast-packets-input": -1174027179, + "last-10-sec-data-input-rate": -1501484661, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 1476629156, + "data-volume-input": 89643828, + "data-volume-output": -978697219, + "fragmented-packets-input": 737493666, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_RANDOM", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 810796716 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-03-26T06:43:15Z", + "number-of-current-problems": 85, + "current-problem-list": [ + { + "sequence-number": 14634, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "Uokz57m8rpMVoaJM2ap91B5H0pPx1REN7Zfc6tkpK7c8hWMj63sZFpyFGn4A7IfezurxPLWAK9A15fc3iwUPWsuCPq", + "timestamp": "2020-07-05T18:02:32Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": 14881, + "statistics-is-avail": true, + "supported-alarm-list": [ + "8RWyQF9fWSj8A3ajtMcBEI4SOkstRu", + "Qyaie2OQ0SgGX5CGlFtv5az2GUbpsm1aVbs168S6T0MQ5gojWRG1T8VA26RmsSofWRh2R10K1NsZ3QaRAIKtQxVSDN6Yxv5leef5fgQ9Vi0Q12IBKk4BS0lnFsdcXjybxNgFVYOQ9GHaIhLstHVlzhB6BOjyZJBxoR4kIS2RyJT8SwsmdozFxa" + ], + "information-rate-min": 1097964036, + "maximum-number-of-ip-v-4-addresses": 1049, + "fixed-default-gateway-configuration-is-avail": false, + "maintenance-timer-range": "wK64qFcW4Jg3VixG4XwshRy", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": true, + "information-rate-max": 41198948, + "burst-size-min": 10879, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": 23209, + "ingress-policing-is-avail": false, + "maximum-transmission-unit-min": -10339, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_CAN_NEVER_TERMINATE", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -1352358693, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2022-01-04T13:32:51Z", + "multicast-frames-input": 1762906902, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": 1998531650, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -2058134439, + "dropped-frames-output": -175138181, + "statistics-is-up": true, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3", + "last-10-sec-frame-input-rate": -1205176831, + "errored-frames-input": -496382731, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "mac-address-cur": "njl13bv0zErSothdEd5h3j2cDmtd3v0rGlkCoPCXm3HKxZX34Vd76fjBBMOwaHXQ2asjR5gd0YXpPVlLIySOF4q8Q6ESNuJIw31n09B1ZqiGdDrV3cCAg2IY0fROBso7vpuwyXpqoz6B5yx8K1B03b", + "broadcast-frames-output": -728336481, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 2054065440, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -913534229, + "dropped-frames-input": 1928241366 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": -32543, + "loop-detection-is-avail": true, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "Ce5sXQqQeoF2Ii2FXVEUMkr9fF0OL5DfbAA8i0ZwgwzQ", + "supported-alarm-list": [ + "wEp2q3nRcCpci29OikoStzKk50IwRpSf499ucwep0DtjxD7PXnziWjCUcliVK22Gbb3gI9FIM0TbDS1tgsL4MoQQB1Ld3NM7YPnyYU9CU2NqNGT39EZNUIDvJgBEVnLL40c2UlwPfb72S0XTEPGzpbW0jpE6MiRQi3K5g8Mo", + "Ti4T8XpPvYeGNeRcSXR2OzdKciSk48wXrsIrp7gMYukDAbPk8ynP8ArcKbwGkVvDnd4FccraGMN8XvsY3PN3h6f1hEzBr4eOhalumNwUrc2gHveCcTyuZFn9jXKK1Rrb1Mxgr3aS7d1OAfjM1RgSww1IlEkenDpgqOwJKzCRMDyeKR0DA9w6FpG03" + ], + "hardware-mac-address": "PuFRenw9gQRL51w6POjL05F1Z", + "maximum-frame-size-max": -11221, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": false, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -21282, + "time-of-latest-change": "2020-11-11T19:19:03Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-11-30T23:19:28Z", + "performance-data": { + "mac-pause-frames-ingress": -152260557, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 235068174, + "mac-pause-frames-egress": 990356256, + "mac-control-frames-egress": -801881179, + "oversized-frames-ingress": 1447287864, + "undersized-frames-ingress": -642927871, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1265583773, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "QPwVRGHmO035uUuXQy5kWprjW4eyOH8w", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-04-14T18:08:01Z", + "current-problem-list": [ + { + "sequence-number": -30722, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "KAfFL6A4Nc5Pb6msthhNBowmJQlnrcKbM0Ix6iBLmzsyxG00X9NqxbN8T0vk", + "timestamp": "2021-03-30T05:03:53Z" + } + ], + "number-of-current-problems": 96 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 53, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-05-29T15:46:59Z", + "performance-data": { + "mac-pause-frames-ingress": 2091111580, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1279001787, + "mac-pause-frames-egress": 536819674, + "mac-control-frames-egress": 1974267644, + "oversized-frames-ingress": 1353361886, + "undersized-frames-ingress": 707248730, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 402855172, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "FYEJY1z6ZP4fyOJISMpKy6kuklWK0h4G8Ih6BR5sy9zYPjGHX5kv3ERnRG8SX4q5MHcfqhAQi9O0suHhrTFuqwKhcS9aWr7A9jHrshiLj6LLtkVMeAhE61NbLXdzgk1pEAJ6K1J3ZmGkzB7Fbgba9YlMNyd4S6loG4nq5YtXd29MD8rH" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2021-11-19T20:15:48Z", + "performance-data": { + "cses": -1201871941, + "es": 1484871778, + "rx-level-max": -62, + "ses": -1497443783, + "rx-level-min": 109, + "rx-level-avg": -76, + "time-period": 695942960, + "unavailability": -1133803665 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "uzC9bS" + } + ], + "number-of-current-performance-sets": -108 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-06-04T21:01:18Z", + "performance-data": { + "cses": 384448376, + "es": -1752047615, + "rx-level-max": -30, + "ses": 1049574078, + "rx-level-min": 43, + "rx-level-avg": 47, + "time-period": 1840425756, + "unavailability": 431330692 + }, + "history-data-id": "an7Bc58hYr3dJxMdyP5OffPMiXXZ", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2021-03-03T00:59:36Z", + "number-of-historical-performance-sets": -13851 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -10320, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "LNV3gek6W1wuZj38wSvPJgCmJSgDOIwsvjnMxISuJgYIs2IYMdOwmiK520JQI7a6ryKY8ukRDjr5d93ZeJnAT8yV09EBgOHHejymFS5i3w" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 10550, + "problem-name": "qK8", + "timestamp": "2021-07-04T11:57:55Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "time-of-latest-change": "2021-02-17T22:06:37Z", + "number-of-current-problems": -105 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "A5j6hjbwT6E2dtsR54gPzxqkD7RZT1OmYZkgivM3ti6zEyqJuGy3", + "value": "RfIY7zR0f5YepexNSAgbyPP68qsGQnUHDuFK4pKbmAqMPPrzhHCQpjOpJh5sER99eHTaYvlk6DYNspeCZRkga8FMhKeOufXIWJSM6d74R5JbnYFm" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": [ + "gp1voPSi2kX1viXPx5iIUM8DJ5HfcZ2sgWQELAOGUMzhWp6tupbh3jMMgm2tdWNtKv8w5W4RAD8wU7Rhw2yrecemy8HLWnfHSf5Y39HEEI2zPUQdOgEUkS9TSQwPdDo6StWOuvk8" + ], + "fc-blocks-signal-to-lp": "z28h7", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -39, + "current-problem-list": [ + { + "sequence-number": 4603, + "timestamp": "2021-01-18T03:00:06Z", + "problem-name": "16R3Zdam9HFjOUgKdZP8JiZ03TCC7Sg8Q83Pd54eMJytvOdJFURocIo8uSCBDSJt0Ej6Jfk", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2020-02-03T15:12:09Z" + }, + "air-interface-configuration": { + "xlts-threshold-cross-alarm-list": [ + { + "level-threshold-second-kind": "air-interface-2-0:XLEVEL_THRESHOLD_SECOND_KIND_TYPE_RLTS", + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "xlts-threshold-cross-alarm-definition-number": -115, + "xlts-level": 7, + "amount-of-seconds": -30957 + } + ], + "loop-back-kind-on": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE", + "g-826-threshold-cross-alarm-list": [ + { + "g-826-value-kind": "air-interface-2-0:G_826_TYPE_NOT_SPECIFIED", + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "alarm-clearing-threshold": 789796370, + "alarm-raising-threshold": -1071865419 + } + ], + "tx-power": -5, + "xpic-is-on": true, + "adaptive-modulation-is-on": true, + "problem-kind-severity-list": [ + { + "problem-kind-name": "yARus5DXNTvwB0h2DYhzd9Utn7a8ZwUp6LUzQxoviTTULbOh16Q67CAuJKuI8o762TxSiVgtG1fkc3B69jcgVMDEoZeogdvi722pQiSok7Io3ju4uzlpdQVCP9S5nnfmiiL0swoMv73qipvNYQ4cy0Gf9yloOAK6Ko6dMmR9tUAMc5raNvelvUAxlNV9gy70W5dIr", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR" + }, + { + "problem-kind-name": "NRrr3oS6bnkwLfZiAM5BUDIVrF096XTLHccKB4IMk3b5a2fCOcdB", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED" + }, + { + "problem-kind-name": "SOnuSkwhN7D9HWnDgkCu0b9HXaJfVWiFCF2n", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR" + }, + { + "problem-kind-name": "q7K615j1n9lQW9JU8b0gKkHb6kFHq1qQ82O9873vhoe5xXZF1ZNDjnPqHuZ7vqPvsDxADAYUY4Zv1R2UQQy25nkMJjL7BsC4X9wAJmmzqe4k5ZeNHMHM11qL", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + }, + { + "problem-kind-name": "j15OPrwvPhWu0euqjfuH9Q4G5kTmZ3ua4rYUTuhAE5WEjjWCqibz88fes0sj3WtZgkL1G2tk0iQjBNW15Zse7HkrzMKuB6", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + }, + { + "problem-kind-name": "EFF9Gm540dguIgGRQvTrLHfVmRtgelOSS", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR" + } + ], + "expected-radio-signal-id": { + "numeric-radio-signal-id": 35272, + "alphanumeric-radio-signal-id": "xqIZaK592InIhPqMCxTgtSflu2dnn0vMidMkQRuSzJAQq0v3pobL8q6CsjZHbmuts8FiZ12qKu9bmE6L2hw2zuEUNwBYSXjk5Zu40wnD0oOm2U0W3wYC1uwG00xLXIX3zsZsQe5JCT5wFXsImikfFJVxJkay38BustWiH11cMZIjO31adepSXdqyxA6sAAX2VTduN6GrXpLMkEWxKeqzrI7Ya6rLygFt9SXORE8OVTsfphMav" + }, + "tx-frequency": 1584280832, + "auto-freq-select-is-on": true, + "atpc-is-on": true, + "auto-freq-select-range": -39, + "encryption-is-on": true, + "maintenance-timer": 1172817180, + "performance-monitoring-is-on": true, + "receiver-is-on": true, + "power-is-on": false, + "atpc-thresh-lower": 19323, + "atpc-tx-power-min": -29, + "alic-is-on": false, + "clearing-threshold-cross-alarms-is-on": false, + "modulation-is-on": true, + "transmitted-radio-signal-id": { + "numeric-radio-signal-id": 46753, + "alphanumeric-radio-signal-id": "S257pLlOGsQvV76DWZ7ZKU0Sl" + }, + "rx-frequency": 1800233934, + "mimo-is-on": true, + "transmitter-is-on": false, + "cryptographic-key": "3bpY4K5m1KooOZctIQahOKw1J6oBEscHDCGAmDOfncv43HpMpz35bs7UynocPAUlcsNq5txlF2hIBym17i6aC54atkfaV9v7taqqDXDa0ULtsZur9tBLyyW1SbcFczFFC5XfUBiMn3gQ2C945DPw3LpNOttS38pF5nMZY4ElZU3Uo5YmINSLr9q7DT0G1pdYERYCOuQFoLzMQp0q5S3o2uvFnndh", + "remote-air-interface-name": "O7NksZ5HxTlOuqSuNfFO6sBmTMP5MT5s0KFtKK29vnYZNIlsXT83lBp6o74201n0L2lnMoxhLn9rXmLU7MQtnfrDmnGeo3f2XspJQOSu3TN08yVfcD", + "acm-threshold-cross-alarm-list": [ + { + "acm-threshold-cross-alarm-definition-number": -88, + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "amount-of-seconds": -21280 + } + ], + "air-interface-name": "Ew3CSRuxOCPZ8Z3DnvIQCLYbVDIFUC9q042SOoiu17m1YpEeUe4wZUzMxisjMtJMpDwdUOINO4OEtkSfyODpAd30nvj9YVNgqjtk0b", + "atpc-thresh-upper": -9424 + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED", + "rx-frequency-max": 1101942056, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "6dLeOy830htbKuRCil8Tct0FbkVbVFwTS98zz8CrhYC", + "stECPEvT7nqaHdmCSKvDTvckDOMMEgO6KkArY5cYkC01PmDH61cRwo425QOJ6uIIOa1F8dvsPvuES7eQ0qAxHwrEe7fcCPVi0WX82kARQ4oA4Ci4UKttgM7uUfHw4uO4iEckQF4GJs8FWjCI3XccKbGEqf2vJIr2eEe5biDUCMsy5W90TlcvwL1P03kCELwShKXsVtfx7zY4v74gk9MIUNxUJJonnU7EFX", + "hW1stZc6WU376ibzS7O1r8nAxHm7JRj1Nkl8bp70ja7hsjQliFmBFJb4qp42gn3VHg4LFbLQlS7NbQ0mnfX2Y17hibjzyem7uqS1tDROwYuzGmV3BL6AMdJ4g2vO8SVuaOvEjekP4OhL3cOEPU6tZPqfJVVRFRdIxIeQWyy1fPEi1sWJf3c6SCeuq9dX0rFp1TgQkOJzvnRoHF7WIk3tW9Xei2cbtJAn", + "sq6RxFPt2Oxi0yWJsCgfd0DAnyzT5wKpWQglnYOhMesNMoo70Ee5wRFLh7FeDhDs0UFfSmxwAZbefzd86rdCbTgs0VHv4cX46DkQZRfrIixXKL5Q4jkf4AIWnhrklhokMA2D", + "IdXoOoTb7iSMpHvBCQqLFE3HI63sHqXhvMGjarmhJ631FqCh8UUNzQn9WqBvIyN5klomMCDoIzpgRTx0OkNfaaoYsSmaq1fDmvZ07voIWFYNrnN7ztmJvCAYuW0NX8ibD9bDwAds738yiNFS", + "AJ70FCnxJfBsYTCMEP71oZNxO0XTkh5M0dNxP2XqhqSfjmTPcSIARwZFoOqI5wnYJ2nq4kQlKAs4XlL15uBWSttghMQnadlL7IbbVTwFtQBi3nj8JVWBgiRx4zU6F7RMIUYDNma8dEjg1CpCpdd", + "vWdzvZx2ZoPzaN4P1eYeS9nLLMnbZsInoVWMNmOEKDdNihCkvsqgBNTnr9qjB8GSWuEBQkftQsg0BS" + ], + "tx-frequency-max": -834070775, + "maintenance-timer-range": "JJFAk6OfBIi6MC3myJ140DyvPfihKSdlBTWOZCVBk6z7IulgdmcdZKAGSTYuDbQ64EUWgQptWYswkNEx1QD0s5zkYxPtAxAxbmtj4SMSI6o2T2rUSWNd2mxSLeedDOKO2507PEZpLgjwiDj3z6gtkFe5MsipgV6i06hICh7fxrMH45Cv3SZnq5s4xCtNxrXqpf82ofhVy3uu07S3RJq9OKdlnH0U8Xky4ks", + "transmission-mode-list": [ + { + "transmission-mode-name": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "transmission-mode-rank": -1105365389, + "supported-as-fixed-configuration": true, + "am-upshift-level": 21, + "tx-power-min": -19, + "am-downshift-level": 59, + "symbol-rate-reduction-factor": 48, + "channel-bandwidth": -44036809, + "xpic-is-avail": false, + "code-rate": -45, + "tx-power-max": 51, + "rx-threshold": 24554, + "modulation-scheme": -30320 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + 2063289516 + ], + "atpc-range": 69, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": false, + "tx-frequency-min": 140174224, + "rx-frequency-min": -1117195867, + "type-of-equipment": "Ncimd8ZM0b2ikCicordvaYo5MEQ270NUc68p673Za5hmzzqXSEt3CR0gvQavQYh2Wqj2pmTsk3GTC7RnLcqn3qvrgFWYDd0zvbuNxn7RqNLVUuiFGAUB0p285Q6AWY2r1o6yLdi41VRVp1tXBfytxttujr4fhYzimFI0L0WMNNz4OU1h2ACz353ewZmFQVXcsx45q0RdFjildbCfDeGybJNzB1erW3vgBAm1s5", + "atpc-is-avail": true, + "supported-radio-signal-id-length": -1901 + }, + "air-interface-status": { + "xpd-cur": 77, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": 58, + "mimo-is-up": false, + "tx-level-cur": -50, + "local-end-point-id": "7giCIM8fEnrjBIpZk7YW3vE4XQYfG7eOgwiQbq5HNx0p7hgrofgkKUozKfHjeVZujhdmHi3nPVEPdU8B1oVEicdVrUeFH52", + "rx-level-cur": 13, + "link-is-up": true, + "performance-monitoring-is-up": true, + "xpic-is-up": false, + "remote-end-point-id": "mfn3xrifeW4rR43KtQ", + "received-radio-signal-id": { + "numeric-radio-signal-id": 11885, + "alphanumeric-radio-signal-id": "jzutBB5hNaSvXgFhFQzTUDO2UlM7BiwURSfktcB8euE3Kbkp1MaNhYP3kt2VLyIuqXOL2iUgMqkwtwOmiY9AXQD9kG4X6MkpC0aEiWM4m6tPD93NZcnOVTX7rU4xygWa97GrVtoarJZ4S3KJ77yUSv1jhYRQ6F0fEzHAUXKlGBiqw29w1zqM5k5eiO4omXE0wdsia4vIGN84H9ABJTfGdcUvTZLfOh7cuAuEEZecFmheoJH7CWFP" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": -1839293925, + "rx-frequency-cur": 1914120736, + "atpc-is-up": false, + "radio-power-is-up": true, + "snir-cur": 16, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_NONE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-07-03T17:39:17Z", + "performance-data": { + "snir-max": -71, + "unavailability": -1380461855, + "rx-level-max": -118, + "xpd-max": 56, + "ses": 1620700096, + "rf-temp-max": 118, + "tx-level-max": 100, + "es": -1043663599, + "tx-level-min": -6, + "tx-level-avg": -44, + "snir-min": -73, + "snir-avg": 12, + "time-period": -858834693, + "cses": -857069083, + "defect-blocks-sum": -18064, + "rx-level-min": -68, + "rx-level-avg": 104, + "rf-temp-min": 112, + "rf-temp-avg": 46, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 29, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": 74158044 + } + ], + "xpd-min": -124, + "xpd-avg": 46 + }, + "suspect-interval-flag": false, + "history-data-id": "Qn6EvlQ77w9mIOLnQtWik0KD2yMDrHmiWkWsFErMas0SgDfZ74hjWTXRrJmTiI3fURzzv0exl6pBKwAJsK2pDZ8XBuIT5L0ZCrrZkxwFDNgnbJ6Et1V6S33tpDf" + } + ], + "number-of-historical-performance-sets": -7358, + "time-of-latest-change": "2022-01-03T11:39:40Z" + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": 115, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2021-01-15T23:56:06Z", + "scanner-id": "eT6b7WRBJ8lw1Q3nYdsAn3mvfo5PgiZuc5xbTgEDpR1qI5OGa88x4v2jTZ01aZneWUpQ23lrMmKujq3ty3SCyMOjEGkOyH2utjcwexX0Uzn5Zizylj2U6I5KpiqPZkjlDwJRVyJP86V7omxKFswDaBfrTFgLZsYuQHdLfXtfV", + "performance-data": { + "snir-max": -105, + "unavailability": -785679911, + "rx-level-max": -107, + "xpd-max": -6, + "ses": -1402447721, + "rf-temp-max": 102, + "tx-level-max": 38, + "es": -151694217, + "tx-level-min": -77, + "tx-level-avg": -89, + "snir-min": -66, + "snir-avg": -96, + "time-period": 841600514, + "cses": 1850451420, + "defect-blocks-sum": 14965, + "rx-level-min": 21, + "rx-level-avg": 5, + "rf-temp-min": 106, + "rf-temp-avg": 109, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 34, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": 1217046966 + } + ], + "xpd-min": -81, + "xpd-avg": -112 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false + } + ] + } + }, + "label": [ + { + "value-name": "ZCR09DhTR5f7VXVEHICVHHEEqH1gnf5eJPeSkwE4tT3gJYUqypd76JMorFFGNCUwr9pMx3Q0OT9xJ3Yak3hqNVP6tuMg6yEqz346YUZFF84g32qoYIGLDnR6RveQVT8vOctFYkkvkoLo", + "value": "cE9UcUpADoj0C1Vn9icdER3Y3yjjkzuo5DahpzR2PbUscIPe0TrwCvnx3GRf7dDcRFlg7dbWg5gsN6GGR04uvr1q7KG6YbaHRwXYJ0UZ63jL1SrSSwenX8NXSlVIx6pguf65fS4dVfZW7iPZO3eE3UtOfgwEeOUIVSNaLJoGZfDYxkQef4SjQd76lvCAbpi6h692PpBGE6Fbqnpxj9" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -4199, + "time-of-latest-change": "2020-02-04T08:54:37Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-01-23T13:46:50Z", + "suspect-interval-flag": true, + "history-data-id": "UX5dfL21IcNMHSh9ljY0ZRev6Bvyuwoglutt7nuPrat82LifW8fNStiY4Fwr4NHph3Kgqf6SprSr4aG0bON39YT6vixz56Re9BuAIsk7UcqYfZRqNwlOueUSwjrBqaPzMc9mEluqyMpNLg5qMq79w113lkwLnek1imnWHRn7wEM9MRsq9zzGAsBNFZy25L3nZqcGarGy5sHRc9hlIJTb3mYAepCj2xz1QLzScfq9I70U997RK1U", + "performance-data": "LAqTB3K4pNQrk9Qb9V8t5STM1ji3ZwcD6vwzq8vQVl9fuZivVqZSiKwj4Oe3krGiO4Se4nWZJ5655gBSGsKQch285gciHKAnHsuLQqDrwBwtS7lyr5hEejMczQu9t4wax0NfrqGPU4iM4DcvAt1PMO1mwnvZrT" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 5989, + "problem-name": "Kok5S6djCdymP64hlqD4SInIpI9XdhZXxbUi9ZBL417U83blmGp6gEOFmXur6mgwxbOz2hc7jc1jf4EBKVA0zgxO61fcfwAFzgeByqIJCB2KFydplNhU4OAaIIeX6PuF5I8D1JeDk8f0Gth1gzOkfguPYJFWq9tvSC1LlfgxowxWZHQf8wsnEW5vxKrXTVlDp", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING", + "timestamp": "2021-05-23T11:25:05Z" + } + ], + "time-of-latest-change": "2021-08-22T08:12:10Z", + "number-of-current-problems": 44 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UP", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "YQifGKaTlIxy8fEXuTM83B6U7vqOhbY7Tgfs0pddZLM80i5m3Jm7ckTjHkZYnPY9YdBQCO4CrQCj0zF3aU2m6WxO8xEveCEcP73kW7OnPqHPZeS10Nn7JUVJjzeycLCTSFdOE14ljD2aRNbSAyZblUUEl04pLHjweocLig6BT1EDOPnogmzt8l7ll4LZL4vZkHKCYJ6JKKeyrBOzXf2XA2jN64MR0hIkRlPH4", + "tdm-container-size": -374668049 + } + ], + "supported-alarm-list": [ + "bWYbC4zkkXYfUsPn9y8Xx8EDRcFaO1pZPgbrkCMEACUmWBB52KVzSr4BEJLsD2kkivEC7ihzUbWQMpOO9JfTakuG371yalLsIp5Hzm9tp5b3mR", + "VMzZFDkhr0nm08BZ3Q4tOzzR8OdoQgwD3XuAsORTO67H6JG1rKm" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "F6Y8Uq61sVBu6gs23jUcU73fWKbR3JoAPeIBEGCZu5lAlOvg7ptTwo8s9bb4UrEBGeccVGbpDxRRlm7kMs6aReD0iOWc8AOOOS0Br404tKVO6V0Kn6Vedy6ve2zmun2b" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "performance-data": "HG2gohoUJDqyIVXsnNea8Rzm8bPNkzQ17S9v1xhL3HbLD86SNk2VbB9jMZY6qO0xy92AzjdCSofvolfcxhZJS9Uw0LDqrvX0EZA5aNz23Pqr2FDAPDbHEX6EIJ4aeT2KKuIM9hGcY6DTE9llEw2il0O4JK6PD0sfua1DrHPiGkbctwx7Urhfs5b3P9Tk9lzDvAgOiX6Qi92LxzLr", + "timestamp": "2021-09-23T21:43:05Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "CoXM9aNuJrRkzxuxwkHFesdN5wx85SgI85mhf9LZsubU1FjxR055kaKqGhyE1" + } + ], + "number-of-current-performance-sets": 84 + } + }, + "address": [ + "1jpgeeintMYBorOy7Pl2iBrpYIOpGYVH9dPnrZLMDBg1U4s" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "YXx3AmdJZIZ5Dq3lWKN4nelGuBpDN7QMWfHoCU7tu6y8ottcdhhtnC1J5qmSp4wdc5CG0B9uAHuY2Ybf7kImOK6T2kDsp2Ft7h97TiutRQjTGm0NGB2ud8ffsTHJNncUwlUhvgKe6W7Ni0sZtulGCBNXmnG9KTV86PqC52Q4YQJhIb8bytJ2WoZaLGjnr7wxWW1UYKQPAzYaC6darWdgk4q6CKl3RRtFFm", + "value": "w6" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "JvaHz0IGYtZLjmN0dXHs13dQZOy4ApzjUJSlBA2zW1dff08kPPNRS0zKH8GhxfBkQlFrWzSKs5ZIYZUNGzErseb9eRqLYT5OfD73cZNF", + "value": "EfVE9IkJfL3lOczFCcvoabDNiyRalw7ZD2vFCQgRtjcivDPZQln0oSFHqwJDVQDyK05eQl6cEau9Ob9wwowVh3uzz5dmNINxISLreJDSM72Ai36HjuuApQ2YVfdIP07xSKY6mBR8ALALGykZUOsjwu9rBm1qe0X7CO5YhO6Kzyvf6P70vzb13lkEzd4OdTVPzSGJHEt8dYgbFn42Wf3Zsnv2ArQFcDmEn2n4HQ5UGlXdA1fw9inBxKDZbtEfY0" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "local-id": "e3rYQwPsgDr", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "lyQjIlhVvAJAQ4Fh2hTfdC7yhMUBi1SvzBGaWX5jyPUgLrxFAqUN2TlcG8NQ9xeA0UKWSQ8ix2yalYPVoBJjvWn34aL5zZGAUqwE8EOFyePTcwPt8qMve9ybbbgKbWk5fJBnfpVGDCzQ9gj9yXEFY4Q9f6LqVY", + "value": "2HYhOfcuTPWBQ4UZ" + } + ], + "transfer-capacity-pac": "iy9tRlVKdX5lG4KrdS5a9HqKDc7DBCSLb162e", + "external-managed-id": { + "manager-identifier": "UWijxL222IyjrnsggFP6ceAiz04Tgt3ahdmOZoI1Z8dqvFGDcnJoujz3bvOrYJugXQWO6xH5FUn3rVGEjiUNttIFZoYP8sXXaULhjkeYfC1ypAcIKZndsXKjmB1m3Yb6KWf38tUnXNWnf0XZZd5k2Pvo", + "external-managed-uuid": "wCevNkfBzbKU5ZKSNZ8OWZF14R4Mfk4LXi8Cu" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "f8aa5a5b-6b21-eecf-5f43-21f52446eae5", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "CYnowAlJafYyo8VZxxDwIY2QXVJbQStkQJIfbVYm2PMqXAqv7VTIL" + ] + }, + { + "uuid": "8c3c44ef-f7cd-2ef5-98fd-50ff802d3158", + "embedded-clock": [ + { + "local-id": "IwaNTIOJUyqtXxa4N1hA5T0IkxgJOhwoNG3ypJhbaHx76HcMIlmN7forME2sVrRJ7MhowrsG0ZN7yZTgd74kmkL1YFtU6cv6", + "run-mode": "core-model-1-4:RUN_MODE_LOCKED", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "encapsulated-casc": [ + "yrsvdjJfYDkD8PC6Tl2NskLsNnZbrKVZ3on9z6opCA2KqEIbZKYj4BDJZDMifIhb6EcxDAW7aZJsvswn4my9YcKPHx7OfgZdV3CyDyxGpg0" + ], + "name": [ + { + "value-name": "Muv5W36NQdlIYuVXqfcKSdIxGuETZKKE6fJViPA0UWAKivIICUkmZ2Uxxqio22209MVjtwkokU0CiI", + "value": "Muw9lq3TPlbef6gffUbzozLETFEnPfrCJXL5fGQ5T1j8ZrnfmqGKZrgSYU7O9yiLnVIDtyImrTmrkJyG2ei1xyMvlTbmkl7HgPcBfUXHNb00NyGPERQbhCyCoCRIXYh6GuHNgxu4ImWnUucql3BDx27VEYvtPNrn9" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "jCfqNB21cQ5J7xMX3oaiY5AtAyZWTtTc58uTCwMOfJpe84b3semqbWLMmLIf6ukbuGW65BVkccylgCoJQK11zNFVqo3wKnze3ol8Z8kbcLwtnN45x566KEU22XyEk0Sfo5gndAqqlPLACPF1ME0piUrcRSQ3SAa8GqvT1NbeCWHeDm8iS8H2206LSWOCpYK5h7QaVUgxQXEmcME4Ul7Oldz62fIj5toeA6ov0FVJCz5OdBL7OSN1Xe7R", + "value": "QaqbqFLxV9pAW05nXTAywzmgmoesnXNd85gqK2Xy3f8Zf5e5ZODnnSEB8S3vHQBPVR8yL56Oc6FkcTp3z2qOM4pUOkio2T5QKdgwbecncKHovYj5TC" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "label": [ + { + "value-name": "2pyxl8ThwGMI67DA", + "value": "buCY0sut99VoiWrHuQ3uBc0hYBgYeIshc4gcpCFqDsPVgguK6p7zC7RAIZqPHT6TPeX6QuxlXmgduDQs2X1EWK7FJxmiqs38H0epvLLk7Tptw7Vr4X51zcybKUt2epaNhp5MaIYaBoD0vzrsoolPBL0dxmfLLir2HwHRexTHVxzjYSDehY3KB4X8i4L3m4XVAwFG4ygR5P2VIF9Rv5B61q6jmKeBO3whAbXwKdnH3qvDXwulB" + } + ], + "encapsulated-fc": [ + { + "uuid": "d9e945d3-704a-d3d4-ce5a-57a48d97fed1", + "service-priority": "-9223372036854775808", + "supporting-pc": "sq5hUYjioWa69aP17KnPT7Yy7d6O4T9pj6G64RotNyrOA8PIT5pMcocctj0pc1Go8mu46SpTjRILRxtKCT", + "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "GGg7EMVetX3dP2UEEpwFM0i3cIwJ1LpAjyzXcm4Fj7L91xFFO3dA3vw", + "value": "6UR7F8HQygNKDRiOR3XSsuqgyDIt8eBe8keFlVvT4bEzUWnDRdojHOz7j9BjocyopE4Krrvvu9WhXcUOpiZYYq6hAHBYL1eaFaM6uiuYji7hu2XLcPK3fIkPhNF2GM5dWRcq1yhlQoudijYv8AyoiK5zqDu6pzkdioEkWNxMb1ZukQRtqpJB1G2rbwyAXKGg8cs4ZZIa0AwcqnxIEgjGPm70KxtI9" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "nrXhYU4U1NkaqxrE6AAigeYuFmHZsbYQuOZkAWetJqE1X5F4x8eNechTqYLT2JBopAJZoXt7gZ85WG1tOfhUsqNKhyDba6zzHir58U5oT5tHLnarCjlWK1H1rc4BjD30WuX4gUk10FID2S5F4iBObaHDnL6Gg1ycvn8LisEa8mN27KHbVbR6lqBA3AgjBOo74wKeZpoZD31KGBNtMwrZW3ARDI36prdtXQHO7XFK0Hnya2", + "value": "OztNnof71Qa7fBdAyVhf26UE6t1FD4yrv17KpeRi41ibCnL3i2ic0cQ7GSEjOcDb6KVvQNGVGY6jdSmvMEHNQpMo9iAXmd0sPOQFtws9mrszbGWXcvC3Ugj4yTTV6MfNA5l3tNcPexgp54fizJdm0wiqq3doPl4pqpkUcxBjWSI1OPjgzwCr3UJlXPBFaF" + } + ], + "fc-route": "t1FS0e9Id2hKtSbA0M", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "bqgw324Ntr2RhLIiKWERDPCJIq404Q878gDbjAYMT0vaD5lf2R6xGB8p14hXUpW2yrdR1bvM3TXGYaNS1UpHnqYgufdpx1r5sFOmIb8M4XkV78F0U5A9nypRGCgdvAaX7YbP1ct" + ], + "local-id": "Y6Dstsg3i8IeZctFoNTCHIHx3Hb6jWkhUXBfhRizZSNY4hvlWgXDYwaU5eSoacx410biRuRIewybN3wBclfaRh4WvOcF0JB1JNbs9UafrAq6vWIH9PS06OOCv09vB", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "7HL3VB1MA3zu4RB4wFtI4WeBA7sSA7BHHfCuQw9irAEws7AYMVGRRMkjUM", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "GQ6Me28u63kZ2sqSLcErEZAu0msOfDnVllzznI3uLftGILytY5NuWfQOtiCJNZE8c6zAOu4rKp7sayN0vAujIk7bvCUatrjGxSglfkMZJMrLceMHHg0pt7sYBn85OjLl41yjdciWYBz2PlJoCBF5B8Vcn39bfUojNWC00MORnoT4Jvld60az0XEnTNy8" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "SWeU2G7AGBJ89UaB8Ewd6SFQ10qT8rs0fGMhfLJVfk3ge5SeCokI9RqaSIV01gSgWFp3i8QxtMOzRyOlO0VXRd7JVVBObm4ZTt3bCLBXxpwhPcCDcqB4DAFrn9fqvcqoFlr9626wjvN8HhMUHfYdPDw5MLv9PNxn0Zw7", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "vdSalzrZl1ej6WPC1tfoD5c2scTQbNdGS5QdFa50bjch7TT8e0xR5BMxNxoZcBx4zga6qf6tyaKGVvGav5TtGF0m5glhKKej0opqDnT3qvBlSavgfhJOWBaTSnbu7pN8F4qirkdJHP5AZsI6JrUy24rMrugrLVzqZZAjbO2TvZlms3s3mntgjV3Dhb437vl6uWhyCkj7bwlDrNzN223mPYR72V29qf7M3pcxBvwM1Ris" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "mMF3lUyPC4QMvrq1LytJcghV7WfjQUvcG271XFIrBre7Sw0v4m69CnWCb4V1Yi5wk5p9C7BeqPlaldFizLjc1fOcbJ691bFdg4nT4YZmNcx0pcaZQt3RBR3Ms9WldtqlqN6uL5QqhfjHktyaXB1ykWcEY8RbuhwU5DgII61SekzyFZICAB2Mxfqnf9yJqXDnAT6aSZ2Ybtw", + "value": "k6lUHny6uQuCZUlqRRNjCLmmKgkVKIM4O7RnmhuJ8Ql7Kypuh5NUQ98tqlo232YK1H7gZtZZjc6WKoq2t5OjfWMx93zdXpXR7W7YqYXB2VxEjPyEVmY2bCzkx8pnxeewbduBbj45fuJqji56wV8HpHUXPbcfqqDBD84" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "extension": [ + { + "value-name": "Vv4q03eER8XI3IROeOg4YPcpT3u6IeCEKGWKCaotae4eON22ta7jRbJK7dIPrkl31hNvj4YuaUAYHuS3ERmn35ZaaIZu2lxVCdqWhhijbShLm1OSTa7W866aGXwBi4oN9PBqYLJ1DSMRTsBMDIADGyFnwcQG8ethVWHTHiVc2zVN2wsx622NBH27TSF161iUXRN", + "value": "1AJ32FJW3btadnPG4RFQBlRzm2tbL9INBsIvZjrUuM4A9LgeuW459NxnHSylTh0vBI0A2kmo6jYg47mz3iw4XVrxOZSz8S4JsXbm" + } + ], + "prot-type": "5sVlPpCpEuke9xcQa86knLoZmTkL11sY", + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": "OjnCVoDz4uWsfS4Kd9J6ca69Ou2u224Jlrl8PQHUcvesoi4tkNzwQGFEaI04K4N6w16lJO7Wjmgzwk3Q0umQaUmcunh6rW4XPbbzZinawDKVXFLX10F4U2ggppmImrG3CRCB1ZLqunlsUYhWQX0CZ8SgyfYMGwPifkL9bozGMM0yKhmBee55nYdNd4zTso3IAORMcisQ4shGBD9QKfNZdTMiXl3pB6ZcMIQY0aHWCYv5tEV5TB4", + "internal-configuration-and-switch-control": "uQgj3jAxpAB3ar23BBZ5rmaM1YSMzOLVx16AdGZC8AGj1Aeu35zmsK8", + "label": [ + { + "value-name": "r8LyCuZOMWUjR3S8KE5sQ9zgzcR", + "value": "cNS" + } + ], + "selected-fc-port": [ + { + "local-id": "craAY90oTdueIiC8603yWeLp3mMTrYfDhp5fqXvj2SqCa2K8UGGJMj8P", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "MAYCPtT6q1ofoIhg0Ti2EqWcYFYiFFPs7GWX9IVsJkHZUZgUSqWoRK", + "value": "PiqZX5Ph5n62wOPYp1yoVxwHhXvyO80vqjnfg4plrvfPj5GIYe6MLvtUsZs87lvpESwUWVgfqv5BsLbrZadCFyo7pRfo4KNIvcuj7Kzq8E1ApdTgn6K2x81WR8dVK0vf40zcK8CKEvl3A6bP5VJC3KqNSDIvweKA6bMQbgtPEOKeUV4" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "TnkgZJIAbEWNeSWuDc3X3FsB40ZiSlMMI6UzHC9S8XFeHtIkFL9IrBcn", + "value": "bFmwj06pVF6pGQywwMdRnqp0z7j3bGxneTLxUKPHhN6YEwm2bzTqRiqriKutq1IwMm4G6Lffye54Kr6NTSdK2E3cgxGGqg5dC9LAU1QkfVpRfnF87SSaoWmElUdMbiRFjC85vYpCLGu0W103LTdaHAG2mTGx3x5m2djx3JaGh" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "INtEqUrax1F37iEdti4Frpu557jZ2fRDVchd6AnwBVrJd5WygSdHhAMmHXeB5Xe09nd8XsEzn5as361bZ6K8GonflBRiqX", + "value": "zlnziQ5J53TyY0z9RFTRe9etuPcN7aXHnd8FVep0haq7aRgTp1LDaZYwH3bOd1nAeo79Co1LzsSBb0vA18d3Z4ry7DfcwCMK0LLuaM7B6ZciZHSSHYNH2ff1KudgZRSRCDeEhlfglsqc1a5J0Ki2RxVBU8JTZtCu6Q8gcgopAOBBYycZjmT2UHEGPfrHJ3bHMbPYrdn1TQvKpzBAWmCI38gLoHsZCvyoGoe0t" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "3RpXfxSSaV2EZTSbqagygPYMZ0niBTWxCluSLeCV9Ez0pk4QukgK9eo0eLiIw6f1sBL5Hn0QTrIjLM977hJ8v79BKjb9qiaSTVPAiHi30TmMFnLEEvN1uWDffOoF7qpSlelvVvyWoVAWidAXInY5b" + ], + "is-internal-port": false, + "role": "k3FOscaFijcu9eCgyS1WJfH31AWtqiJKlhqNtAsLTw83KKbaC4Yekxhd7eyywaa", + "address": [ + "9ismk1O14bMCAI2FW4KgBFRDm81VeymnJPB3IqWEtBh3bjB7ndnQT6m7fnUlWgIxXbsGBhk4Kt0VMB21OiKzo6GvtAQhRqGGC9m5qz2222XPvRIj1sTiqrNU2w3LOKjiLGo3fi59k2YPLz0N1L5kdK67g9KXL3foBvrINwS7qIOchHZbsWvxGBwPCgMgcTENp6o4ug4VYS78zYjUMGrkhY9L6N1a" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL", + "address": [ + "JnVQBmLTLHJG0gm08W80SSsH3PItsYk3d8MPupA77jO7z2ZzQ0rBSUaNBT9VJtYOBKD6a659pTgRO8iw8K70waF7VOUEaSkLvYJxWPGdAO4gWnN47MWvOuuJaofk8A6DqHamoQzZxw7tLUyKzufnYJZ17elfOjL61VshEU" + ] + } + ], + "supported-link": [ + "9Oy1AvBJS28CICSN7sX4zN8hOkKMlqxueYoOlZx6TxIt9AggV5dmKlDrxgdSGDfVBDBWC12oyKRId0Q053mIgS9N0eyGRN" + ], + "label": [ + { + "value-name": "Q9li5khOm9gTlG8TgN1AlQOkRyKc8TlY3G80SpGeyWZMu8xLNyd8h1s0r4cAYxqT5zTXQs3ho33TbAwY0JYhKih3nlvdSW6XnRMdjQuATplWZRM0sK94Uj7hEDuprseOc11vRoXCNiqF1cxtOGxIRFSwamVBH9pT2igLyenmwNTq", + "value": "qTFYrgQY8e8m1J3a0W5i5QRj65HTY7Dg1a6kqWaq2iF3TIeTxj3C1MN7Ru1HCwPvGWPZKZhN9WQ2x4N4fQyhDdomHhWbFLGmzndkeu" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "H9BTuMLTYMseMOARUlgGEZghRNLtiwKRxdK1ZnMP964WVwFHRVfnNvFwbiZlOBcdOW6NbKvkRr8EXFdPttcgYRM11DmPfyU3m0JxD6KuxK0mqdbTyg1pZNq1iNIxdDtAv4Z0aJmzmmVMAZF0fGp6lQ7DvI3IdwaIsaBuLX37kYLMPiM4Yc3b22HpKK7X8iyAk94X6Z5iPI4F1RB", + "external-managed-uuid": "VE3PHKermdhuvPWHY0F4RCfGkjld2P5Xt0E2KS" + }, + "fc-port": [ + { + "local-id": "5eFHSxZR0V5eYVAKgKhDCiydrI4RygSDuykeXb5PY23OYwz6gIJT09YjJ3", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "hbVMFl6TjaZ8014PRAgPQQqBRsA2bv5tG17de66xgXy8RCPIc5qUOQwFiYHmlFPTyW6M24ca2KbTe0tiYLcMCAjMyS8TxPE5EKSyPWBJyMuMMP4KB8o5JHJ9ASVZzz55cPE1L7CbTYXxNT", + "value": "gTylC85EAPzzg8wmklSdYZH9KFY9lJjBDSP7SMLstk1JlyXxLHDCykDaSCkdlDGQnvYf9JHCWBe913GELjgjwUuooOtBj9sHFqOO1ojPZxYSAxwdINxezTuXzXqS7SrEagk4EDTv2KnDhLQZqf6Z0AOryfcxZDbaLveh17M3J1y0NhS5oY5pqLQYS2vSyy2bW8tX77SR1jJOABTYrQfSuYImS6eiE8uA8Xpg4aZ5tIL3cxTvf1fJRY6J4cUAd" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "YuG5bqaWPQp0MPMiKMvGNECAscgDCpltT1y5kJ11zjUe0GwCk1a7xMzRYQnBfI49Bu6NdZPFaBTahhEtaPsAB2rsSOV7oR8SleFr6m6gXRr605raMUKgW4IOSvN9mO1z2y00NYhCHIBHF2SkWuASyiyjNes12lAWTtXyjebTOMslOcFDHfnfpOy42S5WdyK7THx4NIXtmiP3umGbu3jTJJQLCNzPdkO6Tm3zWS2jaJeF6UIsP1", + "value": "zL3cfJE4WYLVJZYiVIl6TWkqU68mW2AnNvr2e5Y3VBYFAOXooau97HzTNAgBCIQh5ibcf1f3D5IdTxBhAYrzFSsksAWWaM5gWgs4iH7NMP0xeuGOk7fZSIbca79l" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "3ldst9Ck753K079MupNK0wIY7E31egp9tuCXE69L44vWbFIGWniWT0V1wYUK6cUzGookmyXiClfG0PeO5wCQopJ", + "value": "fEwlQiNwy3JVtG561kET2Kz7gcPwBzqR5W4N7RbFVUsotymuSSgMCPLK1Bgv2ymZnqMuaX95SCld2AHUkPzXxkzqNQVHo9GLsk7Ci9z2LMfNmOzHE0w3d5t0NpA4ygH0BPuLY3NBQUg4IHDeI1hV7LNM2nQswyl7fPKdLpGtjWpTD30d4983MWIObq9" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "1IbqDA6bO0DwfdKQRpDJGxQYof2EmhdnZgFDQLOxMk31pGR95uSD2ABiPvW3M1jMhYh0KXxwhspz0hI6DsBx25QJAMMnO51X4iXGfmcpPBYPKGNg0hN2mvDWapbQncNruD7CZb1GEZohx3xpkcjGAWvKlGsIL71fK0RC3KaABqR0ugpGsIf2EKESi6s3embQmUsixvS8VJ9hZqYj" + ], + "is-internal-port": true, + "role": "m1sdY02sPD9mZ31RV71DkVU5hFgRx2sT4M7UN1muxoQojJ7eQ0JaOv75agWHagt63s1IlfcSD28WDg2tgLv4hD1rTX1V6u29WVRha32GXaCsixVriqnrVpTGeMCkgEt4rclB7fh4qMoAjj1tCpVxOGe2sQfAmIENVZg2fqZx", + "address": [ + "3MxCTkgAcNPytvStLJdlVpv2qQGFrpUm3rYPLepXT6onCgIf0VANk5HLWoifF4CIvsp8" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "1OQkCAUDoKPEbl8ug25tSUXp4utprKLsqtM23Gysin6lA7PR1VcTP9aMEE3XgOpHa3BdB9FUwEf7LXQMSUyzWIdsegpnXOW7JxkkzS65om41bMF3z5uvGIXUQe9N25MDvZX4R417iY0tCFobL" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "fnKDqDI8fWoL7CQmOA4" + ] + } + ], + "supporting-pc": "5Ug2NSOljRNyexbw2LEhHUVGoL35dZ2aTidH3T2mKHUQ6Xf8ILhiGcY4X11203dMmqlpbfLNWxD2uK2cwju4ol0dm2gf5t1jLmIWBlJpSermZlrnwNrU8r8ntgCzJDSuRtikO1Jz72N6nelTUMO2eOpH4T8FoT9ferz2kitrkhqznLthq9cEPtdTnmqL7z1lSsf4DJnP0NpfrSxRTBnI4Atr", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "layer-protocol": [ + { + "local-id": "oSHSoGMC2AwWnyRbW0D9taoHvInxEC02uzMK8yea0K6obPzZH5", + "layer-protocol-name": "mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": false, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": -26560, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ], + "number-of-available-traffic-classes": -3, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_STATION_FACING_BRIDGE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": false, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": -5 + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2021-07-18T06:16:45Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -22, + "current-problem-list": [ + { + "sequence-number": 13906, + "timestamp": "2020-04-04T03:22:23Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR", + "problem-name": "OQ82CRFTIGOxUsBvccmYOchsGfjgaIyQyGS2ppO85Cx0W0n1dBZTOgdmvwvxe3nEC8z1xn1DRqvOrKPEmOp2XCgk8LSfH7Tbfs4NHYizoFfPpWlDCKxzeOUfrEu8LfbTAgGh6YIuvXkULxqoaXXoLJDdfZdTfpMPxkYDaH7FwjraRRy1PnhsZNFeMLZT2LAzXr4703Mwf6GYX6RMu8ftNMzspzlrcOS2fW9fSOD" + } + ], + "time-of-latest-change": "2020-11-02T13:24:52Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 20615, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-05-11T13:43:03Z", + "performance-data": { + "es": -2052123635, + "ses": 1685061558, + "low-power-idle-receiver-ms": 1966489468, + "low-power-idle-transmitter-ms": -618994055, + "symbol-error-during-carrier": -1402767861 + }, + "history-data-id": "SPD1gkQjYNORnbPxqnzk0gBln0qlWICOpfHxzxRpdFgAJX01lzllIOG5G7iCHUiY1ZvBoe0BU94v64wjDRwdx5id4BHLnZJpQ60elSQ7TUCSY8btRIHgNRtRsauQ157R37XoRFvLzZvp7yLQ8s6VbrEEt0mu5td1s3pbINW", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-05-25T00:21:46Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT", + "link-is-idle": false, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + 123 + ], + "tx-level-cur": -94, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_ENABLED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "pmd-kind-cur": "5e7JI0Y1qiL4JkSUuES4vw2EF381qT1v716H1XJk7uoQG8DaMveaT8GqcOsCIl7Pm6pg38AauYSbYndLKsNEAtWMhooZCoHYmYeh6GrswbvvzJ8bbVPDoEqx2GpwWYviWBzUiSeO4KbvtjGw6o9u2rUW8jl4hQf", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "pmd-is-up": true, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -233407233 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI" + ], + "rxlevel-high-threshold": -115, + "isolation-is-avail": false, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -1147319573 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "2q5kdX6hhTXJgnRdXHmkn1JUGpe6HdSBDPNJEM0NxXwNdg02Xemlf57VmlT3rLwWtkF76yNvnbiAriDpoRCDPJrb4c7nYvcjHRiFh5aFhs7ICKZ0uBwjkPmh1lwRRIaysleJigozJwad81eCDKVPraYsvvkm5mNxHTh", + "speed": "9xrS3t64vcG", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT8", + "temperature-low-threshold": -53, + "maintenance-timer-range": "iuOmZS2RGozN27m4agkaofIdbpV8MWYWqEaiw494tARnHejRmv2KKCPV2C4GqUCRrM1PQ2UbDDzkJS45gYH0AxWu1SasEEbXicN16zcJ4D4Oo0LEYlEqSsVLc5dJCoGUslVzM0aRD6x16aF", + "supported-alarm-list": [ + "vcvfEi1Rn6AZn8MPmzg8zrRdxg6ErMAOYX4ufXdv3Nm" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_SFP_SFP_PLUS_SFP28", + "rxlevel-low-threshold": 81, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": 269448100, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": false, + "temperature-high-threshold": 2, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_HSSDC_II" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "performance-data": { + "es": 1519716540, + "ses": 894468176, + "low-power-idle-receiver-ms": 1502169598, + "low-power-idle-transmitter-ms": -2073945009, + "symbol-error-during-carrier": -1330272915 + }, + "timestamp": "2020-07-09T14:24:04Z", + "scanner-id": "0p84516kPgrHW5OQ9Lzrz56oI500w4HwlPtrIzDyH57D2WlbzVC1SAptypt4l2tGJW7snLS5IZIKN4VfRpgJSFcqWxmhzPXbDXv1An6ieG22CP", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -41 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED" + ], + "maintenance-timer-range": "mvxkUXkUltd7FiJTDBwsRBwVIPR4qDBN807VXrPbUVir51cJuIbejz91pSYPvzuwrtjpU8AG3K01DcK8VVm6un0L7YtupX0Qjjf5kHMfjMgXY0XLNbSaySVFQg1f625pddupM8F6MN3DOSot38DB0r8Iz9PF3NW90ryErdKe1FJHp72s8GV0Z3Jy5y60l", + "supported-alarm-list": [ + "ovTP1OGo6nIAt6xwh08cjD5xDqI4e2a", + "dlIKNNmTG2CfjBiMJQHKPDlfATlA7gKcBkWg7j9OdD3wfdaQ3SsSnN0XzlpyB1C5lzllKv1P04dfioYd8i6n6YcxbBXNvzKQ053Cs4rt1FAjVyw3RuiPkuew53bACVjv0e7ljzOk" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WFQ" + ], + "max-queue-depth": -1740283925 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "BQFfd61zN5nLWXBKyVoPjW8I31iPtEgXuNczTd8zawc6lFQTs6AM2BmXCwM5aUUwA65lbeUlCZkXwaIZ9jD3UR1onFtpsgV2mSnq6aLA15px88o9jTc5CdtZ", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_AUTO" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV4" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED", + "compressed-header-length": 30549 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -1773014743, + "fec-is-avail": false, + "burst-size-max": -19473, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_16" + ], + "egress-shaping-is-avail": true, + "information-rate-max": -860634237, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": 79, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_24" + ], + "burst-size-min": -26796, + "fec-word-size-max": 28379, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NONE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -117, + "current-problem-list": [ + { + "sequence-number": -5827, + "problem-name": "aF9Rsl0tXqAjpL2A8aBblJTjB0sZhCMr9NbC835XlxgKjbkrdNuypoR0gbZxFDRPi2rq5ogiVw2eHmyU12sqicryniY3OPS6JbpGzFYmb0tLe1FfV0Ge4ZEr9CmXr642htII0G5bGqWMru2mmAsqr7RAJ6q3cu5mPO4Pm1SVjPHKbBZxbrPuqy52Ev5RR25yI1f5V7SeOzZZbQoe9dJAMGCi3z1Ut6k48z", + "timestamp": "2020-07-24T11:39:03Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2020-06-24T07:35:07Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 1425, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-08-27T19:24:18Z", + "suspect-interval-flag": true, + "history-data-id": "M4kUNAvqgXAQ9mONxw", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "max-queue-length": 2072325800, + "avg-queue-length": -304963755 + } + ], + "fec-uncorrectable-blocks": -2082685665, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -1516288457, + "tx-ethernet-bytes-max-s": 1823514088, + "time-period": 883306284 + } + } + ], + "time-of-latest-change": "2021-04-02T05:43:57Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-06-05T09:40:18Z", + "scanner-id": "WnGIQN2MNtNI1GRw1KLoAoSs65MtYI8MXOmGtgs8JgILOs9HcUYEaQ", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "max-queue-length": 284077134, + "avg-queue-length": -1769518391 + } + ], + "fec-uncorrectable-blocks": 1407642588, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -508335119, + "tx-ethernet-bytes-max-s": -885617539, + "time-period": -686133221 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -3 + }, + "ethernet-container-status": { + "timestamp": "2020-03-29T07:32:03Z", + "last-10-sec-data-output-rate": 1127585540, + "bundling-is-up": true, + "total-bytes-output": "2758751473684847616", + "total-bytes-input": "7164632741627807744", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": true, + "last-10-sec-data-input-rate": 1065534836, + "forwarded-bytes-output": "4440024810558080512", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "477046849627070272", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": 10057, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-01-14T06:25:25Z", + "history-data-id": "PHOcB3ceLkCE0D0TcehHfNjWlhi8Me9COYGp1SEFcgj5MkYYq8yxNRt81E8NSh", + "performance-data": { + "rx-level-avg": 79, + "es": -430775079, + "unavailability": 668309624, + "cses": -586318267, + "ses": -1028460457, + "rx-level-min": -108, + "time-period": -1841072313, + "rx-level-max": 27 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": -30549, + "time-of-latest-change": "2020-02-22T02:04:26Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 4331, + "problem-name": "1mJrQMUx8oT3Jc4a3H5OssoyIL6l4kLXGmgx03W9rHc3T85PHbDaDTAmwyHASkpzyGYzJUI2uM5nU34teHvRt65ZEEspQJYppWQ0Iq3cc0sY3wrh6X1zVYqrvKQluGCLusE5SHhWzBUD8eMe3FFQEXh1A0m4GZH3jl84Uh0mTNZ11D7Wb", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MAJOR", + "timestamp": "2020-03-31T13:28:10Z" + } + ], + "number-of-current-problems": -8, + "time-of-latest-change": "2020-07-14T03:37:26Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "1a14lcKgDWiAjxSLQJaqKIkcI3z3qotjyuoUH02cWkM7KwSs72SJK5Vk8nfqLIJc5Z6MZ0QNkvVW1No1I9Kk6GFe3UwGvfSA7Qe6Q4M3zHZtmou4pepvMWJHQ7olm8NlZ1kH66KxNK090m6pBnUfjvX1C", + "tdm-segment-size": 263137042, + "max-number-of-segments-reservable": -70 + } + ], + "performance-monitoring-is-avail": true, + "supported-alarm-list": [ + "l2cc4wU2uwrh8ki8Gop9LbpWyeY2rdTEfXJjlDdP1FYaZ8iFxAPaL67ckXeDaZ9pOSJ9nWQptOzsXJ0mjPoXNn9ZkfCmfDM3wn5TbNaFuJ7jt7FEOVBtbCsvSWSZAwU6TRR4FUB9DBsYIZvpM6SXBdll95cJB6HmQrinlUwQvQH" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": true, + "timestamp": "2020-02-22T23:30:53Z", + "performance-data": { + "rx-level-avg": 11, + "es": 1723755264, + "unavailability": 551017710, + "cses": -153973451, + "ses": 715605378, + "rx-level-min": 83, + "time-period": -2131832469, + "rx-level-max": 111 + }, + "scanner-id": "b3HY2ARxHNIlrpPn7Sa40EZz36tAhahldYb7zVx8Afm2xbhE3rIVYAm1GQuQSL36Be521CbCKxEhIVNDeorcYN6wvseo5hmGorJp4U1OjxX1sKwH0XLYDRn8jBwoLS59cGq8ssWLZLEknaTo0EevotDH52YIMVJYB963BUOtxkFVuybm4pRsTn2Qp0q3V92oi0rMN77krM7Nki2gITJt8LbpLBtyKnW2ffG2mNfFzmkLFm2n8LIgoTG1u1zeo", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -4 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "e3mDcunE9q29V2bZot1GJLV4H3jadb3r6p4iLjOUKQVxL6w9spH3aC7JFjTSuWksdgKY", + "value": "rKc" + } + ], + "configured-client-capacity": "sEjlxtHj4rgKEqdwV5gMtUFA8xZkfQ2Hmm2MPB5M2doyEB4rzk5U7Lufalzq3tZiH24pv1bqezYK233tn9nuMJB", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 631716794, + "last-10-sec-data-output-rate": -1024033889, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -2031039963, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "vigoYmic0fZA5bd1px0W651URB1QNkcaCkqtyJFqYF03I6WZDWWKUPwDqxl5JxfeJxHhgeI6LI1tGQtkEhWq6k4oRptsPAGy7fIguqmf0gBH64TCdP3b97rSoUk5m1wl8eBCwQSw6l54hYGuF", + "fixed-ip-v-4-address-prefix-length": -116, + "fixed-default-gateway-ip-v-4-address": "OIYyZKTW6MsjUyVp4D9BJuyF" + } + ], + "broadcast-packets-output": -403165525, + "dropped-packets-input": 2043520548, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "dropped-packets-output": -517653009, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "d7cXETxCjom4lkQFDDeqUi33LExkjaJxhNmVGLx02L4n5NUAi814j47WJw8UGRrXFFKdr95tU2IRHCrRDsVOp2K0qTU6KeVhTxncGsxsmfj3KCUf5P3mJNm9yg7buUsgrPs7a0zw7KsRnmYk41", + "neighbor-ip-v-4-address-list": "FHUH7aOixJDN2kf2u7BTfelYBzXNDQlbpfSxhyPO9stcNJe9IH2XVnOoXLbstovTDnqVW7B5A59fGnoo5je0G2hvFkQ0JlTmBb9pjDuTAE0gTowYHCRgE0Dbklc3H5i", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_OTHER" + } + ], + "timestamp": "2020-08-07T16:35:32Z", + "forwarded-data-volume-output": 1896711702, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1132298051, + "last-10-sec-packet-output-rate": -412688841, + "vpn-binding-is-up": true, + "multicast-packets-output": -2034326663, + "broadcast-packets-input": -1202585095, + "last-10-sec-data-input-rate": -288599437, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 1609867676, + "data-volume-input": 13771678, + "data-volume-output": 226845776, + "fragmented-packets-input": -1442632285, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 1673182602 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-11-11T00:16:21Z", + "number-of-current-problems": -18, + "current-problem-list": [ + { + "sequence-number": -9431, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "A1G2", + "timestamp": "2020-07-16T12:29:33Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -19380, + "statistics-is-avail": true, + "supported-alarm-list": [ + "JTp3hLQfa17P0oSPX5LnJV5kCxXewax7VOa4rTjtUqiUH2Bw7eLQaIaEf7SD9hKXXV1hGlKsD3ec5PI5VlV546Cb5mP7wz4tm5K2", + "nuOiI0fpBklWgiSmM4j1TqxkmSHsvBCS6qaGjpYUKbI0tBe8Fx9qQGCcybw3N9NLrXjKnhEZsfZOQ5Wnu5FkDhp3tVZ8WMLoC40ZexQGMHmCMiZ8fwtKNKO8FF8ujTKVYKMchCK3j7xXho6pUr9AbPIIuRcOKWBAzoEQ0pMcoj9FAf4uG64JVFsioEY0tzB2X7KQww2MI3siboEJuBtigVsErqEMR7OHfrxDPrqxm" + ], + "information-rate-min": 816196766, + "maximum-number-of-ip-v-4-addresses": 6284, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "GfjZeonKjh4QoqP0z6wGS631zGlg4hAKoUBDiQnB7rkoR1gi7MYSKTTbr6rnnT7MFAhYrEry5DWOx4YwQPosAav2gWpwIpanZrdi5xR22FIzKG6svmN6wi0F7hbPyl4yEaQJHzDJ7", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": true, + "information-rate-max": 1373626426, + "burst-size-min": 14708, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": 30834, + "ingress-policing-is-avail": false, + "maximum-transmission-unit-min": -10848, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_SERVER_TO_CLIENT_FLOW", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-configuration": { + "interface-name": "n3VctewDopcfBhuzPnXV6lH3k44edkZtoVFJ13mhsrw3ISuqgkdmxNhSRd6WxYpVLWEEZTVrkknU4Rck3qyB5PlW2jKs92", + "loop-detection-is-on": true, + "broadcast-frame-suppression-is-on": false, + "configured-mac-address": "UqYNehZyETCo6PjofUt57hZj1jsVHfUtFK8", + "maintenance-timer": 1628552096, + "statistics-is-on": false, + "performance-monitoring-is-on": true, + "fragmentation-allowed": "mac-interface-1-0:FRAGMENTATION_TYPE_ENABLE_256_BYTE", + "link-loss-forwarding-is-on": false, + "loop-back-kind-on": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "transmitted-frame-format": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "flow-control-mode": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED", + "maximum-share-of-broadcast-frames": 92, + "problem-kind-severity-list": [ + { + "problem-kind-name": "PPT6H", + "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR" + }, + { + "problem-kind-name": "0xVzMH2jj2551ovUcbKP27AOOpAN6EFZ3syP2t1dn6ipuFbHQVoLUYzBg1geyVdBfErhZsnmy", + "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "loop-port-shut-down-is-on": false, + "maximum-frame-size": -31129, + "mac-address-configuration-is-on": false, + "interface-is-on": true, + "link-loss-forwarding-delay": -50 + }, + "mac-interface-status": { + "errored-frames-output": 598882640, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-06-09T09:42:43Z", + "multicast-frames-input": -1624210005, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": 1238864714, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 530582902, + "dropped-frames-output": -1672050141, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP", + "last-10-sec-frame-input-rate": 1435704842, + "errored-frames-input": -968098829, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_UP", + "mac-address-cur": "OB3KSOEQgf69vlHiqjy4CH3W4imCVgPKKSmCz0kH8rQvEqG4J61dNW9K6vm2L3EnVSZmKk", + "broadcast-frames-output": 1040323914, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -1043223189, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1097183199, + "dropped-frames-input": 1895890734 + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 19807, + "time-of-latest-change": "2021-10-09T00:45:15Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-11-26T15:24:57Z", + "performance-data": { + "mac-pause-frames-ingress": 2059071242, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 1560961496, + "mac-pause-frames-egress": 1010543038, + "mac-control-frames-egress": -1686801363, + "oversized-frames-ingress": -1653889419, + "undersized-frames-ingress": -30765879, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 300616752, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "cGPYVsa2dDkRiISflzWbVpVqDaUwBESNkzM72OafkuYCcRRxqNBl4oDIyxe936PfGtnAhxPB1N6dwXDWDeaHuNh2dw48uTo2mLCDir7j75ov", + "suspect-interval-flag": false + } + ] + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 88, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-06-12T14:06:24Z", + "performance-data": { + "mac-pause-frames-ingress": 682170574, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -701005057, + "mac-pause-frames-egress": 1249542632, + "mac-control-frames-egress": -1304685457, + "oversized-frames-ingress": -610330769, + "undersized-frames-ingress": -1059663751, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1289938107, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "LOMaAT1Xqxr6mp1wFVk9lx1fiyQZjUb4IP7bJ881FAZTR1poOJy18rhqZ7haUs7u9eFSmGUT8LMZM3osMWuUnLcfKth" + } + ] + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": -21690, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": false, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "lTdS70t2VvErOqXX7qwG2IYD2E34IoJ3iOOhO9jJEX2kf0ieiOVcpT", + "supported-alarm-list": [ + "qTv0h6WrUCIAL1bpRdCY5UdnA0AZLii3bF4kLSMFuu77oiwfw05tUiRnajmWBFZEcVYYNCv9ZDgnVFujFzNsKEPUPbIqIA4VvULbxgcoTtLH070FGN7qjWd80VqAvm", + "Th84Gp84atHJtOK1up8NJX0JPV2proNcFN8d4ghfKYYdMAe90fWB4WcTJea2DPeaDmoHDFOfwFsa7zb7G7AKVFvxTFzonOz02PzFmoUSVfV2G62m6u619ByV80bvOKnQrXoOdaG8pt25A4jGzhzIS0vT0HgGjEoLtMzGX7GeBIc3NnJeFiWpikii1zYc5fXy1oeQwMXZu129" + ], + "hardware-mac-address": "u0EtOQUkmolAKiVYjn1ByJonT2ylGqxbj4E7Uqr8OEIzPDp0SiBiTRxFU60sopDHt9OnA8ngE5PtA6ukoXDaP2PB8P3x6z6AIVXaVdrzi83Lfp5veAFVDuoDbk2iT9StWHERUXq55lIcCNIRgfELC3gFnjX8kHBgh7734p02DIe7oOYw4vhyyxdVI332CwiLEhPAH", + "maximum-frame-size-max": -366, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-09-07T19:23:49Z", + "current-problem-list": [ + { + "sequence-number": -17819, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_NON-ALARMED", + "problem-name": "jgK4sGO5cWe8KkNMixmdiF7ylUrVmIjxZ4trCapO6DWJPBn80JdipcQC7hxl0RSRNeapoz5m5T5UulUu40MlcCXjLnEL6pCTDNaTe77j056uq0Qu0uQd6FoJ23v8sZT5E3QT2X422aos3eXVIF0GkpqfsNfME9Jb4z47w09z3yT6EI1fn2VAjdPLS4xx58I2HE95waEzAqxf8ruolhYEvFpfBOMzWmBv0KA", + "timestamp": "2021-07-26T09:00:02Z" + } + ], + "number-of-current-problems": -55 + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2021-07-28T19:11:29Z", + "performance-data": { + "cses": -1096769861, + "es": -919352799, + "rx-level-max": -38, + "ses": -1552979963, + "rx-level-min": 64, + "rx-level-avg": -54, + "time-period": -477259255, + "unavailability": 1253386930 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "4Yu4Da2NiUaLGrHCx6HO8cfiebURfQdjHIfcKaR241GLtfn0l4Ot8WDn7x6egjpPTx1DHTGLUeoftEgOAW9JSNYRc4Xsfnh9UbMB4keQqDYT96z" + } + ], + "number-of-current-performance-sets": -4 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-01-29T12:46:23Z", + "performance-data": { + "cses": 1576862132, + "es": -1497265235, + "rx-level-max": 3, + "ses": -1924531613, + "rx-level-min": 9, + "rx-level-avg": -2, + "time-period": 536958678, + "unavailability": 1284617252 + }, + "history-data-id": "uRcDDnh6juk2UP0OY6fI0Y2NmlkXzO03x4yasQgDcsF6axM0v2IwSDjfQvchj4lQ8LSst06FtLEDbqDGkecdJokzToQ5s3VsPGVaG1Q9EuEPMao7gAcZQoqCM8He4uGLatVRuLS17pQUzeTPHXGplY176I", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-03-18T04:37:07Z", + "number-of-historical-performance-sets": 17725 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": 19843, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "Vk5FGTR878KXAbAMl8nfEnjvNWofbhq6tnE9hv9gvMd5XNRaN7isuBX9pdoAvPzY4d0lA1B6NHbDmVNaU5ugyjqXwOqTvZKA4CNEDhCjYGWcBBenzIDZ13" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 10242, + "problem-name": "sIn96ZJEtkiTMyA3omKHG9Yt1W0of4CAEZJDYkhjEr5q0xloT55sf3NgRNEZRgrog216mai0BnrtMMSGSP0ZLNfuBTtk2UAaWB8aDqb7FCAsgk0020ZNN69gSv", + "timestamp": "2020-05-19T18:03:43Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2021-08-23T10:27:24Z", + "number-of-current-problems": -84 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "afwJC769LI1F4srHAZVKZyIfJpPI6UIg17ZDe5EZFFwCZXjsO6cFENVncCXjoyrhFrUToyKW58q45BoLHBimg5BszzLP7", + "value": "6Ew0pMq9Anh0keBIRbb1xrZ8UyzxgyCmc0fBNxCfVL8fRJXIU9CjABsm1TUhsowwpD04aCjXgrc732IP3k9vNtSOmEYG2mdrZ5v1HHZP03X35xT0RUwwfoct22aWofofkLhTk8Jlbyo9591OVxkaNwEHzGEPVU5fFm00mJdxhBymDA2y7mJNLfucV81I26XAkXsGzF6Q8w5L67c6mVT72fbPgcxa" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "eSwead86CDZF3e62Q9XUucVKzHtavidKbJQdOYcjtbYph5j86g2AsXk1wG41Y9D1StfyjrRNCQ4UVnU1DWtXLOR9mV2c4yeO1tedM6SgOW2BjWuOKXLnDuwZhr4dZi1SD85p6PFULAvWwRK9OowkSVbamfndxh52p3rvSZhwzEkXv56blDvdyzfMODZeM4g3ZAqKzH80lsXQp4TKzhQZQ5LwACCeyThylHa" + ], + "fc-blocks-signal-to-lp": "iMBCBj2xdE6umXckAIMcl1D6a3jSd58vRC7kV1S0yQmUGy6g9TlmUYk41DOeIPBrrALeuv72etOUUVaVOnhAlBweelsOaVf", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 7, + "current-problem-list": [ + { + "sequence-number": 12356, + "timestamp": "2020-03-19T23:05:18Z", + "problem-name": "bz6VvXezr1zcojqiiwapxe0bH6ew27h5zn04cevDf4QDn8NyEXPb3PmDOB1IAiN9yO5K2Agax6NU6tkKi9VmRhRFKSnla2mAQslL2tVzrAmx3yhmAcArlr66jl", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2021-04-02T08:24:42Z" + }, + "air-interface-status": { + "xpd-cur": 73, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": -70, + "mimo-is-up": true, + "tx-level-cur": -92, + "local-end-point-id": "0fBXMnjO2eMDsaGMLYU3YjEAaO1eA8dsnGia3BQ6PCJ9MiVx8IA6Tfy3Vs9nAnQY3887BY5jsGseYgE6Ye5JlvN9XWwybmw7mw6Yub9WRB2QRGOHNLr0h69eUGE62adhGjf2uoQdRLVJrKi6nB7EHgLuWp", + "rx-level-cur": -103, + "link-is-up": false, + "performance-monitoring-is-up": true, + "xpic-is-up": false, + "remote-end-point-id": "RsF80YfVkDLxmol5Q5gOkRVRrcCV0TnRd2ZeSe14J", + "received-radio-signal-id": { + "numeric-radio-signal-id": 12010, + "alphanumeric-radio-signal-id": "qWMaet2NCGm6wm7dN3JXouDOQaQNJjUa7Gcm1e1DMnCjBJogE862uJQkUzZvKTFSsSelY7ZLnB4YckfQklSPWB1Q2TeMETE6DKkCSjffMb5QvkGQxqxuTycVrqA6ce4PRgjJzyQdJV3f8BXxUu1N26BmwbkAhgq8xB" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": -1939073169, + "rx-frequency-cur": 247975618, + "atpc-is-up": true, + "radio-power-is-up": true, + "snir-cur": -83, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-01-30T03:47:20Z", + "performance-data": { + "snir-max": -122, + "unavailability": 1430694194, + "rx-level-max": 112, + "xpd-max": 94, + "ses": 1190664478, + "rf-temp-max": -21, + "tx-level-max": 46, + "es": -2054710667, + "tx-level-min": -8, + "tx-level-avg": -75, + "snir-min": 53, + "snir-avg": 32, + "time-period": -466905671, + "cses": 760485234, + "defect-blocks-sum": 21393, + "rx-level-min": -36, + "rx-level-avg": -78, + "rf-temp-min": -120, + "rf-temp-avg": -98, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 98, + "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "time": -1498030045 + } + ], + "xpd-min": -36, + "xpd-avg": -39 + }, + "suspect-interval-flag": true, + "history-data-id": "8P9p40dgRGqlc2veNMQQTULMiWjLmJVuq4LnWZDFx31J5wQKiGtbseQKa1owKbTb7Ey3v3A36BM37CNha8lDmbfw4vVPGO0NkqIQtbTrMxmM213caoHwrXVwkIl1wdGIvhyQsj96RvSToWXycFXEuK2OsnHQsoyXx7FZiO51jQUHMK8Qh5uLHwz9L9Z5xpUWozNHnKIyAv8efg5wdr" + } + ], + "number-of-historical-performance-sets": -612, + "time-of-latest-change": "2021-05-01T09:35:57Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING", + "rx-frequency-max": 1881011228, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "6lVQQFczgHt5mc8O6XEvvSHcIgDmDOxJ1kzR0Li8", + "r5pItKg5PRIL", + "PdbLx864se41KvZ5LOGaNMLCCCtCgrYXx1A49G1tV5uxsludabf", + "qUyuOXxayMv5ww3gpKi7odSb1RF2BqB1c9n1YU3xzyuX4xdlhwlFJdJDWoxqG8jTaHM0tPx2f1S", + "Hj1i3RaxYj83aLkLQHWrqjCQLwy5x307e2p9TzHRSHMVsZyaGnt6G5WjtmoTpp0DrhNcImVsVHfnGOpebScJX02inr3EQ3a9cXlUb8f6PuloiKuluH4jHZB4qFB8AL9FAmrLuGJjbWzly4H2LDlkCOhUlSUWD3B5p2QTBr5EfwZFAyHd4UqyAHtWrfSWbl1AfJmI2jmhPeWiMvvQhVhRuKNVRxJ2KKvStRAv2XEJbA1PXpyecPYHrLui", + "DdzPlfVaTiGE0Km8oIL47m5sWWkz6sMJxlqSBe2mwA0olnxB5aF5xKxlyRUwbz7IMxsfDmCaXCyaZ5DX8i2FUr0kaMQdlXV8mfn0BZ2yuAAlydaGn4dhvdBxZjKd8xlvMAnospOWRp9hukPSo21Mfvb7OWkXtFkg7Hwr6kfPJp76JWYZRZD6", + "73OgnziWlip2QkhJ4k29JDvtTAaCaWJhRppeYH2bSsdAEmbIHeJqReMCGWeIKPSCfhI5RLhJ5ubBRmjqAUQr1u" + ], + "tx-frequency-max": 1592084694, + "maintenance-timer-range": "zGF02P8QI4BX4lisaXVL20bfnHkc05NsLksN1swKoZHtkZNuOI7RIjY50a9TfWlS8FGa04Uo3tJnlwK96RSG2IE3SNOZC1SK", + "transmission-mode-list": [ + { + "transmission-mode-name": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "transmission-mode-rank": 1231613912, + "supported-as-fixed-configuration": true, + "am-upshift-level": -126, + "tx-power-min": -87, + "am-downshift-level": 91, + "symbol-rate-reduction-factor": -127, + "channel-bandwidth": -608120069, + "xpic-is-avail": true, + "code-rate": 81, + "tx-power-max": 84, + "rx-threshold": -15091, + "modulation-scheme": 32429 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -1823520509 + ], + "atpc-range": -102, + "performance-monitoring-is-avail": true, + "auto-freq-select-is-avail": true, + "tx-frequency-min": 1528931208, + "rx-frequency-min": -1412575477, + "type-of-equipment": "90IODkC6t0XYacas8iTHA2pQMNTvMRwWJeCmy6lT6", + "atpc-is-avail": false, + "supported-radio-signal-id-length": 27171 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": 87, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-06-27T18:58:07Z", + "scanner-id": "ZN48w6KasFx97PhYl7LzgU6n0OHiZh", + "performance-data": { + "snir-max": -95, + "unavailability": -1403475767, + "rx-level-max": 34, + "xpd-max": -121, + "ses": -1774667545, + "rf-temp-max": -96, + "tx-level-max": -77, + "es": 1807380622, + "tx-level-min": 15, + "tx-level-avg": -62, + "snir-min": -58, + "snir-avg": 55, + "time-period": 1101652708, + "cses": -470543107, + "defect-blocks-sum": -16423, + "rx-level-min": 27, + "rx-level-avg": 113, + "rf-temp-min": -115, + "rf-temp-avg": -19, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 8, + "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "time": 443872536 + } + ], + "xpd-min": -67, + "xpd-avg": 49 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "mKvb44KB2tCyqnFpzDLmoKgDV5T8C4bQGG2DCE6E7IdpYKPpfAMDlU880UguQrlo0f1uT09TIeiGY76dAKIVwQ3wCcTsv6RnlKS6C1Zl7iT5hRaRtSE0IAodM9F9foxA1hHDayQhQCm8twZPgwHY653KfJTmZiX0zwwB4mSNY6NkuE1KaIBgFE0UnM9fW6fouDZq0S5QYS2lp35zDGIjlA5AeePbcXzy", + "value": "yRsiWb9H5u61zxE87XtAVVO1LZeIqMaRvD1sOa1TwZU6or6wgr6bmMd7EjH4XKNtnPN3ZOOoFBm32sraTpefcrfICOEzys2N9PI0vpoa0K6Ucx45Xad1BkJ50fFrHzeQhPRMefP60V04kW29772ArLGj1dKAMZj3G2QUhx09kS6EO8ON7QgyuWRn1uPNl8R1azVk6NlqFrWlrK1yth6P5Qc6c1Tx2Ky4blo98KzNbo0D013ti2inSmt4gftaR" + } + ], + "is-protection-lock-out": false, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 29896, + "time-of-latest-change": "2020-06-02T23:43:24Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-09-09T03:26:31Z", + "suspect-interval-flag": false, + "history-data-id": "LbNoiL7o4yz12NwNd52iyWNIYxghsgv6siuKVB801z1VepIrmDBVzpvxWMHgUcemmIYhb69cx27MrIdOdPBM6YcUCL2xXhTbZKk3Iufgof2IP7o2OZGMPKGsvJZk0KnRuIU542ls9f2YeqS3hqH73ozqZqLR20IpIvuMxPfGWhwaAo5RGNYJ3pa2HNLKNt9wYDankp3gzzi9Po", + "performance-data": "S7IeYUx1h0XzMHRn4mQg4F9kFT77hKD1JdfHZMAhMpQq7zG3VobR4cbBXbBeV67wkm5b1FsFXa6WKERF2Vp67AI5Lbbyhj4BF9NyH7ewics2QbzK6YRerrb4CevTxzn5B2Da1RGjV" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 21337, + "problem-name": "VeCXQs7LkimUOEPzNRqTMRqa8Kb90N0VTDSB5Rfp1BcI719VLzGxi6IqILsJqsEk5pNa82A2wEKDxTqik6IC5i2N3mouP3GUkt5koxeU3YxAJYT3WBF1TAHOW5aD0QyccvxAULuXCTxdJihGTOzEggt5eDIem8ryDQ0ptmmXfMbZ4sxY86up", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR", + "timestamp": "2020-07-18T02:38:52Z" + } + ], + "time-of-latest-change": "2021-10-01T15:28:36Z", + "number-of-current-problems": -13 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "statistics-is-up": false + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NONE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "JYBmRCugtgHz9o8Y4yjU", + "tdm-container-size": 1412322622 + } + ], + "supported-alarm-list": [ + "4pij3qPJIKGbtBwSs4C67egnpne2qB1m0jyWBnFb7dnsPTd9PPfP3vckKin3UgpUr", + "Q2coebBtEimRs3yzSCX4OHf3K9j23KZMFc2Tnve1GAK0vjzgNocB6rFIAQKwtKa8OcT3z75fzHf40PkF5x9bYOMrEwX7877Wb00KZXSyw7vpOH4U6dXXTJoq8d" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "n3f8IufrlROctakOq1ozhopdWI7oSZyfUNfD9vWumKyPUSEcLULUi277K6vu63J0IZvRmseI4MpRx33aPH50J47mbuQ9xs17jxQFR4fNJEE8AAah97hScg6fKPo99pgkW7ZF36tEKZMcrXuAWLl02rfE8DOh3WBR3spZySDbJinb7RL3v" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "performance-data": "d0fQI78ctu1AgcrdwY3FXx4cnqFQmexzfEiXLq16U3G3f0gMYjjNIfZ5xENTTct0QLPt3RrPM0S100FQbQEU5vRC2FwVRRNAuCVxlfm7f71fZyX3pBXm7OZ1lnW56BxA5k7rzlyOkrVc0T", + "timestamp": "2021-09-02T13:42:37Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "lSum6RabXLApRUoauKIiW2682ZnblrOzcjVi26lSJVhsPGCjiduefAf9rCkMW0d8b9qe7L6QGfjnVVzd03kfvzoW3AAZBOZMXp0W2YMAeXY1Lx7Lsr1XShLNSlFl1E7QW0MYQrr4gpY1O5F8wyXgPI3zVIUXfUNbUs1KTsH9Rx3xCIF08ugPcbp0UbX95CcRWduPG3RpAMXcmu4uZkj3vA3hMSiJnutjIX1o0KNs" + } + ], + "number-of-current-performance-sets": -79 + } + }, + "address": [ + "83YpLTAf1" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "C306120aZvlfC", + "value": "YSwYMFeoDXHsUHbkxFfpLhjMjb9wqL6gvue99sxEh77bGavdQLCtUW7d7gJxTHNg3Up5eXJwWIHCL5PtIjWC74H6ciD6RjeU5EZjtBPpjpT4mAx4Tmy1i77upDs8OH2TlU4GvMXG3QLpqatbo14G04bpzDxnkr8xl45IQ2pTS2ia4Dmtw" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "924vgxt5Xx2MSAozmLmu6ADbYg1DNNXPP1kYyFVv4X9WyxnMiJhgbUjaalNQ0KFHDRxcoszsqJpQ8MuroLzzxLJA6pqY1XxFG5J4xiwP1Nx2s2tIFUhdFTNDa5tbU1IAYrwnC2dvICx2E0KkNTpkM4YO9j03kAva21ywVL1vfzxUrh6e3vzPzpwAIovVY05S1DoOgqkwRRii1op4LQLcfhMPF9Kw9Io2dFQuX2SO", + "value": "a6FqnJ3dmfkwTa32Mz3mQ5AvN4kQW8uY69ouKrz6yUurWylAZoXPtxc8twQhwkfDlvZ5Oy4mkyF8Y0JYgGFJdSJGgAXNU4i8zhdfH9BUI82" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "local-id": "KMEyFTAzhuCnjZ3ZI2uZmlORA76wtVudz8Ee16GaAaxL9sKKm6JIrps1wyq0uU532JaVPQ5h0u21WELiDmS4LkYaTg2fa7icJs7qa4IaqC4m9PwMcgIPtyZeOTtYTD2C61U85Cbn7fJg4728oK", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "9wmcVVQka2MisZfxA5AZRkT1vXFRq39sAwEnjmIupmMRd1oNZQEIbxJGngpNkq7UOMh88RCp5g8baxY1fvJq2s6pJn53O4PuQ6CRQegNnpYxOXy3khmmBkEkIBfoF4So3nfLBnyYExnsmVoG4KUG4qSE182z4NXZacKDrbu6ARqWFOuJqghnHa1AaW9eB", + "value": "6LaQgC1CAtm0h1PLC7UUutWw36k5cV3iy61OAUjaoFaFGRjaZdWlySJtQ3yVYudos6521o4p3e4BYfLPkAaSkUm3PMYGg34Ia1CbpGAsNwVLEzsY9CRtodw6ZmM8qIIAKdL9TduGBpjfYLeZg5lwaJC16g1wZC6JPRKIW6hxoANeeTeuQz00aDTgTNMKpKlet6Op45XsyCHMvVglm8dwLYFxL" + } + ], + "transfer-capacity-pac": "OMKZJwbznuHV1mEnux1udTMusTkiUTUAFwsg3DQi7p51MJo89pDmahIu2UMXOypl5RC0nsimRnfv6DE72ht5y4zsYehEMH0RquRFO9Uxw93vNHuHYYEoU6QSk0x6HpQZTzFzJz67A9unQZXGPBW", + "external-managed-id": { + "manager-identifier": "T53k6g4qw83fvL7bamuULdNmAnj2IKZBPUNN3R6zR1OmMNpW1TIN6n1yKkBkXsVMeAshjyQarwpejO2lAL0y017DeAXb2LP8l9iFH", + "external-managed-uuid": "P1x6fQV93vU33NX2qbCnew83xmdP1MPINmP25C487Yc2D1X3crjqYrlnFycyd190gYVlsZtrPxltyioKKH2A1oXGO1f1Uo2aePnGOR7vgkYPDnrn4uP" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "r4ZwOI44aTJXX15oaiDKs6E2eGsekRuDVtaB46x60h3Pa86djBXDItFO173lQxZLT1eP7MVZ3ZH5ZNaigZVQssFmsAziZqWSrazrWviRmZPlEZwNRjDbMax6K7gKxcuRf4a3rsNFkuSQloDcI9omjVs4UIGsN2b26lXpFKWR6PIs5dENe21yQtuK4a4Rc" + ] + }, + { + "uuid": "99f2df21-bc77-3eff-998c-8f2fdf1bb557", + "embedded-clock": [ + { + "local-id": "DiD9KWpoJT5aUcKns2r2z61oQSNegf5TxA2aoky75D90HUf9OHbgF5EwPjK5yHY59T7xdFwiaxaRjiS0Z4gw1M2I5ENDdDAmoILBn9MqHOh062", + "run-mode": "core-model-1-4:RUN_MODE_LOCKED", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "encapsulated-casc": [ + "YWkYfkdQ02buu3RHh3F042CJbGGIIAFywRxDbCl3Exy8shQJknBop57ALFbl7IUDAjgDVCHz17AtoicAFNZWKYpvwA" + ], + "name": [ + { + "value-name": "X6guZ2oHZ3mCgR5DgNgJ2qvs7cC7iE8gCgKBb0aa3oFcfKPvx57rnCUuOwCZaCfMKRfVRhYNFDZMfGaEDh51LZvsnZrpty3epi18rZVYuULJsVn64l7Pkuh", + "value": "uIZX833xd5yF4lDz8gaA3qG7LNXXa6xEHxtPAxfNCNkG8Y7g6aRaAp9d56af5ITM7etzLIefnzWopVEv5nxxFHKKFVZKvKoCYS3CshRQQF6ftKDq0aYFRAhxn89KSqeIahcCz4kpBqx43anVcds4NJt3RuNBU2j4jozSkTaVcHSfJ" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "3L0hM28agckb6SYAPNLB1l6bFh9HwBqzniJ1dJ4tNoEU8umQ", + "value": "0rblpmSGwzc70EmafonYsQMQmyRRUH1M0c8py06Wsa4kGquVGSM8AqRXYIGKhzphLxGbpE8RH4bnmGb3qX30fUP5unHLW62zDBLVfLMOHQ43of6O42GjWogrD" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "label": [ + { + "value-name": "2VkuRZdc24zIxtCQqV6ZGqSImWh630d5NxzxoMBrIa1fwDYWq4", + "value": "YvFGJCXHFPULvjcUHZn0zq1HWwFSXBFVYcuzGjge12Zol3iV2xVuXPbTlIDaja6ans" + } + ], + "encapsulated-fc": [ + { + "uuid": "834c0eb0-2f3e-666a-4748-35fc44f4ddcb", + "service-priority": "-9223372036854775808", + "supporting-pc": "3AnNVckkP1e3BWvp2JRaGAjABnc8UV0QnfDisYuhZIcsFzJHjAJR23kviwDdrD3OTyYdosmg3yAI0khjU1aPWuk60YjjteZeFPj3iFbl6MV664pS5rzTWU0OKb0diRkXHDSRjW4hIZnG3Mq150M1M", + "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "nBQxRuyfvNKOK9P2zMT6LfdtgVDcJNP6oxw714npJ75u9VoAzhzkwMNMzjRi6Ggu6MtZIQosQuOZpczYl0bRMQwl", + "value": "nvfVMBTq5T9NhtDDhu2lWTGWWpJMVWWas3Y6FRoCKxpUSVx1psmld2a1sTNfPBi9xg74" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "rkHIiv6YRGjYWPph6C98RoEvrufHe8GxsogCTetCVEtJuK1sm2A5qesRAIqPI7m2nuE8JZDwE6f0Igs5a22A8vkJ5KqNRMP69tfKlS", + "value": "ZQvZyEjvOlyplVJ40luNd9CjaXqUiia90x8zbr40Euh0pSWhdr4isyuCwUwG5yQ55YEhiB9OXiGf2Dw7WBqo9U0xGoeLW4R1Una4YbTWlr3n4zv0aVg" + } + ], + "fc-route": "et6HuW6WgfE5uPL3xlage17jvxlUsBEy5D7zzeoHtUMYJxT8KWoQPn9dUm7eXDM2gUuH8KotE2jfr5fb1DTI12VNg22eGG8OA", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "MDzuRVzJGu5sf5BGkSMuG6hAWn7M7T5Lxw7osH7834Ai24YmOKQvI7Xwu4atYf7nLeD5ND5Q" + ], + "local-id": "kwAXHYfff7hXUYk1Wzf9DHREts4e7GzrdagM0w1fDj5p9pqXRx6u", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "KRSinfe9lmlEIlGfA7hIUQo8sDXEFgIh7Ar", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "vgdRtXdE3pPD9nJ0CAZjDIJDMWz8VHWqY99j6mX1MEFV1oNDYEWunx79ly9h75z5fJhd56fJLUwEaka0Y6ulwtnJTw01CsYJbfW8m3SZPgDZAN0zMmMaI1TByMu2etLhIHhWD1VsirkSecjSy6287WCxA6zGzkXaUeYxgMZydbijnCcWA6WzUy7uxyaYTZ0F6Z4eL3MQ7W1uy" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "S7ZedECHJFmjsEPwaWUU8181qXwdXI9HQ1VVFqCo5YzpvhVx5Hr6Jz71pDeedgWVhJRW1ld6cEvHVreT0xZJ76KoBZCO7qCg2lc3GhaSWxrJQxCR5", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "4zlsacWRbnlrhGDkmNm7JUysK6XB3y470pz2tnTEKe51UAe9nAgYuGj7EgAHGEOGVfJoDuUfJZ9vsnwPXEOkl7jZfTHVqnClDdC8HwniowGQLcxBRdV4c63rZCfhSRvvW7DDvSWLpuB2G1DpeqtrwpKoTZFLIa8E9DaxwYiNsMP0Ntq1TTkiaXG4WdHxoIbpldWJbfwD1eEGH4zsPMKSJqOxEn4U58brl82xfz28NGOmCfOk1" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "IGoV2JzK47Zwf961Zu2j8ZYF7yW61otJ4KEYl5Ji4AObBVdApfMp6C4daTj39FM5pi3KfE2k7JvIEAbVHXdNz9SB24F3Bj00C4CJAx3H8rqE1BzJyEoZO9sI57MGjMyNI2wjzs0zTidMTFnjjMa7NDISCmyV06AJ87UAzM9k5f6QUu2d8cdVPVFkhd7hbISb", + "value": "MLgrNAw2yeW2g1ateXa1CmiHusS4kWLZzTqmlOgT24Wj6YEcWO6q3o0xISB3Ge2g7kus8Ll2H9lF0RSWyYeBee8XZBSFPMVO6i863t8Kvmivd2jL0xm6EmVDPFawjYkhgsnbOoNjK5GX7ZBZoP624TxTrAqKyK2G5pRTNE4pKKfJBQJZxHUBsjvTTVErxG7uXQfDnb27V9Io" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "extension": [ + { + "value-name": "2ySZ0RElVT8TvMYRQ6ulC9eweLoXZ5b1w3TwMpJziSkNwjxep1zU2Fi9qG", + "value": "hM9ba44yJliiD2vjyOQM5JeRLT9McQLtuMEERAcAVmKrofKWVsB1bPKOAUBMKe860MKRfOjabWBr3dgZFRSQyCx0o0N0eV6ezIYGp9RA5k19q9050KOqelrDl6Dz1CFskD1JNSbS45TueLs7vgxKtYnG4S7XuMiHqjq53uPZzJmFmOMSWcCh2RXZB4O6I6N0h55crV40wqyS6cK2oejrX8qzc6xU5cVm9SrBNvtbV141eGVCN" + } + ], + "prot-type": "sRLn8kaPKcY1rHu0NRJ0AoatRZgbKR3cIHrI1tyDFwwY50YKRzKjYNEHMUKwLNAlmTWfmuSTSgRPgHzZ9ca7ZPGLJqan5CAkwwzSSkECAvrJ5TIe5", + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": "i0cfs6FrtcZD3K", + "internal-configuration-and-switch-control": "3pB2tPFptnwpp0QubIGqaF5B8aBDdd8gvBbYqQfLeD3vwTZHtyZEdWfl6IYbWZkjAv9TdpEjUHOisOZWeYsrNzMLiCX6B9p4wyXJPtVC3JUvpUjDKD4pdIbnd0tG9KKxaz8S33u6Not4aNANiwcv7nSkfd0o", + "label": [ + { + "value-name": "rgp0a0ttnmna0GAyG4wok1Lv3Kj5tz4UPlVZeglBCAMvgm3OirdusY0oJbt4KpQsLDrZTEswe61nsWbDog7IfZ6Q2rUNRC7ugyl95FxjMyG6nSJL0RtfQsXTTJyCmFYC5bDaRbuDB2JYMlBNc52UpSNaBdFPKvjQHXSq0eVBhws3R3Q30LYpvDs6J7OtC7bbW4BWioqzVSvMVdIWYydt3xsME8", + "value": "97jc4nGSy4iZZ2uMYImMyURUXpeKVmSWt39xrPiRTAQLDdptVL7lFYfCftebPY7b28IlX0cJt2mYfLr2oyo3oDxEZEPOCOZEXAZMs3nN6JLdm48KCwF115x0JmH" + } + ], + "selected-fc-port": [ + { + "local-id": "D3tbKEkeuDabLVQojewPC5d89tm0p9q2dT5Xqh3UV65y1OWcUs1wp6xyATzR3ZUgKZ5a905462u7IqcuS51acqIMj9ve0puLhrNqsKmqFQqn8CS0HL2T3LxmU3BNkXythdLJY71DPrSP", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "CIDfKoivOFiR8535vxmIaXyaZbZi4HeGpJW9Z6xNLHwTEAR1Z5J9VajMlb4hSaQ9LEiLKHywoXh2p03o6FpTPBF2", + "value": "BkoMaxxOHaypBWNy6IX6Ld4iCP75uaJ6u7KwE9cekKDVzilx0ivMvs4Zh45M6GKAOmYkvayPM3ClmXSm7g0uIXuZ1rD7ZfzFBp07zqOlmjzIgj4gzXKhU69NxMMp2d4DC" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "z0b0q11mBh1O4y0NsHNeJTexrERDTm6keacE3e0En1krrc6ULU8mFfUYLDCwZAJdKVJN1JjoCvHVzOPlAQHfXt5I6H6XiP", + "value": "2DTIEuTVYpuUYiBbKjLZge5QdEXaWMdRpYrWlkJjBd5sozD8So01vXRIBOKqBP9SOsO1MpkgDiI1Rl9JC1K7YuHAijSL91EPlkQ7K2ffkXgbbhNNjpMhTlJ4EtPFmluHykHanWpHMxLXOqCZPg9BBSF7emNAAhi8uZiRVzqz63wMt0EbgNEJxbRLxwm7NE79vhSiQbSOegtAh7DpUh1jsS5RojR3XQ5k8XCQ8mFnD8PM7sb1Jck3WhMcAv8" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "C3froBKPjS9f8I4TSYZ1DpNhOHmSdQHPTWgaxSZQL0XLB2wtSwmoN1xtJUdWCULwQUynMp5pqV31XzmHXI5KJDdsprg1d2p4OXjsnhSFcNG1m2IkKOWlj", + "value": "OIl4ByY1CMQWf55ZKhMqi0k0cWG9iZ3Yzo2bWTczx2nM0sDKBh3TanTmcsnurqs1Om4L7gcFarjaTXVm6Yfgd0Dps0LMj5N7sRSrZ461nq48fRudHJuUCZc4RXQa3vane2O5ZV7md3vkUZxBBTndKz9upSEsfOPmJvrAiqOntbHf37QES6JDFS74CDoSk5eVBxvLYj9jvQryP94IfNdNxcJ2P8U150WypjkfD" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "THEZy7JWNarQWW7vwQvf9qS7LSINVHyHgcyGb9CYjWGfSFLon8DwywEcgeZ4V" + ], + "is-internal-port": true, + "role": "4ATHbbJy8e1sKp2uae8MOw6xBZ8P4T20tNzEYb56p6r1nlvxzwkn2qNvhVklGed91EFZPKXeIgfYBDva9Hq3Zdyg0KtGYGPZlmQ2ZF9zWoxpT3A2C0XC5nS57eL5Us47OMaNsjngzMFtH7nk7dO4Ay9IMUFHmCGboIQI15YtSwOzD3LDgzHR8RrUD6t0", + "address": [ + "aecjARydRnZYP3Rq74l4l78" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "bqkIcpUZD4S4xxz0Jm2Nf8laC8gyLuLWUXxZmjY0fIWMgoNRKHw0PR2r0jRDNvzAs6zPqpHF0Dkg177EOvwvmqWeJORpbjRDhikHH1fHxzPqyOWejkJyLFMmlwLwPu26MmGmgNVFeDXMrU0DeB3Z8PeudZSUmUT09rmh6aWkNTY6FQJM" + ] + } + ], + "supported-link": [ + "C65qINNiUKOhPQCF5JUJQxGD2MmCkudOtb6bYUmTE22lTESQgErY48t6MPIYkWMN7SQ5E4Qb7Ko0hhIxVanZaQYWyGUSuyxBifzXkh0r2ojjx1Il35cdNa1lRN5dluPwKglWxlfzJyS9rAuvxGAlRCGApEND8u9SKmGiHVRitCrN4ViCCSPlmnVM1Aha5iUPEB7lwRvStXFpKP1ezQzW6mA7XJh214JFFJ" + ], + "label": [ + { + "value-name": "wGK3XwOSVPafcvs6Flqq1G8CY916h5dNDPIBlwt9mDoq1Rwy4XR5vZIt8BzpHE4kmNNHj9QxM7XFYu62jX0OOI9WbIeSei5A5Sah1SOGZMdP8jKr8KfWkoLvYZg49lF75Hg7z4FrISgI4S1cCg9WwUkmLArMVYLSF1R6YwpyhG", + "value": "dqap3rqRPc3cPDvuqtfj09aY7zoxIWGVmRchav1ZH43pIqT8T8jL9mC8V0GvOeqa5uk7ZlZzpUY7lR86RrS1Nm9AmP52WncTSw1JRSi9Mgg77o6RIYSnc1YyJ3AFjEq33rMMb5VYd4Xds342TWq5Povqj55uCoxxPkj1p7RCbOPDSLyDHYJpeePpcNUGbrdSLwL2DCxOjek30SGzIhYWwGlAt7gwztocR2fnEM3PSfSS" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "IwQIB8rVX8rHZKD31dUgLYU4RZ4D1IiB68bH8Cv5LWECyiyrvsH9iBd9A9NtRXWX57E5K12nXGRvQpWeKDn26A4zJJUAGRpDY3IA5CPUazq1YefAS", + "external-managed-uuid": "vQczpVicnY3MtTH3mEF3zPCRQt5X3PzyGD7Xyh9N74zAY9vkNaneS05Albyo0ZPyDOw36xR5CiyAr3Mf61tYTzyeCYvuYk3t8rw6YncsGK27NGeTAAJt1aAD857Yp2rptYwkdIMLkHLZnRLXrujswT5FY5vf7XEBN2VSKHwWg9WE0ztsVEUspSZfXuuWj1xY3kJGUfCaoqGoZ2INGvf6fel4AI0UJqKMK" + }, + "fc-port": [ + { + "local-id": "R094rf347LpmOlVKuKbFHiRYu1viJhFthOxI3sEad3oUgbEKNIhv01lm2RFM8kfh0ER36v5crt6HwCkkcBP4CarFT6jTiqai4TdapimIDkh9XBt95aezdFe6Dp0VP25TWi4dAiV5D4esyIBDKHcXmj4RIWEyYJjMTfRlyEq3JFvhfYMZGYXU9TMKPqaF2tkVJbh9QH4rezItxmt5ci0m3M6S4gp6BBUkFblnKpOZYosoKNlWX", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "a0ZgK4o220DWciZyFCPlBGJV4tBhiyDszuBjqZltRRh499uHLb2eRM9N7K5hbIKK4lVvc9Y407018mITxDZph14gL9yOJiqOvmjHn9Df8DghRR2hu2GD3KTGMrvvJVj69COwDrLMXU3OL557ZDK2gvB2X6pyTJF3dtrRM5vJRyquvnBvTdp1", + "value": "0VxYk6SVDN166KK3fmUFEoa1RxMWXFxXA4ON2GAFlBDjdonsCh7gya9pHWeEtLu4PaJSQjp3V3m0j" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "J0NWjt4bfQB1QZ4apG5FcB0x1LhD4vxNvcBPFGSUwtNekRoJxtoKWhhY2rt6W0Ljcm0K2SEqdswxbU8Jgxl4GC2AVwyJoj3BF3dAOR01bxrnjz6r6jwEVyeJWMsl5nODj1d7K50WCrbO19fZsLwfcKY0xjluy17R2cQNiJBM2MAVNQNftjux3l", + "value": "swLP4NOWH1EmbfPXitydgg0vBbS1f5rzBcoFRdtr60Nhfv6xYwDfMDCgPmhWrIn2MMAwR3XXVC6b74A6BddfJPvq4EmveJq1n0p6Ve3RQ1UQ6uOHI1WrIkRMY5a5GAYWAn2nBY6jZ09XvPw5Ilojx75nc7sKHqG9FJxgzDsqwBo1jM617mkwtiU" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "tVTs3jCcIc0WQuzcqpm994sqZftmgEXBrI3u1yHCKHqs30FthTCiQ5IPc43kITVaBZEvxd79VxBYp8sG2WYKTHz6LvqloevRd2mCftL2Tm1avlRp9H93gA1T5rflFCdKEreMVZOGeHQBUzS4h17pt8jrryEZ2RBzbQl6H1ENJmovW8z51yuvyNO0dsR8csHna2", + "value": "S3ZFEdW214t662tts8hkmJbuVw3aG5vy0m6xA2zBY2A4W3xpbGJpqNLdjOgZTLqM0wbsqC3owvltyKKCrl" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT", + "fc-route-feeds-fc-port-egress": [ + "xjLtDPA4dxNpPv20rrcpd3aZuhC2s9AZsdk63V28sPx9cs2vL6MZ9OQv5sqxC0o4eJ29E4hYLP0P9UcU0ZTaNKxL4XiGYzDcixlOuCE7jEXsy1fr00BGK0jHYBnW2S0kqd0MHFT1jIlKKAbCBEadEtUCXaqZUiccvcYdRS63srNcUQHnmRs0dfv2hN1b6doBqmGh6Mkz6ZD0Pkf34H49Orb5echkiFOIT" + ], + "is-internal-port": true, + "role": "wAeM4KPfZ8cek5K5OD0JqgEkmc1v0tRo4Y30IK7ISkO4pyad3aPmqlGNxzap31GZRBRAlYa5iYaApkNkuuGMPnreOBwRv4ImFzO0qY5IP7a6rYqNk7s2mT82vEUSAu6f4V7mL54sc7qw5JbhIDb4xk6UQSMrf", + "address": [ + "FY8kzxt03VqzoOsHtqJsM3ZfdTMD73CMTC7k2Ak5nLwLrYtUgcf27e9lZVQ6QkLKWSWYk9VHUjkdhN0xRfrZlAckv2iem3YaNM1ZVWyH8TVpGVPq28pnJtz6vRkJNaTsXUsK" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "wP1kLKeG7gC6snUNPX3ToyMzl2DU3e9r42MPMSnU8SSsfE84tbQRBuiWoNIr2RTYMxFqp3cpN4S2A0ZV3HFE3PsrDaLxTwvFVa6c5aBS7lNHdEvgl2MgReHmgkTaIoHDrFPwQrhXM4w0A18VVV3N1K1iXVsFb1bCH01pjamY6SQGMYtzLweN8g553pDeiOJZOCo0MCYSnOq1ETAqpP5p52v8j0eBOXtuzRudmk5J0nKFgcXx12" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "1zIEuPp9E6ZI2nX03T2J4ZZkiDhm5dt6N3L9T2ix1h7Vw4VzPQbTH25ZFmdCAHJfKmoDgH29Q94n5SOUIZFp2KgzZtcz2NON14ihLdjCmnRkfF6PxMezom0nQc" + ] + } + ], + "supporting-pc": "SRuxSzQ2k3lOhIFBQdIFKmMbK8b0QgOJ7jg0KY24TfLbPiMFvmdfIRqtRCtIS9jZkzR4qL1j0MmI41fAnsH6b8r3CMLuV4lgv5cNId7BZtjWuyoKT5Q4597HVK3IGhQ4m3R4gQF8cQWypciih0ef1eWWQ0xphftvicrrV7r7PnxezQoIIDXKJUyzM5YVdjqvoRWjQfiyCPM3x3M8yBShniQ9g", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4", + "layer-protocol": [ + { + "local-id": "1pre8aLXnMHCs1s45XAmXcYAgGC6d4M7meduoYjMKSg5LI1RxB5uO3WWJz2PvOWR21djZoXBg5yUNzDcbIyRLvNn4H4rn", + "layer-protocol-name": "pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": false, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": -29445, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT" + ], + "number-of-available-traffic-classes": 32, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": 110 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2021-02-26T09:32:55Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_TESTING", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 124, + "current-problem-list": [ + { + "sequence-number": -5663, + "timestamp": "2020-07-31T14:55:52Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NON_ALARMED", + "problem-name": "9e19V7e85vwWP4KGhZIoHQyzc14gHZgQ5hR0hX1esx29tMPLLq1l8AUctYs2QJTNSCG9AHfU6h4z3LcHbe2cOOo9FRcvsXaczQe1ptWvLS5GD9fHn9T3YhdD0p0ke2xNTLPa6DGRnDy0MFzaPkdFuiauzaHNc6BXJi8PNOHaj725MuftOl8iDiF5kmS" + } + ], + "time-of-latest-change": "2021-07-17T03:41:38Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 20744, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-09-23T05:06:46Z", + "performance-data": { + "es": -2146659839, + "ses": 1328390426, + "low-power-idle-receiver-ms": -1233271089, + "low-power-idle-transmitter-ms": 1155286978, + "symbol-error-during-carrier": 772602474 + }, + "history-data-id": "fZ0QlXujZbgnrJe0sZ4wWVupWD8riNLxML", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-09-30T16:59:51Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + -125 + ], + "tx-level-cur": -71, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "pmd-kind-cur": "9nV2QxLvC2Sz9oZFujPZQCmsXlpx7iDhFqbnYWTsZDU01LGn4nmURAfGVE53OIcl9fIZctj3Yd3RZBe3QsQH3XgQtdLhWXC", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "pmd-is-up": false, + "link-is-up": true + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 541574690 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": 38, + "isolation-is-avail": false, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -16084029 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "Lq6aaeiHgu74A97QxFpsJJTREWX", + "speed": "E0ShiQjsWC14Y18qa79zMy2n9NfFK4tgWdxe3RyRlAVbBVCD2LdHb74lU", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT5", + "temperature-low-threshold": -59, + "maintenance-timer-range": "tPSsT5f55LkjqwTuNohvKpN2Iy8wPgciXWLQ10NZD0i", + "supported-alarm-list": [ + "w3pbrGzc5m6GNecumgMj5p26hPXNP8Idb0hDGQPE4VcJ2gdowSAB9CArjp61xO6JGnef53T2QXLSdZ9BRJ50dxjwWppu6w5MLj1ReMT4BEPGvYieHffUMqiIII4O69sRsmIG0tDu0savikKZzRLl9VWRv0xB20tme336xyAp0LMa5o1xfMKpzG85zGGBy1XM5SKu" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_CDFP_STYLE1_STYLE2", + "rxlevel-low-threshold": 84, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": 1730071914, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": false, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": false, + "temperature-high-threshold": -49, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_BNC_TNC" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "performance-data": { + "es": 140063464, + "ses": 1832357024, + "low-power-idle-receiver-ms": -276949587, + "low-power-idle-transmitter-ms": 1456276022, + "symbol-error-during-carrier": 277579656 + }, + "timestamp": "2022-01-25T07:25:50Z", + "scanner-id": "RGGFTPQp7vukJmR3I56dsQwCiQYI5pVWXCuJjk8iHCCiQldqrbET12nbKdUQuPMkj83usbN1FhjnDwOWHsHBmWM62GWwoBQHJT44WR", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -60 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE" + ], + "maintenance-timer-range": "gkFdkSlDLvDInbpplRESFG", + "supported-alarm-list": [ + "xoF3cbyRoLKiuTxAcVjDS0qpirIoELR32x7eIx56iIgNtGfGBybtyBSIVs6z6Qv8fCmX1kVkU47fKmVlU7GkAr2nT1PZJkZYOeVPyI9kM8zomnB8misWJncug1mZldX1rKQZk0b70Lnn8Zvu9YiSdmetnssAGpB71sZlk2kkNIHNzd9I3ksgGGJ41bwzs8GtsxGMA16fBG3aT4SWok45SN1TQxkaF1D7qbLScS", + "DY545QNlasrucM0QaDyxOXO9GkTd01ywRvsWmfawzBTMnTupw2OcRDdpP6CIZaeQFyFTNPqeqbSF4m5soLE7gRw6P0OPaUxIs4B7TTdb46J0sGsJrYQIPfOxfumqgT0AYtzJfMNjSwcdcEWDDEdkTTR9f5rvRr5HUwi1j5lb" + ], + "statistics-is-avail": true, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_HIGH" + ], + "queue-depth-configuration-is-avail": false, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR" + ], + "max-queue-depth": -1806080469 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "M0MGx3A5BawXzgijX2ObPyK3CTknmVP8VtOtxoy0zWX0cgj1a74ZGH2as", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED", + "compressed-header-length": -3108 + } + ], + "support-of-management-frames-without-preamble-is-avail": true, + "explicit-congestion-notification-is-avail": true, + "information-rate-min": 1062086046, + "fec-is-avail": true, + "burst-size-max": -2270, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED" + ], + "egress-shaping-is-avail": true, + "information-rate-max": 1873525254, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": -57, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED" + ], + "burst-size-min": -27888, + "fec-word-size-max": 31140, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 64, + "current-problem-list": [ + { + "sequence-number": 4483, + "problem-name": "YetJRYlyR4pGe63J0lwHNX11Y2ZeoXQmcjX3aitTfSzlQv4RItqnqrggtgnRd55hp3crd", + "timestamp": "2020-09-20T17:14:47Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2021-06-16T06:28:29Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 18858, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-03-22T21:58:48Z", + "suspect-interval-flag": false, + "history-data-id": "a8xppgAveKEU3aU1BfblDqGvSD5BCXnM5U4n2wSg8w2cyWd23gnGH33rz8", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "max-queue-length": -269519179, + "avg-queue-length": 1717934322 + } + ], + "fec-uncorrectable-blocks": 1655019626, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1446822860, + "tx-ethernet-bytes-max-s": 161170216, + "time-period": -376405119 + } + } + ], + "time-of-latest-change": "2020-08-15T23:14:31Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2020-10-01T11:54:56Z", + "scanner-id": "WH72Ro53PiBTD1wr9x39fhrlFaHjnblcKkeBIjxpt8i61Gp2dtbtCuGhFfAUqN627kEHv3YZ38X4Pn62IankE3tji36AJcDIx9iUcgTfpJbe6h8Orw0Yzt", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "max-queue-length": -2066010349, + "avg-queue-length": -1355692755 + } + ], + "fec-uncorrectable-blocks": -299910467, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1347869318, + "tx-ethernet-bytes-max-s": 1273246596, + "time-period": -1732557857 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 56 + }, + "ethernet-container-status": { + "timestamp": "2020-02-05T18:23:15Z", + "last-10-sec-data-output-rate": 351293566, + "bundling-is-up": true, + "total-bytes-output": "5816872347112791040", + "total-bytes-input": "6784750365952740352", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 281650300, + "forwarded-bytes-output": "84934799384084352", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "3539455303009261568", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": 25028, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-06-18T01:32:44Z", + "history-data-id": "n9SW1H9ShVtj3V30XTjUIHoYvmHNlTAA3lwW2FObA9mvXpoMbHzThXSMbrzxd27gnE4hbTsEUO1RdpEoZda822UelmLyoKGDgLUswm6q2ZifhOwgTGoVAa9NwMeUxU", + "performance-data": { + "rx-level-avg": 73, + "es": 1084767432, + "unavailability": 639450742, + "cses": -1543819411, + "ses": 1616025368, + "rx-level-min": -76, + "time-period": 616466480, + "rx-level-max": -5 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": 13960, + "time-of-latest-change": "2020-09-13T14:18:42Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -9144, + "problem-name": "LmO74gbnHMbQo2vPiQwbint1zc4fkUJ5gq4cy7AgLL69FBZYjv9CLuDcGHr0B2XKs1W11o9M2fWHINx1iGvV297JQqBktzWVsKOt1X8344CMR2G1AbXDcWe3nPfQo3DRNkcO9kJegeS", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-07-27T16:01:33Z" + } + ], + "number-of-current-problems": -97, + "time-of-latest-change": "2020-08-19T16:37:12Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "6z4CksksXswjAgSkrVzgwZcMI19ubAJhaFTm85O5ych0s", + "tdm-segment-size": -2020218365, + "max-number-of-segments-reservable": 63 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "WL2kCe7l78HiIirKYc6YiMVIZ4Ij6U5Ux0f9eemem4wWeQH42F2csQUjUuC0gINNI2POgb2u7rqm9ZqbFlo7baiXFUQVuDB4FqLNtF9BYzX7zfj6Az5LBnJ89r4w4xsBXdgiTpTJYIRpY2vyBsc4PVdRe9niGPTvV1NGqHpohgGfa3OLw0QdN3414rbK9Wf4XUKnt1DLaj0knG6LGOYlJ3eNmppvlwraq3x" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": true, + "timestamp": "2021-07-31T11:01:11Z", + "performance-data": { + "rx-level-avg": 34, + "es": -314602395, + "unavailability": -478724517, + "cses": -923906753, + "ses": -1903011123, + "rx-level-min": -105, + "time-period": -1043000029, + "rx-level-max": 86 + }, + "scanner-id": "HrBnANZG45z3d7WVBE9qbI94Z0GxTVVseoIOczn8EW3JVSExoFXzgYEfYcMK7A4dYMT2lg2Rc6A0Y7xeMmO2cka3wONvoJAfwt9JKctOi3O82dmPr2JEeLHCAmZQ5z5t375FjytBtaBwfXdHSOdYAUB28AS52Qr", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 108 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "QVm1B", + "value": "2RVAMcYJqZN9V7Oqi2VLx0SocAc" + } + ], + "configured-client-capacity": "yAJ9Lr17LKQlZ18XfbE2BCCTZBOKjsyR2h1GIUNlEvGvoPlE0ZyBt2nsD35XvDGqVz6vuLR0gxwEeRaeQIIkK5Eg8J5wnLWal2FPNoPVWdr24C9VcR7XOL5On", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": -708590877, + "last-10-sec-data-output-rate": 287695426, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 1501546554, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "A2S7Ei0iUcDGtAlnVfK12BFI6AFO", + "fixed-ip-v-4-address-prefix-length": -91, + "fixed-default-gateway-ip-v-4-address": "nZufZ0yZik3VSxndMbkw4nZBXXbuDAX0AjfzkFyuZBiJ0FWEI92Mw1flYiPBTMtt6JUiokMgV4ZOCOskXvZloeGfxnQiacL8VFqbZcjM9jsLZN5OaW1y3zNAWwS6Iv6v2oGTB0xKb0n2FsQPhRfki3UerEd11jw3I4ObWlNZda1KuJzLsH5KCRZ3nc4gnsbXoZ0ldNkiPe3cXuXqbVaNE1I25Eat6mivljIyYURO8MS6gHo" + } + ], + "broadcast-packets-output": -1296148525, + "dropped-packets-input": -491356951, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE", + "dropped-packets-output": 1160114092, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "q79sQ3xudStzbYVuylss48tQ0rZAPr47ydzggZLuReV24IoC4JW0RpJKQIcx1gFru6IK5l6Xz2RvCg7yZVzIdak3KwtDN849eELkZS9qM0Vg8UPZQgA3qMY2brFQrJZGgKSfu1G8TtpUoeL6ud9M0ZObrt1S4SqkuasZ30ZXt", + "neighbor-ip-v-4-address-list": "JRumXQAYCAYiDhLw1IokUSumJyeJnIZ6rmkhcU7HuXZZ6Dv0dLk7wOm7eAQBaIzu4UD8OKHbAzaG4yGhj0gHHCPV5xxffYJbSeczZTK", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC" + } + ], + "timestamp": "2020-11-04T14:12:41Z", + "forwarded-data-volume-output": -1975485805, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1916745803, + "last-10-sec-packet-output-rate": 829601488, + "vpn-binding-is-up": false, + "multicast-packets-output": -1435499839, + "broadcast-packets-input": -1712886755, + "last-10-sec-data-input-rate": 438450012, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 977130566, + "data-volume-input": 1506858596, + "data-volume-output": 723450890, + "fragmented-packets-input": 881793062, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_OTHER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 1481320560 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2021-04-09T07:10:04Z", + "number-of-current-problems": 59, + "current-problem-list": [ + { + "sequence-number": -4352, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "uTV80blGJRfxWCPJFlbfYKO4n7x4RZFlKstDDObmxqLmVB5AO8QESwI8vgcm7RHKb2nPJq3", + "timestamp": "2021-05-09T06:32:04Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -28487, + "statistics-is-avail": true, + "supported-alarm-list": [ + "8G06JrUa1e0dfQOihEGMDmoIlY6", + "69q6QqcrS6BLctRrcFCtji7PFvx" + ], + "information-rate-min": 697023714, + "maximum-number-of-ip-v-4-addresses": -29797, + "fixed-default-gateway-configuration-is-avail": false, + "maintenance-timer-range": "tWirA1aLgDCipBDxIyTNAmiqkNqjrguU5FexGobOTN7ihCHZ2BECXOUatctVlPHquVX2b8R5OQn5k5WeysIngDxKP0x2Iescai7liYi6GG30DZ6brOqAjYc1QJ3yXwDZOKd6Av5g", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": true, + "information-rate-max": 1350178300, + "burst-size-min": 2086, + "ip-v-6-is-avail": true, + "maximum-transmission-unit-max": -10841, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": -4435, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_CAN_NEVER_TERMINATE", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": 225637506, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2021-02-21T16:23:05Z", + "multicast-frames-input": 716844684, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -516419, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -1594113245, + "dropped-frames-output": 1043388018, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "last-10-sec-frame-input-rate": -1875592971, + "errored-frames-input": -146895375, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "mac-address-cur": "1lyYtyV9LdRPRCj6mfLphxOlsKcITF5U0wKl4xmHL5ouHHs3WdldD1q5EDGpaLb39Vo5tLM6Q2AqJ2lx7yLKsbI6GgvR1yU3ta8ONN", + "broadcast-frames-output": -1485284289, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 2046339716, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 847195132, + "dropped-frames-input": 1729118188 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": 5201, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "Zmj7J2LsfFPJrqIp0ZMnOIr0", + "supported-alarm-list": [ + "QzXJdO5wVPqy9F6Yoxg7WgYADMi5FyLn7I6kx3IkK9LTORK5o04c9UMEH4Beu", + "BCXzOmCxHfyk8ebKjrDfDMapqJl2PQhikeR0BlxaA5uBcxlvYYDtCFS3o5X5V6n7ke8NrFX2Dj" + ], + "hardware-mac-address": "rXea3eC2j1Q6n820gma47IIKPIlr1MekBkuEzYzKZpQepLeG7pC6ZkQGU38NQm7rHBY8AxSrOAyelMUk3oiUI1BD4JiUXqew1cwtBoNpZlvcZhpVFHPgIiTFT3rJtFfnJMIk2vCTI7YAhn", + "maximum-frame-size-max": -20071, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -12159, + "time-of-latest-change": "2021-06-08T17:03:19Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-06-11T16:41:49Z", + "performance-data": { + "mac-pause-frames-ingress": 401187402, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 566406600, + "mac-pause-frames-egress": 1472669660, + "mac-control-frames-egress": -1012949975, + "oversized-frames-ingress": -194513043, + "undersized-frames-ingress": 2122194800, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 567228784, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "24WtNS4AZfdM64gUUWG38oc87pasDb2y7Y1MI5mzcseaou4iiLlq1qy9PABlMDTLtMq4KEDW6RZud3EvG0WIiuRZ5kcJQ5mbKMfujLipuhMIdqdLi1lsw4stpE47CiimXyIgb0xxajffClSMmefKaz5r51yzkRVhhvxso4Zqg7FKkxwGDDjO4o7aqGJKxxTOUi8ie7Iu6f6qFv7i8iY5G6f6MQIb", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-06-27T20:49:18Z", + "current-problem-list": [ + { + "sequence-number": -4408, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING", + "problem-name": "13dOI7kyC8R0iPoSrx26f2jexo6Ae1YfWbWFjg5Nh", + "timestamp": "2020-05-15T09:47:01Z" + } + ], + "number-of-current-problems": -8 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 7, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-02-22T00:42:42Z", + "performance-data": { + "mac-pause-frames-ingress": -421942369, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -724327393, + "mac-pause-frames-egress": -871362623, + "mac-control-frames-egress": -364513059, + "oversized-frames-ingress": 1078735860, + "undersized-frames-ingress": -1609616823, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1391906610, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "eeb2LKFH3CagwLvCr96enPTAFnQjwhdKnpM81kQXOSdcvBPXKV38KOAhcqAIzOlW5746jMV7F1caC1ZmO2mrRWIVebD" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-05-29T14:03:11Z", + "performance-data": { + "cses": 1596051452, + "es": 755622800, + "rx-level-max": 83, + "ses": 1874735838, + "rx-level-min": -55, + "rx-level-avg": -94, + "time-period": 826503682, + "unavailability": -363011289 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "M46zGX3BVIi77QkrKvsRiq6rxDr9nRQaNWBtLE4ymmFl4ZMHm6yFowYV9h5x0VzNJagnOdVaztnEk1dH7Lev9cqjunIuahaUrqh7D4h5xEBKFOjErx1ABrT5HBsRKCLbUUiqZrvoX68uUr8lQ9VstHpaaJ1VdFY8z9yqA3Pq1PUN9V0ZWVr" + } + ], + "number-of-current-performance-sets": 114 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -8346, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-configuration": { + "problem-kind-severity-list": [ + { + "problem-kind-name": "LtqDPGJUiR5IWTM66NX277py0oCCNMZqgh3XPMS7vPIrBuyH9nKhm1HmqjR56IwmZzbPe3OBLoVmLlVUIxb5zSjR4aWaKsoKUzr0v7Bgoou9Jp3sX7poZIf3L35vwt7i3qaqyLGW2aXLr0dg7CEZdLUYP0tdltvgTFGjim7ko46Q5bY4GDVTgQJ5Q4i3xNkrk0KvfSPDWNlTZkQxPLi5t13", + "problem-kind-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "clearing-threshold-cross-alarms-is-on": true, + "performance-monitoring-is-on": true, + "g-826-threshold-cross-alarm-list": [ + { + "g-826-value-kind": "pure-ethernet-structure-2-0:G_826_TYPE_CSES", + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "alarm-clearing-threshold": -1138693601, + "alarm-raising-threshold": 1725229734 + } + ] + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "BqWpZv9qS2i9RMPx9UiX3BnZ33kjQHPr7DRZ8ShSUz1DmQ3nDlkGWAGRDSatzRNzuwquoHma9fOn5RKA4Wh0wPR2zTv0Kar6GRA4rW7s3VP0ErBAnKAMzjO04b0GmsM2beZu26W5TD5p4GZkqr6RCURG5Kej40mf6dK8bydW4id8R4k9nq1ZcKx" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -14979, + "problem-name": "QOyykndF84RYByCTE5UHh0UwvV5r9E7RlGpFVDc3H42bCE48BRHSJCoeplFySEqdcHS7c4bM05XvBTDcKd5lPlzeH6FrL5EXEoXRk8Dd5sIGllS6yPjfbTmKR1buYHkC5hthhYumqc2MqMKQC36FO", + "timestamp": "2021-07-05T16:29:53Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2020-02-22T00:31:39Z", + "number-of-current-problems": 43 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-03-27T19:45:22Z", + "performance-data": { + "cses": -323640651, + "es": -721462481, + "rx-level-max": 43, + "ses": -656790973, + "rx-level-min": 50, + "rx-level-avg": 65, + "time-period": -507084197, + "unavailability": -1709152477 + }, + "history-data-id": "jreKU9rk2g6Pp1PhQCA77jzEMMYkE80XAeHmf0GhhE6yyVPoxqvwBW2nI0Hm1HcBNLX2Mvj31ptzcjXKB", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-05-14T03:53:59Z", + "number-of-historical-performance-sets": -7877 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL", + "name": [ + { + "value-name": "biToBKFqdVvMHilkmo2U7GpUVltZFRRQ9K6CuL2Hz", + "value": "tgHHB35vXd3fZYAlXfcOXdq4PUPRugoPx5w00unXzrcqhFLfMXVKaeOZ0vIuEYc3VI3V4iLDJX41uH8hFV1H9Hza49EI8QL3rGZnZC" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": [ + "VgU8arPPQxKEKcGPGPCSyJHem" + ], + "fc-blocks-signal-to-lp": "JWntKwfSGzIwh78VRctGSbiLBTsQg7TZ38lFEsyl18JifR564zFWCPzdJ23Z9OQ4XbKBEaWxaxQhpNfleUhQCR4lLZcMOUQD6seCu31EAJVRxbcLXmCz5yMQpYu5LcIJFPd9SeGkYBcvEo8CKCbP2Yxs", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 115, + "current-problem-list": [ + { + "sequence-number": -24953, + "timestamp": "2021-04-01T21:00:58Z", + "problem-name": "uq3AtsZnu3", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2021-05-08T05:33:28Z" + }, + "air-interface-status": { + "xpd-cur": -59, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": -120, + "mimo-is-up": true, + "tx-level-cur": -100, + "local-end-point-id": "En8c8vJzKgUNf1ToOwuGH7ge3PFdqu24R29ZpSy10lOfezv250JEZRSUyp7YT13CV4BkW2lWnabBJGvHy6dpXYkofjm9lhL8lfth9O5oQgRAPm9flexacRys", + "rx-level-cur": -9, + "link-is-up": false, + "performance-monitoring-is-up": false, + "xpic-is-up": true, + "remote-end-point-id": "Vtfc6oydRHmxNKoVtQKQZS3dpdi8MKaz5qDbO3pxLD4qgslJaYr9Quf7Ixfm9hN6zqhfmyM7cJxs3KbeIDnq7uxHTEV2WA0n1iDfQhm20Lm4vyi63xw224CVIpQw0QUT0p8", + "received-radio-signal-id": { + "numeric-radio-signal-id": 39714, + "alphanumeric-radio-signal-id": "jBmViRylDIv1GNGh0D9fFdd1TrsDmPFxiTtBK1WgJj9i6HrZkB6SOjTzKmcZ3KwmvZP8SDguXpEV65MjySbeb4NOiSNmubAZ3p7V2fhREVFL1r4rc7Gf3l3m5IAzMarPrqCtGUdkHSXAbT2n0Av4VyiT9SsV2LClc6OS0T4ALUaXF4cyEHus8Md9EF4yjyTvEzfxlb7659VL60bKz" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": 764341480, + "rx-frequency-cur": -600303501, + "atpc-is-up": false, + "radio-power-is-up": true, + "snir-cur": 71, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "alic-is-up": true + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-01-29T04:58:35Z", + "performance-data": { + "snir-max": 17, + "unavailability": -1300863973, + "rx-level-max": 89, + "xpd-max": -21, + "ses": 390353494, + "rf-temp-max": 115, + "tx-level-max": -75, + "es": -877474949, + "tx-level-min": 58, + "tx-level-avg": 15, + "snir-min": -40, + "snir-avg": 1, + "time-period": 482336146, + "cses": -674376343, + "defect-blocks-sum": 10969, + "rx-level-min": 121, + "rx-level-avg": -77, + "rf-temp-min": -78, + "rf-temp-avg": -72, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -62, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": -1774375643 + } + ], + "xpd-min": -89, + "xpd-avg": -7 + }, + "suspect-interval-flag": false, + "history-data-id": "KaCv8brP6EYMwcUSw8mmviakF47oba7VkBjkMK9So7wUbjFIj14Oc61Ra8glaf9mQsGCcPnAOLn0W2AgVEW7CXRMYZZ8e8vWAbyETN7zzmrng1Dbxsb9pUNfTNoZVLVoWlUH11hsnIPDCtH9VKbcEYspLIgzt3P" + } + ], + "number-of-historical-performance-sets": -18337, + "time-of-latest-change": "2021-03-28T00:13:20Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": true, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED", + "rx-frequency-max": -2137459909, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "SUzJy7RAkcLHC0Zynbh3LlpdLEwL3IdNuMw3Lgv5k8EX8EnvPFzs0YFDucopMtdhfBcSRHQcQu1Y0omHVV9WLPr81QxFjKWrm0b5I19yw2oorK6ex7ajWCrPkYnvBjWPk0UU14kp6IOplMESTG3IaupmlMSWYGLaGx4Ito7s6NJjzfctWf3YCslX75L5LofsVj2hH1BFPkR", + "EdY39", + "jHMXnBFSMRbwcarBJ152D9psk4aoLh74YMTmfq61ihqmrRXaKVdfWuI8qKwb2w7Si0epjljtuJPWsM6dzbkvF2EXFa8zG7rQ0ygjTzMfaBbCfaPPd2kT4QIB1RazYCqY2y9V7V29oeLEgtltvFeroX3pG5QwH8nJGwwFkzOIFAeV3zoy7DZvAUU80CEzL1bryz7S0NsFfHAigRInmASWmE4mhAW2CZl2ykUz8men3Hyc", + "nZQTXpEamlVR57np4t3uwyxSizeVkH4HyMswb7y", + "IHs7mLTAXTuZiELa3qvN0REykbDaeMbOlvVI8Oa5AE4SaH3d8q00axyuAbEOXPvakqSs73pzzurKbmXbFQbPf", + "8zMIkA5Ywj7679I6nKxHw6HLc5GTvSbDkXeExbC3mKauLKs", + "kthhswHpZKTvaqgsSug43kLCY5014qrgTJyeffD7RwC2OSmGfCKiOnMMtEOp47GQQe4YtH5c5zeTktsz54JUswyN2ec7mSX4Y12jAZwxzCiL5KcbHVX1jvOmCStYDi2Bb5VDWjanVs815k4M81NjotF0d0QQiTklQfYMy82ltamqnq4vjJOAcmApej8xc" + ], + "tx-frequency-max": 248235856, + "maintenance-timer-range": "pVpZVef866wxzxM4aj3lcOlkcJst0URhPghCnwDlC1S3yw7AI3WMR963SywKsg29wbELz963aR7Jf6jX97KT8IW0hlDBBFDZI9LhiJksArbIynFzmhsv0hn9u0CXxfW7ozoGbJ1D2clsrT2O2mb2Dy3ZryWQNLY4ceCnXD1SIek97ePaB046r06KyUsdFqhSFM7uh0mZfz1mNQwgJtn2tlM1feeNxox4aEyrxNjMek012xaL0xNlKzmRG", + "transmission-mode-list": [ + { + "transmission-mode-name": "Xpixa4dVLOWJW6nLp11rsf0CNMQwxfInESUGW7CHNqiBoFmNzf61u6DiKlG9Agw68iN4ihD5zVHXtVC2bI3FGyPqMvzeD6lLg0Hy9cEI0dxt81nbJiJpIyHuWgJzeWdvOU3X7zF7E4sN5PQO7z5H0McWUNn9BAEpnzmu1TtFXVk2CbIBKNiKrmyl1WmCw0TTs7ft0A0Xn", + "transmission-mode-rank": 249382178, + "supported-as-fixed-configuration": true, + "am-upshift-level": 2, + "tx-power-min": -58, + "am-downshift-level": -71, + "symbol-rate-reduction-factor": -118, + "channel-bandwidth": -926285593, + "xpic-is-avail": true, + "code-rate": -30, + "tx-power-max": 96, + "rx-threshold": -6727, + "modulation-scheme": -24856 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + 680842862 + ], + "atpc-range": 79, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": -470871525, + "rx-frequency-min": -1780945825, + "type-of-equipment": "kdba7jBc06zLUOLHA068iLXrEg2ymzayM", + "atpc-is-avail": true, + "supported-radio-signal-id-length": 9967 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": 23, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2022-01-31T21:37:33Z", + "scanner-id": "fTT", + "performance-data": { + "snir-max": -68, + "unavailability": -1816992801, + "rx-level-max": -34, + "xpd-max": -20, + "ses": -999932827, + "rf-temp-max": 118, + "tx-level-max": 101, + "es": 117686112, + "tx-level-min": 63, + "tx-level-avg": -92, + "snir-min": -57, + "snir-avg": -91, + "time-period": 1041580662, + "cses": -1136687083, + "defect-blocks-sum": 2533, + "rx-level-min": 92, + "rx-level-avg": -64, + "rf-temp-min": 87, + "rf-temp-avg": -117, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 36, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": 581809230 + } + ], + "xpd-min": -48, + "xpd-avg": 78 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "ArPtWwB53x6LyFcIBlfctXPpgogEnSxPjmj7KUcOjarSPDsjQHncFcBVARrPBYFU", + "value": "Y2XK6DWh4G6z0hhIEtfJ42jNu1gkG3pwXe83RWkNujevAvd7Z" + } + ], + "is-protection-lock-out": false, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -402, + "time-of-latest-change": "2020-01-19T02:45:49Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-01-01T16:02:17Z", + "suspect-interval-flag": false, + "history-data-id": "M564sxjCXrKJReHCqy3jdjRe7FgCL2fp7musTN4QeGzXU8zcGCvTOf7VUfpxhFXh", + "performance-data": "hqzz0bB2uME4OW1at3SXMXOA73uu00daiEBaP4dbQJ8wF9G14qYIfEafzFJsxWuPs50i95lROtfluOeye48uBjJ2YsuvgQcINcSW96FXzNb4BpuHuDb5WM7U6upecBX0GHOPNmFf9QjK7Njtqvqe9q8gUpuYTjYzTFgG1VVaD6" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": -401, + "problem-name": "xKX7nt35eeMmqxXkfVt3s2lQ887Yzqi6275pA0nOf12FyZRGUkJemW4u54lEuDCwKzVcAa0Hb2eKT6qFi1UxYYT32ezoJ3UluIx4SxD4rKGkIY00ZMpXKbSFpjV1mQmRqUNijjeD3UXLKP", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING", + "timestamp": "2020-05-14T07:40:19Z" + } + ], + "time-of-latest-change": "2021-02-03T12:37:19Z", + "number-of-current-problems": -107 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DOWN", + "statistics-is-up": false + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "3164Bixo4ujQRCLTUes6piI0vJ5EUpwPqDUTVraROtHxXkqRzLQQVqJq1O4V5tLn6xhTQrLwUk4RFuB67jW2BFkDlpqiS3GQAXJjomPaHTTegmknx8i9G", + "tdm-container-size": 727348936 + } + ], + "supported-alarm-list": [ + "u7H6i0rO5st8QpdiN9SMg1h3uvtNmw3IvDOOv7uAzPAi6NAUPsy5tP0PlmvzKqif3YVq6hSxZtP58qRXKqU67VVs9iUTJ40M2W505Xy4in2rNLoq3bwbYrv7Kp0ltS7wG4oM2WIkcKDZo2hr5NC3782Rx24TM3ht8F72CPmOs0FQUXhRKUURUWAjQEcCItXI94KDU6jeYY4KNdtq7n9Tb", + "dT8hoQLlqMqahc9AqZyuCeH5EHlNswhxqqPO8" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "4cD0StAP5L5rB78m0mCnySUH2VnErgywsbwcxY1CKY3d54z6i4lRO7qQVFumNUK8Y8kv7mZJcUOiYfg9jBSZAaPvPcSC6CKWL5rKjilvd9N3o3cAwWz76huVtmqrR2" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": true, + "performance-data": "LnDyoSgLBGxgRQz5tuSj7C0DeuyGAw0dTvLin23YAs7riypE39P2LHFS35yDBqInVmFjgA9Q28acHzIKIxEl7k5ahDOL3o8RCF2S7bB1kD514ODMd9Zkt5vDAbowzwf43hWaspbE2gx6W2KacCuxzRa12yxuWMyZ3m1oM4UOdkN9mxjq1GYAx0Csz1WnOmfJI8ZudMbq6YzsnLTpjJZQJtaav6y", + "timestamp": "2020-01-11T23:14:41Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "NMx0yAiwqSYGvJ5OkWw4iH6NFEY0bK3ZwsRW3aslUj1pUYd7NJb5ihSYOQYZsTQZdAN8K8uEjnV5m8c1Jn62xQ0dyQ40BVROnFP7FjDYGy3UygV9v1bUJ37hLcieZ93mGKld3QbBg7oOfjXKd1xW4E6IIoWzpRVYB8bwYf0emoUBzKdELKtHhzpZPmrede4HngddvdkRtek3YpHB22jbBI2qWtx2IBJ5RWae2u" + } + ], + "number-of-current-performance-sets": -26 + } + }, + "address": [ + "w4Yb8XUyWzzJzn1RpOCOGm5SWhjqWsOkoMv" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "eNWDZYDp4CrIshZLPPEG4ysBlsR6T9H7WDCOt75yJog3F7PmWl20Luu6Wd5PmMObpiZTpWr1k", + "value": "WRHDdDZ7wKB0JqdO7sAODZ6CKoq3hKDdBcRGHINdso53GbRODrCgjAKVYaZ7UulnG43fMQt66qaNB1t6l5mEx6ro8qvUMI9kMcAqUVpTlzyPs1VNYijngLLh39bQRl" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "dd5p7Gznf0XeowZrHaZZeFwhMkfWKpUXvSnuqOJFGHL45CvMFnELU22Ge9uYrpWW9bizZ26GJRCOm8t1vZEh1yY8Is61J2XS5frX9xvSh7zvf2oCT2UMAKUac1bWV0GTg8QpxlaGsJbADr4otYaWAX6NYiBLi9EqhmIHHSn2truYSyeepoaZd8E3q7PBhlTqIB7hlnbGGFwy6", + "value": "En1OmeXTif07I9kCAU5z4rOf7uNwVTgz8hguwdfOk8N3h7FJ2Kb63Zd3u0zhLPQTZ6gvbvbwvYrN56oZIzXErbHN384PPUAOTIb46msBkTgiRFhs676xiFclNg2u3vbWdm0jJtVVebd6InyPuEeMbrZQzUkCpvyuSrOtUBo0Eu6nRE4daaZltQ33CoF1L6ovx4YjF" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "local-id": "RE2n02VnnH3crdToU3BtcBEAg2IbmDA6iCtaEhpUYs6hFRFsU8VYKrz0l94INEOX997NqwzoZFFwpcYblM2X5BXrCT9pqXez6lepKONBll7KpYOKCQHzjx0Vi1dIYrhXNomxc10xe7aEXQgrGY1ZnT", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "wpCWcxd5LMvA7wvUmF6JORn5Mw8unlxTL1IPrVUcAhEHN1t1HzCniZs5vsrTOYErSegj22vuj13", + "value": "2wRJ6t6gtqdYTFJzvgSfm0yg2VKdWN3ZcUIanHqIZwzK3ajyi3OF3eV5aya" + } + ], + "transfer-capacity-pac": "uH5EPmsdudTK8lUa0rWedl1D1yO8Cme63bCKxWX19IDhVxjWQgaWtbruKfDeBRcx2O9rK7kLHX2vmerdut1Xxsk9HXnjGzIAfR1RQdCq2w", + "external-managed-id": { + "manager-identifier": "Wt0eYo6NzO2Rexz1AYWe6uQQDd9lfp2bSVqIbonL4iujPVchM0wKumBZrCkG", + "external-managed-uuid": "fKDaaddqBYuTlFIgRZ2RnFdB843KpBvEl8GnlTNWKaH5Phdz98iwNo8Vs3" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "1c7e2c79-af6e-8d12-d18a-957fe616ceeb", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "qs4uF7xwk0eoVRMBKpH8V64TpJ0INB8d35AA47YoZdMV4qoGQXHL3Lwsnpaa0bnWgXokWnIWsnRoF74v4L87xxrUWBWOMjCU91e5gPTI4C6JJ27NO7MdEdZsHV9l6Lg7EmdUb6u7BARkDY0j5EwCSn4ra5MgR2onptasrEA2fjfKhf3eTrQDON4YKJ6tDmR2P1nhFPbM8qwhFrv" + ] + }, + { + "uuid": "f7872522-16c2-ce17-fc7a-083c8517e7b3", + "embedded-clock": [ + { + "local-id": "CHd4txUprjmo7aNVAyNcvGo8uoJ4BzJegWaBl41Eof2npQiZgXbDvzMZYnVrWxF4lPGzUzdaOgpdYz4ewfSUOwLELH6H6DDrtb0fKehqmGvk7zqDOapvyb1jKZSQDwhYHa5komKCUgW1PewwhW1PZ29JU1zxpIn7Ssj8G3Ksby", + "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER", + "phase-aligned-clock": [ + "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "bzATyD4xZ7qisVlKN2GPrZCmojV8csInTa8sFdRwchOE42hR4PzvObS4mFcy7NNSXWkD1b15lQJpSS9OIIboL3l8Apyzcms2aMxbQyg3oRs8CtWkb8AP3VXElvdpJFrTkYW2x45NWpWqTSKW0cLW0AAlY" + ], + "name": [ + { + "value-name": "TNRh4FiLEcUf6OGvdpKc9c", + "value": "iKj2cutxf8pw44GPBLCIJqp7vGRAP4XZGgUTDnqSnHhrEXg7ISPka6rGMi8ue5lVmfOZu6JRO0asQrzqbgKenbM1uUnAZJvdQbcdaO4YOfiwyJXBZz" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "ZtLWBi6ULd2Mq", + "value": "k4CPrDMnLtV8aJTqTTLEPmWO8zTbmbEGf8oGM2WpvRpxsjXmcASTXHzXgs8uEM3TVjszlgQQ7fgsy5OCGGovnXswitSO7VzUe1lz9bi9rqBRvpu3XSqdHTJZeBNlpngvgBXqF7z6x2XUrjYo3oBL9cKfGqB5FJsNcp5RwEP3GFQZYOg24JF6Wh" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "label": [ + { + "value-name": "eL", + "value": "g7nvHne5AXgFaqt6g9lqGL9vn144fHynOVTo" + } + ], + "encapsulated-fc": [ + { + "uuid": "3aa4d6fa-0a22-cf86-e313-451d5fba8dc1", + "service-priority": "-9223372036854775808", + "supporting-pc": "w", + "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "fEXzxm3yqJezuC1b7Kw8aWM4mPoPPnP41Mvz0z7jilSEXUPWwe4H2JLpy1efoVbqAHZA8YTibEW0yDW4JTDMuhb2ih9Hdk7NTYfTW1b7FZZ5vN1eGF02W346d5NqqU5bSk5Gl8FS8EXvkRJ0oC3cxZiK562nS7qDsvjFwRqEnf1H6KAuevyMmRorXrGHy7kSuwy0nYwK5xkcaUyoh72D", + "value": "r5NSDmqKHj7dJ7szw4E3oIdahCrgE5652TPF7giOrp12olBUq7QOQ3ZZxqf4vl1p6R5dZf2iwVkUhNHHUxnCsmB0FQW23Xs9GpnxEhPa49WdWDUJ2alvoPn3xb6B0qCHPZet84vd5rqU5dDZfQuDFJH5UFGV5auU2IfaEKfCbyw8L100Ruvp6cu0J2N" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "pBjXJjqr04WqVwvwVnMksQRsvqi61mxiQR7z2yT2uHsqdXO8cAkEi37OthMnvkxlbxVd5GgrnIRtyxBK0OpaRoYdFDs2XR", + "value": "0ob5lRdN6Owzm4364RveAL5FiA7lpRJpfUmBDAoJoUbCQeIM561xRY5ay4vXV6eb0sEv2U6iGhUxvvjsBc0k25ms1JhXPn0HQEcSyj3eAPDYkPqN1i0Wfmoh6yeVVevLKzwiSzolg2bBJBgCMgy1DPaJngwiuTW6tsodTFq9zBCidTUZ9lSMa3npbMzGFvM0X3eIAES9gmjlfdcpq" + } + ], + "fc-route": "q7vaoq6x9O57Zrzr6K3pc1CWoHvGWtveA0oYjmosbtraM0tTCpiOqMDOt0mhuRn4KEV30jnbEOdrGHci6mYo8t4uuqLY91ULFPGF03JFJWYhDarBwqZET30flM5nF08kHPRIKAfuxdD2n5ELnvh8rioMWt1BtaV3ZELJ", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": [ + "ydJ9UgABBjmMCmVklZUk86z3D1el0bIrorAjI2Mjl9XQnSaIJ4UR3lNym1TfcBG" + ], + "local-id": "7OgW6HAzHiq2eg9XEs6lX6AJPHLMtKhsrqgp7RQG1hJ7pS44k3h99RTZywLUhUmAkvZseQ0fZJnoCjsWmC6wtRnUn0GwU267pYzDGzTFb83NjoBy0z4lqj7ObNc5Ijc7hDLX5wugEp3PNwnF6j1oC04NOhLoAPvJl8yq", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "HeHl4cSReg47uBZ4nnzfZI9v2roHzLShZrC3Dm", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "xX1GIVxm4OYdU94BDokz5UxPssegKxfau8Qd3frZWhdQq9r3yDDDp2sRuy775ehzm7Eie59aneSFocJWPerfgT6Cj6Joc0XrZuB6rK8OR1mfd532bm9r78Vq6FOaxDBp74nzHvfyoBFByIwJ4x23FYtDvhOU" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "9NDhbvuzqH3Y7ONbbvJiw6JpogEDsEotj1KnofWOWSEVGk7KPI2dGEC4U8zfEPIQQld6A1NoTjcsDbclT6yrK3nxbXMIMmyvHLt9EgqyAC0dN4yya7ZVamkdbYVQkldUYG3DXt3x53CS73i9ahWcwghH65xjqKdhrgUgCXFzShkRkCSmUPyqXQZ4Vxnd9AusIgIc5nMPx6yRIr6ugwU5eM91bofkYBNzSnLXDxNa", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "TeEZIMovSCh1EsqTEg" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "RCJRYcQ3z5uHW5Is79IGIlzRd0t8wINncoebAWe1TAIIFi2NrKl26UTbNfjjX6y9uNcWBqYn1y5yR7laRHcPt6S8dcraa0bxFot8GjvzS", + "value": "8JHlTrUY8o41w95Qj7ImEnK0njjTSblSM3eym8wmosfNBcDMkd0QALQXWaIOd4zSZNqdNOz48HRBTmf5zfW10MQOOzvUv4MuR4HwS8ASHrtBFIyeXufQ96wPx1J25voOrXlb5N3F7o8MY" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "extension": [ + { + "value-name": "9OaUYdmAwlOhoJx6Zzp25HFpPZfgIWHKCREB5T3teRLusaskKSmPr168Tept26dFQKgNvbgJVT6f4yzOiNvKHBSsP9VSg1p6LFLgI1RDNXTRokxy02aHvV9d4WXcXmaITVQBPI7Cx0lNcSecMoT9bUegR3kOpvpaifE7PLBfDW2PGg2kxNuIIAYrEb73", + "value": "w6QEKQlnjA08DHOLJ1ipn17XRqB2xxAWDjAf1Vukoms139MF2X4pY3mHtYK0ncO0ng7o4tBsP3tK47p64lvUgKCJIeC5iqXGHWWLpx56tyQpx8outTgKvKl5YP298ZHPNDs43xa" + } + ], + "prot-type": "txIJxXAThPmY26hVampfdv1u5zZYYXqjm02UYvFfcT5eRm91Jq9WN2iTBhJs61Lt2GfS3M77x4loqnh1NqPtt7e4hPonQ2ISIPCDtBK0F5o6ky70YPtrWHodoEteG3ZgTBTmdvnStDQNbQN2F8ltHJH5g2cW5b5YEQdRmsCH5ku92abzaw3S8CPgE14Jc9AR0NAe74Vchhd", + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": "h", + "internal-configuration-and-switch-control": "Umyl3WstkW8OuIk6ER0HpQa2drI0d0bZeCchyFKKBKyXsKV6uWNTEXNSgwSlo3dCxpLX4nIx78vzTq", + "label": [ + { + "value-name": "1Ob8wc621v4Lx18NQAK3LIQHnX5vK4bDKeLgqKikfeXFg5s6x59bNRK2PPxrLA4nPHD7jWjz2g6ieyoDDpOihqkY8RpTkl912M8eAsNDATVOjcsXB87SzsIHj7sDkBEfgFtQZgtz1hgktI94IhPhJxQUxbqRMW62tzLsH6UAnaVQSWNs5uKG1stqDTaiH8kbI5Dh4pSrzFajtXMzro7kQ", + "value": "DmlNE3VYevWJN09xjI4tUxqGYJ464Myz8UmMX9D3FrMkjVRuwNYikgYb0U9WyHvzBJdySQBx9gJk3sPrfFJsVHDNtMJ2t6t5HGvApZZy7JLabsCj7lL2VoQg2ravqDs7kQzJH" + } + ], + "selected-fc-port": [ + { + "local-id": "ZxaGtv0Kog3wNd6BrQpMhoLFWPRAg0n8xxOS2Ouj4yPJLVl4DKQM1tsXbbxr3VzsknkfbOygefZ02c4GPNkQgMNrPkTS7kcsIwHTd71reTjg5gOMV9C3NpnvC8fBss3aYCW3BPnPIG6GOMkBVXFBe26QalkCNfFESBHlq4b1D9zj", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "TVBIAcXuaFEvZ8bfNPZgokzlnAYo19cM4NvwRs01ZwwZxz6ko5tFh20xuYVv77h4MEAD6twYR3XouVBT04q96qGAguXft6jgLMLJ7iHYdwnHrYsjUSl0a1sqvpGZvR7gvK0CUzt76QHpG1JsM4sWXMflbNcywbH2VzwQ8ZP6Howfi7HW31KSNZdYEhpbs6dgFJYFBFMi4ayehfachU44MaVqrctUiG2Pi0uTFg3BqBHzJRL0EQWi0J", + "value": "jV45d" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "mvKKL1KxJlL6QF2nIIqTACHpsndsvn2JSMtvF53hqGn8mqnW0OPAqoRKMX49k6ScLdAiivzAbXBpfYd7E3A4jrHXgL6AKQFnVfF5K7GNW9d37qaMlKIx4hukVtVFbA27Hz4", + "value": "GKeCLjFTCIxPs7mwhRJccEJn6LmNcr6T3cnPwVA0D7PX6cmfV5r7BauzNRe0akLdw02UNCUiBCgAGuPBzhA2j4BZNPRX9u3xu5kaI6sbIALo4BRvKrx3o823XLTYfWwC1IMBO6NpHyNL1x9LYGPePJaM" + } + ], + "logical-termination-point": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "72M7pxFxB8Y4QpNzbN5TCnLlY4hUamwhhbhGIW5j43oUlbmoRrhlP2GF6Pr84Xql0zTJvY2rUiefmADd1MyIG6fEWGN0w5dwE6f1WasQsyXO0sT26jCMqSreye64bbBP9QQ50aOlJD9J63DcegZE0iKyoQDz16oaO68HgW2Rz3txYYCd6tJ6LuF9caIegYgW4oDccxWEBp3rfFEm8gsLK7MWhm2pkjmgzRtEphiSG", + "value": "bV1Q916CFIJrETOza0SwhjgCXxT7prtAemiofg0UQJenu2WF2G3jZjVPQGW77h" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT", + "fc-route-feeds-fc-port-egress": [ + "YFKNHBcjg7z5bdKx9n7evewYUkUQSHDIefnVQze7HG4STGhU3p0zvwpqJj8B0Lb6Tz1J88IHOFrzlJlh0lIvR7NsrW3jz7qsGr4GzEofjPGFq1OimwG6DlyWhugJtyb9R7PjM5y5NfC58qonOWtshTgrfwaIWdJOlr77wx4bMzh" + ], + "is-internal-port": true, + "role": "gTuNOeNq33W57x997S1Ml7Th2YybbKnsDJ7jXMJSHFPO4RPcJQQWXCeRAEVDoiXT14cQINIpkq6phVBSEjPBVVlnrg1QyYBrVO9vBRVW9TdqOObkZSWVNhi6pbWX2ygXepsH8fvi8IAPoL9ovXba6lhvxdkzDAoJRQr0YWaYxCNVgPbLEmWLIdg7itGW", + "address": [ + "1eSJ0mx79WGzCjB1smZ936YFgC2b7E28LURDgpChdiRHCsIWOA5KGVpOqr" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL", + "address": [ + "1bQmXZYsJkyA1AJ9siY7NicQHeew7UT05BnUAlncxNMzfnIHFzPkJTbjZhP7bAZ9cm3EAiQZ5" + ] + } + ], + "supported-link": [ + "DayOvzLdWvnwfsjYnEDVTEG8JaOk5OYIYoolY9z" + ], + "label": [ + { + "value-name": "chAeSPhorw0D4oDHpDz905y69UYTOMz03a7NRgcjMcOJBjiSXS1PPzVYlLJ9pb2ll184hkn3p3ESnXKcHM1wdOmzzYAZ9CkmvkqMFGI4JmO6byiScbgqZDRzBjqCWCYjWo6t4OpG2dM6MXYQ8f80KZzdjRP7tNqh3oL84aO7os52h3Sia1iUSJ73AW2", + "value": "JlcNJPNO0tNgNSa5NUfYNxSGg0BIOEDqZH5AxSopd3x0NHXBB4" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "bDgmCD07qLM7TvhzHmfFWd3kzTl0yRWJn55ZAX61BK0m7hOGv3djh9vI2QIszw3Wt0N4YMXroXNw6B4txiMOrhotZYWymZnQ02MQOJ95yWtwqxZXPLDgUTCTRqj5hGV9BzZha0mIPP67n54cQzlCkXv3nP8EnWOYvF8yGu8vkfCzkyD3ZYFbV3eiSmP7aDYya66QsedMtHdO7RR6Po9DrnVbCCbMf9kq7q8zxee0VrG3a", + "external-managed-uuid": "10Obvfqij2VuP2D1sCkt3RHhRCByxLXrDDu8LUr4XeyEg3FJFZ4IQLSAft0F6P6KtAKeu3ajhIXyLD9iud0dQKN5dNCcCIWXay3xudQLVObyjkQFpJS7tF5zkHLPqzMsZQZtVQ7RwihHv0mUJf24M7" + }, + "fc-port": [ + { + "local-id": "e2eoypJfy2Ip2LF5ObdWdp539CKoU7m99ApH00Pq2pP42maQxfEDFByO6", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "50hr1q2i0UjHcd62a8gkQGrmb6XJN32KWjbXC58uRrb4E9YO960ZEkdPi2z56tH", + "value": "MTJgQRKAaNwPOuvXsoO7I1W0WnYUQFOvqpL9hoJr378SBwPVUw2upRmlecf5SVAaldbutMVxTWpms6ieucAU3W7a9nfTaHVvM7ZgTNNNJ4132j9xwJrzFyJGNQzYpvlcudsfS72t34w5fFCLgVdVmOC1x3ZWqd0Uisa2r4vu0TA8q4TG0YBeN5fk178rk9eutgwVk1pdURlcW6SO5l2Krh4ko4LAdZ4H7su" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "8HcWVaSJNhogBvjMM9ggBofNPWZn6xX67122bMLQ317wxiajrqzVGOInDALB7AHeBCgMoUukVBQkU1Ddj58SLJfojSZqszF33NHjzcDnFmHrfdFqaFiVoqczi30DCxyxcgRMkm1ZIIrPNY8XviTMI5lT0dwvK42XcTBwgC", + "value": "QcPy0FG" + } + ], + "logical-termination-point": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "tTxfDSrrQbfVx9FYqBaHyVhLNekUGOe2AL9dvBEeML9bUH1cabTI7bmMhGyXnNZXq92OCy2gj3s5KthNFbnEeJqviYsFDkCWlEKX4E5nHxskTJ7qUu406mvocY3QaxEv3os72puBXOVIxU8kh4knqQLCGGkQdYlgeFn84JKTxxtWkB8BFtY5bBAJ9Mr", + "value": "LMuRjR0fsC1Z1uVl64WDpMBsf3bgPCCsgYkrHcG9G" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT", + "fc-route-feeds-fc-port-egress": [ + "8uXH4Ksjn7Gv9Sw6UI07qCgo18HIuq3DM0cICF2RMAmVkL27lU6Lom1huI0R1VuNWGoqdii0SwV59PcuCi70w9iSJaJC55iTEGkRYuRI0FNamZwY9EZFF9qoj91ofbiTRuCPYupY1d0n4xe6b5LQe36xdZVka55TzHAx30o4dok9VyfYDTGRWFg9EblHhqAQ83g33E882khQKxOfqn" + ], + "is-internal-port": true, + "role": "05EdJGsGc53Imb9EzNA3P3oZQrQv4rK4pg90WtG9yJRVUSrmx2heXx5ORVjVfVSEb1EZvc83VRQHBiV9c4n9CtPtg0gvV81Y2xYxJYswIb6jt1kx6AyA3o3bobzckAam00LJZ58Hg6SB7d85NHxI5sLlEkxYNIcNAXoz2o8juTUu6VrLCZlzjYMXbkNYUZDuWTWZiWaEP48NRAqlrDUKCzANTnDFng9b1XabUcQJ9Yp0", + "address": [ + "HFasGnYb0U5X7Zqv7U1X6Iv6f3Wq2weBcg3KETVEN0tMRTiYFbWLMjK1nyjh4yS8OVSkGFYtyj8p4qgJt4vfn7hCFATB0LKHyC1eiSAQbI7g0nZlrmBHlKjScdu5Q6MpIFvSp" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "R35rJKWnLMiRmSv6TDtcYIia7I73bYm21rtC3iSG42xiV3pOySTx" + ] + } + ], + "sync-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "address": [ + "exT2Kb7tHEjDcYtcO9kI53n3Zxpl6dMlDGnfRmIq0T35RohypBgnwwqo3PJ9Vwmy4JFVYndY9930xcqPFzcc5CA0kb1fHoFLZkyXzMOIVJBkO19tsdxx" + ] + } + ], + "supporting-pc": "Zp2brhSPOwG04EzQkaL3D6Rw7dZlCo3CO5F7epW2Vu208tIsvmo8k7FjkEEX2HrIE", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "layer-protocol": [ + { + "local-id": "MmMD2GVcZmhNMYTH1ac5Wrzwh3DA9rKOFojH5eT4A2Jf0CO1F07Bry8ItLaD4UrJiKifQ4bj6UyZpeS4eRFFpFfTjponbHZtj9B1dMkcHKbYY32cNzJc7QXq7", + "layer-protocol-name": "hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": false, + "ingress-vlan-id-filtering-is-avail": false, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": 718, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED" + ], + "number-of-available-traffic-classes": 65, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_STATION_FACING_BRIDGE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": false, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": -115 + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2020-01-25T06:58:54Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -81, + "current-problem-list": [ + { + "sequence-number": -5380, + "timestamp": "2021-11-21T04:41:58Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_WARNING", + "problem-name": "NIvOPArqzORrRSK1TRQJf8ke9PF2v4BaE7Ruzi" + } + ], + "time-of-latest-change": "2020-10-14T10:47:35Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 3798, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-09-09T14:21:09Z", + "performance-data": { + "es": -178510675, + "ses": -541539243, + "low-power-idle-receiver-ms": -914386185, + "low-power-idle-transmitter-ms": 1779568560, + "symbol-error-during-carrier": 576376034 + }, + "history-data-id": "phwYpZvKShK5r1FUbtjnWopRF6y1XtKeK952", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-08-26T17:47:20Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_SLAVE", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + -105 + ], + "tx-level-cur": -27, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt", + "receive-signal-is-detected-list": [ + true + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X", + "pmd-is-up": false, + "link-is-up": true + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 581843910 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI" + ], + "rxlevel-high-threshold": -3, + "isolation-is-avail": false, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + 427913390 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "4QBKggm67P52cUJ4Zed1u0NY0PLDcgy869Sei7cpOhs1335UiaVMaBC3qnyCD6KB8vQqu2Pic9bfd8ana59dyLgZ1GBEFe8NJY5dSMn4Wrc1zmoKjxXSa5J3DcIiqIX1y2eqHun", + "speed": "VzEmN266rVQtSzxwM7G4PE6nykF7G2KBtgYgaWfBK55uxuSbBzfi5lFvycDe7fQAwGJGuYa6V7BkBtv4UDmZY1nwd0LkftNL1wkvmuC9B5mcyJglmCklvHJAzmNPHAsIYE6c8A", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": false, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT5", + "temperature-low-threshold": -2, + "maintenance-timer-range": "8AseMsGZ4lrRjKFJh4e2Rrwe5egyMSdVkF160IX4VgV6SAQ2xW4onsukGKStuYgOv9MvJBzxSvDKXlMmiIKxa6SRICccAkS6tEB58bC0yfCnBhKTZmi2taL3NX8n90lCFXzN0bFqj9NUqpFiMXc70XaNMi2VjopQdZv5a2vtbafuAMEmKQlKNvprGrmZHLHUK4ZN6m89", + "supported-alarm-list": [ + "oDZ2hdM7yoM3F5J7rAOd9BPdsCbHDl61Y538iI7QYMLERnDjXjoZMd4fIg" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_CDFP_STYLE1_STYLE2", + "rxlevel-low-threshold": -53, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": 268446410, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": false, + "temperature-high-threshold": 17, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_NOT_YET_DEFINED" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "performance-data": { + "es": -1827861621, + "ses": -1383906089, + "low-power-idle-receiver-ms": 1128347192, + "low-power-idle-transmitter-ms": 570750066, + "symbol-error-during-carrier": -424291187 + }, + "timestamp": "2020-05-16T00:02:03Z", + "scanner-id": "BLVD8R7jw62SFkMNri69FiTG5lxfNtooejUmb1xz7zrEU5jdfpnVz8tEl0U8laoztaWwbt5", + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -102 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE" + ], + "maintenance-timer-range": "fg77oZtByLJIzLvYU0tVcXAivYIqqipyyoFOo0pWM0wdET4yUxl6mVoSMYi4gzCPXhvdaV2WNq1rk5SeDdcR1sJFqTJykmfivLvFypBlQDNaIxgdKs5DMGi4s2CMgSWLvkr3JUozp3J0AR5db2IXJ113VEH3oEOTY7WH2c9jgSjICpVNrwL2pM5ciNfGj3rh3nQ5sZgIKA", + "supported-alarm-list": [ + "k74ac1vCWsijLEr7t8rppmMaeAPUjTgD1kO5lbI9DSthxMoSUPibbWliw3cQWklPw1VRdvTIneZM0oxV5P6hDkzanD0bXd1lfO4kjX2yb2dciKZfrXw49X6ws6IhcBCrpHLAEF0QzdUJXLZgAnlKlr8FqIXCjzVA8yaN5bvFohoe2nuuLHeY9nDr5sVhUQR2gUHl540llhrfwWK9DQ7E5D53XSkRA3U", + "Z69iCMl1zidJ5sqgnRpi7gfz7w9R6j5Xpff11AUsT74Qru7HdoZcEfDMLEvJYBGnQVhJob49b8ZCuYbznbMTihx3W3EUEk9m7qXvu1EF1w9nmlXJoBvGS2BG5fsBrCXy2VWoOA3IYd5lqUWOnrm8mXOr4h3nTSVNFR4" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED" + ], + "max-queue-depth": -1939149721 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "Jku3q4NF8Z8SmlHq89O2VphD", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED", + "compressed-header-length": 9975 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": true, + "information-rate-min": 1620038356, + "fec-is-avail": true, + "burst-size-max": -31352, + "ingress-policing-is-avail": true, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_8" + ], + "egress-shaping-is-avail": false, + "information-rate-max": 2005763084, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": 116, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_96" + ], + "burst-size-min": -31773, + "fec-word-size-max": -18868, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -101, + "current-problem-list": [ + { + "sequence-number": -980, + "problem-name": "koGOWLEzKqk58FUIJFddPB5OLbo3ZzAcY90MUxlwPxBXcvFN2T0Jm5pZhN28fvk5EdRqCcXrJqgNOVBIGBsUzJMIpGQE33JH8s0KEX3ffbU36vEFZ6rqH586MQKPTlpTNpvjeqqtBlpAI37H1y7IE7HiYr7JFwDsV0M9r4v2pUC8PJHIaHiOOZ6Ej5oYuTipT4rc1WfqIJ", + "timestamp": "2020-05-06T04:23:23Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "time-of-latest-change": "2020-01-29T01:47:53Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 17861, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-11-04T11:24:50Z", + "suspect-interval-flag": false, + "history-data-id": "RDksJyI3MscJ2QcNoLi79FsS1JK1Sy9Bct4V1MRN63p8TtW9e6gfDI0FkKG4jPFnaBacf1RmW8uHCiQQg7YUHYzTI7PTXng7Yrbek3A93WQF7HonGm9fcA9UIYGFdOEc7QqsL0BOOjmVSKjyYkGaVPWDFuaTjOXiEnKhfd63pkRh42IUmoWh5KUCf4nqTkIpzlHOqFKPZt7VvPHR5D9anVMu", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "max-queue-length": -1963378379, + "avg-queue-length": 751814814 + } + ], + "fec-uncorrectable-blocks": 1323611136, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1160343536, + "tx-ethernet-bytes-max-s": -186444115, + "time-period": 462992912 + } + } + ], + "time-of-latest-change": "2020-06-17T06:20:52Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2021-05-26T16:17:23Z", + "scanner-id": "4FjhG7w6P7x6Ax55mm8JvhTXwjf6uY6zvpQ3we1dlqbOXgLbvUVSbOQz0XGmNEViWDdkJfyXFBLDSoOfaJ7eqPNiNlEs0sLW5YgH5GELihg2x49IG8WYYJ8D5M5X6IL4z1LEAhhKyxE5uNF2VBSLd0oaEmZLWKHvDs25BbP1Bt658EZ47JPcJ6mfkdSgXzEBTGG", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "max-queue-length": 1301880338, + "avg-queue-length": -322539763 + } + ], + "fec-uncorrectable-blocks": 284507924, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -1868591559, + "tx-ethernet-bytes-max-s": -852690273, + "time-period": 1820788788 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 62 + }, + "ethernet-container-status": { + "timestamp": "2020-08-26T08:58:23Z", + "last-10-sec-data-output-rate": 1216040460, + "bundling-is-up": true, + "total-bytes-output": "307655821885048512", + "total-bytes-input": "2804603363442288640", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 83653140, + "forwarded-bytes-output": "402499102235684224", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "4523434467054645248", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": -20668, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-06-10T19:36:15Z", + "history-data-id": "xiXaOHuCCwXNHh58wZiOcPFDA4Qy1eNqwCAcc4POsEt1Vq9rhj7t9N6JROhK24aqzCCLyjr0PU1Kc34tmbWvQ27AIgkCdn2MZwxqIYqxKkaWnepBhdZ076APeUrr9ld1JCrrsJRc3T0i7pUgCTgJRQy5DRpEcCFW7YfzIYMLRMWQ4Q7yBfikYIhBAG7E", + "performance-data": { + "rx-level-avg": -124, + "es": 1577851002, + "unavailability": 1964517302, + "cses": 851714142, + "ses": 1887381946, + "rx-level-min": -7, + "time-period": 2005548998, + "rx-level-max": -56 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": 6755, + "time-of-latest-change": "2021-07-27T19:18:10Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 19354, + "problem-name": "xFdrxptOEnGUFQcz3zHuHy1PQUQCmzAT6OcEdGkJV0DAIP1LgJfY99F03vuhW4b3SfzXVTGJUcbCTdgaWn0XwxPr2jJRoMM81lYPewq0IBvuOLEC0wAx3hQXBrGZ5sZ7NXOUueU4Hpyw2403sssvKillC1cHm3G91m3nsQja7SyaOydh1FEDPZQrT21fXzgQWc5o2py196bXxo6qVL3LCL4nFXuCxLttPyJJXaKY8WW", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-03-10T10:12:44Z" + } + ], + "number-of-current-problems": -40, + "time-of-latest-change": "2022-02-08T13:22:34Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "8oMPub2svNkH5S8lXoj6YOGdxBe4okGwIkdcwfw13QA0BJmy7xwXm5aTGhQWBolj", + "tdm-segment-size": -1875455663, + "max-number-of-segments-reservable": 89 + } + ], + "performance-monitoring-is-avail": true, + "supported-alarm-list": [ + "6OU0JCAJdbXDbv28J7juNAcK3A5ebvBhbnhU0Sw53tB6QDfrKqWxS89VB69MuC3F0dA056X0ryZab6BVwplgymb1lcNPOIuONWGKUwDe4Co8IRV6h8mHnxIIBnxhXT6LQEvK28YZCe7k6UqfVMWibE0M1p4Qa2B0yZDt7tsCArWGdfV81Jq5niJgHF6SzAK0zfty" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "suspect-interval-flag": true, + "timestamp": "2020-08-22T00:46:31Z", + "performance-data": { + "rx-level-avg": 8, + "es": -295680755, + "unavailability": 920001974, + "cses": -1011112749, + "ses": -1198566585, + "rx-level-min": 13, + "time-period": 1095955798, + "rx-level-max": 94 + }, + "scanner-id": "uG85wiPurLiYYdOYKGBMcicmP69TLhi7YrcuB1Q2F1TveHlQfWDr6POWVPHy70F5jJrUC9PhaIMoh77oVKI2roQedxMkpjhI2IDwSsO22sjbsizf2h", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -46 + }, + "hybrid-mw-structure-configuration": { + "clearing-threshold-cross-alarms-is-on": false, + "number-of-tdm-segments-to-be-reserved": -72, + "g-826-threshold-cross-alarm-list": [ + { + "g-826-value-kind": "hybrid-mw-structure-2-0:G_826_TYPE_UAS", + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "alarm-clearing-threshold": 1736397626, + "alarm-raising-threshold": -1158148625 + } + ], + "performance-monitoring-is-on": false, + "problem-kind-severity-list": [ + { + "problem-kind-name": "beZRr6EA7f04CbOKKlIuVafVBmg25348h3ZI9vi9Kb5emLQ67rtUBIHd4Xf20j2hf2Zgpap2ln8", + "problem-kind-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MAJOR" + } + ] + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "d5tCOz062cL68rcjoy1bZT472cx9Z6bcbEHSeHQ8TteTVqcbQ5mIYiP1mm2dl5qwJ7gPG7XzA3snlwy4BVMA5BtkQnxbsXz3WQTCPI3hMnFZTd3n0PP6rai9xPkZFT2tJNYqw1Iahn12A5pBU6zdgJmNyGE5szz3epuCqcMHzOK1L1uF8VLoE745GAa01B3g0xS", + "value": "BxS2du4Ywqvwm8M08Q5Gj8GcBJsu9dNCCxFH2Bxq1UWn3IgbrdRCdpOP09j1eYEQvjpxUWPVQLbLmrWFwF9KWXzX6KYkIC2dNrDHfsv66yRkRGRnd072XyZWiX80sb6fuBPK3cI1Krdt74Qd4YfUo6QHVQzn1Fvogc8coQ509jt9fbmc1t6qzO7mEGKye7WmjWqzEwrNHMWWXa8Zv6h4UojrW3" + } + ], + "configured-client-capacity": "Njo3ko65aVv9togwjVD06eGg0SdXkjYZun3OL1TVOhXhF5FQTaQZop7p9ketvcsZznNcgz04IXdf2T5N3ONk5UBe7PHC11utp9xFIxCimPphAv4wbRQgErmL83f14JmlTUTtrnMOcb5Fy1bBTTRxc5ak8pl59Ii2C3vVq9BvdGaLIlft66Si42CcjX9sxkm1nKXOTqj67lKHGZ2MXU41Oy67n7sVrOOPyDvk4Gi31UCzLEdBq9", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": -1155053851, + "last-10-sec-data-output-rate": -1597639949, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 1978756698, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "5vm9AdnLEttP1Ac9Btib1zzVAFIWySgvnCEXI1Bmm43nxfp0IH4K8DxJa7xAZN5fiC40vFeSCif1pET8eXKmA95Lgvd8aj", + "fixed-ip-v-4-address-prefix-length": 50, + "fixed-default-gateway-ip-v-4-address": "NrkiZzaBJiu8Wn8alSpN1mqaREi2PxuCYPUXgXqZfMZ3a8en0D2UZt4J7eLWL7qBOcrW9JNowNsyNyVF3XzUivDpBgdegvQ4IhTR0G8olAW80JO3HfXZDtheJmtZSbWAsHjknrBJ1xR1hxWQNUHqnQwY5ZQX2EpulIHA2ijVH3PQsLGfxgxU64L3VB0Y7hksST2U3ePL9EBBiaJPi8Cg4nk" + } + ], + "broadcast-packets-output": -788607515, + "dropped-packets-input": 1332338706, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "dropped-packets-output": -198104581, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "cQX", + "neighbor-ip-v-4-address-list": "2hmOb8RhXuiu6UM8vtiD5yIkSA25iRrk0N0cVSlKmE6kqSkVeCybbgwVQyS8ijli6luT5IwsmCEMnZHBB7MEoas6Jk71EsbCFGoLgU5CwJgTIPmcW9IcjajUviN1KZDhxT2NN7hcRx5rmkvatenEoyzLQeMsdiJKbEpRLG3ud0OrkjCFxZkOxTzf7eHdwqPH4fqINt41mSkG4WmtN", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC" + } + ], + "timestamp": "2020-03-28T22:16:54Z", + "forwarded-data-volume-output": 1141724076, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": 650241800, + "last-10-sec-packet-output-rate": 1895136566, + "vpn-binding-is-up": true, + "multicast-packets-output": -943278591, + "broadcast-packets-input": 295863052, + "last-10-sec-data-input-rate": -120383451, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 1375222788, + "data-volume-input": -2016440913, + "data-volume-output": 269780022, + "fragmented-packets-input": -2000492377, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_DHCP", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -1798694477 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2021-01-15T15:23:24Z", + "number-of-current-problems": 42, + "current-problem-list": [ + { + "sequence-number": -31728, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "problem-name": "Xvt9O4t61BCm2Phq9KngqphBcuc2D9eAEICsM5yGy22BJjTKVg1eGaPSE1M921KGBe8fjyVRBQkc15XXmQ3U0SMwLqFNrhl2vtaG15yuNKHPQEE4uHYmrCK42hJur4oWpqDqo3NbFuSv0wzm5xIo1ks4t3qU7ORw7mPvhCGWYzkYXTkVjUjk6MgzPGuPnddur2ZIwFwu6QsWCERNy2ZEOg6wWAdjNqNetMOZkkmi3G6xlXkL0jiGro4oYhzDA", + "timestamp": "2020-02-21T23:45:19Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -14528, + "statistics-is-avail": true, + "supported-alarm-list": [ + "mWj", + "hSKOq1rGasbqt7Q89fne8aY3iBBxqV1HFLn6MGMW0XeuWWu5bKckUaf4EQB4DCDjfSh1yVPzLVVHShF31RfNTuSxdttQ6Y1dQa7h6WIRKvqCMXxOGFtA1lZePlXNjY029Zj7OTQyo82a6zQM6ke8x6mmrb1CaUEbTPiHI076899eJRTP3ZPB54PofR1pDxswfC6XC5WLfXZQOKxKKnlHra6GTZY" + ], + "information-rate-min": -1062956669, + "maximum-number-of-ip-v-4-addresses": -13542, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "wfMdjKUNWPxXREW6DKG791W8c71eQSne71riLe6I3vxM1uTE6rLfkHoxGpLo90Cg1WyNawn51US2g", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": true, + "information-rate-max": -1272180713, + "burst-size-min": -27361, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": -27888, + "ingress-policing-is-avail": false, + "maximum-transmission-unit-min": -12074, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": true + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -852690453, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2022-01-03T04:52:26Z", + "multicast-frames-input": 1408113518, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": 1312971664, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -1664720477, + "dropped-frames-output": 85410314, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "last-10-sec-frame-input-rate": -1400058697, + "errored-frames-input": 268850666, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "mac-address-cur": "mdmP6tq2F0iGeCkA1CE0zoaZSuwxVIl9WzQU3gXI87hnJBPKdtCMSEDC919WJmYxWOsZXhz5gQkRjauwD6anLFZMy1IinyHbf12caC9qkmaEwE21C5hfC81b9C", + "broadcast-frames-output": -2053910295, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 1756001436, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 485411742, + "dropped-frames-input": 1911691454 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2" + ], + "admin-shut-down-is-avail": true, + "maximum-frame-size-min": -861, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "uSZPdYwmmS9H1F63SUx7FRVBiZLgGGC2quRDsgSH8Tg9zn4jhBqXkeqDdbLMJgOaKyF4OpLWj25Sp23GDmvQAWlFZ6rJm8T6Gq3uQOi9QfTfhOONabDK7QiZWJIbJt9hTcLB1VCJbvRkc", + "supported-alarm-list": [ + "7rkB2v7TQbqPx9soRMFq3qHf2rBNO1cNsxpmUogCzGsYHUnqy2QCkxReQk2Fl6kNvJ2iZiUyQmpy8MYHGHb1eUf5f9CA8WgDyiVxsIYi4nI59zMHgPImJQrQZVj7SzDqJqPb0Nt5a42bDOTLvt76jrXbmga6HFwq6eB61W", + "mICZIshHhShkCKlTvy" + ], + "hardware-mac-address": "iqn4BQnYEMgojeWkbp4q25v4Y5QAWfq6FNa9vy7acfyvtuPxMLXOJkSHhAh5QAbnflwLLwVXDlsZH9wtVl9Ex1dOC", + "maximum-frame-size-max": 2861, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 23113, + "time-of-latest-change": "2022-01-07T14:10:51Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-04-20T05:02:33Z", + "performance-data": { + "mac-pause-frames-ingress": 138315216, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1628298831, + "mac-pause-frames-egress": 453067834, + "mac-control-frames-egress": -654691653, + "oversized-frames-ingress": -1895074855, + "undersized-frames-ingress": 569877322, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 215821848, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "r4GYe61xJvoQcAtT8P2CkvQYgaKyvTcOXSN4QOtsbRaokD9sk34xyMvGX87kTj8R3VNMCg6NZg3bMcv6frDGe1m39tn2EnLIbqmNyssyIwBuA7tIy6gMZCH0YW3ukG4vZqaxSCXt0zPtGib6hrTgVshLpcgBKk6JL89vC6YvFGYdY1k7k5gfxxTOB9pdlnPYnYu04kvC0lHRm1YGY6NoDGc6Hu", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-10-03T14:50:00Z", + "current-problem-list": [ + { + "sequence-number": 28860, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING", + "problem-name": "G6CPIX6L0H2Wcw2j1zCS8s7lknb9NgAtm5aX2hIUQKIU8L59cHTd10ylgJm3ZPomUqbOHLBpnjjwWox1YreZjMdrwzmvgKJ23URKxs2VDdrAuYBshHjBtwURYhfeTYhWL0zisB55Gwxan0CEHW73k2Uib9p40GTLGsV0V15BpvMMvgj54q8hk2zvcYscwlP4FK4AD233xHPUY8ZU", + "timestamp": "2021-10-07T07:44:17Z" + } + ], + "number-of-current-problems": -2 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -114, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-12-10T15:24:30Z", + "performance-data": { + "mac-pause-frames-ingress": 1216183866, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 2001321720, + "mac-pause-frames-egress": -107857225, + "mac-control-frames-egress": 175309056, + "oversized-frames-ingress": -238651581, + "undersized-frames-ingress": 592737580, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1927335395, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "gmiHtukDZtRsW9sKgpd8q8vt7V3FapbiLtZ" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-03-27T10:13:26Z", + "performance-data": { + "cses": -583883129, + "es": 1810357454, + "rx-level-max": 86, + "ses": -1762716993, + "rx-level-min": -29, + "rx-level-avg": -98, + "time-period": -1292950297, + "unavailability": -912466153 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "zFwDFdTYzcG3hcAofNfVck2PxF607shH8NkN16Dsabvrn6QvLXqYakFz0Lz75IGdn11g" + } + ], + "number-of-current-performance-sets": -5 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-06-17T05:22:54Z", + "performance-data": { + "cses": -899749999, + "es": 1142513418, + "rx-level-max": 102, + "ses": -1976083631, + "rx-level-min": -35, + "rx-level-avg": -60, + "time-period": 1670968922, + "unavailability": 917587638 + }, + "history-data-id": "8KGa5lJXYiW30DhowaEnyfwguZ6y2yg3bWdghX5ff1b8Eso2uUp2aObwFh4IHlLS9Y0rV5y37J3D3rGxlXAvLL1r2Y1JbMukCuDyActzVwcZXKoaAYylJrEDpFfsjJNW5imxuP6idb92NxcnoKB7cfDtN", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-12-08T00:50:18Z", + "number-of-historical-performance-sets": 582 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": 9102, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "IGAfkBYNQKApGA1nYLNc6kXhQQ4cuo4d4Esh8i4Y2wfA69PXUD10XZhGPeSbCXoztIQB0MsViHvgQddKQ7DF6UlN06YvVfWgXEKYqcLAL8QulW6b3JJ1w4Ow2ETPTP6JlQzDUkdxkW1GS8JNRsOnpuMj0F9Un7vAP4eJgr8Afa87iSU1kApJ4335I4RXbey0iEBq5J0dL1k3T75dzmPEpKBZGkXRynJI1" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -19161, + "problem-name": "MGAZZKKAYJn5yk8ZvmaMlS9owM0kwmWa2p9U9Lm8vJ5VW6MrkW5GO6WcTXwhjlsdKB7TftTC5Rx1Xjkh7hPVnM08JwqURS7Bl7nsA84xZBqWMK6T1VHhzzpa5H4PrciFjF7LOcbFFBCkmA5fvMoXdG7jn40PgimrQ", + "timestamp": "2021-03-15T04:17:45Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2021-05-15T01:25:52Z", + "number-of-current-problems": 79 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL", + "name": [ + { + "value-name": "NiUEE5Of711r5A4gq2cs7ZUQ31zTrG66RTLvYzC5svpy6tGovSRCJDlFEMqXsw3bhGGgfidAOC8M", + "value": "O2tzT5aoiHU47RpwNANt9VBj9bZLbDJZGcqr9BQkaKgiuxOh0BC9pdsygkbrXUjDYJ50cVknxAF18la8WF9dStL1NPsLBLoAnlAz8UWGmtzmOCmDhvQ1Zu2MjnpU0Omn1WXaILIXf9jVLGyU3hO2LIH456YYMdlO9aYKWyH3HSYlyp7CGVwrwdntkdr6qNMAPCcL" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "s54AxR1eyIEbdY7T9aM3MlHiyiAHMyo7ElH34AhCjWOoMVaVYWRCiyNIQnquWGBs1avYLNA4Bgkn4uj2j2wBAjbizBEna8P3ic13ZCZAKcQOG1IZ37sDqEVR7zehHVlS8mV7QNABZihxjSpmZRZhnM1vdfMVbZFbmsa4fKx62PEdz3zqMyz2kAxyQblTb04pketAR1yLI4Z9ZyrMZ0ObBdBjgW4rO0I164BXX1Bx6sG507" + ], + "fc-blocks-signal-to-lp": "Zp3suELLtH49HNaORDDOFedDGTAzSkiRBdk6SXRdxVeeAhUrUy7rEkWd5xEXJWHkaTiUI9ZfX5mxmgR9GQsd3pq8W4YFSxRUqaG8bFg8LCy7Sp8r7BEa04jO09lKGcF6ed6qTmqwYYvJfEan7Ox7KINCR8mxcTvr7CJSQ9oP0TqfpAuwg2v0CiuuiQ1vCxWJ1xBRGRyGCYO2qaqy4WqH6UbpD4UftIYu7reN", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 104, + "current-problem-list": [ + { + "sequence-number": 23959, + "timestamp": "2020-06-18T12:12:19Z", + "problem-name": "WQQvMNKm34ZONcQzHnFySXrdJrT1XIzTyphc51y0XqHCCx4cVJKFy3LiuwbreLdE2mQ7fp05PHHj6LvTmfr", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2021-06-11T02:16:27Z" + }, + "air-interface-status": { + "xpd-cur": -88, + "transmission-mode-cur": "kowKc", + "rf-temp-cur": -119, + "mimo-is-up": true, + "tx-level-cur": 25, + "local-end-point-id": "UvxuyKjH77lxiefszZ", + "rx-level-cur": 81, + "link-is-up": false, + "performance-monitoring-is-up": false, + "xpic-is-up": false, + "remote-end-point-id": "1JI0Lm6cJKduwI219EcQEjb3Cha4Q9NJKnJvJPAsrFXYfRRon3eTeiPIrZEi1s1LHD9rkJLEoAuDjd2z88kmi95K9JUa3NVLq44DFHhViDrtQl2YlnkEohox1azWXnHgjDTRl2MvF5YvqT", + "received-radio-signal-id": { + "numeric-radio-signal-id": 44554, + "alphanumeric-radio-signal-id": "xHwJ2gv2EKZDPAjWuQNlJQxpIpqtLdLaU9UWphQ32HzRaSFEIlSjbpJTG1es60C11oPrGymA7VjhNYWnjGzm5a8Mbe6h6Ia870zFqVfpJyHoovMAbdW8nWMybSHhtSpsKY7" + }, + "auto-freq-select-is-up": false, + "tx-frequency-cur": 11978968, + "rx-frequency-cur": -810342091, + "atpc-is-up": false, + "radio-power-is-up": false, + "snir-cur": -17, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "alic-is-up": true + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-02-13T04:42:27Z", + "performance-data": { + "snir-max": 74, + "unavailability": -1567940797, + "rx-level-max": -80, + "xpd-max": -98, + "ses": -1980064323, + "rf-temp-max": -7, + "tx-level-max": 124, + "es": -1010478145, + "tx-level-min": 107, + "tx-level-avg": 112, + "snir-min": 108, + "snir-avg": -19, + "time-period": -620662927, + "cses": 2080752344, + "defect-blocks-sum": 4435, + "rx-level-min": -32, + "rx-level-avg": -30, + "rf-temp-min": 65, + "rf-temp-avg": -95, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -4, + "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "time": 1572077106 + } + ], + "xpd-min": -23, + "xpd-avg": -50 + }, + "suspect-interval-flag": false, + "history-data-id": "FFSJ1NctpGlGiWD6723UB7QYZZHZY5kvL46EJj79ZsP9gkfgea2P9SG9Rf0HkkcXgjBZuI" + } + ], + "number-of-historical-performance-sets": 31486, + "time-of-latest-change": "2021-09-10T07:40:39Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": true, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": 804340334, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "H0leXh5aKGzIfJ2TG0EoqHtLgi43iTi0TveJMkTp0l7749SD9p1r6ndex99P2rPOWWxBgi08v78AgS5hh6InlNtSXDIR4pF1l4utnuCSBCkJupSMos1JgvC50cW4BCXXGrqVVUGoo0ZTiRxykqhsNLxNXlSrXHgw9GjWtZdRS4CaW1I8sRAfvZ3", + "O4I38goMw0mOUDUEGZH5IDg8gCJlKY9qUJm30KHoD3dpG7We7vbH0rHgViBx8CY2mcXeWECrzPR7PNeOapvaR", + "W5YYCjW7VTpij39SOXASIcyEVUD7VOkSLaIfuEehqErJHABnq3g8gOEbAh", + "rEm2cuF2w", + "kNLau1yvARkVJxMBBhDpidxK4ZSrQVMbApd4rLsTuMOdbsOMJj4UwBEBto2jbGmL6zIpcaiHOYMZitL2MPOjjkMEJGPUncGlDgKIqUh6S352wI4bqKuJ58f", + "em720JmsrdrgSF425rcOnDsJywd5qBYEX5zQGVaZ0B7Kh3MmuQ2RmusU1xZj9PYYUpGscQscszWBDAPZiRJwl3ieB9yKYoAKFhdR7xVrYJUtbJltA40O7aUIkkkiIN3f4863FTnvChZFTk1tg19f34Qno2GZPJeTJdPgY4LtdC86W9s42Bk6F2tW49VUK1Ft6uJ5qnyEZyKOIcSKO4Ql6c9b", + "wXugAFYQ1u4aUIBEqb7NBbVBrKgCcxMIn8YXFONyjSI5sjJSvRyY2lAl5IXi7BSuBJshx7PQZqW" + ], + "tx-frequency-max": 1755733306, + "maintenance-timer-range": "X4ZlBBp5yisEXYTQq25tzWjV8W", + "transmission-mode-list": [ + { + "transmission-mode-name": "kowKc", + "transmission-mode-rank": -1457365567, + "supported-as-fixed-configuration": true, + "am-upshift-level": -90, + "tx-power-min": -117, + "am-downshift-level": 20, + "symbol-rate-reduction-factor": -86, + "channel-bandwidth": 2111390714, + "xpic-is-avail": true, + "code-rate": 47, + "tx-power-max": -42, + "rx-threshold": -5686, + "modulation-scheme": 29769 + } + ], + "encryption-is-avail": false, + "duplex-distance-list": [ + -819744579 + ], + "atpc-range": 3, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": 858921524, + "rx-frequency-min": 2047854852, + "type-of-equipment": "AQ0uUDlRsGmvyqW6lHSgUhae41mAnKVQsVcn", + "atpc-is-avail": false, + "supported-radio-signal-id-length": 19865 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -29, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-03-30T20:46:01Z", + "scanner-id": "arP8fJbzFISAmro6ISFidRnsiA7M6Rl8a3gqMrZj1JTn3htD20VfKaH2LHPRy2ZIX70BqSUrtGOwXa9R2W7M7GPKnwtNqkooroZR8MaCsY8h0a1360P5GwPWUaJdu7tVokEw6O8qF9IFbJA9JifhGWdB7PGBO9p4", + "performance-data": { + "snir-max": 24, + "unavailability": -1812055281, + "rx-level-max": -76, + "xpd-max": -28, + "ses": -1277777307, + "rf-temp-max": -1, + "tx-level-max": -82, + "es": 205819900, + "tx-level-min": -12, + "tx-level-avg": -20, + "snir-min": 2, + "snir-avg": -98, + "time-period": -1401517277, + "cses": 189680502, + "defect-blocks-sum": -11111, + "rx-level-min": -15, + "rx-level-avg": 104, + "rf-temp-min": 91, + "rf-temp-avg": -92, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -118, + "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "time": -381992597 + } + ], + "xpd-min": 2, + "xpd-avg": 106 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "TGKDx54W4GC04VoiiRuvjsWY7oNJArMl7wYwt2sxAWpxRNP1xbpQvlGCBtm3M8gMw6iZ1DoBzG0jlPcSSBAoWg0pCesoeI2KPlBQYSjpy", + "value": "AL1NwUo6adf2CRhX7vFa8mnJ4dBoC1A5NBSbnghptwsYfBVn6sxeHMQLZr1tlBy05qbkzsK2R4S6FFtD8SSPEAsv1uZeXpe2QpfpKZjt34zAJVdJFXqcxTHrfyFcYM7O3m5Nlg8gkIIWvVFaL6miZ4B6C9isVp8YLdEYmM6ymOuRKa2n8gFZc95Pin95NiVqvrpJ6viskMcWO6jWmQVzZSg9gpeVH" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 17569, + "time-of-latest-change": "2020-11-12T18:03:03Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-06-24T01:48:35Z", + "suspect-interval-flag": false, + "history-data-id": "Jl6WVLUGjulNd0a7qOwwH3BIyfoqwcPgxOclzY1TlmyyeIFEo3256vNEL3598MpFAuS2sTVN8lde3KLrNNoUb3qW7n57anMCRxEbirRqM4xHHi0uXog8sHWr4Uy69cJ0Jnb2P2kBZRbG1b2RAjR2SOlWAL3JXMBz1MtQHNkyxv6qG0h8j123Pn0h8VSYztxA70jGFDe40cvydEHoFJsm7sD7fn5OQugYmzEU4LY4Xlv20crxVTUUdp2s", + "performance-data": "tWdgHSFiLkQjp7Re5tP4b7r1g6gaQjCb7PsOzZZkbPvBOnPLIwPTv8VDebN4mh8m6s2xj1SuIf5xuMica0YF8TinWYjafjweDzLWAvrbLoI73SkdKaTT338R1j19vyn8785zEoKhEsoHdINXSyINBIEv2yEx61x51CEFSp" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": -6454, + "problem-name": "2708yATgUTe6rVmZ8bg2XdYQbETeTdtVcuVC4GSQrYXSMbSUm0WbdMUgiNm3SPY4bMG8sqYUpNEbYwXcoLotxiJPX5THNJLQnjQIBHu0u83lx0xVDNp2", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED", + "timestamp": "2021-03-16T16:46:37Z" + } + ], + "time-of-latest-change": "2020-04-02T01:54:44Z", + "number-of-current-problems": -82 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": false + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "T8YgPWy2Zz4N69amTLm5TZryJfw4QjmBjcR91h30Q0NP9Q32tp0eorMZGbVouaZNmJOfSSgBSVi1D", + "tdm-container-size": 1499067946 + } + ], + "supported-alarm-list": [ + "de7L7pnONvJOFLWFzLVQOrv1XmKTpzECGEgNVvtB1chGYd", + "pQ08EkDxhRh29JHLpdT40pxtiBKQrP3RF3ZbnuJxeSznt80KdUOeblHtXkjg9e7HhYSxlt4revOHEGkRA8XLmF6bZpr0DrHNhscuN8V1DBB9iV1KVYwhvCsmUMfpdWcuooZ4wM52oybylcih3GyqbTF5FUuKQz67XXbmK8o0Hzy2EIbzpCZsvwx2qTE9kK8aIbwkjMkSlKNRkYqJAi3XOARfmvgG8oQQze2K0mDeYi5i" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "Vd1e01M3O2xY2cdDTsvLA6vwgo9Cj8n7moleh0h62GWWS9zDuXg4VLsc1COlC3sYrF4JFlHA1DwMFYp9VG5IjyMl2syEv0vPxzy5N7FOK3sp1KqOiwxB4bO6EmK1e7QEHgJunga8jvplfQ9pmy0qKHog38hag0OPgpbEFdEYI3bP" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": true, + "performance-data": "e6", + "timestamp": "2021-02-16T00:28:00Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "11OTnWPIlH8hlNynLy7xwK19Z7DtpXNiYt3dhSODAWUVBkamSiUpUNyLU3eb01tQmx4EpS9RG3E9fPw7ZioT5PxRSLVTFoB1NFx5pGWXBB7QivYhNe2" + } + ], + "number-of-current-performance-sets": -93 + } + }, + "address": [ + "dBPM7d5UURJJOLJFhQWdCcw31rU3tzky2ac9fhWa8FLPiumzkbNXnbSoDNkYeExhGJqW1m61TJIcd5DqgqfvC7U7M651KCareAf7Pd8AWRE9Oir4AGz4Glbsjhl4LnnZYC6FP77LQMME4eAEM1JsnUNG30CHoRyetxTaE0NmMs" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "31FDEnz1ZS5uJzEZ2t5z3uKtu7rsndVq6B3KYuDQmBk6aQXdbVE6hgALg15D603ctZXktsaI3mO6cDjnyXtP53slXpY3q2gT155mpf4lBKrFgK2OzowEjQ0ggQcySsjLpp8OE418PsN54ILD69ap02y8SKGD4Rgtgo9NlbVaDA7IaKdgUfyM", + "value": "6MUIkxMbN7s487pbUrPuqpFauN4CdILbuFTO4xSKEcGFj5QdoxzOW6YjUVVZvybSeWyauqU0CAFVxw0N3AtSyk3k7QkCovmujVFNdrGQ2lDrJw7F6ApwUkR1abwyyS3RNAx11dJVqefaKmHIW6fJi6Ks9g0H1VyOv5HpaqkBFzDhVk0KiftAd52meU3fIt35rDuB3P4AgHS41K" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "5fz3KNgai4UGgfLcG6h7EkqK0DC", + "value": "vo8BDHEguVqERkd0sYc0Wt7sNx4N2HPy5X1AwFQ0s9xklCkNswNo0UJFjNtemaEr7F2DkKvNTUZ7wbUYHIfzuY7GDAU0CyjJddepYBcJobQUmDLWd0nHQuflW9dyzx9MKf4ARgc7kU1ypEuCwKce6rA3BNt2cDPPSThB1lIlgCUFggaNSm1ZNt2g9vjd002LLkeEFP0N" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "local-id": "kGE0IZLJvhtmj8NabzYGT6s5R5wSnYjzFQznPkYctkzMsePDNNcyTEECB2nY0ypxoZV6bLiF5JjqY0VDO7czLI4mKrcCZCagtXeEAo", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "bZ9LceFysstH2WD7fguRbbVErDovw8bI7klbzTB1d4B7Se68uARxDEb59zsGHwgGQtJhecbr8My10F1m7STLoXIyw2e6ymMpPoG4ARnJvWCntDBAnndLkVjQYpOoLtFtRepr5M2tA", + "value": "QV9sowPBa1plJfLyDo1jJSx8buN6XnKGbU0ziHasIzOrOrRkPSDzC2zGwmMmCwUNiUmBto33YJuEaeY06trBvShUfV8Jj2wCOKdh88k6SGD2UBUT5dus6DmdyuWRoklc4ql4zx3jeGd090T" + } + ], + "transfer-capacity-pac": "GvZqaVg6DfE6nOqlxzOZgVvrAYBeGkzeIywSlNQYUu49jmuIWaz464nG2YUAimH0UdKgSs6FX3O8pjIdthhrdE0guUINgpF3vibnKh2zkJzC2hPny7HMDHU8BuNKUkFhuQw77rGka8W4pDjQC0ugHogbSVVEfsNCikJhLhtVppZP3aFxb1NSpV39QQGYatAsFbCqs5dSn4zi", + "external-managed-id": { + "manager-identifier": "PSvDUj8Ob8aTBF7ROrYtLjZh8TRzCvxro25ad5Zod1iOGhxuJwPmHOvPAmgcKNv0HAaVF1bT2tzJL75mvVAcB5T3k9fWOLWndYaL0mwUHXvkWtyrg8vR6oVip2edF2tT0Dw", + "external-managed-uuid": "R2FzZaLWDkfTkLDq1qA" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "veNJ8EotGxC3QQWIKHl4VZCCRh3vuviZB5AJBZd9wHcep0OaH96v0A7SS3fmqxe1uGD5FQe3pj9PjXZ1Y5oZynJqqYEIwKK0r" + ] + }, + { + "uuid": "5b48f21f-b116-0d09-420b-8f44b41ccae3", + "embedded-clock": [ + { + "local-id": "KsE5zbNVuCa4xNkVz8TCXm4hMXRKCtbeVHbnKYi6AsaZ8vMzvxbkLfBx4k9yNkMATPXDNgJfAT6AgSaDhdX2lqzpKIYxUC8Ns5i7dTfGNlgV6iznwwqJXR8zsY7mt72VccUi61YLf6Glp7ANw0wlKwUcv1qY8sLdFxvLzloOr41Q4BDAu1VeyPi3JITR3wWI3jluEJa6FbOJNkj9lenLWxGFfzoiXlS1wdnbOy9uJP5o1pxnvM", + "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "encapsulated-casc": [ + "KF1zLQQazdQYZIkSTLZo8vZgf0uVhtA11ttEbjOCowAn7Mf0x6pxBgFIg9Dxv5roqU2B5QdtfFQmjXmIVDgoUV6aXBAkyTIYFK" + ], + "name": [ + { + "value-name": "rjHYz8nJ6ACZ6Hm9wUaSw0XU1ekgC6hVqYUR69scJ43PEqR2c1UA1JnVQHbsNsf5i9Opiht1dxJRPsT1tFCnpZi7ytrdOGb6QZn08JUm8vdXXZYqEsNVj52JrtX7a85S7lS84Muc9z16yZxdkc0va3fto4AycxibS3jOPFSZfTXNLmS5zTsBWz4cDwLH3VLOY4CGCnxRguw1RpY", + "value": "ajT6SXaolV5oJQ4HNznpWU8chE6834q5nj388ewt1BJKkOs7nHobConT2tT" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "hL3k0UX9ZxFm8ER8VANw0c7m5A4rQqx73Aj3n8cexRAGnsOaUtGUFF9C753XvsWy3ftifFwNoZtLj9NdCt0909M7eH4B201X7ufe1D1pum2NvPT7aT9aUVh0udBo5ulcYsqZ6kgAGigc79b9UkjO7AOuNhSSDeWtGekEyA7fSnjRom0iHbYGLEayV3iq9eTHsde1Nl8xAjgYF88ej6V4K5ux0EX1SIBcVP5A257Cofs4nsiyq5u2bQz3u", + "value": "5e6yqTnwtpBsT0HdWWF6u5cQ7fGyiaOfoMNGx2c0jGk4y1hmPOsbLw1KLHaWJY3ZCRF9LK15ql9Yejc37EeLbfvOOGKxwOo1x42iO4f6hhWwA8rzMGkPNIECgg1M4qFtmIM2ET8Va4jCcLcQjoy664Amku1hUGK8goaUiiIke1XqE18XhG4oCwCX0D6McQUkf47pePBsIqKfrTc" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "label": [ + { + "value-name": "qb3Nu7VulrXmV", + "value": "7fereB8uMCS2nMngKNrGBNNo90I6mDxlKLMQfNcTp4VFQjVt6f9zUOQ4Oy223zgFd2vsHHlZD9ElkrGiyPKtvApb0reVTuA6oXq6wDX1MBm623htK1W8tljtExoxTQviNVgbr5cdGycAtl36mReP4xaJ5q8Qgw0Vjg6KlaYTI2m4npaB9gidNsOKSXB0tBVMKTpX3fRDhdHwuJ7DZhJNJxpBm0BHuom" + } + ], + "encapsulated-fc": [ + { + "uuid": "b2a34af6-ab8a-4945-88a5-519457cd5fe9", + "service-priority": "-9223372036854775808", + "supporting-pc": "ZZLvas94HPX1iKqfIsR3txRjGYtJMwhEwU9GniC4ZAX9cfpUHgP3GGmexQXbe7PC1Rbg1Nc1n12rhre", + "layer-protocol-name": "core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_OTU_AND_ODU", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "b0SflKZ4WGmt668UPsvyjY395aOtlrZwkRLFuCJqb5Lh4T3LezjxpnGuxmXTGOhSyVx2x8kA56R1RNN5e6uDl20LhPwXENH4A6Y0eaAbgkd070XdYkIcmIXDyls4010B7YBl8bxhvKhuC6HsqqEN0ti", + "value": "ODuPEuqMs1Zt4wKA8T4CZM5q4B5" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "fM9etR5WDApZOKDd9Pl684hqMXmnzzNGeWVHFSvasM18owlxlHDlDNLhCZFcrkSx8F6FpBPKfISDee2rNGMqlp", + "value": "Xgf1HrU6zrc6JNNtUvlxBrA2e" + } + ], + "fc-route": "BX5SWgt4jGXMpJ7JXsee0XfRlTeLz0CbPz3DQoI94xWm8V55fjkf9z6mkdZT5C4M3ZpTfZ3coRywEvCTOO1PfZ3zc3shxp3AgluwkpIJ887MDJxjpy1Ey4dC7yMEXHf52JBf0bY8j5MOHj86K9DadQMlgyRdg6jaHMpHYfH9ltYUFYSp7vzcelpuMhAUfL4XxuwnJ6pWzfI65Bv4Y4g4iGr4P1Q4EUT3girSoIGPXpW20j6QoeVyMm", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": [ + "0W53kNuMNpy0T8PzE2agx7WpYLyvjCnjyseLfIx285VT5CkKEu04tOtjA1OLEb44EjPLTmG1k" + ], + "local-id": "07XGqSYfn1tevBsy5oafvRsLXFabc9Zc8OKyGAFWB8aYBCpGSzVnif08U2jYbi2j7NJFfoBRwDH776F0xAfQH8Yta9rmjmxi1hYgFr745P34NJ4lbc3TkTeu2GId28w3pmbWFj0C0WHFFD0QPVB1OQwIo6OiekdvyosdzkIrgp7N2ZwKV7LBP9c5g0nmcsSKRkPiwxKFORsJQYt", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "pliJqFGOy1OL6Dx7jDBvYFIh6u1ckrfKEpt441Lu2rf05MZohBL8gupfYiraKGUgXflTg6nixujugaSqLwyU0P9Q7A0J9V062dSjb7BICM5SXPaAlAudpv3p6407R05T5X4g5GRHk", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "ol3zT4OYXbGxmi1X7Tn7sQl1CDAEZnkfJnGusmshp1HMjIBquYqWHLPjgpP7F1egpVKJ950z6HdhiOAMF0ImDpxLHeSmgYCFLmoVrgmp" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "eMwKUUqLdV6DdKsVg2Dl1Ng5wDtcuUQAGnct9C6mpcZvWkq5m3qnJGsfbNkFHa7gpjByNHU5MMAA60FkW6zFE1UQG6nf9vvyGYZuyTzkx1Mv1sPXqguWhhEXn25wpA55rWrZH", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "fTXKNhsKzI7wSo2HL4MilffjG3CxKvAZgxC3HWGgwNEgbHYODC6ZRdapgMO19oSqOmlvi1DHGaXJRVymqwd9CnrKafDjwwJkKXH3QcCxmz85nGsN5FWH3fj5vXo1l0d5XU0N6CclclqrTSeQ" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "rhLuS74ecmKgLIcLPVEUGBKLSHjJgDxHVi3Fh8TuuvC7dOS2BoPh0zUK8dloRS5E21jk94GDAaKNYuIrLxADYvn6IIursr5usoOtlm6VwIAm5iNQHgtxLIDliZNKjSeD9V7u95pGOZUTaABRQ4hBE", + "value": "WOMByXuEADrzZBFg9l73ehvP1lLiOh4D5IevFA185tH4Wmk5Hs0NBouCJ7MqoRVlz1I7CKfH5WE1bY6SiYyUm2oYabgq2bEtcmsO6HobE24PS2zb17Xf2l54wluqo8MBnehtWxxszB9kEAnxAkMCFKG452uub8Xyn6TbEiv5Uwpq6MXG6BaEdQIjT4FWdumsA7veq0kcoJCmor3" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_INPUT", + "extension": [ + { + "value-name": "PNfBTenr7FVain14tdZxDjAEassZgLc6zszsyXLFuzPNWIJhVIHrT953CpVSbZQCjq4RfIwJ9doXW76JHNaAX8wrxjbIa2cuk9lrRK20XrPLqVv0JFsGFQ7d1iNcc0Go9TPSDSKtbzetuBt59OLOEK1GVHS7HqwIjdAX5ki8TwCf8Xlh", + "value": "Y5iJZYEGIDf81Xjfp8cJqduXHBXEW6iV" + } + ], + "prot-type": "vkij2TlhFu9lMRUaFj9YztKzBMtTiHzN2R7WKk5hOeCs6pCLIMB97mIJ84uqL36FM5BopGG5Vax1z1E9FfbNBLoCPK2BG08s5KJuihz5rY6TSCUxS5clJAPylK11KalQM4c4dEaxC8qmDcUna6ITzqjUadNUf0C15PXat7HX8ZkLc6", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": "rz8f9UM1u8wTxhAM1O2ZiHDFXyY5Mg3dP3kYX7Rr7ndFwFrputgM2TjRjaW5qSa7VvXTuOcB3hgrXzQjU6XWS9FbjC9BmjIhGx2al7MgoUHduxogvm5nvKrGeA9ALJKsgECtLgJ2bq7xPwNcSSsfvTNJlWc6FWyVA3gejZgmhnT6TzaDjCKOv", + "internal-configuration-and-switch-control": "yQtKP0ynN0i3eC2mYbKK9vbk1uWLbkbB2EdRxL7kLpg0TamKmYmvmxHfTw04IbxKIKu7vtr9Kz9EKng6eCtA13PMzHJhLgTl1fsoATxllGR5W73aBoCCrjgSSZ1DgVY92qxDc5YxDHuzGxBhN5Lfo17h11M9WDiY3Pt7Ujwy00ZGpBP5GAkXuj6nkSw8vOZrvsqqEPQEHHd7aU4R", + "label": [ + { + "value-name": "U508WIjHFQvKkRcUYz9orlsP44bsn6PacPa0qtzXb4HvVLpLkq2LLuAIrD2GKRQOz0GRlfOwb", + "value": "TY8bJsBL5f8xXzaZfMJYsaQ8T4fzsqWmoWx0g0DlfLS4c24kHFi9H0as4p1xQPT6LiY1iCmyf6Cs0yMH5WJMWT61i7y0WjZzBXATrOjHUW1VuNusJd6x6dyhkY9998IK6bwxZP6ML7z8U3Av9G37Ttg6kqftyPew0C40r2M5ad5Wgxkh5fpZIFX254owTC2U6YMx1qu3DzZL6b3cqk31R0VPWj" + } + ], + "selected-fc-port": [ + { + "local-id": "c5ZCl28jIkTx9r3l5fKbHo1oWrAWfSbrX2Va4VtMgncpGfCLmePVDQbr9LnovyPlBCvxyZkOew5UDIxZWeMr5YKeB0vZyck1PPzfGL3U90GMA6DxkpQpfBwJB1I1d2VUJm9i744g5L2FRx4bONt4oZNRSnSXhFSS11a8Yfg30aAJHxUwkfsA67jYu3ODJyvKrGLpN1kFcNoLka9wiBYoAhfWk3z3B5O2Drkis", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "XwrdiDfj1xVZWngbkt6TwzQctlDNDYkAuDFEhVYasLao8irkLp6aYWmsaS7NQrgc5VReQPobsqrsJTNmiTw9H", + "value": "tRLAxtUFFRAwXjddmxEN0fGNBRy8071lZEVoZH3Eyv3vG8J2GfQGuol57TdZ06kRC87BP28oy3L6bm9RBRpXfK3fv8eo7zfJHfdwhdMPgqWrMXbgOA5Vd8aI9p6gQeRxtWVK9Asp0gJEdUM1mSWzSZa1o896m1DHXqsZ0MgS2ZpfLb88VWzOVJPbSZh6SMOHd8G5UXQWWf3AibIe7hU3TB6LsoRkaF2fNAdzx3vmayWkJwyJFkEyWKbo03" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "F0gKWUdkUKs5Bbr7IMG3HaR0YIrzD6gaYoUUj87dKzalLBkloTo53g51QptlnJvd7q0iy7vaGFvj9HExA3uwbrp1QSn5tSjBajTAqhK6O7qXP4mhZQF2i540Pj6j3pMeAFO0Or6DyosnlPxcFcfP9bQZuOap5WDFtkFiLDNbU7zfWYjuayjcJ1b5PdvU90zCk6MXCr9wzADvyWRAv3M64PcM2HG3H8G26kRIMSedkRASGslbvZhzPtdJ2UNKU", + "value": "E0FvBjgHwAr7l7rGaWxrnmNB6PnLz9651LBCXJkljLkEKLcUzKdXY0qWIFH9OFfPjIkgrwBK9OhTzlN1X0QOTgKBVkKBZRiazCq08UDhIMa97PaXQ0LJ8ncVzOorGHB7j28kODBopExotAdbsYMteYoNFN6lmIsFCsZi" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "3ADigdvPDqdZsLNNnbdYQyCpueASfvti6Yse4YVHg8yJMdw1oJZe9tDDH6oWBR6zQzFUpBtxB1gneEoCgfIpIe3qkjeNadfSMUE3n7AZ0Je6fDAvKjNtxILJ1Rw34LWIysLVseMkX1r4w1AgcnBB5mkYeR1auXTUiwIKCu4rnnwTh62tlD5i0hg6098n71hhqZ12mXuBd0vuYpPb2M", + "value": "U4BS4K1rJ2B0ksTnGJJiWBFqz47K6U5TYGLUiMe2HPU19OgQpR8lsND1RKDPEIIugmhz0vtHcnBl3JbsBjF3YaXHVspr37Obl5KmAd3Mtw7w8bZJuwElHt2uOrVRrJ2E" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "fc-route-feeds-fc-port-egress": [ + "kAPPFvbMcp6sMYOFpk8Wi" + ], + "is-internal-port": false, + "role": "4I7D0ipavc5KdzLagBkJAUzITLl5RljNWirWBQ76V4J8vmaMXmnygW8azm7iHj6vBpk4fj32fMaK8co6zMEPAERa0ZkAaq5DPhIXALZPx2sxeQDNC9D5Om7OdrgnSm1zDBw6eoVDq", + "address": [ + "dDsFQE8HqBNhRsWwz9S9tqLWp3TKB8RODcmlQuU8XHhO25dBe5KIvnwNihxThhzUtV8bh2beCtVEy8fF5RfB6DggUN14WsQhgYsxTwEvRz9hzgWE7b75OnlBbex7GnhWeJu770uYrDg0T4ESgMPW12pcgWcWctTi4fh4fL2Goay9f4TvIAjKCBWSp0GBlzLiG2mN" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "2s0xH0zwjGVsKwSX0HECwbquldyNBs5DV5bu5C1oiOI2ltSd2oHzz83UdtzPOEkBBv5GZYX9FF4" + ] + } + ], + "supported-link": [ + "69Ks1GOQ97i2W3" + ], + "label": [ + { + "value-name": "5fvLKZApuS3WT2hYr1qrUu4M8144C99zgEl1vNiZGlOrf5hy7H0T4WF4XJ9rKaT1G6UbTc3rpRTwW25VC5HG1eCQQD9sN2ll8fx2jAlIje779c3L9Cj2IVSyz11eWmA4u7YNzco", + "value": "qvZzHUcQovS7rCxSvy6jNGg9F6W6icQJHQagCnY1SI0bcx3IY21DA9M8gIeyN59mNkDhztaj4angAqQykK3VTP39phIceRzT34buxlOtobKYtsoOcrJ68E7xVHK2zjVufYZMcF8AQSqbkGRpZsn76uEU4oWDzJZOIYtUDBmllMpxkgWjJjqPGWBKd" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "A3TgK8u9Ykc4j2HcLKlExxxNrAeITsytwkB8sY9ialmtfVF0F0x5q4SREYryrRTPbnPDlYVnbaQr5njDgQIyVshrqIRJrLqD0f8d5WAh6qI3F1GVKglxICY1cQKEtb9ti9Go58F3yf758NTSWehEJgxVYirrlsMDCkTzsqDSFKXGpQqlXISGYptOzV7UfTqR5", + "external-managed-uuid": "jxCWh9G6P5X8jMQ3kGsNu2ABOQm6zraSQMO7Nm5vk2DvGly010OnUgQB64zyvJidnZcblhGxcj2SEALxtrMfHCQGGi631o8pnkABt80Fj3qXv3mYu8e3CWJaePdg6lxlxZ" + }, + "fc-port": [ + { + "local-id": "A9zR34lCKI7OzpSm0cwO3NXWf9Sl7LvzU4qP0ErKmryNIi9Iuyoplldsn5NuQa3C6lj6ZLQd4h0Mz2u4ASlV5zfsE2WndRRj5bq4O8iSpawZc03MKgHPPWimR6BWYs73vpZjy93XkzWwrRjb8S1XHbbqhMm77t2CT2Wj3ZgnrdUSW544XXUw05", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "9", + "value": "ihREbtpdhIh9YwA3qk0ngWl5IR5GGfqYo9uzCLFMtOVkknfDH70YWd3E59cDgCtwDY58JCU5qPhLcooTwgJ" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "Y92kAvWBAJq3oyT4d6BjCw6yD5GEPy1Gz3S9yOK0qa4OBXTOVmZyTY6o3EUK4VqDQiMgZo", + "value": "prl52aQIYdHoYFmeA08lXVDALWf1Nvi4Wv9YG0yw5gUVNg9g89B54eyH2NAHiTL7gVXONwkKEeFruOHvPaATh8sbN2TYNE54r2S6q5Q4jvoGb5b08DLpE5Ar8lpN0mRjhCqHz8MSEaqH7tA77dwL" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "uNYrOb44FxAjnxr7al4s2dd6BtR7KBreoiF", + "value": "tB808AjwZCv1PruREHX73H7FiyTyIqC31C41cfp3SU5HdzrR8gZbX6Q7wBFfThiMTeOXu51m06VdFmXNDORsUzAibfpWpAJaOp0iu1EmZsswOpbjd2MZue9FlztK9cNXtN8YGEcx6E3V36681KZ" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "SiR1LFb1Z94iyAqTt4Y8Yw4RveWjIQns96tMMEGDFKNecdZxhXG8lCZQIN9iDoKEv5r9J7MgJrmNElkNbSVouM74zgm5F6B2bUbMTX3CgphUDCHGuv4RhbVJkiORghTsc4e5T" + ], + "is-internal-port": false, + "role": "BfkyT6jWnBf7RXNzMcnG4GEN4LIuxWY13arWhKKweSDXHiwmvT2rAzewcOTBCRCFUVtbG6zMYcJFu81R1WbtnhSz6L2AuFggsBr0H0Mx4odrw6apUlLhDDIBgLbCijTKVcLu5p21N7sjdvJ0QmhlZSW7v0BNjmp6z2BwsvxfCSzHnaH5wZrnJfmefXTzcixLl8hNDG27ytPVvw1Tnk86zucPk5gwgN9BOigjYarxwgk1EdN2xV07i", + "address": [ + "m6cIQwZkOHTWlDsvW2upCCoH010Z6bckag20EUcstXhOAJboLFOf94Xa6P1415o3mq30c7lF4ClwlwVZ4Be5FbfL19PUedXAwStIZOgViBjv06uWHJ1nM90NiIzwVwZjgsU7822iD" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "7idekNF6T6x6c8LZBGmX5XgxRnFpU0mTjz7DmEJgK8eOhZ" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "FBTx7ZkjH6DW3Kd9rPC2fehz7taru1n1C8yJZKUGRqvM2IVmppoxEF6D084u9jnDjWfiy9Zhrm3uWZQmg6LULJyDRu0SGnvZbKaKM11dn5zjWhxcni701xEK1wCHT0z5KJPwKQC7NbiBtQGI0FJ2cfE5L9Fw9eBTXiiz1UyG5QiqyY1zDKtHR7Mugr0pxubmEtVFntekcwLKmMjRoEy7MctUwlc3PnqmIdT5z" + ] + } + ], + "supporting-pc": "hLD2nRGHIWd8VZloMRKQUr5cNNiHSRG1uc4R3CqMrEUmv7D9YnZLO4PuR73BQJDkVz4Z3uDu8pJwxmFvBF8hJYLt5G4OiH8d8c4czzyHZ95ovLTYqUg1STuPAzDS8EX9IUlhtTRk3WIqHuhZox18ivPSWlCXZs6zejRH4AU7wuq6YH5e66eo", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "layer-protocol": [ + { + "local-id": "LJbvTJbfzVOOlA6mEjdOoVVim5SxXTDBCO6ophvQ4jEqTDMpWZdcM1v06nxV82wLQC18LwYQPv8A8U04L59x6Ep41W09ZwMH1NPMbGu0bCtbol79igyhUXlVUlXLSBsLpapAIUtLoOWN13OjknAecW269RJTs4EJ64cOQFz6lvLeqAxKX0Z1OT0XKJJ4NnOTj0z1x80SvL", + "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": 32275, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT" + ], + "number-of-available-traffic-classes": 19, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_PROVIDER_NETWORK_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": false, + "number-of-available-priorities": -41 + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2022-01-04T16:36:25Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + 116 + ], + "tx-level-cur": -107, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_FAILED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI", + "pmd-is-up": false, + "link-is-up": true + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -1796535863 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": -112, + "isolation-is-avail": false, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + 1999491012 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "qutF3zzzuqI9H3uuRu05Ga4BT4shD3uVqXAto12SkL1TOnnyJgvqqs1bwmt2hXXHMq32r5UDINxp2MPL2cbkE5w3rZ5AOUaskduEighTVGaXtZIvbUQIReDadAK1uUlH7PdiXmbS3lPwcpTfbBX2Psc22XVpJ86RPb1Mx4wApdYtDSIOlGJb0V53KTsm1q5Rt6v0a2tr7rU", + "speed": "bCrxa2IbPF6syyOsQTbjRGb1AEkA6echIDOTxoWn42P", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": false, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE", + "temperature-low-threshold": -98, + "maintenance-timer-range": "YnXdjZ2OrxCBNC42aB2iEmTNUG5aYccOs91L1VzskcW7OS1Yl38ZpTMbrSmqWq6oz8asVBVgNJntBpjXkkWC5BNxt1Xpr3G13QlZr877RustLEi6YeA3PnsappsQl8JgQ5f95mgXJBqufIs5OU0watyzK0hX0TeQQl0VI8SjJaFQK0VrUOX49nvLoNJoyXfgi73SfW3ZYJPBJD", + "supported-alarm-list": [ + "DjRIsed5uSOTiD0yW7CGmqKdgt3R4yLHRuhbJvg5fXQyAQYoP" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XBI_300_PIN", + "rxlevel-low-threshold": -45, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": 307880712, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": false, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": true, + "temperature-high-threshold": -108, + "admin-shut-down-is-avail": false, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1" + }, + "wire-interface-current-problems": { + "number-of-current-problems": 107, + "current-problem-list": [ + { + "sequence-number": 23742, + "timestamp": "2020-02-27T08:12:04Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR", + "problem-name": "0KatlZRInNFJ5F0tnGEZ4SHAvOL7cES5g3yBUibh5QS3vLwSraJvUqXq7JpbfhgvcP67ZhgW79ZvUwfdyRAt9pLg8asfrIKEpQDo" + } + ], + "time-of-latest-change": "2021-10-04T03:13:10Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -5465, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-11-02T14:01:30Z", + "performance-data": { + "es": 653779412, + "ses": -1446488605, + "low-power-idle-receiver-ms": -2019208259, + "low-power-idle-transmitter-ms": -1406518787, + "symbol-error-during-carrier": 801122460 + }, + "history-data-id": "wglVFnmBcApGACLJpWd88nwX2h50Rr2gHnbmCyXO0evBRgcg4podFU2Hb8HVzKbgZevCMkq", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-11-14T15:46:06Z" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "performance-data": { + "es": 114933596, + "ses": 1014168012, + "low-power-idle-receiver-ms": 1355594258, + "low-power-idle-transmitter-ms": -1897634069, + "symbol-error-during-carrier": 544920262 + }, + "timestamp": "2020-11-19T13:29:09Z", + "scanner-id": "nSTxc1QVLmcuZBtTOkNSOCtinCKJeeutZf0bgIY25bo4EJPk4DcK7F2uhF5nTzQKHIOXrMRoP7ktRaNVNSFUpAgHfmW0NNLunrkOdb43jpo2z4XeWu0d4gUjuJci", + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 69 + }, + "wire-interface-configuration": { + "auto-signal-ordering-is-on": false, + "number-of-bip-errors-per-ses": -32257, + "short-reach-mode-is-on": false, + "transceiver-is-on-list": [ + true + ], + "fixed-signal-ordering-kind": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X", + "interface-is-on": true, + "performance-monitoring-is-on": false, + "remote-wire-interface-name": "q1bZbc1fWZSsE5tBu4V1DvvbuzjkUgDcaOblS4sOVk9AqC3UyZVcuifQRy3EGGQQmU36YwUMI3m0x", + "restart-pmd-negotiation-is-on": true, + "maintenance-timer": -2001328733, + "problem-kind-severity-list": [ + { + "problem-kind-name": "45miZh", + "problem-kind-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR" + } + ], + "auto-pmd-negotiation-is-on": false, + "eee-is-on": true, + "loop-back-kind-on": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL", + "rx-sync-preference": "wire-interface-2-0:RX_SYNC_PREFERENCE_TYPE_MANUAL_SLAVE", + "interface-name": "4SHh12cS6CwNl05oBsFHzuxZ4gYt", + "unidirectional-operation-is-on": true, + "isolation-is-on": true, + "wavelength-list": [ + -697052725 + ] + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION" + ], + "maintenance-timer-range": "c09S45z0MBMezRhHPaJh2FFZkJDqbeGf6Q8aNz3rbHGKqXrf72o2I3T2EwkID1XJJXUoxPQIwokWlE3kGrmgm7aSEvshoi0ZfMfEBXeZlzVy5YTLh72vf4oLrQ2P8UGgzOU2L92ZAXpFOaq", + "supported-alarm-list": [ + "ktphJaIz4qAY6QpUCsyLupdjOSZZbX9viyM1AnsEN2uTK", + "Gfe6SIv61jY1a9Qjx0Rb1jytXlok706F7kL0U86Vj4Ou6wNDwxGpQfTGs90z1Y69aR94R7Rb3yx9WkEtRlSIsDgUE8my6sH8cI43PV6SlDUiYqDHDnh5Tx0xFe5DGELSePW3D2OYyA8o0L5E1fBUEtjkHhPoVBgai45VZLMxlUNeyKKzZltEPMQo3FMR8VTjRY6QCSfXF235NNwE9ZaQDS6zqTiyG3Jx1QgvAnt7qwc5c" + ], + "statistics-is-avail": true, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR" + ], + "max-queue-depth": 425442602 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "r9Wzv2Hvqe8fMWE0nAVCaZFa5ZMezYKS7ykut1ZT770UVEMj7zN9rscojYCLWfDVNPpgJo1Qn1CbyguFI9G9BSxNR2yNh3BWT05Ch6kE0PPyXb5FkLOOEeBn892p4DdXEirVhMrht9HqkM6FpMlVSWi0Xlh1QvZmNq9W4BdxKUYWyWtYAOLtK4tzhLB78suNSDKP6PeIC4Fa000tPMWrIh1RUuY2WkQGQsvOhKxTO4WH4OaLsY5af61", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_VLAN" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_AUTO", + "compressed-header-length": -2934 + } + ], + "support-of-management-frames-without-preamble-is-avail": true, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -1049212927, + "fec-is-avail": false, + "burst-size-max": -13322, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2" + ], + "egress-shaping-is-avail": true, + "information-rate-max": 726728592, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": 79, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_24" + ], + "burst-size-min": -30798, + "fec-word-size-max": 11919, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 118, + "current-problem-list": [ + { + "sequence-number": 8275, + "problem-name": "9WMYCUtA8FoD61zQDFUznUewu9kS8kvhg9fS3Il3fJHdK83gOQP3K4z65MZe6mvevDZzdcutV3GxcCNSsDN4zfaE19KZv8dTL4kYgOj3S0B4CoOWTt0sI2ZJcJAzROsuKMt1tM4lEFh8W54HqW29Z1K3ClCu1XYLBjE4YJhugyD4vzMWwO5nPHqj2UNVREzlPdhFWza57N9veNrKBo7i5", + "timestamp": "2020-05-11T08:36:49Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2020-10-12T17:24:25Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 20830, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-12-01T08:10:47Z", + "suspect-interval-flag": true, + "history-data-id": "7iP3AxOe9fedE1lpXglcyWai9AwFXF4XXMSxbGDlNKyjLTJA9WMzSOR1gnz62v3RhNhtlUO0Eekh7V", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "max-queue-length": -2001252961, + "avg-queue-length": -816551495 + } + ], + "fec-uncorrectable-blocks": 609402308, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -973376483, + "tx-ethernet-bytes-max-s": 646641560, + "time-period": 1077506218 + } + } + ], + "time-of-latest-change": "2020-02-09T20:01:35Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-08-16T06:39:06Z", + "scanner-id": "B6a2QMiQWgfq8zIVvnaTSCj3Sqfex7B0dLVVpdLelTEtkehPCjBuVUpNdFTKEmCJ0xEpDivY3aknot50MGnzAMeNj8pXu2yur5M4nh3ijfFIIKAuiX3TK9y3hQTEKr83wM8L43", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "max-queue-length": -1498175555, + "avg-queue-length": -280358843 + } + ], + "fec-uncorrectable-blocks": -114018907, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 652360460, + "tx-ethernet-bytes-max-s": 770937566, + "time-period": -781714169 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 75 + }, + "ethernet-container-status": { + "timestamp": "2020-04-01T07:39:30Z", + "last-10-sec-data-output-rate": -690802185, + "bundling-is-up": false, + "total-bytes-output": "1784684497162793472", + "total-bytes-input": "4679581078370020352", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 583476172, + "forwarded-bytes-output": "1112322300262188672", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "5996860394913808384", + "remote-site-is-faulty": false + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": -18885, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-06-30T16:41:36Z", + "history-data-id": "jkJfQlsa63U5mw5p7gFjxOPtMTxxXw2gREozZQJ5Tv2818p0g4kNL19xUy4K5Y0OugflYZiSmlSgthgJeApZBqooYk8Vi0", + "performance-data": { + "rx-level-avg": 28, + "es": -708442049, + "unavailability": 2092385676, + "cses": 564397950, + "ses": -1654112775, + "rx-level-min": 48, + "time-period": 1675618074, + "rx-level-max": -63 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": -10081, + "time-of-latest-change": "2020-01-13T07:33:37Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -5568, + "problem-name": "txJj66fKb9CNPvnq4uOUioTQoHQ9ioXLWzXUx4FId9n2ECtB69voqg6OQ", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_CRITICAL", + "timestamp": "2020-12-05T04:39:07Z" + } + ], + "number-of-current-problems": -61, + "time-of-latest-change": "2021-09-19T23:18:01Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "gAWy2bOo4a0kD6c5YasPYScSev11JCrZ5nxZylnCvnO0l06k2y11idTxANyjpZameHmM3JhqZ5rcYpw0Xp1fvNE5AdhR4rej1sXW36e24Ff24DUTVW1qBFn3KwMPQ00RkPNoW1q0zxUv3OhYCig5XD8I2VpSNhJ06oo2hOUQeOehvv7ZNn5C05c2SBMySvyRLWT3CGTQmZZRu6J9lOMe", + "tdm-segment-size": 1819405282, + "max-number-of-segments-reservable": -32 + } + ], + "performance-monitoring-is-avail": true, + "supported-alarm-list": [ + "EsVcciK34GP7inS1JS0teZcokS2yDSHhcutpM5kQL1XWgIP0sHlGGp4ThYjURS43mpk9vxR8yHWPpLHRt2p1jmMAk6mbQi7dI" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": true, + "timestamp": "2020-07-03T13:36:06Z", + "performance-data": { + "rx-level-avg": 45, + "es": -1304161967, + "unavailability": 1664643930, + "cses": -1506779181, + "ses": -1354683665, + "rx-level-min": -92, + "time-period": -2081306983, + "rx-level-max": -127 + }, + "scanner-id": "gQipdyPmEwcAtcE8XFmGAZl2cdDM8KYotgOGOv2s16Unizvg6KOyB1AOe5AfPrDaHjJoPDIIKD5U4t225QAGR2mY7PdOgIZX2IdJdWjXrpSnKUpPDZnm1Kc8zpOH8Nw2nKDBGWqZdamXXLEsK2OLE1L5izMifiku2XXAUgz7qNXfyBHavwN9pyeH0007jctd2rGOH7NZVKfteWwJkjTJK7jK0bJbf", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -127 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "PJ04tsa8Y0l41eoEaraF8HyWUXQlwRges8iNAkVql8uemKTw434cCC0wrRKQA04U0ezsymKLu70QRLeVOaZiM0G6JqObiSXiYwCoKnaeu2WdN29td0LZSrXtSLE2vtdlRPKBcMPGODUBGV4TVPKG8A9SdGVJ98W1XGu2kcA8PmJv9Fg5m1DvBMfOsapuaev0UZ273ufTRZg0wxXTqAoTfDzHGZ3I5yIZqC6t7eeQ5vIBUyuk0KdfgMPWDSw", + "value": "jfAJJy4IEbqJG9lAHHMHsRXAvEo1wUJP1bqLCntgyUSeV5GuMkb6b0GGE4H3ZjS0mbD" + } + ], + "configured-client-capacity": "OZHiPynp1Sd3PN3w3VmOxOfBdhuDUvJAujSbJ7BCZOxHtA5worlVgsolJLYvgA5LLPWuWp6O6Dnz6s6uTjh1DFmnidKzFQcqx0MuqSawnx5lZ3PKmYE0wSfO5ZnCHz27AOt0yDoO2t11pRDLH9Dd2K2ZChubRwijdLbDgzjiUlbj4HXLQsZK5TCHa6K1u3czGn5POo7JJjUN0RrIcilhbXY", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 1917633442, + "last-10-sec-data-output-rate": 1818245174, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -2081465647, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "4TrV4BHrRQKVpbsJcTZER0riKyJoT6qXZJK3crnVi7QHabinW9TN9kXLKy9vEskD34zgoWbGVUfX5pc1q5GAhvd23npHHCcKGL04z4CmYJk38wWzuu1LZeF2t5BazNV7zN40RGnPqzKq5yZzUSdTZSNsPgvo4iwv5Av", + "fixed-ip-v-4-address-prefix-length": -126, + "fixed-default-gateway-ip-v-4-address": "KwqjhRhHIICtVnsG3MvjhMfraCpC0eKKK34TUdtuV5XRkhpn4UzdyGFAj4cjaP3MSZyE41006YJi78ybU7plN4VY08h2PdOH4md9n" + } + ], + "broadcast-packets-output": 1943182120, + "dropped-packets-input": 1044380356, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "dropped-packets-output": 154968890, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "l3SwbS4eM3D7QzVHz3YBK3ij8EwhUBq7xaDI2HWGKsGt1tato0484mrcTXtNqLMXVqxPZmnKOV5Ho7aM77U3tdfe2ATtlGi86QXXcdzS0EzpLK3LRQOc3Wj6ocrKSJSQzIODNfnNUX4xz8aiYRm1NFZ3SiNC2ylt817VgmAajFAK", + "neighbor-ip-v-4-address-list": "K2DBhwgWwkGOZjIpEcxFbkVxVYJsql7agKExgMlEY2lYd3nJ7Nga73IU1jerEluU50jmMF0LHdBUhQvoDLzDO9pQkw9YRvLXv4baJ3Niho4q6zGCk771gwRs2SjMg4BL0EVCHAUQYR8XiPzDWGE54nxZ7QLn", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC" + } + ], + "timestamp": "2021-03-23T08:18:25Z", + "forwarded-data-volume-output": -47147369, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": 1046098094, + "last-10-sec-packet-output-rate": 1884637066, + "vpn-binding-is-up": false, + "multicast-packets-output": -878587875, + "broadcast-packets-input": -1748454769, + "last-10-sec-data-input-rate": 1452083110, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": -1231248733, + "data-volume-input": 501014424, + "data-volume-output": 1509789850, + "fragmented-packets-input": -612315201, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 1824798992 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2021-10-17T11:40:29Z", + "number-of-current-problems": 93, + "current-problem-list": [ + { + "sequence-number": 4493, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "YjeR66Fnx4rHcl0oq728blmcBPTQqiQgBW7A2EPsJ81Vu1bU15V4rhhU7aLpstFVqEnkidETlGGHzKusPpx8yO3FQOWaht5z7tUiyy3T6KtGmX0bexkMdnk33gdcKbMJwG146XPdzaLV7L6djq0wFksIsxV4IHO6fHalESqd2b02P7f0pfw5rQFUosY61E5gmfuSZUY2YY4N5bNnjbsK2Zwisngt1lKfB60s0YuQWqv", + "timestamp": "2021-09-10T23:09:58Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -29361, + "statistics-is-avail": false, + "supported-alarm-list": [ + "Q21ZCxRsTMG1i5qPb6ZCQqUmXTxciTA0WCZq1ISNnzOxweeHcdb3EYptROF2I8UEKM4DuPqJo6gUcvupIxsevJAfyfhgn3MZPIDcx3VN2cAeH4DhB5o", + "PYef5nntq9kgJXs9TfWVrw10sFaWCyVjo1ytgVOGW9OGY8PRoDEH2GImlSiXi59yYHTeDINrJt7HCOrSk5zmD9IQ1TGbYPBPwv315ItOcsnO9GytE7Hhhh" + ], + "information-rate-min": 2099120200, + "maximum-number-of-ip-v-4-addresses": -13342, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "CVkOZl4jlyP04aOQfWFs3ljDxqEYR20lPk1OF50SDPSH0Hp7v5zyiK4P2AFTCx6kK78hc8aQY2pQBHX7EpxW1BD43jPyIWSs30Kg1UYROfHqWwxAN4wPy2LtlA13wToAM8IFUGwIV50Ktxk9uJY2LBnYbpTAah2OhKtbiRM5WMPic2rGLhAwSXm3efvpxx5GhzSziwx7imp", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": true, + "information-rate-max": 2076131352, + "burst-size-min": 5966, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": -6385, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": 4761, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_NOT_TERMINATED", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -1988165515, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_LOOP_DETECTED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-04-04T02:00:15Z", + "multicast-frames-input": -1784204875, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -1347644147, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 613311682, + "dropped-frames-output": 1134128180, + "statistics-is-up": true, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "last-10-sec-frame-input-rate": -2044088449, + "errored-frames-input": 1515515530, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "mac-address-cur": "vWV1pw2GrfMUOWOaaglOxsDyCJIz2JjpFfiWLdv4shYh5Er8NEWc6rKA3s9XbteJAxFdK2hcj8thMNpzrdLqwv0", + "broadcast-frames-output": -1576868145, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -115676255, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 1557360556, + "dropped-frames-input": -1914431265 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3" + ], + "admin-shut-down-is-avail": true, + "maximum-frame-size-min": -15125, + "loop-detection-is-avail": true, + "performance-monitoring-is-avail": false, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "YK12JVXOohA2u39688SgFkO6T9ifUyOLaPFUCuASL2Ug64m647mBrbHdcRs6q8JAQpmsLPdxR7FP3TVZ0iAktaxF", + "supported-alarm-list": [ + "DjZnMPE0apPnOzmloifkh7uSrXUQuNH77HmLoSLqatNY22cikrCBq6lSVfIh3ip2RDNfwqGGTlwVnI6H1IbsHwcuEUMz43BVGg34", + "B" + ], + "hardware-mac-address": "G8JWdoIf5TnFGOhJ5gYsSCMbhlYpDURb2t77RPmPBCm9qDTnLJPwduHvPxUlrEwl7wsQdHxGbTQBoBRacyGp2fMKMz5e5tzcZUUdBsTMlBfK4YM", + "maximum-frame-size-max": -20038, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -25641, + "time-of-latest-change": "2021-06-10T23:03:30Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-08-18T09:06:27Z", + "performance-data": { + "mac-pause-frames-ingress": -1876609201, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 546188378, + "mac-pause-frames-egress": -1160013303, + "mac-control-frames-egress": -1178744009, + "oversized-frames-ingress": -309165135, + "undersized-frames-ingress": 904557514, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1827717174, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "y6z1OXjkyxWI0fpnW1aMweq9VcyDEu35tu6hjiBJPpsPEJ4sK77gdpq0BYE8kz5N3b4ntx6iWq0AaWVU323hrlhUbN2vm7bqbfFENDPB4H46DZSz1VQk8ZejN9P980rj7YQMCxgyekwJjoicc0ok", + "suspect-interval-flag": false + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-03-12T01:55:11Z", + "current-problem-list": [ + { + "sequence-number": 28050, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR", + "problem-name": "rQxWRZETnGg0al2kvOxON3o7ACewpExQv4FeVbZjRfb2s6ePULDHG1Ogv2ENzbvW8223e1e58iZAo6paR2SyWyOjtl62", + "timestamp": "2020-11-21T17:16:24Z" + } + ], + "number-of-current-problems": -12 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -98, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-05-26T13:42:38Z", + "performance-data": { + "mac-pause-frames-ingress": 860462438, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 361918838, + "mac-pause-frames-egress": -1764542591, + "mac-control-frames-egress": 1374994490, + "oversized-frames-ingress": -2097395007, + "undersized-frames-ingress": -594763935, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1928365723, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "6SGvmw11olL9Ut2CbvBQnKn2Dsu4egJc9pHvWJocWamQDolGUWp9yM3b7y7lOQxX87l4QJ8ELunhLIXxweG41K78i6l6PKWXR9TzS1ewoBN1bCyHR6DSQCS0IdZpXNeHW7gO1uch5Zi8CIPlOk5FWXxx2wWRb3y7aPO3b0c90uhu4ZPTjMq8JXFDmtuxwVFzCtuNlHOl36H8Xo1gargLoVoChLaFyH6a2BPniEJlC" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2021-01-01T02:53:27Z", + "performance-data": { + "cses": -317690701, + "es": 865398786, + "rx-level-max": 65, + "ses": -671935237, + "rx-level-min": -90, + "rx-level-avg": 98, + "time-period": 2082510828, + "unavailability": -45398553 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "qXkKzGfdXiyxDzNIkZyl0Z8pGsP4LCJ4zVO8C3drdMQQdDyxuYKmXLMwdtsQ5cUw7IEBESURwCIJg89K7T7WwLkJ6Ns3RmzQ55kBPeslR25Z36B2RAQodbZbQreHONxLTReAYyWHBTywZ9yICg6PjY19p7Q5VgIG7W8Xn4EYP4mGeMpI2npmlivDqeAdujLt7TjuYPkFUym0kDIn07BeqYRQcr3yCGUCzdYp2b5OJjO4WwjOEU24" + } + ], + "number-of-current-performance-sets": -114 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-02-01T19:53:18Z", + "performance-data": { + "cses": -729789617, + "es": 776470382, + "rx-level-max": 73, + "ses": -216456957, + "rx-level-min": -111, + "rx-level-avg": -5, + "time-period": 1615062360, + "unavailability": 815471274 + }, + "history-data-id": "maehlb54uU0iijYW5TSQwwFB52bkce9ygnHBqFyUrq4JCUyHNipkP4NM7Q7b5gJlvjPVYfHpFD0hxyRdRgxylckk3jv0z6l4p2RfhyEX3F6B5POW6dmjpzvkS0kkYGggI8v0y2PCzNdEDTtB6PMnghI992t7IJnjJTbiVSMmxZ02KtDQbpdjyVsHQNPqpcJ0XMiKE46cV7exsKnv1tPAg9h6P6xeb8e0VpLrl", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2022-02-05T16:22:39Z", + "number-of-historical-performance-sets": -30176 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -31434, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "Zrf3bpDnusCAQpdiUSBIiMT1BU2pUhYTIdOTur8ZMCzC2MMWxfxP1iJvcLM63LRDQFxdYxcKaDe4i0SP7pE1HfwL1iJ4VsHM76ZYw3AGyPCQHuxPM4QljmZkwIgk3Q62OX0kSBSiiu1ZRyOvuEQOSP0hq9BtZzvNoo0gZSy9nz860XButjam1bDrk6MbF9Y3xYboJJx6by43vFxQYA4ZLHiXNW0k6YnvPyMqabodJsg67FXXf1PSB7PgWPB2GY" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -20186, + "problem-name": "Io6ClAcfU13UIj2ZYY66OK54EsncpNOZbUCpnOE9Hz3hT6hJWfILZNHv74IwJowMa0bxGIGnhKw2INMw2mhU9YpgUZFvf3iq3tXB3EYlgmfQaTm4fwYgmgx974En7WN2iCDl8tyoPOeRztWPZM5lUuu2y9hxXWz7yclHxT5nzce1F2QwHVRBimvQnEgcAPk9UxIriFOSRVToPBUwoE0GSvpfaFjCmDLg2l", + "timestamp": "2020-01-18T10:43:55Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2020-08-30T23:08:09Z", + "number-of-current-problems": -51 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "Wlvyanpc3ic1UNCZBZNmbNW4kW44kI2g3xO6N6aQoeJj1laudXRgCFkWthSNZU3UjKS6Q2X68yhaUrE7onn0UzOoQybHk7CEJuCrprpx0HzU86Tpt8hgHYEqwH7RGBnhYZInj8MjHm5Ps", + "value": "6NYg3xezPC9PlPqI7oAHDLHi4oE16YJcLzsH6y8ObhDo7V76czFPcn78LD9RBSWfjgWhP45SeAgdwfjIGYpSdx0Z21IELwL4FHmmDjeRUm4quf026pVjWNaRPLns98xOHLak4g4YD0gZgg1eGWpuCAljdILmQa3pVdKSmGIZGZQOfR2NGsiiUvtZeedWhgm" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "fhDrRcHW1vc06Wb1B3K2MWcZdnO3JJMQSh9JlQxeeK7kyid1mY40U8Z8wNb7oPX8Z6ScPhr3TyfrQtt4r" + ], + "fc-blocks-signal-to-lp": "dxVd3Ap2Q6ZZ5YJaF0BAM1HdJayOtXKHnyUi0blRacQ72rhzjS1", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -102, + "current-problem-list": [ + { + "sequence-number": -2337, + "timestamp": "2020-10-23T00:41:41Z", + "problem-name": "0EZrDt39jfRcliT1Ny6jXzoa72nO5FM5bDxP6sYhHHtUZfNENMQLl6Nk8b0eIEbThIAfaqwK7SE67kDM6lxjrdvzgvFY9RJizcxCCVeKNSIM4dz2yYlZ3Qzjd6hmXTE", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2020-06-04T07:36:33Z" + }, + "air-interface-status": { + "xpd-cur": 47, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": -84, + "mimo-is-up": false, + "tx-level-cur": -40, + "local-end-point-id": "9argCeak3ROtDhciOd2omKRSvPVmY58ZfzfSNq4Q9ScF1gXQu06QKXA8EnmDtuCAVKkA2pibhuQjLG17G7XiXpitNw680BINd3nfsGqB29UNPNUnNJxC1Q5Om4OfFoUSri7LQpfSy1yfPkCCWa6XSbD67rdMP8w9ivM8N1Sd3qtSDXmz7swRv1YDsbh9b", + "rx-level-cur": 89, + "link-is-up": true, + "performance-monitoring-is-up": false, + "xpic-is-up": false, + "remote-end-point-id": "it35BQYu41MpLhm7Qmre5Pf3sz7BJihTMdQf3PBZQgguxvBoRVuOKKK4bRFU1POF2ENXloP4E5ycA1sjWW8yySCKBawuRc2LRPI45x8KvGO5A8hw4hXv1r7uBvYkI05rHGvN5EpAc", + "received-radio-signal-id": { + "numeric-radio-signal-id": 3000, + "alphanumeric-radio-signal-id": "MZwGGmQG5Zc6P1Qg5LoiGKQWBBfJoNn2ELAl7r14q5a76So3DEdbg3ZRFfAV2QPHtqUtRNx9SI8QA" + }, + "auto-freq-select-is-up": false, + "tx-frequency-cur": -916591601, + "rx-frequency-cur": -603051299, + "atpc-is-up": true, + "radio-power-is-up": false, + "snir-cur": -103, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-06-12T03:13:00Z", + "performance-data": { + "snir-max": -40, + "unavailability": 1210726900, + "rx-level-max": 35, + "xpd-max": 8, + "ses": -774128843, + "rf-temp-max": 92, + "tx-level-max": 107, + "es": 471591998, + "tx-level-min": 78, + "tx-level-avg": -67, + "snir-min": -33, + "snir-avg": -92, + "time-period": -77112927, + "cses": 891501252, + "defect-blocks-sum": -28074, + "rx-level-min": 42, + "rx-level-avg": -79, + "rf-temp-min": -95, + "rf-temp-avg": -53, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 73, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": -139106169 + } + ], + "xpd-min": 102, + "xpd-avg": 26 + }, + "suspect-interval-flag": false, + "history-data-id": "FksfKNK7fFDS4dSI3XqALR7oXJQmXQ" + } + ], + "number-of-historical-performance-sets": -24401, + "time-of-latest-change": "2021-11-10T06:39:21Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED", + "rx-frequency-max": 1084101656, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "VasJ1EX7uJr0aYz0DRTF8xu5iguMDBHqM91NFQM2zdUJcuBHlvmtUIq5YMRtoyT2zUH6Cu8bH3NLpokCLGXGgoLe2CHq2ssBeaHQwI2dDHR2XbwJKth0J2fMwWcyhx1vHIm5qgi3X1XMdtnXPEXyG4kcTpCaWDFvm1AE9S", + "ialUxsowwcFIPJzJKtK0TSps4ff0Sdj2oxOVZcjnpZ5eAxXl0AdLkC5oJlhtysvWZkKRo36NUcTnBJItbNevhcM0p3lXvQMn2oerjk66o0tZJ3sUIzpZL3Ra6cZuUDRXT5gdhmbGmExXz0Rhr98ccZeb35FPJwEutUHK9KingQlPQ469d6liXrt0w8I7EmC79bJiW2FcS0UA5SJaZWsW", + "6UpLZL8WANL8lQlqJK2LGGqbUkLytv0shqd83d4D0IDeyYE9IGUgecj8wWzSkzkBRpKUCGxvo3JO1fPCVBS2O4ac0J4kbgO2FqXa6mxnp83jnTVamFc2Jn7C63W9kCcR2111fqgxybQV4D6", + "l", + "VPL3xTzLnyUyicmkSr4KlEHdnS4bc1y8Ij374DSrbNSlR6FBxJeKfVYCFUNSNd0vp3utyf", + "C2xXLDvn3eBNuoDY4yEWlJOJ8J5uak9MeGJ0b6felI2H6xx253YjNEUVoZhykqcy6Vyi2FwfnqOu", + "dWHJAWa2Sv03L73gw76cZH4KbZsa26og2XZDT1xMwxH9xCq3BwgBdcdg4Fq6LGmGEdbp7I3D8KNFf5AQtQrGVxWZce5YUswyxHYEh1apEPWTUxBnf" + ], + "tx-frequency-max": 325195174, + "maintenance-timer-range": "2mlBBMWGP1Le32YfpbshPLcS1jcD8Wf2iADMfrs4s5ao70vxbXG0BSLu3P7bM", + "transmission-mode-list": [ + { + "transmission-mode-name": "uYq85KIGfzt", + "transmission-mode-rank": 142022028, + "supported-as-fixed-configuration": false, + "am-upshift-level": -68, + "tx-power-min": -14, + "am-downshift-level": 108, + "symbol-rate-reduction-factor": 21, + "channel-bandwidth": -1811563265, + "xpic-is-avail": true, + "code-rate": 102, + "tx-power-max": 76, + "rx-threshold": -13464, + "modulation-scheme": -25462 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -1212241451 + ], + "atpc-range": 75, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": -1353692417, + "rx-frequency-min": -1913906819, + "type-of-equipment": "fuZt2IP8vYMWwnp062vuYfgGKMgl0cO7GNBIvqRSgvOEK6EQ01lY8twKfM68YUfxzQf486PgtvUdBq4tjhjrKPc0ta0k4fRvY6rY5g7yM1EfkIBDRUXBC1t5bth7B0Cr7", + "atpc-is-avail": true, + "supported-radio-signal-id-length": -11297 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -93, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2020-01-16T06:43:00Z", + "scanner-id": "E3rYAb0T77v5N59tRcHPkUWOXWPgTMBpHUnh5f24fx22Dbvmn53zRRgOFX5qJyQrkdA", + "performance-data": { + "snir-max": -73, + "unavailability": 883624188, + "rx-level-max": 65, + "xpd-max": 59, + "ses": 1912048968, + "rf-temp-max": -97, + "tx-level-max": -122, + "es": 1424202278, + "tx-level-min": -20, + "tx-level-avg": -26, + "snir-min": 89, + "snir-avg": 100, + "time-period": -698777987, + "cses": 1837283434, + "defect-blocks-sum": 29719, + "rx-level-min": -52, + "rx-level-avg": 19, + "rf-temp-min": 58, + "rf-temp-avg": -73, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -90, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": 2069235736 + } + ], + "xpd-min": 28, + "xpd-avg": -85 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "mYWIw", + "value": "zcwpTDgVrOfJ616r0kGe9PmnTIdIqJfZVLoGoxuPlJqkDxLvJjJK067UGkC73R6RunxSM1AZDSb8hXD18fD9dLVTXx01gZKKe9uS34RyP3G6SbZSqD1DgOpddh6t8I5mSA6NwYld1TkL4bDvGx0Wlp2zH0" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -24167, + "time-of-latest-change": "2021-03-23T18:56:02Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-06-29T19:46:45Z", + "suspect-interval-flag": false, + "history-data-id": "4lk1l2aSTbow4yq945GLqQO6JRGohb6lwqmJkoBeAZCEp3Nm8l7y3NxMF52Wg99ErnoMLRSdJuR0xwmGJl6M9DzGJtuRCvw4SMQ", + "performance-data": "wIt58Q9wZ1EL0a25ENxOki3GT3IMx" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": -18066, + "problem-name": "E4VpACIi2WwB61rcpMdkBvzEZfPglHfRL3gdFZvIN1bL2uYj83EKy5gxk5FxMNppQFCnw0Xc18XWDVfLRLnpRDP3Bm", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MINOR", + "timestamp": "2020-12-24T08:34:17Z" + } + ], + "time-of-latest-change": "2020-11-28T04:25:12Z", + "number-of-current-problems": 92 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": false + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "mWynhfXxp7w65Vk83q9QHMi3vN4epKhDyH1PXQfePLkVGw3BW4sEQCzehDszfBcGi5vfWKlDnFy3bux0qZw9t5nCAPbHqgnAlLQ9v3NTJdOUzlM0ci9xfwaPddpvtM5PxNYVRDGARmmqA9iMjrczPmo2zNx3sDKRiAE9ek", + "tdm-container-size": 103452110 + } + ], + "supported-alarm-list": [ + "cctdmLjlzvhma1AgYU6loQrU45pdZSG3W1haMAve5EA", + "G2nwXtRdci78fwm6gUa4VreA1BGZ886OaucZX3c9dkitIwzRqJVd22FWDlVLt1rwnDvlyAmMMwfu2Gdsq1yk3dgyz3cU5vis1OFzgUd2qsol1CNrDdLyrUYSXaM2y5nzLU0TOeV7GbsHN70ilEIMyHEnJiihfFQSrRL85yfDKHdpO5I1JiN9ZjxJuP0BmJmFs7Npy22aB7zid9jOsZQjaf2E4V8iwuXYtDn1Fh3hpDzuEKi6J0" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "n9ZGNi7ZRPd8RFNhAfMkZ4UDe0QP5pNlyE1lX0dOPqOz5CQFJCRIyEmME4uKt951OYeLYjrGKg7HKXftr6cZKqEhu81XhYQ5OWIEg2cSijz2gGnzNrrpR5Gd5z2mpKk5H2KP4Wzeg08oHwYmXhLHmkUrLPF3zZ88UKXYzo5Pp556BVsrc50qhMR3BxY3o6biJ19ip6ZOb4UNSe64kYnBKeweDuh2t" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "performance-data": "7W948355ZAT6dCSB1B6IEH57X6ZuQpDX", + "timestamp": "2020-09-11T03:41:02Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "YaHy3FMxpfr0d9xN6EK5w6VVJK0oDd6unF2jlGQCNhD1j2OpGqm4w9Z7TZwpcCLAaFTnmBZ1T" + } + ], + "number-of-current-performance-sets": 75 + } + }, + "address": [ + "TZcG4SaIcdPf6vVKsDFjOyjaJX19W8f" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL", + "name": [ + { + "value-name": "wCfAc64BQfdeJfO8rWJsbZCG", + "value": "LSkdplBTBcYz8rpnEvYTj6dfPFjGhZU2Je70zIU2MSBUjS9Yn7JHdWO3B7BK7vEIBLJ3mD58nzVyr4oPc8ohWccycOabbPTFACIO7FXmeKVyObfSjD28HeGT2Q46xQL0klOs0DG7nBF4NMOYhQ6Y5EKZnG5UwIUR3JbWeRVClsy0emYv" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "mztIGYMFudekl1Jqf1BZLQy282pmqjyNSUnqS96encyAd91k3CkOlSQtU8Hdj8Sb2fBMhz0ELq6ZA7b", + "value": "CvrXfai2aS7t0ZEU67GnHyTkY0jy7vbBSvq0FJUPt1ilSOfYNVmml7Hj70K7nNI8i90XKUEdVWyNCNDqARMN" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "local-id": "sE2w1TwGsE9SjUmmOrX0m8rqcxqDut6O00c1LJzdfJ5rDkNjLCb7KCxP9Pkwbikbax4W8E9nf7OKjt345e4IQBpSjJou2Ixc7B8ff", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "Xlat59QM7DaHp1D0czfWmRhOhh2D7xQWS0qQ28u1DEI3Gl3KMaG8TPWa6YO6nwU8pcQjlkkQY2TwoPhaRPbLF7VDYBBd0wdpI3IVn2Me4xKke1n6RyRoFE1v8DJ81WxJ07Ff1jt5Qei57F3Q5MeCi88qDJyEF5fx4MF5503OelLeSO4XsbzKbzbOiJkQHzfLmURjVU71fSfZycW0fnLqPWe7xyPe750l", + "value": "RFMLMGSxNR5ZF6eUJEJFKJ4ayjavjvn221FHHpen8bmNhtz0ZbxKMCUcN4I6s50uYF3y4hV4t9RCCivulU67oSkbP29hZ9DPGHnCQaGjkpOOAjiVdo3C9nFYhP78QKXxjd1anAlHZ9wzkGny5q26FH4WobWfVTE76Fhu7u37EzyY8Vo5dibSSfGgqCndo1" + } + ], + "transfer-capacity-pac": "R4EJk7TBI73ZYFpeVgyVbIVFnWwo4eHNalpvki6Uh9U7GbdtrLovlcaB8yZ4EySOLhj5rhZIjLHZPUt8xJDSVFt4dk0RSSyv1RAs1s2k5JjUDE3aoyVbeg7jB83lSBRUkjmlDpFJ0RvEvq", + "external-managed-id": { + "manager-identifier": "49ipD7g5dPbwGTB8FAF9SL0rIexHtO3pXlOst4qyTB5smyA1073TK3ct9K2uq5TfiHHLD7cxB9RXHjRzrUsbPFwYhytzDmOWWnzznLYYUPNt1E3sqnDfU263AzCeNi2JGBb3f111ROvSlqcLFHTsJZvkq0ydiAPY301i1UkKBHuO7", + "external-managed-uuid": "rEgk6ZbujBmJPEbwvfoophbJ2MqospXTW5eU4pgg1CRI93eEaCUzT5bNJB4bTT5PYbJUs02luUVDP19ZD4qp1B4D50OYLLNBOow9gquLkio9jy0XurenUa0Z3HXOkCq91OaheE2zWjA8Jt5dUbAGdtGgaD5u8vv9bFipclQ0wr8fU5kGgUemfUCpqHUy4pHf5Zx9cn9IGiPsn90EWf0b9uBz4nZ0EygBqNKC2UdJc2bz4c50rXb" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "IdBwWJO5JEHviUq7k5JZB1rsOer9cqvVD7jrIZokD5POR8Nb5waGyB1eHsnUSTHoS0PsZ6Evbmb3mY6rm90MK10kloee9VuTNjdMpK9t6kokauLxDDjgEcA0sO6BB" + ] + }, + { + "uuid": "a01a13cd-d033-ab43-5858-782877f11dfb", + "embedded-clock": [ + { + "local-id": "4OMScqInLQx0I2ghPsZ33ZGKinVG3vb0bYSfgsC1a2TS491LCSOxKv92KWBNjMNnCxCS07L29wN5GGQazwzb1AdDwOrIt655EzQwyBqz0dEGUmIlThwMRJqfqRXLPUQtmGRUaiuan0Ihnqugz02qCkxU3nFT9nev46i6gM8DEQV18h9HicZUwwGALllV", + "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "1WJ3NWkvNgwqS47c21t1XZtnf4DvJaRKYsGMg093gFt1BsdDlGEiG7GN4baNdTqcl6QBYZw6FR7gblMwTiPrinemyg1L9rPmpFPnFluc4BkfO6MIpB9HYgVowW1ygJMFoC3VPpZUSk9HiVhHoigeybuX0wng79VvDQjt7if0uozNcQmA0DPrOboOH" + ], + "name": [ + { + "value-name": "zqEFICVmKz1smUsD41N80zEpf6asr5b1oHy6kmlWNeh18JEcLkkDTR21P5t92w2qeApqOKeBQvCY793Ktfne6ifOnJXp7ZIlr7L8J0Jznmpmns6QAm4yEcmTNbaU2S8mRTuALd11rrnOLmwlI", + "value": "UeF87kk9emUmIL84eLifMJG2qkoWF6prcWAbgMkv06JBSRF6vXl9zUbZ6rNLp55B1xMijZFb5oMP8sVvh9EQVIH19nEzsJ2t" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "h", + "value": "Z9Wy1N1GALB0ubbt" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "label": [ + { + "value-name": "HLryiDDzhlHJg41hIJcqrdsOS18tVBCCfV2xqG6I1Fr9Jkjk4vKnBc3l5bOTMin16qrw6peZ5y0GSj0OHDbiH6vNhby4uVXAlg6jGdaDD3bnm4cVHf5omA3DMBzgppIKxG45L6Ao9MMwQQjpXpFjZBPL4gTtxBe5aa2VgDkqpYO7G7oDw3PwEw9JM34cEihOsjCBWW1dMPckWAXlwER2a0DXVI1s0i8ltKWiyPnkwAEk2", + "value": "Fq8otbhY0cG1EzjNMExAW6pciVEP7GbNZbbkmkimxZn3qGQ4dgE1eVdoIR5PqgCpsGJO0TbpKyta7becjKdxFrOnaTds2HRunsagedFYE81LcfXv023xlJVwu0YwzISX235g8KfMLgpXnesfhnNC6A0tsZZ1zSQBNVKVyRIb778mmsuvQ97OJ" + } + ], + "encapsulated-fc": [ + { + "uuid": "19768f15-74dc-c52b-282a-f2e971a494aa", + "service-priority": "-9223372036854775808", + "supporting-pc": "YWFNJ98Q3Wun8zBeDs8EBCaUCYDW8mM6ajLTlTKgI6DQx64ay5G2HRWbPr8POMOY5zSiluy3sbTZ9Q1IVIKuzyGgZO6NAUExloQGSgJkkvbtlcb8UNCtdiKd6ISyuwYPUGoEW7Qgu1KPeNX8tsuGK6TJOE9a27RXNftCfcSJdurjagsDIOjlU5WAJXKL5tAKB4eQgZrltKFD1Z8B", + "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "HrqRRnE1w2gK4O76oSRyNol9X2PAys4fLu7CSDvgFDTCs0AQTsgyQ", + "value": "zFvh73JbbmyaQiFlqcZjOjkp95JhvrL57gm6cXinbIx10cmqodK5wWmx15PowAtvIHCUwMhHuGImKXM1ao6zcs65xNuVfXrYxVK3H2L3Atpli3mtssUEM0KbG66V3pLAkwwTqhO0CddV9rgBTa7x2JIIPPwL69drFJcX01Qv63qfvyIgIIOCrod9dJUkSZDqJH" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "4jfdPmtRZet0fIKlkQUhwUzYmwzOLKwP3MUS8nCZu50BGCW0lIaRCJHQf8ESTbAOPuzXKbO68GHOjvHE5RnzsWpz44kP7UEWg5LSgrYg8", + "value": "5j2MP7v4yP0Yo4UIU1uqPDvsvDTuT11YcWC1VZ5uG5k52eFO72eWFBo2e9wZbqQnekh1kmn0sHXmVvaUpgQ4R66XgvWjNMyT7PUjcibwZ1SNo2zNaiJ1oHYw4MHJzgCy5xJ9HUxyNhdbbNQl5zml9cS5ZrPqHrYFQzGxteY9vbkHYb2VChhDt1JksyK2" + } + ], + "fc-route": "LjtlzQ09ePzz7U7LcU3Sw7fkMSfq5y", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "5qQilzvjKb74HrJADkwhT0r3j7lRN0NKqE2L5yXQB4UanvK0P9aJ9BEkA0coSR8avbWBBLjcHdm5IYXx7788IFtjFxzpoHzMKnfl8ypQLLNlCKKBKTKsy5D5ucuKM3wwjDKr319ONW1hzMSjxuD5rh2VloG" + ], + "local-id": "qgnTUNtMINLhktTAMf79CbVAUIVIOEp6UFZOkssU7ecsH5UmcUvP5ihS04sGIJMvoEbB6Ev6KzyjwkFJe2qclzWdEoMe7yBo4NZbjm9VWHesTMb0Otc130fzo1NnrhLwWCz7ZI2Vhgfa2jaJMeKPeRouK4S4lvs901gZBiMSq1UlcX4Z3GOiy5Ma9wem2Gv2zLTa3F", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "FQWMxkB1s6mNNvoPHrxLpw3TesCYQpAo7oaEIDx3JUQoh66ZqDCP1FIg7c6YtGeB4gfFTNAvziTQhRPHujwoY6E6jCWMj2ffivMbaeGJxsrOj9nGsT4jRAh2", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "aHw2hIdNw6OYT81rBm0vTaV1DO6W0AW2ik4r2hfrg3h94isFFs2yCXr7Mx4E7SGh4CJ6LQp1LG2PRumwWoWqmfq0MmwL64VaGE8rmyl76nPXSblGA97WopO2LkGRgB" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "7iv8vCSr", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "3l11hBBHinlXUP9QjOYOM5Y96lLQMBCQOvJ5YlNhA06mIfc132HP0FY6SCWx5qfTVYRUbw3Lw976ob8jeP1enZkft8Myq1kl0b73H2P53Wcj0kDe1EsovMwZMipccJp4Up7trWrnLDGLPjZQXj7l5DkJNJNZl4V7t3BNR2auxQ7m2Y4ZhbceGwPu8CltHhA2c3P35ZquQxQSo" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "5Pn74vpr9sBo1cNtwtEFQcZJ8isIzvNEc2L8x2AHv35o8SREdnb3A2EIl6jMB6rN04WyZofmrcKzWt59Q8cibQTwO4iq2B52y1Axp", + "value": "TJTDaH6gQOoU" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "extension": [ + { + "value-name": "TOAD6O31SkX9ETipYBTrx2L82iPC6Z6RNyvUnyN7TL8pwqOv1", + "value": "WqBz" + } + ], + "prot-type": "tPtMMjfSbZvX27CzSA23yszDE5Cx74qALLey4ti7kN5mMzNE9QAIi1dO7Pd6TDHEgN4l9mst9pIWZvs0d2Av4Nc3Cp9n3I2jwYwFdZ0mgIa76v8jpIPlw1o0iyol8ixEg3btUcI3MKaSficF1TSp", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": "W79ftHAsGQhvItRgV0fJhExbpJRgZs9Nzj2USvnylw4VRN3MFjvWXU0fDRnukxhLQcyIHV", + "internal-configuration-and-switch-control": "Uj5HbSKXx3lmTfm8L5vfp2x3KJBtiou4HzLKrvAQzV4k2isFoPVNSkIuVbX5zj99SUTjpl2Q86a3puINkDs4P3yKeoPOHYPAKALaWNS4M37bxQQJlaN3dmFsCngjd5LYxx0tcSqYVp1l7R4t2KofY3HAqPTEMxCk", + "label": [ + { + "value-name": "zCSXrW8JYJO09QtG7arQ4W1DU9uJxgAZTsWcg4V6GJ6PrrwzCP", + "value": "yMibGrxhRORQzbMLjJypphoeBPCarsrR6C3M3sWMgFCHRhsa00shaQnLF0NZk6QiIL4EeSimyV4h4ojWhLdjBsW9kJ0EHIWi" + } + ], + "selected-fc-port": [ + { + "local-id": "lB8GAEcJzwmeqSa4qzGb3ax87Ab67xMl9U1Bq5c0By62igYJHwUKysKF2ND1lpmmkgXKl2CPAJJTRzuz5obDIWaKBGEW5Sah00Ue2o3u7MfRdJii0tNIhPlTvZHtJKKKK", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "YEVT0UxgLKR32RpHAyoNrUE1fnLZZnoX1jI15f9JZ1ETS3skCR7VLDO01zR0O7QPiqJoGS7FLLrwHTIbKI6nlNfeeZ736XKpftFVeMtRpUn6F69qO8F1V", + "value": "g9MncKcX1riGnosIgKCvQ9B0zh07bVUr4GO9q06sjg0yFtgN5KiVUMNl3Ns6AmxFUdOd5MFp2FXz0em5YFTKjy6eeylONSlH61UbNrAIZqhZwwXm3I7m8dAmDV3qOo8MqUX5mqNlQ5ceB1AEJH0SUs6qo9Q4qQQQLNV75BkNGo19iCF1bxL6ZKofLejb59TIPHHUi1AQhBRz5wthV6fMQD2uRlFOvrwk856i6G8gaZHfna" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "opMK4MHkveySWztTUTsTkXH3fMD59zwpZi134AfsONcKeGv0rYMLNlHU8k09ToyKHzFD1M5PrasxQXyhNkUsFtnFNfOzDebcNJQOvNwXXYmFNUOB6J", + "value": "M4irSx8jbmmn255ItLeiA4EgSz4lFFojKHDu6LFh71F1ZKKsnYKY3oeNPa8vIoGsXjO44tl4mS5lvPFSGpQBGWov7oSPMz9KSPGPa1TwUQKhyp9eH0PnW5SV" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "a9DWRgYl0k1GHk5TsaZK9yKpIJ6PY9e8iR418Vn07gGOALH2WyE56omGZswPtKXDBTFBO2BViaBKViEJJiOPyaopvUeYw3uZW9tDb4ql6252cJDVTsDju1IRNOIbRcaFlDioAJJGLGAXh6L2yolUpVM4JufAyp7TVq9n1S3Eqwt", + "value": "CeB2CWOTJAXsW4Uuu1fhjoEk8zYqXsZrGAtboa47KUrzYlVkf3Byr7TsHJSEbS6KkrNJBJIeDaFunAGCDa3XhWpYxhvJ1tlmM85gRFmnH1J5tpzZzCWRqdHYm4" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "fc-route-feeds-fc-port-egress": [ + "X236xu" + ], + "is-internal-port": false, + "role": "p4HNiP5PmeKxHxBhAo2C89VkOOdz5ZQu4pae673slFSV4lcEJ69Sg44WKivP9db5CdjBle3GUNtY9yvKEEuUAzRkJe1Ss4QWi9xDgtbagF0pdn2J1wEt5nNOtGzVLpK3qhGGCJIToJat6cd0JJtGY9vrPWfslZvD83kLN2w3DGpC", + "address": [ + "DJ4spLCjw15nLmV2v1JnI6cFRZ0uC7G7JCA0g4bM5g1IuOL0Pmfptj4cj4GN4eUFQmF6rRLoZM7uBKmi6BIrVMD6JbTNpNk82Z6lIJJIwI4Zkq9jTRKGwgM7jFMJl6Jf5HAGrjgPUkGeKPxDzakXiY4BwQcRWV6TvyrWRHDD1jKL89hzjtwBrAdXipG6dESIcjwWT9rUsbyslH2Eaq8t1drbu" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "Y76HVxcHMDuLo7UNwkt1e3PEwg5U8dUYkSF7hKO3fbPDiBiOVLH1Goy5FvZFITDUDa2VMQY11FEcgWS4AAX8Qvdv0caAXFvBIxoufeohUUl2JdYjFWrwjF1cJ4MHB9ajGqGOE" + ] + } + ], + "supported-link": [ + "CA8WD95kO2l5t7QMEcpBEyvrUL7T54hzEhv9rtt7nP5QOVCl7TWLsk5e54Z289CEqZOJshR" + ], + "label": [ + { + "value-name": "BId6H9oWwWxEwfk9yJmHWXt8HlD74lnxVAwCBMr7BQM7568vHm5wjyE1Ta0PvnfiQLNrx6r8W58138oLvthG2NzNXAvkPKvFniZUoiVkn3di3B3y5c", + "value": "ZSOEHg126LpD0HCV5UIh9DusGXnfUAmTsaq1jr3p5k251xSYjAftdBVUzi1lKn74px6IQ17Nm2TnrDeK6tdj505wbYRVlY0Dn6l6ZlTlfEBGiPqoawz7wxDHvnDJdvmttHzsUsG97hHhY8F8E6g2DLK90fSeC6z5F8pAs5Bzej" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "sOHxC9gAL1xeC9PyoxGfR1IByeuxmYkGETdh2lJFn8URhBhx1XMSQnlptIWPG9ocUBlPX4uccgVmScTT1GDRVY8oGX5e6trS5MHUJ4YVkT9453PYBsPwrQUZNR6LlxDibd4M92AlVJqSMfIfApL1fxS2pYFCnbUroQdpSNKFxapbi7rSw4LECvGTuevRphaN7o4RbOoAZNM9M5Ta", + "external-managed-uuid": "EOL1nwvB1f0apF9NJSRxgjoV5pzaiKkOqXQFudgns8qKFrpokgOsA4gxuPAErMtSJbp5oGtRGLtmcSCw1iRBn70JWAngeI0YTp3a5oTE1m0eeuCfNtI2AJLpb0FqJFgu4bw2spGtLyHSUk7HFIJgjmxuncMYRUkN6R" + }, + "fc-port": [ + { + "local-id": "GOFMjalAeEwFG2HUgjOr2aXkPOF8RDbykIcDTx5Z3BEBvdwLwc4rn2L4IicAVf07XcCIBHHEbdgyrMkPQggdaThTbllZAl6ypJg0iYEt3M2uqekhuAmFmEqxZLwsYv0ne8fo6LS2yMwYSQ7ejuLF0b4ROBjM6b1ck8AiUkks", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "RiIziXKMAhEEmvsPH7NS0Zc9rv3EPnuyxd8P2Stua78ovBd4A0WAR1JawEOd1bMzgUg", + "value": "EKMGJN46ghaQ97i0823wyRJsUv1ah9kOT7uvMrB2AMSKTaCT4Fpvp0XjwQuFZOlLNQgz9JtJvltgo61kDqP2rMmPCImuwIfcqnDz67iukEKICMVf4KanpwcTeznChuGHRk8QjicDWWeqA9yxLIUae74kyjOHOvgxPof0G" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "QUd3drRX94h4yCazaBRAOCnecGc38isZ4xUhYL6ZQn4gZ6H2IyCo2ZCexG9GYCxU1j3S4aRMxNUpMtrm1VKVMe2jUbRLFgFHzJzETiii", + "value": "5HKy8Ys3InHWp1IBKt811PAKg6vzpNpun12vZmrHK0v11duMzDFAsfcJmzaDmzZJAT7zgq8SqvTkIoY91DJlSN46m6BBFAc7mbGCBGmUbfeMvcVwHxKrkGyzN1akuesQq8k1PGVSV1Ej5APMZreb8EKVFMf91HRrIbkpR8hF9OYfgFTf77q7Db2jX9kQJch" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "DvgRVIStfE32Oh1Ktz4i8KNo9uMpukQZPYRDHBYWf2YWbZyFquPyeuWgYAFkNnbum27VwYJL0Az3r8ISCpiJT7ZJzE3mT7R71Q2xGMjymSCNScxvCQevP57oJ2Lu9uCbcwILi1jwMNcw0B1uj7R8cYxN1aiawMlAi4ltXF", + "value": "Bk38kF1GY9y7dww1xybA4XVE7Z0APxsqRnq42sKTtaSGHgz6OKGSzuozlg1aFltpJTlDd5oG8gfHoONcrmWSIdj3tl61GzqpkLVqIjYQsd" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "fc-route-feeds-fc-port-egress": [ + "JUbRuwhEZtr3Y" + ], + "is-internal-port": false, + "role": "IJi3b94kfLTGSFNERzHB6GRisBpSyXIgz0cK9gWh1HXTmLp5cYzaEis7TSRkHzs8sESBUGSNnIzBlYHxPgItyasjUcvCDYK5uvzhbj4r", + "address": [ + "KRwLFm0V1M20TtZpwTIl3UcEYlXeXxdzgJlO5dBYZERLZIavCKQxwU3vg0J5pOFxpSlm5PcXtVAkEKP8mxFSkIfAAYFREcoV4Ch2rmZMhr6N3NVpkA9Eap6KfEBUQSHNuZHNdyzmZxa2k5rwys3AR9l7FOToyAb2rSHwi8ThF3jR0Coq4r1WseV8UGwt8znsj5YB5RSLM3CNFS5BbYpEccE7S2" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "f7vl5EJ9Qi71cVwt49P5S9piMjaeSSo0ZLlXh467m51z0xUWyJTjLbBxuDLnv1nnEAcVFi3Tf4s8tf4TYYcB9G0vjMSHF7WkI87fia8x6txzIClysxat5aYhOJYmQMGqMNx4QytW11oBvJ9X8bq6mgn2ZdoIZW0LCyHs62gZ3EAqfBfgNF" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "kUut1a41kZ0tVqmAs235v3Az73KiL9WX3iiWtmYFdQ89hmJBgEGDI8cH4OZPXWNS65Hrkx6xf6ywsa7IOGmoOq5Sf5A4TnPZkojwVp4awCzYMyzteNRVdXNkUfpNC6EPuXl" + ] + } + ], + "supporting-pc": "fhrLM0BqraTFXLA3IgnuvE90KNHeD2vKcXvYPYog1iOY3gTDo97UN8MyVtMqni2z7xxOoO5p6Lf119wqivc5DQvqbi", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "layer-protocol": [ + { + "local-id": "G5g4yRuIkTXCluuUL9Url0fDgRQRY63x4btC2XlfJaR4FlQivCBIvRdLI3uzax6eJzQDo3K7eC3LPT3cowVTn0wY40p6qvc1WUwcYh", + "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": false, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": -4226, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ], + "number-of-available-traffic-classes": -16, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": false, + "number-of-available-priorities": 5 + }, + "vlan-interface-configuration": { + "default-vlan-id": "-9223372036854775808", + "ingress-tag-filtering": "vlan-interface-1-0:INGRESS_TAG_FILTERING_TYPE_VLAN_TAGGED_FRAMES_ONLY", + "service-access-priority-tagging-is-on": true, + "forwarded-protocol-vlan-id-grouping-list": [ + { + "forwarded-protocol-group-id": -1829053319, + "forwarded-vlan-id-list": [ + "-9223372036854775808" + ] + } + ], + "pcp-bits-encoding-mapping-list": [ + { + "to-be-encoded-priority-value": -97, + "to-be-encoded-drop-eligibility": true, + "associated-pcp-bits-value": 78 + } + ], + "drop-eligible-indicator-is-on": false, + "pcp-bit-to-priority-mapping-list": [ + { + "to-be-decoded-pcp-bits-value": 29, + "associated-priority-value": 44, + "associated-drop-eligibility": false + } + ], + "default-priority": -4, + "received-priority-overwriting-list": [ + { + "to-be-overwritten-priority-value": -40, + "new-priority-value": 71 + } + ], + "admin-point-to-point": "vlan-interface-1-0:ADMIN_POINT_TO_POINT_TYPE_FORCE_FALSE", + "statistics-is-on": false, + "service-access-priority-mapping-list": [ + { + "c-vlan-priority-value": 96, + "s-vlan-pcp-bits-value": 84 + } + ], + "external-to-internal-vlan-id-mapping-list": [ + { + "external-vlan-id": 23908, + "internal-vlan-id": 14957 + } + ], + "interface-kind": "vlan-interface-1-0:INTERFACE_KIND_TYPE_CUSTOMER_EDGE_PORT", + "restricted-automated-vlan-registration-is-on": true, + "received-priority-overwriting-is-on": false, + "drop-eligible-encoding-is-required": false, + "pcp-bits-interpretation-kind": "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_5P3D", + "interface-name": "Z086PAJw0mdxfRko9Hu2A5MPC8tdocdfcmm2OXqPjveqnyPo8bqAgdqSdL5uYjJax54lUn2eShE7HlwPwWiM1AF7lCBbNkmkiiGcFAi", + "ingress-vlan-id-filtering-is-on": false, + "sub-layer-protocol-name": "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED", + "internal-to-egress-vlan-id-mapping-list": [ + { + "internal-vlan-id": 9826, + "egress-vlan-id": 3280 + } + ], + "priority-to-traffic-class-mapping-list": [ + { + "priority-value": 65, + "traffic-class-value": 119 + } + ], + "vlan-id-translation-is-on": true, + "egress-vlan-id-translation-is-on": false + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2021-01-01T07:09:50Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 44, + "current-problem-list": [ + { + "sequence-number": -24205, + "timestamp": "2020-08-16T01:22:23Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR", + "problem-name": "spM7kdTfeFXrYHqkNi3W7uxNJREOyiJSHn01BL8Pi68gFqssIvgHSNmBE0p4i1X0oPTRs2GK0GSF6kZGPfnzUBaqtsmMlbEJ0ptkj1WbIOIO0HnIOKhAek0HMnl7yRIr9bDsdswN8et9OQRCt85Hs5o6kC5TtOcCRPXWhtJqHdrv3i0oi5" + } + ], + "time-of-latest-change": "2020-09-16T19:40:11Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 4874, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2022-01-26T15:07:06Z", + "performance-data": { + "es": -1791593869, + "ses": -1591345557, + "low-power-idle-receiver-ms": -1137631397, + "low-power-idle-transmitter-ms": -1148946879, + "symbol-error-during-carrier": -418433829 + }, + "history-data-id": "nDQ5KCKTAsK1i2irGTrwH7Xh2O3zuJrRmhWYMzSm1ufbwxD4iWA04qhYecxAVYsa8g8UPS8ImfULNpP5liXhIfgOjFpfwRpw7piPaixoxj9cIRaW975JelxyTWNhF4NFl5mvnTUM5VZNM9BN8HwnUWVNSA4qwJXROjf341Q9WHPBIqgQZF5UB0z", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-04-04T05:46:21Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": false, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + 64 + ], + "tx-level-cur": -1, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_ENABLED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759", + "receive-signal-is-detected-list": [ + true + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X", + "pmd-is-up": true, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 1935914088 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X" + ], + "rxlevel-high-threshold": 116, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -2068286563 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "BeiCG6JZUQzror2wXjW304zzYE5heA8PPirno3fjTOKa7EG4PuZQyypo4myaWGZLYj1mmgx74a94GH0wcSeCqv1nRzxN7pr5I", + "speed": "jWIJVET5ArMtXQl3tDyu0pVq52PoZxIaliTgWEdp60SVQ5ZbIxxBPs1UmQadfSosa9IYGWfEO7rw4qIFQf8xA9jWRtaYlqqnz0l7WBL", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": false, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE", + "temperature-low-threshold": 107, + "maintenance-timer-range": "8kkg9NTLf6MMunQHe2kEfnLjM2dnJxmSSy0TlTwsSb7eyXNMS7j7n4r17EoI4KsOisHve", + "supported-alarm-list": [ + "YYgXcPMZBEZUEmR5nQBLyxo1lyl24r0UpgJt5vtH2ktGGcDV26ytEWmZnHUj1U5qaOUgjfPlza17nE2hLAKhp6gMG25HWaZ7YLf9SWnj6oqlVkvyNfPceXQU0NtWXsVN62OYYbiXsIafVFNINuM1rCVrpggeI3TO6zNWLXL5xOksl7a8tW1UqOeH4mNNpGtn88kT5XYDLiXZh07KW1wfPKWU6CzoaULi3Xb0V1vybtxstx" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_QSFP_MICRO", + "rxlevel-low-threshold": -86, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": -1871607591, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": true, + "temperature-high-threshold": -6, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_LC" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "performance-data": { + "es": 656221658, + "ses": -751281135, + "low-power-idle-receiver-ms": -269080411, + "low-power-idle-transmitter-ms": -448745549, + "symbol-error-during-carrier": -1415027797 + }, + "timestamp": "2020-08-30T22:26:55Z", + "scanner-id": "jmMBVR2jNcbbug97avJxtqFMNZI11t4cHJFDAHWfL7rffAfpXYPigu43mFWf01rIC6l4F9kq8Dxf5Ew2ulkKIgN4VCjWvCw7IRbfSnxS0475BvZ5RbQrsvvf7G3CizBSiF722wUVsTS3pS983RznmWDmCGQU8sEq7Lt19nWB9PFqzOyuxZSTNv7p3YbbiPChsXaBc74lOJLfpbJW2tIPQP6UFhXPYrYio9LB8QWO", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -97 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION" + ], + "maintenance-timer-range": "UZwHoMPxQBi1Bk3BKrQMsB6ChO", + "supported-alarm-list": [ + "4OaczgA6HysuA5zpBuKwBW4wwV4ST7HQOS2n0ClI2N4CSDUl8wRJtV7RI3JBbjrZ3me3YrLTeInYlhjlOa59X40F8C8j", + "W0AIZZqfL7MtIXmchpNTRvxb7DNgrL1fLuYDtgS6nxzYuNaLcPw3l37kyUARyt6b" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": true, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT" + ], + "max-queue-depth": 1942057008 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "sLPHVwn894TLb09a0qo", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_NONE" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED", + "compressed-header-length": 9604 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": 1481356976, + "fec-is-avail": false, + "burst-size-max": 27461, + "ingress-policing-is-avail": true, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_4" + ], + "egress-shaping-is-avail": true, + "information-rate-max": 1933503644, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": -23, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_1" + ], + "burst-size-min": -14725, + "fec-word-size-max": -19354, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 33, + "current-problem-list": [ + { + "sequence-number": -18741, + "problem-name": "yWzAhrp6JmB3TkRBlJZ7hm08CnV0813GPC8YVqWwMqAFKr9X385knXkZkfZk8UTPo1OjrCQ62qDFJMuMVzYioi9Jx0VFUOniI3B1Fj7ABL7lpBZk3Yur8v2GvYdpEAzeD3gbmfDYSKbil2ugSZI1mKzSAE977JlKMtN0JqQt21Lo48EO7ePl", + "timestamp": "2021-02-07T03:28:44Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2022-01-16T09:21:31Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -9086, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-06-27T07:59:16Z", + "suspect-interval-flag": false, + "history-data-id": "bikFBCGHT0lv0RVGTE4sLxnHacb2Z1O2j0HNCnmwnzToiGWbk0w5qTEA5HCWBiZUiyzVWVjbmcrFSfQ58m2y7z048vTJNSw6i516Tki7oBM8RD5ZR0pZzhVHMOjAyPyRMrXxL7F1Jr1sW7jO7IFGZAfEhq6PfEG", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "max-queue-length": -1222034865, + "avg-queue-length": -729714569 + } + ], + "fec-uncorrectable-blocks": -1350265609, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -1337241663, + "tx-ethernet-bytes-max-s": 895382294, + "time-period": 1309945178 + } + } + ], + "time-of-latest-change": "2021-06-01T00:43:37Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2020-08-25T00:05:18Z", + "scanner-id": "53idH7cOOyF5L600FUQrysG0XFDiZqw4tHa2GmQuUvryujq1dhsEB0wyF9I", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "max-queue-length": 1252470984, + "avg-queue-length": -995428957 + } + ], + "fec-uncorrectable-blocks": -2073929791, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -278693071, + "tx-ethernet-bytes-max-s": 59921536, + "time-period": 572999924 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 77 + }, + "ethernet-container-status": { + "timestamp": "2021-09-18T03:39:42Z", + "last-10-sec-data-output-rate": 2046970926, + "bundling-is-up": false, + "total-bytes-output": "3318021933179074048", + "total-bytes-input": "7355721209719917568", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": true, + "last-10-sec-data-input-rate": -2007010785, + "forwarded-bytes-output": "3639735058476425216", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "6368797059612739584", + "remote-site-is-faulty": false + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": -16513, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-04-09T21:26:48Z", + "history-data-id": "y4RNiijhhlrZqUWydN4AWpJa1qFQhldPp5uAnORE9avA4j0964KVllXfDvXUQbB786HvUy1VIovFzo", + "performance-data": { + "rx-level-avg": -98, + "es": 1065778830, + "unavailability": 1919987936, + "cses": 2037467724, + "ses": 1233732636, + "rx-level-min": 57, + "time-period": 1567788834, + "rx-level-max": -123 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": -11960, + "time-of-latest-change": "2020-08-02T00:09:14Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -4674, + "problem-name": "Abufb2FoUSvDIoacG1I2cVv1tw6GOPcg0G", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_WARNING", + "timestamp": "2020-06-12T11:10:56Z" + } + ], + "number-of-current-problems": 110, + "time-of-latest-change": "2020-08-01T15:27:04Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "2glmtlH2zxJiuMypwRgPOh6T7FEAMquOGP21aBVC0xMujkUQ3axSjwDjb9TXznD75F87h4JhBwEMIquMA2wMy15BbQrK64SbCSiTO22hqy40YyErs2d04aCf03Z6ZJhBuAmiuhAMPwEO4jfxlkphuTwuOoBOZKhtcwEyNekCKZiGap5nJnF5gbA5r3LrNUUSqqq5", + "tdm-segment-size": -1412686907, + "max-number-of-segments-reservable": -1 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "guSPEiU1T9yZqCrn3u0u9Uh1dHk" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": true, + "timestamp": "2020-11-09T20:29:26Z", + "performance-data": { + "rx-level-avg": 122, + "es": 1392338558, + "unavailability": -1843425133, + "cses": 512905490, + "ses": 1071186758, + "rx-level-min": 82, + "time-period": 1428252386, + "rx-level-max": 0 + }, + "scanner-id": "iGHpmneyE672aIdB58iYD", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 77 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "HeXGEB1xM6qqsEruxT33I71OHh6zcJoTPestPt1BrjTLXlfv6aqO9jvQBtiNcyyTMSnBlg4FzQqx3GU9QkPSDcA6FSTJjkD54Szq8v5zlnYo3SpM4fwAj6GZZsIaEdfI5O05cXFxlDOgodUkkqUExtvoNdyrrF1om2uyZ95cELt2RffbG1H5uclhiLABqCZMEtcvCaI9VbbMqqQYsp3OCgYU1ynk2m6GQbcklUt8", + "value": "xNfPD6921YwiWijmFDp2C5KF9W0Vq0KPN0Ei6Od7MJhAUtWz6dtAb57c278k8K9VCF6AtjA72RzWkoojBJLMHTZJSZV0JWOmBUW55o47gEWs2cLvNpiui95a003JWJXqvMnAarziXnLRzwnnVxJ5GP8GH3hwMfW9TjJ3Camsy7j7vGmjd6gLNojurB05IOeB7PwC0S4qRfpfWMq1KGNpX6TgzMmhAASAih4a10ATfZ03Di5fQK" + } + ], + "configured-client-capacity": "moLr23b4w9gUtrg7YUK92hdC9Fi78THu9kW3f77L9oxCHGJxAuGCLU6MroTA9s4aMSd2SdF1t", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": -1143296301, + "last-10-sec-data-output-rate": 1712431896, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 1108533838, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "vaSrEZ1Fp5h25sRqSaf3HZHwd6OI8JIvTsWqsY5RVmTSGCbqMqlli3Rn9xX99GF20BksrpbeD47cyiCcAYxKTh7UG54PDJKDc4YEm9SZ6R3w1GJCw8ephmjYjfNOYxjbu9HQjzHhjLNkjoWPpbeGppwAFcgvJzG5JnVUPv388Qsr7hgokmWJLtbiFrOg0mmBC9nrwqrE9L5g2dwezsP", + "fixed-ip-v-4-address-prefix-length": 118, + "fixed-default-gateway-ip-v-4-address": "0nsr3BkqXN2YblnBM1KpZSk4oywRoJEgYZA2AUspzmfKHCelwQKvJ4rZvXILyf1xeBzGnT5PfcrWPF9lwTI7Q96d7PYF4R4alDQAoNpDZRrOoA1UuJTcLSpKzfhv6mFjRnUgajT12lIrVJdhl7l6ZCIqRZVQlA1dPVlZ7eS9rAAfcGoxNKvEmd464ROqjPv8LQZSWRTosmvE2T3HvqdK" + } + ], + "broadcast-packets-output": -1028086661, + "dropped-packets-input": 1703366714, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "dropped-packets-output": 779709612, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "QH0EZjlur6ciQ99CptYUZ0F2zbsMVXVDxN9o6uTptXHb6INncLh3DP640qQNgDiNij3gNWF8MekSP781Tp4o62t6lbLBPVg7ejgU8V2U2mERuMKf4GvaBY9W2MpRIxQOQ6IQULKOZhxtV9AZH62aWb6YPnHpUqeDoOtar6YrfnMawn26l4gh7fgWCXmpnA2MgnWIlN9A2VLzaNxvRNNY2VUxS8O8AIMR5AzrfI1ivEJGrg3a3Q0YDN", + "neighbor-ip-v-4-address-list": "oVbwwTanQCO9So3aTHTr11vb4d4URRh7MsDadFp4hdd1BgbnYWORXb2Uh6G0PY7CiCEoh4sqhxsTOD8EsWvh0p3hoKh5AgHKSe89iszz01kGxskRhH0hY4qeGzk8PTSH7TIpd9Rd33TAo5jFEjODneRVN33uXOb4zTmM2d058LxwRQbn2R0h5KdKNg6CWhzv2Vi50a28VsFEaI2cAUuxwHacPgOMyn9sarpatsjpMYVWyP18KvGg4IsLY9", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC" + } + ], + "timestamp": "2021-04-30T14:59:39Z", + "forwarded-data-volume-output": -521982147, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -2147120037, + "last-10-sec-packet-output-rate": 1659170472, + "vpn-binding-is-up": false, + "multicast-packets-output": 1942279416, + "broadcast-packets-input": -140082865, + "last-10-sec-data-input-rate": 949348460, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 1529489074, + "data-volume-input": 2092734148, + "data-volume-output": -1383996039, + "fragmented-packets-input": -214590323, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_NOT_YET_DEFINED", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 1316892516 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-07-22T10:26:22Z", + "number-of-current-problems": -73, + "current-problem-list": [ + { + "sequence-number": -22639, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "COW0nNz7Wjtwd6L6xWpV8QNPIVkpoIXSwUTLzsTvLeUZlFXSBeFJWkqEfK4wkToJF9ufCfCfuw6HbVzE96f6qxCx9y3uskd7lzeXPR5bf3SrZjX0h", + "timestamp": "2022-01-09T13:05:52Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -13902, + "statistics-is-avail": true, + "supported-alarm-list": [ + "2Q1GLNsnoDaa9wG8lB5zTN2kdtmw6771P1HtO9Q5ET7NpNNCgT41G6lTzHhyGpzoqgR6hz3VsaAJXoedhiePorAP8SnH9O5zWWxdnB0QLBrBZFO8PVXdmp3nhi4q71RVXh1kS12vum6lTNtJAiWOIRbR27a18T", + "XaXaUZcilqoHk3a3DlRkVBvMDvOEDIstKqDFhPXC8dbs9mnMze6uHu8kRXQmxbPhBsOKaLeiRqK0E7EddDHVZH7QEQc312lum1ewNkOwKqwgp2tDF2qEKxmgfzcgtxKPyQedb2BNl74K2pnHkFeW5s4k1gBmNl4e4ijfcV2xUYiWgxwAdCwi4ACYRdcwrgCvyOC" + ], + "information-rate-min": -1694034325, + "maximum-number-of-ip-v-4-addresses": 14592, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "qL3UMKJjVLEtEYPV5mqHAzyr2iL", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": true, + "information-rate-max": -1997487929, + "burst-size-min": -55, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": -10545, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": 29958, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_NOT_TERMINATED", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": 48186944, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-05-01T06:54:10Z", + "multicast-frames-input": -11940941, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -1692187275, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 114483358, + "dropped-frames-output": -802192207, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3", + "last-10-sec-frame-input-rate": 328042208, + "errored-frames-input": 638615656, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "mac-address-cur": "v2gLP5rSCbhNBzrilKrfPIGp084o2V9xXpaFuupZFGM876rsQSHytgXtg1KjPTIEiTbFnAE28i3gguI7eixHqm3GfNZ4GIJYtUvQv1KvkNLA9mzoE654s8KINCEtcnkFaPnFRZ23FOvOaXcG3aKoamYYQCj2SDz2lOz4GBZdpm1rj67fgJvqYtgOXAJH5aJqRamxMdK3ADvTJu8", + "broadcast-frames-output": 2014280940, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -188720773, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -2094711729, + "dropped-frames-input": 1935286270 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": 1106, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "Y7oP63USwNsR7YvYd5q9R71PPIGl", + "supported-alarm-list": [ + "tXuJEsErl26NTdLg3Qet05s1MhBsDAPYqjzWM5n77tM0zp9CfnY7sq8eAKG5co3uHujlzGkG26ytnH5v4VCweDCOfbLjzGOga7uJFOhzNP22x0xBN201FCHUNsdm0TvaSZLyF2", + "sK2vhU2KH4CBBfinUDB9DmEGfvrFamEv6y0fsUZ2RuDkJVIvqbEWxaCEx3" + ], + "hardware-mac-address": "A", + "maximum-frame-size-max": -19205, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "link-loss-forwarding-is-avail": false, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 720, + "time-of-latest-change": "2021-03-22T23:13:59Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-06-10T00:10:11Z", + "performance-data": { + "mac-pause-frames-ingress": -1903842555, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 713519714, + "mac-pause-frames-egress": -1843327011, + "mac-control-frames-egress": -2114524873, + "oversized-frames-ingress": -1238384789, + "undersized-frames-ingress": 225190200, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1174627611, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "l7mZu8GXx", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-05-10T15:58:50Z", + "current-problem-list": [ + { + "sequence-number": 14887, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR", + "problem-name": "ukLYku4QE8GX1uXuSV0ZcngPhcFNb6PxiAvu4skBA1yBnnYfbY6nmf4vrJjuH01RAomwQy7rrx2HVSWYRVl5apAB0L5ALYrlmFKd6RExhye4j32aYf70wHtwtq6eoqsK5cPbVlB4UH85KafAhmsNVVkolivJIPmG1bJOxkTj21oE4v7lJz1EnlVIvqk67GM0RnOgAzrutP0pc7KVzLAWYvwmNQ", + "timestamp": "2021-06-18T07:15:08Z" + } + ], + "number-of-current-problems": -3 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 71, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false, + "timestamp": "2022-01-07T04:12:25Z", + "performance-data": { + "mac-pause-frames-ingress": -106208719, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 601762920, + "mac-pause-frames-egress": -174151, + "mac-control-frames-egress": -323316793, + "oversized-frames-ingress": 125772666, + "undersized-frames-ingress": -706549367, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 171166404, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "uh9O3GUXOgqcjA2J5A9RkynZxx7jyBC2TMJWkDM0Tcc5E7GBHPsTnPKMfR6NtIHemqay4WyP0LMESsfr9HcxpWbEGhr1S0f6rhFn6d46YRLIjS1ts5SR23nIdGJ5GYb77Qud4zkUi5vBPoWhuO0oKn6X3H2Kx5JEW6SSFcEX91qYin8M382Nw8KrHEbeKVSy1CiyGOnPIFG0UGEYOGDcGgEnUPtwCd" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-05-08T22:06:06Z", + "performance-data": { + "cses": -1279868059, + "es": -1575053493, + "rx-level-max": 73, + "ses": 2001794748, + "rx-level-min": -12, + "rx-level-avg": -4, + "time-period": 146096698, + "unavailability": 284132740 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "U3fYxEzikLQRWD3U00gGw8GzNh7lgfSab70IDz0XlQO9mRWmRcUfcBHZKOc0WW37V3PyvIvQybRUVF9EJ3UWwtNh9S95O44C8MaDuylUJ4HwKQbtL5hiqXrzPAFv" + } + ], + "number-of-current-performance-sets": 41 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-05-16T01:21:13Z", + "performance-data": { + "cses": -861901679, + "es": 612063438, + "rx-level-max": -60, + "ses": -1061736029, + "rx-level-min": 11, + "rx-level-avg": -116, + "time-period": -672161405, + "unavailability": 649097748 + }, + "history-data-id": "zdQb31xGYOYgDhPsSmQpYPWdZ6XzBtT2GB6BuD9kj8AXpph9M7qCPmPOkEoV79QFKW86riqCi0zzhJJVI1xxgneA1uo1D6yf2HllRDX9vpIM0jAId78tmm3gQj9lpHAjgNE7qu8NLJrLU1t79BsnXoDFHM07usiCfXKxjKk4tMPgNanOEQcteH9Nu1UQu5sJ249dPt9a7QqN0GBEoF0Cn9hJa4zE9Tg3YpgFSpHS70F7G8E4", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-02-06T18:38:54Z", + "number-of-historical-performance-sets": -8292 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": 30838, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "9pC3fjc1vDf4zbFrErSq3NfDPMbeYLiZ2V2h6fbBKqFkBcD7EvxziMc0roeh1phVkbcqinT3Fqn9C0g8nGIGkMyL2MV334Ynf3FyiqBYQQ7lQfl5V3L8QbLSYGO1KEh0zOqSf1IXRHazOwECriK9tv2j4IdOemGO26yhZ87IHh9vFOZ7YJgj7av3SARZWqNYwd8wd76Uogh44h3" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 12309, + "problem-name": "muaH1GFLNqnyfYDY17YD9bHItDK2P0Vbm5KgEpTjH8RX7mN0mDwvPd6iIIkxA7AW4k4IJXTi6D75ZVXlytJfGHxgpJNZQnNVHKvizptF2ACTvA7W3IbCpBSOky", + "timestamp": "2022-01-13T05:45:57Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "time-of-latest-change": "2020-12-28T17:24:14Z", + "number-of-current-problems": 28 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "4LnPs9KFpgsawsyuoqTmQgqJ4l8gbpsf2Q4uRO98WtisOQO4gzrZHRAL4IUf7mu94qEV6F331dvP3cTcLkbt4L68m0gtfCvj3179y2czg", + "value": "obMinpuqKy4RzqJPLYjgam9hoIjAhr2GDGQ06kjILnrcN3Tq1cHbzIkXqEpA5k8A0YtYaMzV10ZO3S6X5N0wollOZCoWWwxPm0FxEek" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "LnHdJfHm1N8t313ctZe7Sr1CwHDZE81hnIu6Q3kRQscTl7XG7bORuPl1oYSUYUbmuFkcIFWqZ8bl801f3HYypjrF9bA7XLlkjywT5sc4tnpBojIr0GRhRaX0mxZjadDlL2fQurMXG4q4n8ofG7xximpELpPVuth7voPRPBHnF7k28IaOHzmZVLvG2ltoGCv30kUHWB5tBpoJZypGZDyUh3s" + ], + "fc-blocks-signal-to-lp": "NI4q57iqUSenXzYeXz5nRDmub8L7sXngxkyCjIUdA0BpArvxTAVK696haSgCPEKeYiQh1LvtLYTlhoL2RyEXHL6Rvnmc16qZhg8aTDDFtoSDFvFw3klD5rmsOIEHH4GYkP86kDLG2vjH1Y5Waqz7RWzywdfd9O3uv3AHHdnBAyatpfqzxZzgN0OceWhnClJ7o", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -106, + "current-problem-list": [ + { + "sequence-number": 16181, + "timestamp": "2021-12-25T21:35:34Z", + "problem-name": "QYKlsc7CowB9Uzofpru3pxVuEb0QVfGE5iZpv61TvCVp3jwsK0v2pjw3mwLiDkWICV7ZT0LguGFxZ30C4nwty2pVq2d3e1DROCIzCtQ69vv1znvvL1QbV76l2bggcTZ0nIsZbiXdFk66IBBlukwhrDCtO", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2021-09-17T08:27:40Z" + }, + "air-interface-status": { + "xpd-cur": -28, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": 75, + "mimo-is-up": false, + "tx-level-cur": 40, + "local-end-point-id": "wkoo4E36WnhGky453yBVj7xqbIk7yik4uAkqeno2CGIW6FT1dvPwumPx41FvjZrOrM6F1vAEbaA9Pua3RZrdd8Kaahxt8Y9", + "rx-level-cur": -18, + "link-is-up": false, + "performance-monitoring-is-up": true, + "xpic-is-up": true, + "remote-end-point-id": "Cg7ELHaORKXz6ZuXRV244N664DzduBM6RTCusMikp7Tv6flP2nM62S", + "received-radio-signal-id": { + "numeric-radio-signal-id": 26392, + "alphanumeric-radio-signal-id": "MMinwFjL6OCXCnqXSCfV0tjsm76XMEirqtOO07z6Nc3irlfjXn6YQpicxp1bVkCdNi1NhAL5EGn51uoRRnHAMZEbgGfb0RoF2hkjS5gwLvuE0SvJ" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": 870760910, + "rx-frequency-cur": 587706062, + "atpc-is-up": false, + "radio-power-is-up": true, + "snir-cur": -2, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-07-05T10:05:51Z", + "performance-data": { + "snir-max": 85, + "unavailability": -2064321143, + "rx-level-max": -33, + "xpd-max": -25, + "ses": -1914970605, + "rf-temp-max": -18, + "tx-level-max": -80, + "es": 905739314, + "tx-level-min": 19, + "tx-level-avg": 49, + "snir-min": 12, + "snir-avg": -118, + "time-period": 969445258, + "cses": -1486677371, + "defect-blocks-sum": 21692, + "rx-level-min": -50, + "rx-level-avg": -23, + "rf-temp-min": -74, + "rf-temp-avg": -48, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -31, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": 1146810918 + } + ], + "xpd-min": 55, + "xpd-avg": 19 + }, + "suspect-interval-flag": true, + "history-data-id": "8gglXuK6zMM09YegixdxliP9QjJ3myWnH4Iwykv76hZ776npvtWQDDSuWBpb2dyJh8" + } + ], + "number-of-historical-performance-sets": 21435, + "time-of-latest-change": "2021-12-27T09:21:02Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": -595332575, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "SUoqkpyU87BtaDdzzK4XBInAxnSA4r5WdlfyDNkLVVf5qswZ4sOF2b8Ay0aCr7rxlG5YtpJgcYdDjBun3jV6u3yV3ApnIQUVoRTK8u0kleXwPsTLDGJ7J9UNJc2jUWejN73VuV7P15lRp6u2N51oeO3X05hMTv5yv0lRWtGXqTGHR2Bw7uVliYbaWsXPPUocNJ3J4Byum7be9MC99xuroxucZj1H5hLSTPtXi2kF1nL", + "w7Mm2C3fj7xEON5apJ4wIMS4HVE2uzgTy37AxbQRifnYUk1jW5QEJAIqvflSGBLeESO4VwN5E24ym5Si2AWMax4GEpqc1bqxV6BRvoW9qSHNPrXS1ME4bICP82195jG0haJMyGVRqvwgWt8Q7EUimwZmySvD34vl6f7EN3ndyTlmflcmZ6xmuwIUh6pk2VF82NEPI2U8Ngu2BzhtxGP24pOlneGh1dp304KAYEIDM5ygEPJbnq5rHUN", + "XL1ofZNGA5dIfsyKG1ZpZhZu5DE5fUucyvANmg", + "BIjrOjrV0tYLG5fA34qgfcvCMtFRo5dZOoiCIBqA5odDls5opnFEza8dvO4LT9CzxV47ouHlSUQdfVtwa82JaaWGYSjK1WjrJny7R8tB2bG97axhizTlCH1ssccl8oMRLdZvlk6fvFpuPOEZgpkS6dkqqpMyNqiqD9NYtMeQrvd8jR7zgsreFEFXVjwAJO0", + "OdyxsS5cyY3YPdPbikHnzuKE276Hmm3aAtz2", + "2njbNGu3dYf598Efip736tShncWoszquOCFti9wn0Dk9EYgWggZmJJD6WrmgSMKHgh2yqzOi48kIZAEfQvtr7Zp3iLbbqVKGcM7udNNiV70MzxTqUnJ1e9WwM7z42bD6YKB3pglcfmZOLS6F7QHlZDKDDjIFvlElXfomnKyCYpqJixghnXvetfR6qzDNM98Jo", + "8lm1yE4zAO1qkK37PBftiYEFoK75wU2E7hFFVB6nh8NBSQAHkP2CNyi3ah1G3VcacJPZkWeB415WKFv4vpGaXQe077G22Tc7C26PQliUenIY352y" + ], + "tx-frequency-max": -1381486205, + "maintenance-timer-range": "DRxq3AW9yiVfQlmdAuc7I9QzgCtkpu2UeAk928iAqePgrbm2yy1gzRHPl21Kp4EDwRMyZX0q3Py", + "transmission-mode-list": [ + { + "transmission-mode-name": "iWEhjbbXlHed4rpp6O2wZUXaqvcqCsQMom3Ix7xSOLYK4n1a33GVPv571apvC8hTuct2j0M7DCJHRCRVxqQeVNmWXLjsTAdoNGi6yW63zHKqctdJT3YPJcDyXX0Jp5Z4L9bb596EIQXUk2w", + "transmission-mode-rank": 243211274, + "supported-as-fixed-configuration": false, + "am-upshift-level": 78, + "tx-power-min": -41, + "am-downshift-level": 73, + "symbol-rate-reduction-factor": 61, + "channel-bandwidth": 1664865276, + "xpic-is-avail": false, + "code-rate": -71, + "tx-power-max": 109, + "rx-threshold": 21574, + "modulation-scheme": 20432 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + 642294422 + ], + "atpc-range": 84, + "performance-monitoring-is-avail": true, + "auto-freq-select-is-avail": true, + "tx-frequency-min": -888389627, + "rx-frequency-min": -756713723, + "type-of-equipment": "igEUCYTR3l0u8TEb7x6SQq2tssvpd3vvc1pOZaFUwxgwjVHisGba6dwrx1QKWlf0nwPeGm14MhB54inpQyzXDXoaQ6UFs1FHxuNeJOivYLsU4PjMgLJLIZWz6I6qCL798UfRBqerbGl7vxUDivpSndjtNpLpbSrjEG", + "atpc-is-avail": true, + "supported-radio-signal-id-length": -30979 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": 85, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-04-18T10:13:55Z", + "scanner-id": "difpnYMTwmWoU5ZVQMqN64cVk4zcyXzL7O2vEOg22cqWhhJ0W1NU5ZQp3htt627eI9JeYZg03zXcQycEASzFRhXNyq8EtfK3ptinkynn7cAQLEmlwVSg4PVCg39BjTEIfO5rnk", + "performance-data": { + "snir-max": -14, + "unavailability": -384885713, + "rx-level-max": -123, + "xpd-max": -56, + "ses": -437081449, + "rf-temp-max": 118, + "tx-level-max": 109, + "es": 1840927906, + "tx-level-min": -37, + "tx-level-avg": 54, + "snir-min": 109, + "snir-avg": -60, + "time-period": 1459904108, + "cses": -1168441765, + "defect-blocks-sum": 15475, + "rx-level-min": -86, + "rx-level-avg": 65, + "rf-temp-min": -31, + "rf-temp-avg": -103, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 37, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": -1612463931 + } + ], + "xpd-min": 114, + "xpd-avg": -84 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false + } + ] + } + }, + "label": [ + { + "value-name": "fkla4r7178xvtKjknAgbYF0lxGKbM4Q1gb4dDbeKbMfEwqQLS7XREP4cnOnaK63Th76MbkomYDTnWJ8OIXxfNBr2hGcUM8FW7DAiXZxOuibq1b7C1EJO82IhIV3nVIb2lLlbKKZf22xV5Ep6b8MjavsTiw8dejfsWsDHcuO6od2tSrA3AeeKJGv14v6jGeLDGgcLK0R05TtXdVSNaYpLxN", + "value": "BiLUZZxuGNGjpyahDWLt9ydOAcdmJS1c3MZ2Mwokc4vtuFLZtosCOGipKwDlgExjiwdWVB8ZxDs1b5TEll9aTrzDP4Y6Iop0UD" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -25658, + "time-of-latest-change": "2020-12-05T17:05:04Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2022-02-03T14:32:20Z", + "suspect-interval-flag": false, + "history-data-id": "pK2oZF46u7it1lsyuT5UQS67aAnnkr1JbV83B415cjy5ESv0LsUClSBvkYLFhEotAow3tx8xQzCmr7m5A9zN1aae1VTis9D", + "performance-data": "ml5tgOslG82DTwf5JouXnI0jpfHN12MofKJwy3J6bLC5aR2T7wQueIFvQmiRgW7wGRU6Uv5Y9H3jy5cFt22HDHct4mccakAR3uPPSUN1tIk1Fwz8qBHViLge7triF11IoIp8v59YNtSlRjlhU354OlbOOuYlnZ3LzlT4qUV5nFq6YMoKPtGvORbvl9QJ0MmA78wp2rui6VoWzEGgZfLG6Xbk6T3ZxhzwpXVkhqufdS" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 27862, + "problem-name": "ZeEkv17EO9r5zkWi2YJqxd43j5KThdLgjhtPjAtZJNWb7Kl2B4s0ax3tuFeESZU4hfTsHejj1gu10H3BLvBNUw8hcmVWeH0nPTPw08P1gbU9SXKwleb7CkoGybDMLv9AhQ6hZOa7R5gC2T0f7bnBnDiWHNIsiK2zA0QrG1zq6H20AU8zXnbl0l9z8R1qtVS4WInuBOUzwOs6AsyyPBLHWUh4Dam7663UPioi7bKvRctkE1SlCD2qpbm2mJ9", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED", + "timestamp": "2020-07-05T02:21:40Z" + } + ], + "time-of-latest-change": "2021-10-13T03:32:12Z", + "number-of-current-problems": 65 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_TESTING", + "statistics-is-up": false + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "PT5m2YC5O1dlLu3vBVaBtjfpZLPUqwy7iDtctXaiQnDuSyZllaWOl35cOU66rweJ1zVux5MnliR5IRq4TnK6iQi7Kg5", + "tdm-container-size": -1218572281 + } + ], + "supported-alarm-list": [ + "kA6N8sP9p4soAfQ9muJsfpkZzoa4olc", + "VioVL5429oiCD0LSvmkCEwBdUE9bRmLEE9zhfvkoTC0pDDh0SBCw76JTCS4t6IZLRq26VenGJfXeLe6DHA9GGKsauovB6ueYU8WHfbgYrd44kaH1KIAjs2tWiZpplDfgE3PTf5Ryb" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "NTIhiFWF06p5O8wK1LvZ3dh2Xp81bjFQcfZuVV2V1rTIrhsk2XjX2sS0R0T2jyKoOJKBxMoq5h8wyBQsq1ittalk2eedEYBkAeV7SkpYBym215mr6wMsG7MAdTOSJhcbv0a" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "performance-data": "uFrZpvkJ1mBmQ6ghvsDpOez8WvmkSY1ewk5VPqEQM74u5lLsFpRlvitrOPMGFNV30SYPiuyWBCryX40utSPZaiiYZ4xxKkAKcrrnVZjpCCXrHQW2IL1KWcJN88cSsNuw6WTTVdapP0RoQFrqika6wLUF", + "timestamp": "2020-10-20T13:57:43Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "UKJQDDDIN3qFMOvjfVtA6A6JmDDs3Q6XAPF6kaO05eFJ332aYwKWYJGkmbEpTKemsTsMWgM1nkLinFsd3da1WIlaL0AECO04AsJoBnpYH28WIAaLNcFBUSMFKebn2cjuwUSZaaPRcXGMyQqd25POXBlAPwXJA867VQ65SOO5LuJjk9xe6e2WHnwo" + } + ], + "number-of-current-performance-sets": -94 + } + }, + "address": [ + "i4irESc62t2cu2MfiM7lppiFg2bVDBZVF9ec2qaWTd9g7VvpzDDR2VoaQz6t3XgI7mM1NXXy2YO9McrdH44BRsMzUKUXz2xGpcz" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL", + "name": [ + { + "value-name": "GcAsQW6DkTZK4zoE8aHcaxDlnAL1lGN1KglAcr6wc588wwMEGlJJTe48O", + "value": "1agH3TXpl1IryVpGVN5AsLV3mGhjG5TA71hbUesgf2zFXQeLEjlYW81bHaun7nXfo6ibkCrsESZuJdffos5dA6o98Sxf7mmvtEGFgZ7VK7hlcwAtYFGqD4ALOZ0VlniGTRm2IlPsk6NxCfSsUyKpucaa33Xpi75bYj5zFU1Z0HouWgOJGz02D3cH61Yo9VrZfxyUrsLk1aOPiDqZ4r1zu6gs7eQ8290hyy30SOcLQ0B1v10rkT1GR98RgQZi0" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "cUKL7xUlZ65FQBoD3n8v6uuxCsUxQRN3LpGKWA5VG2tpDR2z624cwrC0TwyKfdF0ClCrNzelBHK7qEGwGCJ4Vd5PJvrYI6QcjkD6LSrer4lSITghoRlj4q0FNrvnpdAIx5GaX8phcK1Mwh3U1p55H6Dvx8SPmkxLq6WfelwiXp4tH0fAplF6ratQjeFxy5aQb66hjuz9UvCtvS3UdATwLemWs2tT7DJaCHrV40", + "value": "YnzjTjeFoOqUrxgnZaIK9mmjQ3KD7CAXS9gLkuiIbBCC8SSZVAK4O6gE10i9vS6fTf0dBaVMLphT99L4Jv9ytp4uhmvE6uTZBL4cORZzgglqh6u0tvqOMva4JGAI2mzD7EPNvGfEOA45yqYTWozILJEnh75" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "local-id": "XzA7g8RZu9we1F9DFb1U2Ww6s6cjjWY8oq7ErZDV0111Gawdex7gtveNui7FfXNDfVhGMMuMNnNuybHEIHU340Q", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "zyquqaauW1np2SiUcDF5bxekgua7M27dtpHTrSgfLDENnXzzseEDDLXT701U207vhHhIzxYc2CZprqZLEvpa8e3g64a149wlIFW94Ul6ocwICnt9SKj1Zm9XjjYnknB32xcZjy5zKthfQLoBvHumVDceOau0x53su8rFyoeaSwpA9FbwexLa2X", + "value": "Q7KRFHM73UqIkOPvGdU9mskSGKvQMs7DAJm7r86u3o5" + } + ], + "transfer-capacity-pac": "NhNKcvNFDVL", + "external-managed-id": { + "manager-identifier": "ysL0rbpfzdcYbXd4ReA9wXduA3ZTe9CEBfw2qWaZ1mPdc3h39S4GHh2ak13qbx4EMtz5pJWqXMD9HN4Qx8oepqoBsr1vQY1DrAAIbw81aE2Rr7AY7Y4xht8JM26D078jAI1D61EhFH8YGAONzTkQelr0", + "external-managed-uuid": "pvfovyYdruks8B0HBQncFbDqnlwAEoX3U4rhuivVMHgMaguD6JPDMkVaxjKbIA6uwqL1I8OmP48Rcuvb6cGSpu2WNF8v76ZvwDweLdst9BcmXHp3M5WbzQ7nn7KmeCSKfgRStjdDMqRK7gFTlBWNk42z3MWhgO2vWTgq4tVRTMtT28EfCBUWxWvABjSRZMfWxveBY9sKNVDHWhOySJmhFRS83K02wfY3K4wA5RkS" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "awgy4vcTXgYnGO8u5H5QqJ5AQaT" + ] + }, + { + "uuid": "c3794728-dc8b-5233-0c67-0b857c32ada1", + "embedded-clock": [ + { + "local-id": "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun", + "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN", + "phase-aligned-clock": [ + "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "encapsulated-casc": [ + "F2v7IjrovoDQAwafwR6r0d1X0S4sla714C0MNk3aIG0i5apB2wU2JVRBFW31Y222wUHbeCmWam7fpwIjUudvhW6XK2YIWSDlEcwTOSHY7OewdOP7jUDAQBxBvnbs7ONE0bpO46F3N" + ], + "name": [ + { + "value-name": "BoaAW4NB5ohk871UWT5OD1CbZg6CKlheJsGyot1tRjFRizLfkIVXJx8IF6dismw3O4B5xvqgOY7YxK5Rk1G3qOE6NJof5MaMQMJf99vP7CNweTfyUVtkC7ihIywO", + "value": "Gs2kbhlcMacgYImJQUDDoP7n0o6yMMTleNxp5TBJ3NSToeC617JpXJEX7KnMw87CWE1TpvutaemytREmYgLNRhCQ20Cq8B348WPxrk0Cyf2T6zfWHSKyaeo4eTmfupbCe12xdU1D14p7DEWcpyKrM0vTTR8o9bSfcUMhHOVISkInQEz74byQbVB5FJlGVdVZ0H9Hv" + } + ], + "encompassed-clock": [ + "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "p2eox43XRD6xNxTsTxeo3vR4QqMpnN8NHmbeif39K9GxysRkR6IUtzYjRDAeqI174ddmkgo4h4uQol2gjK2Nb162wzgWhaVmn8Izg6Dp377jl9zETuj4ni6TRfP0pCmECXdSVQhQQpa3yBHk5Tos3ndUC2UTw9x86KSTs2KarMdRfN3lGsFJHTvbNh4cqBkoddixf2IyGVhVIl8gFORm", + "value": "mxeEtq4WLl9QDGXxgnd4E0MZ9VEPMSg1huFKVBGyWHgrgdYwA3A64f652CUOnaHEwehrQPREx7YFcW3ESwLOLJTFdFlAP37dhoFZ5owCou9Aid7aJSYmtJ1Gom95" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "label": [ + { + "value-name": "hfgZCYD36Hewqqs1v7DQFqVAh", + "value": "hqmFmEUCDpB9kzIz50" + } + ], + "encapsulated-fc": [ + { + "uuid": "10cd9061-7231-3c7b-b09b-f00d66e454cb", + "service-priority": "-9223372036854775808", + "supporting-pc": "7KsG6ITlE5vvgMYrOJLuKhtDiUSNSfnRZQpXqijWoOrEshX91IDD0YgaK1Xugklf2L4kVn8b4zQoRNxKo2ng1vqLwfgMrtTu6", + "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "1YU29iMStNiWnUbVVwAbRsni7mOkUXxVNsQWCuH6aZUxT6kGuVSdffvmtbGn05aOx0K2nr0xqU4cSpSecKrjRXFk8dz9iKXQCzSZ1Soj", + "value": "tnpKgDOS57KUMWURw398SRKkBCdl0oSlM952MTMJSovwlqnJlxR6gBqSdv56TXrF6xzLimm3KSz5aXGvmxtC1TmegskapMPwbp9lDvonnYlxN1V9roDsa0GqsTAJxi7AzgVcMcz12MzPGuY7KtzUt7lN0Nxp5wZENNIzRaATW1ACnqJ8Ta2nif2aVrs0YjxL67cPhEAeGaIVAk3uuYJM5LP0dhT3AiO" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "izCtXgP00XJwSBeho0rOLIfy3zgdaCNsbpO0FDSyAt4lWaCd2W1NE9dzIlMTXzd1Q11wwM4Z70k4aOhcCaR8j4IUimNfO08EU22iOYhVYtR0i0cU3V3eSD8aZVhFOqkAsmS8d23bvN4NFgAI4vXW056RTfxzFJ175TfaVbmjQq6vyy6CV3yN0wFTM4kjNlrK7yVUB9drrcPZCVuqYUdQrKC5OWoBaHe9893", + "value": "a93BdSAHFW7vRdlaXXfMMvfWdt5lu0WE1Zf6JIOoEVTn0fxY4EKQaREfdBsHuoevgluZ3ioA59P6on4lTGb3pQaCrCcVTqj9DN8zXo12yQ0O5W" + } + ], + "fc-route": "X86ahuq9UFz6f2K8lmnPjpD38o3lrEHoMFq31QdVnMTCGDCU0RBb9e6hu2uVG3bsICnJksxI7icNWPzOyaRHpYRTSdHqhSSZu7BPA8pHqBmeiWUR6MqnCh9mvQMMIwD5DeU5ejMFM9L5XGO3kejOo", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": [ + "gJFEGWqP40cZHrXkFKZIUxaVqZWTim6z5L5Lzvsvvwn5XcpuWg5IGfEYesRpO" + ], + "local-id": "5WxbwJOOaB5YJTOXpAlhJq3TG6lN7gn44V8sEW8PqeF17mYwWbNGBQzaWUXV2lSYgSqMGrt6F90MvYajaPZLxrVllL9g6TeeLx0rYmqDnqhKgj3q834xuRSHC1XAU4OxBHZrVhWiH52Xo5go0cVm3NWyHL0tPP1ioSJj1xtICnx0kNolR", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "AMMelajeVDvbLV45TQrnryG4aW94zWJ1JnfWxyas3xEPlAU6qdtJL9OOXXKoTlpuJFqg5AJ98fQtPCz7P3Rt4F9UuTifeIKXfa6kDHlLWb6DNxCvstYp07juStKY3mOiwUD9BYMp2KUHawcCS21S1cfTyRSBdyUBspLVfpkh26RcC3OmYIfZ", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "YlrWXmCeTVMrFPBiApW5Hp74bBE6RwrQRSMG6gVZ3ziJoT1" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "pSCOygOyqpqRwHlE5e3lu6C346y2yyoQi0wQ8lpyKPp8oLNuRQPdOjhSiHUIfayp35gbixKUe13CEIYoqGBeZKZ9sLKzWaZR772pEEkSGfmcXlAf1clSOkUgYEIMOHDWOxdkcpcSEq4tLxIEJ4ppgjG6PgSDXnrDVFX741RBrNW5kxJVt8lJjTI89", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "YQ5BLCqKzrt2SgYXtvzgYHtA1mi1nKFdADOdf6XGxiIizz7U4yaV8En1SF28hIlKl2Xs8N1y5JIwiPifgl2oZppJ4rRd15Xm7NH7sIFpjnOC56JljLJaa8U6rDbtI1PHOoP86upqK5UP4v2ngDyiLko4XzxyAf7gDWgCjG23DOKHjE5rhvJUP7YMywc1Lkho8q0r6UmBA6jLKgcTL" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "mLkdvWi3ITn7wimWuwYAn24iQr8qy0dULpZgdhbV2y2zQhnkFdM2fQc5hdoPdtBYSA66Jh1MPWlx5IJKNvE2dQZv3nc8QG6BgcH0lAE2oZztzadmFRgTAfgvvkEd0KO9Pn12QF5ewwI5HVjeFrZfG7C3sg9kTXtAdmCV1H9peJmVxx1cY1jx8VAs4JNXz8xEv1zoJAOXk2KJADVyE65FTy7X9UMI3beqdNG", + "value": "gmLApnbZ06px4ncXVjN46zF1LTrYH7UXmxpLUACMy1juovjbH6gNGVOjO7hn63csAt5mVH8lJkPZP9bw7" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "extension": [ + { + "value-name": "wJbVQoWvHfmZLT2CqIiWmJ40rHIMIv56682WpQkYXyYIr0cKAuGP5CPojpaTM70S82HxK1vHrlhSelCGQavNMccXBeRfmR0uLH1nAoW1K5LQqgw8q2W5682AmLPAuP47wXuYeiZQnLGO14Wj6So5SrF74uHzcEGAtbzztqpJ3Xx42lg06E5QXCX2", + "value": "xBb3hLokkYGLfpO5OL71T77x5YnHNpGcSJf1vEmHuUkBj1GZEN0xN8WKYjjLASYsB5m6BIG5u0zN1fEx3E4IE1kCcDgNv6773t5F3DCxwbcprQXmn1W1UgE7TMMhSTgVfdsaR5If8MEr" + } + ], + "prot-type": "ZDu1DlUcb7h6WsMEBYGoEv2sdziCGnFF01HwmtIpsRvoc9UNZs3EQX63xoxdE4Lw6s2sNDSfmfwyhiegLhMBfTwE93JN8uceOeyBJiJ6qfEHxSPa2CD9n9Nw5wc5TgjHuJb62Ucs9Q1yBQJvkmEHoj6tHayAqJiMstSmf4OoNPOgyxLSMhs2AqvhAVK0E2MYnxlCB1S", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": "aPWR73WiwAon6P5PzRoF0bw3KPE0AxRLnFCuAyM60amYSrGrb4Zb7v6JcLJNityx021BtFztINsA70Ti4St3gzMscvfnQFURAOk3lLo3zQvGQh", + "internal-configuration-and-switch-control": "M1bPhKBKPZRcHp6yZMK28wqbX9zvRQlwRwd98PLXGC1n10O0MqUUWdYLex85nlteRHfSo0H4vJjwJZpnqbieggSuF0s2mV85uoPSgxOL80aJZr6hCgwTogf3gH5", + "label": [ + { + "value-name": "bNeZ6UYfa5iepKIvYvc7RNjyN8HYxPhIunAthqIjnTyNvgauLetu2M3HMCxjjGUO3m9cMRw2C4H8cRCP5XkZJfyvR5HbLtRGP0TtJpnel4mxVQmTNyKoNjLFgkI2NrAujtQUKd85imu54JQRht75MTCU5cOTDpnOS5IvjRsB5XyaGpTPS1MwMgiRs7CXw0Lg5mLg56Ja3ikBzeqj7dHLtZCO67Lu7pL4LodQuW0p", + "value": "d0FjrYqwFbZxFNDMr8LQLIt1V" + } + ], + "selected-fc-port": [ + { + "local-id": "P3y0kfavqzPXxaFoGXqjMIxwFLyRbgeSbMTw131jCJ91TOpADHLqhbWXWnO8DU0PGLdzO6TiP2jBIB3miOMARAxOXdOB7GiFsne8tZrb1KECdHYwnCYfcnV2AJDzhN6JacKvcbG5NkH1Txp99nomKbocMTD3yJFINpdZsMX7YE8S4p1dMhrosPA6A598GOIu5OlxAiFyPFiT5b6Jsy8MfASIGUQeArIGf45HmC73aqWfB3", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "WtYAIrliZf1dPsWnHStg65na7N6mh155u3F5m0nd7orXQfkp7FF5D3fKIe7Rf4WK7uHmu4zClSr37Ll6jS4WNjGwxFfNJcpJGY5", + "value": "UwwfpXboBwnUorQ4KoAa4PPFT6or4luYK061QhpjFM5V5VZIbrS79zN2FbuJpQz9IxayOrJl6OhbBgTNIDURcHLRL7saXUbGrl68MQtSECWgTPVttPcxpPpaXJcUDnA5Az5epyZV3V3WCYhXOlv5aM77vjU1ymY0V3ect58w0bkvatsQOXVRJ2Q7dK8LZ6LU1R7uX7TXidksH" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "MUkUeSra0j2cY1FqOYqbCPui1PxnlIa7umTI7lL7wNbuOQMuGcxbU1tVR0a4Ad3WzWEG9pFF4Q2SzOefTLqNNLAwDLA5YD1pzy6JXDgUuiE3ZTaKwtpbeZHKC9PsMRSehYX6t50XoFSfqVZWog8u7HeKRWcDF4", + "value": "WUG2oM3d2IY90L0W1gWvnEC7nyc0d8K13i3jW6oYGe7GZ7v0frwD50CkyOdDXXES7Hb4GrUeGUVF1iG9J4MH4o1u5eZ23DU3cX7KoTZ4NMCH4iQFeCmaSgEXuDZq8LtcAAXZlOV9sxQoHy3V" + } + ], + "logical-termination-point": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "anC5eeZXl4zlPyjslkksGhzz6JFr4e6eBIcIW3F98euXNNi0ZCsyLT7JCE2GS8NuRZ4F2JPaXj0CZiCYUWwxHwgc2jKVrxhawlQr4FBTQtoPLSGxH44osdsvwdiPKzS9MIAIf3tXxRNaClIbpEzSR2ff7xXR6PSSpkswgVtNF8Ph", + "value": "xsL4TDVNS3Uh0EnHo76JzCZm5E16tazTCcXoPK3zFQQxm5eK4klvOkSMQTSc4j5ywUOdwSF4InB4lQGp22VReFv5qfhuyeVW0JaotHsb4W7pMOHGQup49U1z9aWAgRwgsyxWfRZcN7BrNi8vMprNklflvb" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "Q1tn9vz9iTbri7OgJUN8q6cOjpdbjpP9jaxkxYtQREh9DXieK5m2bqQ" + ], + "is-internal-port": false, + "role": "Gwh691KqlM0L9al4UdIOSy3pTx0Vh9EPFVVPOxfaj8Vsa9oWm6Cexxvq4odd", + "address": [ + "BK26Bs6nVjXn8OJOCKg9sEJ0HE2ZCOx5yscaUipIBe5BVGpxqxySbhKLOECqt2vTuz3oS" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "BTpRpoDbaMVW2J37bdQ8V5hAKI5do5IRQ8Bgo6rzSfnMYqT1vC2jHjTjTYx9Vf1LfC1EIl5sAkeqKZj7tlq3EjmqhLrc1sQ8WREw4JYw34WFW8Nptds0pHqGsRLlcBu0k0xhKnNFkCd8K0xd5Sduzv31nOfrhJrBJQSl6y1qa6yM6XZ3P5ygAtiPhxgq8A1JqMXwcQOeWe024ZXTWnaxQkm7JvpJ5jsn5hU97An3HnXLeVEbiGA1SO0Bjq" + ] + } + ], + "supported-link": [ + "3o2qQpVmMSbYaFUiKvY09W6BGvhvl2Ygi0G0hum4mp2o4PHHkxzlmFO2b5pwZfN97t9pXvtcUvAQc9pwHYJVExPPuedtu0CBmL0j8lnUJQDVZ2ky13txBam5pzrLsVeOz7Zzsnm3dZZ41jvUeYrH1FFq763zT9fkgeUBtgEG7DD0O8V3YeCZMhhTfkk1urlCF7d9nKHmfcn4kaZbgBa2LsN0EZ10qnD6u" + ], + "label": [ + { + "value-name": "pSgHwRN41v0CPVYkLHYRkFJpWuspM8Y406LxXqtZVltLhjX20NLctvChZWGE5wI5DluALYryjMbs50nXO8a9vEqnA71xvBD0O7tr", + "value": "UZ9H3BE3YCRZE0uijJKiCiN5NOTM9cC34LC7eha5LU4pMqz52jnEt3K8RDV0IxVMaqTozVlkHhJu" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "G2dPd9gVyZB5JZ8Y71mxMSE2x5oqrug8omXuv5p3501GR1FQ21fOLTJiZ7BqtJqS5feBlDwqwx6fqD6swl9i7Ss6RVocFPWK4adpOKH", + "external-managed-uuid": "9GjAbp2ID3SKVkIE86RNVNp0QDhwfZIox1QIjLqOOiyKv8gDe7iaNH2vkj1zaJQHCGqNrIBgT1So90To0bqNSsa5DbEGMmno3F4mgFC9HmpQni6nlw2dQcamnP213hp6Xtt51XeIcDqzVpO8NQlEUwS9dUag3zf0V" + }, + "fc-port": [ + { + "local-id": "JaH3p1r3QGpqW3VI8is3tg16XYy6uV75XO8mHzqp8PPWSKESUYWo6Xu3N219P0eFOe1nNjMN0tBS67D06rgcgC8Vx14e2aTQoV636SR7ekZksucyNtC3XKQuEUJGWuokhuoof7vtrmFT", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "RjwcWAayiw457K1C9mTvC9KBE5U1CGKuZ8yNIAe17i6e3ZI4durPD4ia9d3MTF8KNyyo9EhgWfmRe5Nsrf94js6kF9YyOYaCxI0Ge9O3o2MC7A4qHenSGt4dv3Dj1NNqoF6COMFcPsHOULftRClpXpCsk7EeVjEjZLVFptKeNr3H4a2WMfdBEI4RPA5K", + "value": "J3KmRqMca0ZtVyx5AlJPzll9hcYRhBCTwnffF1rPUqaPYHNy3wfuRBD0FtJX4mItBXIgRaXDA7krO7RJE75nAAgf4Z40dMlOC4Wt6TYGSiZziRaWYgbqQjFMjKNoo05041laNjJxCI6UrhIhxLHf5n2gZHEnHBoMDJOi3xPx8Ojz5TRuwyJtNDJMkg2URqym1mwWMmlU2El7p4tWv4hiI1XU9ZO0pmfiBLfnZA917m0wrtkW" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "fEqTWxbKSFEYbyXdPmHvCevJ52cKMEd2avN72YRMDnCPVA2DWB0zPwaNqfp4TD640Mb3KUHghc55MZAIss9aQkXgzmdkRboSXrNIlmYvyVskM2Vem4odgdlHAy2rKibHKYh5l7sT2U6OO1V3Xjg6xtNZ2HiM0ulKsDHNK2zFOFlvGgyvsGBZ9hQ3Q8PQu3sXy2CaW3PKIb7gjFMLdfCnwsqft85X3qMB", + "value": "pLgstS3w0jPxXBLdd8ByqQ1yOYB6D4q2QymbihHiBwQy7BDdBfL1XEs" + } + ], + "logical-termination-point": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "C68v32E2JwjXDCyhRNgjOaqbaPuE1i4vo40sYwmHVyxyaXPTLY4r8vuicYOdgKJFOBZ", + "value": "8dmVLLlNJ3Gm1LN18ijk80xpK8WrKN6K0kFE60rP3034DQ5L0hX19mqLvecf1aZTvwxtwRasRdouVm7Wv4XEqfpVlu2eET71hxuOgE87RwtNSA" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "fc-route-feeds-fc-port-egress": [ + "rpeonzm7o25gwH6cWd13MPJf1rHEZZEqhSGEj3LI5QQtxWGl1zpOo0VirCWiusJLkphwk2epT4LiSrwUSNA8Nnq6SfoeH7ZUpgqJaw1VsM6c5CYXpqX4OgayvqM4qDQPT8qVEjRY5X32z1RQsPU85WysmkoEXflInMDU5mK3jN5KPXs9Em" + ], + "is-internal-port": false, + "role": "aLiOp0k25P9RVn2H2PIOMFmAByOUm4eoPwceoo9mdi58F0IIPqoBYC3zaJloOrMDXYKdeTrrbpAQpaqeAGHyiKZklcI9DuFskpyyaZSlgk3FumT42svd4mxqz8r4C6pPnXfxO7K5rOKV2wS4QfhVBHd2PE7jLo00lgy1fa6zQJmSfeX5l6SXN5RuCQOfeOfzWFBcQ", + "address": [ + "091IzgLSxs28QSzQl43OjGI9k2UOXEWPFPpf" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "235wmzIak0ltE0udXSeRi4S72Gg1btV5wSBLscVMcg8IgCV5m1WFYGM0nU1yoODMH6x1ikFvANdIh1NwUK3KiPKFBD5RkAE1H3UZgzuQfAroteUnQX01EKG8gEZsevlVrfVHGhpNJQccXYsNOsOk4nscTkE7PZVg6IXNRfAB5" + ] + } + ], + "sync-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "Qyte46Cq75JkcLVWC9plaXCpYHG6S7uIGYPCWj33oMgsp3o1dFnfDZEBydArk410UQvI2yEicMLBP1v2HSikJON91fsecu66cBH61lp57aHOb4RSW14xHKyJZ1Xbn3arxRyycXEb7dZahIV5BZujJ2UBVJMaEWCbNaCRZ82YlU8" + ] + } + ], + "supporting-pc": "u3z6V3hwXb7LMMVqIxuoz6fyeawrWxVqsmofhFMeILZuxNN8khwMfDklFJMB8zUAVaIcImiq7aNxXsx9J3VQy8b6RPHZotrjE1nenFEvPjUMLrWmmR4MZfSIWszkVTvrUSFiycFfnz29SYneHs0zzLhwdJI0CeswYZOoblEzUGAMwXS5hLERwOnBx5B1b3x23eq6z4xmCZ0", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "layer-protocol": [ + { + "local-id": "D", + "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": false, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": -30506, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT" + ], + "number-of-available-traffic-classes": 28, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_CUSTOMER_BACKBONE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": true, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": -24 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2021-10-19T14:17:51Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_UP", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -81, + "current-problem-list": [ + { + "sequence-number": 12256, + "timestamp": "2020-09-09T21:53:38Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "Uwu47s3pmzwX1zQKZsBfZ35RgXsF3TXXirTpMPO0odYhMG2D9DT8yQRGFjlI5aynujM" + } + ], + "time-of-latest-change": "2021-03-03T08:30:27Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -4356, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-07-27T22:13:10Z", + "performance-data": { + "es": 2131797298, + "ses": -455701179, + "low-power-idle-receiver-ms": 12707026, + "low-power-idle-transmitter-ms": 443922264, + "symbol-error-during-carrier": -2029473437 + }, + "history-data-id": "nx0BJ31yezQxEOHp5oTrTBv5W7WAGpT4XLxyGyYU7PkDvT3AiO13ho85nXG3mr7bdxBL5Ay5hSIMDDeVk7ZBvZzSWfVjGVmLsYxpy5uHPdlkQz8aG7EbYd3VkQ60DsEXq3nQ8RpPWK9FbhPRglUfqP2Ky0Dbs99Lcotk7T14DaJPkqyAEtH4aBHIBcU4lVHxbaRi3KezUXo6gOzM9gQkSp2lBOpW", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2021-03-20T18:00:53Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": false, + "eee-is-up": true, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + 12 + ], + "tx-level-cur": 109, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NONE", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_TESTING", + "pmd-kind-cur": "9nV2QxLvC2Sz9oZFujPZQCmsXlpx7iDhFqbnYWTsZDU01LGn4nmURAfGVE53OIcl9fIZctj3Yd3RZBe3QsQH3XgQtdLhWXC", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X", + "pmd-is-up": true, + "link-is-up": true + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -1000348181 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": -40, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL" + ], + "short-reach-mode-is-avail": true, + "wavelength-max-list": [ + 1781515954 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "9nV2QxLvC2Sz9oZFujPZQCmsXlpx7iDhFqbnYWTsZDU01LGn4nmURAfGVE53OIcl9fIZctj3Yd3RZBe3QsQH3XgQtdLhWXC", + "speed": "5cOhG7cElfocJC7z5X90MpQfCCoqrSfw53FDbR9oZxAI", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE", + "temperature-low-threshold": -5, + "maintenance-timer-range": "OjeNJOnLwxS3PRepGFB0nXTXHamn7wdOHstq8RbEgVz5EOudlXdAV6pu8LR8h5ORphhp0l4g8veNbI0pGdZtbpXbaPjkM7b3hks9FoiGMwtXelmMqefBDdMNUYZGXaBen3g2kyA643Viga5Goc91pOGbEGRBIkI5gY0AwAyAwlKEvHdTUeMb2lnG16aBrSzzQr1e1zOpUqWi89bUnQ5ibkQ", + "supported-alarm-list": [ + "r0FKS6jAxkO" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_DWDM_SFP_SFP_PLUS", + "rxlevel-low-threshold": -127, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": 257427340, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": true, + "temperature-high-threshold": -98, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_MT_RJ" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "performance-data": { + "es": -1107369635, + "ses": -534768849, + "low-power-idle-receiver-ms": -933681793, + "low-power-idle-transmitter-ms": 1085036508, + "symbol-error-during-carrier": -1838555829 + }, + "timestamp": "2022-02-07T17:52:34Z", + "scanner-id": "yGjdREOWHebbxXjGqj55iLpPumvP", + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 101 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE" + ], + "maintenance-timer-range": "sr3vezeyPAhy3Cx8OBq2N3Q12sxWwaxYBBmI2AgR2qi5UP5JjvD6zt8BVFqkHXabqwTs71c1rmZmb4XmsAt13tuQ8UaPKl02RLnQNzSeVJsYNplfZG8U9vL9pVQ18J40ujIhKsoxbQvZgI67g72pCFyTshVB0Rtu2bEME2jPSGG0pF8FM2XgHn99EWCEN51P9FtNHMurt3sKAAheCeujuvk8sXF7UGP3liIU55lq0N", + "supported-alarm-list": [ + "fjGRya22Fn2ZcH7YfWUA6umbrItrnDTDX", + "mnBph9Eb8QT7G03ABaXPdopHQNcBi13EgE3pNHBOpmVYmZqP1nF6M4NuJS51T0G2FBrkb28sg4qDVRsO67US4AeNscHdcf7RQzcTtcmKgEn3vHRCHMmLeBqGF7LRmT" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": true, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM" + ], + "queue-depth-configuration-is-avail": false, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR" + ], + "max-queue-depth": 1115901426 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "7haecfht7O24qr5I6PdFvn637JsS8607f2mjhvMhcOlC7ic6ZiLmFSpMtRxBPxJ4zXnJk10wQd0PvdVuvzR2r8HM0efHDYM4N1N03FwLKxAfCoCZXl1gtI2lOh3r8HwVAbVvJkgtRJBl75k4", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_MPLS" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_AUTO", + "compressed-header-length": -20546 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": true, + "information-rate-min": -1578197807, + "fec-is-avail": false, + "burst-size-max": -26728, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED" + ], + "egress-shaping-is-avail": true, + "information-rate-max": -839787429, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": 108, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12" + ], + "burst-size-min": -23641, + "fec-word-size-max": -3363, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -77, + "current-problem-list": [ + { + "sequence-number": 12217, + "problem-name": "QpZk7ePGQXh0O0m03ntI98E8QfHrKVDscuMkItSqr2i72EZX1tx3tcbjjSC3F7wKBaWbwOtPQMWKqOIs97vCjyODjqyYyWA17wdvdGk3k8OLWo55nsIH0ocjOCamzCoy9t3m1fhmn", + "timestamp": "2020-10-20T20:58:27Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2021-05-10T17:56:00Z" + }, + "ethernet-container-configuration": { + "fec-is-on": true, + "fec-interleaver-depth": "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_32", + "bundling-is-on": false, + "fec-word-size": -26504, + "encryption-is-on": true, + "maintenance-timer": -784600257, + "performance-monitoring-is-on": true, + "fec-redundancy-size": "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_16", + "maximum-burst-size": -28119, + "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "interface-name": "kNYNZcx8RUbeu3QbH5WVyetdm64AZxFjcw74IwczjfONiwYRBMM107eeebHdImpVSoZtU325iQStfIkImZKf6Qtk12qCpPp95gCRbxXtfHOuq9dM0P16FnrzpR3GykIDAcuDJj6Z1NljWq5WfZUVelmD4pcCJU7b6uOQNMHGz2Znt5bAW6vajRFg8RSRLS2SmIA1vhIWbHcwEn7sluCFeaVm1F6Np0xDJ7F6gf2jO6QluXNP", + "loop-back-kind-on": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE", + "fec-interleaver-kind": "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION", + "egress-shaping-is-on": false, + "problem-kind-severity-list": [ + { + "problem-kind-name": "SJ2bHqEYAIT7eLfWNN8yDjRnO1tGsYOkzQog927JD0IJEXFrCNR76IvUBYsVOh8nZww8qvJVnrE1hbsLYcL5U8Ro6cbMt", + "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING" + }, + { + "problem-kind-name": "kHxl824VqoArxLMaCYVzK3i01ucNXnPa5ev5hr0zHs0e6EpIuk97gr7hWb5LzMVw0iB9CBIjWBy27PCC1LJhcQz8UwUtaHZ20scuVUNRndTv2n748QdlyMlkafNkPEnHYrbUlYLJ4x66Ud2VV8glUBGXJl9ySo7QPiK38oMcNSjzXduSlC586L5H767RveHkwknEA1RfL2OIfbstFqBLbysawz11NBebNBQnvzCgBiRI", + "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "statistics-is-on": true, + "maximum-information-rate": -1194868083, + "interface-is-on": true, + "queue-behavior-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "dropping-behavior-kind": "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED", + "scheduler-kind": "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT", + "weighting": -56, + "queue-depth": -1082863711, + "wred-behavior-list": [ + { + "affected-drop-precedence": "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED", + "affected-protocol": "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV6", + "wred-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb" + } + ] + } + ], + "explicit-congestion-notification-is-on": true, + "cryptographic-key": "ou6cAWxWLlE4vSuX2giB0rzS6beDkNpI9vVCrkq4x412XvZRLikLBTvzXJc9pCSqZF2jRlnpporeTj5wth943xD0gQ1xkLYbiSuad" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -19742, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-03-03T08:58:36Z", + "suspect-interval-flag": true, + "history-data-id": "PjBHHSPpBps1LxdLS5yJsm4WEfCH1tKQNdpmX7Eqw6r9DxVnC", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "max-queue-length": 167296300, + "avg-queue-length": 2027411742 + } + ], + "fec-uncorrectable-blocks": -395583357, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 925486286, + "tx-ethernet-bytes-max-s": 606297380, + "time-period": 221208160 + } + } + ], + "time-of-latest-change": "2020-02-18T19:29:23Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2020-02-06T02:55:55Z", + "scanner-id": "X71StV7DhnA8zO4QpkAzAPNULDoW3vmSCgLYbKBk73syRoh8IRHaym5c0t0", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "max-queue-length": 1826863894, + "avg-queue-length": -1061482591 + } + ], + "fec-uncorrectable-blocks": -854541831, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 533952180, + "tx-ethernet-bytes-max-s": 1277330340, + "time-period": 1080914412 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 93 + }, + "ethernet-container-status": { + "timestamp": "2021-03-26T16:48:17Z", + "last-10-sec-data-output-rate": 108397254, + "bundling-is-up": true, + "total-bytes-output": "188632107574906816", + "total-bytes-input": "3481976717732802048", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 278631898, + "forwarded-bytes-output": "7350806208057876480", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "2336460973161418240", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": 6616, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-04-28T09:28:04Z", + "history-data-id": "GM6FLVWbIjVY8VbN8bgWkLUvjAnnE3ScPZRsMFvuQilQeo", + "performance-data": { + "rx-level-avg": -52, + "es": -1137264645, + "unavailability": 384904928, + "cses": -1561420483, + "ses": -1558434795, + "rx-level-min": -63, + "time-period": 13221578, + "rx-level-max": 108 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": 18954, + "time-of-latest-change": "2020-08-31T11:04:38Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -12223, + "problem-name": "44O5spHGjITF466s7k60wtHpBAa9ho2ll", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_WARNING", + "timestamp": "2020-06-18T15:42:43Z" + } + ], + "number-of-current-problems": 101, + "time-of-latest-change": "2021-07-15T23:55:19Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "mMUKPUnh46YEOVnS2yUpi7ikuJQWoSkLxfvm1Kv5RtBxhRhbpbAzbKLFtBtSmNDTU07VCD0lYuTflaiCeS4puPWYjpQFc", + "tdm-segment-size": -1637767777, + "max-number-of-segments-reservable": 85 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "dFUPaN39hWguYzY4j2tOShMbGuQLHgKMNEtYrwZAkf4bGVf0XBOPSs" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "timestamp": "2022-01-09T08:16:25Z", + "performance-data": { + "rx-level-avg": 71, + "es": -1837294717, + "unavailability": -552934513, + "cses": -1002673087, + "ses": 300365416, + "rx-level-min": -77, + "time-period": -50403255, + "rx-level-max": -107 + }, + "scanner-id": "T4Tte3CDXXQxfvx7JHHRxdWm39v8laz7ekssn5XcUNK2b99UQQDgVACYB77OhyVvSgP8lNc7s", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -12 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "BF0NHL39j5cfBUFKoCOlfCwjMlDJm0PXxIC6tGfEDkT6eqQD3wQa8etUz7wVZdKwVfuoNKVq4OxaffFaMnkUCOH3N5RMiBaeIEuvgpWc6lnlAUnmiH9UnQPaVGO5aYjSDOoTdc6jplwZ7TeptfbIX1LKzzPJy9u3XSO2WMedZC47oioRpsrmlc6UMWwcX07MKNOyAULrxPqV0PEp95MuaSgOGMSDMZhoM6WeSHyhxYcxNIW", + "value": "GAiQlzw1lox0fOgTMd0xMyObwTIcBx09ZjZkSne5LDXSjeMYjMv5kbhQ4RUGgVPg6HAYWGVAjLsvZetiSYfc1wV6oPEEClUI2nyRVmr77TC605gSVvXWUK2irGO42BMWQdFLz6SGSuESrMCm9zb3bddDM2HGvlulya6Z8RF0lbKNXn1ZO" + } + ], + "configured-client-capacity": "qQbDqq8a8YxQmvAlwrD6HdULJruiOWt7EwK5WS75QEV42npyHUwg7q1QSn1ybmFPTpMH9UERyrVAPc1o6pE5IxOsUP05byMWPzEZtiITKwmrIfHHEdMmKAOwhHtt7fhWGVV16wVI291KoIjUV69xyP3Iww3DDkscgfdeL0WN9XqpxJckHlR8aUQziT4N", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": -484541283, + "last-10-sec-data-output-rate": 406838074, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -1463642957, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "7lLHxJyn0tWLDP0kZoBJgijjWV0pwelvz656HDmH6ilB7dVZtwIJG22vPVMe98JB6OzOrVnp6A15NO48lFSTzUooPbCRbes9UTXePdDVNw0tdXByCtjbgIr5L4OWa8542ViJ0OE", + "fixed-ip-v-4-address-prefix-length": -4, + "fixed-default-gateway-ip-v-4-address": "w8ptKPX598dJAbuwZiy8fu22NL2thQxNQX9sE6y" + } + ], + "broadcast-packets-output": -553821757, + "dropped-packets-input": -874911295, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE", + "dropped-packets-output": -1211853, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "LwzWSXO2vOiZQkEBfZK5xpNmyg0xGGwj4X8XUWZhK98suF3JEFG34lpvBi2hYqB2nJZ9xRih0qJm5EXCbvxfRP", + "neighbor-ip-v-4-address-list": "s7EC54dZjORklICuA35X0BUuMiU19JMBQi5NfiEqYvLj5nF", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC" + } + ], + "timestamp": "2022-01-20T09:43:34Z", + "forwarded-data-volume-output": -106790903, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -711351421, + "last-10-sec-packet-output-rate": 783972282, + "vpn-binding-is-up": false, + "multicast-packets-output": -1946680403, + "broadcast-packets-input": 635121920, + "last-10-sec-data-input-rate": -2015848041, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": -969070195, + "data-volume-input": 205500842, + "data-volume-output": 411889278, + "fragmented-packets-input": 799974436, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -1261176749 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2021-01-13T10:40:43Z", + "number-of-current-problems": -91, + "current-problem-list": [ + { + "sequence-number": -21271, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NON-ALARMED", + "problem-name": "9XOUkR7Bgf3A8DCNHnKRMPbIktaAXz57wLTQu0jL7elfKP2jcN2Ru5zOzBgoadnyZgglhs6oGjEi9yCddE4HKwnb7DraRPAIXR36b2vRl1", + "timestamp": "2021-10-19T03:43:48Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": 12480, + "statistics-is-avail": true, + "supported-alarm-list": [ + "nUYmlhJfDa8MlIQt9DZD9Q29O6qguB9SnZ6AhHPUSYz5ypyH3pdc77dVeE3A7ckn4iXl0F7SvGX3YoKTFP5NXbA3HEDGIY3Mg178y703FQ6D", + "IoLymqvx1y6x3Mf1QUaJTih0bcyTi3R0suqOVNlOdrlh5saVmcw8nF8yRGj9K224wkSj857dwkuBNxp1JV96tawkIPmkRoogAgzIlHWJTidyPCArpBxSD" + ], + "information-rate-min": -1604407831, + "maximum-number-of-ip-v-4-addresses": 30180, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "0BVKFK9S1irgd6tinBMBBqfpX73Xf5lfzgZe00YTaqaooDGD6k6IClZsl3hA0CPrSHyLHwESOGg4cOIi8OSK2S4nNlXFXM7Qlxt337VSG3WSJwaRl3tfNyCsTrZJ5Yzrv2mr19jHc7rVEuERpZ64pAw", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": false, + "information-rate-max": 270898754, + "burst-size-min": 24990, + "ip-v-6-is-avail": true, + "maximum-transmission-unit-max": -2973, + "ingress-policing-is-avail": false, + "maximum-transmission-unit-min": -32676, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -226828245, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2021-04-15T11:44:06Z", + "multicast-frames-input": -2011699195, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -88843919, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 937479624, + "dropped-frames-output": -1650964921, + "statistics-is-up": true, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "last-10-sec-frame-input-rate": -561264935, + "errored-frames-input": 803738346, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "mac-address-cur": "885sPrdOVon1O5IWn07hH0DRwlGj9LN9TSCBbHp65FZLCHzZIy8pzL85YPpZAc9m4DXgkeeiTe3wNvnn3oMC1NA0CZZ430q7DffYum8nA3Lfy1DuphYq4yiyxavAaVAO3HEx3M", + "broadcast-frames-output": 2094291010, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -1217644665, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1153685413, + "dropped-frames-input": -1157830457 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": -23448, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "LJe5ore5yvTDC1kakDXnihN1pv8JqBu3kI9A9nFAKr5fkppE3eTdoH6N4eouHSqTszuBO13qk9FEyWbtb4GzLMeQSCcrmClO3PhJIla3uPzUEKoPPWgsBual6fNsJ88FPpoxKqs6821MMpBtdJOOdQab", + "supported-alarm-list": [ + "vHXDmM2CbN3wTbyUXcbqyh9e5e47p2WUJTxXxzzBeC70FxMCJY2973nchscGm8sXUZUjrlMxQTxvik0Ua23hYrl7LxO7y8Wk0QDj3iQT3gpmApgCjbL9C6hfwX", + "W5ag5SLoW37H7nYlPfBrzM4Ah2RoqODmMFuRq88eb7VauUvj9YCALGbUIUi1JNnntS6T0e73lU6HOB0Qsui5alZLg9MRX1eqLkbDraHM4FmL8mtARLFT7EwnOa6Lck3XE6B5gaKcP6XXkqy345PbKlqqww3IQ6xm40kka4wR2mPeMfiQk7TWkjmQH" + ], + "hardware-mac-address": "cWjLJ91PhQg3ZxLbh36CEUUBoSWa1176XjJysDgBlwwcVho4kuHRgtkEdgP7hO577OFrjV", + "maximum-frame-size-max": 13837, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -29363, + "time-of-latest-change": "2021-11-15T08:30:47Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-05-09T17:56:46Z", + "performance-data": { + "mac-pause-frames-ingress": -1267342767, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -991004831, + "mac-pause-frames-egress": -881168895, + "mac-control-frames-egress": 1000541934, + "oversized-frames-ingress": -1262794589, + "undersized-frames-ingress": -1120141325, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -2102184827, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "UpWTiyV0eYAfgwTzpJcOxc", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-04-19T05:29:54Z", + "current-problem-list": [ + { + "sequence-number": 12341, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "idVmZPRHfuXOKHEihVUquWZdm06HBy5LL07DHRcXd9LYIigZd2iHQ9Mc9KTKiQn4Qnzq6LnjM0huiplvjv42EQeNB0p", + "timestamp": "2020-07-16T14:32:13Z" + } + ], + "number-of-current-problems": 41 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -104, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2020-05-02T01:07:07Z", + "performance-data": { + "mac-pause-frames-ingress": -1807979239, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1189505605, + "mac-pause-frames-egress": 1154787454, + "mac-control-frames-egress": 1014821202, + "oversized-frames-ingress": 2059398890, + "undersized-frames-ingress": 1740368024, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -201351309, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "2kCO3hvCrEtzxH05NJ6cClZW6Iav9CzcX300knuD1XcrwdojOuoqIfeOPobYTKaIO2I" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2021-06-01T16:21:11Z", + "performance-data": { + "cses": -666868725, + "es": -1613406381, + "rx-level-max": 61, + "ses": -2041160021, + "rx-level-min": 103, + "rx-level-avg": 15, + "time-period": 145845040, + "unavailability": -1584833651 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "S645J03RbyD5UlWIkt2VQ77o5mEC94x22B7Et2vFt9CfuqQGTSBBSBSPXwj6sQ0uj00EUwbnFND1elIZdbB5MlMBR5IbNAF6AGDv4OKBCfCIAczOo2LanqMevmpjWXhpvUUzBw25MENmRe27hG9E6VTB9aMYZ4fmQ1VjxXoju3GdiIkzgtdmhYYi1C80GnnpoaIW07fm2NzkoLTE6Z1fXRyQtyR2W6jk81800gmV3Nfrq1YxSZMHIc" + } + ], + "number-of-current-performance-sets": 4 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-12-05T15:55:12Z", + "performance-data": { + "cses": -1429162301, + "es": -1565455713, + "rx-level-max": 107, + "ses": -322856841, + "rx-level-min": 123, + "rx-level-avg": 116, + "time-period": -1369738285, + "unavailability": -1684709345 + }, + "history-data-id": "o2aCX5q5xQYnfQeUxWY5RBePat5WR7I72SBZX1WmKUJRKXLaLC7DdmkoHhcqpUxrE1it2fQE1roMh1O2DVxR9R7R9b9y5HRBI94CgU9iepWvqKx", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-03-30T22:03:06Z", + "number-of-historical-performance-sets": 26686 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -24412, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "UvmTwberT7lQ8RSzvaBLiMOqZ8WE4H5Q4rBtDPUoW874ZZwm177kLVCCWy8S7eA4Fbxa0rzOzGKqF8MH7TTLHvfvVof3CP7h0EsSXTypzaP6juNqfybO3rjRPyUjfTAfpUZeNxDeItlTP0j4znTuG4dnv7GKS8S93RoIh1XRmaKbaV8Ba1YQXbdsbL53UX5X" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -27741, + "problem-name": "xKDPEHbHzCOW7szPCB2JJUYsgosslyoKaTAGtLf2f3Rfwq40TYBvKAXSQhkbHAWJuoqX1FR9BAoZ1kZMat9V3YNTf0WOsKyO0QDUnn3YXjXQDPDNiEAdDgYK8MzAx7ppX2jchebfx05aPAQZfi4Sy2uyP39e2qvRkP4C3fRB7ODXplOwETg4NKDuOEAI46AgNEKQLtjSiPHzao5G9dLWXgjDU", + "timestamp": "2021-12-02T20:08:13Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2020-10-15T06:45:49Z", + "number-of-current-problems": -56 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "vdnXtAWi7v46hL3l1LWjIxNzZUNhEiR1v7YRzM1y95EqJIDKls33ZIDQui89BZaYY1PyNJYXGDfpdT9yl5tcF62ahabS2lQSeyiU9hJPUYfZJgxWl081Z3385e07rI0G8ashrbZd16cDmBzACAttDwBIKtIb3AJcKbl", + "value": "ekhgquTN5kfzUIUpev0QQI1UiD6UOj63EgbWKWBHgQ93y3sMrsuh2obk197Ht5C7lNV5BxF" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "lMdzx5ndfcDwBeIVW3MW6yMFIxJoC8nYUspjyFwFR9bloUgcPV8VlMs4b4kNcHDY2VhAAGfjPiE54N9UI9HVV2R66bMaTh0VchnE" + ], + "fc-blocks-signal-to-lp": "QFUmCZ9MLJVkFJmoHkAlulDu8HEvetZ40LqvCs9f34AAFWZf9zAvU50UNwp1RgXS1fnwHwLLsld0acfjLHOxNGjs4IlWQiGSxVg7j1SLn5DpaKANsgd7XwzT7UHX4nHBiXIBZsfeq", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -36, + "current-problem-list": [ + { + "sequence-number": 12483, + "timestamp": "2020-09-14T04:13:38Z", + "problem-name": "uduF4vXbxAY0", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "time-of-latest-change": "2021-11-12T09:14:36Z" + }, + "air-interface-status": { + "xpd-cur": -41, + "transmission-mode-cur": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ", + "rf-temp-cur": -61, + "mimo-is-up": true, + "tx-level-cur": 52, + "local-end-point-id": "KkaAjfnhkOi3pYkrpyNj29A2bUa5Nn0pHbR1qeaKVsOc", + "rx-level-cur": 84, + "link-is-up": false, + "performance-monitoring-is-up": false, + "xpic-is-up": false, + "remote-end-point-id": "0EArjTtt", + "received-radio-signal-id": { + "numeric-radio-signal-id": 45164, + "alphanumeric-radio-signal-id": "zbyboOotjUma3Mld7Q5Y7wcNpExj15Asg0wEGUZZOl2K7nX75VX4r9RJGh2zmuTCmp" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": 1995406974, + "rx-frequency-cur": 187793452, + "atpc-is-up": false, + "radio-power-is-up": false, + "snir-cur": 85, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": true + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-07-24T03:30:21Z", + "performance-data": { + "snir-max": -22, + "unavailability": -184367085, + "rx-level-max": -90, + "xpd-max": -114, + "ses": 194004520, + "rf-temp-max": -19, + "tx-level-max": -37, + "es": 1267359224, + "tx-level-min": -76, + "tx-level-avg": 8, + "snir-min": 104, + "snir-avg": -86, + "time-period": 658646868, + "cses": 699148662, + "defect-blocks-sum": -23349, + "rx-level-min": 89, + "rx-level-avg": 20, + "rf-temp-min": -123, + "rf-temp-avg": 14, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -102, + "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "time": 2113063796 + } + ], + "xpd-min": -50, + "xpd-avg": 82 + }, + "suspect-interval-flag": true, + "history-data-id": "X1AplpmFivXoxKrMpkj3K4Cu4FAFhhy7j1wwqKbBg0ZNDjr2DKYfOsBK73hglQnwJU21w5CM6CsJVLDqotF4" + } + ], + "number-of-historical-performance-sets": 7303, + "time-of-latest-change": "2021-10-13T23:07:31Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": 931953176, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "jLdgcviEaxM1Sc", + "FUrXrQt3jqD3bT4IZTX61QoGOOGs5mHK91AAR3w2l15wV26MVVKOL8urPbUUpBwyu61e", + "qc781wbiikuiwIKbUngazMkeWJSPCX3U9b22HelRqH1WhL0b1gdAUyGI9zpLotxxwAA5GNW6uYVLBNXC32dQsTqCkQfIjN8PfIUVnI1RyOCaBrExmRfODFqPnGqGlynA89vvKoei5IkG2Z5oIkcdSDVfblOoL3YL5l8PBmZG4kf6bkuLxzZh4Uwf7cDKgtvlOvapR1YNldMop8aWH15", + "1EavJ7GlVy4rZt8Bu9QgWHGgNBiQfQs8mCD5BjixRnYJQYcc02sWK04xCmfR4HRqbuoFFGco327M1cYTejPYjTnV7uEc3vC7Z0MwzYVuSUgL6fEdyl3R6rF6NjiRPMYGFK5eA0IkMR6L6CYwY1fWkU286kZVZPtEzyK1qkldbjY9WOxUPFIarLixX9kWYOspeciFxDKAXAKTo9F5Offg0pNYq0MoG", + "Wv2Hr3E5MU4iH7shXagQn9aaaIlnMPSAcM9DHOBtAFDhE5zu7HkmQnw05RgRz0rLMAhugSPJptS4qjqq0KMJ7bB4URVtRefwHw0PgHyFajBtC1TDExmDIXIDHv6yCd4bBW0RErpGK01mUURqsd323DF", + "NC0UOvw4QThEojW7lUUGZGXoP7dw0iaNM2zty5pgYHVe0JllvfUmORKDQP1Q0bDMec7E9xU7eHd6iysNNe1B5M6Nt0Dl3809c7NlEAkS9xZs5j7Kx9euNkhgcUCgUCp6J5rgFL8O", + "Z8figZHp5bcqskueOK8i26U7xaEaaskaBrkJj28odcGyobMdNNvPThWjrstCVGMoZY7i07z6bfEziiM6XaVJrK2L4nnZ31fVZe5SdEYoMuQ4Eu2uEYdYAfJEuYwqZDlQKqAX5qeRU4NrqQV5G0V8fwEJm21dGm3iNE7K4ltRhgaIYXFEXsM4QjNclPp13kjQYrsVEVEO4Go2DVzAndE5wjhS0GL405MRo7EU2aIYQYTlTsN8Fjd4u" + ], + "tx-frequency-max": 1467865700, + "maintenance-timer-range": "Gufl544j5sIF5Jcot9p1f6JP752xDqWbU4wS8AbeULLZmXoP6NRmLA3SyXi3f6e12CTbdWh7H2Z3ZfL62CkF4fqC4IxjGLkJg6Ut23sC5jx4yi2sMe8Rtylx8TQOw3pM9b7bes", + "transmission-mode-list": [ + { + "transmission-mode-name": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ", + "transmission-mode-rank": 248145962, + "supported-as-fixed-configuration": false, + "am-upshift-level": -20, + "tx-power-min": 92, + "am-downshift-level": 35, + "symbol-rate-reduction-factor": -74, + "channel-bandwidth": 2027522050, + "xpic-is-avail": false, + "code-rate": 123, + "tx-power-max": -111, + "rx-threshold": -25858, + "modulation-scheme": 29601 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -1157098235 + ], + "atpc-range": 123, + "performance-monitoring-is-avail": true, + "auto-freq-select-is-avail": true, + "tx-frequency-min": -2053086047, + "rx-frequency-min": -1309884395, + "type-of-equipment": "r55h5UQXC67ywShA2sTS83pk3rAFJ6d23bb851Yz758vQp6SJZCJ313YkwDVuRXp28yZ1oy0lywbXCVytxhoqdfLBKG5twunwUmyiNyEl4HbyDJ22Tit6xeHiMELi01PVnf5aNBoKjz", + "atpc-is-avail": true, + "supported-radio-signal-id-length": 13517 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -117, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-11-11T23:36:01Z", + "scanner-id": "QKJQhwb2Pb3yES4BMd5LBoMwiMsjWqtMadvjJGlrJpZf94QW9NHKcl8u7AN319I3m5nXDIgnZgu9cd5d0EX4Z5yZye2rnCmBHJqdkHA", + "performance-data": { + "snir-max": 33, + "unavailability": 346690354, + "rx-level-max": 10, + "xpd-max": 39, + "ses": 477856958, + "rf-temp-max": 116, + "tx-level-max": 51, + "es": 265461372, + "tx-level-min": 10, + "tx-level-avg": -22, + "snir-min": 49, + "snir-avg": -69, + "time-period": 1613957630, + "cses": -1480247569, + "defect-blocks-sum": 17598, + "rx-level-min": -63, + "rx-level-avg": 64, + "rf-temp-min": 89, + "rf-temp-avg": 109, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 2, + "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "time": -1272860855 + } + ], + "xpd-min": 10, + "xpd-avg": -35 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false + } + ] + } + }, + "label": [ + { + "value-name": "nOVWRfAiA5AClDXmN4381y7nd2sPz7zPNmDFB5Pb2hOnVDJAzFIA5PXiRi7jhG852LCwQrzTJfgwKS6bxOMCD", + "value": "MmLUFVsNSnqmLhNk2osiMcaSozy233vQqhC54WLWbbiWkX9m" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -20938, + "time-of-latest-change": "2021-09-05T20:25:45Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-06-18T23:40:17Z", + "suspect-interval-flag": false, + "history-data-id": "xv6a9lpv879fYValdvA5AF1JiLqO3cWAAUKJf16n8gu63Ejh9LmBqfkJ0Kp3Pdvp770f86u8eZ7iDqzF4N8u2t525m6Mzt3zB3GBaaKg1RyF97cdMkAOFxRLUPxlaBMLwsfGDZXEInbRnfX9ApY7WHSIoi4qLQ4hbjQGiFc", + "performance-data": "SHvh" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": -23760, + "problem-name": "4J41WPG495rSkC46M2Cq0Xl7E5rrj4wfFsgB9Xxa2Y2es6kf1WF1LS0pYjJ9f7oVzEoABOLwENK7U", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-06-14T15:31:38Z" + } + ], + "time-of-latest-change": "2020-08-24T13:51:39Z", + "number-of-current-problems": 99 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "iX5rn20eDAgz5wmeGADC5VeuZMrEdgqv5nWthXzUpPmueIIUidpf1DJ0h3xubXZgdOBuDbh2SDxYl7LDdaKeNl65oDrztrIGfjaSmrMf4jdprYUE0ESG0YDgu4IXnqDCBNmY715bkitD9f91MTHEKcUehu3EUG9olnmsorwJBReC6oE", + "tdm-container-size": 2034338148 + } + ], + "supported-alarm-list": [ + "FPQD2SX47hHLglLCwcn8PQg0qAXfuc911ZEVJu0RDzCTUgorsLzhtIiTi70Fb1G41dZCHRtcqY5delE", + "IsWXUn" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "1qj7HNadAIeY4Cco0vMBYDQBK67ufkT9K4gjRjpj1D9Xfdm8I0BHEjagphKFtvG6zWhj7GC9kM6rZkrAl39Rmj7MsJjVfZTGNbZNRCW3gUn77OHkRQbe1aSlT390U2HzdGmXaa0qXnyW47gVYj1RtTdeOm7IoOaumwrpzjPwzfkDfAy5LAW6l1k2nrCE7M8mbrLKKs8" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": false, + "performance-data": "GOBSxK7E8U5NbGgRjMv6xCSmQF7JdEnUtYESBDxJqCotaFktrPsQkccaScM5Q1RbRn4s1t4jXkM8Z6tjNV1786aSiWP8PzcGW81PB58ypUyhS2AGPtFPzPHRDp0sQ41Ec2uN7udohMF1G7HvBnda4U2IbU21Y3G252PcoUBFG8HeggCRvPTABNaNHcGxgerd88qx3T4B1DQ9UsShhMRSr1x166yek0rt0J03C4FwAvxuPqLY4vIvog", + "timestamp": "2021-07-23T15:06:27Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "yP21PLTTgQqEqN3MCtpApUaNbqbxE08dP26xF0iNQIr8vvUZQjr86BVhU6Oy7ODOQKdoCvbk5vsASmrIFSILmD2gCJGBpkh8Wvwq0HK64cyWySx5KfR6LLefmVIM7ZU3milfZ5d" + } + ], + "number-of-current-performance-sets": 103 + } + }, + "address": [ + "D4acCFxYSY0YX9Hv93yUIo9BnXOhPYpkUrww6WmQUnHJwo6xjxjTVsvaibr79Rk3iQrhMN7y2Gay586oFpaAKFK2I41RVlM545eQKehNUjdRrj87BizlXcfFggo3u20yZ7gBlpo7ICZaN79opAJeMYLU71Pt3QTUX1varMh9g8b3fckwN3K" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "a4Cai0ewVe5i2ZGpxE23TW0x3Q4dwF6HBJJTJPiw3fP56vmDaoHVczlghptOXznqa6cTNmiRB7OAC3dErMAweN", + "value": "vc7b1yqsJoEuc0M3tTJ3oM926NuC1hgpmnsnVTHEhd9t5VozH0u5Mv7KbuecLutZRWnNP4j6aksf8IOPIbMnyL7JfmOTQhSA57fU4yTeLdtTVaAEdmTL70nfeb8XsSpy0EkW45aPivI6FaKKwvwEnTTCWTrgLQODm1zq6Bgh7QnE1ZppuN3RyOluzMKdurQQki9iTpzS7Wx0VOq" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "tTsoo5RPHV3pLoFcHvYoF0RTJzcoOFG9y8xW6gEF4z4PXJ2xfSVMKMyldKBTqi2QirNgIjWEK0tzCn6J81vKG36LGHx6RrO2TtitMe7w7s6JQ4kQYPAwLy9jgGhZ8511zkmdqlCxNA8", + "value": "EsduaO" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "local-id": "IoKl82ZtmOwHHFL3ZlE1HczUbz48LSrtg3Oo5NKjtgSaVveMQKNqWfc7Og8A0zVguKwrpgCTwuVjZ16ILL0H0cHHsP9sg4ACG636nxRL1M5SO3srOs1HEAg6hpqxl0127W0mtJ7mn4e37zvO1ovGYDEf2", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "tl912mnB1ZOvixeCPnVIEmBLb0M6G4g9ph2rDhVE8Bar8gVXDIyh51U81y6zCmI2DClhL8VTKXcSd0IQIgZFhUNasUJX8jRMV43GdQrXGEHTEpCeFtUOnzYIlHFu0ogNsblFTNuzjclXtX31iXPGpOgKvN6obebDpxbbcFKvRXslMvm5l3DCRTefylDJzGeRdp2p5EUOCe1gCnlPrYraJxphSU0k", + "value": "7bGw56tBSi5ZjmtzHi0GB2h8szTerdPygwXduqOeIU52gytXIlvbnNkHe5WFaL6q93DDtrK4dPYtgrjYMOa9tmRHrFnB" + } + ], + "transfer-capacity-pac": "hJow62zQ6gPPABm5Ycgb3urzA1lCNKrWtPkrKUaQaZGLt2Ij7Yu2kVBUOOptyIhUxCd9wn0yfybIsMTrKftX2WJRK0c", + "external-managed-id": { + "manager-identifier": "PLY6wuXUicvHa6Id28fXeyVFul1ZkUZ9FP83k5PuacccaMhcMx10X", + "external-managed-uuid": "yrarquliES7MVjJCOLOSPZE73jw5btUJU43dyon49mIWGkzmXneNmKUq3qn7LhQxdTKDaZIjei7UuG8s4mfiY1A2jX146RBbDePN5pYjH55cEdwArLSqElkXalT94ukHA9mGycZ8i5cW" + }, + "client-ltp": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "peer-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "uQfuYknRLH5Z0qBx63ytHSHcUv4HJeF6XMsN7PxKxCBxV4WT7mmPf3T1qXJ24g813AG2pdEOIgdvk2osoK9vG2x6R88Vo8OjInd0sKOa02xc4VEkyFQ6HncrvdeLlV54ia4KUKNMEkZI8v3G3LMK8Q3DVighdddno97aLMPq7G073VF6GjJO9Mj54Ae" + ] + }, + { + "uuid": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "embedded-clock": [ + { + "local-id": "wNGXI905EEivmT6VhHw7H6zURci3WJPspvi7wi4aOey27EYhlugUAIOkU7nII42ZzkZ5u38jaGd9kbqyyzs899kV8IDQMFIeSHbmCbxMRLW4WeumNWvWXHJ5hmO4UwaM5d0Hpyu8bq47EymknR8cqSiI6YE0mOErTF0a5ubgMffj", + "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN", + "phase-aligned-clock": [ + "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "encapsulated-casc": [ + "4sXuGwnjiN0ye57zZPxc1I6WvaqbehIaJFEh3UBlHtTOzTfqIECBeApJLQUZ7v9IaFZezsr9WdXv64VGIp9WZyFCorBnWC5ZiX5Rpw0lJPIHTvnBMopEX4gdoKBcmy3Ev8oVxg886JQR65lTuKxrHFwXp71My5i35GQCPRLNABEGGRr2uQlbwS0NZ1rp6Kt4ibG72rUu2r3BamvEdRHJJHoAJQ0HAlLKwkKr" + ], + "name": [ + { + "value-name": "BD3kDfLnptuf7mBNT2yq3JvpUD41SnHmSCGvSjT9EfpDB0imVRMQsh7eUbfFyX1izzOjLzlpOKVhCdEpWq7oA7CmiSTJHM18eHkZgFgWhb6LhK3d22Cu96RkQK3ppWyDESCMpSByWHjdrmqlpUQqTzKJbN9ACzd8jPUIAn8o4rBnGTJXGznz0", + "value": "abNbMpKZp3HcD9zLxE501LLKIrbXSb53nLe12Z0sUHEqId3fR87LTTntczj5Co8R1eS45Tw0sai3nli7uiSfbfBnGUsbas2cHVgEGMw0WO3baeiww2LzieWY8h1bB4naRDPphlhdalgcrzIXBloLskCAtDL5H0fqD4PUi7Zsk" + } + ], + "encompassed-clock": [ + "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "bXqg3vjmh6iA2uHOgn6oCVyGTC8iTkK4hacdxvrOtJhv5Qcd5aCI62oZwo9pITlR3xWs2n9nZqT485idfMVdOb4crdB9YWTTlPmfdvC4Nv8Vsi8A4WNKZSWr5ps4dlPy3bNgGiklNkg8DhIH5vk4n8nlyQhD3646aRmQ1y4PTkXoBFXG2hDqq0DQQ", + "value": "tU0x02hfTiFX7q9WODtMbwVOOdHr3pdxb5448djTwQIvhRkXmNBybxeRKVaOlndwt9AtnLmLC48TNsIa8kIbRW3tSd95teBOo4hDPDorzwcmRVwZ76aY35jNj" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "label": [ + { + "value-name": "wLH6AajYWLayeEbZBLSQbnN1a509pkhVXYTx1cnXYpvc3y3wjVfvj2otZougAE3xuWWv8jsYIXaEo62H1h4cbsx2QUiiylP29LyaW08xQb36h5NafSfqkMt3GDl6R390OzaDrja9u5fDa3NpN2I7H32fGgmxjnqZWAunLEp7JEKMzy3msLm9OgpvwLUH0kzWV3byAAGbfiXOQ13bMpkBFBY4eSLe5ka0geqQO61VhZC7SFaE4n7BYXFdQjjVv", + "value": "NLI5Bo4DkluWkmtvSpSS0IPyVxJ7keBZ0b5tr1YLmkzGG23rrVbkw0SjqtqKH1Cz4zVwAT9WeJuMDy55lghR91bzuBb3vNDrmyPWjZKpAf45N920qjSzkV0OwbSTZnldN2261EotTszyBBzTVjs7esOCwyonVJAALuyF9W0UozlSbULY565bqTNWj3jeMMOq8fXhbX4sxpk" + } + ], + "encapsulated-fc": [ + { + "uuid": "07180e7e-4166-2bcb-ec47-59a81c4e02b7", + "service-priority": "-9223372036854775808", + "supporting-pc": "YYfostgzlmgmKfh2Uhm2bFq9gJW6BHpryEPSZ5rcjzzVOQYBZcv3SWc0F0Y8znrZT8RS5b4oKDcrla2dex86lkY0cW0LbjL4ruOwFTVioZJC1DPf2Xeo9cgl1h64AJ126PqLId3ZcEBdhitk7HI8LYtM7rJA3Ku9zUMa8Q9kmCyEMTYLAyTlwe0ExJ6AlABUuo4C65Pszf6l", + "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "Rx4S63FAWwj4m", + "value": "3" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "2zhFU96r7GdSRy3V8wD131aetMtACTawls3fB9yJQLtzkxmkV0dY1ncv1yXEr7aEzeM3nkE567Eiw1ur1HiUWmhXUeBemMSNSEQfRmlPmR7SStcL2myYIPVv4pJi3t5V0O2RanGo7F9Z8lDaz30", + "value": "SNMWcne7Rc2R0XI2cgrjVAbVNO5mRXvBKayPxEWgQR7IOHD0X4kSwvNjbKxUz2vk4V9CsXSaOSTuzonxsHhQ4X17zyT9sgtxcu9wrTG8LrCdPZK9y1ZuQ0tqymz1DUqHgzdHkTH6" + } + ], + "fc-route": "13uneMPi", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "B6ormuFh4LY4YMZPAe0tDD82Ls473EhwCyXY2ufY86UYKTFc7xGDaGxN9tU4Z4ACupAwMImUOhKq2qD2XbF0R4N0xA4xww10WBoAbKuRT6iWwVQm6veXz1QYtUvZjwR70fH3S3VD9drG0hU6E8V51L4vyrmRYeYQlxTdAORJTihTs3Z6bNc5ygA6HWPx2Ffo41tEPkgBvpuXtm3w17Bzn3yX0fmUVCaZDEwkYEV" + ], + "local-id": "luBSETJTe37OWAHG9z6NCTYIgYZ6XnGaSh3", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "KIKQGWeAjiS2zLoIqNHaaMhGz7vItfAdPcVo02QjkAeMmCuMh3WrH67g5vQyCjDkvrIwtyHN0VrmpW0HRP0zV0P0nyrZR4bevTKQjkwk7XyxLz6Do64bYT3ljudargpW21Fllbxl86SMxQpVOt6Ne10yw5AXmZLo1qBeB1zC7joE1FrQ0pv6qnwWt7LH6x5ZPy6jzFVGRbcSIvIIU5Gdtd1WkNDicAiT8ocIVZgM2lFKQfkDl1IO6JCqo7I", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "R5HsMFFOMC64XS4Y" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "tR7Q1dm4WGwPhiXRk4YhUDrjg2DZdyvyhChiIDfwcDdtVac86bh0GIkWDXVQnihENyPv34Tfz6Bv8NveYMfwmzsZogIDyZhlpYIsUBAuzbRHYmWP", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "luCGmSW4vmVEIkDiExMe1lhKV86RX6UaBoQXgETL1OpB0UTEsxLlT26Ga4xZbjaEHSBXxmAyaR1aMUO6srjduhTwmiwpty3aqwZPSzf2qg44bKavcuAGLl4ZvAoY8r8rX7gPywJQMNVPqXkCrMa57e4CPlAPMAgCzxjZ33QHIDx0AJCUwMZv1V8IgAxV3GxCdIu8DkHePeepQRbmv2RoYR66kwTnciRh1lhExYSm57EVYP9l" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "HSmH8qh4qqIkLf5tnhYIayoga0Gy7hTG17faxp6PPGasW7NboMTzc9Pm9oV8FGGyNNIccG21f4l3b9erN70ZgImh69hDPXbuCMGPkAIzE4CHdQ90P1Z5Jde", + "value": "mvk3koxX26EmGmWdqqUvh3n65f4GsaoPyAKKYiz0gdfWs31StWgCRDBWSxvlzT27tMSkWrccxr1Zm2JIYZkIvNwnc1AMUuTg9DA5XMau63lk542WWfEr2aOf4h1YLM6UqGSfl2Jj" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "extension": [ + { + "value-name": "mLA8IPS5E58KVhsiwHHXNgywrbj67P0ustu3ae8Pjhr6qLoOs5LfdjEwmXDmEvQ6Yc91qiI", + "value": "r9HRU5Fe2il7tZEQO9csEUrv6swoKeZ3fGU1DrfxBAw5s2VgbZJQL2dJuJ77XYa4EX59gcySM4Xe7KnaB6Sm05XuO4BDUEHqBE" + } + ], + "prot-type": "shFk5a1v3QyTKlvQ63budrwjHmHWcdjwuYIr0KO4AmPcHkVFg6atxyM6Um2Yzdv335u4Pa0ixPu61pMhnOKVmx19TW7k9undAJhpThHiY4pZt3hRR1E5qxeblmvvQSAqtJInSpFQtWPPZ6yQ0cWqJau5oZsfKUxdDfsnx0d0WUHWTfETjsb3vF0Txk8h6GmBNPYkHbdv5UjQ2YJliNgNk8HRkH8qfn134ZnL", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": "e1OBJVPvqj1xIggFXIkDo8hS6dHYiF3ozR0aEHFX0HuBXC8NksiABrkzE2qWHtl8cdbIUQFNp1ofDw2YZcqsDL1hNj6mErnQwyzio65G8lVLSPBR1UbEF4Vko1G2k3LItc1SiYqiklW4apV3jYHY2uaiwJdIEYr82kSciivuDryFQlI2jhSeL3w9MJSqzbqtviGFA3a", + "internal-configuration-and-switch-control": "uICcWk6fBZtf2SoGBgY3rpwWH4ua7EfBeSGa4MiyLDNFvbdZkc2LBqAav4kCAs6GcER8q1G4ElB2pP1J1VmudOEAKRdkjb1vPKD7Dc39xFbWu4xnRURXInxleCFpNyMCaiCFuFPTkSIGXf3G1MDC23X8FuytVkX5CzDY7sSrks09z3IBId5Cg2KWwahjn6hZyUQFmA6y26AB2i4Cn96E3QsATBTgH277WXMapL", + "label": [ + { + "value-name": "4D20GYWVunPx44BdXzYKGT2eDhrFSKCOoEOWvLJZ0yoWvZ9sr047TYdo7F3ZhxNF3utq7ci7LGW8G5A75x6QvbeDQ9C8yiFCM12TdcSQTOYzMryJYEAtPG6yIBygLdKpeFikR2aKR1bvsJeqfGL5fKvXd35Y8Qnfnxz6zB", + "value": "iCUN4w" + } + ], + "selected-fc-port": [ + { + "local-id": "551A6Auyn8ufcrPn8Gou4OGD5AvalGmrDnTJPfadnEsAXaP5IerEU0hZsN9OlnfYC0HrfRECnZ4c1U9J0BnUtxTVkUJF9QvLQ4c5OJA", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "IEgJypky0zkl65hiZ0X0RkLzpYxdH7ghLoScO4KGDX2K2j2UbSUU4Gutw1y50HmL56XTaAsNxuprFklI48D8OZucSUhSBvvzBlkLVMqk8ILN2ZoY716NSsRKn8uQvZp6kKJ7o1jxJ5cDWA", + "value": "VtAAl2r5hrr0WjpUD1vDqwWXgT1THCnC5X4jRng1OI1C1iowcT9CqYryRsjzWG3Uv0dfntg4b9y4rXBDQC78AqGkT0LHyOB4GOj4ar0dAyiTvTpenwmYX3aIVVhtBTpizAeB1ePtM7naSMofaK5ZF7zA2R4EClO3W2FX8mjMtGWdkcsmXqeuxN5sw160mMWaGt0OPjAiZpvbBPxq7LVFrS7PT5Q7JMip7a5WtF6k4BvyiUQq" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "6a41sORB6UAsgHA0Siir1t2RRaOfaUy8WC9giTRhFjJV0bNSu6bnze6igUpiGXqvrrLJkvSZOtMHxArTGD87JepZ0OhGDz340HFl4ycSTZrqzLb7gjeZxvQxb76Oy9SyQpTUX6FJXY1wJdvZwJQ46GB9FHXdJHMr6xeWvTxkJyQlLdkaW3eUJH3ppS", + "value": "0z8ryyFm3qTgar6v5cHf0KlVu2YLjJ7jagLIOq4JRPZ19Yoea5laIG54IWP2xWlH46qSpmug4t9djpjtmEw4ct0UhPOOE2wA0Otp2Xx6iyjCXuXk8tgkXh7eYV3uPr5Qfq7hfFoxdz134Zn4kvhhM" + } + ], + "logical-termination-point": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "LXRvWGoToou2yT9IY5bvbvsES0XEIf4m4VR0C8L0wf340cMQaPllcN04FPAg4FC0At04BD57K03K4PsewNAItsM0hfgdUSdue5zPIwPkwS4sAoH6b9PwBtxSIF5CqiZEnqtXWihk3dMDBtBECqb5MAXmf2ZFcQb", + "value": "gFo4PFoSSanlwZ00h363D3qKYhi2Ztuf8SjQqzIaJYw7Xo06" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "fc-route-feeds-fc-port-egress": [ + "RuTZ4wdPzX4GO2uh47rrP6uZ8LxE9EP00IS5e5MOVQmJKQSOYj8Fhuwig3WhzDhAl1Fs7j8U1mvLdnA3GAAQ468k1WBBzL3MMIeLTeFUBaFGp7J6HbOM9WY2SsDj5G5Rgcv1qaV1dBHCIiAilo4ucUx4m2frBlbJxGLXIGRV9qqSBS2W9YjlSQi7KxqlSB5h9QfSoYFyoXiZQkOZi7c2Xu1z2sVMVS45AbPY9mopcGp205Ta" + ], + "is-internal-port": false, + "role": "g0nAQpqsCI7Twr15jmMjE2GG5KxkvAVEsaearwC3eJWCbQHm4uFIwmgt6ONugA8IKeS3Kn7YYVB1DanHE3i2p", + "address": [ + "71S4JZuQgJvw9B62E2116eonv3LTGPcFIWKrV6h4IFARgGLUIFNHTb4o6IaMxek7b4yY2P2KmDtCbfwMUbtNfp3l758wksDvo3tqTob7TEK4L8IFk3kztoUstURNeuaCywVjUYqNu2JgbkVnf8WIoI3RDUxJgzeG59RR7awBc8JnsxKHFyi39dMM7bnfLBWIKFAJPYd26WhqtU00sa3BnQfmTDBE6p" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL", + "address": [ + "v3qJ226dD45RWbOrRKUnEq441BvDrueWyxyAzwNdtL4hWLIFvv22VZ6PAusTYyIw58ZFwMKRpG9drJTXeVR2MPJej30aBIGzIx6ecQ6Bw7PQQIF5vwZalIoxLoHe6fNGNTVZBTA00pQQZvNvTEFemVLZkkeiATZnFMm8FW8xeQfdd3A6H7dW3YNfb1xLNo8s2mAH" + ] + } + ], + "supported-link": [ + "ow6Vxdw6tAwqsMMezgpqT3O6Ts17obhMHnH6t65WyBeSfS6G9vZUqN0k82rw5AiNYST" + ], + "label": [ + { + "value-name": "yJliToGVVQWD6U1Pj6Ih9fRXL2U7dXiDywVrUtfHjbciXe78kHplXhaIj4IoTS1soOTbi0St45L1jL2vsrIhAS0UPAaIscaR0W2aOMESRh", + "value": "2UOpff7wQ0oCHYEprQsaJg4L4QhXArBulpUAwTZeLnIsmnSF5cPGsTswBJl32WyodkQKdPYZ5HrrWb61fNIHG269DrdGoL4B5MdaC49HLt0zwYAMLatjczsQ1FwhisKfeYq" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "W6IuRVT5NpDov5J5HEz5A43yT", + "external-managed-uuid": "78utgqrQNjDGgr5THARrFyX6vpayXV353xqbQRTD2xbbQg4xINQflNlIdog2jc7fBxqrhcWbJ7mrnjY56Pckuy2zWbC7nJmY9FiiRelsmITBTJzZqLbVb6mZhY7w" + }, + "fc-port": [ + { + "local-id": "YFLkEwI1e4HEievuWzaIZTZ74ApomQDkngw1M7U03BwlP1PD", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "SdkL4rHxQXTyA6WRCXDJKwNdU0VWQqgAEAdIUUfCJ1bj772BWGdG4SMYSHMA7VaLvnmh9tUSu54t4650EizI2lzU2dv18FFwV1NWmHHRELcIJhJoraYtvpopDTiDqX9dQX2dwJWbm8T5iulJEc51Btq6e", + "value": "KwyTKpIMu7niaJiVGAq2cW6hYHKgGQRqmqbYHMC3TZlVADQh68bi59zVQj3o1VOndSeUEQPpIakiF2rLbu38DC3mN6KOTz46jiSX8HeQJq" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "6nTP6m7TfpOG02oJHXOE6FLfDvikzdhFBanHouAEMgcEbAoSp4wvC9L7EVr59BDCD0b2mLG8TSN4k3XJZl6BvRI1F27ODKi8CtaY6QZZAEWMHTny6uaBdKDSMCyheQqQbsOhbN9Lj5y0QVrWhBqvd3fSxO1Lwr", + "value": "IUhZ5X8Igd" + } + ], + "logical-termination-point": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "pss2DX6DAAGWoFz4y08xjqpg", + "value": "ZmhIMiZeD2Ks0n2sWRQtiN1iVqBmIRNH5WhR795K3Hc3" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "3hFjqXZlhgOizIo1jjbRPlltC7arW9DSqa3IZ24gbKrKkPED8PnQ3IjFHt6wuBoUErDvmzMxb59vUF92voSy635Fw3b0wrN2Liy7JcwUhxpbdq5AOQ0MT5si0vaoXXrI7ZHQ35KkC2nHsshhi9346nm6TwnQmOqlFZcI4OUyQh8bJpsUz" + ], + "is-internal-port": true, + "role": "25NeoOIJmzc8lhQXhVaSxHTAchOQYYAS3f6j3O2ifeqso8qF3sps1j2dsIViywaBLgU", + "address": [ + "Sd3iAgdQ8KEan2tYKf7Kc4KNlYVmTJWDXZVp70f8CLiZODPyTXaXTVK6Lyswho26fXwnQ" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "VcuO3Y" + ] + } + ], + "sync-ltp": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "address": [ + "sXpJs7eQyNfD96yyXFE7vz5Geo1Y2Bcmqt5TAbB1YIEZG4xDJ4D6vIEKYGAS9Mez8bkIeWJcEn3lrtQ2xl023FETdfLmTRN1U8C84dcAtgNUJEP8ZHaVmHOrWsNHjBB6B5eFir7LHVyirfqqWAdb92C5miFxT8DmdS1nj09SVzamOAFC2SNcMq90IGytObP13IheAqYwR8KFAh9D2XHGfQHPpfadiZ7ezok1" + ] + } + ], + "supporting-pc": "jxxja4Urdpl262hOJ6dQgj87qeyGzAmSZLb9P5tUmOXkQe9rde9txitPw1n5tJPtm1u3YXYdENxm1yO", + "server-ltp": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "layer-protocol": [ + { + "local-id": "U7EOnnozkdb6WLn0HHUQXKNhLty9nv49CAPZYerijCg8nE", + "layer-protocol-name": "pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": 21528, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ], + "number-of-available-traffic-classes": -10, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_CUSTOMER_EDGE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": -33 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2020-03-14T07:44:13Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -103, + "current-problem-list": [ + { + "sequence-number": 13765, + "timestamp": "2020-04-16T01:11:43Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR", + "problem-name": "llo5oyYZu9F2im8d5909BA1b2ZR2Tr16Nq33Q12c2Hek3np0wq2703aU32WOlXM8fPb5IdhCMwWHTeAhEChwFriAl6gHV2H3JT8jYiNLGCkrQUImoRK4b2ww0N5VHNYjyZuw9i9PUmgK8QYxIItTCZhCMfpmUoFsf9Qor0ddelPm3NTDvmo7mGB0N1mHh11w3JUmBZAPcp" + } + ], + "time-of-latest-change": "2020-08-13T12:26:06Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -22060, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-08-21T10:38:37Z", + "performance-data": { + "es": -1874706733, + "ses": 921034532, + "low-power-idle-receiver-ms": 1084757368, + "low-power-idle-transmitter-ms": 384832360, + "symbol-error-during-carrier": 324393328 + }, + "history-data-id": "EATCS82ZGRaeEqF1TgI1Gkss1OiOJdcfF5RxdToMKy0gRy9KORDm46O5MZLn4XCJ3th8exUR6N7Xlhz10cn4a32P2Nc6DPQyaZGhwt8u8fjlwSmpXBtZEnO", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-04-03T01:34:42Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT", + "link-is-idle": false, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + -54 + ], + "tx-level-cur": 57, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt", + "receive-signal-is-detected-list": [ + true + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI", + "pmd-is-up": true, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 417643622 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI" + ], + "rxlevel-high-threshold": -42, + "isolation-is-avail": false, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -1414734071 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "xlX3GFKLAOkNkiTufkB0sJlt", + "speed": "6eZhxWPKTKqqnbT3oyoGsSNMtG7c1sWZHNg6KXQvIgOXjz0H7ogr836BJ5FCxCB6hSc1H2phadeuM73Lvb5Efb7QgNtFhWMyGYso1RFbWUxA1BdoMiUTl2CBH59YTVoATQYUzvYvhvXaYbzLttwPn8i45rUZmjr81pUBUSY4gWee7NRs9o9wostuLnl0yM8", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_SINGLE_MODE", + "temperature-low-threshold": -114, + "maintenance-timer-range": "o3eoC0o4Vq7L58w0YEaMk3VgketRQ9L6dZuHSSLNbSqg0PhQljvFmiWGohpfralwaIdUsQzDI0MAHVj2eOIAYw8nNxu6IPCKpHESxdn759IM4TPazpKxVSUAqoH06bKnTofitDqzE0dJTUTsjwR6oMHG2gG0rqocGvva8NJNNOoyJ9S2xJ1WnIuiQbihtyma4Rk4EVRjJ7Rk9BfGkguIQZ0G2aPnJbxN", + "supported-alarm-list": [ + "JRqwBJ8AssB3HigPEQFvIdpS3Nt6k81WSrsl3AVv3xrCHHsdpZJ7d8Z8Vle8t74lzoGCZuZUTiw" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_CDFP_STYLE1_STYLE2", + "rxlevel-low-threshold": -67, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": -2134587249, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": true, + "temperature-high-threshold": -99, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "performance-data": { + "es": -1076841065, + "ses": 504032312, + "low-power-idle-receiver-ms": 668107518, + "low-power-idle-transmitter-ms": 241128286, + "symbol-error-during-carrier": -1492016571 + }, + "timestamp": "2020-05-15T16:41:22Z", + "scanner-id": "dG4JJOv6hmy7yPjGUgrnAIP8qK", + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 86 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE" + ], + "maintenance-timer-range": "DjvKP1eso6QyUeqDgLv8KcDGnU0GFwnbHSNpL2R10zzUN0p3DMbfZHVe", + "supported-alarm-list": [ + "U0j93T1RiEL9GLI7xnZWiCBuRs3EGossoDBswujG04PGHpOeEN2X", + "vj1XmGvK0X0DqsaUDQVzyt8P9muXhj7MC8CYG7AG5" + ], + "statistics-is-avail": true, + "encryption-is-avail": true, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM" + ], + "queue-depth-configuration-is-avail": false, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED" + ], + "max-queue-depth": -1198879045 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "ZLo6NO9andQDeM85W8oR8x5rCbfotcisQHqDnzFKEvnLanQYn6QvDNWgY3Ek8XMYw5tTw8D3wSOG7EEuKmZoaOw0R2k", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NONE" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_TCP" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED", + "compressed-header-length": 21306 + } + ], + "support-of-management-frames-without-preamble-is-avail": true, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -128672095, + "fec-is-avail": true, + "burst-size-max": -16408, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2" + ], + "egress-shaping-is-avail": false, + "information-rate-max": -1045080441, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": 59, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_24" + ], + "burst-size-min": -32008, + "fec-word-size-max": 27813, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -77, + "current-problem-list": [ + { + "sequence-number": -17553, + "problem-name": "hbxk1Js09jvnXN8s84MPiahqyqMXe55ngCHhe1ankFCisKKsPohZzyp7Y44491rpw8yCaIZmftEIdh2UFkU6Sb5Jf1No3fNrfe3pWUMcniMsrOnZ0h5Ts3CI4h6ZwMiM0l3O7HS", + "timestamp": "2020-01-02T02:29:10Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2020-11-09T20:06:30Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 29450, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-07-04T19:22:05Z", + "suspect-interval-flag": true, + "history-data-id": "l3Vi9zdCWBAH6z9NfhoB6JwoNbpzTsN6oAoxaB965BFb2OQ9XeK3Q9kDcJ45bJbrkAYm30k0tZ3wFUFv0iyQjKlvthsx1DYl5PH1P11iS5GxZe2ZwtIPd3czdE6e9WzfL88s1", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "max-queue-length": -1803741549, + "avg-queue-length": 668980056 + } + ], + "fec-uncorrectable-blocks": 1365345500, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1689861896, + "tx-ethernet-bytes-max-s": -460261257, + "time-period": 1119040864 + } + } + ], + "time-of-latest-change": "2021-04-08T22:55:02Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2022-01-20T05:11:54Z", + "scanner-id": "0p2SD6yKNr7FXOZiS1wd9CKkd0s5ezl6YoQBuoe9PdPF1GXLHlYRYA33Av0G4dEVBuoXLC7sHO7", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "max-queue-length": -582503799, + "avg-queue-length": 1726408398 + } + ], + "fec-uncorrectable-blocks": 31689800, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1260068498, + "tx-ethernet-bytes-max-s": 150115860, + "time-period": -510893925 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -27 + }, + "ethernet-container-status": { + "timestamp": "2022-01-31T21:46:31Z", + "last-10-sec-data-output-rate": -1040667629, + "bundling-is-up": false, + "total-bytes-output": "4416822980602456576", + "total-bytes-input": "637809197873096704", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DOWN", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 1984470326, + "forwarded-bytes-output": "4490383044429092864", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "5818068461145545728", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": -21049, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-10-12T18:17:27Z", + "history-data-id": "JOI9dJwZAT72gXe2kCMKavh3fWlQlCM4jvew6CnGvvADkHFwbk9lHqoWeJNAdzEw4K22eiIJNbfZSUw36FgNXEKcfxMsYiZV3TX9byTQJ0QtUeo1TwOQ2qUhPGBOZABUmy3p6OgHOY2B4iuXOaFQBAZq8B6Z3HLp8HP6nXG4NIFRT1OzblqENh5WS3NWDzdL82RvRxzE86vT7bsbpKPc2M0UIGIl7W6fQPKAfcefa", + "performance-data": { + "rx-level-avg": -121, + "es": -686451257, + "unavailability": 302281436, + "cses": -753406355, + "ses": -1929377293, + "rx-level-min": -84, + "time-period": -1824774055, + "rx-level-max": 26 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": 21093, + "time-of-latest-change": "2021-06-03T14:21:55Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 30681, + "problem-name": "g26TK36HjDNbkdVSwhcZ0Xzrwb5W7hWfj21WX7D8CijWw7H2oTThRkIfnNbu40Kg2LcSKH0fZcbnbSprEbInvqCT5Of2ORiICusf3lu2pxqAqH14KKj82V18J8ap0s8uOABRN5LcD3MVDGRnqavk5osHxu6pW6LCznlmkZzX2dKFTtVbvqwtPYael8v9fgMODZ2YYBNTHqqATlMhMaKt0UzlU4v1c9HI8Ky7d", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_WARNING", + "timestamp": "2020-07-12T14:56:49Z" + } + ], + "number-of-current-problems": -126, + "time-of-latest-change": "2021-02-27T04:19:51Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "72F63hah8WSn2esiXXFgto5aigY3RF6YHDWKU6122MqXSK7PHMY223dkbbgUQmLpRH9LO3GIP6FzIMgpqesl9FFdIN7q1SPSsQE8TcQAio102ihlwBGy8dLI1K82vPVXGr5rDNUNbVF6dOrCq7aqcV9dx98", + "tdm-segment-size": 379506304, + "max-number-of-segments-reservable": 51 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "ZxmWQRKCENybTDZc7hbhIo4RtCSBERwwgSs7B4BfS1qLFiYMz1Whp0" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "timestamp": "2021-02-01T17:00:18Z", + "performance-data": { + "rx-level-avg": -25, + "es": 1049832450, + "unavailability": -218830189, + "cses": -61227359, + "ses": 1489095624, + "rx-level-min": -93, + "time-period": 585827532, + "rx-level-max": -27 + }, + "scanner-id": "U0c3HUbjkaxy2j3lGkZH09SaM4eYtdYf52iEXtYhwnHyGLTn5K4YTX8FTnvesltxoDbd61uuo435POsUzoKkdT068ncAJx77aac9cGDAKyFrnZeOoY8BJ0AJoEj74i6elafxQLZtjxMyw0mMRvgAvQcLmvK", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -69 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "sK9kCJUDVsGWrqdD5sVdMkwMdxpfIr52cemOX9jLtZHMhU", + "value": "eecsSwYxJnWZ5o4Zsam87nsKQjjDB5UPb794D7BnmpejFij7sxgrUA4CLn7mt24E1dAEdbTzt7T8h4gJBo3nQ7ZBuZQP1UmUZWqc0kEtjpBBtJcW77bXe2rB1hiU3EO2Bf7BrL4KaFdDhiropCewExZGOhARWhLxwS0PD4rNBFiSPB96dfCSMtqsLSbH9W6x" + } + ], + "configured-client-capacity": "pGscMoZVO2fVpvNYkAYdXm7P9eVaov8N3AZHQRvETKzbff9sP7xElEuvLhF1MFPHfGo5pTCbv3mDiv5ZuuEI105MhKNVquCx3SvsE7D12REleJcJ6Qj7QoT70yUq3oQYhdiNcOOeFtrU4EvauOhd42c4B7", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 907075378, + "last-10-sec-data-output-rate": -650824823, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -584315345, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "DPEOJDQ0zmH8UaFZVW6KAwSWmFafe99RRNxsifsRC1RwcpnZltJNZtJl8UteVCXEpm6HCrrekiCwHZwVs7IrBkEJ67QTJNy0awAMP1SabmyLl4GF4g6FsCgqK6klUKmW8WAQPk0SGqD1vbGzkE6M8m5Klh", + "fixed-ip-v-4-address-prefix-length": -78, + "fixed-default-gateway-ip-v-4-address": "1k318DRPXJHvadwxo4YIA4nIiklDBrKCDNvLins769C8m0FDWvdwzA7SUsvnL8ZgVn16KldIuIJJIgmxMz3l225OmtcZB3" + } + ], + "broadcast-packets-output": -1543531437, + "dropped-packets-input": -1211380689, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE", + "dropped-packets-output": 1903967244, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "q8u2tALYiuzSKVpoulKofHdCaptDsJ2LRwNd6y3gUC9xxqVTLxiT7vnhMQV6zPRjlFwk5zASbBpA2ctFCDqJ0N0MENT5uCoQhU2flu7w6o60Asx45YN6DGShlDnQgLypyAET4Di21", + "neighbor-ip-v-4-address-list": "UuIkyOamMN2wXf2c5iXDzn5692Jr4DHR7i3x65LKKFgHViT0sJw2YB07DJqAe0jdimLgjo0348DRjoRLZfFYRFXuhg4ngnByBeOUCOQyWlp7J9TBoqrfYoC7EGuUW5kxj8kOWamLvES6NDH348bUpN1VlvIhB2PMb1sZ3PCylnw0S63Oe6IvTJrf71wI3dm66PY9wAHRP6JIcMwiT7OEQ7T", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC" + } + ], + "timestamp": "2021-09-24T20:20:47Z", + "forwarded-data-volume-output": 2118382416, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1949021899, + "last-10-sec-packet-output-rate": -655223237, + "vpn-binding-is-up": false, + "multicast-packets-output": -1863163009, + "broadcast-packets-input": 451277220, + "last-10-sec-data-input-rate": -1661778211, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 811759150, + "data-volume-input": -1942040063, + "data-volume-output": -327091897, + "fragmented-packets-input": 235662176, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 1743719186 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2022-02-07T07:07:37Z", + "number-of-current-problems": -104, + "current-problem-list": [ + { + "sequence-number": 17395, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "problem-name": "83AqtEG7G2AGFr8K9q3siipzY8Wrv2UDYm4j0CqyE0ebjnWsFRMYabp8jlrOgdkeAgpASP1wHfH0uvkan60x9hxlCY1KclYMBfel4fRDnrvRW", + "timestamp": "2021-03-18T22:08:25Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -1444, + "statistics-is-avail": false, + "supported-alarm-list": [ + "TzZ61XAaj39tehO4uEMgjyRcNcGdeI48h36a0GkkBmFPDtT70xgj57nKc3XqD2qV5w5Y4iaFEPm9b89bFhmDgJ", + "sNlLqfbdkAbawlk4R2q0dy1oeaKJrl6T8jEryIwLazVGU8KLabEfJxDPIfy9Ax2BIzUh9qUj0PZMPKyZV4ewBJebQEkj3fUMGG3P6P8Yw7LmJbdw7s3I39MUN65RdRvLxqAvfAuLI77jilQpFLZAULmzKriPiNBPd3dkEH6eO5xYinfX06yUKUmm" + ], + "information-rate-min": -161900989, + "maximum-number-of-ip-v-4-addresses": -21180, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "RMVnzvmTVKyF49kng6nvO7JdU1U07DtZphmQEACzc27hbjEjp1G50piVq4VyHhpZqDPWdjnqluHoNdI56oa7GlUYpHoZYNYgiFcwRAOcWnBKAbPyrRF7cr6C9utZajgsQkQHMEUJ1nlty2", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": false, + "information-rate-max": 223456230, + "burst-size-min": -25436, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": 20010, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": 27371, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": true + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -1883903181, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-04-02T04:21:50Z", + "multicast-frames-input": -874855485, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": 1967789200, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -168163769, + "dropped-frames-output": 106062916, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "last-10-sec-frame-input-rate": -1992529461, + "errored-frames-input": -1059772221, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING", + "mac-address-cur": "bZSpA8828UIx0mJefzftfSy21f5SmlaqcUPM3XG3RpBRDc6KLd5S5vNZKSRY5ToiN54I2DMMUnDxzB9cPe5MJSDlCujIfA03FWLIzxmlMZSdtTia7nOI7s3JOfj", + "broadcast-frames-output": 308391118, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 754130888, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1635183327, + "dropped-frames-input": -1991952225 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": -20762, + "loop-detection-is-avail": true, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "wY4YvZFASW0CKFa7wC22D4xhkOX64wZAmVrRMYjwMb8pRbwfFq9amGsHuhNzFE11rkKdi4K57KmYVS5sbfDxVX6i6TJLpKMQ5w4fsOcAqyqmjwOmLjTygSQmLz73cLT9aXoCDB441nikLYGoisWqkFNX6M0iqUjAJI4fb1bcotp1j5pBpdUBSzrZlr9LdtdP3i4ejfizAHATFZnWchy5", + "supported-alarm-list": [ + "fUlNure4X5HBDT66mutgd5pTba6UkTlzOzea0k6PpNj2yp8MTt36rsRuuYoORBfxalz3FFS4k3YSt6xerAdSU4moUC4Eeb3owDj3ic7DfXnA3UPmm2fgYtET6IxkTAAh5UkoYjT58gG33nqphFGf8c06VpqG01Q5N2lLeeQmnoqqLQP2vvivIaCvAU3s", + "W3iXHoqU5l49zngKWQjoBQnYNs7dpX4lTeaACBmHWrIoGQ0vyjTaa90PB820XYdQcniHQxgFQR3wHVTgeFigOi5pqZhgPuYUR9BAGJfwAaUa5OqblIs90pqjhHrY3pSMylme5BCxLxHId7UyHezAvZLEycDBBvn2JC8OdLdRaV" + ], + "hardware-mac-address": "eKeM1D71Z7hjsF3O4ShqSWNynQrU", + "maximum-frame-size-max": 19879, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "link-loss-forwarding-is-avail": false, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 31576, + "time-of-latest-change": "2020-03-25T15:14:01Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-12-01T20:29:52Z", + "performance-data": { + "mac-pause-frames-ingress": -1595749259, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -344733811, + "mac-pause-frames-egress": -708863229, + "mac-control-frames-egress": 1858120596, + "oversized-frames-ingress": -1415641873, + "undersized-frames-ingress": 271082258, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1970525942, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "nFN67yO54O2ByUql7CD9KAwA7v2W6KSlhxkh58m1WhvmbVHapcb2MzuT4oI38sgpZAyXAVQo4dK70jhivkkaTO3Y4D1c5htXK2MkPCJTIlSIF1S2l4ceSgcWL50RfuGZosjdWUYEgQfVR7X44aiWinL3sDMHZk", + "suspect-interval-flag": false + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-05-17T03:21:45Z", + "current-problem-list": [ + { + "sequence-number": -5111, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "c9CrtG8MFvUpjuzCpoM4ihDCWc3htB5FKHZdf7SUuMjO8Lip14ujdZN1bQawjf43O39321XpF95OUf5NbzYozLhCtr1EH5Hv0IrUJobhx85jn2YyCWW3z5xUxyyev8BvQ2isjlJIuG2RISikP6fgcNbJlJXRRqeAlo2EKLmergX11fmQmt6yg9huT6dC", + "timestamp": "2020-01-29T11:06:44Z" + } + ], + "number-of-current-problems": 71 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 61, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false, + "timestamp": "2020-10-22T19:38:47Z", + "performance-data": { + "mac-pause-frames-ingress": 1730884186, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1407473147, + "mac-pause-frames-egress": -1930157101, + "mac-control-frames-egress": 2103352840, + "oversized-frames-ingress": 1718353468, + "undersized-frames-ingress": -972428995, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1170144684, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "wBZUU3wC2LWLfmOSKSvnaR6VjvXUVl9rW8dR3Jl5naJuwxeghKvrBBmM6cyTxHcmHq5L1iIgsrLZQZf7BLy4mNQlZh6oYjKGBHju01LslorbnzjRcJVywELnVSMT3orE6K0YELqZ9K2pbdgnX3VlHzJCjvoeTPSRsSP6w8X" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2021-12-14T07:38:22Z", + "performance-data": { + "cses": 1014510138, + "es": -1982086005, + "rx-level-max": 55, + "ses": -942087987, + "rx-level-min": 14, + "rx-level-avg": -38, + "time-period": 426410210, + "unavailability": 1535701396 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "8P4m4o8VmtTggScRgFGobawZAwtoCepK3l6ZB6MYAy6IqizzP7X09lRKRd0lrhXnu3e621WCr2cRkLq1Kf1UsSwb5wwpOlMah0gjT4Nc6Z4iCmjmucgW5M02bwjRS511Y" + } + ], + "number-of-current-performance-sets": 73 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": 16839, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-configuration": { + "problem-kind-severity-list": [ + { + "problem-kind-name": "HdJocdGJ0hkgVnMeFaSLCfCMLdoD7rnGF65RbDt4MNcI2YWH1GtDWXhzbFca7rRMpOvBjYx6MJGOAuoBbR6ZGnyRVC223LGszbVSasQO4wuETS74B5Vist1f53h0GPsf1o03IIJE7da0YhWrmRJHcDW9y69fVtmORmRs5A64Gh4wq0XNRzmVci4Kg5Zcym0iAKKxcIBSRFgixeXgNjbZt7BKcBOLPO3hqNPDninfQEp", + "problem-kind-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "clearing-threshold-cross-alarms-is-on": true, + "performance-monitoring-is-on": true, + "g-826-threshold-cross-alarm-list": [ + { + "g-826-value-kind": "pure-ethernet-structure-2-0:G_826_TYPE_UAS", + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "alarm-clearing-threshold": -1546659263, + "alarm-raising-threshold": -1625064155 + } + ] + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "7Uf1cO3SSR0SzCbsKVa7HZtixNIJoEavrqwD6rvZivJJ0U" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 4286, + "problem-name": "C1sqMh7Hrpm82KqiZ8WgwGC251Bt1iswcVOY4NyvdUD7EWpv4dLsLfmQgYja8EGkrmbvaJTnDwuakMFpZjRLyetP4NRcjpxKLI7Vr0a4px6JjM8a50Vv6hca43efsLZ6t6", + "timestamp": "2020-10-19T16:44:31Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "time-of-latest-change": "2020-01-27T02:45:37Z", + "number-of-current-problems": 33 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-04-22T09:01:04Z", + "performance-data": { + "cses": -1436625431, + "es": -541359851, + "rx-level-max": -110, + "ses": 254354182, + "rx-level-min": -94, + "rx-level-avg": 110, + "time-period": 15783374, + "unavailability": 1883468950 + }, + "history-data-id": "HWAT5pQJpLMN4Dx2xySHStVZh0X1op85eAYbZHUosH4ocBiJa2i2w6UF6", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-07-22T19:58:45Z", + "number-of-historical-performance-sets": 4912 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "Wd2NbFskiVKragobKY0CW636iFfqULyQYAv17PlpC6RMe7PY5IsUGvSY27oOKOxJhUCoKYOmWx12EQ0Jqlv7Io5Lnmr82YJjTlIvboR7VK9zt2aTfySXWQAb42j6S2qDg88rwSrjCsSXmURBsBzgr9sv3DCWy2zO2I7ysqRWTBUfnDRIeiYGri3vWFruzSaBsh9UISRtlDIJgrrmJh23A", + "value": "yoDRS5J2G4bQYLAH6WkPFA8YXKfRNHHd5d4PiFJYJVGAyhhF5CmK4mAT6HDTpk6mx2cPAVGbImD9DVOIp2kloM7vuKgTWf7m9j3BfJNP6iYBdMcuGoQ5bXsFzIqvXxJ7JNAYwfFuyEYLia8ZqY4BNo8e6qJWQlVz8vpwL41jIRWT14SjUOVzcVNamp6cK1DSp2ga69lH0hsTekd000A4Vne9EdloeY8DSpFRq0qraSc" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "dmEqErCs8Q0BiUxWpIi5Rv9UAdnHAT4N7J5L2H6aq6DI03whLGmu4ngEADd3ohQv0WhVvnXVtBvlETChAQDEdUaFxnIWErjxfskCPhyaK3ngPZxpH3VUX5suk2iYlunsWH5EZDOBy4Sf3hELkrxhoREIUWz7iOAfoFTfazQADIQz0mckOJC4t8Ff46mfUWuitnxvOg6sYW1Yad" + ], + "fc-blocks-signal-to-lp": "OFV9NsoJyLYkzsDVH2qwioQ9cJZnWadCH0Mus260N4lfpQ26KsuVRc43V3iJ6weNo0aR2gJIk4PBMRApb4kU9oQ4j8GhwU5", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -2, + "current-problem-list": [ + { + "sequence-number": -7972, + "timestamp": "2021-01-13T02:43:56Z", + "problem-name": "HccvESark6DJ4nhci5zZcfyvRETqSBrrNEWjo7LJ5gkaEteWzFODVe0ETT5DmwW92LtjK6UPmeR0I6P9DDMyJMduxa7TGW2BHnUjtO8QU0", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2022-01-30T08:15:32Z" + }, + "air-interface-status": { + "xpd-cur": 86, + "transmission-mode-cur": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "rf-temp-cur": 60, + "mimo-is-up": true, + "tx-level-cur": -61, + "local-end-point-id": "QNdkvLyey2tFZ3VvTtc0NsgyWELWHLoqyuKV7a2x4vcWy0rjtwj8QsyE6bBOWR6nlIisSk0WH4K744qpACpi4XXa0yQXpWkDwuXoHPdoUXwQ1O8tqxMunJxn9fkq4w3A11ZAI4Y", + "rx-level-cur": 4, + "link-is-up": true, + "performance-monitoring-is-up": false, + "xpic-is-up": false, + "remote-end-point-id": "TmlNbt8t0UYnvnLwCXXGuShnL8Pu4FYX2jC5ELyFxoUVLxrong4R1d6MlV8ps7fuiRrXu0u2ggP2O8ibpeUqsS4NFdd7ksuCbVrGNVA4cpYSx8VWmPeOz", + "received-radio-signal-id": { + "numeric-radio-signal-id": 50648, + "alphanumeric-radio-signal-id": "AgEQFHfkgg" + }, + "auto-freq-select-is-up": false, + "tx-frequency-cur": -355877827, + "rx-frequency-cur": -591480927, + "atpc-is-up": true, + "radio-power-is-up": true, + "snir-cur": 11, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-09-04T16:33:02Z", + "performance-data": { + "snir-max": 6, + "unavailability": 1236050058, + "rx-level-max": -16, + "xpd-max": 94, + "ses": 1992465836, + "rf-temp-max": -19, + "tx-level-max": -121, + "es": 1843444546, + "tx-level-min": -11, + "tx-level-avg": -81, + "snir-min": 71, + "snir-avg": -124, + "time-period": -1087864321, + "cses": -995802601, + "defect-blocks-sum": 9394, + "rx-level-min": -53, + "rx-level-avg": 110, + "rf-temp-min": 3, + "rf-temp-avg": -7, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 84, + "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "time": -615645839 + } + ], + "xpd-min": 90, + "xpd-avg": 75 + }, + "suspect-interval-flag": false, + "history-data-id": "A2H1a9CDkJHpO5RfhH9oi2OB8YAlYBByDazOj3jvF0Nt6wBfeCwoEkZFi" + } + ], + "number-of-historical-performance-sets": 16094, + "time-of-latest-change": "2022-01-23T18:36:13Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": true, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED", + "rx-frequency-max": -741473289, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "PO8XwE0y1PLB3rzebFD0EfwT6nrlfEL4kTTJxUhqJ22FutTx0oyEv4qCkJXzfAvztoiTaAbMu5jQq4orkOXPKfr4Yh", + "ufc3h6l0tH9elyg8xqXJI8IwbamXcIeGXiK6pX6KwfZRFfZd", + "RWeRSTwnFRhuOkNNL2KLCAeycRtXdQp4FvNphbMW2ViRf5w00gDCIK2VBnKO61KDxp2OAGCuBVlQSJIS0emAYgnzE0fCTRfigh6IXBcqwq8g9Q114nu2wRt2JIEDrTVz2UhRvmhTMp9V7aPcqj6W2AQMau", + "YycBwuQqdySFoOMQSSOy29aXk1R5CjNtKRWglMGrdz6BfTk7D8xxiHmuAdz5peq96mpr0YSdpRHEK1Df1aEjJ0Gc6f9vuzEsNVLFTwTin", + "dR0NdhXYrp95U7oKxs0YMGOur3VvUc17WTM1aCZu10zN7QqFaqvP7bjqfeN1jG87AN8Cp76i7y6fgwMqOhfNtqdAF1BQHBX9o5MFcKYba4qiscJgmQ4Hh99OaKEKdtLCyp9C27Nc36vva6MwWI55ReTUYpEcKhGaHPMJPsVKyigIgU75ucalrWfhdLtY318KJNlqf8aFrifzcmEGzHU0D19INDyIwHkfmFFtNI860nG5KcLbTx3ozc7eHFOe", + "8lAFT3kB3rBjZG3bk65J1tidsoV8c1eceHR7CcA", + "v4ZuCUFWSCyT6Q6q7TyjMFo1mf0YjBwOxva9hIY9kw2ie1JlM9xzOVs22k1mVx2kV5u4Ns6ZY0a41LqGUP7BKzvMTw0HWV1J0nNFPTEFUGKNr2teRAHt1c7VB0uxVn8NLVssHY8tFKgYECcn4TQ66PTzPn6CC6pnTJQAAQV7s456GatK3bQ1SJA" + ], + "tx-frequency-max": -311732019, + "maintenance-timer-range": "O4j67UF28wgnaVALaAvPpKJcOun6jQv7NO5UACOJ85YiSyV30iSq3uuJQRP9Hc8uT5gtH54HaVZ2lNXm5IM048KUZrVyE33p8bSPgPoiKfd522j0K5SGduA4WnDsqyRqJB7Siv2ULfSNibFU9yBm23jQrWaJu1a5vhXNN0Ay7sdhDL4MbF15AkWT8YDCSFznWp2BhC1oW7yASCe3970JrOvzN03FFDUtUO5bjYrf5ZHPBWKK3Lmn", + "transmission-mode-list": [ + { + "transmission-mode-name": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "transmission-mode-rank": 1493797102, + "supported-as-fixed-configuration": false, + "am-upshift-level": 8, + "tx-power-min": 55, + "am-downshift-level": -16, + "symbol-rate-reduction-factor": 47, + "channel-bandwidth": -817773787, + "xpic-is-avail": false, + "code-rate": -45, + "tx-power-max": -19, + "rx-threshold": 4085, + "modulation-scheme": -15905 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + 1271184610 + ], + "atpc-range": -110, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": 1237015756, + "rx-frequency-min": -862718939, + "type-of-equipment": "EuBk8tGyPKLmBGVPoZr5nomz1UrZsVg6hJiqdYQUAtgba30yUkvaIKJJE2AYQQW7AepF5fzFJIRLLJby3GIDijeWlPM3xIb7XsE2IezjWqWz27ZXFHtYSHM6wz949k36NA0nOsyCSu3Mt3K8C5YvMLBbcK7lX2kCCcZiEpUpLYbe1NeDSd0xQBI2ePfbRzNmM", + "atpc-is-avail": false, + "supported-radio-signal-id-length": -6852 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -45, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2020-03-29T23:09:45Z", + "scanner-id": "38JkanghwIqE4fAkGdP01G1XnOEFdim8qXlAdBJJb9ffpPr52hXVXQSdwoKKHYK7V5A0ybJKdYRCFbzzsouh7fmDDYfcW0kKXMKoXm0acRES25jmmOwtVS6yJeLFeXh3BUry", + "performance-data": { + "snir-max": -121, + "unavailability": 1443414906, + "rx-level-max": -75, + "xpd-max": 52, + "ses": -654960899, + "rf-temp-max": -28, + "tx-level-max": -96, + "es": 724483106, + "tx-level-min": 11, + "tx-level-avg": -74, + "snir-min": 48, + "snir-avg": -5, + "time-period": -113875217, + "cses": -538915883, + "defect-blocks-sum": -7588, + "rx-level-min": 18, + "rx-level-avg": 59, + "rf-temp-min": 60, + "rf-temp-avg": -40, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 89, + "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "time": 17745664 + } + ], + "xpd-min": 78, + "xpd-avg": -21 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "4po4pY0deemSrA9yqh3jyJ2ZBsiLku9gUykbokguqDnSdoiDFlO6WQXyifjuJlKvTWz98PEzkTjxhB3OORULIJjSYunAP7XAWoK4egDy1WYip16eKTRsu2dtwAVmzSOv9qsnG5NHUDRbEQhhB8J5aWqHolVQ6JdfaFuIL9ixN9IjZ", + "value": "AA0cGb06KpkFfigsxi011L2ja" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 21165, + "time-of-latest-change": "2020-05-20T01:49:08Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-08-09T15:40:58Z", + "suspect-interval-flag": false, + "history-data-id": "E3bMyaKiYZrAXoct8NnsBrbvUtjVq134X7QnhsFfj6H8nUCvzZPaj0F5mQTMSWIH3r4kTKs5I9dXVPkuH2xS2cXg3QUNFDmI4qVP2nMDw0skHNOgPl8Jq60lOM0tpm4lEZ3zeP4KHw4pb", + "performance-data": "bJf4Xpk8HWqGxijYmIppVRW9G2Yvtmaw5pAUGU2fIlV7D6YROf9B6XKERA2kW4Q1tiO14" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": -16750, + "problem-name": "hnaT8L6tEb282xdRMkK3xByVHirqldXCAZnAKt4oEYwynKi9W25lDDgcNzC8NzLfq0QauMr0CPzZrR1nT6IoBQApqcpdD2k33a5xWwxqmYqNPr3A", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MINOR", + "timestamp": "2021-09-15T15:40:44Z" + } + ], + "time-of-latest-change": "2021-07-09T06:26:17Z", + "number-of-current-problems": -87 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "hqqhZcxjTBHYd0zn2ShqY364NFzOm0VDilUhxkAjVa902InWAxfyAlvf04VeWQR73MgB6RMTTVUVD9J6GYE9b9o35chU291YNhrL0dEL0qyDAiJ88ghkhynnKF9EG2Ctj36c8CX83wEvGnDOvV8Nlo25VbBBd6Wo12A2EqazOO4u4IazvjmIzoFurg5EeT3gNvijVkTJ", + "tdm-container-size": 1362875394 + } + ], + "supported-alarm-list": [ + "yBTS6l0hrOTtIAvLvYBg19VihTDXQDUo7Fg508mjW8EFAa", + "tTEh7GlJhPf2RrWF2IPLZp4L9siNnV1JGF0Oedpv2wxLXljRW8uVxyyzSJm8EnRlUJ18XivROVDEgWn44S0tqq2b9gjGva1iTUiI4OASB5oR1MWXEOiW6d7glqWRAP1mBj4F7EpABOkuA8j6WC2UHa22AYL3FMp86tF50" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "xgwUrTC099uBqr7wcaMZGWit9b5a1afqqLdRwHRyRd19w8FIbkHJg0cp3hzWsGnKksuQ9dg0rh9XqPGt9fch7ozby07SHmC1O6JYk0QDh0szH02Ig6ZnvqyVryN0Mh1BoCrAC95M1xdIy8iOeabJACwT2jTOBMhRpAjTKoxLVL" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": true, + "performance-data": "uHZZBj2Em03awBBKr1qhklJJYABsSLefkdeVp9AL9DVx6waypAHJVqkTSOeLzs0Ty6OXfgAgMvOSUYijqZVli762VcNmxF75EOUT4maQRQBDOTPeLKrVJpXxCDT", + "timestamp": "2020-06-14T23:01:58Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "HSIDeKmXAXBgIqml2NgD4eaGRWH1PFIoxi1L2nJuccCVuY8oDp1Hvcge0P7PvP5276G1uhvGt7tPXCdA1eaoiiCi7JZCr4xybdsxmX5PX" + } + ], + "number-of-current-performance-sets": 49 + } + }, + "address": [ + "O0vlag2Mp8ZEDJi61KRUVqVRolymzLgfLMAN2uzjDrP827e4RYQEgDnFYOTqzaFcO8ZICr1fSQnMPuIysqcA4" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "NzfAQMdjWtvftW7OcHtrl7f", + "value": "C7agV7KIyRiovnAkQ5zk2G86ftxsAMe4MokHn4hVOrcjOEDFJ4ZDCZJKs9cVNqZrPk04gh04A4gpILWjINPcMqW6z91fzTGgdzllQdijhqIZbEaLjZY5qU3R356vYFD36YgW3y7kYPb2leNEdLBvyF" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "A8TVHKpjel6d6VxdwBSZdMbZhNFowMO6VzUucjGqEMDCH2P5Dz4Rl7IuVfSjU", + "value": "pH7bbbuRt0v6C50jawK7f56Xr15bkZJCGJNJUaBgaYeF3fY6LJd0GjP0dUbpLV1rwP3iZEy1uNGy2xEF8JxO2mG79SxUFyebfht6N28hPGPJdlol4V2Z9I6iAD574ji" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "local-id": "KS9gljg5LxIEufsHVE9TNu9oHHPT13ILWK1939eHHOdb3FLQbMKZ8LfHkWAl0b6OVZXY9bxQZKTVhwDtinki0r0knAFfLD", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "tClYsSuvYkLNocUAaCE4XSSu5v5B3CQxe3nGWR3U4HzsTu2V6y0VqShonnZjZHQ6KdMGXQt1pUli", + "value": "fdeO5aeXrCdGtwy2eENrilg0GhpBCzRSN6yS8MIrhN8KjyNx4sQmN7fugEXL6OvTM3DUHdmY0mBbUgAYIjcnijJyYGb4nyP9Bk4bqi1iECuqK4gkfkIxEj6u09qfI7objkmJuo20SoqDkyXATx7xR5TJfjYPqm0Jzfl3vn4fLmS5VIxOfFdYK6HRhFGzUzatGvo3KsinP3lCLSqSxvRaty1K6Aj01tlzZBCB4UZLXkfAcFtC2kMvKFfIf" + } + ], + "transfer-capacity-pac": "29fH19pHKKOGI3opGYEK5TUz1Weu9bH4kWLd52VHEJfmFELduiXzbJ05yfzHq8LC4oP1qCJ4eYiTuW6Z6Vqhwre4GFEYNhsRG9TYMuV0s5TX1RO7Eeh2Fn7d3L3Q2vIAFtzjXmjhr46lNUkr9ttGRsMU5PC8dc", + "external-managed-id": { + "manager-identifier": "NXsc7VUwOhtiTbLf4fj2597JWFXPdDWStg5AbRYZ8k91vU9z2kt7tBIh8x6lbU6E236dU552peWU15l3hO2KpC1x9ZLkMRQOUXUGUZAb5o56li9C63m", + "external-managed-uuid": "FfVP7G1LpSrbHdRBckMiIJo41qG7tVv92jQ1RJMht6kaj4DoohG60W2TeBTIwgJyzzAraeAEkUGwQkUeBsduo7fDI8d6pWFQn79xdJ3qwKWeWQtpiyTyF13g9gmq4Thr0iZ62UwqEsEsaZSspD0XEWdGcz6hlfAdyrjsm" + }, + "client-ltp": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "peer-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "ltp-in-other-view": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "address": [ + "GiwvYe6czmxw9rniattCZyK3J2ebGwqmOWJNaPRCbg0kInvSQYmHo6K71ZiHnIW4wFJHnA" + ] + }, + { + "uuid": "10a628be-c9b5-073c-5a38-d99ae443b00a", + "embedded-clock": [ + { + "local-id": "WIb2lniXWE9lKml3q4sFUnsrxZdGN76JIhD3ENSsr2O3g17G5zmRWGamFf2kn03XiySWmLpFF5BV6IB39PUXvXb2c5mr6hooQhc4UBJzycmEUXHVFuLarW5", + "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "encapsulated-casc": [ + "GI24xLIb5y9NdPh1Yzu4xRqGMoeBy8ieQkifY1i3rrIE9Zx7q13XKtDpJJ0hRioAvGHtz0o1jZxsY5rhYveJYK0Al0R5a7xxOe0f6hgq8GK6LcnJHukx6cZrcJwfQ3MEaFUgO2" + ], + "name": [ + { + "value-name": "2rX0JlozuAvg46PCj395TQ1ykEALAFhu76mQrKhOdM4hSML3PU9ILa8XOJBgoKDnQZ59CmXP02YLGJOnwX69Z66FPzO6jrt9", + "value": "zjUN8BO2rrI376z54IWaGCSgiYzJjBTSUGG" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "t9TI5zKH7qtx1sSCPsj3u7y9YeopSC6eL0WJzyiyYE506QuNiNJMU9VKoc28O8mr8a2zIl0zRXrXNVLYBmCvvq8TCa2iigBrjES1RSsIQTxvHatiw6F2oNV0XPagYDzhhra0cDIUo8h5iLfPJNJ7AwZqe1GcE7tOyDOC8pwxpOuHrCo2p71ZwS", + "value": "KLXWh4h5vUM733wsscW1vyipPhiHNaYxNWl4SC2fpGfkBDE3PAWc1eBQwTpbVoJIcWE4rGcIer2P4yKL0HP1NiKb39nYp6yBU4ylLK3R3XH7njKo0zpGR1RU3eKsca47eukR" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "label": [ + { + "value-name": "9m5BFFEMLdJHNGKtaCBss33LEOEquckEqhf5XTRAYtaL1U6bwIvQLqBpe7HBb1fBjmG87qA5TKIUEO52osS9SmqYt7zF1Ggc2Pk1fUY8Fy2bfZeDj6F3k51O5tl69ti4iuXxgWxVuzZJqdfJbUEwRGcW1xU2046by4IPS8CeHBQ0G5BKRg8IOkxPJrRBwQMWMnDwv", + "value": "K4JsWixy2gG2ZumwbXP2qdK5awsN2PVFLx7IPx8JNOLEa7alW0fm50rfoLVjsQQenXO4mWN2KyGUxJ7lBmIGe1WDNROfzEl" + } + ], + "encapsulated-fc": [ + { + "uuid": "ed41eab3-1279-3e65-0b2f-9e7cd5451369", + "service-priority": "-9223372036854775808", + "supporting-pc": "noy02iH8zFgeMhgW4AfBbCYNyhJ6EYCTm2TpkspT7FZTX", + "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "lvM8VQlDWw0WrpwGB9DOrVJcKmYKtF0G2MHXD2BrytnZKUymV32mZLrB0pelWe2ZSBWnDpP3K4UvQsJLwD0ngrQgI4uEaov3ZsquJ7xucjR2MsGa5ypdZfuHcYdmeJpd3QHMX681pRW3ju5g2mu1CQAGGF2Ugk7j2GYZEYTVQPR1bWadjE6Nmyt2dnWuHVFJtDBZ", + "value": "uUkbDdmAnrL1xqn5Lha85EQSkrdP2cjoZDr" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "qClVRAIZ1ehDw1L4dURmWAjhexxIrgDRLQNuqnmruDX0EA5JmO5iggzvO7d7fIZSzMnR1Jbve8oSAttX9z7pPzUvy7DNIuy98V09wbxKbV", + "value": "MgXJpoQG6hBtPA6vas3jAYkKmv96H4stcp4tOM9M4KfTdeonGjHh91Tvo2tX6VialmD11MN5pUQu87RPqqYAjR5ITzxRuQTHcwAdafaza13a8NZy5P8py6ZjFw21mVBrrbwujH3tIZDIEv8Jch0LfZ4Uw7NK2gbmsIQLh" + } + ], + "fc-route": "rmXv1aHa3bwNEBIN8Dilk4Ad4y2CAPq13fp4iY6l9C0N6Bse6KAqG2vLAyf2fxWiMle4jlhkPa7VLr2R4C9KEEn64C9j95BOiQKt3UNS4MGH5Iq9czUI59OaMPlNMXBWFepA84k4Q0LWAb5EKRmH13RFKdsx2Wlz2L1aP", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "2gTrdeRzf2nlZTs2Ad5wFEIyjlbkl8anp3Guap3hrqDibXkLaiiPO0g7drszACWRyDlA2pRmPmw1kJEm1O4HHkOUL8tlDi43NqDHPm3wJspVbWh4KlLrFrmrAHE5ZJ8M1LmQ7heIJwDUsNQ48BwG3KZvjDAjeIXfljXkB43cAyZUlPYmjm2mYTJiojtDTiKeCIq5Ml9eU807YQlh5fv38edxpG2iZMotmOq02zeWI6VyX9H2ocXxi3WHJYRAC" + ], + "local-id": "3GIkD1CnoMi4VcYcz4tYO6eh0iDMffwbV6vq7ZFoMYkz2jLBnfz3dFk5YQJd5go0eLieLYCpOWYQ7BjmQLpVqCSgsCuxKKpYoHc9xGqlvo3uZnRI88vqKoH4S3BCNSAbsFcZdCdISgdKDWkD4P4H5LLXOfrt7UxzzJzMeMn6UAIqo23sKZ1HCNxi2YM1SbBjM2Y0GdZANz03CWveVpVqckI6bm73xIfkC5cii", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "iVty0oFGnqz6IookFx3idr66QhzWSS02NtsNJ7m6yV48bksQRn0XO73wgvt0", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "RnMdvdt72UZezNEHdkwcXhKr83I5fT568ScDXxKZjBeTpKAC47GTgrlomVlBGjAO3Mr0b4ZvF5g4HIyMH7xXqSeMOzfuSPbVtCVFGN2eKias0J6IQDx8oLUcl9y" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "wyH6SBciaXYWhZgrzmUc7RuR89Ggd3kJC1QmD2xF", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "t8mJAO5u05dmWdwuuJxOs1Hagc5NRWak5xVxd1T5Y6rUbXgxGNd1HV3PZ8CJ5E323RzgKklIiNutCK1bp646T7VTgpCd4xf7gGg00BIigcDLWwWeD0kw78hnpLAlbHlrnBsf42xdf3Y3zMhcMuBLuS1TEB7PbkgqVAGRD5WS8UNIyXUkjn6Ng7yMAFBDZJ4MkKwXPsHQfmyNbk0uIYhQXQCpn53fO7T0JhPqCogRDGwO1ojBeA" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "l33OnQpv4vVZr3", + "value": "LnTDCUAqTvP1Sa2gv5jbs1AP65CXox09MMMoyeHjCwkuGmC3jNeMHOtFL6C1" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "extension": [ + { + "value-name": "WkQaEh01BYDVhREqIqQW2jQcNuS8X3SMnBW2SXVtNqg5hUnSk5Ofhxr41b4ReXDtqrnigiDWJTT0N8SZezevYFrRQwIWldqLxNVN6qJHbCzYLkPRT4eRBxAk3bggoyTVmGBk6cThPs7sMXbxThguOROK2X0ivM6JkH3rTOAAhAU3p5t", + "value": "mJE3AlNCiFVNr1xMAs5t9x4q7QloWOGaydd0y0DQyqvZjUDTfAeo0aO711wPQ4Zg958HXLpv3VnmPS74lmslw8kxaQmSNe0Wb8w0MVoPQL4yv3uQpX3WXolZ6ARTOJIRSeRw1fdSS9igdMYCB2qzqMyomia2TSTDYC9ZKnJ" + } + ], + "prot-type": "0lWw4R1AEPmNC6sHaNL8TmDnhUbJwijow7UAYVauKphfvBWyozGhNbE45PGB0ZZwYMYOz1icqrrN2fdqHTAu56r2O7wGYv4W92CJ3MVtdm97tmxa8ZF5667M5Ds31wR2ylLu7GXcUYjolQqtI5qG3xs03MVWaEYIZK4Yi2a5StldcLyUJYsEoUFjysfI75iYHnX0h7X9tifFVNrEETbUFQddakN9p587sXZBWOLp60WTFnyb8J5NraSt", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": "ZJ1keOZMBT0ebbG4MEEu9bCxXwJaxafoLgJZ5AMyuEExPcBBQ750jzx859iDbp1WGCWDdA3zeI6WUApDHnDSW2S232xesqb0V7D0zyzN8xBV71yHo3rkXke1mDfOWqORpjRYKqESX7FX85ww8XJ69XZwtecpxTgWcZNWhjH6qm3zsrXspG", + "internal-configuration-and-switch-control": "qwpWZw1o3UwRYvENMPmS8IOH2fwnw5NXB5LAtEQwyenpBUcfBy7J8Ni3VPqjU5gv2UXvyFTZT9ou3sJESIgSoyVbndu9bLEdxtB50uWTDcfyEQ5orlhPT409imil7Xywi1ujwq41vkA12xqtSHaLD2UVp58o2HVcAhn6zs04Es6GZw2R5cuI7hwwmEMgdzkOQIMqaEuO6sm5YoOVBbEIk26yySGMs0saI6AKLXqRp", + "label": [ + { + "value-name": "vai9PGH3f0xLcUjzomScswT80yLY2M", + "value": "pXDyMcfHr775k1gTpDDtXae62MRSHE56tJx7NEO6MV3YOkJ6XmzMoOSisCa18g0BRxIw3oCPcGN00oYPLqt16mkqQusYCkrlR9RUpmCBUhuMGstj" + } + ], + "selected-fc-port": [ + { + "local-id": "0aTT6gk4pPGT75heaNTHFpOsUj2sCVuu5fn3vzZUhyGoDPDOuon9NbCAmE2YrokoDIj8hiVyQtPmik2NIhWwsqYHW0xngSLTA4TJfOaX9Zbsb5fTm3hPmfoi7VynNb8fg2ZnI1kSSoc3trWQmexIlVTtQjQEuRLKTCZtDcdnApq3IfT5l", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "FGlq94JSAeJlQuYQPt23RCshx3or8JJFq56z1HjBV2WEoMuego97StgpwFIEoscOpagqRr1NmPjKCNQK3ZRVt7cZEVw3fAJEKR4BjXgFEzh8e0ShZB4kB9cf4AabaMPUvLnGAEd6d", + "value": "fkvZBmByH4HLjDlmOn0v9vgwcIapOgM3A933wwB5AaQLF37lqZQzvY5zG8QnoDqQMlTaJnfbpXX50WiiW1JjZHKyPAV55dVKrGU232etZbqS7IaVBM6t" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "sI2VzGZUJCVXK0BDLwyrh5qDfqOHaEjCmdqNUhAvUnswnW20kAsBxK6EaVllzwPNC7Bop3TjqePO2RGmk8XJLWgVJB8a0QXCXqSetLpUR7ATY8fah5M2T2PCvQMvGJZv2RKvv9hegJ87Sf91cVV5PCHlslI8XAEZjgmOpwVyf3FZaG0nCNkjqUESffTcP", + "value": "38FqPWWKm3F13PAV44Bhn1b2Lqhwv6Ny6kQVhEFDIcxDU7qY317qUisyBBW6zKwG4ftdT1JBd8677pYai5A5gVDRwrXY3lw8AZdu0WX64W53l3dD1OIhBd07FXXIatIDlW7dKWbHShK5cQ" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "Q1ajO7oTU0cAVfwXtROEhGDRJrtvxWQgP0zv7XgTYttLARA3IgzRX4Jyv43VST3zLCWKr4DhxY27Qu2qLBiAyT83P3QHOT8zn4bP0G6yw1xensF0VXAtIIpxD76r16So2352B4A850mkk1lfQVJqw0X97VB81lp3pu60yy0vynQSgb07", + "value": "JpuJnwQa7Rck8fJulC3UuqkR850b57aGoEhL2ZW1I0mQf5ltzgf4yrNHoNSlM21bzaOB2CDKCZtKWG5oOkkmDZV2FOnrIhu9jbDlN8YiZjUNZZ3Nbf1OfXQUD6ddnAfGLSUqSSARbuw2lAPwPId4FVQa1WogwDXhnJzfBa6EEuGS4ngU5tQDhzNiv3rTGg23ZBisLg6iLEaHTqtQMcl3L9d8cE1LU3OTwZli7jAKX" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "unppWTO1aVUpdEuOVtJO0cPh0bpfvvNZK4gGQ4A0Zmi50ETN7uu7HjhHmyOJ3tBFyRegOO8FaqKbWwQ40k3HvkgRS4tNq4lQVz6BnehxxTAtprpiDtZ9N8Sy4ldupycd7iGuxXU4Jup0NPiriasXakneyBBX9N296Jvvypr9MQazFkSXukNExaL5LmUN1XW7yjuYJV0nMaWruHhR1Wvq68vKuqpwfdvFw0v7VvuzFj1" + ], + "is-internal-port": false, + "role": "DMLLT5IKHwykWwcShJ8PVgqS4J3OdpuQb7tW43yDzYXnm18ELglyoMiknd9sDvaGCDvGy3c029ng3vUODge2UwehKnCfSMNmiiVQe7Q886obBjZ7r59lCnueD6lnT8K3jFTpMCxUIN6b6Xip3rKxHfLclYz66j9hQVGux5h7TfiRcBh721EB8hNm", + "address": [ + "7xm64b4MepnRCjQQVE1Cpafun55sBpHIW3G07KEd214EcUm8qgKPqRkNWpgpOXZCSGCRih4ka" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "OJepDEQ3qhjEztGklrYbW7bGmU2LONmCoAT17KWx1f4sJCMW4K8SKbq6XsJLf6fDy9wFTs5MI9ejL0fHDnrfqRdokX9rVpXtqt1jW65wfbPS34sykTNKL10X" + ] + } + ], + "supported-link": [ + "lZXV6Lvcz31IK36OTvYWrxxho8Uv3TqhKgcQ1z3AC4ae0hULMSH6p6fF61aaUsrxIvnC4q4ynf" + ], + "label": [ + { + "value-name": "RF466H8D7", + "value": "ASFLTCpBvB2IjXVClM8FgRklXr25W2lxUSiFuzgZ3jAm8nYt960pXlCNMxKAz57lPh1kRhbUsDgA06W1dWj2hVPVssw1xvffNgzEpCqKgGk8M8aR5tMegt2J" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "H1HOCSqsxYJhWf7y8uATLMl2xlIoexvOqdCUXVmvLYMAdT0eft7SflVNGv3U2zAkE5eB0s6DqK5Ew6KLzREOcrtSWxFQY72Ccgd4IcA1WFFkLh6k8C1d3mXRLuzJCBdGRrLrvlsj0ZEEgCQheRu96jSROrtiUGYDZB4uWpGPoklxWbO2Va31tVK9e5r8EiLDTH0I6GpnSKMONA", + "external-managed-uuid": "ICLBXye7MbqMPIptuYlcX1tcLdYr0q9B2M4ZkiYYuhCbZ1ElZRpOKS0v5YWYo5riJvi3G8T2pvdhoKCgB24mU5J" + }, + "fc-port": [ + { + "local-id": "qsFyNklQYOyvyMz8g2pT3dK75bePrSuRc1h0dCQbrhGR3f0b9hW5vGcsKrhbbEUoF3oLF6WYnvIjCAuMRjRmR3GBmQEquyO1B4M9aB7q6PJIh5m9odng94JnUoNgWBhqxWzAxy0vgJ5xOsG5x4dy0WWMkJ29dbrK7SkwqcTyVZ6CjEzIAMhsIdeVW8W1knMj7YQxbJYYAWsLs1u3NLnoQCbEK7GWmkgta6SlHQcaMEV7Gh2l2pJSTMpwT5s7pI", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "zGlNg3ZiIvdP3vRppg0aaNzGyw0GVJ0mhl1ppSH7oVOriFIzVJJXwavWGwut7vIgQJG7un6KaU3krMUfvvcTyAPeYkA5PidxTTxf9DZjq3wRPq6cNb5lLMsJ62GNcLdXFKdGfcZFfnpWNv8tGdOj08UY2sEeeJcLlhrAti8BGxxl2GOBLvMDvHuy10MfJQ047jwtuE4abtn614HNrliW2Mu4E9bfZ4b7nIsRewTqZ9w1d5GEqYA", + "value": "D5h96sp5wA4MawvpUhPUqdNDal9sjJNOGWYMpnKNPOr0dXh766Twby1dTaF5TlTshR6y6QeOxFOKu5RA3DY6bZb51QaV3VfdFlLL4ZrBx7lT44m7zk5LcgIdZK02FffktTYxKp09xd3BhpBRJyuNH4" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "nHgYCUDJgmmnuIFFlsl5d0Nrpa5fIpQ5673I1zkiNGFhgcWCFazKaecsp9HZyx4Ew0nyrzI67fnnsbZZdrJoFVIW4hVuOS9dSoLbXlh4Awr2zj", + "value": "NKv3hiLef29JI1SVL8yO5T51utto3EaQgFTxXwLcyNW8GG4kPC8Uw6WSzh8uVic3X5AVBm719VaPC61rIad681YHi745hg8feJaPX9J65TNzZP0zR5yZ7oypnCnFTvU76WO35p12aHB1otBfz16GpE5N9ksUQmTWazSfZTa9sL3Q7EXGF3e4AbJJwbDmpoazXUHWGRY8u1RBxO94Kn0kzKV5VqjdOlMLgtAWcy4HrNaYCk2eHUq8El" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "GO1At9IGuBE1dVTns6qWfPp6qXseEw7ck0NG9vmDYSwbNpy8nY4DFtBYi44Xsb1FbOllbzQ1rfdeEDe2uix1D8ZW43LxeEcqlpDwYlqpADv78K1CUyEyGDmLzZiNDm5YLAnJWN0wivDi7EV2crsTWOwvFGba2g1NRgoNVob5LPnTliVyBnjy3P3AneKpnD46TkTOIWTlL9e7r1x3gItbpoLMDobS17YNrJt1FfmjotiHuPCDp5OO", + "value": "AAZYDRRKPwbq045fqovTycgfPTEUzsg927ZFYJhFfk57o3mPjRASWI7LtMx3eG49N4GMFYjUih2HkgoD0QvWzvz2hYXnE2wsY56v3hhdybMSs2okTL8kgzepxcNc6bw4gCrbTIhkU34eYsyR6ybm7pMEtrIzCevLIWWuF5Or1KFZ5dQbLTpKa3oEuZ575tKOpGaWMQnNA2EF7mQKfguhjLNGKTFPmpvDXFs" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "fGsO2gr7ROhFAtoz6akKXUJZMPRSJMhQkCEeS5dCLuhdXFNVH7FFThEx6npH9Gxma3A39OFMiO08tNV3MtIFKe4IBtpD1OZcRz7SfE" + ], + "is-internal-port": false, + "role": "eyeZmO2jlM3HlWCdBniVMcJ7LLSMVAZ10d", + "address": [ + "rKj40FEWR4SqvyBl2NfgmaGvG1A8EZFXJR1JwGxfKhG8P9tRWBZiLFNrygs4fZ1YQ3zeBYud72dPbHy7ayhV5XeEdyAsyCioxRD0HZ5O1jDc04b2CsXHp3duCOWai6qPXVHwUMdV5QZXUaZovO6MSjhu75whcO61KFywsLkptjngmeER3CvVOMhNSF54t355JDC3gWsK" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "z86HSjQS45S0Rg7F02V4ofMeS3RQUuslCq2mJT7FQZyI7FfZH235aHb2C3TopdJTDEgfpnMfekXd04cz7gxhPAbsvWQU9sGN6WUnbGCp1sCToGkvWREEkQ6PMOCO8it66nth3YyWi2" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "i8tBSRuj8a221O58qxcAtbOXwG3EhcBzkWa4FEnOGhIA5NIvcUXy6Mvukr0tDB2Qy4U5JaTprtZpgzMlmKTkogOAHO3dh53H1PNKRy2b2TAalevHYg1exHO6nJjEGeeIW1sN" + ] + } + ], + "supporting-pc": "mYtgqEBF1aDibKPSyV7a7LQlZy9STXkfVNnejQTl0oD38kNz7UJeGzsx8Bq1yK8mpwAJet4fRziST6r0Sa7qJzYJagCJSDXh1pSfSWuBnFl8DM9vWgWyPM9R2E", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "f8aa5a5b-6b21-eecf-5f43-21f52446eae5", + "layer-protocol": [ + { + "local-id": "pUmySfwJi30SJskwiOFCy51jtEzghwkyqH6bWvU6qUY9nbxxR41ha2ADGaLPG6gZFeaBJWIaJyb6BJvsFwKHycd7mYOVW4MBjW5UKF4t58rHRW1okD6LQjS49yZ6vLzOzEAcbFFhNZQwNJM8nST53D9d31byEKe6hPismPB1Orpu3buq4fnZSocNp", + "layer-protocol-name": "ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": -15346, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ], + "number-of-available-traffic-classes": 26, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_C_VLAN_BRIDGE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": false, + "number-of-available-priorities": -71 + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2021-07-17T19:03:43Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -102, + "current-problem-list": [ + { + "sequence-number": 27668, + "timestamp": "2021-09-17T16:59:03Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "problem-name": "0IqQa4qiCIzPFEn7KHZ7uIMfQlLgAEKAnajp7JHJj9yZNV6pvXpZxb6gwRw7ogzLjS2qCJ1VSrMGeKXJHmA7qHnOqT" + } + ], + "time-of-latest-change": "2020-12-28T03:03:51Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -7315, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-05-04T22:53:25Z", + "performance-data": { + "es": -83399647, + "ses": -1372181095, + "low-power-idle-receiver-ms": -1016949291, + "low-power-idle-transmitter-ms": -1609026745, + "symbol-error-during-carrier": -2027018767 + }, + "history-data-id": "JydU7pfnNrXowOTEfG5ZWhjDytv37JWQa9ChqRwdattG", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-08-17T13:52:15Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": false, + "eee-is-up": true, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + 2 + ], + "tx-level-cur": 17, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "pmd-kind-cur": "LFZDk712ifjFD0udBApkR4wFO38dPjgBZ76j67doeoWSoi50SmcJiIg6EgbtAk4rraCq9POg6K8m35mNrypJ9FINWTgoddPxfjXh0Dx6gFtbKHY38nMhVu4Jgc7lhOSx7HO7ll6BSzMu8Kxg0jpVGlEWyD9Hr2eqBUpW7vxZWbt5W0dWcDJSYnGo0H6jBcBd", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI", + "pmd-is-up": false, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -920849701 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": 103, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "short-reach-mode-is-avail": true, + "wavelength-max-list": [ + 712242164 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "uQXTh7qJf0snKs9pNu8EDRjW1Q86oaHK0EwaLWT1OlgyGhPtMXZpGjdA1lGpvf1oTxyxljq9wyHcPxxBmx13I6DJsb0Pr15czvBUO14lrDph2XKpmDk4KXN40NTrOREfm7ab1eosRNBUKmb6Zv2BkHFkmrE3iaiwhsHiyXLiLm4nAfmsKg3WYBgk2Ufc4yIe0iwrfhJSwN86UuywKCsA5AV7n2bjATxt34Ubdv3JabQ4xosaSUKXmxW", + "speed": "A73aTsDOwpZKUVtW6b0wskGkeqaBY6cy67ARA6F6vxIis46qf7", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT6", + "temperature-low-threshold": -70, + "maintenance-timer-range": "pgyvGFuvnOZ9eM57xZcI0pmBc50YcOsBWSZDxl0M9ZVfM0mbSzMKQ0l35eTiUdLR5CmuYmh7d4fRXB3P2HzTHUOM0HWVUAMRc0lamuarzpjwSedNVMyCyegzVdmHN0qZ0", + "supported-alarm-list": [ + "2e84FHtY5dci074qBuESVr5h0KhqB94vncz3T2TY8Y80XcrzyXjupgLp0VIt4MZkQyfBt0rtYztODMfbKyF1OjiG6012E0mmrtXMuo7kPA8sfnERVbSBu29s3b" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XPAK", + "rxlevel-low-threshold": -57, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": -2005534709, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": false, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": false, + "temperature-high-threshold": 80, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_SC" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "performance-data": { + "es": -1279133141, + "ses": -1552849717, + "low-power-idle-receiver-ms": 1231109960, + "low-power-idle-transmitter-ms": 1629566086, + "symbol-error-during-carrier": -1478930465 + }, + "timestamp": "2021-04-24T10:47:57Z", + "scanner-id": "jct3LHvS74fWv1J33YngeITXNpuLmW8F0BADb6wi2D6xEIBzGYPMyAKmZ6Zl27TUBlyMjWWmz3L6Lexj4n6DPIZPOQ2RPNDq1b4k71yzWkxHy40vjY89GZQvPKewyRXzVTL2MktIE0h4Xazg8zhPy7cfSiMi9BJ4muZ9OkRkd1h2bIibis0Iz4Qjmuto5ckjHbsnwcAB5RDgzNrJfk", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 87 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK" + ], + "maintenance-timer-range": "LMKIbI9WrI1i7qRE5Sp4bFlOkspwCEAgrcYCU7rmHswPKflQZKMbiZRCr88WMAc5M2Iz21NBtji6rwWq8Atqrc2Sk3G7vSciNMJHNwa9Htf8Z3r7DUy47sOjnvqTfv3UhMB5iM6Z7l0Yor5TdvPcQvwd0O68j9UBVoy52EX9ZX", + "supported-alarm-list": [ + "g48tsPyak4ndSmd4n7Fbv5gxJdGA2FPiCPM4Ec6Ygt30Pg45oBgTywjhCRJExyX1fBXTN3KVwFNeWKjcdz", + "MXgVz8F6x5Vylov63qIYWoD2cndotElfCCa3KH19NWH0c46fuP5i5JdhYiFrX0yruJm6iof5cO5pS4" + ], + "statistics-is-avail": true, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW" + ], + "queue-depth-configuration-is-avail": false, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WFQ" + ], + "max-queue-depth": 1580016710 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "QR3IhwmGinUYIcp4qNAz5QzmbSc0BSmjCh1LOfr6udWcpdhH1RgYzHdLspD3aReE98pPfQNKVBOdO5UHObygSL1c2w7comQpm7eBPTdLu2YaZSSGVqWG3PS5l0aBe00A06bPZpAlrqwiboY6GUMJJxOXxYyLRzdRxoyxF1", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_VLAN" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED", + "compressed-header-length": -17258 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": 729154470, + "fec-is-avail": true, + "burst-size-max": -19934, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2" + ], + "egress-shaping-is-avail": false, + "information-rate-max": 873248546, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": -90, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_3" + ], + "burst-size-min": 27413, + "fec-word-size-max": -8299, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 39, + "current-problem-list": [ + { + "sequence-number": -26136, + "problem-name": "x7GMp0vGNdfLV5gVwRq1zTYUVNc84esCl1gL1DjPQzADwIzUzZV0KTVFG7FDd77z8ncaTvZJ4rft9OnIFbIh4vWDutgIAfhBCtLnYC7V3mg42vMzGmQLSEgm7w4zLdafyNDxhCkcQAgS52jEh9p9NFnU3klGpoNYbinlUHxC9Om6QFK7O18tyoftIB97ZPX27knU1Vw2JL1rqLr7FrAdP", + "timestamp": "2020-12-04T13:42:12Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2020-11-13T17:45:53Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 26531, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-11-24T14:47:41Z", + "suspect-interval-flag": false, + "history-data-id": "zTT3ba0Mv4pVWW9l34d4aAo9yiE6DDaco38z50dA5un1qwettkyDUONl6rrKWCOkxOLDPY5UstNLR1ekdEQ8lDlrWM3TgKdGyZbfPg9aBOVlI1FVGnV10gkX3gIb0NRqE2GubHwEwjZ6kx10UXTV56K0mkce7VEMYc81MEFaXFg94h2Y6VLcTncfHglPc0t24t3I7ASW78XbiZagNVsGjxOSN9zZ121YvWGuxziwz8IJ7S0UFstQZ9JFi", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "max-queue-length": -418232463, + "avg-queue-length": -1390537601 + } + ], + "fec-uncorrectable-blocks": 581634768, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 541263934, + "tx-ethernet-bytes-max-s": 1445613720, + "time-period": 389920298 + } + } + ], + "time-of-latest-change": "2020-03-30T04:18:45Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2021-04-22T14:58:39Z", + "scanner-id": "xT9Q0OiA2ZiBpBbGTJU6gtOzWbojhRPOKYxCFP4zOn25YdDSWyY41EDPHU8YDXEnObZlS3UziWEh9a1YIR2Bnyr4kzUXpyc5C3quYc3h0Aq1KjZs2U3pkmlEWftdFxahAAMqEHHEhZF1ixlkrhBLvWhj3CwJ9G0B8E1MmBivAQpLnKXOTzrpnAIr472dF2OOzPsViDqTtPwQstwd2Puih5JlcLyRFexeV", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "max-queue-length": -1104802233, + "avg-queue-length": 783581132 + } + ], + "fec-uncorrectable-blocks": 1906878520, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1921193774, + "tx-ethernet-bytes-max-s": 1240458554, + "time-period": -261835077 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 74 + }, + "ethernet-container-status": { + "timestamp": "2021-09-23T10:31:53Z", + "last-10-sec-data-output-rate": 620444774, + "bundling-is-up": true, + "total-bytes-output": "8966463508453429248", + "total-bytes-input": "4801935990791327744", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 1873739780, + "forwarded-bytes-output": "4853951588118128640", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "8910476393520873472", + "remote-site-is-faulty": false + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": true, + "segment-status-list": [ + { + "segment-status-type-id": 17201, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-01-01T19:03:26Z", + "history-data-id": "z27nKTM6b7BNylSZJaGz7tGU99cuK3pbXoqz94Fdb80Cu", + "performance-data": { + "rx-level-avg": -101, + "es": -1849356151, + "unavailability": -30466485, + "cses": 929647576, + "ses": -1259661973, + "rx-level-min": -10, + "time-period": 215814892, + "rx-level-max": -32 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": 11331, + "time-of-latest-change": "2021-11-22T13:23:15Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -29695, + "problem-name": "cAp1OWVbigi", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_CRITICAL", + "timestamp": "2020-06-22T07:32:44Z" + } + ], + "number-of-current-problems": -5, + "time-of-latest-change": "2021-03-11T22:47:49Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "eVFrJxbMQwzyWJSCvRaOjEYShH28k4frRVSsk363zFBnglSEd2koyagHRiQ4eXvXKfhXio0KVB74ORI1L2pj4xTWPBS3yf0bua8Ey8olBopp", + "tdm-segment-size": -2070149105, + "max-number-of-segments-reservable": 78 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "TTA4Y8XMXywT7LLa7ViLlq2HTiYipQtiJ4nzckd1TJUSuy2BtcfPuhonzexY41hG5wf9QtaB45lzvf2YrhFVyVa72IY6J7EGDUPlfZXjWa" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "timestamp": "2021-01-19T07:32:23Z", + "performance-data": { + "rx-level-avg": -104, + "es": 347728748, + "unavailability": 1127159280, + "cses": -861935487, + "ses": -1407764965, + "rx-level-min": -113, + "time-period": 100125446, + "rx-level-max": 73 + }, + "scanner-id": "OqPPfEDqWLIjcNs0ON7C19u7qxU8hLq5b7NiLqAI3bTfYlfM9mhaoL9Oi4WzHmxSuc37CDPFGJUF41j5nA7Lmhswdg6UDvEZHH6bdOITxuqtvCrScywqH", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 106 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "I1nD0mqXypCpT0Ikrg9EmsMtX7775U7NNuqNQIDg7fG0fgcHwedSGZevYlC3fBIU50INIl4HsCHISMho0m8ymm3cHygW9QJ7RrUrEQ96sIGcuPAmcJUq5QCNgKBpBkokDbL91U8mDGyZw1mAK8SHYuue7YwIaU2OXFPRAX55ED42wiugrmYhIkw", + "value": "aUplGj1EZQvrGAwk5AeCTIKc" + } + ], + "configured-client-capacity": "LbsAs8dpZj6zLbFqZTk0jamNNqXR92ZUdjmxrzWjT2KEeh453hXmjja6B7QK1Hw60TEk", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-configuration": { + "maximum-transmission-unit-ip": -13875, + "l-3vpn-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "dhcp-client-is-on": false, + "fixed-ip-v-4-address-list": [ + { + "fixed-ip-v-4-address": "1ezL5z9EhGr61bx49S5IE9qYkUBqAF6CTxfR6gvgXOeYSLV1v0J291SuNtMo0TSUqZDpf0F4GT3yxQsUI3WR5OdK9002LKW3JrsRjZVZLYyaGS4oVT8SzdvB5vDQgrMRS6Ib6E2JuAT3kPrgIr0aFvLK1ot9P70zdBKb7MUtfNwzvQHdhInOd0r6oMfdT8M6BoaI343aKABfijkrTAg6AH5Zlk4ek", + "fixed-ip-v-4-address-prefix-length": -87, + "fixed-default-gateway-ip-v-4-address": "VZmv2jr4V1G2bRmCKWSIprNgM0kSc350VjvPuWUpPsrSbGvNufvTzb9d3m6fh3fceL2JzO0hgk1j0w6uEtodEpqHLoX3jcfyP99hX1q5lrolYuQuY6HunZ49g14z5jZNl04i2monNEBD9j7ZpGtMGxNWqRno3nbon7GptWFgBgUCzTtQAWu8mi4E1j24Gds4k1lNP0WigIUHBnx3c2bqc74drZiZ4K3hDh4thSLqAy74NxZZz3hLaeYt58t" + } + ], + "maintenance-timer": 1295916714, + "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "interface-name": "fsug1RA5vS8hmlOVS2P7IODv04wwH1TWlf4f7wkugkMCFsqyufx53aAV7YkGR5udkqsjXEOdYsIEM84gftlawV5DMhbDmFQz5aS2Oy8NSIjEIfNXI87eW4JImUdAz49x6UrVkrId9TJR8wGIxNPtSy36l8GU4IjbuL6", + "arp-proxy": "ip-interface-1-0:ARP_PROXY_TYPE_REMOTE_ONLY", + "statistics-is-on": true, + "maximum-burst-size": -16149, + "loop-back-kind-on": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "egress-shaping-is-on": false, + "problem-kind-severity-list": [ + { + "problem-kind-name": "fv7I36EIDDA4GRPJXG42OxczOCYlRH2741HZ8dILQiQp", + "problem-kind-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "interface-is-on": false, + "qos-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "maximum-information-rate": -1366968655 + }, + "ip-interface-status": { + "errored-packets-output": 1507279982, + "last-10-sec-data-output-rate": -504741853, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 1865958704, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "Z5c1UC5tiAjvrTyqXr7Xzcxd3PVkQksHqwBk0GFigZOIKe0HF0w7c3k7K7rtrTaRiL3ikJtAA9aknbTU3q1fldn6kOzMAJvSnz2", + "fixed-ip-v-4-address-prefix-length": -85, + "fixed-default-gateway-ip-v-4-address": "n9Kwk4TnXOqfHFBVUH7J8LbJh36QXF0lPKR1GDgvjGD0deN8NVJVyUwPPDxEapZZ1JSHe85pGIhUO5UtSDgqpM8ehxSsXKjYlcyrcvQTd7FT4zmW4CftofzGMj0JVjA8n0zAvhtAp0ttzPivjpYHEpfiAfUwzuEWm6oRnRrERU0iBiNUzDt5U" + } + ], + "broadcast-packets-output": -576069243, + "dropped-packets-input": -67779129, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "dropped-packets-output": -671249559, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "vYh1pDxeZvCITm9p5VpooH3a8zEdtftY5KRvghJ7MdQxzRXFNeV3WQeWpSaT7DJcftznKavoodOP4DmJRhNF01CpLEaK9UWgnoEZy1nOe3EiG02qaP5aIzzldK5mwTDTh9SIa7wo3aGJ3A9dh7nZGOkUqh8WbDPsMz2OzzcCBLdElfRDm6u2", + "neighbor-ip-v-4-address-list": "POd6Pa9kRu7jwNS50mHLzdYO5B2365QNLWLs6VNPhM8NzSTr6s", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_OTHER" + } + ], + "timestamp": "2021-07-16T11:51:40Z", + "forwarded-data-volume-output": -350443529, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1652300731, + "last-10-sec-packet-output-rate": 868913988, + "vpn-binding-is-up": false, + "multicast-packets-output": 1086264830, + "broadcast-packets-input": 1243356270, + "last-10-sec-data-input-rate": 284123076, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_DOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 789128316, + "data-volume-input": 1342820380, + "data-volume-output": -321986015, + "fragmented-packets-input": -1576801695, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 911067796 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2021-04-13T04:17:44Z", + "number-of-current-problems": 14, + "current-problem-list": [ + { + "sequence-number": 31383, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NON-ALARMED", + "problem-name": "ZYxF1U9y3H2hYkgafAlXHlWAlIVegH67FDMzpWZsDTJt50EksR924XupypwO6CVEfA5FoW7TPRnVJ173Kh5O6AdERBkQd8ulIr06nZR4IeZj77nRgkFmML1EmlmstQN39F1wETAfZsy7rNQH8oVM1WinaEHvmurv9sTGdmVdOtcf92OhiJ3jyeHASg5fLwKMREs40f9GBlVKgB1ykWSS2rkVHqakOM7xirCa", + "timestamp": "2020-08-25T19:05:49Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": 5710, + "statistics-is-avail": false, + "supported-alarm-list": [ + "UHABsc7hfTh5ygZgXg347hvs7CpquHxggZSI4R0jC9gap7ieneauvFWD9d3DNsU3jEEnnwHZFX155jbkpePVTDyVJtqwNcr6Q5u5t3490X6X99aynZthuT4deuB1H30p0mvuprvppBfqKpY0gkhK5lQkPjdoe5OfrjBQK681znrbEibUCkwHxmTfG7DUcr1ECu", + "Xi0q" + ], + "information-rate-min": -1310387209, + "maximum-number-of-ip-v-4-addresses": 13168, + "fixed-default-gateway-configuration-is-avail": false, + "maintenance-timer-range": "gaM1Yc3Qv4yAHsuCyKs1tWUotHLKDXbM0PNY2IHpN7Zmzl", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": true, + "information-rate-max": -210721601, + "burst-size-min": 24770, + "ip-v-6-is-avail": true, + "maximum-transmission-unit-max": -23098, + "ingress-policing-is-avail": false, + "maximum-transmission-unit-min": -14442, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": true + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -891649587, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NO_LOOP_DETECTED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-08-24T22:44:20Z", + "multicast-frames-input": 699365940, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -894106623, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 1337716624, + "dropped-frames-output": -157116857, + "statistics-is-up": true, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC", + "last-10-sec-frame-input-rate": -1812932813, + "errored-frames-input": -818615179, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "mac-address-cur": "Wpml3KBIClfY", + "broadcast-frames-output": 141724578, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 913641270, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1466132143, + "dropped-frames-input": -1040549959 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP" + ], + "admin-shut-down-is-avail": true, + "maximum-frame-size-min": -11841, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "K5jOKeqHZ5ck7hzRRckJQGGBHxBNwsc9pwX9CfJtcVFj5e3WjnF1VdCDL5i9yniPT7ZnnIIzvnTACOxVb4WYirtVwM4W1fMUeD9BdR3I6OjICIvFMkDWL7R9LO6MVKy9fHDkqG2wud76VCDAWgwzfgJ0WH", + "supported-alarm-list": [ + "jcSyLvSbbMAxSHvFb8f0hEzwMixIZbraojA1PkdS7FqZmNwpWMpdiZJ4h8E9c5bAoMB56GY5lg4z3tZR7oWpfylxGZyS4JkkvOqumgzIww9rZ0b6h7vwFI3eHt6D5jXs7fWtvw3T25d15o7mvuTb4OpLangfGdHFlE1Q2WC41PX7dWlIi6LmV27XqfcYsLwNhxwjl8fnXcm20zKiGoEtqDqISuzdf5SpugIPgY452q730Kdy8K1qfj90NI5UFX", + "962YmS3sMlzHdjNLjxMKM5TEKtJF8HY9NS71C2thg3QteD7y2LiPJ3ltw50EERNjBMk6HOnPRda5JhDL3NsMQO7mT8SxZxQscayLYVAH1KFKUavPYYtOEA3xAVWrlMUxOsiFgKehmTTg4g5U6yAK1D9Br5VMJPjy9t5pdjyz" + ], + "hardware-mac-address": "RrrmRUJU1tQJDSlMidjonERWO6851adSCE6lyP8raYaNIvs1ALhYh8M5eU2f57ZzL5MbNUCXLMDta5mKIDA", + "maximum-frame-size-max": -8745, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": false + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 20883, + "time-of-latest-change": "2020-10-02T07:22:22Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-04-16T08:52:58Z", + "performance-data": { + "mac-pause-frames-ingress": 765538956, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 2143917006, + "mac-pause-frames-egress": 1886343186, + "mac-control-frames-egress": -634769535, + "oversized-frames-ingress": 2009752000, + "undersized-frames-ingress": 1888952182, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 440655352, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "XRpLrfIbIpkoWhori0bG6ka4SeXMBk5q4m3vBDyb3TzRaYakYlSWy2S", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-07-08T10:57:24Z", + "current-problem-list": [ + { + "sequence-number": 21633, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "problem-name": "8bpn1xLAqKfZeIZggfH9w7f6mC3X2C0aNpxGWigmUvd06dhekYfRXuXc6S98u1i9rHPnRYCLlPLjU2x7SMQI8FUeyVe2Wo4n5LDW", + "timestamp": "2020-09-04T23:23:57Z" + } + ], + "number-of-current-problems": -41 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 33, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false, + "timestamp": "2021-10-10T12:07:48Z", + "performance-data": { + "mac-pause-frames-ingress": 992714006, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 329522812, + "mac-pause-frames-egress": 267953474, + "mac-control-frames-egress": -898938543, + "oversized-frames-ingress": -1014127019, + "undersized-frames-ingress": 2063739480, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 960035790, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "n66Z5yOTLWu0Cc0XKAyQ47tlV1r8DUiT0gK5OyQrmlsZxkOaNe0JltXhvoh0izTaHD7o3XPqa9hIu5S9jKSw5PNA54Bnvupd0wB3mqlwAC6WzQ5KAPh" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2021-06-22T08:18:53Z", + "performance-data": { + "cses": 928796092, + "es": 900742052, + "rx-level-max": 88, + "ses": -1289240505, + "rx-level-min": -48, + "rx-level-avg": 72, + "time-period": 450503844, + "unavailability": 822468844 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "EWTkYMhV7a7pjJZF2HZigrdC1BzZcm6QaR30DkVCmU2FDTkFBbXJu2lnDMeI8cqa4tazF5c1R6HuRT1kXR4jLpHpcVZc0pn4LxDivHkmNTJxECRBlVV7duophnthMQdpgJIDqUR6NADj5mNqiAxv4VMdafnXYAe6bWJCQsAv35H0ruqB4Q60LKdW0ALQ3ROeOpIwRiUMfBMHX5a1Vh1y16mTz7BC" + } + ], + "number-of-current-performance-sets": 106 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-03-22T16:40:36Z", + "performance-data": { + "cses": 1532827066, + "es": 1351735362, + "rx-level-max": 26, + "ses": 619114456, + "rx-level-min": 76, + "rx-level-avg": 52, + "time-period": -1356173983, + "unavailability": -965682697 + }, + "history-data-id": "i7yfcI87R1xL0UwzT0bKhTh6kdw4UQVdPlk1Vl0FmqqmkOVdOYY6S74ccA87i3c8gw14RUJ6k1sEPgJwezCYHybT0bSi", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-01-02T04:34:37Z", + "number-of-historical-performance-sets": 31095 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -9573, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "8I26ui06cAv5ze5jLVJeLc" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -9610, + "problem-name": "N3mKuJ8lIdkK7b5B21EylMQvQe5JyIPdLbQgMYtnbN7iZ4TT6pkjc2O2gTDHtsM7vCnaAQxDwwVnBG8zYsSauG4DsHkV162wBhG305HoCuL53LE16o3sW75oGhcHg65RgEU8BBw569a1UG2S45l1c", + "timestamp": "2021-07-14T00:31:09Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "time-of-latest-change": "2020-08-06T06:36:02Z", + "number-of-current-problems": -93 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL", + "name": [ + { + "value-name": "m40A29hktD15EIo3cr7GJ3V62Fv7sMmGIe9KnqWRWYWsGcoKEvqnydmsKRz4vWLeaUYqcVh8L5BjhZ3Nml3Uypmi8OmDKZRMTIcYvl68qzrAqufMPiGfHVxHJLdlL4ZwE4m1pt9IUAal4p7LIG0htpZ4bcpO8gcFkzGCUQkOiu1fT90tP1LaqCetOD9OLml6N2IHKUn2gp99yaDfbgptSDXy86eTkAR7CrGed48ttiDT", + "value": "80vghY8MNGUMUF6mp6YIM4WQ5pbnUWH2W4a52iRIQDmDbsZAqQadU6VZwZeqVVlKZvP" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": [ + "lvfSBxOGA5vWpPYnqYd3ZUz6VkK7NcK0zRSagHIIEex3VvjdtwgljQr623dPfPIPGARX9AxGG4BBAUOVr5gCNHIPCVxSKfziHi7JKFpqJ0TbVI7eFfQkXq1rdqbXxK7fV7QFMf" + ], + "fc-blocks-signal-to-lp": "7RrUry06NIiC8c4lC7a2SahFh7k3eiidaJ8B90APJKjROf5jnfl7pCMGB6BHhUUjvUUFVmuEZNnN3s6iArpRVbqo91XqNKJbEwQrKcXJRdpMFn47PtZCwhTGaQ6QAQ17eJqYNoAEBZj8mf83B7y7grNqhUgKC9RIS9GFxgc07n9uChpdgXdoo0OyMXag61YR2xoANsANPB9kKyxSwKgMD5", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 38, + "current-problem-list": [ + { + "sequence-number": -9505, + "timestamp": "2021-07-01T02:58:55Z", + "problem-name": "X1NpLLV8k8ba6rn2VxIYPRY3wC3115KQ7p7KaVKn3Vx9eN31kLZ2DX51s83l5N444bOe6qB2d13rO7s0Sk2n9ZpB7sX5719b4Yh3gT5uM8Vs7gk0AffJeEde62j53s87iq2zb73X8QhfYB7qQn251fb0huXcO6bZweqHdlwd3Nl2gsk7He4Bt7tCtqGhoS8UYyt3TZhPEuJVW3UwiQ7DPs8iSOr9yAVw0pA", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2020-12-28T01:37:20Z" + }, + "air-interface-status": { + "xpd-cur": 106, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": 39, + "mimo-is-up": true, + "tx-level-cur": 41, + "local-end-point-id": "ExjTWLT4", + "rx-level-cur": 104, + "link-is-up": false, + "performance-monitoring-is-up": true, + "xpic-is-up": false, + "remote-end-point-id": "2l86sdTkL50Nh4HlSSNQ58mCjfyW0uf3Po19BVteSu2aqBvbmb1rbf3nvtjnYriFPkPi7ixZEr152p8gs1HDgC0D6c14DbJkvyCuJ1ufsncnMkveldKuPC7NO0RrctLHTg4ChySCN4RAhmGCri69V6WJ6G3a9GS2WWx6mhA1drBuFaZ7sX8nV4Z2K24LAWOpKdnYmX0zgtWVvNUYK2dy74sJ6wvzlbY5glWCaO3q9Z", + "received-radio-signal-id": { + "numeric-radio-signal-id": 43128, + "alphanumeric-radio-signal-id": "R3z0nRQtXOOrZvabQn7MHxZQNzxgxZDo24giNYDKMr3DW6OFlWrUtjK8K9gh8Tx3XNdCDQep9hU6fJDAx4v0f7009g9h1HcYmps07GhhXcf5NSFkO2c4" + }, + "auto-freq-select-is-up": false, + "tx-frequency-cur": 863334722, + "rx-frequency-cur": 1220131710, + "atpc-is-up": true, + "radio-power-is-up": false, + "snir-cur": 20, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-08-17T14:23:40Z", + "performance-data": { + "snir-max": -57, + "unavailability": 2061930876, + "rx-level-max": -117, + "xpd-max": -101, + "ses": -1144244685, + "rf-temp-max": 125, + "tx-level-max": -53, + "es": -423538077, + "tx-level-min": -66, + "tx-level-avg": 30, + "snir-min": -53, + "snir-avg": 26, + "time-period": -1715890515, + "cses": -2085683507, + "defect-blocks-sum": 17887, + "rx-level-min": -82, + "rx-level-avg": -18, + "rf-temp-min": 26, + "rf-temp-avg": -60, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 57, + "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "time": -2045365529 + } + ], + "xpd-min": -48, + "xpd-avg": 63 + }, + "suspect-interval-flag": false, + "history-data-id": "0PfAMznc6jk7RsdRX481dt7iMANCQ93RRijDJGHPS2PJm2scYBd34klQM0kDanm1Fxwg566X0NHmH1qFCDIGPWouWIZ6Xd7uKwLPCJNCwmQ5nhK0MkyugXY5xXbnabRUHCBbdoNJKDO8Mq0zDy3TnTYNI2aS51EMw7PJwCl8718Ms8d5H8QW1HJJBLtGFZkb69UuD7" + } + ], + "number-of-historical-performance-sets": 4552, + "time-of-latest-change": "2020-10-04T10:14:18Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": 2131054468, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "7q094PWK660cuHhCqQWBVsFGMM91dCkcVdmR2aB08u4Dblft4b4ZwCFigGjtaEG5RUWLWqD5UHI5UXrY0vXw7uPfa0Jlwhqf3f0ZFvWzcww7lXXmlVKkprAssbNYk56fkY6Ru3", + "R01VtapjbOHT7smIt8cXR1PS9v4Q4zSNzTB2W0d7GU0FefnHfzw6slYtRVkNucBVX4PT42TCOLaU0xtfZ0erd4V4Z7Sljl88hX2dRVPxGZjzpNGoFUHSZuPQBz4MU4V32XgLK5biXu", + "Rk4tnQp6TUhImVJFjjjLyVaU94DezGHi1LLot3meXvObqyRBJ2e9YoV7lydUfV48yPo2SK8I7XLxvC06xefvDauYBIKQvOY3veXgY6Y53Buq6m", + "m9qCOcjz3GoMhXQWJURMOG2siZDAO7c2hCEXOQoKwEwFteB40kQP0K9aCMLqTXt2rZS7PgRlVf1otutuPbbHOkSi6vARk3ULVEKKUCYHRRYdljH2uKKa4Cs273LrYx4LbOw6imF2dDfqWOtjq5lmHOoGJ1Zzz3dKJJIUXoW2T3sIJN19Smvr2LZDMY5lTi6vTGpQ4dSQgcyZ0r0KFv4Ig3d22a", + "x6slKzmUp0RqRtX0Q2ugxUrQeyhkLMjaSLvudKoCK7UCASCrUYHjS09Yziic4CnOfSbsur5fzRJ9Jdsvb1GW2QUt05FXH2DWNOhhgewP57QHkb4wcLs6tezt", + "DAD05Fu3g4FYrlOnJ2cZ0iPXdqjvwFT98o9d4w9csObU2Z9L2lCUErKJJ37gB0hJhjWdP5p9MA3Gs4jmqV84mKF5GMdhFn0OGO1nMqwqTs6dwhzWczSqkqn04B9BQ1pwPqLtJ9TCtRP00gOcPzC", + "NseadUz3RMNHU07LSyLCd8GNgCTbw3rjwFuJzVFiAkZmk684wLzCM7h2JadfewrC3VdDISVi5NFpLFmaiVM4237M6c1kBsWEf19QM50RKF8ncuxvpbrs7q6dv" + ], + "tx-frequency-max": -537441665, + "maintenance-timer-range": "43Y7IFa6mKD5X3DVMNpuNw6KLVods22x50wFyGLUigRfjn2X2rrQYpABkQPFKR4PJAmh873qgNxrazhcSI2I0ukcd1RXKVFln1vv1yV9dsAnTRsEsmesRyE4ro13jypHAU4Bk0KykcN647KouYQlpmhIKaMWJ3vbXzM9rozEAfKwmmUQcC3", + "transmission-mode-list": [ + { + "transmission-mode-name": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "transmission-mode-rank": 1740720812, + "supported-as-fixed-configuration": false, + "am-upshift-level": -53, + "tx-power-min": -21, + "am-downshift-level": -28, + "symbol-rate-reduction-factor": 94, + "channel-bandwidth": 400104144, + "xpic-is-avail": false, + "code-rate": -56, + "tx-power-max": -115, + "rx-threshold": -2409, + "modulation-scheme": 11410 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + 1171238540 + ], + "atpc-range": 23, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": -182245743, + "rx-frequency-min": -324639007, + "type-of-equipment": "4YnlAQXU6P2GA5QUwlpEmzERbLnMHJGLzVY1MWWKDQi5V0ZjmgXAQtr1fHGOierR1pTNdPpJFHOsIGMWWBwE5Qycp60HkrylIr1W8qxN0d8ATUoIvUesCEE1KwAWP1aysbmttL8tYgVKajky6y0I5xCP34ML5WbqZpTs", + "atpc-is-avail": false, + "supported-radio-signal-id-length": -19215 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": 26, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2022-01-28T17:49:39Z", + "scanner-id": "S4Ms61GnrKUmDKxGlga5GfDvczL3ELvoP9QN2o3t8XPDzebNvmK3tfyFPkIlX5KEeskgRnCZcrvLyGq3236nix27RClGH", + "performance-data": { + "snir-max": 23, + "unavailability": -1441478999, + "rx-level-max": -44, + "xpd-max": 24, + "ses": -2081865353, + "rf-temp-max": 87, + "tx-level-max": 98, + "es": 67548356, + "tx-level-min": 121, + "tx-level-avg": 43, + "snir-min": 51, + "snir-avg": -69, + "time-period": -2075415947, + "cses": -694256609, + "defect-blocks-sum": -8770, + "rx-level-min": 15, + "rx-level-avg": -3, + "rf-temp-min": 0, + "rf-temp-avg": -4, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -84, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": 1166684042 + } + ], + "xpd-min": 100, + "xpd-avg": -126 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "GzuwcQ1fa1PBJ0GvYBnuABNop00gnH23gosletAhmiS5aqB81YvuraKIaKZxrTtAiNVo8vFvFpsPPVYJLlddvXVFzM40GpsQcnelLUIqba8166KRjPWOEKldoh5WHyMLN16yNORYRZZPXBygivWW791vq7k7x6L", + "value": "ZRDMyuDhlu6i6Eqo1md0vewNdQNCOyPOhssHO5Y9A4jyBJOuX1vk817lJUYpsF5CZyjNDiO5e7DHQkcFlHZtA6Hb1xAlcGX369IBjwHxvc7dwjSKSRdkXUvQjX4vvTqB28ddEML1YKen367NXc7NZuvirrGXd6q7fvlLh6N" + } + ], + "is-protection-lock-out": false, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 6464, + "time-of-latest-change": "2020-02-22T23:32:09Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-09-10T04:10:30Z", + "suspect-interval-flag": true, + "history-data-id": "ivjB5xzBVyjBI7T2ELnZ5tqcp0QrS0M3nXEtm6WhEfSeeDgLpECmZ3yoVhPF9tIwqfRMlNVZVO61jmMISp5Skv87EQMNjvkCK3o5RcWE0UFbhkU1JRTVe22TKOy3bKFVOWSx8Hb0BIbK2XMDGxqVrsGbh67sREgFA0cAHfsbXwNStrnaZOXq8vuhBBKsfS7ISbasqDvg9i0u", + "performance-data": "KltpeZdNMTeGD7ADEQlW76b2cJdy50yHd16r0b7F4llzkWcZExNLvQFHzSfwSFd5ybprmw6jJrS3fXUTmHwSpbzY3HuNmzLVCaeZykahL2kTR7EeOb66ex4aerXt0IgDKuuiOErryEciLRwrUCx81Cig38JVQRytlUL1q5sRJF9uoFVi9tiaXBiSJ1NrKeU58y6rDrieYrIeYvw7QO9NhsF0llk6ze3zE20" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 30491, + "problem-name": "k3AMJluW6EJki3k5fYW4ulq8OH5V7BijwSYgek4kYNE8QQe5O22anki32oZ1Zhcn22DgmHsduZlcPzawC4GRoRVifUb63gt5iZdFGGK3x57mxhK1ljSCaNUhzYnDeIIoHW3guFb1Lifi", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR", + "timestamp": "2021-06-14T13:23:58Z" + } + ], + "time-of-latest-change": "2020-07-18T18:12:30Z", + "number-of-current-problems": -119 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "k6aqqbLWTTxp77TYGr1rjcktjoMHRY0443mme7a70Ho0OhQmAROT30nno148ZWc3Zy", + "tdm-container-size": -716235617 + } + ], + "supported-alarm-list": [ + "HPRLGnlX9n74tBTmnxR", + "xLWurZ2QH73oWM9uamkbJrg4U9qiGae5V3AeUC4BJ7ZxM02Wme75xnarwsB4CIapLKDxeA1Qz0nlTh9" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "5q8uiPL8beZZ7VZmigfegeas92Sq8iJdJSHTHlUKzLKyGBNYJ24Z97ji9cBhmku54cRDpLoYw0o5BbVd60cf7wx8A0pWlTUhXLVmojcMjBRMENZKF4REAhMah36uO0MMDH0105GbyxPc" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "performance-data": "RcCqaR3gzEEhsApWfAP0S4akWl87pps8BWyDNuTf0yws8Vgnn5gf1iAYwA5VZq3tmt62X0hPqFhyspNPuV4w6wuCYrxQRsb6Vh0L9hsrWKZg1F5ws1UyqgagHz6r1hxPrxssGUUuwLKyqHWTIQj06uhN3f6XxDMY26iISccpYWPgvL16tl6zPfeKvlH2QlSTra", + "timestamp": "2021-07-21T23:34:37Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "duit03n6oI4Xpk39PoRR74B0wDtIS9b5wlrwgOuEoyBNSwWHVFq2K1U8xnIppTnV6Gjm" + } + ], + "number-of-current-performance-sets": 29 + } + }, + "address": [ + "RuXLTak5bY4UlvAN1MKt0eeAZiErMieDE4hyeBDirz4M4ErXibiiqpShHoIlyPZdT8DZJ89aHdODRfs9qCjQT37BjIWSxNXiVshwArG9EuEoBYp2sJKmEKPYkDIRrx1eZiLrBjs8G6ohWNbooWK3yrTS5tBo0CCRUfiozCofAMowzAMYwpTWQEOV7pj71OYN383uKrJcd0IFAuv6TgUCUIx1ZJ0SxQxAYt5AUGM0Gm" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "DIFRgwD6PMSKHM3GmAkd77Mb2K5pP7tkP0b5pO3esVYaITQ4m3at2Ow5ytmgAHAhIEe7sidVd3XNOFK2IMvLATI0eW8ODB5dfkcHupuHsrn97ZbHLHkdsUdHIenePtr4FED9V0IgrXpqWA0z9cMCZSbH6yVV1fZyTuzGuaWO7d64O", + "value": "DXbiraaCRgbF34UUvFo4lTeazmnFi3MN1P5kZ7XIf0fi49czOtw2eK4NYrs8v6WoVTIM1xvgxKzCMD3s6zmkcq7aKsj7y7vu0581DDaagBEUeImdhJxt1xwLZPSxWnTOl2QYxS0FtFzHnOUwxkS" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "VOB9SEhMmuVW73BUud6k27Iv6ilrB9HpYjyIXIvc4i8bdBXHG3UJ2u69MrAftaEjtd1iVouZHv2UYZuFVggPKmYoFrD8tijWnl6aJt1iY35OUzt", + "value": "PJxrXnPDGsD9KXX7a49Tpa4fd930IxHp8eQ6CxBaZekC3hBddL7CV3R1cV1UkIbkPTqjqTth0NL35fhaSgNFjwGvrzhDisY7lgiDaLUazydwNmGFClcNSTabsrPCTFB6VTBXFo76WduBz284okJ8dUjyl027xE5tpHiW5q21vouWrC0PWCX2w8AR1CQy8WTqvcmAuhtZFX" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "local-id": "FEREV", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "RocI547Tk1HFVpDkhD0Circxf64EiW51chJ9lJ2FCBkx1PJalJND3Z3iX7P8VU9ZbL8ou246DgvEY6HjQmOLlR3aQKiDEkCHXC6jE2hiaMO8Svj", + "value": "R8d4Z97IThlyBQ7ys5RZ70haMXaxluZ4Cd9tm8b7pxF1fFrzKbySbHUQF4f0y64aj5ExdHFD6cwlRXVC0tmc38UIc9ILfENrKjYX1vs7AYtrO" + } + ], + "transfer-capacity-pac": "dPMmT8YXx", + "external-managed-id": { + "manager-identifier": "MhpViOOxyC220zn8c29zYhnoY9qQ34iPlADvor2P3WRVv6Wz851ZfofdyF3tBebWOOj4fmTaaCYGBU7JR8AYx", + "external-managed-uuid": "cXn7qZdBN1p7YwlJzvex3Pjbq2b11IJ5F64YXizLbRK1n5LWAZlEGEH6zSZsBAx8zB6oLy1XpLYEQBtjsOP8lw7UoYmRrLS0eQo0oqPF3FcM9F5BtUKOiJAGHOq8zi0G8hGpznWCU8o3NlF97hXp0qYH6oIGyAeyRUXq9U33Uj7" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "8c3c44ef-f7cd-2ef5-98fd-50ff802d3158", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "niCpODZxEuo4ucYUH299wiCnPraOSQBf86FWJwmf0CbnO19n3iwrA0GijR6bzziIFXwgmSnemzBa" + ] + }, + { + "uuid": "1c7e2c79-af6e-8d12-d18a-957fe616ceeb", + "embedded-clock": [ + { + "local-id": "nm4AnPfrMsr04RxlMwsQQJcB0kYgMVh99lJw3RXPjgQnZfAMMUuuvy5vTWMFJVGT8qhb97TknBHfQ9Tu3nYqNWOGSsdtnUencwrdDkx", + "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER", + "phase-aligned-clock": [ + "wNGXI905EEivmT6VhHw7H6zURci3WJPspvi7wi4aOey27EYhlugUAIOkU7nII42ZzkZ5u38jaGd9kbqyyzs899kV8IDQMFIeSHbmCbxMRLW4WeumNWvWXHJ5hmO4UwaM5d0Hpyu8bq47EymknR8cqSiI6YE0mOErTF0a5ubgMffj" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "encapsulated-casc": [ + "bLc95SC275hrCKkjnWA91yYCKPAgSzt3kF4ppyjxDAY8karA7TJ0jACWpcc9LF45k0mKyxh3773jhmLogvoz5" + ], + "name": [ + { + "value-name": "V67Df08af6A3UgBEIH85tmlFSMSv6hoTnnoCooEDn6yhnaW5RW3cioR32Bq0SGT749JsynXNto4QySOhORtZ7c29Fk9p12w53", + "value": "ptmegPCdy25ebM5ELcIFlfRuESo2Pj96Nvl3dX8D06R3SOIv0i2dyTH4EXZtg0A3wVZBKZ6C5XGXDgkDqmIYghVUeUfmUHiiu9Lf8RJeGh3jxoOYKwOSNBETnUgatykYH65PPOVw6ZHvfotZMaKsLol1atbE1vCAtHijndHt4oZjEkbrmVT0b61mA4SBzm433meirVEwbvHQPSh4F24R85" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "Ef1toe7seeZnZl5YgNNm6PrBYAKqsaAYhtrFIy7OFYbwjhuzWaV2ZevPPf79hHZy3qdDRcrwaD2mMoVIyJCqP7fwenxvWwVZP8uGcW4mrYI5ewNN7hdWgktuH0REpMveM0MYOQcfGVkUjZHqgMmw7HSGAJkZnI51IRZwzbDfYP9hOJHWn4kuD43dNn42593FS23r5yG4nId3rVRORbbufeAUtwOrGR6qL", + "value": "SJAqNQ80TzNLgEOj1WxtI0ZxjxgiY2kQLM8qChioIY1YuPhvDGQmzQTSf12d3mVG14YDl9T37UUBC3ZfKPtbxe3Ng60bkOSdSIR5RC0YxMs1Qjgs8CvyQql" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "label": [ + { + "value-name": "I15cAjgveCJwVEajQF1GnLPrrRniZknIlkUVD2jRE2nrzqLh5MXkxEDQv08mcn4xHQlkSE3oyjQ7JBoGfd1EJwv6pvtBTp9A8uN00Qhy17yKAOrHUklDIIK7edJZuSrCeeD6XMwYL4BdL2UFe7iWQUWW7FVupm6vtBBin7884JlPD7mRfEG5ruTq9GUq21VnCoF0nO0rpe83luMA1kxsOqSX6Nf1G2giqOaOu37ThgWCKJdL3C5K3Yz1DPUjR3", + "value": "iRwYdz56QlVkYwxBr2Hb5xLYasLljGOtpkrCTxABKvWITlklnTokq9bABOVNuBgLWAnHZPbJdZk6kwrApQUPRXhlL407FgStI73HX6j25D8h9sRy" + } + ], + "encapsulated-fc": [ + { + "uuid": "dd7bb813-ed17-f734-d80c-b406b6a8eda1", + "service-priority": "-9223372036854775808", + "supporting-pc": "APCPrGDYT2XQVWgLinSFYLgyK7t5T7BlOe37MG5xA2fnR", + "layer-protocol-name": "air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "JFshKzZLDIxYWuie", + "value": "qeUzbTSyK5EkyX35hcIQbttL0jImtObUU5l5R6Dt3hFB6JzoNheZCAKuTkQn0T9VRu0AAw3vNI7Ujyi7HoYjYAFKNn7Nh8A0CBA57DAMdzypZIoG7eR5O" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "mc8UA3HZIzj7izHSkSW4kBzyMosSIRW", + "value": "4WQwRxvzZOz9fg1A8PwljXT5leP35DZ1zPprfUSeBrnQIgiI5GVgDPeZ33U0HUU8BbrQYkWzLjhlrsWp8RFEyTDtPpmob8oNjQv92sINDS15cPucG1Q7NlsuLOSWOgJ0Y790zSGcCH9OoD04xJ3k4wOPcyE1Gf1FmaFVUd0oU94aN57cGaoKy4sLC6MalFPIPnDCAD0nN5xs2EwIHUkfYM0ASEKebsO1HjvhXvwCs4WuAs4heppcbpE" + } + ], + "fc-route": "4sMexgqAj01oidHCvhD3GsJtT9jx8ZHcjtiQJJqUBjjUw0oUaTXQlzj7IDwQudVNzdvaOO5i7g4E8sqidf9zOsGoX4", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": [ + "UzqyQexPcj9nwpuseYdNIlgfcvzQUd6OEpfvDMcH6m4uLqORo2EZfV6siFa4S8Tox0T2MYKKcO6X7VHvPlm48swj7ynRH886819NRTx3zETGrA4gNikWLJ7KhmuQvCXvvYinJQiambRNLN3r5ffIYmt8I" + ], + "local-id": "pnJGBvovPXZWxLb2L3tuQnpUThF0dInD56jytzVjoV7WyiQjlkG4z5YsnvkAdH5bFhB9QxkfkrbSB1bXdRTMPJ64eiwsZCDxT6GJD0YXj1HUVLJ8uuVjdTnscUM3ohAhn8S10JQbKq6xbHGFctZpmeJq0vugM4xa5i351L9DbfbmOJ204TiqZ1RSpd839y5eQ8cJUle5spkg0e94", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "9JdirKcK8Q0tq4tR9Vqnf9qM1DnBiEQrnVBOxGrFoj9OguGpp6EE74i1AFCSbkczgFfNlGlJ0uygQ6x74bMb8WcICHsN1we9cuPp2a92wzamxHttT7E14JByi3dbAklEG23I4", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "Uw1tnTlbZMuRnbNn5zzY3VM7WTw1rY4mn6HKR2NIGhA4lfriOT9RGVQuGevZ5AdsyU4pPJ8v0ArdPLovExeckXGSb4R8w5A4RwlGft483vlKgJfM8mYkjxcmB4v7153SCorJKvRF05q9GxNPTE943erEiWDb1y3vWu7yZYeS3wTKVyrPcsTfGcLQ8g12O5pDrw3j" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "ZheEkpDEu4zDRIa7Q", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "XLKnaxRxqh0W8hbMBsp7OtGrcoBj6xD4ifjtMbS4sS1A14evwDCk7jDbz6vGE0CWfVhTY1YiLZSNV6irCUDB58MFe9lS9XHgKQaJS01DRMiMKA5enIPsQuZ4DcPF1wVMeXn6XoCO2UsFnxTC7JWPdWMI8BnaZbWd0bcYzGEus79Pw2jwDglI47rcAGerR2xSdJIN" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "DADNO2v9vg9295LKv3NIefUrTAlXjp1WRxBFzYH5eQ7fVKZiFF0TUNdGnyvyYomHNYfnWWk3Ejir3aJIPBtBoy9M7EcXVzwIpLXdH98lsrMntn5iZrLnRV1QreFeFcX4XM9xWiSoJxM4UJmL2Z9UU2Ke8isNuhJr4TY0bJgM82QUE4Gy3HsQJ54SnoxJGh2Ca1CdCKZCFPojTWRWDcMf9IZo7o7", + "value": "F9hH2LUwvT02Apltl5iR9WYaFXyEdFbTGksJ5n7s88vJxI4KFmBOjzYQoomCVxnCJPdG4k0dkvWR60CLf5syxigNzChu1E6KmbqqoqvIOjsMc4pr1RRy27eBBvXCaWeo7wOnWk6CDyoPuO8nxZWr62UzxSbHOh5NNMbCY9etHvb3bjqAbe29gOJOyUne4l2RZ5tXeAiN5tI8N8IYfC7vjIbRvr6zM0qL5UAbuSYreyz1G9" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "extension": [ + { + "value-name": "7Dt3KcgYJmJXuGqEqC4k89sSBmxOfWsmrNhbZp2BMLqgkIUCkRWkSh4lDBaTpufRhp29O4KAI2R2KDE4msh6JlsnXC8m6n5nM0wt483MaMGMicJwF0Dol5LiHTxF9C2NCrgzrcduYUg86ZFDZi2dnFvWrUBspvfTOosgAyKqk0ziSeWJoY", + "value": "LvkHWeaoDFwpuMRCeheEB65UYbIIzyEk3YTS538ABEZXiJzw0NbuT8gKkYkToY6rPZbMVkmoQel9XMFPrIjcRrWbp84N7a7O2asPuGddUqmJ4TzvCKzlcowtws9vv8bxiDmNkr06ReQV7piB1RWdfszMNIhiQtP8Y3NimNpdT701wiCp1rDhT4VyM4QCp" + } + ], + "prot-type": "TiLkXPvDsK3QUhS0AzeUpmr4AWfiUBaOLV0JCve48hM2yw2068Unuds42zfW2pCOkCpP0vL8MqacW44UcRiHWKDYbSVdhp1u2ij2N42rmcvj8AdkjnTf7xeap1ozqpVsA6mn2o", + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": "h3qFW2BmtizO3GugsloIeipjIUDeXWJ7Z2MN4f9qxAethAJBVZb2iAl0uY6kMQrDKdqOts6S2klbV4MIWYK6qY6NOc7BUy6ELxl6RrZLEcXz9B95rMbSK9FqdE18c0EPxRWgjN1XZQo8kp5LbgvNh2evG7DS79Aw1oMc3G12wh3IG8uKhRxyUL3ATylSANpBbbFe", + "internal-configuration-and-switch-control": "G8gPbYvck7l4FTYiPq3fDWPqliBoXH8vQgkT6I5rPivuclNTLQ8pEYHZgbg6SoBAEWuKwr3lKqIOLnHp5POKFnBWyR2rfv1LjnwPPz3r0D7D0O2XvIH36bZE2TXagZVAejhVLkmDXtgP9bNxTmAZprwsctuskh2rBcmmoBZe4736iIDcXd3mErGQNaa7s5qVhNhFo8TkfPiqpV", + "label": [ + { + "value-name": "NEQbXrmOWNUvrUV4RHE23pSuDqVwZXfMBXXyocekZ9HjVDnNcUHgbACOSqcRnrwYgloFxCRpDzIz4Xe8RVo2n1IgjU7GdvwuRU1owKF2bnB7dPg4CEZ0xHgQufozDU3uOWKdzqfKFISS", + "value": "8P1EO1cn9UJhjjUdegU307CiemYW6IlexeTd8XB9Rkq2vc8Ks2Nl1p" + } + ], + "selected-fc-port": [ + { + "local-id": "FTt6IDvXDy4Gt0SBmHLRkXp5NbD7KHlpsGv3c00Pq4vTWon", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "X01aXj7KmKK6k5vEMSHYKzFavbVjrauoany7yGKUiuSurf957IVJiBLNMHZ", + "value": "Rtl2IU1hsL3C7WZzb0EbIAU03yGHfFMY07SATURdFNQNBHeMHSPpkCifaYWhvIfnI0XBUHPrux656kJN5rch3ux5ktmP" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "6bDieMxD168A8Rs73kyRZrGtCEOqdNYbRtl", + "value": "gSA9YIBZr46mgw68PEBkjhKo4BzN4UKcMllCVXtfTrt9Qrhx6KRh1CFY56D90omEBH8owuDpVZrDqIbwl2Fewk4BiIDaYZOryPPXblm6kNCCoN1BHGP61Mzbm4mc32DuRkj2FF1RlvuBav4RbTP4xhgTlC" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "t4Mt2fnB4H5tN2z0De5WrmZNLW8fiPbEUX7Ocnp94muRgWRLaOIB3zhOwpVG66k03", + "value": "G8H5hDjDmzz6dKUVdXmuEKLzjSGDSBPrJwwS1Iwo95umHo9NewhS83rrNZXxBMYcbn5c5tAeq4B0lKNz8Wr9RKAECxc5cahnxezuz2J06c0rWF0XBj6tWyZ" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "fc-route-feeds-fc-port-egress": [ + "8uPhuLcyLYTFkH4" + ], + "is-internal-port": false, + "role": "scIAMVV5bOdadrlvsJ4K0Z5A5rY7IFoaR6LwUyt5eGfs7AXrjTckKhUHAKGih5t1b6xXE02SHakGK90W2c8MlUtVx26O7rPaxm83", + "address": [ + "oVWiAtbkOGOhQblAe7pbEyrqUVnbrYOHTC0l5bFMSl3IohaDoAOU07cUUAXlqD3jfVwl647Qh2rGjBbz3Zm4YyYS0O5qr0BHV8UUc1CtV317xcGs" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "yO5X1Z4TSs3mS5Nnezr9755YzvnbTQtrEzhyqdjiynwiskxyTYHSVMIu96F2O1msADS0IcagzGyTS5rDV0wIE6cO4KISL4ddH55i9fyINZtyWMbKEzsjGxZKhHD2MQ7lNcDXr4x631ERFIBkhWvPtuAC35wHNDVsPqp8uXepQL9ntKHKy4s1q2vuZ13EEY6tpoBTdIb3tkiWWSyvW0onUUJLNMpsLoNaMpVZ7YUsicg74OuTHS8tERfkDwM" + ] + } + ], + "supported-link": [ + "NBWDTbmBuxPxgCb3xC0FRJv54vNTmTk1m8F7c1JGqy5G3gBsSu7B5vG90m2m7egteVAqObYfK4VFcpZ5TZyYuf7mB1JI7Z3lMD" + ], + "label": [ + { + "value-name": "HtUG93OJ3jcDgb8QYdioC97SQe6HbN6Tg0rpVg1YzdBPpBxnOHLrRKbzYig25eNd6ev1mwZNJsu832nSB1bkLmTCw2wtgbznp4oEsgr3IWcEQrojsrE6FxAcr6FIh65yalcuBEycsKIi36Bop7u4x4gY2OGjUDJXZWrssZEUBe4Fkx3JFpG4lW2nCJypehm55Fyxx4j8jfFvFA7cRNgcBireTZv89RdeoLEVIXW15BwK4DWVqc02m", + "value": "8grDoAmtGC7kyPauQfXeRTKFP2RH4584lrzBTN5AqcUQT4cBb9PU3zzKCijyorvJTWlEKie2m1SfX4Q15xV07vCBNV13noN8l0MXaTZwURLRNBSS0GT7bnAQjuUySzG5rk2B5T7ZCKJpdtad1VdciNVB9H9U8HZzUU2ZN1RiLsHYNRbPEoTX4Oq5nAZv9RW3DYViZEAC6iAL1EAG2mvYaV4yn3VxMSspIfIATicRsFvmjXUdjp" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "89TSGKvWaf3EcODOarU5yGLv6dxlsgRAiDkYfPVpWQV0FyOHRIMhhpMnucIWssoKXIBcpwtdehdLP2szC6ILnv8RzJN", + "external-managed-uuid": "3bw0L74a" + }, + "fc-port": [ + { + "local-id": "U4FnL7aZlv1ArRJ57lH3ga4pal15wH0iLFFoEPfZcgsD03B7gaawdeNnrOlPnl78SEpomEfyVz4VDF2TH4iUa5aBMvq9QpaA3zYpd5Y0F2NizH3gLl3Njdo5IG6q5g01PQq3VgVAiJKJiO0413Jcg09QGggEw8FmY5hLmcmwVYg6E82G3LKbLU1sahYGhD2fAj0Ooelb5thJtjhw52HQWIa6R8E8DHfeS72gefsjAJ233kz0m8Q", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "Q1gz1UHFtWLeWNmaVGtvivzdP0d393dRWlrQ80ntX8HLN4VICo6ULx7txkwygCq4XRU5R9rGh8r54eFHuLtgiBJIV7g3BG0zpUw94XPdY9iUnYtSBX0UyBulAKhcjhDI31RZZzdPInBXd5HP2HBsa5FLHWX05AJ9B", + "value": "8s1d9JBLzOIgvCQY403BDDqsDv2ewwHxQIKSkdDT2d1pPJoLCjmfWEIs2CGy0n5J6IB" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "c4ePJa7p2qDlUsH0z4fEset0GqfEbqnomt55E4myvZ", + "value": "hkt9TpgpJvTJ3jYHmpWKDqIBWMXu9X7qhAz2RQsBddk8ojIKAEndW5OSJEeTBmbKODMGl69qjtyHEgk6NHcJM0unwA87OcJDPobamcAGF0fchzi48uFUn1aTCaTqmuVbKYd7aFFIGUUPm4LurqhGkjrWtceQH21j07q3M5LsSx96tUsUdJsxUUto6z6FB7Zu6hxTnad7Hnd2hFPuhh1b3mr2OxzpxqLDIioXkC" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "V63Pj4f8OvTqG7xvM7XGKveCTclRUW1P24xd8MlO966P6EcSL1qnxE0qIl9uaac4eJienv3wC9dINqsrrSOYoOgZ2htcrFgxoqMLWP9qYn0EFk5Y4TPsAXjCfNOysW6JnKmjzwBpLBVqVSgZE5je3DQaqwIKsGlHqI0Ret9Z44hZPxQ", + "value": "vaHqFps5N2H7J3P1LHLRbUI7QZ7FoP0LRzbwYDtDG3Lh6saJ9VscPaky1j5p86b0FeowKS1iVMzT6JCgx4se6MM75Kw6Qz6nGmLqeNI1r9UyKoGhk0wqNaxKUWQCnOS3bvtha3jC4d2HCAYWAmfnpM0bAQOYxy1A3nRei2IngK4KcUGM9V2yA2JaKp0hX2J1pB7HDPWLrSvDN4pORrejtPu6fun4o7XFA4f5Lb" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "fc-route-feeds-fc-port-egress": [ + "Ltj3m4xKJigSgkPhi05dHKpef6sgoVe1gx5CBufcNn43HLcSEi5l2mrasTiQGwJW3OrwjGIYVETui6mWoj9iFAkZlDH29rQ57htqPcgKIa70gtOwNPGkh1kDE1xFknCsx6Kea1ZSb6LjrrP6hvjyoD32wAAJYcbnaVBkWsdZqYiSh7Qqv9ZTEUO3vgMlkXIvKbPzE2q4SJO2Ixs5GjZdeFgJV2W7RwCtHsUdmlaf4QhEnJKW3B998hKVbG" + ], + "is-internal-port": false, + "role": "ji26JfuTWiQep6iVfClxPBygh1OGQTNa3H8MWCxKUgYcm87tClTsOrA5kpDbiillZt7O6wySMp41p4u2pfmdHWaTlO4vYhQQDPEBe4t0lq1LuoNTD9Yc586jO2ONcxvP", + "address": [ + "0OLnX2g1YDs0j0zIp0m2AEjxZVBSEKGEqr1omipkNJc6JLG0D23dzmCq95aFPRj8adownFI2oU80yG03B39ahLsiRCXyl9GweWUBBvD0hD0HjSLUOUW5xogoT5P6enuskpVVMyN3bFLnyo9ma6jHmrY7xNeDaIY" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "IQ0p9vzYT5sd1oIuIEDW3207kE3gV5fDNgVWDmVojnCdEcHeQc3Mf3LrIGHDDO8q43eAh9YBpsOVEn9nrc1GgM7YsGtXnBnjxBTODKhU4XPJcY6E37" + ] + } + ], + "sync-ltp": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "address": [ + "12WLKFIuaBkHnMI55Qp6sUEblRhJ4rkYl9B6GcAQNUp2z70wQpCac8lpZD0WWdMi" + ] + } + ], + "supporting-pc": "ngUrIDeu29329sSq42C5gTWTUSH7EZlU7flPSskNBfPCHz2EtxJJqxucq4jWVwI3MWSwo4bRkSlTjnxNM8o5GLhYPtMCZvFDrq2HmdqG6Lsp0Z4N0lSGY1wFuihmFXZ6f1FB75a5ICmJtrotE81C9xhwIqSnfJmuDTY", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "f7872522-16c2-ce17-fc7a-083c8517e7b3", + "layer-protocol": [ + { + "local-id": "iMUCsDGAUpKCNwE9Y0f9XN0C10VzwaBHWvjg0RRV9txORcXP44Y2RQwKQkjfu", + "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": false, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": -23573, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ], + "number-of-available-traffic-classes": -37, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": true, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": -125 + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2021-04-30T07:39:52Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_DOWN", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + 7 + ], + "tx-level-cur": -3, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NONE", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "pmd-is-up": false, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 1443173668 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X" + ], + "rxlevel-high-threshold": 9, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "short-reach-mode-is-avail": true, + "wavelength-max-list": [ + 2098172984 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "5e7JI0Y1qiL4JkSUuES4vw2EF381qT1v716H1XJk7uoQG8DaMveaT8GqcOsCIl7Pm6pg38AauYSbYndLKsNEAtWMhooZCoHYmYeh6GrswbvvzJ8bbVPDoEqx2GpwWYviWBzUiSeO4KbvtjGw6o9u2rUW8jl4hQf", + "speed": "jGZtzdavPlSaxqGDGI", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE", + "temperature-low-threshold": 113, + "maintenance-timer-range": "n10WFGEFhFzGPEqN0S0jvTtCeQT33oDjpvf4bLBkqa07OiMG2MZqyk2MbOH64chlHwiL9T5s4YzKgejb0aBqvv4GjMEfQWBqkT3uE8WA6ndfBwquGTUboZRADoPtkiLE3O8IXWiVkv2V1khAdcLC", + "supported-alarm-list": [ + "vcOTT9dcVJfBSXqG8e0vgOpB5ZO9Kik7m00ga5sXPHqzxRfx582lOrOTiD3V" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_QSFP_MICRO", + "rxlevel-low-threshold": 7, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": 843734042, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": true, + "temperature-high-threshold": 23, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_OPTICAL_PIGTAIL" + }, + "wire-interface-current-problems": { + "number-of-current-problems": 44, + "current-problem-list": [ + { + "sequence-number": -1984, + "timestamp": "2022-01-25T18:18:45Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_WARNING", + "problem-name": "C3kNOcSb6NL3lk6EzpmhrWWK5BEpWx1qBmdpqXtpKes6qzCZYY8hNW1" + } + ], + "time-of-latest-change": "2020-06-04T06:16:38Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 13412, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-03-04T11:25:18Z", + "performance-data": { + "es": -555721133, + "ses": -1472173973, + "low-power-idle-receiver-ms": 249278442, + "low-power-idle-transmitter-ms": -1612289701, + "symbol-error-during-carrier": 1599038292 + }, + "history-data-id": "tEHYvpW7v8MxPkyUOdhdLZwfEn0jcj2FYCvl1jlwsZ49ju40HddtcJIQZA13M4JCy6PrqaYS9U1lgXlY2qje1TW0mY48UFCsLrTbuJVDvPQEM3CPtNVvGSv2Ir2C6EWSYHVsjRXGGOkkRO1lBPQazdchFfLDLznJgj3r218APkUy9OLCDtM4HZle66RJxftNqw7sp726rOFsui5ZMR3lIozGmiqTpLzP9y9zF3F6Scze", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2021-02-03T20:16:13Z" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "performance-data": { + "es": -1168391087, + "ses": -1787168311, + "low-power-idle-receiver-ms": -1894799239, + "low-power-idle-transmitter-ms": 1427229662, + "symbol-error-during-carrier": 1914607278 + }, + "timestamp": "2021-06-19T07:01:14Z", + "scanner-id": "Fzo50SWQR57E11orrpFoAj5R2VHImN1TehY6aMWTJWpDXN4g4CEFVBoQw5qKLrDRJtYLgUEZI3uxIrNM3sjQVIGsF74iqI21b0MjMibvdF2V6IA12LSXtqh1pmbI4dJ7dor0yunM1hz8Z111NTZ8cg9BClbyyVGEbZwJtTvu2Xu2Yw3LhUUt33Xxg86HVEl6DRQYCdkE2HG1dCMmoyQ", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -121 + }, + "wire-interface-configuration": { + "auto-signal-ordering-is-on": false, + "number-of-bip-errors-per-ses": 21030, + "short-reach-mode-is-on": true, + "transceiver-is-on-list": [ + true + ], + "fixed-signal-ordering-kind": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "interface-is-on": false, + "performance-monitoring-is-on": true, + "remote-wire-interface-name": "0K7Hjx8QoonloizcBnXUSSPG0JQgE8qxSxeb4nUlD9y1r753v2XnNEVNnL3ULlrDSFHOUB1xKAqczv74qWkdAf0PTVJE82aSARyukAU42c8BIfy0bK5DZXlKKWhSZjKzaiVuKPqE2z8CGGuSizn9wIUgx30wmKXoUSS", + "restart-pmd-negotiation-is-on": false, + "maintenance-timer": 1561380866, + "problem-kind-severity-list": [ + { + "problem-kind-name": "bx05Fx0FVmhSK3KuAcEEOgPMyzeAAfRLMRIjgIYb473ObGaDSPhzX7dnysX8HOMmyuFOdES9DNYOl0s6HBxEAK18cQ9MxV85hNLujvEXjuDwu5C4z9I9UCaYsbKR6KOnysKRXgG8KkF6hhaQjLS5nU3H5Gz3", + "problem-kind-severity": "wire-interface-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "auto-pmd-negotiation-is-on": false, + "eee-is-on": false, + "loop-back-kind-on": "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL", + "rx-sync-preference": "wire-interface-2-0:RX_SYNC_PREFERENCE_TYPE_MANUAL_SLAVE", + "interface-name": "2agV", + "unidirectional-operation-is-on": false, + "isolation-is-on": false, + "wavelength-list": [ + -612104255 + ] + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK" + ], + "maintenance-timer-range": "bBqb6UkqiI0ocQw21Ziy", + "supported-alarm-list": [ + "pWhmFXPF", + "0hf3n1oGjYG" + ], + "statistics-is-avail": true, + "encryption-is-avail": false, + "performance-monitoring-is-avail": true, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED" + ], + "max-queue-depth": 751495034 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "FSb61pzLBwq8KN3p5u0bTwV8Z89b9yTGq4NslmdWSv5vb8UgCMrnbnwanxdw67do30QpeWl6ritCjgLV2cb5rzgOYtd4AqlEib3o7gmrzQVS6GF0TI6c9m18He4awpGGtB4ARqTigP2evAfgaltkzms8AoiYOYE9zIJj0vBhkwnH6CQgPbs", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_ETHERNET_MAC" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_AUTO", + "compressed-header-length": -29386 + } + ], + "support-of-management-frames-without-preamble-is-avail": true, + "explicit-congestion-notification-is-avail": true, + "information-rate-min": -320378321, + "fec-is-avail": true, + "burst-size-max": -1610, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED" + ], + "egress-shaping-is-avail": false, + "information-rate-max": -2134772413, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": 9, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_48" + ], + "burst-size-min": 27824, + "fec-word-size-max": 24557, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -123, + "current-problem-list": [ + { + "sequence-number": -192, + "problem-name": "IOPBANYLTvpJl9JoOr0DmutL1Ww69GTJvBk5gbI2", + "timestamp": "2021-06-21T19:01:38Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2021-02-15T17:40:26Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -17677, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-09-14T10:01:42Z", + "suspect-interval-flag": true, + "history-data-id": "lK1EhEkCU1TK5x4it8W3RJ5Uq6zohCjCmd8DRt7Du1nrqjKLrGOjiT5IREY8", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "max-queue-length": -801087387, + "avg-queue-length": 1092491390 + } + ], + "fec-uncorrectable-blocks": 1542402416, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -234427171, + "tx-ethernet-bytes-max-s": -2060906669, + "time-period": -499522785 + } + } + ], + "time-of-latest-change": "2020-03-17T11:40:03Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2021-11-03T00:10:55Z", + "scanner-id": "pve0Hj8STaqTWc2itR6DkZ9gEO0PkLzB8NtQZBASMTDI5F0qxYVRQ4ZuLRc5uDyDq1lhuV2gOFQLdJcKz7tp4kUPbYMxBkaTdvbHj5Y7KGLXpXzZWUo0eaPh0BPBNRn0fqAyvqxf6i5w7En4zLWFOMXOfMiVvxVKXnisNQHU0Mi8jF4Si0p6EmNM0XHwuugrSrLF9kr97J9io52H6rFCOkoGhX4Dkl4c", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "max-queue-length": -322652545, + "avg-queue-length": -522352559 + } + ], + "fec-uncorrectable-blocks": 404423250, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -55611663, + "tx-ethernet-bytes-max-s": 268800366, + "time-period": 1673337286 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -73 + }, + "ethernet-container-status": { + "timestamp": "2020-04-04T02:33:14Z", + "last-10-sec-data-output-rate": -361036619, + "bundling-is-up": false, + "total-bytes-output": "5972595826839902208", + "total-bytes-input": "2414279544308661248", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": true, + "last-10-sec-data-input-rate": 444840762, + "forwarded-bytes-output": "1426741458691005440", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "4019166423930496512", + "remote-site-is-faulty": false + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": true, + "segment-status-list": [ + { + "segment-status-type-id": 17077, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-07-05T19:40:51Z", + "history-data-id": "H6j3QqDnO15WtVDaBPWOIuR2AbgBNgcmmvh4NVrBWwphk2rVKnBkRsmjvCMaKYxZtO38JnJxL0O537SNuu7dOlwkYiuA8TzBIvBjKcRvdxtgFdV1zUfgfDA5WWG4Q7yqC1BmekKrS5HpiuqKgx0nbstZo1V68loLn0ZBkJ24OBtZ5MJdjBAu33tj4hq5CGQZGHATrCX7djYa5znoaY", + "performance-data": { + "rx-level-avg": -50, + "es": 1978649216, + "unavailability": 1885813040, + "cses": -248987899, + "ses": -1208203719, + "rx-level-min": 16, + "time-period": 2062013896, + "rx-level-max": 40 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": -27482, + "time-of-latest-change": "2020-12-27T20:54:54Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 12385, + "problem-name": "h9dkMwF6CC4FSwLl7LeKs4uPnCrh8WkpXxJK3gIyKN5DbQYit43N9pDw1WO1K8qIy2kta21VH6qSOg3ilYXufs08oG91HzJftVIEXKrxIRpx7kHsiEOx7HFnnOo4gZbBUU7Kwyh6hyDpTcJ3RytQ705mHujPluq8gyKMY1TgroxcBg8kGBaNtfaaBtZXPiX6IHSGADOT2l6vu6Pa", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NON_ALARMED", + "timestamp": "2021-01-18T15:57:31Z" + } + ], + "number-of-current-problems": -107, + "time-of-latest-change": "2022-02-13T23:05:03Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "ti7WkZ7P6sy8mCzbWbtsnMETDPd24luywumQltFsN5AaH1lwcPYzBus7by1gLnOhR275vExbJZlj0GP5nFERaZQlxRBi6hsQjzVHekSPjd8bLXg1vVSFUISjrmtpDVfXn2EBmoiFBrRegZfLU7iGH", + "tdm-segment-size": -1490333177, + "max-number-of-segments-reservable": 53 + } + ], + "performance-monitoring-is-avail": true, + "supported-alarm-list": [ + "ply28FRvInY4LhCmIlBYkQC7QMFxPxyeKYhSD0gdoei9vUo5fZWrHyypceX2Dngnlp7Qqn4OCmXZ8l5fc1GMrf3Dl0FYfOdAdkjvInjcB9bJm8Yz9wdsDg6Y9DWoj" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": true, + "timestamp": "2021-08-02T15:29:38Z", + "performance-data": { + "rx-level-avg": -62, + "es": 1574776222, + "unavailability": 1298994180, + "cses": 1699089334, + "ses": 1487091704, + "rx-level-min": 13, + "time-period": -1020483635, + "rx-level-max": -18 + }, + "scanner-id": "wboqxmN1sC31tT4sL92Y5z1cN90I2ndrztJYIxRa1U4nG0Pj9Ri6ibi5kbNfySy7l953yW6AJ2Xh2MAbvS9N3kSgvFn3pVbKW8GvXE5yGUPIypL3aUQdeAlJ7IFwvQ8sQGPNkM", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -13 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "Dr6yBmqKXtj", + "value": "7na22k7OiNgcfZ7YgXOLgNcJ9Cl6XE2415Z4p6KIL0M" + } + ], + "configured-client-capacity": "kIlmpSOzuIHBeNhM0atMQeRHfGFSXPV9x8nW0bvuT5XZKeDKg6x6dgGsOddL20Mz89o8cLuXQrWtFsdWqCUDSsYGFbjzbX1j6pja2N7LeWeLorzG4mkOOanmdyNowOzu5SF8FETLA7wQqYxmkJ30Tie6Q2meQNJOxgW4UHPnGd5Ybudn5goYyCWgwavfPe3mmRq8yfn6lt4wXhU3xaTXEIebKJqAPlObcfbCmzIH2M6R40Mt2yjG8xR", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 832205052, + "last-10-sec-data-output-rate": -602673463, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -1705246009, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "Ffgvcgg1HbAcA8x9zH4Hw5l71GGPsFbZVru7HC9gOBlgKShjrd0QieXkMD16jd66Es5e56mLIHTkzbDTovJzByTocUun7AlE3qK0x6DfOwzfz48Qr", + "fixed-ip-v-4-address-prefix-length": -7, + "fixed-default-gateway-ip-v-4-address": "3iajm4NJ4g4AjmkbTqO06crmMnmCP61Kg33C7Qd369DhvPkh889elBs7YPBFNup3xkxw3KA1L5j8NDpVEz1Z2uY0jrG6NX1kiyIlaamVgx333tQHURyWloWwPuCusvOC3oXdzj8PR4KUxstjj1fxh336qysK38m7" + } + ], + "broadcast-packets-output": -1152764811, + "dropped-packets-input": -842035651, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "dropped-packets-output": -971895895, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "c5udMdhoZGQsZ2l6zC1uAr22b6ax5HI9E5mrivPabGuaAQ89kaDVByPNwSctrNC5SRw2mecqMHAmpJnJT0wmqe1W66hpTUuDDTFR7KhLjK7Iluj6mIsNOuBMATblFxYaiv1hfb2yV988vkeSUGxI20uuLxPq4FsnbuEixHRsIRA63GYXenFhf1D1", + "neighbor-ip-v-4-address-list": "ljv0MS38omFX5ZGWrMS7CPlRnu6g8ZPtjklX4p5sDKiIBYw2Co966uPtZ", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_NOT_YET_DEFINED" + } + ], + "timestamp": "2020-11-07T04:34:08Z", + "forwarded-data-volume-output": -3545415, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": 1709175750, + "last-10-sec-packet-output-rate": -971064857, + "vpn-binding-is-up": true, + "multicast-packets-output": 1467914114, + "broadcast-packets-input": -300736697, + "last-10-sec-data-input-rate": 72293232, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_DOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 900421964, + "data-volume-input": 2060191688, + "data-volume-output": -694433427, + "fragmented-packets-input": -534054771, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_OTHER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -1458470981 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2021-02-13T14:21:09Z", + "number-of-current-problems": -117, + "current-problem-list": [ + { + "sequence-number": -9844, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "l5ZkKpEIUcvs0ftsJEBGF9Na6NL0i3oD9nYTEuuyyR1r7mTITmpyw4JCSmC2qSFzfvkMSGkqydRxsCflZwTvBuZlRtn9m2ItqUfiBsA1xkyZWFkNc6aFs9SjvfsJ92crPkJqEcjb", + "timestamp": "2020-12-05T07:26:33Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": 32584, + "statistics-is-avail": false, + "supported-alarm-list": [ + "nVDGFpWnkC0Dt3GpKWpt1FECjXAeDaA05dyCuuRG6RbrUSQwG8SHNojYdL", + "byX0fG3WNHxpOMcomDUjewxBP4wkaQ3do1eDz9rmQQDxDPVRkIay6z1WDp8Ofc1v579EhsS7jwwOdsFyaHYgg04Uh5Axht2mB3SKwKRH8gneIUEKBCSJuXvM2Xbbr5xU9hEx1n62DtgdnUXQoIrTxXxrUICdN1ZOivlbLrdgMtu9fjRE1jpy8OZ2ot83uZSMv5Ygp3wbpSdE44a5nrwvfnqvRqzdpjSMoIUNLjRab4Hf0RdgbJLiY3OH" + ], + "information-rate-min": -1175293615, + "maximum-number-of-ip-v-4-addresses": -1233, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "Tu6KSjDHO42C3SD3fP7uHtSpl6GUmhF7DDJnXn4LjZfnJSqYHpkoS4F52d0ovFn8b7w8msLFj022SlSsK4Iv8gAatAyY8OZjVnj9HWOTWJNGWy0yCJ3LZwVkYmb6a2hXps66oMRcnFLbdLKPmFAd3oq2KB0UDaR2CP01BK5ZpQ2uuMjIkMOnaepUPqGkApe4e6XPQ3G7LJB7nVIHzwXBCmnjE3D6", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": false, + "information-rate-max": -324365715, + "burst-size-min": 11472, + "ip-v-6-is-avail": true, + "maximum-transmission-unit-max": -8307, + "ingress-policing-is-avail": false, + "maximum-transmission-unit-min": 20088, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_NOT_TERMINATED", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": 600941966, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2021-10-22T20:10:45Z", + "multicast-frames-input": 2098637250, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": 1850177520, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -431880877, + "dropped-frames-output": -1060810285, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "last-10-sec-frame-input-rate": 1378924264, + "errored-frames-input": -1598150341, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NONE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT", + "mac-address-cur": "C08tf4krHnvecQwdCW", + "broadcast-frames-output": -1402675607, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -624263939, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1490466201, + "dropped-frames-input": 1610108078 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2" + ], + "admin-shut-down-is-avail": true, + "maximum-frame-size-min": 3903, + "loop-detection-is-avail": true, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "P3rrfxGb65d2IKTR5B9k9Ov7defIXoMEjdXyDDJBAWviyp9vSiQ16l8czoUoEzUXMRnhmYTWMgekFfQpyGrwTrI", + "supported-alarm-list": [ + "vIl4uiIlx0HvLD91JuzYcYoKhVDJDPq0pM4TWFemFNRiiTj1fKRrJg3SbGtGnMHMqDFmiLIPys7QdjJs3ATEIWpTuSsRE1D4wajPVTwldw3qHMSCeD9XryIVi2EP39LAj4h6QF", + "V3umKg6nnKoc3WUZ6XvVSFHkYDt5l9ohcTvP1B4odsAhon8ucDi4iZ" + ], + "hardware-mac-address": "Yy3wMdOyDr7kBxu2cxHihMJwhfKqvTUlrPJ62yExZDKsa6umv4wNQgbZnNpSGb500P6UfKk6n4zp23LxZ9kHp", + "maximum-frame-size-max": 15946, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": false + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -21405, + "time-of-latest-change": "2021-10-01T19:13:47Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-12-09T12:36:18Z", + "performance-data": { + "mac-pause-frames-ingress": -451522471, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1458070055, + "mac-pause-frames-egress": -1284153671, + "mac-control-frames-egress": 589841718, + "oversized-frames-ingress": 745881080, + "undersized-frames-ingress": 1145385184, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 2104869422, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "5L1Y0UnwqjnaKLSHzzZjWlrzgITcI2cNG5DGRT49csjO54vwvnQjAhSQZL3HFfnlc0T3TYcXioMfs9LPoB8ZT0PKDKkaZHw3zh6l7jipHWE16iQmTQlEI3pdNJnFqTIZbPci0vAHr6ApoiMa8ZOI2dVQWine456fMipMFRlZYVoe52o52dNWiIE711l5ZjcLutq9lL0bzppwjOCdTpab8Oi1QwYHPasbDKlQol1X", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-12-23T15:13:59Z", + "current-problem-list": [ + { + "sequence-number": 8105, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "79uJYrJgbFtEXlxuPiEi4aTT0Vi5cVnk5JV32EbdbwS0Shvzz9RvbLhbyrhLnw5kfSfipinAO7Byo67Y7ZljCuu2WDFj9CvhvKzU2WuQ45ps3oibfwuR0QMWmr7n4CErmdlg2H76NoqIMJT2ffL7", + "timestamp": "2021-10-22T14:54:59Z" + } + ], + "number-of-current-problems": 71 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -92, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-02-09T16:52:01Z", + "performance-data": { + "mac-pause-frames-ingress": 823216724, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -695877643, + "mac-pause-frames-egress": 1214478518, + "mac-control-frames-egress": -2145815917, + "oversized-frames-ingress": 896275872, + "undersized-frames-ingress": 940523408, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -277423781, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "xKPn1THKXgxDuDxW4Ap5KRSaJgfcydUXPBkRnTBk91PEwestPJyrAiCbrJnRW9OEL0v8LYkUR1qofKJWu9oWrS8KBnBpph3a9qaUpmH8n7ouK7regHaAzakaqWzP5vZfV19cnQlKQJ6ARxG7eQzFTUPjIh8NMZ2zScMf27RKQXcznSztB89uUQFC7NqLEsdwwZDr6mbObogy8P2JPbdK1Se1xEE3Z" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2021-10-17T14:18:44Z", + "performance-data": { + "cses": -796306927, + "es": -2117141363, + "rx-level-max": 102, + "ses": 1588654246, + "rx-level-min": 43, + "rx-level-avg": -35, + "time-period": 797329802, + "unavailability": 1247833078 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "ioK7V1GBPmdvuhNfwTiE6rAn92P7uEAN2kMPlsj2GwqaNdpb6II49asic9pGFZlHb7pxrAr76RiL" + } + ], + "number-of-current-performance-sets": 51 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-08-25T02:25:25Z", + "performance-data": { + "cses": -1116248633, + "es": -297334019, + "rx-level-max": 3, + "ses": -1560870505, + "rx-level-min": -36, + "rx-level-avg": 65, + "time-period": 850998126, + "unavailability": 225272582 + }, + "history-data-id": "AJzfAVOM25buFCBDuLpqletuLsNsT7ltRUArPg5Smge1THxftWFG20aNsPflXAGGug7cp54Lla", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-09-20T05:01:33Z", + "number-of-historical-performance-sets": 11059 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -13902, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "WGJ99793" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 31989, + "problem-name": "erSPT1yvbg13nlywVSQjKX91YBf3X6C4xmTigsNrAPmX2VtXNb9p1iiZTxUIDoE2Lqk1SZkkGHhJCCyhGHyHRQGCntdSRRMuhYn1XIlEpufT7F2FfAm6q2JFnWpfNbJX97YYHcu6GJRFhTcwtyCLtlqQ9P5PSHM1GCRnGmlfX4UeX7Kixf30stJCaGr2n5VVHEig0vvQzhWwgzOOOJ", + "timestamp": "2022-01-19T06:41:13Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2020-11-10T16:07:48Z", + "number-of-current-problems": -66 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "OrpZHqQqdZUKFLOCtTGjNxaj9SDsZ0mNrEM8Wvr9mlL2YAwjldD8CNjMxPexPtcgZZgVmHWAUHCL914ueHuQmOu", + "value": "vBrk4Ds3uIQIiMj4lNPvOUZ2BuLYa7KFIbRMGjH3TpL3348pSXMGRLBl7eb9lVO4YxIEQiHCHlFDpNU9LGIujjPjpSsKN9ODGpapHJ1g4GTuuFv7ldBForYNbiyZreu0DEpcoqlk66OsMcz7pbEOuuBFN1w6g16LxvQNVb8UhOe30O3qZH6l4H0JJpPRqOuPbkD7vLTFz7IsNLSElYZhxS08hHZznmozG1y4ErJ6qjyeXiSagKrFCjO" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "cXu10ygbauKScExioBaaWcAfSIEClMLxB8yBGGFJbptnW0xktHmqTXxDxcfSYTqA1Y3zxIaI0EXWEu883uqOrXrZ9zJ0s1sl0vUp6576J4Ufq2ntwNhQDAHM9qMBs6WkCJJIGIGhMsw4uMxSrGI48p" + ], + "fc-blocks-signal-to-lp": "InLauAm6b5GRFe8jGwn", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -96, + "current-problem-list": [ + { + "sequence-number": 22294, + "timestamp": "2020-03-03T20:14:03Z", + "problem-name": "UpQjTQv6MC65Wytf6f2Rx3lDsdzOjYDeflp0bM7PhdNdM8sKnntUqOpK1YrcP4q4hH5kucaDhXQV5bxky0eQOwAHu1UbXcg6Mdr8pBLGqtunE1z42NMIbfiG84R68ZcUcD2B6NaohEDNxcKzSwa3LkBUotSwk", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "time-of-latest-change": "2021-03-28T17:29:09Z" + }, + "air-interface-status": { + "xpd-cur": -82, + "transmission-mode-cur": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "rf-temp-cur": 107, + "mimo-is-up": false, + "tx-level-cur": 111, + "local-end-point-id": "NMMdgmaRMidotFHjLrehBRcxRUbKNiGAWkN4GPVk79BAGiMrJSIcKMJtyM5m4DOSXuXwbKQjTrLrBpScisoUfZfNDk1zYIsNchjn12yNtce5B7hLryFGpUm37fCXXWK1dWp7YPUr10ov7ygr6OZnIl", + "rx-level-cur": 78, + "link-is-up": true, + "performance-monitoring-is-up": true, + "xpic-is-up": true, + "remote-end-point-id": "HBVEqRhsXdR4byYusYTXYj5hhTgEuuXb5SQnB7Pycyun7sRzjCo9Ntq4nGBRay27iKvLJccVLGiS12jkwHtkaLgxrRguhbtzVQlF3xAO5Ly6FRq3yLnAww0QngcFrF6fwjUzQmfWZN2EElI46XwvtwdJNpo64mlsG71ou8clV70rsAnqxUNTq0C", + "received-radio-signal-id": { + "numeric-radio-signal-id": 40237, + "alphanumeric-radio-signal-id": "TzlITbG5Z3SjdUwoSrBCHLFLYvfCMeGxG1gz4OE4KxfXjLd35OFMrcqqIx2uMAUkBaTFQyBAXJpgmCjrqQeS3waD3" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": 1634867154, + "rx-frequency-cur": -972642269, + "atpc-is-up": true, + "radio-power-is-up": false, + "snir-cur": -67, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "alic-is-up": true + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-02-27T05:10:59Z", + "performance-data": { + "snir-max": 109, + "unavailability": 2092122734, + "rx-level-max": -118, + "xpd-max": -44, + "ses": 1760228322, + "rf-temp-max": 105, + "tx-level-max": 56, + "es": 887824306, + "tx-level-min": -106, + "tx-level-avg": 97, + "snir-min": 109, + "snir-avg": 116, + "time-period": -1920083029, + "cses": -137884981, + "defect-blocks-sum": 8408, + "rx-level-min": 3, + "rx-level-avg": -71, + "rf-temp-min": -102, + "rf-temp-avg": 65, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -126, + "transmission-mode": "kowKc", + "time": 2025098158 + } + ], + "xpd-min": 78, + "xpd-avg": -58 + }, + "suspect-interval-flag": false, + "history-data-id": "5KQ0GknsXgpeTCAhPVwkB6CRYCFhVyKTisTRM8jBoIH9chrT5PdG" + } + ], + "number-of-historical-performance-sets": -9353, + "time-of-latest-change": "2021-05-27T09:34:05Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED", + "rx-frequency-max": -1414694323, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "uNwmh1xblERJ5wPNeD3Iu6TOFWPA6y0AdoWmplyDShePN3C1GyC2EnJbjyMhYMJ32xqkTYXDf3s27WWFuyA1Vjc7JYoIC8LFFbZq1OVgRfjQc7wyF6zshMz0KQInYmUvpLOrzJHiZS", + "ChqpvDKPJexySDxzEiHBMM17LpOVBcW5memJS6qBcX15szE7JdIn0BuDTarmefrAuNjmLJPXzQU1hr00EAnw4R2XTtb8ICI4hUi2v7RWQMQ75Q0Jrn8v72k0vv05ZJagvsaSsTPixxhCnheGFm3EofELKFQJgSRDd1vFNcPkJ6XZobFVpBzFQ5qtC84STWn6PTDCXkXHqMGGXdBeGaTx8b0Kj4vcSSaIDFcBZ1aqNI6CVAQuCB1K", + "Tv6P0aISdioSuZSw1abJ8OwIw0d0TXMMsKCkNc50utKYkCmlEy4NesnCtACeqh1S1vdGHiy3Dj1XNgasO67UymwTP18fi17bwcK5mi8ZB1Op9YJX4QJD48wT9w8jx8m3c60rp", + "rZPrc6vMNpQ5tmIzthcQa6qWWTUTgv0AmQ1rWpdBOWHhapIDyMlILDwHxisFNkf2a9lYyyAem9owy617TnHw0edpwx5cRc6UlrSLRkSelgKUeMTZ1svTGAj57g9ZkfLyGvjxQ3D3jgXyUIpV", + "VOBvZGv7Pms470CCb2kfFoqNdQHOguRbbsya13aQ", + "qS279b5S1aACFFK3qLAr47zj3Dp34G4nz6uA9zt2BVFgshkT3Uk71Li4gI0lg4IP24i3DL67yDn1UHMXtYXvJ", + "3ZxBwvbZMXqMzgnW6JIu0tirUT1dKTeFLLhh8kgU9HGIP3xWE7qxBAYvlZA6LOLwrUFz6Wlfv2QcXf8umq1X0RlmJVkmCXSVSpnQdI6ICOVsVVWhmP7eGkAh7UDBKnxuNMk0miBZ6orTjf3x4aMCmeUt1p5LNufs" + ], + "tx-frequency-max": -470714075, + "maintenance-timer-range": "vMyXlcdEc7VGUG0GVpsWeGCyIh0UZKmuwNsKZxobEbJqKK6F9ruf76NHnFBfpQJOD3yuAOG60hwK1vhbWLqVJeC7T5ebVPZqTpNldlkdCQPEd7P1K7WudqtZwHajw", + "transmission-mode-list": [ + { + "transmission-mode-name": "668ats0mntmCUGX0m7FMFVSlEXu1D6ZB47MpzELO80i2y7VU6sHMf", + "transmission-mode-rank": 1029159214, + "supported-as-fixed-configuration": false, + "am-upshift-level": -36, + "tx-power-min": -122, + "am-downshift-level": -123, + "symbol-rate-reduction-factor": 36, + "channel-bandwidth": -281373697, + "xpic-is-avail": true, + "code-rate": -111, + "tx-power-max": 86, + "rx-threshold": -30892, + "modulation-scheme": -5180 + } + ], + "encryption-is-avail": false, + "duplex-distance-list": [ + 381145436 + ], + "atpc-range": -94, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": 276704786, + "rx-frequency-min": -198178981, + "type-of-equipment": "T1qEEBTZsQreNvPHBwAN7K0BvItSju1cvsQ1VB0frjt6OaNqGf5GR5", + "atpc-is-avail": false, + "supported-radio-signal-id-length": -8798 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": 0, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2021-11-06T18:58:09Z", + "scanner-id": "c14d3TnKedQLEn2CXmmYaJgr7W3bV3P74Td8NsK1xsEcHyOEU2vXMDoLzjWmfLlbEqbjTVcqfIuXgjt3lY0ZBgK2sygHjuSQU41FReY7WsW5Lh8Zg0YJgBEI9Uhlg23364IPaGOZ1C4MU4D24uLkXh364kjkmmnkj62tEIsFlok7sP9wjMR84M78YqkdFIxYGrjcaEKn2", + "performance-data": { + "snir-max": -96, + "unavailability": 1429619344, + "rx-level-max": 9, + "xpd-max": 72, + "ses": 98259972, + "rf-temp-max": 118, + "tx-level-max": 115, + "es": 1138654458, + "tx-level-min": -20, + "tx-level-avg": -80, + "snir-min": -49, + "snir-avg": -91, + "time-period": 2092634072, + "cses": 2045796578, + "defect-blocks-sum": -8749, + "rx-level-min": 102, + "rx-level-avg": -70, + "rf-temp-min": 26, + "rf-temp-avg": 13, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -109, + "transmission-mode": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ", + "time": 1464622502 + } + ], + "xpd-min": 43, + "xpd-avg": -72 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "0Fkg1IPACnwgG7m6qMcf4XpcHISb1GWUdgafYZHsedJUcX0CK5KO291BSLELrAFEIHLyyk1MxCGJzzebEYSyZL1JwxnP72lHC7far8XRKvsc4ynAof0g01Zoqmdphz6LyeVZmKI7g3bcByN0ON8GH757maxvJvgh", + "value": "39YOJXWM88gGV8mBgVan0hB2G6M4e3Ni4LYOAUsI2IhQ" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -11424, + "time-of-latest-change": "2020-05-24T21:18:38Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-11-01T09:56:33Z", + "suspect-interval-flag": true, + "history-data-id": "9uQOQe30KP52e75Tog0JnwC112i89LDaflZ5zUXcJU6PTcBhkt", + "performance-data": "LSV72m1ss3KZ2Krok7HRn0kvMcXt76fKY2RSoLkJGXIIz17U8OLnHXKtazO9F3Tv5DnmgA5WpFEYGDKGko31lNmneawU5qp23Fojfl7E0Luyhf6" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 10318, + "problem-name": "EU17Aq3fbqdjupyyM2idAPC62n0BOMDsyEz84ug7MtqgKYPw0ZJAOdzIArbh5OJDlbLhF", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR", + "timestamp": "2020-08-08T16:53:23Z" + } + ], + "time-of-latest-change": "2021-12-06T02:46:01Z", + "number-of-current-problems": -29 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NONE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "1K11VOuC3Hrvo70w74V40GpadwTgRYgKI9EvY00THrh5r9Cqdxud6Tnbh8r16zLPJpczpck7EB4XCGfP6J24uhfMqyNo8q5JQia7uu60YbPAJ4iHNkLauSOMrtarTg2BqcBMGHNwSu7uzpbeBPo5H4J0xUjj2lUsxn6e5TKPgJjP0n", + "tdm-container-size": 736476538 + } + ], + "supported-alarm-list": [ + "epDxu6LSFttKnxnza7sj1ublIi8Ua3bosONPNyzs124hrrIuqaNjxQw78E1jzcz2SnJFNaZHd3YwmG0EINX7wleE0fPzjhtcE4JjfJ0kEQQToRx7wn62IlzIsgaMxvY3AznPaf9P6ZAuI7tfms95NIFfZH1wdRANrPuB4viamKx5KSc6kl3ZWJ7Vi0jvSLabAEEx9PHwz6tjZFib0lbOWiBfiVK2yV51rKyBz7", + "06sk57C8ZXbOMlh1E4DyDyEw0o4tP3sP9M16TDfKtiqfEI8aMLIhcmN4CJxjNR9WDa3oGa09sjg61o8F1RXd5ChImG19p2XU5SaLUbUfu2dnim2jdRpiuGSQfMREGGrLzBwtMiI8kWvuaqOnhdxDLilS44pKLQokrUF6dgep4KUe2AtbF0PqiabefAR0qfcR9JXeZ4wVOq1ISuTxvIPFL0USALK00WK1xz8pDEkjWm1OQVldv2" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "rLobMO557ZrTjYhp4ebH3rifgjCbNGn6rMh5se3rdukoktOhHZQDi8KyjeBYUZ5dDmj5BmwGII524LbDK1g220sl6Vk0U" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": true, + "performance-data": "hwq871WlsxNLI4QpGtCR6Lo02IfKb6asCABCtpPVOCyxzoOfRq6Q3mI6XXI83SsysV2Od", + "timestamp": "2020-10-17T19:56:53Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "qUye9iw70AmIGjxors8L0sH" + } + ], + "number-of-current-performance-sets": -63 + } + }, + "address": [ + "AxLQkXrlrNrpjmldjc9IaLiVDXOvIwuj371f4lAw0UNj80ordx1nacjO97bJvxUz" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "BetyJUdyL4N3aj702nbpH6jESBKNXqZyElZnf4VS0ANaTV2Oae5Skoo4Z9RXzIn53etajg2jJIuuDwaFC7xWvWSn5", + "value": "cwkrBnGWyZ5saOaEaF3llFsKuQGmdDYh1aIDxozXfEqq" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "4sce5fjjxec3Ro43WFLR64Z9", + "value": "ijZquHvWLJ2SUlh0xdRN9MBPplVuc4runqUJZhGKSADMNUEc7oZ92BYsWLW0Hnu4FgFFqlhiNUXAHBMGZMP2fFu3ii3ZFpVkxBRXO9gCV5cuGR3GvSAKq4FIeAITZv5o6XmV6upTzBo7krNPbfrBb6cpyMaphgOg52b3wAWX3k4oDK5PZxi3" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "local-id": "CNU81MymgoMUQ7zdO24Pw3HrNW3ytTz5ytdz7DVn1HaJGJXmMT3aOKutGx21it7QWch3QcjJLttr4iNQ3RTKBn5aMZb4siMov3kd7vOSY9j2r6LnPwZjL4tx4wtoPfNcaZhhu59kfkeyiRV8nMr8RMxNi0bZ7Q3hPkqbqzvxTC5ctTcRFDRohh3zhfzh5CqNXRQfqeEcQJgjus2", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "s4v8ZIlF251SEnX9debfXGNd7CtMULYnHlnH3IeYFfIjCytIMwXBcCHj72X1NWou9D35lh31wDc1bxJ", + "value": "3yj730ra2gb" + } + ], + "transfer-capacity-pac": "V0vDZ4kAXD4MDa5Bka3ArdqcjjiI1GpWGUrxQE", + "external-managed-id": { + "manager-identifier": "R8HzC3a5myr0GsuISD6s4QP", + "external-managed-uuid": "z3O4XEGOMffgjqdFQEypZ27Ry5bCV0Vm4BrTfZzTfO1y6f5XTvmSqlBYqMAlFnHBR0u603SfJTFQ" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "DtqThGQjJTHbPw62BmFdsmcZFfu1Ayad2sYj0OvBz4MgBSi47Qhz4tyJB2DbBNgD7eO7UbAtgmJR6UVdC4MGxcq0f33IIjdHp1Gj5gElug4saRGMVkskpKdEFgefArWRku3pKHC6Xyz7h7Lcj6pIICeoSsvkTkc6OfnrO0xMqYLI5pMpvb75NmtyGRKsbWyR3ViSNIw6G9OEyA3" + ] + }, + { + "uuid": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "embedded-clock": [ + { + "local-id": "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt", + "run-mode": "core-model-1-4:RUN_MODE_LOCKED", + "phase-aligned-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "7gK2VHHr" + ], + "name": [ + { + "value-name": "k4qK96lOm9wsTai5HTzWETVWOXOELaBX61If734u4sOYu6VbRv0vgVk4K0Anabkh42w4Ysq2Ne0hcOt3btrrgLnSDPfO0rXWml0kOqetw7KIV5M6y5pGQEqttF9lZ69lsax8sLBZSdzFjdDJiUq0yQuTov", + "value": "fugAWq7WKKpBvCb2NgGxzsPzTxVMVrT2V9CJrBx3eWFJqID6YbDxEs7xZUbNl4P85kJoVgs147CnPgtFr6d5qcuh6G4kCMkA64YTciVhppE6FZM75R4nVzET7B5" + } + ], + "encompassed-clock": [ + "wNGXI905EEivmT6VhHw7H6zURci3WJPspvi7wi4aOey27EYhlugUAIOkU7nII42ZzkZ5u38jaGd9kbqyyzs899kV8IDQMFIeSHbmCbxMRLW4WeumNWvWXHJ5hmO4UwaM5d0Hpyu8bq47EymknR8cqSiI6YE0mOErTF0a5ubgMffj" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "nxnuZecK19E5FzKgnkMSayIwii85mLqBiN591aT3bp0QQD6eXKYZaHwsZExdhXOrCMAwOmrZLjPuWNILxGDzf917FqkWg1fSFPot3PsP99bXWTBlreUzfNGU5SIlTXeyEuTIclpluAailDDMRxdYcTSiMsDxhJYOeRwq5NDrfNKAjne2Vs17lLhZeVx", + "value": "EnbKezajmFLBln3EKiGxKHxXtOPzJeWgB00Pz31OIEh31lHLvgb7XI4ioTR0" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "label": [ + { + "value-name": "nqblm26yk1PCjlIYkmXh52w0tbMsMR31", + "value": "fmv9s4tmL5F7GvjUtt0nZSQ2wiOodPps3VBoZXKC2hJAMVvfonCffkiMu62IOr2Jew75tJIn0jYNetUuQpKXBUB6SvOyXIi3eh9H1R5123G9otD6Sf3l9xr227sRQKV424E3NBWHwvQUYuSIBV3D" + } + ], + "encapsulated-fc": [ + { + "uuid": "ae5ab176-ed11-7669-59b8-ae752a75fe04", + "service-priority": "-9223372036854775808", + "supporting-pc": "m4OWJLn424Eo9eZRQNA2UN5ChEJXJAHXEwTg98cccQAdWs4E7wH2jMwAj7x2H7ZevKuETGQXprblL70SEzMXliqwqPyZWpdr2H6NgOCF7NSSVKLrjxgxIG30w", + "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "9BA52cMbbVcy7ElzkL4XeQi87ZZSK3CTE4ZygDBjqFRqj4ZwQVl4ED4Du3oe708DWZ44CFn2l6kwak207oWD11hoWFCVxCzlBDh5aE0vKk2UEW", + "value": "EcBh6uqujX6emJNHciYituiQ6CK19HGNT94ZwntPks3H3Jgf17xmBPdIsXBBw9oiik9OzDvUXzt0aJf3QNqkCv24kDxREN1W0aDzF0tCzOCJySNgx5A1Au6U7vDDjwsjH5Sm5eZx2t8sdVBKSbMsGKfF7KbqhD" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "jGXf7wAL2paYmjo3yPg0XXgHrLWj38WeOMtWa3zdlBbzVrulgKd5zuMS7A42IShxwKlHGUUTwXsjpWwxzCv069L5KP7szoR694FPZzAno2", + "value": "FQ4dhyAaEJVJtCRO37x1gCGXt7xQwrgbacgjLQthAg1VKKBOR9P0DoX6vnW1G45Qgl21cvjEEcrgO3Wx4ExH2nNxCBziFE1VR3P3y8z4k1l0W9xSN5zPkenWHOeekf1biQ7JQyF2r02f2A7PFyFRMUNlATrU1tXbbWU2vA4Ws74uHbceKR5oDKKdD37wwWIITCCg4G4pF8LekXs4Gpkj9WwF0vbwkT6doAlk9pBOyn3KcnGTN0cOXBtX6xl" + } + ], + "fc-route": "KIumwnBiG68piUiyW8pnEZFU78iRMe1oWvLkLeCrkCQvo0Vl8cIMcfGbnR2953yTrb54hInCc5ZB5UWd6w0aEym1hg3mct7vwdzNNWhZ1gAY2ob1N33rupkLyn0CI77eky27mjZfsr5uIgnvcrOGQ8jgojS6jRlDhfDvyuC0VHnDQK02bOAUPT2d5NbowwTODob4SO4GnjbdWc77SHTHtWMqBYO7mzN0YZ4IF0o2ks88Ef7", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": [ + "6Ye7yClR45Kz5eYRD3t2pbv33suQ6eC4cQ3Ltouxm67rkXaX1DRiGelCzIsFW4C0NFD8W7Fa5EBquLfngZFXdTrMBTkpQOpvl3Dh2aj8HUqbxFqGwXvCQWgjHAIpg0UCVp" + ], + "local-id": "NNBzyYbHEVGGaM1eXtei5kyIwutomrk96VBFTMepzM6Jz7Pos3Gyff8LBC1X3l62hzH2dVsMAqn9pcpK75amci0NU1CQfBSwazqgmK2W2qXsue4CceYowQ4rKGhZ91nkANAOyuDAU", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "Phh0ATUgbJ9UjrAT0MxM3ckiWm4m3q7SHgKaaEqlfrfqTIjLuRpx3JPR6Td1bkLTBn3D2lY9M6AxOTbaCAHxkphiaubmHWfajaNdvDnhJPHpISzds9CEqTWAo7OXV37f5UkApzS9orqZj0cD1OirA61Y6IN1DU8JGtj5236ruxiFpujqatRKzKAFkfHY9PHH", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "mVzd8nj056ECafCQPG8qEQ5ArRxuUUCgHblQqFInDeRNumwj2EBGmy9OhGacBMkaPG08dAvIPnwbJ2mDyXkMntAE1CIuo3F6BxeO8JoPYUSHOede3x1qStWT6FgmAVsbsyRsifh821QIf3XasQAcbpX94dwE8QHtpyV" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "3v4pQG7ghetPbonxZ6clmIC1K7uSN3CRyG8gegxvm0kxgHWfF9s2J43t4plRkPASvJ1BZq6diiCy0zFxA7rj4nM8M0ZZPAJdbKO2aNfs5RSXixvSFW3JbIRYAIPhayulbbnlQuGVeyLwY8h", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "ce8UX6uxNMIl8VwbjK1NiP1QAqGIzbELpMGeK2MxO" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "0Fd4LwqaO6zahRcCAPbdhJxxivGZcga5V", + "value": "1yLjJrhaty2F2CuePMPnj7SR6X78UUnVt0e4jweMWgsZTO5AAUXLTIvZxu0rpneKgkOzQ2mFjGw4uB" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "extension": [ + { + "value-name": "QqQZLgSqw3IKxVPcYlbJGrtqMdM4y8npreg4m9vS45uCTkOJxSkdjFw5Sa1jjoICCYGQZ3I415yUhevO6QUhviegsfzLE9f8ZWZZ", + "value": "zV0wtMNHiCG0oXnG4D8j4MP51Q5XHWP8RHFcusTEWrwkhTSlp1wtFezG4wwDsdLbUqngL8MHAiUJcM4tFsWkGnTCLhfduTogbLxWUjwmui5G411ClXOUdHwYYE4kxkBIY0xKj36Nl3lhWmLhcA3h9A7063cvoN5eNCYZxWEKR02NeFWi70r9sz9qClVS106OvWN2KkNBcHgqe5BmX2vptwP6JCQKuPrZ" + } + ], + "prot-type": "hwg9TfN1grSdArsiRLr1VDKBNvSytsDKZULS1zTh0Dus5WLOAcPnHzYu5JVqby22kNUlmGDebZH8OsWoEDDd5tI2cvsg3uigh5BwDeKO6rPULDahhNvmg5otAIBvcTLlQnRttCazVZtHuDQDilZzqfUSXv", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": "F5HH6pimk7wEXZQ0oGak", + "internal-configuration-and-switch-control": "GYUoFnN5ieKnWkulCIyJ6cy53ylBIFuoDgNa", + "label": [ + { + "value-name": "XnuIg457BA72Rn8Bvsh4bjiQuYeqtH5q4r0cv6b", + "value": "yb0hq8SVs1ZDcilH8z7Bg4TcvMg0KsYiDYz3YjYrcP4oZi58R5B01v4xhlp1NobieCddN3wZSsnKKlSuqtm" + } + ], + "selected-fc-port": [ + { + "local-id": "wOTuyrGA78xsbGcINjFvIFHlYml12u9qb3UJmsbtAJVDhZe5aTsTq26hosiiOjIZeCBA4M3wnQ2FHgKS94Dr6JIu30MKcmJqQc1MZWbmNd1mtDeuIJVGlE3gwP0I4C1UOUHNQSav53SqzYU9AHPVdSbKAckEOdyu77iQRkdOnXeWW05oANjNFmxfyKTeXkJ5jTNbd0ZsY6hMYe2y1lmzHLO8vAelMPi5I58NX08N6pr4vtvxOR6ouMo0e", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "d0svY2s6Qp6Y54fw1K0w9Gn7WRUkJ0XO1hjRjDP13WR0S6wTRopSXE0LoM67MVOF47ofDehy28yU7WOQd5IaKIV8mT71GVGKV50yb96d9w7gsN6FTPHDpvLEoKFXGlHtiz1tIZGSvG0Xl7veOcJ5HmJY7oVNCu8MW9gw0OgvmhkIgHW4Uy1tULr11eGvBOixPq3P6kctBpbR6ZN0xOmkrFllU2Q", + "value": "I0UyqXfx9sSCR3lXU8QkP4E8JRlDL40u4UUnK9MTBEokzJilS0Fz4bzN3VjOZba3Y4iIe4tHIR29tcvdcaM8elVh86X7i8384lQiqbS0VUao6FBaPfa3s5cB4aIe" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "nZL4BdgJ1IkvNgHYGz", + "value": "UIhMe2Ie3QQi5H39j9p228eyNufM2OVPo4BvYbJ1TrcZ878jgqdjyrRdN6" + } + ], + "logical-termination-point": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "Lme74pp7hp23zi1eLbW0lRli4We6wsgaOmhKLGS25U5x56LQ9HJmzWFvSLtgeJqU5zFJ7pL5bJCgPnZZXAdowSTgwmwKXPwUo3DwshBE0dMHsLypdMNJwyR2UgEJ53wt61Zris5aFRS0vipI4dktLbvyr29w5FSbzJCRc", + "value": "UJjEJOW1oTeImRMJh5LjCQYm2p5w9963LhHu5vvlgBWClImCN7VhQMvS3BgcCefnvOKsc7OsJC5WcjqZie980ES3718C" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "Ix0kLrM02O9" + ], + "is-internal-port": true, + "role": "g1n7geACICbEtxdY23BlhtUzAGsqbIjrBGyKN1mvvp1ZW6PR2icbLYKeE4wHEP0gwz0bseyXDAOsyDjAWnLzloNRsbq71qfpZ7Ajl89QAXi9BBBpYfYbDEUXPkWQLb7CaHWnQXeiUwjn0VMY2D2x9WuY9rHUuOwFok2698o4FIjxvYnxBp4CeqsnJ1heQFL6SFc1OsXlah", + "address": [ + "bJ0GHchB5INWJU523n" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "zRC803m5wIUy5b2B00duIXYpoY3vKjVj2yr2tNZRoThl4bXW32iMZh3g76LRhy2kYtej86awZsSWDHKHJVlA4oQbvtUE2WY0h5kpbmO2OyYs7B1IomisK1D7upMwdCpmHBLSXrVMR" + ] + } + ], + "supported-link": [ + "XhZfkpVKXjzsVqgcBXEcfVc1x7riWTnM2f1mwOYt0xNVP37jSEv7zz1Yyk8mdw87D2t9IjuIIhEqkDJ49e4IN5ylhHHu5IBICWRk7l3PuzfOcY" + ], + "label": [ + { + "value-name": "QAmcxA34up5XC0", + "value": "fLBT59vkHCXSV6voW5K0uk4zHlEwPwW49pPfzcz8HoSCuf0ic" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "ZkL5MNMKsUy5zGKkyx4bYgJfNjNIj", + "external-managed-uuid": "caEYfiD22YOs3g0FArdwC3MdarwYaH9mSFc7XI1RGQcB6cgGDl48hRlriSpsrrHj6Lr4tsN9aZCg4TOz6THnC3PUN6fexOywzRs3bf4m7Hu3sbCq4kOGfvs2tz8TnGpXpRSBYWP5vj0PuDgqP4Y4rr6U0eFgN454VXFMLuJ9GKY2fet4ar8tK6gDcVTZ0Y" + }, + "fc-port": [ + { + "local-id": "eRoIOgvNh40AZHQZWPZ2m3X16d7Za4UoViZBzmoQrhiqY8hMP9HccE5iJ59T13aOm1pNnFvOWNfUNozCx8GJMETnJ3hK6jqkkP7Huuorhvd4TEzrM72qLWOuR56Pgw2Ad19Iwp1FU6COL3fpa9QW5EiOBpwRNyj1zkBXKuDEs7k5arvkBlgyRznkQL3vjmoKyZAal5POc1TmtgG4BPC", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "gRE6CHBNV0quR0E55lThnEvIV3MoSgJ88f6CXIqSAQejILoN694lOr3BuHRnYsnYIuAxcShEAwXihmXfvTtbk", + "value": "EP6w44YrUyVm577nDHTBS2XP9kJCoV12K7qO3hgXP3bV3iaG03hKX6r6j2BHYCBIBUpEbxtSAENDPXk" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "tXxxHwVhldUTZ7JJAjdyE0e4s6TFjwPFlec2K7b6d6ZcdJOG216y1cDliwSuUz9fNl9yklExjvCo6q41r3rkf4GqsqUe03tNgvdAIR81fKhd2eethGFoCdO5EAbEDFjL2xmKgmDnYMB00Pl9n0y0eeXSP", + "value": "okFz6z6kbfGOCEtdwtVRDiR3aXhZHY0XjFxhfvBqCh7fNAkjV7aqqTtsJDsqBsoMZN36aExNNw2AYeTTmVcEHx6qaqQES6iKLmQWSfJGLDgBR2n5XzJw6IW90FNTD5vpjllcB4Kez0QiUdoKMZgKz5TAKylnwQMPbZTEVDTuwJFiW32AUbkmg6W0EhfaZUS2TDHH9A3xjIP7DKHyVTUbZI3ERiGQ4qSY4zF51ICkjrj" + } + ], + "logical-termination-point": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "StrHASGTV9sTLVtmHKSShdDKRiny8zf03GADr8oehIZ2vkgd50XedAYWTev1NKTQjllCtBQKjPEH9MU6MJlRkbO5pjYdVR365hIySyb4fHLh", + "value": "Fn0gISAUGxbRvoEfkLkBtKt2Nx9niqJPOJ6otya16mStKxI4aUxDx1xkyHHJ7iyN2w4n5ep3shw5G71QTzmqATD0scBsv2fpybMvq3yKlXPTWRCPiY8SRDKkPmMcoTtO58knbS7oHPiDGUlYStIB6kNNyrSOdlD" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT", + "fc-route-feeds-fc-port-egress": [ + "iQHMUaY63f00lr2A8MQd2cpOUYs4pzJIhqm4tkaor2gMlimtX4HR9YF3W07ezQWQ9aUuu5SVZ8HljVGgZf78eF32FbgeT44" + ], + "is-internal-port": false, + "role": "P16aPKAqIgp5Hd5F41gJ1wDdYDluTtTAuRCbB4tckSh15ez9fHKgdgucTPG", + "address": [ + "M81DQ49HfQpj8i9cJOhLpT5" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "UQT38mKGJNqWa6PPYTENuZCtwYLHahfWZ007nCFYp5Mr3thUnNHJMkcbaYSc7Z86S067CL5TJSdEluqA98kVko6mmQylQykAzqH33MXEwajKwJkFJwsVVzh9hHvZgPz" + ] + } + ], + "sync-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "8q7bjVMXdHQqhtVxE2ueYNDKwDJcTkS1C05VNJK0qAiH3deI7BW6orQU4zZXLRRnJOixx2pPuAxyND8NeWTuoBhk2gaOZ1bJHm86gpVLZkbFYbscZdHfOYAI6Kw5DAGkWGi465HXqKuoVWsV112HRCqXmOVZoBbcit9gzQ5ZBAfoozbqBe7kQpade54uGgHQBQYay411E8q2IBkbPknyJxDPCHkbXT1rBSB1Wv3Avtu54PgM9EcK3PAGwMR" + ] + } + ], + "supporting-pc": "xKN8Cg9qDcS9xneu4n8dTkXW9pCxblLI6qIAzKTcOLdm0sQ4PYhAi7wjw1IAmuakUTNlvGyjrLFs5nwMlGmvNTGbUpL8TWtFHg14Wrnf4VzaaYWwEbTj4AuQZ8YKWrhvzazntOvyB4AMUwaqH3J", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "layer-protocol": [ + { + "local-id": "1jvedNNnEnZZY1iorJsUyXCn3CSfr2vtd0zrNmOkJFbAylQ04iMD8gSbSKibENwSO5btrRF3oRvWclO9wAEwQwHA9ZMNEaxsgAOHjtCHc7whlkqRN4nDsW6BNShr2GMah", + "layer-protocol-name": "air-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": false, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": -26719, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT" + ], + "number-of-available-traffic-classes": -91, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D" + ], + "drop-eligible-indicator-is-avail": false, + "configuring-pcp-bits-encoding-is-avail": true, + "service-access-priority-tagging-is-avail": false, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": 0 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2021-09-07T17:35:26Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_UP", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -109, + "current-problem-list": [ + { + "sequence-number": 15239, + "timestamp": "2020-03-31T01:08:32Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NON_ALARMED", + "problem-name": "GCLriGBPrTjmOep89YYNvfX01zeHAsG84rAfZbWiWgEDm4DvUBiiJfaKGoj8QShNbRUbUQtQY8lk4YPQs08b7iNOG7WpRd424YdYGHHxHURDTztdzCoGM3mt2jKTwOWtE1jcISBhNlUyUgLlK9TwcgRfzB0XhWqNYCSyutQhOCPAKsVuBHTGXKNoeNdnKw3A8V8CgQM5ltx5Wlsp2d5RPK73ykjaQmCQ9Ktpt7mGAMDo75O1" + } + ], + "time-of-latest-change": "2020-04-11T11:30:11Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -20509, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-02-01T15:15:24Z", + "performance-data": { + "es": -985300121, + "ses": -2110793149, + "low-power-idle-receiver-ms": 143959938, + "low-power-idle-transmitter-ms": -451976429, + "symbol-error-during-carrier": 83079052 + }, + "history-data-id": "bEkJIjW75F3XuMJl1ecUtQtTJ0XPZDob9IMS1IZ6gUWKzx5AD9n6ZQRBJOiIkGLtoxdh85goZc0yBX9e6wdXe4qXLIy5obyE", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-04-25T14:27:12Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": false, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + -64 + ], + "tx-level-cur": 47, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "pmd-kind-cur": "GfJDJjN2LpYjZB8f66JF4UfRHmn9kYO0dywOJbRuAHFsjNHhUqOQd4zMiWWuUKnZaTNT4wnw6VYpIxyuYmk3iTPsHLXtocsy58s1wHpCCgTdNrzDGMGQxojf18Ipk3Qh3aarRz4mHPrv900PEzxc", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI", + "pmd-is-up": true, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -1332829039 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI" + ], + "rxlevel-high-threshold": -74, + "isolation-is-avail": false, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL" + ], + "short-reach-mode-is-avail": true, + "wavelength-max-list": [ + 217262506 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "GfJDJjN2LpYjZB8f66JF4UfRHmn9kYO0dywOJbRuAHFsjNHhUqOQd4zMiWWuUKnZaTNT4wnw6VYpIxyuYmk3iTPsHLXtocsy58s1wHpCCgTdNrzDGMGQxojf18Ipk3Qh3aarRz4mHPrv900PEzxc", + "speed": "QrYQ1g2WYjZ8tjR3n5C4w7dp023zA7oiqe1sm3gkn8kQrcLGhgKGfYXf0SGs04DqbEKxz1KW14Fs8i8qySYOIVVBFC3xyyYB4A1EtLsuP7OYiOgIz6whTkSyWO6meWYjoZPSKherhVhrJp9ivyAgSkPO8N2nB0yZRnJtwQVNL4eumgFJO70GrPmsuoH5hf48uGC0", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": false, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT6", + "temperature-low-threshold": -61, + "maintenance-timer-range": "Rvql32lzj1IFOeeYgxPyQd9Q64k7OLxx9XScS5E37eIVkXLBms9dGa3EegDU12raZbfJgTNn7nakcOVzg4MO6HkcXX6ZZp1RsgsI17Y1v8lHWg85cULaC6mrVkqNBkw3sYLu6BnBKIayQjvU594z7i12CjH5Dd86cLsanPDZx", + "supported-alarm-list": [ + "pfYV9445D3nE5ZYN4tS4z4P164IJ37plmn8vr4AX7XtcOjRKNKOeGw8FAQowYNRc3ZIu3aja0NeG66rLI7SgD0V6IcCyRlLUklhfvApnfv4etnZ3mRkSJ7Yk" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_NOT_YET_DEFINED", + "rxlevel-low-threshold": -76, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": -1929958931, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": true, + "temperature-high-threshold": 59, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_MPO1x12" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "performance-data": { + "es": -576359059, + "ses": 327883906, + "low-power-idle-receiver-ms": 130365536, + "low-power-idle-transmitter-ms": -486499083, + "symbol-error-during-carrier": 1644604940 + }, + "timestamp": "2022-02-01T01:07:48Z", + "scanner-id": "XLx47dxLRVSOJTZnDRTmM", + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 124 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION" + ], + "maintenance-timer-range": "J4HK6KC5SXTZsVCe2SniUri69HTTbVfNRWxQy1VrZGijtMpvwMNqd6pfNi8Q5gvX43FDWA4Nge7JSofob2Hg06vFgwwdM12QWHtLhpqpvp1nOgEZal73jDIz16MN8HvWoRHy80XEpYTd6x49Scc3P", + "supported-alarm-list": [ + "ziMDZy7Procke5atWz7OYJcM4uGDbNdKXZfXpnERDRbKWd5KMcrKOvpSZ5n2KANIrUxQ9bzNUDpQQutDGMfmhwe9uBbe3YOuLldUxEzjhY20svv1hKnq9uzD5LR1ByvmTA9i7ICozEgT1LUioaIxEaaBVTCwr0TdAUvHu7Y3DeP", + "Q1hv1Y0PeRpM0pCwOsh2zP6" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR" + ], + "max-queue-depth": 1390714168 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "GV2540IK2cAHQy67oKtx4ubqR0Uf67QM2LRYDrIFvjmlJsl74Ow0iHq1AkgyrZclK4cnnU2L5gYOJjNN7bOhL6bdjrLCqXY2T2p9WjUUASIb4oQ3rwlcvwpOPaq80gaTis27LW1dHBgLZZOjv1v0pNGfX7nXfpJqRLxvAyAh1R2TIIc5KH69mEgcDv1TVKbEwI968Cf9l923R68tO6v2LLeg", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_GTP_U" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED", + "compressed-header-length": -25737 + } + ], + "support-of-management-frames-without-preamble-is-avail": true, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -393687243, + "fec-is-avail": false, + "burst-size-max": -14992, + "ingress-policing-is-avail": true, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_20" + ], + "egress-shaping-is-avail": false, + "information-rate-max": 468526250, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": 47, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_96" + ], + "burst-size-min": 27066, + "fec-word-size-max": 16637, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NONE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -20, + "current-problem-list": [ + { + "sequence-number": -16812, + "problem-name": "Gqbzg401rO8AGMZ5hn4Ange6PO5I60cMqodykdzMTzesd5pvtt5QJbOqZL1YLdC3tQBO32AXCOpPTOke9h4StSakvba8hN3KDEyGz0v3GMSAs5OBeLlHvoU1z41QR5tmJ1VaUqdA562x3J1humRRKDScHUUrZnFAhADbTQDYOGnRho1DDSufnfr41mnSB3kSvXVoOze", + "timestamp": "2020-04-14T00:29:26Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2021-05-01T05:41:47Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -19898, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-08-13T15:23:22Z", + "suspect-interval-flag": false, + "history-data-id": "Xgsu3ZoZ3wGGo3eYC1xD1BEwAWy4Dc0Bss5nrlmuRV3gQh6sbD5c7CBzq9D4mDxG6u4pIiMzdPH3YNw1jteqXHZgQvc40BD65HoFZaf5ZO8XCwZVS5dPM4Xuz9rAK4yIDWnu6uzXjIN", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "max-queue-length": 351131382, + "avg-queue-length": 940069800 + } + ], + "fec-uncorrectable-blocks": -2066276541, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -911033463, + "tx-ethernet-bytes-max-s": -1001813487, + "time-period": -1580683425 + } + } + ], + "time-of-latest-change": "2020-09-04T20:58:05Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-07-24T10:18:10Z", + "scanner-id": "tIUYFQflhtQg54E6jxBaMmwpzGUZei1z0OyxwFTF8JV6Nr4YYF0C2w1t4OkbYeKQ2anqP85YR04wj8m9FmLzKF2Ptf0jtK9nVoFCxKAgCwFVwT4cgHDSmyHHN", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "max-queue-length": -1122680985, + "avg-queue-length": -1722184923 + } + ], + "fec-uncorrectable-blocks": 1144614548, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -45818043, + "tx-ethernet-bytes-max-s": -524278285, + "time-period": 1333798172 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -60 + }, + "ethernet-container-status": { + "timestamp": "2020-07-04T19:55:23Z", + "last-10-sec-data-output-rate": 703190598, + "bundling-is-up": false, + "total-bytes-output": "2511821429922042", + "total-bytes-input": "5418826507489842176", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": true, + "last-10-sec-data-input-rate": -205944001, + "forwarded-bytes-output": "7390028205905498112", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "8316765974243453952", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": true, + "segment-status-list": [ + { + "segment-status-type-id": -14461, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2022-02-03T19:44:49Z", + "history-data-id": "TxCGDqph5Gh7KoFfMY19ZlfzmgWao7QhFkXaCejAVBzxZeEM5GN4T2v7brhzrZI6cy8OMjozUY6M4Dq9b5547BbaUtJlksjw0jlEDBeprc3oPtp0yvWy68I0tkeNMxcERxam0oLktPIaa73", + "performance-data": { + "rx-level-avg": -108, + "es": 1235450520, + "unavailability": 106755710, + "cses": 848498938, + "ses": 587012680, + "rx-level-min": -121, + "time-period": 1483829550, + "rx-level-max": 4 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": -841, + "time-of-latest-change": "2021-12-07T13:18:33Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 19643, + "problem-name": "6MfKpwQseD1jpxZEledBANOP1SUC5D94i", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-06-08T13:17:53Z" + } + ], + "number-of-current-problems": -113, + "time-of-latest-change": "2020-09-10T16:42:59Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "yhUNFyh7KUErjUQdy6mEmOVsTToSzG77PTMnr4mcY0vhUmmkkIYGoL0iwp26X95F2K2mOgqEgVN2h9etS4a8P2qljljhupOp1", + "tdm-segment-size": 1108562520, + "max-number-of-segments-reservable": -40 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "Y3l6Y888hmB1" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": false, + "timestamp": "2020-05-05T16:29:52Z", + "performance-data": { + "rx-level-avg": 99, + "es": 2023937648, + "unavailability": 1355086764, + "cses": 2015772836, + "ses": -947304423, + "rx-level-min": 110, + "time-period": -1177454339, + "rx-level-max": 60 + }, + "scanner-id": "WH0GtuE7vIhUgYHF0IIUUUeXSMeWU5NJMFp8a37FDorM", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 6 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "sTRXp16Tyb8VODp", + "value": "uQr81" + } + ], + "configured-client-capacity": "ZuBsF1ghV6aYzDSVhqS24HHXesNnQYdHtG90zi9vobtXOdK5EuZAczxi1kyJbLrwrsw0Kyn1JIQyWBvs5n29WzsPL0yWDZs4kRWWpcX0UOyQhWiejkgfLA4xsul5mO1GxPCW1sOW8fMhbXnu9DBVdx", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 901467668, + "last-10-sec-data-output-rate": -2051978823, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -250597801, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "2ynJKw6lh13rCl9OWoyYY3UNObz773p1tEK6aQrrKuSeQTUEhlC7opU4AlbHgAIK6lQg3hzFMjTucG8l1Csh1fluAwbR6MB47jcaALQe4BI89ItadVr6aMADiEugqXkpg", + "fixed-ip-v-4-address-prefix-length": 14, + "fixed-default-gateway-ip-v-4-address": "I9hXdLxlU8O5lCorMbUhlyLCQAOfIdGrmYgsBNFnVmkgYJACMuU7UxBK0iZIvF1J" + } + ], + "broadcast-packets-output": 1130760966, + "dropped-packets-input": -170316699, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "dropped-packets-output": -592054243, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "3Y5JmS5y1VhBpV5b3RJwBJOsjbZlNnuQlzrzko8lbhWBdTM8Knwd6dFioEv31ZUfrdOLCO6N62gbN3jpqPCp29zjN4eH30Omeu7Qj5vhZMsM", + "neighbor-ip-v-4-address-list": "Db7kFofOXqu1E3XFRbTlbBwgYFgK7UjC6rPDH4sFmWy0ZnFQzq3KTsSS78u73OB17qwOmYlIUUJL9gtAzpcsR5kY5HX0vz1CZqieoEWbqFWz", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_OTHER" + } + ], + "timestamp": "2021-11-01T21:47:26Z", + "forwarded-data-volume-output": 1066014468, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1157450325, + "last-10-sec-packet-output-rate": -1225164423, + "vpn-binding-is-up": false, + "multicast-packets-output": 1681716068, + "broadcast-packets-input": -257932831, + "last-10-sec-data-input-rate": 360514010, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 436730846, + "data-volume-input": 2039243684, + "data-volume-output": -1057588809, + "fragmented-packets-input": -1849294799, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -2057012297 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2022-01-01T03:40:30Z", + "number-of-current-problems": -75, + "current-problem-list": [ + { + "sequence-number": -31691, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MAJOR", + "problem-name": "o2hqhYM7o61EvCSUAxda44UO4jve7KdnEuNWkAVAyWf3qZX0x32t7Wh3fFafhnCVKqR4SMxqAMlSLaSadMvdJN8Qki5BGAwi0geK2L2vxnnbp8dDUJIvoQmI9jbPTH7LXdvSZxfoMCzcCFPxgpUEf8eosp", + "timestamp": "2020-03-03T08:10:44Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -19461, + "statistics-is-avail": true, + "supported-alarm-list": [ + "VcdTV8hlapoY6Arsr6439DP1DhUEa3w58JR3K0gUpwKn63Py2Ttbpa42kYGmU4rUOaXqa6kACWXBZF11qu4Px8JJZi5LmoF2zusJAMj5A9GsOHl63iOAqxjhHg24FH6e4zXEd9JOih8YYt42LKC4aOlR4gVJPUPTtNqyW1e6jm4hI0jtLOpVuDMqTA2IuRuPEUnsVCy6QCoyDzUgfjbJWXaHxciT3MIAG6UtAtAiXYRspDIFOT", + "DJqk8CC2yoC0WAUq2fSl5I4x7H8MvT30CllDYPxo69o2KakMqc7vU3UUK2y8WB8qXl3Nbs3hCjjmtw0LI0gv33pO5XOTrWkgifVlIYCc9NqCjqg2qwpuzOaxDYqWUCc4KZpkPTwYHWt0mJUF7b9zZj6vhor31w0Lvh5dbtbSpEKDfxinI" + ], + "information-rate-min": 1173913728, + "maximum-number-of-ip-v-4-addresses": -24320, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "qdVRfuSGZ4GaBRR7mbSkntIpmlfKnaNNnIwC4ga4cIeNz5NN8x8v0IMm41YjbLZymn2qE4mQNsEepr2xY2UQKH4GA20EFZ4Tm7c0byJY1n5qG7YE9KmTjqAUssq7juTFt5yFD9vwwAXczNIIx4uRu4DOo3NHpGeTLEqhNVNjoCnXhXyP12ynY33mYRVnp9g3OGkBuZNKC2zT07AT10", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": false, + "information-rate-max": 1684427762, + "burst-size-min": -2612, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": -5900, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": -19543, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_PERMENANTLY_TERMINATED", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -1857375599, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2021-01-10T22:03:28Z", + "multicast-frames-input": -790260833, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": 2036577136, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 1388725130, + "dropped-frames-output": -234801489, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3", + "last-10-sec-frame-input-rate": -1808470425, + "errored-frames-input": 1732407452, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "mac-address-cur": "vtsR3gcciIVsINIzUj4Trz17rKOHOEWb7o32F7fPP2hpP0YJb2uutvBU7htNWqZVOUYl1dbIfk74c5FfZ9Kkwl7vDAjr0aeHW42Ph5xoiwkuBRKs0uMoHTUcu5vm7K33OYSY3hmlNzIgqkIjOmzn8lsuqXQpHUsoKcmNtA189BosVY", + "broadcast-frames-output": 936206918, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -1805650589, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 224569706, + "dropped-frames-input": 2022831320 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": 23237, + "loop-detection-is-avail": true, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "s8BIsdQiVvd3Ltl5xA3waTpMs8Ku8NjtNVb70TqVgDRTY4RwEU2OGrs8r5usSOVFBYMBSco0I7UGbL4PFYvdiYmJ3I3NoYkZX6sHbRHTYBr2eoRMmfZE5dg0WjNka7c75EG8nf1mJloXB7JXmJujWKjK36555h43VKbb05xBiNyTMaQ1LckzWEkSCpXAy2DlEOwwTV73IyWnIFotRI2GmeqZvfr394pOKNcwJczjKwGkb4F2NzA1O0Sj", + "supported-alarm-list": [ + "fhnEX0jaw2e5mYBUaEZPzEo9Fc2yoaJDr79p7srvvFAJv4DFIuuh0SrGXl6dvPQWOZdNjwiO3LpyPVdxhzPik8Y9tWmYLcMs3S7mgi3k3sSSfYpxx6PR6F0zBepeq4GtOGI4YLo15hTl7aSE9zofegPPv6VN2u9QaRV8Cj1H", + "UUzWE65dudjCU070WN3qWTANGAhSBYknLMbpS9vemOQgHQ8Dv3VrXnevX" + ], + "hardware-mac-address": "IgR9JOaXMy2BM72CSC2PT5fxGTlhCp8dxZegFo6jW0NA7H4Rj6y4cOCSHP2c72hw2vNzLLLzLq9L7euic3noRR9qG3uF5Lc78RzLuckfCuSBAnTMqg397czGfWdkzpkI8LlCXGKr2C2CZNgh4jq3vSBCOHXn69X7UjJJRt2TY4nXJD7FXxBsh455LUlK3aRPlsqcWs5MokB7YINV8gfpkcn6", + "maximum-frame-size-max": 25189, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": false + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -84, + "time-of-latest-change": "2020-02-04T06:45:34Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-06-11T21:35:54Z", + "performance-data": { + "mac-pause-frames-ingress": -74410669, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 679979300, + "mac-pause-frames-egress": -947107567, + "mac-control-frames-egress": 1936334584, + "oversized-frames-ingress": 235594078, + "undersized-frames-ingress": -1536640407, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1367192352, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "yvZli1IQnmQ803RPT61c655iL4pTNN7liYGARgi6C1fC46jX4l2ai7k43KXQxW3HNBawRsDmtSYxYin3vp5NoiRr2H9r", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-06-04T04:30:52Z", + "current-problem-list": [ + { + "sequence-number": -11928, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING", + "problem-name": "lNLgMoRZBHk9017gGn50Yj3TSU12wqeR6RZKgIJJiVSiWRqu7vu5OyQHkRBRaPAgHA0PaBysoiKc9aGgy3dmB3", + "timestamp": "2021-01-29T16:13:03Z" + } + ], + "number-of-current-problems": 98 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -127, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-10-29T13:00:20Z", + "performance-data": { + "mac-pause-frames-ingress": 1317994630, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -713265157, + "mac-pause-frames-egress": -1998801651, + "mac-control-frames-egress": 1760972604, + "oversized-frames-ingress": 1313529582, + "undersized-frames-ingress": -1098769833, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1403131158, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "TcTP0yeEnATsosp0kXbELvALZzkC63s0gdHgMVM1nyuL0" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-04-25T21:26:28Z", + "performance-data": { + "cses": -1333571549, + "es": 344186930, + "rx-level-max": -48, + "ses": -1042942891, + "rx-level-min": -20, + "rx-level-avg": -96, + "time-period": 146709536, + "unavailability": -883057865 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "2HewzOjlUtUTV4UHpBYOa7b2c3Fg4g07Qevp2OKO9wzWsmvSXlG7tS1FNzNRPNQF2lWW1HDadc6GyuqoPYniIhXvICfxq55kj18kALnGQlegPEwFCMXd3NIDhX2HV71e12qtNN9v9fEQTavoWlBR0buh1xRWwS2pUsTAgUXhaB7VEvjAIMkAYGRZ5ANClPT79MHhzxy" + } + ], + "number-of-current-performance-sets": 99 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-03-18T06:27:02Z", + "performance-data": { + "cses": 489558518, + "es": -1276394943, + "rx-level-max": -118, + "ses": -2035397039, + "rx-level-min": -117, + "rx-level-avg": 90, + "time-period": -435289407, + "unavailability": 48005084 + }, + "history-data-id": "k7Wb5xYzSFsZP7z6G6xh65ND0vKv0bIcawo73mGNU9FBg6zO46523KFV8pi0sScDpAKkPj0JsFcALLoPKlRFXxt5OL5hEaMVKo7zH7a9MmBp0Z6KcYp2nK73w5k276PRvWjc4leIIP0IH6kLWBNbmNfKKzMRGtA3pL7t7l4H34hCatn743iqQxasZObxhDAzhH2gVYXQ26s5zPcvKmWsMYULFXiWBKnSji86gXWjVo", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2021-11-04T21:36:00Z", + "number-of-historical-performance-sets": 11958 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -8888, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "Wr1dlZr54B4EduuisrgbZtX4WyHw3rOZLH56yo3D0795twfWXw7OZWSNuskpL0hoImngKiLCiVzLrPzglz5cnP0S9k9NkqbUEybhJWT1JlE2a6jnxgzUXzM7LWUYeXSToVa7KV0tgEoiKzFhP74MGQLkExiLn2ELYGSIBS3Kor210AiHzmm757rBxJmUMSxCyhk21nMpHGqz8BhHXDPUC8o1SCNwvk0VBkXCzB2gikQiVZ0LuHF" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 22450, + "problem-name": "SgyK12jyT0uTA2ypXqnN2wt87L8Zcsy4IZGJTRiMSExkGYJvoYainwquhqltTUqtLYdEQnrA1QMzOnWdm6vBCOXL6j7Z5xtQnym5NNFOwrfkPbp39NwEBtpHMwzJVUrjkOo7tWNZf2k45BZ6ovKRR2rvq0fmMGx6uVdYR0P7U13ZDV51iIT9KkFacMoYkV4PJ9Fs1mrVonM1iJ2sjNu3Z16bNu17iXO16ltZIVU6iy", + "timestamp": "2021-05-23T04:58:24Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2021-10-21T13:20:37Z", + "number-of-current-problems": -50 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "KsVm28mypHKHyxLN3dJ9HoTYPNEtY", + "value": "3IgRWiRiI8ZsPpSAcVFV4mbXc1CRuAwqaM97W0pE8hZXGRpTMWGIbSxnL967CDpMhyL6y3KykJn0sML6JkOUcd9PfgWRLmv2Uh8lkLLEm9wPVaVwuCiGHknWAjFlxbfkkgFE1iafry4fISDcmWK387SIjpVQA2aMiHib0srrTvGBfcGt0qp8qh" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "FCflDVStqGmKviSKX1VUohV2SQ7h2NiIpy3VlWgDuCnZV7JK8wwxNrzxaGOclZMDpIyKwOg0iD05LBPT0dqFFRdHyTTLSyo9gWMMC2MNFESi8Ac8NuNsmS1MMVxwlWyBKkffmT2TqMcymoGaSlu66wSS" + ], + "fc-blocks-signal-to-lp": "gEeO7Q0e5m7Z8xMk50ADakRFrX3jHmBPSHwZywdvLcvTK9dH9Ndk7WRqTUKs8dh0VNRlkWQ58lQKm3kwIpIHlz86lKylXPdKD45P0WM09CLwx527mCOH3WNoGlBw2OgFSemK20Kbunz1kt8G5Xn8L2oknZQqNYXxcchecUiHhRAClBaqqqzbsXvIPd0CcXa", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 81, + "current-problem-list": [ + { + "sequence-number": 7793, + "timestamp": "2022-01-31T22:36:42Z", + "problem-name": "mLVRtEPk7l69469xe4wWyXdPI9w0Srhf54YyJN", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2021-11-14T15:12:16Z" + }, + "air-interface-configuration": { + "xlts-threshold-cross-alarm-list": [ + { + "level-threshold-second-kind": "air-interface-2-0:XLEVEL_THRESHOLD_SECOND_KIND_TYPE_NOT_YET_DEFINED", + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "xlts-threshold-cross-alarm-definition-number": -127, + "xlts-level": 82, + "amount-of-seconds": -21894 + } + ], + "loop-back-kind-on": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "g-826-threshold-cross-alarm-list": [ + { + "g-826-value-kind": "air-interface-2-0:G_826_TYPE_ES", + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "alarm-clearing-threshold": 630232098, + "alarm-raising-threshold": 620527584 + } + ], + "tx-power": 126, + "xpic-is-on": false, + "adaptive-modulation-is-on": true, + "problem-kind-severity-list": [ + { + "problem-kind-name": "IcEWjee6SLgMqhOyWk6TPlOun6R50HuIL8E5nK37wbUWkAu8Vs1COI63OQ8GxCobDU8SE3Z2eTQqucyhFsTl2SoQIpo7TMiwyqg4tg7z1XZnaqEHSq2UiiC0H07BEiZcI8g4ofDhdDFf3bWNBQzT8bLI3LbH3aLDi1Hy9lQmQntTyhy277VfazXdk0Mf", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + }, + { + "problem-kind-name": "3H6F3Ppa7gXQKSnwf28GdxOYBCB1Bs8w26b5NB7MR4DuP004U1C0yjY9Vr3xUb3Wh714I0Ir4dVT5OP0Ps0nLYoGpr5bC17L80HI0q1XDXIJLyBs0BPDrdbQFhU9a1NiUm0MM1JiQkTtSuVKXCfoQq6nz0oJUb1GyTscN4mvo7R8tMKqhZO7hVmRNKsHOmfe7IiMEFi2M128NEy4vf3M2", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + }, + { + "problem-kind-name": "SlisMrNuNvR8ghpOjwV7EXyt2SuOZxdJSvbEXQ0ClRDB12hcr4j51Ry3BUJsrWcckfQ9YRDbAgNBbWOC1ZH2J7Yc2HFlwJxIQgJOZm0zvF3GBJauAJpbQnoKWVYswv2mLLbC034vI73bI5GiO5uwkK9gF7B3CDpg", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + }, + { + "problem-kind-name": "5qc6w9e01OfgPIqqmmNkPxGdwmuSX7Z2x4045f47VbfLTx37LQsAf8FEn1wk9nfyjfupmqoitvVf2YmFGO7NXNjcOPwX5DogTKF7b3pEykTsa87IWfwL2PXIxmyuZWKKGqSJl9gMu16w9ef6lDJfszXRVvlMjYxSghtBqJfMDmjMAqKN3m2nVRfQ", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR" + }, + { + "problem-kind-name": "P2", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_NON_ALARMED" + }, + { + "problem-kind-name": "uqqTiGaMaBnpf0LyFdYp01LUhyEwgTYLbhEuPH8Zavppo2Y3gOk8I63ZwznNkdyvu4ZkLZbVvslTvbOLZ8Lz6GyDfVqz9QXvUOHGOTtblOWQRKtRS7iZNRu3EUuFCrbw8S4WDy7", + "problem-kind-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "expected-radio-signal-id": { + "numeric-radio-signal-id": 21351, + "alphanumeric-radio-signal-id": "aEAe5IqZBbstFh01CEPy7T5FPoc2qPQslqGq0Zit2KXz2XAwuhXt3U8SidUA2C2f2AGUzQnuAc3u2wToNIRQC0IM5um76om0YUUqKaUdePz8lkw12gRw8sidWEcVUqVTlIbXKXaQMCZ0Wn1ZDKvD4GQTkUO7lB0Gb3vN0GEEaDw6Sp5o2t161KZlEFsZ9kxkf387BEEL9aJ1sHpu2rs33soHZJz8VYtbTtam7OZgZJ9jqzNsS7vVzLurmVz" + }, + "tx-frequency": 1684323736, + "auto-freq-select-is-on": false, + "atpc-is-on": true, + "auto-freq-select-range": -121, + "encryption-is-on": true, + "maintenance-timer": 1202437074, + "performance-monitoring-is-on": false, + "receiver-is-on": true, + "power-is-on": false, + "atpc-thresh-lower": -10721, + "atpc-tx-power-min": 53, + "alic-is-on": false, + "clearing-threshold-cross-alarms-is-on": true, + "modulation-is-on": false, + "transmitted-radio-signal-id": { + "numeric-radio-signal-id": 57640, + "alphanumeric-radio-signal-id": "kMcrgvedgDd486bUwtD9SykCtZktHw4Ui8dyDrDUWQQ4X1RlmmveMHJ7G3BgzFaJNn9rGMdDDVzsOiNaFaorR7zq22GtHQcm5lFL8SgDFQ5t0SDF3UZM1qcWsSp1ACfxPVjPFrsl9xGaikHd6GZ7YcViWlbxPr4EefmTHO6QeNSwZAJ58I47M0hJdt82U4y8cUTTB0BPFmlEW4B4EF3rxl2" + }, + "rx-frequency": -990454299, + "mimo-is-on": false, + "transmitter-is-on": true, + "cryptographic-key": "658BSIfm1BaAL4vYBKuv7Ght", + "remote-air-interface-name": "2eUzhEb4l7bxk8Ldd2uACAC6CqVXLo7NDTfMqqRLpUaK3NP8I", + "acm-threshold-cross-alarm-list": [ + { + "acm-threshold-cross-alarm-definition-number": -18, + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "amount-of-seconds": 23301 + } + ], + "air-interface-name": "Lf0KOyGyqlBsN9IAVoDxy3Q9mqot0nzLCzniZVQpgkSWlswgQ9Og4whqWFUO2lzwMOPLKx3SJNO4fcdXdTdhpuId2u2WPtlB", + "atpc-thresh-upper": -31878 + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": true, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING", + "rx-frequency-max": -1211269763, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "VwE8FA7BoU5dtrzKAjx2wUpp4qPJguE4Ti4yS418Y6lrxV3ZeB1Cnq2sIRbZlHV6ZREKVGSMM65cT9b7CdCZvErevu5IbSP3JlFF1pjGvoSgx3g18S1EwkSTPPt0HiViEAXxS8dfx5w41M69EZN2jxV8eo1VzOe5h3C9cIoJNUFGGDQcCveW39WhqP5ZEb4V6y4igkTWfrCN4k", + "6gCSF3cXSrFXX6L0E8hw44spnqrKsUrrb3bQ6nGYGdODkzEQAVeEZH3f7vZshqTsm4bskRj047Egya78XdMXUI4U53eml7PH3S2nBlgxkMGSWF1TSFINnEzszNPVMwuPgo5RJlg37WWVBPGuuh9SVAcvn1i9pEQF", + "mgDT99c5dk3eZZCRi8JCs6W2YKsewEjKMWDVXH0a23pT2TCd2dPukDwafYpDuInhwT4tA5Du02fVOS0Q5HkpkIAryZ52zsb5dgyOl3adYq8Mi0CnHON1oflW6qYFKaKYqaMDdWQbeRXwRrUz7zsvGNrM5irQkbOClsfqgXCvGr1qLNZSejgUZzy4RZM32sFfUMG3KiyiBrIm7", + "B", + "zYL4tmj94ThGSfF0jpaYvRnZ0jEErFJ0DmW6Jf8F1pdTESLX9VVEEavxl2bNHMFk9CjSJrxKQKEuuhrDde9Jgx8tzkggYOs7iLR14gMUSigezzRENToVqwpZIx7HlrGv5qx9GbWztcNUMxzriPfIdEzO3ynpZ3U4tj62u", + "iAdePEIvA3v9TBwERIyxBy48AFsRHIbZio502NvCISEtt27dKyKd6HlGmFqVnBUGZRGTx3vfV1Jg4IlOg6UeF7N1N5PaGBIxtgq0jN76PIfTjAzrytGdBl7oqWq6x9vSpVKBAKHpsWaDpK5X5L3G6aWoYnunoZgNMSgmCYEXMOA3yF1Ei4cg61EWo0jERrjvkASWyoLc", + "zQenTgb2G1ZFxaBsh9o" + ], + "tx-frequency-max": 245152942, + "maintenance-timer-range": "krTSiUy2riImunG0TCExEtUwWb7jEtXYVIIduhfWrPaNdJNYlrvZMinAlmUZQJPLryQWH5K0NMN0vAQIUmzGwX9Rj3J9MyM5YCTxAvxnikfNN5ozjX7HUgz6ba7XIUVzwO66cEluQs9vqx4BvcjhkKnwUvlupg3NXaM9GZDwsE2KcYlz2wQng6T2BexSvAFkCjtijYPDCJnGHAfK767f4SaF6Hpt94NMg8", + "transmission-mode-list": [ + { + "transmission-mode-name": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "transmission-mode-rank": 340859112, + "supported-as-fixed-configuration": true, + "am-upshift-level": 83, + "tx-power-min": 51, + "am-downshift-level": -13, + "symbol-rate-reduction-factor": -29, + "channel-bandwidth": -1952687921, + "xpic-is-avail": true, + "code-rate": -118, + "tx-power-max": 32, + "rx-threshold": 29738, + "modulation-scheme": -31562 + } + ], + "encryption-is-avail": false, + "duplex-distance-list": [ + -1830290303 + ], + "atpc-range": -6, + "performance-monitoring-is-avail": true, + "auto-freq-select-is-avail": true, + "tx-frequency-min": -122546305, + "rx-frequency-min": -2133222337, + "type-of-equipment": "ZTswLyxuUwNHziSP19VrgAq3u2RiBiqscLZXjoj5M6Edgo39xQtGrTBVOt5hLwKX9BMsR", + "atpc-is-avail": false, + "supported-radio-signal-id-length": -26386 + }, + "air-interface-status": { + "xpd-cur": 64, + "transmission-mode-cur": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "rf-temp-cur": 116, + "mimo-is-up": true, + "tx-level-cur": -119, + "local-end-point-id": "JyVPluYR8VxAHzyVlGhEUn0D", + "rx-level-cur": -54, + "link-is-up": true, + "performance-monitoring-is-up": true, + "xpic-is-up": true, + "remote-end-point-id": "DuQR6ZtwMaR88AgVZQCyg", + "received-radio-signal-id": { + "numeric-radio-signal-id": 38309, + "alphanumeric-radio-signal-id": "M7uje5m" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": -89024911, + "rx-frequency-cur": 210430856, + "atpc-is-up": false, + "radio-power-is-up": true, + "snir-cur": 79, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_UP", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-12-26T03:59:31Z", + "performance-data": { + "snir-max": -109, + "unavailability": -525888843, + "rx-level-max": -17, + "xpd-max": 70, + "ses": 621764542, + "rf-temp-max": 105, + "tx-level-max": -117, + "es": -874612321, + "tx-level-min": 106, + "tx-level-avg": -118, + "snir-min": -117, + "snir-avg": 88, + "time-period": 269015572, + "cses": -1772595889, + "defect-blocks-sum": 29899, + "rx-level-min": 81, + "rx-level-avg": 121, + "rf-temp-min": -14, + "rf-temp-avg": -30, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -56, + "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "time": 153167880 + } + ], + "xpd-min": -66, + "xpd-avg": 114 + }, + "suspect-interval-flag": false, + "history-data-id": "9oT3P9giQBRXAF5IH9vu5HXjA0KMarBjPvewwnHeYqbyY98xiD2gcRzERcr1v2lcprIVOh1MAdkyms5wXZMaImOzq7tV2O7j7H7WZ8IrlVZzfW6dOSfw63Yw3rj57qoe0vaZELiZGhrV5x0TpfiobgUezejGwHUw5XnJIFAgO13Uq4FQbP6m50Aw6LcDlZ1qWp1E4BULvXFVTcD52JrZCUwIFAd0zfinwj1sVNdiDKdoXRtRsNI4z6Fe" + } + ], + "number-of-historical-performance-sets": -2488, + "time-of-latest-change": "2021-05-12T06:05:17Z" + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -36, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-03-14T07:44:56Z", + "scanner-id": "zG1k262U7jBdh0sLqAqZPju2KBUWqE7Rd13f7616hCbyuDbU6BLVU8QwJCs19sSmlVBk1uia6tIA6Lncn0090QyJsSCBcuXxiqRbU9mSCWlBIANXAN6tvw4YpHzB3p1lHSpCULmoHHZhhFeKkddQJhG0Y7u2wvfenEI9h4yREp8N4fphsCZ3MF4CMqwbVEpaiZksVSjr9rf6GEn09e4NT0pFiOQds7nCYH4U", + "performance-data": { + "snir-max": 68, + "unavailability": -768688799, + "rx-level-max": 91, + "xpd-max": 109, + "ses": 2124226990, + "rf-temp-max": 112, + "tx-level-max": -97, + "es": 1041671014, + "tx-level-min": 29, + "tx-level-avg": 90, + "snir-min": 31, + "snir-avg": 44, + "time-period": 1288791316, + "cses": -801565687, + "defect-blocks-sum": 21332, + "rx-level-min": -35, + "rx-level-avg": -70, + "rf-temp-min": 32, + "rf-temp-avg": -29, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -87, + "transmission-mode": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "time": 1671953438 + } + ], + "xpd-min": 123, + "xpd-avg": 100 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "JGDz9FKVYr69jyALjYjV5vBzvTYDj7l2NYuOEeCuxIDR86us4Nf9bIIyBycNFpPlob9UpDoPd", + "value": "ymZ2G3HV5SDFj6evTTUB6aMg44LkTZerldl192O6NjL6pRtjDfMJiyRmCDHnCVGP01I9WwfBPTH6K2hf93ZrCQO6lnmXa2E2WmcSKjlrc2yXWP45T3xnMdl7sH5uCBwqYIaA2v26ps3lh0i23PhPUvXm4UQGnn6lXgWRLQY2iTnrTGmXnDEi8twdfnLDCKQr0EjEuhGEaW64" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 24316, + "time-of-latest-change": "2021-04-24T23:19:35Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-02-08T16:00:16Z", + "suspect-interval-flag": false, + "history-data-id": "W5UevSF9lFMPUdkvMZ94s6bbPJtKJZPGWJMsurtP7fxTtRh7IqbbwemeXHQHGFfDh1XDlqskFZ50Jm7rMaubgRpeqfN7N", + "performance-data": "5zTbsY4fy4JmQOd3MVTlL8JUCri3BlvyVgJf7FvFJ6TzN7vr2oEFofsSGKV9XiHSzq0G5vdGt68gdDA8TeNhuf92RXcPfTzGcze9WrQiyYyDB0LufrDJyELqBX7JRGp38" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": -515, + "problem-name": "3boZU5vXQ0OLmKdw725UlNdvW8jF0lG3w5Uj2h8ShWvDGA9FD6rYMElINEfF0WIoTCHVTPG2L3FjEPY9NhZzWlaBZpgRdQ8Y", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-07-05T03:35:18Z" + } + ], + "time-of-latest-change": "2020-09-30T05:47:41Z", + "number-of-current-problems": 32 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NONE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "FjsE55j3f7wZvgjNopVde60CumAOdrvTCPpzVACaz024glJwCxJQDJl05VObebWQ1diWNUYmN0j3dUAQrby5VT5SHLVVXJEYWWMBIKQvL1rYV1Gf47cZ09KHUxvJ99z5XlzFYp3Bqurdn8srfwj7F3Hssc3BdDzaY8HWxKpP6R2tZvV61e5z9MTBQW53zE5qEFe3pESwvUZmhMkb0pC94vDUrAQ16NjKsxNKbx8Gr72BMeMMEgOIL", + "tdm-container-size": -1945168345 + } + ], + "supported-alarm-list": [ + "CA4n6WqlHie2THGyZpoaM3T0CSXDfU6Jm26lYoGxGVzru70lwgwabhbN18jgUpR8rPthd2HTX8drg5MMlaXxs0kt0vCUUtUlbovoqcafknyAscfFnccH4p24UEYP0S2b8xzqBBxWQ5waiLQxP26Tj8XeNNVNyPYyfpZQTwMJubUEOKbwEhpYpf442ZRsOH13ZSUSgytKBnoqZ", + "WEAdu0kyWfxGHdfI9esVYJtkt5HKnzbb5MozEJ7AYw8xBo8KCAFtj1NFYmpdVAoSeErKfqd5OlDiJL2edAHxtm4jItwwVUgaqIUG07LHlgZ4TTi7tZwOdA7O3DcQps0Q2No3M1C7aB43um2QeyEr0E7VhjMzMEhOjFRYylXI" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "k5Z8gJAOocZVkyeksP6HtSlJy3mRxrKKoJSFkktIxsvR0Kblr92V2nwsiTkHkWrIybfSoItV3QEVAIgURiHLxdeHYqpamILMM0xaJ05MIBzbjQ5b0MWyR2fQsw0H7DtTE03fS01tBsENiJQjvEReHY41vX" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "performance-data": "fMmTtcUhuUQif0T6i1QnJYm3F084k7fzTBlnNfE91mrgfcfp55MOV", + "timestamp": "2020-12-14T13:54:11Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "xkYEUK7f7MmDWoRfw6sLvxIaeviXYjPnDF1pp0EoMTTIhLYNJir7H1hVxzTnKAKg7DFpDcNp5H0mkY138saPurLTTwgD60T5Dru8DaxIRxW3nX6vi9lEA6xluNRsFCxa32iG4PoVfcQCaW8kXtYqrnLN2CfHfEJay1RCI7pPkfsm4sG1VwreT51VH8uOM5Zl6QXGPfo9uQvy" + } + ], + "number-of-current-performance-sets": -3 + } + }, + "address": [ + "lrfhVz2FxrGvkeyl1mYqVs9etabYlG7G0fXVOZsdq9ADn8YpnOHa9IoCTzAe7zM7GJVnAnASobvMbl3yaCIjl6N6xfkxO6EvHrS9Hk15npJzCM7EpIXCGCIeR2LG0h3zBNAiZtfnKZOnDN12vRwcteid8VT04OrFt1Psv5H7WvuzjouG70SAf2NfXygUeHzHJh26eJda7AJqY5656RxdLdsBDIvS" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "7snPRPghZuF3HaIuqaCrn5Y6vmqxZf9YzwFreWIdig8ZiQlJ0Y2g31mqfFX6M7WmvCFJqfOIvWzOFNpFDrVykaYrPNxtMuPaYuLgKAY7opV34cBHEo7", + "value": "y5ifLPJpbqz1VlhxN7EbxsftEQbaei1FgjU10vicWSdJ5vgSCM316avL0yN7IOMYZyR0W24KU9tZwBR1nM2uXp7XPMW" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "nUsB6JVTpwwzWeKTivwzHwKeM9WqACEPw7rvIeo7KUGy1jsjGQSnmCB0Dpqe253q4mVMAkLk6jT7Cdqa3iqiNTiqjBEdyADuWz8pLTJRcuRHzhRvs9Nf3Xxey4rYE4ssDsRolt8qPZ7p8QUs0zHVw79XbAVPEg9aI1qWuymbptAybm03VAYsH7hSHczekIo3BOR5fd9", + "value": "yJ4J6XNTpLdYLuIkz9yTROOtvFqCKz8ibdU92H2jk8hXCZib0IXRp" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "local-id": "3icEpGlJDxGZa2pRFiXXMdLyMmMYl70op53PLgqpF6gQ0xzGPwvtB82fuGePN665b1UPhceXamFbT6JID636e5mAEAhrynwKoirGuFvF12IM8ruDxxKDv6d1Gms6KRQ899GwO33H5LlecPRBft6CzjD7FXehOWiQ6YmM2pmZaH5epPHEiN8S6DZDA5Np25783tUXK8PUQU0fJHLUuTMswDXYBKfDHmDDPpszyhlo4dDFUgzg9dA", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "tAos18kXaoH4q2VWDEXSq0enhdd701xtCVNDV8s5o11O3OLysIiTAx8KCdJCfgXR3LmZTOW9PQYKwBaZbsKERKouY76dfW4iHi9s6YBNGrx42H361FKTi0ng7llehhwQzyaFoMk45R00q46rBIk", + "value": "Iz1PVe34vrV4R5BfJVbHEcH48FoBnIn5agM5nH1S0OPKMiZn634C7Dz7aXIxxXuH68EtHGdAu2kgdbEb6ANdemcojVOJKaqIb5bSDhk7bEgoIMzO" + } + ], + "transfer-capacity-pac": "s3H8H6kdPJobJEX37EDaOL5pf4yI4abo5KwFIISyr8J3Ny6McKO1nTquQRcMTfaYZzvIhg8BoR", + "external-managed-id": { + "manager-identifier": "v6lm6k62DgxdiYsMMXcg2M2OacfKfYfLWB72V64qetDoj62YVeePSgE3sTFzJUcyvcAiaxJgSeEccH28NgXywttQm8hY2uwqyYIIvjQgyukK3mKJCAh03KQiKZgElE4TCFt0YjgoGA1BWLkqdt", + "external-managed-uuid": "hd8zX7PutlyeX5IXW15czFdbtRnT4Rbl4jMUrtgMOO0MMIBICHU3e0eARCtNlF1hQN39hjV50WJMwlm0U8408aARE4xZByhjlktuEosEcbiBoEtiMpjNATw6P3YiB7CPr5bXlDtqPL15huoWUzBmk7k" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1", + "ltp-in-other-view": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "address": [ + "w3WEe7J88DH3W1bdRF49R4JGO8r02CnqGkXUjy2scBv8uyeldamW76CVeWN9ybr6ng0GPU01nn1SV7d1iA" + ] + }, + { + "uuid": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4", + "embedded-clock": [ + { + "local-id": "WvCztVTKsBgkyx6fSd2oYG9fOzPMdE3a2", + "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER", + "phase-aligned-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "pZMm3cpz1njyV25JozEqIkga238LqN5PNR3IVs9WIsnDmseLTL3t5jEZfECFrHm6qiOmCXikhFQE04hLPkfMELETpgqIYMP" + ], + "name": [ + { + "value-name": "Bvsm7NYoZwNXLxaFV0d472vXGBtBLv9eSBA0gyggW35IBgfo8tl8nQ53rqF4WOiGhTGqjWGg0LQtT5RUqc2NV7Jepojd4tUdesDqpbGhXoCIltCEywrtv2HVqS8mmUAsndSEpqVeOpO2SjGq", + "value": "ZLl2tgklgHzb92qmM4DdRRTgGN0ZtrGl41nx9zLqgctp6TETXhYG1RWzxWq0f6dk8sR92uzaHUANF6Gunwagg6PNVfFamTumlevnAXyhR05x6D1l24Ci2j5XzK8VDu9RAE6bBwklwhKuVDIXHc7KvcH4WHRs4SbExhH0O2dcjXz6thVal2MQemN33wvZhGEOPdGDfUQzJhFc" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "Kl15v15pWP3vbc07DUQKq7HA6amfDjqfEsk9lq", + "value": "i7uNizNi4z0OR7nr5xFk2YC9v4uEiM5ATs" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "label": [ + { + "value-name": "tfLv1tKf8FbF2aWIGCpUa39WLAy28KsBRd6LGI0Pn3mpeaZUEpGGkIDXibZqNjTxo0iWAaDQeZ7s17exoNeAvJxNUo6zzZ6XRgTkrx2Fo9Zi85PoSVYfEn3qL1SkSY9C73OysQ5IZWS81AwMvn12KWsoPcIA3KcaF0A7IFHHtAHm260xt2z5QUtG6489OkbtcLsUi1tLB38D983C2uHTg", + "value": "rn7zoVLAoPlQBER4hl7hQ8qLCkgc5wfoLmX2hACFhPnSl6PDjOU2XcNzx3Lus0T5eI7vjJ2ArhlMoahzQcBNghfFcSaEL3KZLRnWtppUHKGXMYwC20iahpQt900U3KMGt9vWyUI7wh4i7tM9t4" + } + ], + "encapsulated-fc": [ + { + "uuid": "d96cc7fb-f276-21d3-2d17-6309a872bf29", + "service-priority": "-9223372036854775808", + "supporting-pc": "0e1VHCyuJTFXcfIXVgZBUJpaGWIDOyPHMQCmk2IWOfT0utPiJOTDpaN56oIMOxttfXPs0poOw9O0CvalbVRA5wF3UnQBMb4T9Ll1aJPGKvym0BA3wrDuXixKxflbjp4s2qlc12KMxa0pLAsa15ERfbBMjOX", + "layer-protocol-name": "pure-ethernet-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "GL2qzQhF8u5Abc2HiM1eZzYUtghC6WFFHHX9peGxAM7DQ1l8NenNNdH9lRDkNiZnZWwg24NDQN8HOtHCH4hvaQwvH9PnsGKjC8Axcf232aCREjldguIik6NUgvhIbTTG1t55J70DhumNOH1W3B6gITaYgjykcr05N52w431lxo1d5211D7hlTrb1CJlO3dLQaNeeIfs8DtdBvfC0eTm", + "value": "cx9O9mucA72KMgRvvjv9MIK9Pe947n3bV4Z4rlg1saD6quBVFYWjHGsoUukTRo4MsVIL8QMs0izqM2ek1aDAJ6YvAjhjzd6T1GF9pjupB3Ig5WAYYdyzbp5DAeX9rV2stzuSTYimTSCYG4PEan6lE3ZehOnAJi34RpXCf7Z8ZBYF" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "h2HiRzC4ah7xExl509W12nIChR59tOrDR1VAApECyL9camaaw64qlE2uvZEQO5txYg7yxL26ocazykJ4jFmwjh1OgxF4u0tt9ATGlWMK8XbG9UDksRRL8Ssph7lLZPe0h8HD4lf4aqCkc7EEZni77KooJKaArgBIoidkDkgGCT0P0wlRMvRTffiYRkraA2T", + "value": "kY3PjkvV5nC5MQPylGjtNtjFNKPoMA7YzaOKubFzrax50mvdUOGHi0e5K4lpwsn5D3HZ7fzyp6vhk0m6O3NYVUWxQ9WmCck7f16egxMxv9OH93NY6tOTnKq5UfrorDnyFlNNTrdgB1YK4DA26pVl1eqVtKbMnykUUZANrNV2GTEDp7FnotBpz1dUDoG1XSNRSnwbar5RdJmCI1R6mswNmJHZ7fS4" + } + ], + "fc-route": "oksvIIAUoYIVrnAoShL5XqYE2S", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "jAPxTmCb1tUq3NCld12GKuiMaDuGsn9EXQ3IcyL61ywXl0ay156LzoyJ2UhmijS79WQm" + ], + "local-id": "V52yhfWtxrPKjQ4eY0S9TYMpWYTIWgpKlsauHZX6iFRBnNHlFsnzi1Y6ZJOOZeqcyAH7rEdKj4lG", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "jqpVqdmYzvguA9NnCIIWFtXnBODHmwuFWLBmYPdpltTNCy268L2O6R3IFGh2dLz9o2weSBE54xSG6UN6xHUEzXe6Ev0R8sSougCmRgrVGbuE69KvIF19ufg8C8RCAK050DjSLDFjO1XMaAaT7b2BjaCNbtqLdiI6VUYzpvS5xI", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "iBSsFL0r4tTDqrQRQuMEBN9entg6lzZEaKYHvY0srT5RcNB2hfGL3QZqb7oxGfbIZ9qn7q" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "tNXuXEVpr7RxU5BQs42QspTtkcpTWjTh6IDVfqdyqW5kTy2dDW35mOy", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "PrP9dY7VCV220BkWyFIZzVCoRzKFZayPCfQPdPCHKxCC0Wzyt9pV41jVsVtk5T9H8RodG" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "HaUs9XnKgxm4IImmVEWTsQJTffDlMd5lnRGwO39XsnT35fhTLdM54wYbDCohPlC5caB15KQy0Jt5QKYBXLHT9FXM9l3Zzx4LIxENauda5GfVq6pgR69SD6wNkzETYAwy7", + "value": "e9prjv0zqiFPyoNA8jyEYK5Cv342u35Idm1wR1XacuRKSFcSQLwOvBi1xmV1pSBCeC16wY8ItZsdwF6miu2N6kGvGtoYlZssBtq7syHVx20WH6iRBlwzxdW6Gk4UbwmM0MMkclfJnfx4eQNP3kgApcG5oCRz15d1RRl3dsFAzcxNUkuPECi3OQ14tKDuQRnzAADN2aoteNh17DQE" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "extension": [ + { + "value-name": "szWq730KEtWGAk3rOdbzhO3NtqqSR76jzUByPCit572xr5Z8b2zsQC7cUx4Lw2XXXyvM2Gg0Naxe7oeirNK9hRlbgiPFkMuhcS4fyc", + "value": "lmErt3GEmlgnD0JGg1vNd9ivm2rtAvAVJee49UIn8ZLLZuj7nHVsQ5X47gxHD7umeAjfn1Dv0o8RKrZ78MrR" + } + ], + "prot-type": "vqHBQjuNJHTNKeK8B43vUIjFHlD426ZypG1f0n3B5OgH20PDWK0Jskg1xTYrSXZhw1oogjZd7gU18BEXmFyGROAgIyHsnzJTsZ", + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": "rcMaozDrITZtOHk6TkmqSBttBuTYtbFUfrXE0AXAlOW1o87hstzd", + "internal-configuration-and-switch-control": "2GqorgRCVMKmBgebdOpTCqhLqqdLZqIT68hpo12jNExgULr7sIS49aHrAVcsdVdcVvBkwvvb13", + "label": [ + { + "value-name": "8zWZs1k5wGVf3uQDZDx1T0gG9hGN7cV8LRZ6KbbhR6oUsepkKWlvOB4YSKDSWy0zhRx22IbTGzF1O4lqSGVGaZw2B9MpHEZZvoTpZ4ixDPyjTLBDsxcCoIw0SjprXgqlFbKEfV3", + "value": "KCWwny1H5dblWAlOTLfI1yVyJy4Rt8C5CyBZYDzVQChEcCsXfAy90tHJ1EsmM4sgvV7tqGh9jyNn28liITrAe0bgEEuiIWy5KGraeIjpgZNi78sHTTh7Msfi6KBHG1Eiz5tGNE5VDS6CSyjLksL6V0oTKRsjL7Bkc40SBYF6ILJtc26wvRuiSS3CCwNnDpzH" + } + ], + "selected-fc-port": [ + { + "local-id": "o43n3NRh4dp6WUqvGgdWQMF5B6TbL5C99Fx4lgdpuvvipNO531TTFqRgxCsaHWcIuBMPR06dnuwMhcJdduYSUH0jksu1hGCL9os0gyeDUCh4OSh1mfLhXLA96W2nuE0D3sEbSKHNmQR2J0V5fGe4jPdhDgE8UwLPQhTJ1sofi7h17cZeKdbWUodywKyjgj87BTIulYKEX1xW6w2ICdEouSO0umjKGkJ9djDzhf5e9C2f15PviuTMeINIWY", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "ui4Dof9PxoUDxoGEhLuM3QyI48nE4lQzwM4U2dJrCv41LKG3naHj0f1WnoskJaT7XP1R3CixZmyLZ6Ge8nx0DyWSWg4yjXFgFz7I3h7VvxGuEeJMB8N6HBZvK333TBbq2a0Xr7SWEqjaEUPg2CeJ557P1aKUDVcF5cvojndPOw0kiHskbHWgM3YN5IzJwLgtXLKg1XYHlQ1DxuPI3DYPGODEpcfVYngV1042P2JaKCFhYvZ", + "value": "8PRHwmdVysIoPQcQR8Sy2tJMYo3WLUQMBzt7VGUt0uKPlWy44iC6MdSCuNqfzg1aPmaCUW6UrICEEaIAscG6qqIUd11M9VOZhQt4NrY69sCNCcfX" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "doTKjaidc25Effu2No3VMAscTYi0fybkXW486mlbhqPoybqdzm8dOAqzqAAx8DRXzW5xajArJiP9l8nVun0aYqJg0bG1OxYflWFwffPQpF0LFfy1C", + "value": "bsZUBR6hSMGJ22FHqMOfCeMuRrBpseXDyOq9Goi" + } + ], + "logical-termination-point": [ + "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "V3GdEsqxu4GhLxyB1ugsleCNQhi2xfjkaZyGkQdOVU5yjv1k0aNdoh07yi1XpkiscI0wyecl09TjEVww5jJlsCs0MuQcG0wSIwogKAuCJnOgakE7vglXSFP", + "value": "1FIIxeAfLZonrSSb7GraS5hnduc5a1CbzkT6rueclCrMujPtR8DJ6V6jhaprc1DLdoJESXI5zaKVlzpdI2WOPV775oq9p3Mvkw94lSaVUUIflZs3UhRB4RA9f1bxWX2gt3lPVnCP9cXu4pyYyhzC02Mg3XNRMH08KdXyArfJvcdzuDx2VZFV1j3W8IFUpx22KRAcaPVG217wEFqrw5fpo" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "GAgqEOCH3rLdEpIUv7vdxsDYDCPqer6VUflq3P7Z8L4EaMqFTWLiog91TYjZiiUcx7CsWCr4nvBpa15VXQ6e6f7RdrJnBDz0D4szGMw397kb0p7Y7546kbPpuyN54m5Hiy8YcwTlvexwvwmvBqBVBik6J73Fm9eEzmvLLoY8uvE0TSvuaYhM8uKRtFwPOKmfZJ0C7ZKumhm89RCkHUYPgAzJfXrWANb" + ], + "is-internal-port": false, + "role": "j9WqpQspsYmGvUmeBWujmcLKLmD5dNNwWJPdA9CU7RADDOReLep7i2J3gn0u2N0YxP3ZYxTYgltU9c0MqiMIkvDBKDXMrXCQFxPv5AllNO7O10BjifUCCx5f321mSwcpVTM0l8e0OdOHdh1vwN01c5gf09BSFF9tqVlLVzLCFsjSJcogZohclxjlGN5es6HL22oPu2r1uDTdP9lHpCLL146AR4GcafX49dMvf5wJIqXqzi7", + "address": [ + "1GLjsAy5GlrxM3O79DKHk2J0q" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL", + "address": [ + "lp3kLhqlAGICjduHdejFdiFRJwA0kqqxPtJsKaNlIwP1" + ] + } + ], + "supported-link": [ + "9Q4mIfUJk0mLhUvbHEpZXi676WlsqFHrnMO5TAGdt2YKPlVwSkvPutOAi1UIGu1VgP01qyeTB4vqiiWaCjRZEGrWHmwgQybYf4ZxC5i51Nvj5jlAudz9L0Xkeus4UEU9ATH4QZaSFxbKJpc5CLefE4rSyUPsqBt0n2Wd265Hw9j7ywc29rhNvIyVuffUQIUdLJrFHoedxxk5Vx75QgKdRi0lxf8gX2tADU7lblqILLGGaFDSWo5Fy5SY" + ], + "label": [ + { + "value-name": "NbI3h3HkUWtAb4blZg5gdHvkGDjatYI91qcjlLv8zZILVUYUa32nLxHr2StvIbEJtIUPuiX39FG4z", + "value": "QBISYlpxFjh8OZklBN3vuxNrtWZ9SqGI2hsSCR" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "5TW7jhjdjVZI5R7JsrTloxcvAF9TtYnyRjF3A", + "external-managed-uuid": "gLL7tJYskiL5E1CIw4oFQRDdinpXqROyDrF62vrmOcrkeV2K0qiIaNVsachs450HpFFr36ORbf3p3513ojLq7yS9D9CH7CgwaNXdUDW5TZmWWnRcHuCGUuPxwr6v4m162QjWu7Tf673UuM73gJJ26zAC0y7WV02XIdLckwjivmdZ0k3g3Eb15Lv6buU6u" + }, + "fc-port": [ + { + "local-id": "WIRpO5JrBhp1atvCoxONVnf3CMZB26oQGf8ncRON0dO2ybEOJkCwAJzcwyFqw38digAu0g90lQ3UTHAuU40u", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "AGc8muFhCKATcWTk6LFOOrHo2ci64MUEkYFyscQ5WiQ0eBkcmZ03jArlEBjIf6nz420x6Qu28c2eNer15j4oLnJpY30d9nF5hFCnv6hvabJ", + "value": "paRumVT7bup9ppfqMUwVz8aW7jrhua7LdY7zLSyWnXYEm550ZBVqBXmIgNSCPRn2Pvtsf2hCZ79mceebP2BqZP18CLKjC8mjvPDKRUfJ1oX5Cb8jdJBdqul2f5eJ5A2shG51skKmAHr4KAnYbY3ClgwAdKkjceDuMIn727tCGMGqeVgiMjU7zizN" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "nLdYOAs3TYjuyIjcHqq6iDusWlUdKYm7JzXp2pkVnvhNdARN1aTjNfDCAxPkn4jYDgnFFIsU5Kzjcr6dBRog71SHqAUNEdDhu1P1BhWG", + "value": "vZ6OXjhPAyOtqnU0hzEv5OR6DSzMG7G47MSWXaDxIr10PN1YextjlchQ5QDLYbPXXALUKpkkIdkpSloYTJa6WrXTasE0vmPsWAeyRqSsD4Rnq7mbJw9xPYqZiWRNiG769mESEokat4xL3TOMhXj7WBYeyQ2Io1Pxnli2" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "TYZ0BlMkITePeJn1hG7dWpR8bYHmxmhjc8bOuP0cB6UPPhI7PQcM73MjTlFiIOtUWEAquAD5HpMoGnno5z2cuOvn92yRQ1EFG652HA7gZLwy8UWdtYqQEN5NIDxqF35d93fQveYnZvN0hBdKrvs5bySTbhjQkh3ukacPob4gyRgP", + "value": "lrTRUY2sJNv06mlfhPzs1hQ4l6u5ebxADjjp9dJK0eLYsYeKFF4yWMvaLZfZbEzGPS5Z5OJXUmWnc27JH3iwPFGAENsHj1f9Mk0J0BzVYna2p9MYcWu1B2u7HWH1PW2t9259DEWtT6oa7a8jYvdzpzy7nf0cc2yl4Dmz9bV29j4hlcsjHxK76i6tq6yC06PWB3vCeiwoBAxWMZfmxZlvajZAhp4" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "y13tA3acpnzAgnFVYf7" + ], + "is-internal-port": true, + "role": "QP7n5jPt2p3ONTwAcM2BwjeC9wsFycZgT6DQqkjkJe8p0xRcjUFH5Tb6pvMPHL5sKAbaMuuoBuNB1wFcilUo65uoB8daUbvwLGGq22ODwt6qZMCi7wy5uUtX3H7PKulnaTN5NBIb4PB4tee", + "address": [ + "BICnwgEtADh3uoBkikAj10zmitYUxVt8DXv1d2nFxEJ12kdcwOwxO5M6yCS5yd53at5onk3UYMWTZ15vP" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "j3YD8HQJ3ksW3qbwWYSxGJxVutV2hNXsIN5QuN" + ] + } + ], + "sync-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "5tmLcl1vqqaKt1euwbY2tC03osasl4OipaVBvW6Vn8xI9LcFW3IhxIcV2mnfibxHlkaIhgDwh26qOaYCdyUL8YyalWpD7Odl8n3hwzNNBLdhW3U1BGMJwdLR92n8QslRPh8lQO8jzeBnhnpLV3mrg0bp2qqLSLCz2CVKiVW" + ] + } + ], + "supporting-pc": "1p7jMwWzAiSQiV8dlyY5jsFe4sYfnMZpb6APvwo5G9VZ434it2nNuU1qmRxCwwTHvlx0RN5pWSgTOkb9mqWIlP1zzy35XWEshbk0RhiN1yyPTJZ72NInvJO49S16GFqQJKQA10f3zOKkpBrrp9GMKvIUfJSVgjDR3mj5mr0V7KfwmzQDIwplT", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "layer-protocol": [ + { + "local-id": "FUSiZR95mUlOMnoZgsKIyxc2Ik1WSA0yvKImCRjQLwFxU3w2n8KVFWQfhR31rVzOG92a0d0LKxawByyQGjMe7utglpiEkJlSTn2TBVxdsHJVg9MWs", + "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": -28600, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT" + ], + "number-of-available-traffic-classes": -83, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_D_BRIDGE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": false, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": false, + "number-of-available-priorities": 80 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2020-04-26T20:54:55Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -60, + "current-problem-list": [ + { + "sequence-number": -18628, + "timestamp": "2021-07-19T13:56:34Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR", + "problem-name": "6avzh7R2R1rj0MSfgjY5hATU4TqDUNSSXfr6na06bsq3eaanu0sLBlxF6Xb0C3SzibyxdyEg04j7euuIuWl59TDfIG8lJ0MT4krhTXyL1JS75eIA2Vx3G2jpIjCjbg5ftopelPZeyKdEYV61RD4pyfO8yisKzxR2Vg8857mwRz2In8J6DFvbNckluEXV3PPYXXY3XkrOLto8B76eFCisOCFa8vYbkN19DZ4AbvgWYFX" + } + ], + "time-of-latest-change": "2020-05-18T23:25:54Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 30590, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-12-19T16:21:02Z", + "performance-data": { + "es": -1899203607, + "ses": 612335328, + "low-power-idle-receiver-ms": 1011743972, + "low-power-idle-transmitter-ms": 9212026, + "symbol-error-during-carrier": -563377731 + }, + "history-data-id": "bmhROx91G67up3hFAips6AXcpDEotXLxb2oSrpL7nKuNNLkn3BH1bw5AaJYDzJ2KDiC4If45ZyKMb426FJ0Rg5jqHaVgTYSp8nlQCpOCPyo0DqZa2Z", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-11-16T01:04:14Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_MASTER", + "link-is-idle": false, + "eee-is-up": true, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + 122 + ], + "tx-level-cur": 31, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "pmd-kind-cur": "4QBKggm67P52cUJ4Zed1u0NY0PLDcgy869Sei7cpOhs1335UiaVMaBC3qnyCD6KB8vQqu2Pic9bfd8ana59dyLgZ1GBEFe8NJY5dSMn4Wrc1zmoKjxXSa5J3DcIiqIX1y2eqHun", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X", + "pmd-is-up": true, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 1245170398 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X" + ], + "rxlevel-high-threshold": 48, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -1045985849 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "LFZDk712ifjFD0udBApkR4wFO38dPjgBZ76j67doeoWSoi50SmcJiIg6EgbtAk4rraCq9POg6K8m35mNrypJ9FINWTgoddPxfjXh0Dx6gFtbKHY38nMhVu4Jgc7lhOSx7HO7ll6BSzMu8Kxg0jpVGlEWyD9Hr2eqBUpW7vxZWbt5W0dWcDJSYnGo0H6jBcBd", + "speed": "096oz6kKrhykvmo058YkOncnlvZx6cwZdDnMBzp2RPee4Ce1KceqrqOMONcMRIL4d0JOA0RrPXFLATNcX1Dpjr376fUXQxT3yCS0CBrkyYX0JCdyvQXP9TW70I4Q8PMGsEGW7Z8xP6yyID66lWVmHJtHkpqsec8yIGnPFvemtEU4hSaCG5YfGjX0IfsPrsn1", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT3", + "temperature-low-threshold": -124, + "maintenance-timer-range": "qOOJgcKhOkWWgQqJDXu3FJajOwEdz0dRG1AO5c5MwUIEK0ofYSjDttOhRtnqlsh1lJPjNN5bHFPjG5yEPR9ikXsbiPtD9CwuleN01SbAqTT6YrCObDYvsqzL72ggFFDSTiTM3WetP7zGq3uB", + "supported-alarm-list": [ + "kZ8LyTKs21ZHwKsOv6Rrkk9jLPBOb5uv4D8uoTWiMOZiyj63pQmJ2v2OcECnJ7TFC190UXbyDaQbuP6TxtvzQpn330qEZbbB5ctRaEqNH8R3XPOuaj41J" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_NOT_YET_DEFINED", + "rxlevel-low-threshold": 86, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": 832056412, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": false, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": true, + "temperature-high-threshold": -68, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "performance-data": { + "es": 379817146, + "ses": 951577254, + "low-power-idle-receiver-ms": -129394251, + "low-power-idle-transmitter-ms": -1268130297, + "symbol-error-during-carrier": -1300516699 + }, + "timestamp": "2021-04-07T16:27:53Z", + "scanner-id": "1E1ED66OtfCkMzLiDjua1Zwl2UNsgichW6Or4Ufx1SRNj", + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 92 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION" + ], + "maintenance-timer-range": "jkBucoqxnt3p5T7TpZr1C7PQuRZ79C4sXxW1VmzaHuzMnHxFyQGaXn0seSrnuvPjULlIZUSygkcw1JbrsJCp6uJkeaAJxh2s3f", + "supported-alarm-list": [ + "12timFOfhRHJAb0GxKSMUkvsCpMxFWrGQMQ5kwctnTcPW4nuOggBAD34UHBzD38lHYqTvDmKoqAdvXHj5PUykPCeweG19OfIEFC1aYMzpeMU3l592SHmHbA6pgZqWe9BMLCWBgnSu1EymKzou8K3jd9Bt11if2T1FnQhwd107GqtiRKMZmPbzRMVSFdZIYT", + "dJwJOyCV62hoMT2LfJWHAAukgzkYx5dKGKuua6ig0rwEky" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT" + ], + "max-queue-depth": -1397090003 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "16Gn12ec37pnR5F9I0x9a6Rr1y1lrjrsh7Hj2Vv5VVlMSSNsSlC2jltkTmxkGZEXYm809EY4rbJb3wEWJ8YUtk6myEy6Dc4Bq4uAIsw1D7dGwRufZt2kF8GdM6khigLBkf3VHzWcH1S5SfkJIe3fnBs1HEbSUWt73w2KXQOwS", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_AUTO" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV4" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED", + "compressed-header-length": -17230 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -10014949, + "fec-is-avail": false, + "burst-size-max": 3115, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_4" + ], + "egress-shaping-is-avail": true, + "information-rate-max": -425589241, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": 112, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_96" + ], + "burst-size-min": 12156, + "fec-word-size-max": -16787, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 37, + "current-problem-list": [ + { + "sequence-number": 356, + "problem-name": "6lYClWyaVDA47x86IAVDa7FwTNs3dpBjKsVYom8bZAfZZf5HQSdSZSoLyROL8i4LKZJ0dJb5bi4ax9Sf258TPown7d0gv417WCZ9l2ewkayJkqZen7Z5vwkDJlL6pE5dg4ntY", + "timestamp": "2021-09-23T18:47:59Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "time-of-latest-change": "2020-04-10T09:38:39Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 9956, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-11-01T17:28:21Z", + "suspect-interval-flag": false, + "history-data-id": "EERRlD2JUQ5fVoekTqxyFAuu4hzpMMmqie9DJ4evMbLzzZTlhjTWLfiPxS6jwtBGzCbaypGksjU2iFnzQ8nBoFjNpp6NSztj3EuCVaWotQiDox4eFrQ3Y1IgqGVjfhCjV6VJ8J7tsh6QOaWttEpkF7A6GnhVET6sSTbSvamXrkF7vBsQgRaVRC1p0acE4j6O49yzbUoC73BCF4kNNnIwZCVRM8oIjmonwPPHBdcIhNcO", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "max-queue-length": 1672546876, + "avg-queue-length": 146235118 + } + ], + "fec-uncorrectable-blocks": -484204115, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 278799882, + "tx-ethernet-bytes-max-s": 272076442, + "time-period": -648422975 + } + } + ], + "time-of-latest-change": "2020-04-02T20:29:54Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2021-08-30T08:38:23Z", + "scanner-id": "S71XlhTAKJVtTzSNhAxdyh1AwcX87FvRFwHSNsspcfS5PCKYdacDr5dPh3XgIs0fYH7D9r2dHMbooVmt5q6wvc", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "max-queue-length": -324474525, + "avg-queue-length": 111866342 + } + ], + "fec-uncorrectable-blocks": 1863944982, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 2050244100, + "tx-ethernet-bytes-max-s": -1617169319, + "time-period": -1408833637 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 21 + }, + "ethernet-container-status": { + "timestamp": "2020-02-28T06:24:55Z", + "last-10-sec-data-output-rate": -332911459, + "bundling-is-up": false, + "total-bytes-output": "2930571799355127808", + "total-bytes-input": "4983356685064134656", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 165251308, + "forwarded-bytes-output": "6400888827630128128", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "6073188603818711040", + "remote-site-is-faulty": false + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": true, + "segment-status-list": [ + { + "segment-status-type-id": -8002, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-08-22T05:39:34Z", + "history-data-id": "bm3s0goj5220HTHpUK671TFoGcVYl5OxkJRcS8vXaxQRix8596", + "performance-data": { + "rx-level-avg": -102, + "es": -687179831, + "unavailability": -1615913281, + "cses": -1307026209, + "ses": 2003629102, + "rx-level-min": 67, + "time-period": 1740626670, + "rx-level-max": 68 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": -3805, + "time-of-latest-change": "2021-07-19T02:23:12Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -18005, + "problem-name": "MJFc2Bc4PEpUYyO1hPPdQW2b0xWOcN4ZoJ3qdfn2UEOKcuDubsH2gK5g91WlG1cWCgePvBJh7x1k2wO5Yn7eZ4n0Xbmv4yjHOyoc18t9xntrT9xKowYoBdoqpCWl3f2RFj3HjpIQM3aF4Hhsd8IGl77CBVYE2So", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-01-04T05:26:03Z" + } + ], + "number-of-current-problems": -2, + "time-of-latest-change": "2022-02-10T05:23:53Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "31wKebOzx5zfoavvnYEIJcn3poMx6YX9ZlLewAFVxe2VhpjEoXmZ9J2qZOP6EF7E0TKxtpk0wnONM7r2WF16h4o8K6ehLmVL7xaAOvskK87wfqr4Ys2foqn1wuihI5VPC5pqsJDcSCBZ323Tu58LwnMUR44z9ZgL4F3phGB9jc0ee47B97mxu0se4oFdnWQjt", + "tdm-segment-size": -947022613, + "max-number-of-segments-reservable": 27 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "AcLLoMZvQY6RXkpjkJxg75tm1jFu4g7wsShQw8deYb6VnvfH6EXdJizKt67ym64GYepnmCBdOH8b4fLaUAfDLGgeNnE1tJIjP7G3BaghRptOE6Qyy64jEkyjH" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": true, + "timestamp": "2020-12-28T04:23:24Z", + "performance-data": { + "rx-level-avg": 15, + "es": 2108120248, + "unavailability": -1584276351, + "cses": 751353374, + "ses": 692341484, + "rx-level-min": 77, + "time-period": -256906741, + "rx-level-max": 59 + }, + "scanner-id": "N0HhBufgo0E63XfqG6v2SK4Qyo9zPa9uaIEDcTTBLpzPfH7NFCPqeU8MahlZjnml50ZaLKLp2cehLl4jPLJ3FRPP12H", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 113 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "cHTL7ozE0JK09RK7tT6PsrL9MFl3lSTqzFby3Cc3eOVnxxv0qBQTVt2H9fCmZoMq3XZ6Ab1O0W3plyqMa8x5trEuy9RyxDYstXq31rJTfMiAdAefALc44QyDZpboV1QoZgjSzULGyV9Lwn061c25VBIMSTbNVT3M2mEBghaPcjsAytzzxBFs4ffX1iCW3yA5U6z3fJKr2cUsxt254zp", + "value": "OwYPOsDS0dPNboIq7sK1wEu47o13Xi4LPUBvf6f7k5UnluOlWyml4Ihb6a6Vsbz9X2xc8EksB6QXBwip4wK071b5b91wkAFaC4mKJy5kxN90jrpfY2f53i27r3vEv2O772KQBP28uc8FDpUtr1qnbt" + } + ], + "configured-client-capacity": "YY5cUmv3bPT2IJ06AytbQMauuy76qylooitiFYeQF7TfILljjHu9lwvHWCOn21Djk6BZXPPuOAKpdXAww4xRt3zpxfEsgaLA8ezXWhsCJ41X1BlqyThTOIadXPFeZiGZxgXlphX8lZXesjE0cOLSwW5mLDACV8tkoqFFHvOUuD1OWxH0lsSKoY61tyvgGZtXh0CZviLZWEGScnLpPD", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": -43604853, + "last-10-sec-data-output-rate": -1635441903, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -1594853201, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "F7WteV1Bz0iRfCSyB3B7dkE09QWzdfwSekds764G7epeQ9Nj5gjiAPiKx7bKmHvATIUSPQrW4Q2NSPYX597GYqivxtgL3LdOl7HaY8YUQ1zAIypGz", + "fixed-ip-v-4-address-prefix-length": -4, + "fixed-default-gateway-ip-v-4-address": "yXoVmR37MOct2ja49a3WSWvtwVScvpiVeGQAqUzcALFCX" + } + ], + "broadcast-packets-output": -1137946139, + "dropped-packets-input": 227532694, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE", + "dropped-packets-output": -1648209419, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "YJCUCqi5W5P1s7jnd06Oq0fusT2XQBwOl0BXqLUeQBfjIryWrECJwJ5ZC7OkJk1WkCTCfFQ586gRxPFQt9r0KwRnwxz7JA334OxjlnptlFcSmRAQS1IDqrSWYrVzUYuYE1iZozsK6FutoXb9QTMgcw42PZBJP5At6SkmjNYhstKIiVR8GvhK1lMJdfsUc2gaMA", + "neighbor-ip-v-4-address-list": "XnnfHQRq0F99dFqYGDChQSKDWET7jlw8JTniC7ACMKLZp3XXHsfpcR28nNfy9DHKxW213vDPfhPwkEt16ArirtrP9yficW2BTWCWrfEGwl4RZyK68bgsxz9G0oYclSF6OhUgoyONTTwLjgJjsZLRrUxrbnvwfau3robHPSuAD0dWhWfBO1sfNRyYe3mldQgw7kdOcIgPAuDJqSk6LElrnThBOEO1m5plpD9t", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC" + } + ], + "timestamp": "2021-08-03T04:01:32Z", + "forwarded-data-volume-output": -1745418425, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": 217369930, + "last-10-sec-packet-output-rate": 1219610574, + "vpn-binding-is-up": false, + "multicast-packets-output": -305538197, + "broadcast-packets-input": -127438211, + "last-10-sec-data-input-rate": -1989365709, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_DOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 2088942270, + "data-volume-input": -1377573089, + "data-volume-output": 1134446242, + "fragmented-packets-input": 650999404, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 803712852 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-09-04T23:21:02Z", + "number-of-current-problems": 123, + "current-problem-list": [ + { + "sequence-number": -4287, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NON-ALARMED", + "problem-name": "K7zUNlHcpfNIy37azp3ynBtnneNuvHD8H4UuhuyHJlh9hojIFmg3XBqcP5HdFclmh7QqBg7kBhtKxE", + "timestamp": "2020-11-09T16:43:37Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -28986, + "statistics-is-avail": true, + "supported-alarm-list": [ + "QvBgKx5oLOhdRtJFpPlgc2IP5", + "qdIh1qNuHp1EOEkXR4jsJAi4QmZq44jmaTEbcjyLIrpo6KePOxip7slPOkfKpq7zjLCvWa8wCyVAa1pQyHfx1AmQNtA4TzD4c7A8aIFE8seatv" + ], + "information-rate-min": -1926009805, + "maximum-number-of-ip-v-4-addresses": -3795, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "dH06HqeWEFcv44dUtWwG47ktV071O5nTEnSmO6akMnHIrUuMI1kM0F8WFfPlcc6QsY485fsJC1jVONHwGUbHzjv6ykjCppsRgxZdEjWgk7b0UKptEAa5LF3bReNgEfZMEYZi9Vqu2tmOeLhKljI6QL9I0WQw4QaIG9TQWjcQNyETkOvxZdwQRFqJC87GQhgxq1felj40RAL3ogtgmZ65woO0wNyn4PMmQTA3cwV36GZnPsD3jJ8P", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": false, + "information-rate-max": -1696738963, + "burst-size-min": -28000, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": 19473, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": -6698, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_PERMENANTLY_TERMINATED", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -1136700123, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-02-04T22:20:59Z", + "multicast-frames-input": 490824476, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -1325684957, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 1062073786, + "dropped-frames-output": -1986825433, + "statistics-is-up": true, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP", + "last-10-sec-frame-input-rate": 1799824270, + "errored-frames-input": 1572094918, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "mac-address-cur": "KN3l7dL6kf1Z476r7br2g57nwuBV0sVL7Q6e3KdgRe7Vm6nlhGnxMuUiYn5ZP1COJAVFc8V3e2RA06ViMaPyECJvZOmHHYnrqi6viTqxN97OfV625NACpb7h0tQHj50Bo", + "broadcast-frames-output": 2051481008, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -656341435, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1445272527, + "dropped-frames-input": 612842746 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2" + ], + "admin-shut-down-is-avail": true, + "maximum-frame-size-min": 9571, + "loop-detection-is-avail": true, + "performance-monitoring-is-avail": false, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "ukiMglDNFKBKrBlg3oWbR7TBmR2XS5Yfp91FmEl2gOMIq0YtoMx7MqB89vY1BOg0XaykOLm5z0FZ0DlgqSocaZcjmacX", + "supported-alarm-list": [ + "0O0en9aGZEJVkbl1J6620Gy6bITFKu2KaUQp305UFOHZS3TB1Zv2x40IMTfwf99h3ZHY0MLxtsolnhOp9kjGgjh24wrbGskJj1AbGlI1F7e3g2kpev6uOnpKLINj273l1vxHQfIveWqvQKUX70jVfIx1ikckk7GlCd2skC", + "QWvo8b1m8AnNsnrFEJxUVHL707a459xNX23Y64kewz2YXtvt42fZB0YtZ0yW1XJZSMXYQ9cnJedyzJTDD8u70lAZl8Wn6xeQk3O2c0hN7ndG66cB6GI61bYfjMChjI7vLNqPGHDN4Ql2PxwVeeU7pSmBwQKPyKdbxD15cEShmebbLHZRWTZdDdG94rQu33GsyHyLdq2zw5DiNC1B" + ], + "hardware-mac-address": "nT8dMpm9LcLa0fSrwKWWJ6QAS0F5AikY4k3QKpRvuuxmKpN82J4LINmANTxo3Je7V9PFzy233shFJ5NLGJxgoLIcw7szQGzEPgbgPebKythhqW3Yxs7W5P8BXA2F", + "maximum-frame-size-max": -12535, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 10615, + "time-of-latest-change": "2021-02-23T05:20:21Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-11-15T09:26:54Z", + "performance-data": { + "mac-pause-frames-ingress": 771263886, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 2084459052, + "mac-pause-frames-egress": -1729237241, + "mac-control-frames-egress": -194471181, + "oversized-frames-ingress": 1173737042, + "undersized-frames-ingress": -598203035, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 819527106, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "nVb1M5BYAG1TVxZAhl1ma8kvxRFT0qgn", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-01-11T11:58:04Z", + "current-problem-list": [ + { + "sequence-number": 29169, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR", + "problem-name": "ksWWIMUpEbu3KzoyrHgpNqQ3UpI8iX4viSj0wdh2pM51dtrF2H4I7MLU3mUmjQRBA2C7fT9wxfxLIYqDxmlx06j4sdiE41fE3JLavNzU26FCXXfmbAT4z401iixmbNS6owgLjPGdOdPD35RexDiYHiSZspdD46BtuS6NzM0f0HK3Eu947s2OCUG5cLAgJcBdWISn", + "timestamp": "2021-11-03T06:04:43Z" + } + ], + "number-of-current-problems": -37 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 66, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2020-11-14T04:45:33Z", + "performance-data": { + "mac-pause-frames-ingress": -374429621, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 908050256, + "mac-pause-frames-egress": -203405529, + "mac-control-frames-egress": -177261781, + "oversized-frames-ingress": 1518539442, + "undersized-frames-ingress": 1116972284, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1805094008, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "vq202xeuFwlgXnRIkgX45i7N5b7WZFJu5Lm7bBuQZPYW4PwpXll2vkQAwXovCZZzDezOH3wGKuuOkS59dqcJL2b9RsEmrvN4JmSihgYTLkAX4F6iYiTBcWKWogiQL5MnkxFtNwnyIXnNuu5kMQVRExN3NXLzUpO6WtAKRXaAUyngUkBy2opGW4BJ1eaOEYUAkuc3" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2021-05-30T01:59:34Z", + "performance-data": { + "cses": 1885441698, + "es": 989850976, + "rx-level-max": 28, + "ses": 1421702006, + "rx-level-min": -89, + "rx-level-avg": 2, + "time-period": -1612703093, + "unavailability": 1025295318 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "OonN29Ik9oRQjJLVmA35BeKfCzDwrXEfd138bDsk1j3k2O8ho3eShY7LxC9YrN6xO1FZE7cxifRd3RmkUA43q3OPxXFRCLorE3ii2uPcJzhFivR55N8nQP4fEK6hnuA2pScjf2oQtxnL3eQ01" + } + ], + "number-of-current-performance-sets": -99 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-01-26T16:14:42Z", + "performance-data": { + "cses": 382276978, + "es": -1643077175, + "rx-level-max": 13, + "ses": 1873004972, + "rx-level-min": 105, + "rx-level-avg": 109, + "time-period": 631659858, + "unavailability": -447320815 + }, + "history-data-id": "VmJGyVV", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-03-02T16:49:53Z", + "number-of-historical-performance-sets": -30393 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": 19082, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "0ZDIskLAOXAlsZ7Or86Obr2OQTOKMLvNC9n4l8w2X6nq5v6ovc4HE6nmZb6MOtrqCOmQPSSMQf4OCac8fhPTfc7fn5T4ycu3SJTHtLmkSq0vtcDIlktBwAQLFBP5Nc8FV1fgMBsxTs2eFxO0J9t7JbSg" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 25040, + "problem-name": "56ROxdGN2NLhBKoVeB1012tzqT4fDb6JhQpO36uXL7ffKvaQ64RZ6kzo6vEJGCkQsCwnA0ld0ssKXDsWHjVFEm3CSHdqcygE2N2CFfPFHihwNKsuVo1rK43uMhVYHbuJQolwD23ckdJ7PbtKruc4z7ydol35ppOfO1Lj4HwgU7oJiJlC6xGFF6KVkFTJ4zYKBC4xjsN5z3GJN1lTrTqYS2TcHEVDeToPnkeyM1Dd5bWSdiDw33uV5f7MUUh0GF", + "timestamp": "2020-04-16T14:40:45Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2020-11-26T05:04:06Z", + "number-of-current-problems": -68 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "2AUwQ7V0L7K60DmUoXPV2aDL5LUJzf9CHV8p2VqO22MUF8P3XwZZGuCEfpnOEpidkqCndU38WP2BYRxNooNWKhAZGYFcfYpzgUOmOJuLzwepgD4E1RsL93CHTaU80bz85guUZYxqn", + "value": "HDhM9iDBWEEqmps8xkjZtpfPb6OIx3leGC0PNwqB251gmmoUGIL9ZSZaYFKnI5CgAu5fSvQNsR3P5kBM2eVT6MV4jFsTCW94i6j3C9QWTTLY5eK7sySycNvokP9XDjTVpdYTeGQ7st6xAIx28ptl5QBpFKei305ldW6rCWrWipuS71M8i7tfX4xCGLMCLKXQGVaaKB720tM7my" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": [ + "77WFv5euybLyNC46gVUUBE6YpoGVpMoxLd4gaiCItgg9Sc7081VBFTsXh0SHM86pdaynta5Wqe5bqcbq562DSmA1mkA0sGpyRPVc0T8i76lpaxIgvCTfYlhkFRcZqBxhjltbettdrHCC6kSBWDJMY0YvJam9EUiXfD8l7tyy" + ], + "fc-blocks-signal-to-lp": "2gnMKbptYflOC4ZZ6DLoA02Ad13LreVuuag6eyz", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 113, + "current-problem-list": [ + { + "sequence-number": -22022, + "timestamp": "2021-02-07T01:36:23Z", + "problem-name": "nPR0MXCeKcKoBaLvJKrceOow9myr9NDwump8k1n4dZkO25bLICXWiekjATCKyf83Bx3NyiJDi3rk1CXJ6Mxg0JztC3d3idYML1zbkbPue8O7DDIJp70iRrLlvQoF3mrGgTKA4r4azKa4fSOE0GORZrcmht2dPlT56vx2Wtdodnss78Z7OFQG732ooWt", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2021-04-19T23:58:03Z" + }, + "air-interface-status": { + "xpd-cur": -55, + "transmission-mode-cur": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ", + "rf-temp-cur": -50, + "mimo-is-up": false, + "tx-level-cur": -36, + "local-end-point-id": "6B55w0dKeHHV1N9jEiVrvJ5Gk14sj3uqwzv3zANOimBj1LDG3q7q94Yl53FoY9OvIcqiM5YWkzglcL18b0yc4px1sdqim6NXa5fPb5LvwTQJESRHShTPGrQ0w8bKfYHhWO67TKuqDc1a4SJP1Dw", + "rx-level-cur": -80, + "link-is-up": true, + "performance-monitoring-is-up": true, + "xpic-is-up": false, + "remote-end-point-id": "WmAsvL4CCMTqASxmCTM75N92xTJyof8kBBE6eIAIuu8XmxjQqXXwKZq9S9HgoIsRb6QpGq03U808ybQY8GmKFMTpVsFb2Z3d5TvDbvGYvG63RP2ZvgBaVuzIX6UZ5P52AAxL5eJAUIwEpqvUG7WBtnc", + "received-radio-signal-id": { + "numeric-radio-signal-id": 48238, + "alphanumeric-radio-signal-id": "QZlSog54NYbm8ymAPCA6dNjmW4gmK4AA4Vks4qoRgz5o0rRH4rFh7Yv3UDhFIR7MFs6BKnk0OpgOQ7wMrbVy2itWWCtEmBi1VguFDOFk5V8NVwAmInUCGfqCRU8dni6aqAP4gmglho14VBqvQc7wrp0bb0oqinAJPpF6LVjVbkZYNitEus2OK3ZV3fmeCWPkemqZ9BMcWM" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": -693301319, + "rx-frequency-cur": 447835360, + "atpc-is-up": false, + "radio-power-is-up": true, + "snir-cur": -31, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": true + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-11-06T23:11:05Z", + "performance-data": { + "snir-max": 48, + "unavailability": -237694699, + "rx-level-max": 43, + "xpd-max": 9, + "ses": -1486233999, + "rf-temp-max": -25, + "tx-level-max": -27, + "es": 1629735292, + "tx-level-min": 103, + "tx-level-avg": 24, + "snir-min": -32, + "snir-avg": 48, + "time-period": 1610285162, + "cses": 644107524, + "defect-blocks-sum": -18622, + "rx-level-min": -32, + "rx-level-avg": 58, + "rf-temp-min": -48, + "rf-temp-avg": 32, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 105, + "transmission-mode": "zrO1Svqm06ftOxXeTTC875uGzl7JlSPVcwWW1faTdpf1O4fAYKIXPdEgqLRLvHGH5vv6CFSP57QL3Yl1I4Zp9vFzgokLXTl2o", + "time": -1499748813 + } + ], + "xpd-min": 77, + "xpd-avg": 19 + }, + "suspect-interval-flag": false, + "history-data-id": "fCuYMYVG49YEOeWQ9miszdIywWuUNfnUJRTvHO3LP1hv7em9swt1J3AgZWaM3pyN8riP7esP7JkfPygh5JbOMDWDzYhDnPqv9Ak8OMXWoa3dIjnNUyuybibChk7E9x2i0mrG1gCpqx" + } + ], + "number-of-historical-performance-sets": -30491, + "time-of-latest-change": "2021-03-18T09:57:08Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": true, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": -1953753257, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "U05F2cM22PEPAjNElWdB0Hajqy2sRwnMwkryx5", + "rU78miO1DC6eDGoO6OQyGfVkL8DcFINYuM7Q4VJIpIW2odRm1zVzOITsQoEn6jms5lb98UJxuGASLjfEK26rCZTtgpImI4HFhSOpMqX96p1JA8nk2tLFlw0BVIPvNwa4gRm3hb4fA5Ya6dm8z8NMENfsw4Xbt87JZtE8EIn6Gd8MqvUZDAD9nSBLXzWizWTqhyyO8VUO83sqqfiVPV44OyIDZwVysGYK6wqfjkVr", + "vPJVv64AMYpx3W4eF4WbriTyei5FPWNcDpZ8nVBaT0HOOLVtHRF11qz7AxNhtsu7Rl7fhIh2BQJ", + "JfsiYsS0qc4kEqbemBxJhpE4mYJ4B4QckauaDe33j7fXxq3UTBvaS2f70QbBUTN6499HgcCzjRoQ9rC", + "gRxv1scXp8LXQgWn3mHJcjQIJ5T4Scb83JD53HUsQFpyVdVYzDzLWplym6ufiFnegTbcA5EiCW", + "tELanibgIDni22zvvVumhutq4KsxAbP3PA64S9ksEICGC347Zym8UPyZsSwU4lQLNWQxX2ZCCtifxmmoNAoHqOyKG5ECiuoYi6v80nKDQUSf96vWHTvZHWJgTnS3K812ex2fMMSuzCKII7wh1TgAPZQIfJMZRNTYcW5QAXl9rXJ14fj59zyQrozG7dxRSiPX6UNzJ0IaXkb2zuZAWprnOS3N5sEPCt", + "p9EfB9OeYeswAy0PRx55GYgSqlwBXskeuYtX8hb6vvuY4uFVTKSzA0rTlQmaaGoEERBE0FCoa6m6s1TmELN6LfRY5d07TgMq7f40MzoXFKV0DPe9s18e8Z4555dQlZgl6dlTMBIjdDjQkpSNrSTzJXxO2KFgBNtH0OsEh2Yuy9cSz4F0WqryoYmiATqbzTLzz56Q84kGdxqEt6wioY" + ], + "tx-frequency-max": 1204202128, + "maintenance-timer-range": "a4f3hir8bjwW0ZGq5tVxaTVQnsThiczt9Owq6Qyh9452VLs17fyh8u0oOTF76eAf26F1O6aY2gSY1kZ0zxiATiYIbvH9B9ov7WwW2zM4PE2IYTJpjTRcbPMectoNCMjKIHyCgkHXYByOv95O2XS5EFjR0HwvmP74pFzxZ", + "transmission-mode-list": [ + { + "transmission-mode-name": "zrO1Svqm06ftOxXeTTC875uGzl7JlSPVcwWW1faTdpf1O4fAYKIXPdEgqLRLvHGH5vv6CFSP57QL3Yl1I4Zp9vFzgokLXTl2o", + "transmission-mode-rank": 1214431460, + "supported-as-fixed-configuration": true, + "am-upshift-level": -74, + "tx-power-min": 42, + "am-downshift-level": 21, + "symbol-rate-reduction-factor": 108, + "channel-bandwidth": -1512128261, + "xpic-is-avail": true, + "code-rate": -56, + "tx-power-max": -112, + "rx-threshold": 23647, + "modulation-scheme": 24834 + } + ], + "encryption-is-avail": false, + "duplex-distance-list": [ + 2032358750 + ], + "atpc-range": 28, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": 1091052472, + "rx-frequency-min": 693147400, + "type-of-equipment": "AaQmYKidi42Xg2ei6UG0Exivxnba3blvlbJcNTp5Xr26m8osV4szuC51Zg32koqFs1JfV8lKsfQOoegbbBKxdHq5Qt7aKpPcrrrmzE6TUPzaVQl6jXvoFVtvhtx1Se5bFop73o0PdAZ0ic7t9uRGil3zGAsqPpCuN1BIhuxm4onesmHCQ", + "atpc-is-avail": false, + "supported-radio-signal-id-length": 15620 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -19, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-12-03T15:57:30Z", + "scanner-id": "WRSfqWDf6gwI8W30VbJzjm8HgEGnjNFfEpmWmRbs7H2gw58j8RSj610mFzJYeg6SFkGTcRdjqfrWcAfdj0wh1pvyY6ocmmWUHCNTl14L8oAdQPq1HOjI5O83Nx71TVVspBdKCiwCy6PoN7pnOI5Tp6X4DW5oS1R", + "performance-data": { + "snir-max": -92, + "unavailability": -55550539, + "rx-level-max": -55, + "xpd-max": -110, + "ses": 444716614, + "rf-temp-max": 9, + "tx-level-max": 15, + "es": -972050269, + "tx-level-min": 106, + "tx-level-avg": 44, + "snir-min": 7, + "snir-avg": 72, + "time-period": 242728510, + "cses": 1954225160, + "defect-blocks-sum": 8858, + "rx-level-min": -91, + "rx-level-avg": 20, + "rf-temp-min": -26, + "rf-temp-avg": 38, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -74, + "transmission-mode": "kowKc", + "time": 277906614 + } + ], + "xpd-min": 27, + "xpd-avg": -77 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "wGAMvwj05WMHAwwq4rA7b3e53zR3ViarQD5l1ol6d0NNoj5tLyAOBGUFfDI2VStDnzZpPcv2cjPBCVWflw4W4YBjtblpWG2j7TIX6eZaxHD1uzhPXdL13fcwqpNm6IGdBgazu2CTJfNdP42E9FGcUSIlaozg67lzow1KqDE9Sjezfg6oVMAIwa3GyCOwKa", + "value": "0y7KYKg7uzlWOt2cgGE" + } + ], + "is-protection-lock-out": false, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-configuration": { + "maintenance-timer": -511220063, + "problem-kind-severity-list": [ + { + "problem-kind-name": "rr9Nl1HYCRP69M6EwaGJih2HDuFcVPpngz2tsJj4s12BN9gcbOVl5Q2AkzN7o4mxvo0X7cTrdW30Xb40R0mOIgh2Q4160oDwEwlEI75VV0NS3KSUK6Jkn0edWfbWvHkadyGNxL", + "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED" + }, + { + "problem-kind-name": "EfcHZ4CBbdVyd9D1hOXMnaOAAuf78PzM5LlWHXyKalafvNgMu6qR8fkIJrPJhgveTR2sGsdJOfYb37Ppdf8lmk36M", + "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "segment-number": -22652, + "performance-monitoring-is-on": true, + "interface-is-on": false, + "loop-back-kind-on": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "interface-name": "qRNPe0d2obEB2KQPE7jjXHy7HNHfrlkJ47zi0MdoYRRSBzz7zSqwsQw9w5hXqBGvB7NBM0RKKJula3lJWL8guEp0JGX1ivoLv4mhW5TGOfUZifI6SQmmmEm5kbZuznf4jtdgz6WfdQevXPuQxI4UmjRzmI3VYbRhEWxdUmt74zv2gZKOzGAWZjvmUq9SB19gPzlKVGRZ8mTodv4NcwB3QYpCozu0sv894lTR2DJaZuq50vK41l7Jjxlz" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": true, + "performance-data": "hbbQ0FCnbgPvMsdTt4gFZFzuDyHmnZdFagn2NZpZ87uUzIF2EWzwB007yAlOrytBHQEuI3tI2QuBqaDW64sz5lGDN1jesMH9vdv59ZNbHhN7ri3pnoZsBxXgrhmTV3Uq9pnigalXk0WLjS3y820BrPRS6dD28xkhPIr5KNV4NJIYtLwBFoc6eVRc8u69UrqJ1SGDxBIc", + "timestamp": "2020-09-22T04:07:51Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "HaA6mycapoiMvrGOKhPuXk1r25EkgkfQuPOJg0Txg3jLnRz78gt6Bmxvr3IAnXqKF6lNY6ke9ESwnjvwsYC3k1qE40ejYw3vCgasmuGw0qUoKiUc8o7thp7lqdEgJADdINF5hdtiEfygxssGIr1ZQ0c8dQoWi111OGYYTr8xGGN607MIqNz9FLhStGGMzHFgnv68OeGmUlsUt6uTT32qOci9KQVjpsrMPxVDLt0xOsj9zNVkIPLo1VyDEl" + } + ], + "number-of-current-performance-sets": -81 + }, + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 1383, + "time-of-latest-change": "2021-06-06T08:12:12Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-06-13T18:54:30Z", + "suspect-interval-flag": false, + "history-data-id": "ZElaGMYt7yiKPcxnPbAE7gNPEBkFUaGTOT4mGUPFk0h9cOoTSZqZ", + "performance-data": "gIvOv1r" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": -17194, + "problem-name": "W35uwa5cq4nlbcCgjKBGXwEBglw0qxDesIJYLO2bKpwNB03VKEtz27aisyaT5NZqoAg9hjc1IIHcIKZkhsMjzWuTvEEssEKIe1Rvk3pU", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING", + "timestamp": "2022-01-09T13:56:48Z" + } + ], + "time-of-latest-change": "2021-11-23T02:18:30Z", + "number-of-current-problems": 84 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_TESTING", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NONE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "LfpM9g2KOmB1rzeL1a", + "tdm-container-size": 1471927946 + } + ], + "supported-alarm-list": [ + "a2maocT05ELsuWS3oAeThg2QIwD5YzK9u6jSa4S7JvAdjs8AUet3uwT4Uo9TYT2sSdk2a42TrCYL47lQlGTIcMM7aWS0PMszZEu1IwU20LN4S0M5GFNTjsStoCu5oOFft1h3", + "35pOSlyS7wzMbk5D4q1yM7WBE34xcZW85lWPGnINT9r4loAhOtPtsD46y0vLRrTWEHMc4mZPniMAGmRnPGIabE8JwEmnXfcCPYOTcGBrQn1pBSMiqmst0Bcw7zT4G5GvVnhZVSqL7jaA3OSladOaG1yNssR8pqwdNNcAxvlwOo6KcQ5fVUpBNYofi8fzyL" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "pD8Ag3jhC4p2IqiKa7ZM0qde36gaIYP8tXICTTTvYaxyAIbDHahHsuNvA4" + } + }, + "address": [ + "UTW" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "TWx1uu9t00U9ylZENl8Viz4WxhI811kUP", + "value": "NkdXF6Pz7nV61Aj1nBArq0J00K1kwJ4bV98AfY2n" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "Wp4vx3yhwzXUG5V4p13jDdoKr5q7qsqmRuSgxix4SmQqsDmREp2hvjTOocVOEeanIUw8d3c5iUnCxJlb1okwHdk5p7TVlVb4QHcVCgSM2fozYKCZ0Wvz1HEjPp62ch62QaPliH7kWwTN8nM0bazdR5oymuByEztuKiP20PfOd8BlwgdHiMM1R2Adx3D3C6xehf994oX9oruMzHmRl8S4bshAnUD0T26a9fj5v8eUzIG0h2Ru3Ky64PGsCb", + "value": "ndqxnyIs3QHPihoiriaVlMujQbRiF2C28Vrvt1PwSwe2GCk7UmU88orRsj17dE2lrlQUnGif4w9C8tJ3IwbIUuzeNBe17" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "local-id": "892Jl6t829dPC3JVqIAKiiK9HJgrlHWuRY544z56AiOclp8DZAfaSZjrBzSW9GqSEwWB51zxbfKwEK1wkgG5gZwRqhFzX6ruCg5z", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "XlfpF8MgB5GBGHBiANOjJ06T0H0YJfcyBjXgrJo2G5vnEYF6Mmqnew8e515OghmRsbZTMoOtljQRanXWJfbXMc4Jd9ytiMlKYkvCAj5VvNEFbCtUREKvQOf3PFp7jKR9WeMxyRk3FZAIt3CkzeIi2XdJuCQNezXbOJAesM97DJH6Ecj5q1nlQt4k5N7cm4n2FPg8Bh770P5w", + "value": "oCjhZE7sJjqojCKfRFVGN395285JeuKC64U5ATqb5IzoccD3RyBEtCBoLz7Z3KB9Gn6g9ose6TCi5fdOGOl1" + } + ], + "transfer-capacity-pac": "wgccNoVxAFF5vPulGFSPK2VO", + "external-managed-id": { + "manager-identifier": "70IZWQirIeN1jakj5r3dYhMOUmcjH6iO60OURYerc1knbFy96umWL0CGmPR4N2KL2qyLhM4tFpRRWh0ULeRxel5A2OwPQ9tTrTwIxB", + "external-managed-uuid": "cSVVGcNAY1jn7FkAH8YpZ7SKz" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "sYDC5z9ec9ANcijf06Kskp3yi2GFAiCU8fw6OFkSPUGT4Z1X5Lhi" + ] + }, + { + "uuid": "f8aa5a5b-6b21-eecf-5f43-21f52446eae5", + "embedded-clock": [ + { + "local-id": "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa", + "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER", + "phase-aligned-clock": [ + "0b7BoMdU78PGiZPZmPfboWaxHcsgTLSLXZfdEs7LsPjKG8C2PJ56GfDfr5ndI7Yx7dKDxKgSzzufz69pQevot0vU5S7F0YdZ3XuBHKl8jPfKWo9ECw25wpSt9R91Hm0LbmeL6zTho12cp3Q2AKZ61JsbtBcaP5V0r1DyApPZqJ3HNUBnwBlycNJFgNQ5SDYcFBCfSj6i320QWt" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "LYzj2pH3TSv26AOWMhu2Z1QN19zkd4" + ], + "name": [ + { + "value-name": "OXwZJlDKFyfOD2IPV9KRRUPYfSRNDT7rIEirZWbwmjcZlVGgWq7OdOEsHn8ch7EZLOjLCu9YNmY0hw8dX8T2WyuvVuI4CeWf2f0FB2DhothF0qKPqERm4dSRAsWcGSrAZkfAmLRK61h6r1NRxw5BKPlchhoP1Hq0Txs7akJhl0fEU3njrkN3a8fjhv9idraYYu69OPi1IxxusUN", + "value": "7AXhI5AZAB9F2bETGKUmrcg" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "4CWIz2dtLjLzmwynopg1jKrqmUkBv7DAJsaaunv7zgyVE6i3orWHbn7xij0FrD7aX9djpIqYZQLDPWydnmUqKTXUcPrDkzGiATBZBUXsK", + "value": "YzxoEULqcnj19oQATa1rsCk4BOQr8AU62rnGd87pniqwy8Ysi0TLu6HXMpgUZaTTtgsGgrXDBf1anZuGRfjldSjZhzM8CFU5NeE3FBy8Jzi6qEEiUPDZzOZIgDRSaDXXRtSo5qwGRPEhlbz7057sLYa1BTLDwBAf4kD1CaztReCcp4ch9jBM9MGKxrf4UPbR1PSDRk6IyAMPEYYN9Asie82Lr9HmYTdR" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "label": [ + { + "value-name": "JNv4AjYHLNQmKidlUn0Oqwz68tlAxBB9g7dIi3p3I7ptqDGkSG0i5AhdVuNlXhudgHWyCdBklTFLolXgUPqZhzcd3Sy09U6ptUX5ZqhcbXXzaMP4C8VTH8YL0oD1iBiLv7Ivx0HBPxaZbSWF0RrzRhcJGQKQr2uP1ccz4L2TacLm4z1WqkwaCITaqw0KquzszD", + "value": "voVhz72V4BOST1g3DRPN9dFTD2kXBXQ6mDnNDhAzKgjwhArUjgzslfmZhGOKwxIKa6xFf7e0nyoF0Prj6TLj07a9GZT4wBOyzleHkkzHSXeKMy3KjP4jOesm5liBO62gj8XDswddtjX7RTS2AWlg2ND80VBPUD5dDUJ6qWbL70SRTKTtyfKtUfBV" + } + ], + "encapsulated-fc": [ + { + "uuid": "3ca006d3-9173-74c0-06c5-7064cd3d43ff", + "service-priority": "-9223372036854775808", + "supporting-pc": "lbtaEw5Wc8pbMDUl2BPPVT39o4vfOU6a6AcCYhyapPd3t7pnAecwZgxnc2v1PBbN3np1xP4WEh0ZhhmRvrfmHMCLH7MwIPbM5AFChJyNTqNaH114s9r1VVNu2zSCh3gmvWYMxosqH7so8utBDMCqHpNB", + "layer-protocol-name": "mac-fd-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "ebqq50U6fmOCFCyfyQ12mTCEKAHezGkFRK5WCZUKdAeT5F0Dn1xKU2gwCXK4wXJnzHc4yYOMz2xEH", + "value": "95yGHkIPQdEs9ahSqRruVSsJET" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "or2rXB1uAifPJ7H5AZ33XT0QyHiLV9ybAACp3ETDO0sp01mA0qEQjEGJeQm1ZUdrmHIpdtU1uequfN485AYo7w0dmmed9jwn1eNezz83", + "value": "qxV5uVaWLrVhr8vNfIOy6czkRGUqGP66f2cBPexBFlS6lgMAYA95EAhv83OOTMV0GZBwd07TlRRH7D9Y6iVCLc0T8OATAnT9muFrmEcIv4hvzqlxBgamka7sQHli46riA6KXKOx8KOvc6QJH6L3qN3LDK6O" + } + ], + "fc-route": "K2tQ05gY2Ro44gMdc67BnPqfySKE9FLTHeJIkSymJWjF4XS83ZKrH2y7", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": [ + "5NmO8P12vBh9oOpLHFRtSsRjkTh7YDtWiHKqxDkU6BVvil8Z0ZsKjbVvXcCVHYJ0Ftq4ZLR5eMsoZAoRrIBKMwgJBKwiIgagBBkAe3ysQ0RPB7H2HaFtzV42xtkgJvocYIFcMdwu5fbyeStWV8huVewsHIAi5Yu3z17dewHcLSKSDdOqlXU8biBSS3aY2xTtyTGFhfR27BMCPs22qObtY" + ], + "local-id": "OOMOp0ao2m1CP6mYiGoCnhyyO62UVjtC08qp0tN3POxwUTv4zTHO3ffJdhE8tZCt73S8oy35eAC1tZ5UKMBNTQp6737sUJV2EG22650cFCd0tbMdPnTJdiHddGF7qB1W93Rf0RrFlxxOIkTpHE0NOI01gx1G0Uv9QmoQ5IoifN6P7R6Ho7mcHm6XTZwUT1VBfckkUAC1nAQnjW4HViUCES", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "eyR5uQ57fxcpHAjCd57QtOz6uvYiYbG5Jxa5ffcuMgTlQ4P39WUvClBYQshGDXLmmNrB2v5GLR1tVIxXEjs9E37mvoU0dymzlF2g28WNZQ9MqGJ5Z36v7dJuuvvH3R9hpbxrbl7abgPCOyzFCx2BKL", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "CU5BgqLXMmn189AksROyEbTtVU1Z4hjH3gajGO8laomixOv0xbqcnbxa6y22PlJSCU4aIcvKARV8xq05BihQtO1re3u3gdNKZRVz4ikw27wzxoE0GNR2tKtHNXCV3qGU9tu5DGCFN07cpDc5jVZMFtmkiQgd8O8i9unMaRkPSj19Wd6f16UGr81JY9P7PPpYjEClwOag7bpWgv3hBXY25RE" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "OQwgZZZYyt8u96RxZZ9kG6nltt5GDA5kqBsitjg1MgnVfet65CqLIO64h4CMEHYXbr7EKfxpvVkK1NR7hhK0XJW6NyTj8J8j2fXNum4", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "oKb4BilL2dIL9PqAAKIjSTm0I1u45u6t7hxAzLltYW70DxAd9aoU3KUDDoHILN4SWt" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "68AGckPtBS024d16p9VTXmkuQRwrt9osiZ8mbPPMHHGDUAKbJx", + "value": "zTg3JZs2ltrNLiV7tCOfbnNPinrl7YiySqttqNwLhXq" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "extension": [ + { + "value-name": "viIxE0dwwS4vhUFZ4EfaayrKPCYnv88SqQq4IvtenxCEj9vgNCqQbJA0dqfIyntY6LUGgnVDMp9Yqxe59wVkgndlNs4lIpjGa6mqt9", + "value": "8yW6Ytc4vIRHQfUc2f8oXxzDzFRR11M1rA7iWberT58CkVOfaOvZd4uMClDDehEGRDYFO46z97bm2RB4F6VS2pEEC99RiFx2anHYrOqANBOHlpD0nyTiXpWrrYiJvPLG4twv9WYWqMvL48DjGoBvGqW7o7" + } + ], + "prot-type": "QUi00AKkNFlYhkGUWtLzGWO5s5eQU1ZKN9KFJnZw2dnbxV6lgJUXFAU7x0PrTG4HPGeq3eWXjb9Q67bfQX4npQuWQbgKRkjG0x6WDUTWY2EW1PbREfe35A0OL8qCsBak088E32sTW7PQO1Ht8Ow6goM2w4wQFz3FHbbC5wvUDdKj6jM6ZbcgrQaYUyGz7J7HNibSOHEjMovSA9Yzk3HETRuOiafp", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": "Sl3Hasxt69GuQQKXT1L1xPj0E93CSzyKUBr4VYpTZ5oPN0Fy2izr7SrETmgLNOvzhOvcEU5wRldweK483Ez2oSGi7OVUujuL7ZXEM3avgfUu0QC3m3XLWwV3kQPP9bA93qNHlP4B4Y64PAZbEXOAlJvFscmtoPCrfh8AYc3V31RSCRV8GCA1d5yFhV1xCDYRNYjD3ey6gqQK9DSHfsAtp00yV16pFWgkVrXYG", + "internal-configuration-and-switch-control": "WWOMyPhiwxK60160zU2xbzusLhLI7r63fMHNBY5ZnHXnAWg2IazTJVdmcZ4ji3eyHNdbMb21K0plWxfwHOpiKvEOuA0Mvec52qgGtiHdaYqYnFu4mMeYhSMDlMpITuNNUVlf6UkgLLf8iB5EnjCw4h9pVr7GVNtHIGWOBg5eTcmcNrI3LdzPuJ6ha5Y5KjEt0A9tI6HCa3OYno18BsP53Nn", + "label": [ + { + "value-name": "7l2AXIH06uPgSgBRfThZcKsuqQ7HFxBMSvmHe3HkqpAaF31MXaD1U6vcOCTu9v8T0ns6i1qIqSSYWLCLVgMIe9U2LOoUbxF3U7a40sNrdFh9jTUe9yWnHRikxy6I5LDRKFWK8Bbl8smre8GnGuDflVzKlFkjiY22DYMDrQQAac1okzMS4hZh4y2p5mIncLpQB4l3Ucv4got", + "value": "Y7lUol3sL5RJkA6wloeWssReEmiULDnBKBv0WyszwkiIMh6ZxlNZNF5jTf5ETt7v4uwS3Yjrau9WLfVasB17g6i1loGeJFKFa8p56Iwh4x5PETZ7u06CYpDkNbqoR231as6h2uq7TnWxgOwCGvexUSRzV9XMcSFmkDvmZVtSbiirYG4wba3XUMoQWdu85amhNSEFFZxQ9Ha7oeErgzhbmF1i" + } + ], + "selected-fc-port": [ + { + "local-id": "GQTuDlNpItj9", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "AOKNNNP34T9729WepqMfjgTw3a6otgb34NRKsyNxjOElYBrn1e", + "value": "cmnJqyPOTXSX2FGE06jxq7bDXE5cxbHKx4lPu2wg0gdUVLyVRRk9QwNOaS0IVHkkEFa0HGgHWltJ61xQKRZBfMhqwh0jRkEvROnqmE0aRtLYvaG7UFI9kZrI9r20DGnmmKNIgNK0gvYDGwLs3lBnd36mm0eSGte251CmOmmXJcAhAlJDzlTMgR0uReepHtrMmV03he00iAaSOTwn6h1m81J" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "6U", + "value": "JsmdBDx69RuomSLjKINaNeAZyev6cphWJD1k8qih9MxvFiOhTtrGI1x882ecjv020Tm8jFpsjWXQ7D80Zryzl5Hl0OxjbqecjskD7CXjqV9xq9phBPQONq9NeyYpYctaFOFEiCPIpZ8I0xZBfQh28iPmRFDHK7JhNoV5" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "7XoGiHkFClILrADK2NuQH05N962hZD86AwMT57qzk8cLIQnKvSt4KqKUxM3ohcvRI9CG82fs2s6CalfFdICQ8mCx0FWhRj0ssD8BFfVAz1cJnrhs1Taa7Mz7sn", + "value": "jGoL11LCz1x1ArdcGFt0GebIlXispFIBe6mf00Rr1gstzxFfc0gLertrgDLGbthpsvwkvfDovXSXux4zykkED" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "fc-route-feeds-fc-port-egress": [ + "7Vv7cEvdLWk6Wou9RL51MbfUuBiVNrjUnO1zkpN5dZ32npb6398Pcn" + ], + "is-internal-port": true, + "role": "YzxajdJYpveUnO3dgggXU2PoQ7y5ockfLRp5W83lDhfSYj5ezeblgSJYR9V8mfn7YM4VM78hho97z6l0cwlsh4i85e8rl", + "address": [ + "N0CdS6sIfuQyb4pQzYAyIRlYFiRa62MLUgYMeqmuU4250jOA9g8R0mQxEzHCBlowtmaINx4zB6xChd4qtcalySS5rrHVM5jgktQ70UyuSXY1a2rw6BRxlCCN3jIQh1YBmOAfA0BsYzt8tMwrgoQBSsoVEYDVRto6hYlRYWbWnwXIjt9zJ0aBkrpQhUD9o1fxRshIoswLZtlaPuJqmTUzcjhu5VvtOK1G4io" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "TXQgYEeMWThzXhdgPBSc9a0gy7ZbWtDPil58ZcUW53nUkA214MddWdmmllyhG3YQoVYfZK34NrQZ1T0XFdbuqxQLKoUqrK8Py65xQ8uvzkut5mqDzt7RSXvCehUF22nA0s7QstdUGzfLVFgm1neTdBorSa6U5t" + ] + } + ], + "supported-link": [ + "oHBVs4mdC1uRSp" + ], + "label": [ + { + "value-name": "3pdAqa0ZJkzy2M4mVfEGxvZ1qRl1n7EqwJSPTSOC4n2627tXeZvLuvEMeZFC6bUvVNcOF0jKflIhs37G2CjoZX26PHINTCaOhmuPmNrC19TtdS27ndwmbys0g2N1xYPOcjDz74306OtbHni4BGiEfDEnFjo495TmooNnlQnjEJud6MhzlsdA5JPKV5PWaAayQX", + "value": "bFbucMQpLvzkQ1qi617IWcpTmZ3MITATyEgKq62btBojCOBIHIiEMIp0zkNh5n3E1bgk9ivDTTWnzq590gNNY4NpgAzmQuSJF03Gjzj4k8sMqpVqFA5vwTNMlm03QKNnLQ3Whf0ufkgFC359vbF1WkF9yydgi0DVQyR0NKuUWKzyFxIaAf3wzIF7gSnrSSmBq6B6Q50MHsdeZ" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "F58Bmm6acLzA5S", + "external-managed-uuid": "ckykGTVbxyC6Xh" + }, + "fc-port": [ + { + "local-id": "CJo2GFCqrbqSLhycmPNVHYJYp9wtcUkHEIJcfdCGoVyac6eqN2du0WlhXJL2EXJaxkmMxYsVT0X", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "YcfD6s0Yhdg6WT0AQJKfVY1sXlgId5y39NGf", + "value": "yehLmfIfgaXZNcVLdfAynbLlBOugmKgVQxy4N8j3jgUYkHBxP4Xc7AxIg" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "q9i9t7ys7SYF", + "value": "CCOoiUCXEWirK1b1s6rCptXw1pDTfbzRNf7X9CMFyW7bX" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "YuwfpmEYqj6BmhJ97", + "value": "QJsFNpKUR9u73ktzzTN6J5pHGERhNYkvzM3e3N0UOuTSPnjg8ZeJ4EiDi1U5S7srTvyXiyJ7VvRCK2KSTZtQDDlNF7KxecQ0IoXSPyRC3A6FvQpoPSekwzZ3HJAVOiVwzKgob8S6AYM5ObuwWAIkaInJjPw77kvGWMW7MO6mESstVORJoz" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT", + "fc-route-feeds-fc-port-egress": [ + "ht0unTjztW3MBHQdUOyGyWPvti6zMgH3BzpRlIqOwtA02jdOZLvyAcV3m2C9ib4LLmC6W2Ulnnlpyq6x3BXDFTy1V225e7QRllP9nBuDYHUo70W3tLy8E72r14w73fYoANyPpUsfCfwBfkEJ5dRKcT3dQslTHba9ZAYgujn6yTINdeojr8VvTYJJiWDZ7F06fZeJaCIIninBwEMQMzlFpWhISUz0rAYGz5hBzZbWhypG43w" + ], + "is-internal-port": true, + "role": "jM4YxPxEq7YiFcUunrqkkzgbbHSd708qE4g3LGHcFxmdK8HZA7cMysXJ1IX8A5r62H1NfJRV860SezKOyWA7oqQp0FpsDQqFqrkFa4sjas3o1N5sBFzZXhgPXG9swzZW1ju3nOmx9iO2XTuzq3qodH52ffuDOtsPEWTUC7jLh7Of0iGre6HrFMtUTPqIaSpOGaAiiU4z1KGU2mdgtMH0q2NkRd21XjIDuiNM4Jd6tUSo8XEB", + "address": [ + "UFYR4Z8HKgScZxr7ntB189Y7kNhw5y2Z50I9SJJuZtGY10XgtqhBA7JMVSbSidSo5sxP38k2CSTvSILl9UPB2qnPiyzBDjRBMgqPpCK1vvwfd9Be3iPXI5E0vet9xcKbt2TSFDL28hhdiKkl21bK6HDCVYDlbnoEhhoW" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "eBuQqTY2zleGbQn9tjshedMYbAFgIxWW8iMqcD" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "s1H3NwHMnnVXP6bP0WgaEC0pHSZxmqGHroC6MbK9yy6fE94EYdOuHPTpHSOVauCtSezxqcGQKFYoGU2E7R8PGT6fDUaNgF" + ] + } + ], + "supporting-pc": "1TAybM6UwDSUkEOQExRl5Krkodv3l24mVEUZqTLOwvAI9orNWi812reiwBmSDqeqW1peM22axCTHSkmGunAwOOHdh35Ulbk94CnQEp1cTUTD67kAuMY", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "layer-protocol": [ + { + "local-id": "Xq0cbTRAseescxX0zptUq8kfgfbHE8HByIOJtxcNLi7XQWPhlabLanSqD3Z93HKBhqdKXhqIzxxpueyHgKlq7dJC9ILcpoGyOLbM2BmB0MTuSr493hz3uaxvTbAaz8JnTU1", + "layer-protocol-name": "vlan-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": false, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": -26291, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT" + ], + "number-of-available-traffic-classes": 8, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_REMOTE_CUSTOMER_ACCESS_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D" + ], + "drop-eligible-indicator-is-avail": false, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": false, + "number-of-available-priorities": 53 + }, + "vlan-interface-configuration": { + "default-vlan-id": "-9223372036854775808", + "ingress-tag-filtering": "vlan-interface-1-0:INGRESS_TAG_FILTERING_TYPE_ALL_FRAMES", + "service-access-priority-tagging-is-on": false, + "forwarded-protocol-vlan-id-grouping-list": [ + { + "forwarded-protocol-group-id": -729530285, + "forwarded-vlan-id-list": [ + "-9223372036854775808" + ] + } + ], + "pcp-bits-encoding-mapping-list": [ + { + "to-be-encoded-priority-value": -44, + "to-be-encoded-drop-eligibility": false, + "associated-pcp-bits-value": -73 + } + ], + "drop-eligible-indicator-is-on": true, + "pcp-bit-to-priority-mapping-list": [ + { + "to-be-decoded-pcp-bits-value": 114, + "associated-priority-value": 95, + "associated-drop-eligibility": false + } + ], + "default-priority": -46, + "received-priority-overwriting-list": [ + { + "to-be-overwritten-priority-value": -6, + "new-priority-value": -122 + } + ], + "admin-point-to-point": "vlan-interface-1-0:ADMIN_POINT_TO_POINT_TYPE_FORCE_TRUE", + "statistics-is-on": false, + "service-access-priority-mapping-list": [ + { + "c-vlan-priority-value": 39, + "s-vlan-pcp-bits-value": 4 + } + ], + "external-to-internal-vlan-id-mapping-list": [ + { + "external-vlan-id": 8183, + "internal-vlan-id": 13222 + } + ], + "interface-kind": "vlan-interface-1-0:INTERFACE_KIND_TYPE_REMOTE_CUSTOMER_ACCESS_PORT", + "restricted-automated-vlan-registration-is-on": true, + "received-priority-overwriting-is-on": true, + "drop-eligible-encoding-is-required": true, + "pcp-bits-interpretation-kind": "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D", + "interface-name": "EbC4BxIgK2R8zO4JkuNYpA4RAcYU53YJ6BNA0oQLqzTZoPBIjgzAQvrqHidMdbnkE3UFrCqJ3bAj1b2crtNiQ6AqgN4uRsGvnsaO4AxZM7jFb", + "ingress-vlan-id-filtering-is-on": false, + "sub-layer-protocol-name": "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT", + "internal-to-egress-vlan-id-mapping-list": [ + { + "internal-vlan-id": 28273, + "egress-vlan-id": -24978 + } + ], + "priority-to-traffic-class-mapping-list": [ + { + "priority-value": 100, + "traffic-class-value": -17 + } + ], + "vlan-id-translation-is-on": false, + "egress-vlan-id-translation-is-on": false + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2020-12-10T12:21:35Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 125, + "current-problem-list": [ + { + "sequence-number": 19143, + "timestamp": "2020-06-30T00:28:59Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "problem-name": "m7iwQVaapeXtC3eybmyHW7JUrgJ2m9pBgH76va8UoXf11urcIRLwYnqhD1kRaJkqjswOCxASuPLnb4zLWdhMAA45BoOMZ9caBBY58qXu8BSjFj5BoeoYOkViIK4zT8KmJIjJ1869JYsp9pSyw8ocsku2WqCPzm3aWmUXu066QrvRQfheoGrQSNTOenvFJqPFMBD8BBej2B3LRkZ7SiPK6AqkXNZG5GeRiJSLk65nA08jkZqdifPoQ8" + } + ], + "time-of-latest-change": "2021-01-28T16:05:44Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 22283, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-02-01T23:05:38Z", + "performance-data": { + "es": -1760716641, + "ses": 1903670912, + "low-power-idle-receiver-ms": 882827890, + "low-power-idle-transmitter-ms": -1778164285, + "symbol-error-during-carrier": 1403934494 + }, + "history-data-id": "yAg2vDvnoqngEz0iR24YkFd4W7nr3GoB8wDDa10yjfGYGz8ptcnOKsSyA80DGg6ONJjPCbfWiVMQuUgYZDEJYohyo934i9KXKVMn61bgOP7jBf9ASFbI3lgsmboEk9B54fk38nbXca8NphgaWjSRE1b1cAxxB9uxgOspbEmfGu26Lagzm0i01uTe4rDxs74IVp7Y3t", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-11-27T04:44:13Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT", + "link-is-idle": false, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + 19 + ], + "tx-level-cur": 87, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_TESTING", + "pmd-kind-cur": "jVWK5oRv0g5SLg3bTkaSqdLp8c8TTLL4HAHEYyaQG7AsfDv8YG0gLLFTXFEIrhF0JmEAMGitNTN2oiaeQ2mtGTmvz06SaLKTZ", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "pmd-is-up": false, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 36299450 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": 39, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL" + ], + "short-reach-mode-is-avail": true, + "wavelength-max-list": [ + 140796718 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "jVWK5oRv0g5SLg3bTkaSqdLp8c8TTLL4HAHEYyaQG7AsfDv8YG0gLLFTXFEIrhF0JmEAMGitNTN2oiaeQ2mtGTmvz06SaLKTZ", + "speed": "tD5M6KxLNNWPUESg8qauVBn1lpM5iDlEhiqf3PTICPpot9FtzHYvadwvCbAMGNqX6I51xYJ2F0q0aXuJEk6Oxvb1yDFer64xG9q6718M1qMbg8NUsLBZgESOiy3Jw78c8yi7ziTABxERGjD0460dLK13aWEyVML3cV2L6VdHlJyT2bTZiLc3o5Yy2C7PgKLsxN5DBacOUKHOOsNY6ZT", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": false, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT3", + "temperature-low-threshold": 49, + "maintenance-timer-range": "3piTvaMZ7vM6IFMb366YdYoV11jPhgkcFD6bNS2UgO0YmE", + "supported-alarm-list": [ + "hC8fP7DC0FNHW320JF6MsROm7veXJKZ0f8f47Kz7peOdiIeTncFH3l32Q90rMZr1ZyX6jo5ADMGNuMGSYdr2yn4hw4AaW2bVs1UDpZ6ULMH8yfSwkjqTGv25rCffwj3RkXuBOAwse5AMlkbFDtqkYkhiPwpdPs41hrDYT1i86SMr4PZHjpT9CajrHJEo3Jid2VbVW" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XPAK", + "rxlevel-low-threshold": 98, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": -257158417, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": true, + "temperature-high-threshold": 7, + "admin-shut-down-is-avail": false, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_LC" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "performance-data": { + "es": 81045948, + "ses": 1982526416, + "low-power-idle-receiver-ms": 568179896, + "low-power-idle-transmitter-ms": 2012436502, + "symbol-error-during-carrier": 388435614 + }, + "timestamp": "2020-05-28T06:04:50Z", + "scanner-id": "30SmcSEp2T7qB", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -59 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK" + ], + "maintenance-timer-range": "02upL2QZp70wNmdObx1KQNucwTt70FTSzfhlh0cH74dMrjBCQueyaAKGu5NmDyecNop5oCMnGR9ZaCBT7Hrhi4XE9L0Mb6ZZmo4KSQZzz1qKD2DKBWTL0JpamhWxgNwC4AfWi6nS7OuLIZnbV9XWSeYewMLEsi8wKnkVuIFBo1eY0u9ND6BvlzJJemnGEvchLo476JImKPkKjmpWs1jFA2oOoDm", + "supported-alarm-list": [ + "y4MX8TVRtatam5tIuh3vAIYu7ETC1GDrKhgKa4Bwe4GA12bvje1UWZoVD9ywHbYjte3viw1wsAZtC2ZVg0HcRY0m7yTHBR04XWsgslEVVvgpxfdN7USQSS", + "SqYr1HrY" + ], + "statistics-is-avail": true, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR" + ], + "max-queue-depth": 1880017014 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "1LXP5ci3IgpU8xJnyLpJfPdRrB8dp3uiOr7LwiP6q60yDBV3mdMt2RclskzJf31Wm1HSbwYBCQ27rXbNaP85Hkq1wRLMMEA9xh1AG04aQ6iaVlP6aY3JilLPdotZU30kc2MKUQVCO5MKqCIssL4CYPj35M3RHV3UXQwJGrmno07GuP9Ws", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_ETH_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_OTHERS" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED", + "compressed-header-length": 20294 + } + ], + "support-of-management-frames-without-preamble-is-avail": true, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -364808239, + "fec-is-avail": false, + "burst-size-max": 16068, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_4" + ], + "egress-shaping-is-avail": false, + "information-rate-max": 549448654, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": -20, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12" + ], + "burst-size-min": -3806, + "fec-word-size-max": -992, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -62, + "current-problem-list": [ + { + "sequence-number": 10500, + "problem-name": "ZjyWt1VJLR0Gdtk1JGqAjPf2uA6SnVheeHaAI5buO421xmU8UcAe2P8wi6gF", + "timestamp": "2022-01-27T18:25:45Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "time-of-latest-change": "2022-01-11T10:44:46Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -13621, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-12-21T11:18:45Z", + "suspect-interval-flag": true, + "history-data-id": "Tt22DdrBJ5PYjywAX7FNT7mQhZWFiXhcjk6Wxyq8DfYOFmoDtVimUw4cv0ROY8S9kYXRonRTvHA23YFwMPKGlPKJPBpFC9OW7EGo1p9o7Jr2A6zmObU10FKI81fKa4zaA7yBwz0vbjyLhZ75aT7", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "max-queue-length": -641543643, + "avg-queue-length": -401772325 + } + ], + "fec-uncorrectable-blocks": -1472818129, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 2139080714, + "tx-ethernet-bytes-max-s": 2013002072, + "time-period": 1039461414 + } + } + ], + "time-of-latest-change": "2021-01-16T23:42:42Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-05-08T00:25:24Z", + "scanner-id": "PsKwt8OzottOetWi3EbGQSgWlmgRturaX3Gi3vRrYc85FWnAsq9aap6wLefeIGoxJ", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED", + "max-queue-length": 803808978, + "avg-queue-length": -1814455597 + } + ], + "fec-uncorrectable-blocks": 256880202, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1801023888, + "tx-ethernet-bytes-max-s": 775937376, + "time-period": -1386649975 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -83 + }, + "ethernet-container-status": { + "timestamp": "2021-11-08T00:06:22Z", + "last-10-sec-data-output-rate": -1474288737, + "bundling-is-up": false, + "total-bytes-output": "6997814940463167488", + "total-bytes-input": "914593576504169472", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DOWN", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "statistics-is-up": true, + "last-10-sec-data-input-rate": 960470732, + "forwarded-bytes-output": "5953098423358672896", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "7444792642432561152", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": -19027, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-05-29T21:28:57Z", + "history-data-id": "LzXCaGL7TFwXPUHIyJ6YNJkW0gUnE4rhDpTGXwNJbjy05fADYyCDhOrh4dxIiYZNfKt5g9OjsecytM3jlxOCmfMqtj1L9SypDUuL3a5ng9VJVRU8oIDCXpViIW3RGu8bguXjEUGU3uvQdhZtZu6PT1ZtPVkvhlHxPwImig8dKE3PNUjFopm9ilC7gPuxa34Zz", + "performance-data": { + "rx-level-avg": 76, + "es": 926587436, + "unavailability": -1258905221, + "cses": 820024742, + "ses": 202507546, + "rx-level-min": -115, + "time-period": -2016757665, + "rx-level-max": 29 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": 28952, + "time-of-latest-change": "2021-05-29T17:55:42Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -3233, + "problem-name": "DE1qlUCSZhDDpXCosF9yDo1JdMsm2Y1FDU5QGzIFRmagbNFEsO4545GaR9wU7pzCcxlS63qXhA6tfL7zr3xo8dy0mWUmdlYpSbaZfAOo2URixQRRTo72uxUQtO4y93YU60LlAzCCmlML4wuXUB", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-01-29T04:16:20Z" + } + ], + "number-of-current-problems": 114, + "time-of-latest-change": "2021-12-05T16:34:46Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "3tffaVHqUO3YnNmsTZp0jg6aB0vEeN1aggpq36IYMEO9r2td2Sdd9jgKjLgqzhsHqR8tPQjtuZCO2Y1WQ69RhptA3BSuLkbb3bwK2QdoHI4JGXFo3H8kYBN15FnQSz1VKpyEfLVXlZ", + "tdm-segment-size": -1761233091, + "max-number-of-segments-reservable": -73 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "6iSFqdDTSxYpUGhlz5YZDu6gpVuhunesF67XbCJ39zlWgC9PzZG4uNlLIP2448oK7vzi8ie9SzX037PD6oHs3UeLB8IGh6iouRGuaMD2dB29AJMyZlT2g7GJ7opomHMQzlcB7QvdjpmL00j0l42t3IdbYCzdcmVDH8eGYBT90fU0f5StaVWdv9omEYzQcmlTurzk2lt2AfUIdNbnA7sX9RbNHKvT7IMt9dOby951hZBuEMR6Lj4M" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "timestamp": "2021-01-28T13:57:37Z", + "performance-data": { + "rx-level-avg": 94, + "es": 842190712, + "unavailability": -1025167639, + "cses": -794875007, + "ses": 1737760050, + "rx-level-min": 22, + "time-period": -1727462005, + "rx-level-max": -83 + }, + "scanner-id": "WNoBrs7VhTp1apE9TYcNjjFyopyGJ7JxNZ86j71s1il3I0cBQog1zNzXc7wV67kT6lZhsTJlb5oTXAmFRuGqhfgtmMgkTt6RO50gQJCUG0FvtUacoQuGXK1boaw9DCSrzSziubca4RGpDIB2r5AoIBAYLY0gASH1D9j7kv9gfPxSy0MZ6mfGYHwBFoK79j9MssTNY2V5KtPatC1rY8ZOQoinM2vVlEHO6stWngTZJJ95d2obaoS0M2o", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -18 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "qDJNQQu18QFICDvNC4j4t7axhscYmdwMR7zzXVBYLgyfTVUoRdkdcvKmPPcbUIPLHgdwbOmOWVVIQPYIUiVZFxlvexy97oMGEZcIFzwumk4c92MWczVSZ8n5xVeEbTcIKoqiPOMb8IgaK26OuTGt1VyyJF4UqguawMsmB6xBONDqIJ7cuNxvBXV", + "value": "uZ6U7B5Efp0Qopk45XnNzuR3horSdm4Ie3ClEzZTZRCf9OjeDG1caS8k8z4lN1V14yfIZ6tQYX57DhdhXel0Ytc6UgjIhfBlFQVEPhnF6sEKJR1z5mz3IL1CTcc3jGoYocvdtSSzcwjWncnkzOfhr8LklYnEwEvUQ08jK0SWp4KEgZZHN6YefCrssO6YstSalSt5LeUaawGqox8bEYiLsJdUxbSSxD2SvoQ8CCiM0Z4oo4A" + } + ], + "configured-client-capacity": "E21jgmRXdupgiP8mCi6i0uozD454w0Za2Subfd0kHpB06JeI1c0UGgtbkyfRy7TsZfD6lDr2U2U0L0BE4tyCCTOWjVFJ2rcUGH01djWZlISYBtvFO3iqPYf8TMSOdWAMvsFIMBIZcsQNVlkBgu25s96eVYU1MmFhOk0sOAk022FPnRiDmcBGlHM9xG2jUHAB1s3HUfHOhevw6O2k0D0ekNfR", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": -453318197, + "last-10-sec-data-output-rate": -1885241717, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -1569306397, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "EIrW7m0glRkxHZ7QTv50tWhTHzWSR83wJukQRl64ciCL9Jt3erVHf4sWEhOvpRT0m6Q5rO9v6Lh8uC3A3Y9iUC6yLUW2EH3SNTXeI6CGSTOenRPrHYBCsI25uY80ybSlWHsEO4dyP1McLtDsk74EP7KbXScnVWJREbokftS4uw870EAcLwQsvADlkHI7wrRau7mJAeF4CG4CkEO5axpG721kCJr83iaxpw9ZCGWem0JGwpDGW2eWX7gr", + "fixed-ip-v-4-address-prefix-length": 22, + "fixed-default-gateway-ip-v-4-address": "rMSBb9Zk1BTPHfHqO5QjLEeSAbZIuIiVm2wy3nK4YDLFLkYrpGK3kYVN1MvvnNqJHO9LbMP1htz2Nxld56ghW34YPslc7EWPkXAwJhp1KYVqnhDsfLKbOG1D8fQgTE5dtxBdO16rR1R7aurp73tVKmySBg0mUXsgu3tjWrKGktNvXeM4i7RUupEXyFkkCMAZH3awmUcHfR445I0fQR1c8G9Glt1P7BOPxYdTKpsZgw3d73lXMm9V2iBfECXD" + } + ], + "broadcast-packets-output": 1906232870, + "dropped-packets-input": -858673953, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE", + "dropped-packets-output": -577677007, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "kDuxo6WR64f1amXvjBJkwEv8T9CQMIm7lQwKWttUpIOz5DWgeGtLcYL57nOLYaKb09VOCgJTZxtWah4gPx11nE7m2N0SPK3HTRvn769YDCMFLJWB8PCwuBSogSg5vjEg2aEagN0MhNr2wfvE50azB3PSN5Piguzjw5lEKlq18KVwZjbWjdnU8cEW9m", + "neighbor-ip-v-4-address-list": "qIFB6KWKuh3niNbOEmZtF5Qr5VY14k8mUFX0qLKM3N2ls51Zr1k6Yap35nX2z5otCet", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC" + } + ], + "timestamp": "2020-10-14T13:14:27Z", + "forwarded-data-volume-output": -2105543933, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1684696563, + "last-10-sec-packet-output-rate": -1765414703, + "vpn-binding-is-up": true, + "multicast-packets-output": 1380055520, + "broadcast-packets-input": -580836119, + "last-10-sec-data-input-rate": 1549238346, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 653160234, + "data-volume-input": 1970784910, + "data-volume-output": 121865086, + "fragmented-packets-input": 907665958, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_RANDOM", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -173665369 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-06-03T19:54:44Z", + "number-of-current-problems": -49, + "current-problem-list": [ + { + "sequence-number": 23115, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "8mFeVz0wH6cI3bKk8CLDx2nqlG7VlzIuOnIJPI8oGk6JoQ3wkH1RJo95XhSiIAMwQv8x5gVEs1nQJjf30gMBFWyC5qMNTzcBWc8Ts3xUWNDx6SsY86rF209ZiWN3nREj3EcnzC9npMMnw6lxdEc7wm7PaMKxDhQyVUVnw4KNJxafDnMQ2RQy5XffB0M69uE4gzrFv4seBDm608P2ZFt4uIb5AXbJjPGAg77D3zSw4eD5ekZ6", + "timestamp": "2020-01-30T22:54:28Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -8486, + "statistics-is-avail": false, + "supported-alarm-list": [ + "H0hR73hzzlKT4cIx7KqRc9yJMZERIyEhqW0pRhYqDAcHMM7UwxDIG3kl2Q4DgIUGwV5n4WGHwShbwg53NADmDPHxGL", + "kh1ExcL56O85Oodx5AgsNx8MJJTcrnBMEDi4H49NKhKqGXYDq6YdD6ZmHKq9Z2Nwx5Ae1JTE0D4ys2cS82XL8P0PziYrkDXRBx5ugQ8gtdPW7TGgVET3tLKU4Bloea8HH5cXWk6hpN5xyMNliygDk0xoBLEIVMpvKtkyOqPd5VKDzpYRY6ua7TyAw4akRAPt391JsQPxDr34RT" + ], + "information-rate-min": -1418463761, + "maximum-number-of-ip-v-4-addresses": -10364, + "fixed-default-gateway-configuration-is-avail": false, + "maintenance-timer-range": "ThTCnTqiJWWQWbZvh1U1mh1dMTv5H9fsq84FUuXviMl6PcB6eo7sF1FkU2pubEWtFT0zfYWqChwrl0xzowT3xqfstFWwjK0YD0pLQdbsuHTQHih5P31etgGWVut7flXKlfv4sywPgixXAGVhJWwd4c1SzuROHOq3VO7gmv5uNCkoafFU3377g8RPvIvcpN7cB6sQ", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": false, + "information-rate-max": -1543144757, + "burst-size-min": -9758, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": 17958, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": -9280, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_LP_PERMENANTLY_TERMINATED", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": 907083112, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-10-16T19:52:09Z", + "multicast-frames-input": -1657452663, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -237368141, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -233947373, + "dropped-frames-output": 1456332366, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2", + "last-10-sec-frame-input-rate": 14983312, + "errored-frames-input": -1650641443, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "mac-address-cur": "XVvv9E75hVi80Y7ijed4LVPutOckYNkNAHaBlhzucJC4HJnSXAXAnM5It93jOn7g5hSizjND2hIBT5uIxrbV58DyhyS6OReL863HhIdjSVVD0hlxIokFwQ6GoYE4HSPPRTp8tCkdxfQpw4O6s1LRRRx7H3coN16EMnF8ZZlo6cFCgtAIudzd5YlETxVHq1ddo", + "broadcast-frames-output": 1917105914, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 851094968, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 1283636496, + "dropped-frames-input": 842197746 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": -18089, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": false, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "2OvhHasfe3T5FVaqb9H8i2JZS26a", + "supported-alarm-list": [ + "Tb1osIqNXEIQCfDMFHNfP69zX1B33KgWWhdg0DVPaEyMT3qrKeyAcH19Bu5w7dt3vybnb74dDuZoyqPiwfKIXDRq8WWfahaxPdMTcQ6Pd66LoNVU3GCSblaja6", + "kgAJ5OvQSdXAqVG3btZXoxrgIMq2Wpk8FVRCBeltka3C5BG85F5l4wCMaUG7j17QOZth5OKpYG2V9AV67Ssbg4XqQwpapx0dwlut16TRENEOnrMujeFzau01Sp3hWVmk9IO" + ], + "hardware-mac-address": "P1wQkoJGiXCBs93z5LmuLcp6p1WpAozqi58ulRaDHMe9V9BSNPny2MEjFsIgR9y16GvsxFX6j486dJY0qlqs05ExpeN8ol9mTEOjbEpuIxAV8zWzMe1EbxcBMRJ25LoYh", + "maximum-frame-size-max": -11687, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": false + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 22544, + "time-of-latest-change": "2021-10-03T19:07:11Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-07-20T23:13:12Z", + "performance-data": { + "mac-pause-frames-ingress": 278416194, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -780261429, + "mac-pause-frames-egress": 1298655686, + "mac-control-frames-egress": -182268153, + "oversized-frames-ingress": 2041111624, + "undersized-frames-ingress": 105987660, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1545442778, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "Zjtz151jnTUuUBXv5wCbEa3wHVlfq8Mij7Rl4SwrDiWxTL2YiF1WP5koSxDjFhtYgkbk4HLHZz6Kl9BvGCjnzDDsa8DPp6FFiRRmyCVy41ah2LMIo5XXIApKI2rZ06wiPnEoSrOWtY5vKR60W3", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-08-06T17:37:51Z", + "current-problem-list": [ + { + "sequence-number": 23345, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MAJOR", + "problem-name": "oEHtUzO1rmwg7GI7cBI4ILhUMIDyFg2VNJoza4BBr7KyGsxKVgOE15qFF35dc78RIpqTtTmUT6kzqKbm0Z0T4qqCmvPqvXhdmH6IttumzP", + "timestamp": "2020-01-11T17:23:37Z" + } + ], + "number-of-current-problems": 70 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -18, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false, + "timestamp": "2020-01-30T07:34:08Z", + "performance-data": { + "mac-pause-frames-ingress": 1712216584, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1756380875, + "mac-pause-frames-egress": -1982591587, + "mac-control-frames-egress": 1411884650, + "oversized-frames-ingress": 292059370, + "undersized-frames-ingress": -1768920651, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1941997555, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "ItivlJtz2iF6b3szGjTQGVa8k3GipAT733CgEXHGfeEq96ZPiLGQyIYKLw3a6O91SL9oIQ5PWB76A7VKKtAabqVOOYQNEZGoKQNkyK1vd9tN8oxSSZUVhPC6FsTcszA4hnhQZiddrG0zWqjGheuzV6FByqNSZfX9v6Zuo4HQCAhqSB" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2021-11-14T18:42:48Z", + "performance-data": { + "cses": 893808162, + "es": -1760339427, + "rx-level-max": -66, + "ses": -1627177313, + "rx-level-min": -41, + "rx-level-avg": 44, + "time-period": 123429314, + "unavailability": 1003271716 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "BVk4Uf7NAgt9f012fcxttOLlUrhUAHD3vX7p474FnyGCyHxFU41fLMtF5Krxr4BWTAeYzivWQ3rgKQWwUXExB75HRw6aBHZmadcJvzyeCRunHiLt7p1Jw6ifCo" + } + ], + "number-of-current-performance-sets": -56 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-01-13T08:23:27Z", + "performance-data": { + "cses": 1596842372, + "es": 1259460006, + "rx-level-max": -24, + "ses": -1285835223, + "rx-level-min": -29, + "rx-level-avg": -73, + "time-period": 1535492852, + "unavailability": -1624977735 + }, + "history-data-id": "5I8sXHKBbS04BpaLEE9WKZd47HsJzq0w11YYIJzLtsPWJZHfEIcgIpcHZEqq5jW6kNWUooGRQvNrnmGT4S1Madm1RMrO5fMh2J4q", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2022-01-15T20:28:27Z", + "number-of-historical-performance-sets": 27183 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -19817, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "l03IZkb3Qhpn4S7X6aYvJn3heZlwcQZxIVfzfqC5I2kEMrBStzncOimU" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 32064, + "problem-name": "tMkNLraO1Qh3mLQxwwhigvXyLjqkGpk1cEOPXZDQPUT3xBBV7KdggaGTm6d2ox3s3ShTJMJyyvC66516P7eX9URvTWp9mlBp5KaOwMm49Q27V4dD3jAcejIZg78CkBTpl4dRIsNRiQY6M4JPnb1BnJsDJs733SlgO", + "timestamp": "2021-08-08T14:33:04Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "time-of-latest-change": "2020-06-11T04:58:44Z", + "number-of-current-problems": -24 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "vgov29SUBOVE5nzrx7XqipBRxc6q60dtgtQiDA4eo0KtnkVUjKdB9GkGSqYQqbjGE1Q9CVn0V0mac9Wv", + "value": "962PqAzIyp1BAH7Cyhelw68wsiAB65mg3gXlQx4gW5JxER1407pwdxVyHv1Oto4wETSnqOvfT7ExYFCQMTeZr1p0xrOSHKodE8AWWYbH5P7VmBL8uR0NThOiIuapfqDLz5" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "8QCJJXErR" + ], + "fc-blocks-signal-to-lp": "y373A5JCpCfhIr4Xai6cqOG1pvFQfzJNvQI5VsHc4OtE7qBhAzl0fT1EpynE06rvO1ABt9NpP83Wyw5", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -79, + "current-problem-list": [ + { + "sequence-number": 1717, + "timestamp": "2021-03-10T10:49:52Z", + "problem-name": "a32V88FASPf5qcUQQ6zyjZBU18ZsIiOTeQGeZdOJ23Gs7BbPzKnSBQMCZEWzOKk2B08sdW38RJsQcDFLgUvRLamCGibuVwpooxICmLC5u4WzItcYgIHTK3vqeyU94bptB7XXSzUevINd403kALdkGAKU8wV5Akybrn0bOUqjD5pHXs1x56JMGlyOSuTkOjv8ynjmhByMHXtwhm4fkN101zHTVs5KEsK", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2021-02-22T09:46:02Z" + }, + "air-interface-status": { + "xpd-cur": 6, + "transmission-mode-cur": "JckEeSuHqNs1BguGy84aXdLKxuHXZDTIQde4XJDno5pZmLyMLCWJIHlf3U42yXLg3Zc0APgRMxQ0agMWLIFthSAkMFncu0spRwikdyb0XT072F3NfAgxsIJ7f6jKYE1I2j2gJ58GQ0O", + "rf-temp-cur": -88, + "mimo-is-up": true, + "tx-level-cur": 4, + "local-end-point-id": "TS76DI8lRqDp81jnC4PiuAYdAbwAZAyKkxQXfYbZgOgoQzDkvsv0UldnwBXn4n7oNPe2FpTV59bNAO068v63Qbqf", + "rx-level-cur": -17, + "link-is-up": false, + "performance-monitoring-is-up": false, + "xpic-is-up": false, + "remote-end-point-id": "fCQvC7irlc7K6UP76vIUvGV0EYQPg5tnAcS4javEfuolp5knA295A4XeUG32Dpq5Bi9UlFyA1ONqL7Ne2XbC19JOPEQk3gqErzqM6Ye8E1yq0eEU3Pp4Q8KxMBSIRieaJFOQv2YaVwsOC6IFNZCE7m3MXVuH5IRPfyFLADNo1f4EdMbSENoLaspZnTGtuqaJYPmqk9GdoKJtpVm3IKGKc6KsRiNdAXXqEbRQlp3", + "received-radio-signal-id": { + "numeric-radio-signal-id": 52710, + "alphanumeric-radio-signal-id": "P0SzS5ao6fffG8jeNoVEqT5hXB3c85GPXroPwq6uFdJddUr0ieEB0BSXdOadTI2I9qqxIo2nBLsOyTG" + }, + "auto-freq-select-is-up": false, + "tx-frequency-cur": -890577889, + "rx-frequency-cur": 1680442944, + "atpc-is-up": false, + "radio-power-is-up": false, + "snir-cur": 101, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-04-02T10:54:00Z", + "performance-data": { + "snir-max": -90, + "unavailability": -1384471117, + "rx-level-max": -119, + "xpd-max": -105, + "ses": -776795169, + "rf-temp-max": -15, + "tx-level-max": -64, + "es": 356376988, + "tx-level-min": 116, + "tx-level-avg": -68, + "snir-min": 111, + "snir-avg": 94, + "time-period": 968961608, + "cses": -433116075, + "defect-blocks-sum": 11982, + "rx-level-min": 22, + "rx-level-avg": -62, + "rf-temp-min": 11, + "rf-temp-avg": -78, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 12, + "transmission-mode": "3vj12pIc4eQmfR3a6a79YJxI26SQg5ykAKlu9Wzd2hsh8nj6yrfoaM64SQU1Vkdn4yS6mjbpADGI10Orj4PtINxBDjurDHOA7GGuZRLrnj1gbQHuMwXmbuXOFj7j0WT8urCmifNFyPVKxuebScx3ynKeGRpHNaPiBjELyjj686QFBXQ", + "time": -349941069 + } + ], + "xpd-min": -30, + "xpd-avg": -12 + }, + "suspect-interval-flag": true, + "history-data-id": "YizYOYaxEG9TpAPQW8CpfJ3G3dutOnhEGQCmONTllVeCvVtj3XAaHEQCRcYxAfc85OuMtnZOa5rF0MQ3Jr5i5VVO7Tmz0qH56bJArIgBNz9FlZA5iFnfsa4sVi1VIBTGEug55pzKYIqkz0hKywZ0HVsu5mqNXbmBFCzC10nSINc9FlL5RL6y" + } + ], + "number-of-historical-performance-sets": 4510, + "time-of-latest-change": "2020-12-04T18:15:59Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING", + "rx-frequency-max": 2041403190, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_REMOTE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "HVX1x4pLgOaqgkOIOrZXzndlvKvFHYagT7ir3z4kg6Coqr67K6Wbl2xIMUntTpKEwU5Al1MB0g0qzYpjWmnhoMZ2GevzD762T3uf58I5oAnYzN9n1wFhiwjRDOi8Oo", + "38nF3", + "9yYROCh9JYWbhyyQ0wcsLHSLx1A84KL5jBPZd68OXW0evq4nX8PAHHdeAOewqZuJsjByhBm6yecVF8au", + "jI21VDOFczpUjuUINN9I8PvTTq1g6Wqhwsas5Z7aqoWJSQrxws7EhCpa3ji9fJiM3t61s5bKm7l6QMEe7LKooarrlJsskK6odcpxaA9wzuCh98vgU8Eai5B", + "Z4Yzi49Yjyoa20Ddtbu4pBuwNhbWrx4rB20L71Jiz0st0XGt03pqEUWjbZ7Dw4WZ6OL5PmfhmIKeFjHGmZYSTM3WLbr9ff8d3TbT8q2u0EJGXiebh432Q7RtaiCpyKutwFeE6g06VJEK2KWbOZ6wYXZ87BpFeU1Crf8pw8ojK2VEFRPlJVSzKJISd7pj1qVlGVK", + "u8Yz24KliPYgjXUCOz9y9DuDgo1iwvA0ErzyvbTFSKV4HQyohHWqcj3sHWCdscdYDEw0IhFA1tEBj4ZsLNTX6OhODLTXY7VtDjulA1OuukXFpW82B10AH9gcV99L846EfAZICF4Y01EhPMjqFbSel8r8aALixRWEkOmWlqMlrqC84WzJ7jQkshkCJ5MgPJV9p9XKsJYT2s26gtIgMys6HNAqKnzrYmAnvpZX9XJ3i", + "iDGaOQJXf4RlJTXiH6woatUDSFqNooty11IHSkw7gnsZ9hhQnF6y81b0yCFOS1mT2XsUhYUpdeomwy5Tdbre4D6C7EiZFFKHu4uL2o27C" + ], + "tx-frequency-max": 450602712, + "maintenance-timer-range": "h44KunLeQ8l6kLX2VG0sOyKWg9fcVqI5mFPQ2s5KBiQN3FIYmIi282Yo35tRw3WKIDBLYynrIeeLLOB7wT2FNSVJYoAmso6a1zNRZbiHhpk2dN2CyWheG4XwtxSVVRX", + "transmission-mode-list": [ + { + "transmission-mode-name": "otLfhebfgSzDSyByr0", + "transmission-mode-rank": 483511776, + "supported-as-fixed-configuration": true, + "am-upshift-level": -115, + "tx-power-min": 88, + "am-downshift-level": 58, + "symbol-rate-reduction-factor": -37, + "channel-bandwidth": -398198479, + "xpic-is-avail": true, + "code-rate": 57, + "tx-power-max": -96, + "rx-threshold": -20599, + "modulation-scheme": 15497 + } + ], + "encryption-is-avail": false, + "duplex-distance-list": [ + -817647863 + ], + "atpc-range": -103, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": false, + "tx-frequency-min": -1284962363, + "rx-frequency-min": -1360430855, + "type-of-equipment": "cTgKl0cHkvoVvnsz8Wx6g7e4bCSGCjvOcDqywu7QZvEuL64TUtS2sY6DBYc5aHTmdjMJNTzFh59Ub5FXqpZLo5oZWA46aPkn076FSxk1DmVGrB", + "atpc-is-avail": true, + "supported-radio-signal-id-length": 5553 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": 74, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-04-19T11:37:02Z", + "scanner-id": "khk5n0kZXFy2kM7S1E797ze3ELSGZC9jLtp8tB7jgxlAjklkZklYTrTq4L63f8n0BM0Xf08vxtXJFi3wDhmoIgONTNQ1V51oJUlYUttjOjUuBQ067fvPvbuoQdpDij225f0ZBmapF5L8NE7UTuBgF6EobW1tf3vkbobMCd39aPhXlgJ6Kdmib0GmOHP3DdfGBis5oveycvopM7", + "performance-data": { + "snir-max": 12, + "unavailability": -1201700975, + "rx-level-max": -9, + "xpd-max": 101, + "ses": 230704140, + "rf-temp-max": 103, + "tx-level-max": -38, + "es": 1333993954, + "tx-level-min": -17, + "tx-level-avg": 16, + "snir-min": 56, + "snir-avg": -4, + "time-period": 2053996610, + "cses": 1102943704, + "defect-blocks-sum": 18140, + "rx-level-min": -65, + "rx-level-avg": -10, + "rf-temp-min": 7, + "rf-temp-avg": -64, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 98, + "transmission-mode": "HGpLMiy0Vj5OQVpqPDf5GYwtci7RB2iaAH", + "time": 2145157766 + } + ], + "xpd-min": 69, + "xpd-avg": -9 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false + } + ] + } + }, + "label": [ + { + "value-name": "nVL50s4NHFqP9i", + "value": "XbZDtz7DRe3mZurzSfcPfwT3dylVzDuoOl19V9EMnA8f4rGOGSvOggJmG49gIDEoZGqUH4y4wybtZR9yBFeSVX6u1fKBSgSJOavve3sLtD6lnfTYU7IIWOcPVOjO4bpTlVgrYA4k6aFtqyjcx2UtIYaEEtkJEJuRwCbndfHjimMIM5MjZzEAxO64iiNO19" + } + ], + "is-protection-lock-out": false, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -2168, + "time-of-latest-change": "2021-01-23T07:14:37Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-08-05T10:59:44Z", + "suspect-interval-flag": false, + "history-data-id": "j5fjbT8fUWgtWCAD14ohfZLkfmmWCkGVhN6syeHs3PVRsomtsLCAKgURC8N6sl1K9Z4H6E29tP0N5e8qZL0B1Utv38BnuuZDtWczA6IVWAJTHRjGuban6DS1Ltg7XgKr4PSEVtrJ32DCMObg0lEYQoRtS7BPfl8j21PYm9HhbcUPT56LqCBg0kJKjcszysKAlsqHB0ZE4TuXYsIgW", + "performance-data": "AudgI1Og" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 14011, + "problem-name": "ykyvozD6C1A5PEsImkoeYbCB6xN4r72ZktuI2ZGw19BQFVq17OfXZ", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2020-01-25T11:01:54Z" + } + ], + "time-of-latest-change": "2021-06-28T19:26:57Z", + "number-of-current-problems": 126 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_TESTING", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "miOfnzg1JlnK523TZiy9l9dL8PVPWRXb2DihcziVUyxZAAL", + "tdm-container-size": -1702961733 + } + ], + "supported-alarm-list": [ + "QsrI26oguUPGospWcElnqNjP9ffKhKyZ4ZI756fsSX8hpx5tbqIt62i7hxRzapqeh8dm6lOZiW8zld2oELRCFaJWzAnBROQ8W", + "nVg3Mq0UZdZUCvxl7cnQ0Xioy2cga0cpNktzLllCylw2QVoY7LG8AZo11A93sltgyWHjh3NHocK67047DLf6CD7D5gypu1x2Xfd6i0OycqEkqJrVmy1Q38l0hTpLVXFK4SJmSxUXPy979s2n04dV4yVlkcYf9DRdvA" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "6sNRsCEhro6CqJUHWlRJ8h9ZRJCjuVTAfHkHbYQCmW6Ey1due55mmee6QQhcEaNLJZlVXbxc0EQyx4UL1Z0f6elOWC0AFFmoEHjuKJGKnoaMs4xt4pJ2v" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "suspect-interval-flag": false, + "performance-data": "WAppWZjWxPPGixl6XedDu3vetsnzm6Eiy3zm2Kizr78JwlHtANZWQu2jWpSanwsVr1atDsV4sVGYgnkIabE0FGctY4EltY9USjgvD3AXYgOev0XybtqQ2Cb0zPd2GmWyx43b7v05DOc9O1", + "timestamp": "2020-05-12T04:52:30Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "oC" + } + ], + "number-of-current-performance-sets": 119 + } + }, + "address": [ + "tSi0W2KtxFd3333xxmbyd7WBcow78buBWMuKH65eLi9Ged5Lrgjwo87Aovzxz30nIu7ptcvemFNAKSeb9xHpxGRW4qlD" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "a2Bm", + "value": "P2COO6OKMT2j9SzejkHQxEGFe9HgK3tsY58EcXpQIr1JbAXmMwcb3SQh2qxEl0YjY7Y2WfSwyL7Jd450s9bvUUMOkbkF4jR2iPW64GCurJ5EF2wZbIn5u1LO56l9h43rTZxPF1jYCou9q18uJnr5pdTub6vkbyLWpiEWjXUVeg4wh40S" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "cBMXM4alJt0WmfD8hvFmQb9dE3FpFvpRY3HC7JXIdPEr4arex6Af9BkOEZ5bnuUlptYpdN7iDMJzOaNl9fsiQM6mE3p1xkeXNcmS0lav7T4NWK05ZsnIfmWTpmMPG0Ml50e5lgslao06013StqAAEol4K7Li8", + "value": "EdpKaC0uP2SQ0TJ3D4m5F0t0We8zw8Y2lfEnSxRzzBpsm0vZ5J4KCyKqMK0aSY55eJkY8bxINPa9Px1U95ELDhbhT3kE2pB80WY97vJMcLO2iPOrUl4qC8Hnb115iD5br3cyrVdDG1xQQmaCHe2bmKyqDsvOXBRoE3" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "local-id": "cPd5rv7UCxgGVDQDqM9etJBmYpVl61kaQxf9Un3wUc5IHVl7Hnm26XhXecacdumVTC4NZZjT3gBKcPSLc6GaVXZ991mevI9oc53bWf5SvyCHfmljk1ufYlhZnv5K5e1ib4tZjqRPRmo6AJqVCM2sZjjmGo7Mu04F4pFoQo5z", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "kXJpI5APsUS0FGhPk50aZNg7JMpNFh7ZfIgXFQE7CoZ958YhdYr4DHcmmB11K1SZB8PhQlgsC8tzgrQuhiqUZC8d59eQaYHMYoVOK38ebBNkUDO3N6PFJXSO77E9XmNWKACmELsHef11LH4yOUdxR6dQ5SSU6xQ", + "value": "8lXEYplcFndi4aQK44hN2vwZfgTdNCVNXSrNaFZP257YfPBbLSYFfmEmCqzq2vdRfxwpcn66s5WzVxKyiBepXKMAadS4IXNQuj7yHeE1btt605xaGLAwneYyrQu2NiSatZIa5f4hIxfACMLbpdHNrFdSnHU2ZEclwNvB2rSCY" + } + ], + "transfer-capacity-pac": "0nNMGs3XOc72P6iEAIGEEF5jTPenTLfL02yGnBv3NC5uIg0bQGPueMF7BTmnxB0pvy6K1tGH6DbGT4RBKy6QlLXOxbbWMclaCjUEFAlL6ojZsbt5JzV4cLLBWWpB0DLvWx9t0m66CqX5Bq2kRPh4s2xhQXSJsve", + "external-managed-id": { + "manager-identifier": "sFoJAtDNEXWJrjr6Asite37cajMxXDIpa60DzDi5sfGUq801samH5lTfwyMt3mKdsKQTf1ZIgxuyxmr0wGHB", + "external-managed-uuid": "sIq0nL3Jw948RXoSO60mszLO0LcGkFANfSFCDBe1Ki2Bfqm4omiQV3wOHIm1fWGuGe" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "o28eKugn3nheJ1N1x7xd484sEZ8CPadd4ljHIA4LXd0y7FAEM7JI7F2DEaftksyhGRYojU9871HeG9Kk8t2784KEf07zkxQ0hGoAAqJIriW8rzsz2vG3rqHGiH8D6QDnxUY7kHHLZwTi5eRZBp22HCJ0bJvhz8F62D6ecN03bLlgR48slan2E6UPHp7gqMfkhlzt0ro44JkWFso0vLU9JHZi6YzoKOJ11amTBKXFlaB0uSSZvE17lSpkQY" + ] + }, + { + "uuid": "dd2469b7-b29f-b4ff-867a-170a85ad54ed", + "embedded-clock": [ + { + "local-id": "8DWJ9TvVXFUQscgMwcvT8Dg4z5OP5V1drXWAIkvGZporuE50QALZ51VE7Cu4pvhQl5qVpVtodRHHwMzeed5j61Y5vk9UHiDUo3QNRjcW3Tvzy4FM9L6gEWl18nVPFqK3msR5LV1OGwfesV1CyZScN5dVs0K8rm3FOUKsPDgw1oCtbvXJm", + "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "ft4JD3aV03DM5mpHKXANuQPfSDxsNm53P9El5Og5STRX88wSY6FsOnHHS61yt7tag7vlWLiGx2vxa1p87WsWjav4gwCBD5MM4h70Viykk3RuW8vW4XKgZf" + ], + "name": [ + { + "value-name": "V9N0470H7j3bYS5AcNdsbeINITjxCFfpH2pL1is9Boks8p2k4gEfmn34geuTLJasDA6ESyNlOZNWhQglYVBkaEhqSLbvmmYZO4vGub1jaH7rpoNnbozdUIDElH9HV7yJ34hy7aJhRQBg6ov9E5mqF041z5Am59585eycohtg04w6k2gQZCgEucxVi8hnheves4qRdL75Ivc2xkLoW13j6seo", + "value": "wLJKgX5cnWi93nRyrLYLoeIi9ToC7McvxW8FTdK992a4hTuJwkuVz4dIXtkXfxkElsj6x37GXhCfa7QHrku0hHB62V3hkoVFI6Eg2LOZ3r65qWMJ98CqPdwR8s0lQN0yUwGWivVdWUieQXXZ5zhNMGwN8p8Yc0o6p5UHsIMgCWukTjcRTtwx92c9jc7wdouClpbF7PVJLh3xA7gtBMTCG5M0iLwn10RehUToJOZu5VTG291vVM8" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "xpKIfwzGi7XPtlm5rDnMuZU6KHZuGw9dVTO2pnAzmppQLDNcgaYL2SJMrI876hd1b1Wsgw2DWjlzO0L5", + "value": "JI5ujJN1KV01014TPp1ejw2CRBiKenNXXSjgt7adUa7M33FLsyZL5TfOuyyIVlxL5J1rI3Eu5D89HNU9dLViEa70IFAwTZ9YI2hi6WEbrMc8r6aFJ5Xf74fICP6nHfdh9vAfjejK1vLkuVZ5SXlRTArnixKZEQ8OlIVEPegIC12YO23yRgqCRR01hCSVs0BFBxbqDs07l252W1ANhSi0Ci1LMLy7EaMfzY" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "label": [ + { + "value-name": "SMu2xShzK8N22ziDnaZl5TTZ2MnQzvkj9GdGyu7auNcomn1Bx0WuLHlOuIw35QeeorVWVU6pHbNVyGxXyljkVE0pnwkkeqzCRmqEgo3QzIDZg2WOo78bM0A1wMlCcUeV8wzpVu7u4KmkNa03i9e49G5ykiaw5hjdNSCImB5ierC1tCWLDaHFIEd2Xfq2wJfkBKUPlZ7ziBsMdopJq7o8LB2AQsCfbKrMultHdA9n3B1hSr0aqgbbJdMrG", + "value": "GR07wmlZ4ys5VvGPEqgwBGMMJvZnXxwvpwDVLYMPo6UbCs08L8FeGjSiHJFwhb1GAwtlm72KeOOI8GQTPnZnHRFgBlMSoNqQcL3yK5bYLZyUFhFmwxK5oplRC7BTV1J7E" + } + ], + "encapsulated-fc": [ + { + "uuid": "a3edefe0-f9dd-4d52-6824-b25d8b077e0c", + "service-priority": "-9223372036854775808", + "supporting-pc": "lZ7smoYSPsOOfYsVyrisEL6d9D7gQXq3WpnbNdVCGKjVALI841sIEyVNbUVURdPGDdRiqEN6o6UYJCYFvrg2Z3H3YDXPIMndR6wiLbg1haSSFQxa9N41RM4PhTwZxMdpSJHvUXp30hNFZkH10M2Jy6qPZWOoA1NlCmQoc7jco6RgjqhbcjUKhkr88gwJ9k4EGMUKU6WacFqn6Hya0sV9MmhNuOww8s2G6Wr", + "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "Wv750po3Quq047211idsZK9tbt3GAgdxLcuDBSzkeZca66c7pprg1BKc4NSF364HaykMiT6oSazQgLPF29W3KyfOl7lh5hYgPaUZ4SoO2XxiAeQunEx7cEOpD1GJjwR0HD0Dvgjp5IHFXp1c3yc7cSxPTdq4K95jM5W9dfyiY8PNxQRBgVIsNf9zlsD5tIggFchKjQ29YJOvzGYPtH99ObI1Dd66Oeelqw6Ke0LcKAzb8y1B72KNdk", + "value": "IqNHe2Nrsbx4pyQtai3lqteTAhwnuQ458SMeUzGeLdb2D1wNbz1B2fmuwSJTBOYJGCYs3EGGJRJfKf2VGVoAbLWzDFs6liQ1UOtYk2w3Tfawm5r20IublqLYY55joNdaty0NAxImETS1YbVQTi2eIF5yC2SSPX3avVP6sps7ac00nVRh5LnOiseUmYN3VIdrD2pYsJXCVXDiKurQ7PwphCjEBYHwGNPcP6a9PZMCOh" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "iQB8FvEL7IteeefkOhy63l7OcVKAmmHE4iMKFjvN1QT848kLpSJkdI9i", + "value": "LSZ7AEbKiViBj5v9Qv6YPRfAAzNiA5OlQFkibw2ujcXuhkE7HCXxt47VEM5eKTsszMKKaE6uRWY0gu0Y6Xnr2mmy0sECd64MLOpVlvpcjgcAC4qJ2F2WTpmTJ0oWZsBK90" + } + ], + "fc-route": "r8ZOI1TNTqob3aMu00O6tiZsWko1rCtLKkzkdk76CnhxyV2yWIwh1oKXI0Y1CkMfwdrKyrI2O0AmNuNBcbLdzv2hn1bZdX6BbylBZ4DNWd2BHH5MSQZsd2BAVMr0CyBNYPgXTLCHZway5fcY5cii6TSTykTaKmPIbXxWI1vzyG0DVct1gLjmx4f", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "Vn8KqMTMq106MCCci4IHadRJvAhfPrtCOtfef01G2TEGnhSFltnnG673ygifHDRn6YCeZvUTgqzvHkaVNpalnhoVqza7cUnjSZxJmjCCJ47jg9e3rogOywCY5MXiyctjbS2pbx1Mt05J2bElsU90iLQoqFGYS1h" + ], + "local-id": "RHZ3FbB85ffM4PvgiQWrEBkRKwnKLyLu7DpNOTVT83x5K2l2KaloDF7nbv0OVLb3gsI4dvYmqnraiE52GqjjYiz1NzQBcTwtl6xztnNUD64VK9Pjs8uqr3r6u9HH252obrPF", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "jCNVeiis45BpN4jxTBR9qZyBU7AzRda2PXY37gnclYt03MxOnpXFgv9avJCmWMpDJnyRvW3QMoQHagwpFl4NJ5XePrADdRhP6PGBDBjqZ2Z1iniPJ", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "ZEbzaoL0168fb6br8MspT2iKwZX5ME3DiecsuYkvWkK7rOrzALZmO9Yk8VhUrkpJqB4UrghfBUf2Iytajko7tmktaBfBOEd68h1zxaP044UEugPNs5NWs7hCAp5o3ivbzoDZysRvoM1S2QxmWkagjsKURPaM0xQzVtqmNiJ3WKVQtkchFnxQH9KyYNcYk2q8vImaS5dOH0walJjSYQIFR" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "1Bx8EG2dBwP47EUbqIcyrDTCYC2vMOjNiINWgQ2SeROlnIwFjA5KeYe4BgrfXC2flI3By5lMW90bKwQV7VxdUM9n2sCR4wYpe2TM76rW8j7SPYNOLcTFYUUTmwKr3BI9vtWuAfqIyqsfg7W1jHziCtbYSNhNo0WTlKgVZGDpY5x64l8o2zGwURnMw", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "NwoyS8OF0nbhl8Osd1sB41hsV0PAom1bKpKuyyaqVlH9lwByxV9tWiWJaDbzZ5KKumeUVgkIt2RPqknPfpb3H7FK" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "CskrG9T8M6SVNYDlsgWLyNFyGXVYEw5gYpAwqtx4rp0ffDAHLptk40KDYxtC4yL2PlrfGYk7fceuHHcsYxEUxgxnO1SSrDMhQ5oo3AnaMCxlbJO18kVxBtVpmN9FiVO01doWNLZsfwNq7trfOfMhIzyWeHtwuiwnvMkaybCNHi6OLpVrEzAe982nHwMcOazbXLdnWQ2D08jLq654GFbHGd4", + "value": "BIzpT1sIMG5Bo76o8q1yw6u4EFLkLIzmq1Eb26TGEYh2Yg" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "extension": [ + { + "value-name": "E0ydADSMy8fDRfEtmee6O3rZ1wfy2mWGmmLORwBpEIUvXyZbM5at8Bk17zz1NnA2KlQtRj", + "value": "oUFTJ6KVKH5dPGpQFZiyEx8G9mpDdAoBu3n69Z1UHYZowpf3gpBMWKt66KJbk7FH2UN4TGYAEPZ2665enG" + } + ], + "prot-type": "c9BfSEaxn5HaHNo", + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": "5I8hykcYkHzGSrD58d6EfjfzbdhTS96XR67prjgLSPkC8PAg2yNaR2JUg0F09MQ0SXib8qX079vfQ5oLDbVmdEglEVmGzcys1QD98s1ftwvctTX6WSk1osnUgBAPN19GJFHSZI7t7CFAnuzbeTdCesou3RbISloBS5tRFtcM5JfldOorzBVN3c963lGVy4oq1K9Hdmla5AnbgMCQnqvjCFhF0YsqUQQWsZvFdIQjbdurZYhfgNqSkHpcxJCksk", + "internal-configuration-and-switch-control": "UbDApdiAonWQfU7m3MMN6l5iTOM5g6d3iQvzVN9k252hR1DMOpAMDFXotJtCQGF0o2rjPADRxF1gHE3nWv1zaYXvIqZq6wiuyJFnbb7AQ8QpMLEA8G9aE6GeoFEm4OICxo0IzZah71zLEdeFTnPqmvEC3bZ7ZHJp5BZwsaOr3n5zsjeeG4EUraxmdol555m3ylrTnfkqup0XA6392z3uJsIPQ4UW18Rrtik", + "label": [ + { + "value-name": "6GkE4i01OGM0juAxNB3QD2KbGAlBqBTw952dg3e4JT5Ufxr28vTDxvO5X", + "value": "GoKAMTxPZNS5StYPnemG8m3TZsgFy6PeurG8deX41P1Li0sx6Oe6ah01KgHamogIHXRU3OQWwSAOK2eQRsWTBOVd5unjSEUztDmwj4kPWUwGXKoG4drF1eTYI8asM4U7H8v0cQI1KeHzQY7Ubzz4Nk3ot5Q79CfIKKAXsaY5oxE6" + } + ], + "selected-fc-port": [ + { + "local-id": "riw1oI7HLLlFCjjo246laI9jAlvk4V7w5Dptdx2YinwMHP3JU95WS67krCFwpMUnpjQCQTt9gZVXGYzA0wwSCDc38RrpDlMUFvpnoSowJcmp2NS2bgUFM7AUQ2bmfY8UtxaJhy70Kti", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "82PjiKY4JzQrt2FISOvdlFOD5VvQhFDpHkBSWzOx0FZlzE4jkzoG", + "value": "cbb7y1g6wGNJhxFImdBT4WkA0DVr1Bp5EB4culiT1YCan9KJmluiaOT2jOuchLhVemZJHauA0YK" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "yeKbpzSAxRexQIo4QCQmizwdkmpwLgSbmunLVfds", + "value": "kRP2gLSKt722D7fZxLDNvO1RbMMrR6qbY766SQQlXLosSvkp8X4ED5nPJ28t0qEYxCWptNKiq0LivXAEMwapup65r6ysw5i3HfkaUXtkP6ud34RPBT65a52CbBWIG6DfdQq7NLjuJOHMKqtdjrauwdYIOMimSNB6DT5iwhNf5mTHNeN6GXsc2iMI444PKyNfrSqY1556rZGedtdTixYlQC3Mz0tjqgyR1YH23F1nEz" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "7m7mIBESixUBdgOu2XhgbhRSjdkjb4GbjNp1h3Lrtx2GOI3IykQJtICMNW5ZTM24rr5AmI1PfWo3wjD4vuOZ4iDR6BIRfCVG30", + "value": "iA27QYnLvypr4Lf3Pxyyw99noLjXHb6ZM0YuZefmMwNQhVLYkkpQ" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "fc-route-feeds-fc-port-egress": [ + "gcuMsi4gjx0zsNk2CBlR9Q6O0o42NAf3MJQ6TUf4j7EMUQOos17tRdhJumDhOSktC2zvPOA8V6MHWs5gtdKciTWM7rVWk8hWaQjZxL0kJMUGfZOI4qVfcJTjaP7mXoaZ7uRE7RQRvKpKC5lyw8NIRH1To1gdhq4oMVUMELD2nUEZZZqv755QMZC20K7h2cyPZstw56ytSckR4Kf3QcMubop30wl2ITJIdcejaEM2Q6MUJTQr5CV9SccSJx" + ], + "is-internal-port": false, + "role": "WopAwNesgI7zRpE00TKx3hU0Q4Hws5eglEQRjWczFj0oIwgBp00kiUd0YUwiRLy4hgOA501Kb10TygmPgm2q8fr61PgTAOPJ5DbavcMG6MsEUGla3nt3uUawJqpc76N4KZe7bSOhwgNqW1sRoVVTHXhjfGvmMaq", + "address": [ + "cmtp45lIwdcPDkgmd6Wg2B9p7I0QuHlGVG" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL", + "address": [ + "g60kiZZR2Tw6EcW7IDYKK4PQjoRCG5UXbMhmM8dGTKExOswp5u9HqRyJfh" + ] + } + ], + "supported-link": [ + "WJeIc7GN1Rrmbdn3v1LTrjrh3krYdDb9eiKihq5i9wwdBTg6U2SdlbnowOeBjqDxAnPRFU9GiFTTqaRd4BqpFNF3tTEMb9jLw0C3UDK4aDPBNzOR268HUNCfz92KilwPm0S8ECdG82hNtXxw4FdQlQ5UZ7E9l2YzVJzrdM7lHh92eGyadM0yuYklXRuaTlBG4b79PfvowwrC4ZN9DFI7vUktLHvxU7dQ" + ], + "label": [ + { + "value-name": "qDm8K3E9l9kRKjq8ZdY3VW54M4IgSRbjuqr6tYfG7ApR", + "value": "QRKVHGQELNiQnyIfCTB2dInbX4apt1abKN7stP6eug4SOFZqqAkDiIO8EYxZRAbunaWQRUWeaTYYqXhQpBuAbaIP17PKHSe4U2MDWJR6uPXUEeK4H6ET9eA2dhMV1TRVVwzK" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "2fV7NluTV33NnQX25ePr2dX2xZBvW2oQ9bXWwkHjfD7ClWwqadS5qH7", + "external-managed-uuid": "HAlvuJdEU3sin2uCFB60pDjzQ3w9CwYb6jGBUM7GPzRcBlG8OM1dhcE0fb" + }, + "fc-port": [ + { + "local-id": "A67baK1etlpOYTND6FyoAyGCWapSLdYeb", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "plIqr3MQJCCw7I4xY", + "value": "5F81HpLsCCGFAX0aord2aXwMlDmh2dN7SW0rlMLQokvYho0xHdzRaXvosKFuXtBHhC0CgLkE5Qun6uUNzmxKbU0EEF8t8C2p62UmOeSTWe82A3I9hfLs1L6Gr71zB4RH6L3MRNyG1GABBiCSpodr9bZAa02" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "Ygt1OiFTL79H4KxfR3O8KzFm7ELJUt9KBCDiNa3qhc7eWwtOAaOcBlqI0crMxso8XTiK3l2dx1ruyMa0WY4xbu73GrPdT5eIYwk2Sm7poyLOkVO9LKyXeG0N7I0SN6tEvNyn2FEi5i6pdMyRw7OCFGpEoio4oRATx88zFFRKXP12BATZzzB6g1CEb0ArKad9alAPSjrP8tSB3D", + "value": "ud3stW4Z7WszGCMHNZhuSAWzIpjbkXDG2H0nv4eD0G4zjIgYzqkj08TBx4MJTqhVZhaulpZe5VFgDV65droez9PZ6tIZLSNK9X7ne6BkU8Ap3Hu90TnzU4y0p90b1FN2uUpJTS3F0v4W4z54kkw6oW7" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "WLsVonzf27N3Oowhy12Ypfhyi81t0VeXGzK4OjbRrZM7fboNcqDBxM1QUUjVPpSnYujFNvo6ma5BdugpMMSkyMatGlooK8DBuX89kwgyGd1MHh3m3WGuAIX83dwFd28HZgQbMYJlcK7LTa7XYFjyfgHal5Qy7Y7Y7X1TWK60mdLggT5eqoNGwmQRrGhzxo", + "value": "wlrp93w9qBVGRGD661LMp7D8ybpZANh60Io2LMbbnYJ7Ee5D7QpwXUEnY3fqIwxJ6NLRzOVONEVjT0W0Iepx03NYZ2pHqOiwBVn2CaIpPwAAoxs7LJwLNjCEd1dDHo9ajp4VzMcgiNIzc3GPM4sro45BXbfwzgGSxKG7xKfH" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "fc-route-feeds-fc-port-egress": [ + "4mMzeiMyJw4C31wnbQ6aNwW8PFYB3HjZ35zhfdHYBMtFNZURQ01vwQDlnuPjb0a7XJodOY3qKwXpoR86R2BgS7tfBiqMiBT8cal18gjKN893Za9IcCY4JkbkCC7NdSVp28i2oBM3JW" + ], + "is-internal-port": true, + "role": "o070nOIqLfnl8SVGqVcmZxngjyCICKFSCESZksiXHxiQh5oISs4S0j8bRCTmeq6RWRIgj0dTxnBPtZplkt5cM5nvI8JWqIFmzouSgHLGWenp6MDq7ICTORgoRSchASv18ZTgyxWuLbMRXh94ZDPFuYVdQ0miSRjSQ40gBXLf8p6YG82xLK58I0lq0IIKr1ua5vqzk3OssMi0Ulyy5DGFvT5oBN83Gv5D0vckzSETxXUjasR7XpMsjJ", + "address": [ + "EET0qaJb3MQVaNJ6mGby0zEgvLWtCMj" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "H5K9HPriJ6lxRCTCdL09CtKeCCM60BEHyoIf59qO7DdYf6AsKBteW6lyI7wIA2h8qZfo0Fc7iq5poGJ09d75jsv1r1C13L1lLgJLWOT66Qomw7fxcmCnO7hf0T8Vw999pKVdqGcwoALVz0kMmX12Wi9P3hCAqDJHgwVG475tzQg0QAM4pG6eYf3UwxuOb5vruiZyh4TQU9RCCvG13Ef2TaWhIiX" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "vrhpgi03AKdAevuZa7yhLAVS9Lhl3Gxr8PQo7Ijzlx2zUor4vZd9z9TAUbVQRl9RaR79AjJNQDmC1NzwEEx5NrFAutilOj5QacRCvspd5EI6jhvYV2VBlt3" + ] + } + ], + "supporting-pc": "Wd3Cw8kycbbIEsNJ6vIiEd8s733twYak3dWrd8Zqk28QvVrtj9LXeTpeXkHlaJGdXuEavwAPyAx3oYpH0aw6WWkL816jDEoA13Cwr5dZxKVVAkusm1ziPT3PN20qypSzkuXLr2CZMxMfJhH6aggR2cyP6zfEY76atVNVYpMCXyRyHrwJzFABR1qPAFlqEjA0ffNdEzPtZz", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "a01a13cd-d033-ab43-5858-782877f11dfb", + "layer-protocol": [ + { + "local-id": "YIlOQm7DJbqsgnJGx1OoqNqpGeZ3BUHruUfk8eXRigbyDV62OUqeHQDfXvayhKZME66NdWwvcI3Pv1KbV2pvTVCIiN8zp7l35sIigfNsPI9kJTvxWMUHzwhRbprAwMEt6eMmlrGaaQmLBJaxw46XBnPMM8faMTETZi7lJOvTwKx7tHxREDP7TwLxE0IqLebLw", + "layer-protocol-name": "ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": false, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": -9075, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_S_VLAN_COMPONENT" + ], + "number-of-available-traffic-classes": 20, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_VIRTUAL_INSTANCE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D" + ], + "drop-eligible-indicator-is-avail": false, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": 114 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2021-03-22T03:43:11Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_TESTING", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 92, + "current-problem-list": [ + { + "sequence-number": -31265, + "timestamp": "2020-08-10T10:54:07Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR", + "problem-name": "nyzrYuMq2d2Rd7gSF09M9LN3haYuoZrDyS4omQOgWQ01XgTug29pOWk5YaseaTRALOQZEF8sn" + } + ], + "time-of-latest-change": "2021-04-13T19:27:25Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 18379, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-02-15T14:26:47Z", + "performance-data": { + "es": -1511133805, + "ses": -1032406127, + "low-power-idle-receiver-ms": 510251970, + "low-power-idle-transmitter-ms": 405251316, + "symbol-error-during-carrier": 778582914 + }, + "history-data-id": "WA4xDG7X5AMRNbfkqK9Uq7cRerQ4WU8SmchZKhPIRtzwwPQWr0JRZVB5ej12d9Vzd4rYl8G4B7B7WjVgbwZ2ssZyM0BR9ojfsCdGKLK", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-08-19T06:54:58Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_SLAVE", + "link-is-idle": false, + "eee-is-up": false, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + 38 + ], + "tx-level-cur": -100, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759", + "receive-signal-is-detected-list": [ + true + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "pmd-is-up": true, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -882114203 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": 13, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -259418275 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "Wzc8VK45Kp7HtPEukPDW9MujdVaupMCldOm1qqYbP5KaNhwZ61O7FijT6lnv7RRcF55Yn3141LeO2CF0Dt0bEj4KEjfDaYHH3NFqQGuRsAxucdnIynTcGPWk8cPi2", + "speed": "Z6jxo2dTTxlj2yoh8WET9kI5wQ9l0cRZa3oy5CjQ9F935xkduY6vaGsGwuToGDfIGEgDgAthfvdk2ppognTq3eZrISPgn4YVI6yQGU8NpdZjCoISLtjOHa7hUWxi1ndJuEsayAQXNP8h6QaRclyLvF3pCszvQN6kjymR0cGF2OX8x7R", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_NOT_YET_DEFINED", + "temperature-low-threshold": -57, + "maintenance-timer-range": "nJYn85eJpw6elvsMf8APtmJ7P0CblxcI9a5h7b1wz7CUu4yC50ryn3G4Vaf8AjQJtN0sQTQqSscfpLRuLaU05s50Dk8dEQOZvGseAaEkDQr2taoflafiDkjgxjl3292xPmLhxhua0V4t6kAjuQB72Mfr6Au0BxxjTbsikWkkSoOQIg9d6Cc1pssn2XnwmUP7Xhqa6KuY1aGBrHOpj1iIlD5nssTOfAN4S5eYQBOJLmk431um", + "supported-alarm-list": [ + "EXfhUuJfgpuQdqAiFq086JTsWYnXkCJYzY8tkRIAh4jmnTE2cF2igVDcL01XuKO3AWpVFZvOWOajAPdMmfWC2rHOkIDOtrS3f9QV0mJW2MfCBsgPz5rCw0qQJ3F4npZCyQpy41n6NCBgXJ5wOo8lpqb0mQ4B735xTv6PolWbXpjM8gjXEjaVClVY4Zz33EBO1zwpUksRJLwJ1Pyy0ItCWpsSgTVbq" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XFP", + "rxlevel-low-threshold": 33, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": -1806387223, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": true, + "temperature-high-threshold": -68, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_OPTICAL_PIGTAIL" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "performance-data": { + "es": -917040091, + "ses": 73643344, + "low-power-idle-receiver-ms": 1614589118, + "low-power-idle-transmitter-ms": 1920055292, + "symbol-error-during-carrier": 489409386 + }, + "timestamp": "2020-03-08T07:39:35Z", + "scanner-id": "CjgtTT9KLOhT8wTCJ90bFiTAgizbGQziaHDVtNxetOZBdSeO16ZGoL8w3HzJp0TzIxn3kU9NB8oOSuCTAurYfrma0WMpOFRocero0A3BIspsWUdpoEfDXCFX", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 98 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED" + ], + "maintenance-timer-range": "pCdNiKJNZQ2O2PmML7FujBgY2z5Jh91GD6tVQ4APMDwGkKkXKZr3Bz1D0Zeh07YEdjr4g2L2x9BJUVGwVZzozsTrr7Jsez6jKxf0rTVQ2wrOr7ceZLCqenRxusZA1XUEn1EGUrpPXQvhQInPtS7zfY7KrYckO6Y30vJUW8JMZfVPXiw", + "supported-alarm-list": [ + "WeXqYq008Pj4K7i0RTUPCJjaFehyxsntGlLwDLxMsIQdH05yTZ", + "DSitRUUH67v55y5AaZpiB39QYQF8mXbRHtlyf78leDik4nMef3wQ6yyWod5D28uKtHaIPi33OmfSBU6QXuy426Sjj" + ], + "statistics-is-avail": false, + "encryption-is-avail": true, + "performance-monitoring-is-avail": true, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW" + ], + "queue-depth-configuration-is-avail": false, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_DWRR" + ], + "max-queue-depth": 115015624 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "0HTJKSgAaG4dQhLCTNZFexRUycZ8MefEV1nxTw834c8UtUxeHoLNNDAmHzulNCZBDm0oK8jPcrBGd0MVoyAc3ayKKU5po4S1iTp3TAK62lEfmq2KYvO1FeDh1AzpwjrHcIC6jm4dzIkV8nyZSeSptozuY8Tvrc4wVGu62yjB8DpgSP7C302woB0eBMB2YFqTlUZfkaRsO8BGXIb0AdpYGh593G3UmuFHgxXBHG3nGEWvf7nPcMGSWL", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_NOT_YET_DEFINED" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED", + "compressed-header-length": -26517 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": -1903244715, + "fec-is-avail": true, + "burst-size-max": 11128, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_8" + ], + "egress-shaping-is-avail": false, + "information-rate-max": -1650852721, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": -54, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_32" + ], + "burst-size-min": -22744, + "fec-word-size-max": -22013, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NONE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": -118, + "current-problem-list": [ + { + "sequence-number": -9874, + "problem-name": "eDsDM9tVNgMADPWi7uY9y8T40oTTnvst0U7M4AIJIublc8Dbutl2Be6CD0vSnXmo", + "timestamp": "2021-01-01T00:32:58Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2020-07-02T05:59:29Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -1966, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-06-10T21:53:34Z", + "suspect-interval-flag": true, + "history-data-id": "8ta54QX1Da9CsgGi", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "max-queue-length": -1577909905, + "avg-queue-length": 278613776 + } + ], + "fec-uncorrectable-blocks": -61485259, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1905648028, + "tx-ethernet-bytes-max-s": -778896765, + "time-period": 2136389434 + } + } + ], + "time-of-latest-change": "2022-01-30T23:57:25Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2020-09-05T16:51:13Z", + "scanner-id": "63rYqjlnFB70MNNw5iDG9W9vj6k05DW3Gf16zfm6QlZu1M165wE6lNBETNEYrt2ZIV69akg1F7nGToEYVi485xMQdiPEDJDmEBnHNDAlKXTweym1Qj9OQVE35lzJW5XtykamQKzszsYN0dOJwPxeC3aIhJjdGgGfsQtis2DUmBHnOoYc5nrIqBqHcBVLRt0bclmwfZqBs0Q9gOllbM3uflbkWY5FkXRwad2pct0ElJNBx1WBF05Vl87i74Xr1", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE1", + "max-queue-length": -1970659041, + "avg-queue-length": -923170105 + } + ], + "fec-uncorrectable-blocks": 1789998388, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1430254124, + "tx-ethernet-bytes-max-s": 1181016514, + "time-period": -24164481 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 85 + }, + "ethernet-container-status": { + "timestamp": "2021-06-10T08:17:36Z", + "last-10-sec-data-output-rate": 1112824010, + "bundling-is-up": true, + "total-bytes-output": "6623857669744187392", + "total-bytes-input": "2527940180198430720", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE", + "statistics-is-up": false, + "last-10-sec-data-input-rate": -1362691599, + "forwarded-bytes-output": "3827596120637092864", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "7684369384353610752", + "remote-site-is-faulty": false + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": true, + "segment-status-list": [ + { + "segment-status-type-id": 10131, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED", + "segment-is-reserved-for-tdm": false + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-02-16T11:46:21Z", + "history-data-id": "LuR6kCrUfjkdUqWU0A1xbkQ8TCajESwiefgyRHtY1FbV50H6AJDDVlLHXV0CFoUTv2keJFdKkgyqgfoIQTlMeZl3MlxkBj56lpk54pPhGfzOvXplQKZWJkRoxpI8IN", + "performance-data": { + "rx-level-avg": 111, + "es": -1973007709, + "unavailability": -684660499, + "cses": -897793201, + "ses": 2105547258, + "rx-level-min": -29, + "time-period": 864449062, + "rx-level-max": 80 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": -2415, + "time-of-latest-change": "2022-01-10T04:11:11Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 5877, + "problem-name": "oSshGy2gZDOADqhoC13AEWVTuyh3uA2Ksu10VVhUz5m4wws0xvBckoXGX6BjGw390W9NRqzioWeMsHMR4f3gETXtZqEGWzHPvQCe94px0DbkcX3h57pBSeWRFApB16ioPNCYRTnJpyVBnYKkXaNPoJz3bQxcXPAEu5ulQJ4f9RRwQBJNDwv284XjMu", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_CRITICAL", + "timestamp": "2021-09-08T06:45:24Z" + } + ], + "number-of-current-problems": 24, + "time-of-latest-change": "2022-01-29T00:30:13Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "Fbv114Yq75iyG6Xa4NWOSRZBeryvArm7uK9vGZNNW5eD3bN0RBOBsFdHYL4y4jGq3HWJyJovHC0CGFCpgj0JYdiPRenNxVesC233LkykWqXu5rTdCMWtR6iIdxoKtC5XE80hsqChQrLVKx1fbXI2W0D9p1LKvQI1ZAaj1MAJ5exIDyXOnFQbxlkOeY", + "tdm-segment-size": -9165117, + "max-number-of-segments-reservable": 11 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "9CFJNZCrzexFL7ib46yBPK02WOhUf0BoDg0i7uJHI" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "timestamp": "2021-04-17T10:44:32Z", + "performance-data": { + "rx-level-avg": 104, + "es": -423759635, + "unavailability": 1320035044, + "cses": 876071464, + "ses": 566916812, + "rx-level-min": 52, + "time-period": 1129940430, + "rx-level-max": 10 + }, + "scanner-id": "dJ7AL7", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -81 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "39xjul7vRcBq3JyDRnhAtoSUCTvGyzWBAtV4GUrpY2P2LfxDuG5YWPKrJ779G3K9ox55rxmiz", + "value": "cdjJIOhNEdDoEevLn3GZ4XxaUQzg80kkdwVVccBQq664kBIzwgyBdXL7OkgOks1qYWla9WSr2Ynez5F6e6zj3kjJwzyITz8SnmUwi" + } + ], + "configured-client-capacity": "BuPCwknc93JXBr2SO4vfLxAcKg9zVecoI117dgjmj2jNtex", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-configuration": { + "maximum-transmission-unit-ip": 22597, + "l-3vpn-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "dhcp-client-is-on": false, + "fixed-ip-v-4-address-list": [ + { + "fixed-ip-v-4-address": "PhntaFc4dgiGxAFJoYVXxavmhdS2KuCzEZ2OE6LJm3hMDWnUUiRjleFujpo4U0DqZy6vwR6TMnxijUc54Vop13UktigfbUFakLyQvEBh20zdMLjRyH8zD2M6d2doOSq0vYR0vkaxdJKZn3QVDZngT9eYbrm0bF0yDJr0WBx1ka0H5JvIASQlTWkWfyOqdHRJiiJeThf", + "fixed-ip-v-4-address-prefix-length": -126, + "fixed-default-gateway-ip-v-4-address": "8NoRaZjUPENEYBTxqcK73lpl5w6eDbxLYVu0UNUCszgq31PtdsAgNRBSnH61TDEJr9CdWoPgQXHTZomcQOtwFWoVwnOhSkSjtuxiLeyB47u3wI7ewAK3p1QNoE48ZOkkbRCWX3x1aT4yB4N7Ex2VqTIOpEPgt9tES5AP0ZJbSFJlJokgOmbe7MVxqKFLT8pL6R" + } + ], + "maintenance-timer": 874234334, + "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "interface-name": "b5GQaHpnaSB4WFda4gaKcWkbWlsGXOn0T3RVD8iN0TJOqOZvW978XrjLEMstsHudLd9glj3d5E2vk1Sg2Zo0izDWd5iFFETiR2y4lthq7jOrcGzfyX7QwK", + "arp-proxy": "ip-interface-1-0:ARP_PROXY_TYPE_DISABLE", + "statistics-is-on": true, + "maximum-burst-size": 19012, + "loop-back-kind-on": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "egress-shaping-is-on": false, + "problem-kind-severity-list": [ + { + "problem-kind-name": "s97I", + "problem-kind-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR" + } + ], + "interface-is-on": true, + "qos-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "maximum-information-rate": 1021285258 + }, + "ip-interface-status": { + "errored-packets-output": 441515644, + "last-10-sec-data-output-rate": -1366756291, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 1602566380, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "4BGZ0YJyKuG17ELrLtDMWmxJOzRpoljsORjHHUfroNlns6P5zkRnyh7eIYD6bWrZFKynx", + "fixed-ip-v-4-address-prefix-length": -114, + "fixed-default-gateway-ip-v-4-address": "Vt1bVZ00rcJOK0VYALCHWq0O6Cml92TXvN8iM0a5cTUWMHUmtoVhPV5Nqk0zeToJyoTdo3isW4oAMbX7rKogyuVYGVpUHOv7coktrvVfzcQdfFkGpJXX5KVLydF712e5qrqRWmYvyOJNt3lLEaIBVwmtJTsCVGzd7043eVrEJ2j5XEQCPq5KOs5pdx115te5lb0z6rdHtwEj2mVRN0BBk" + } + ], + "broadcast-packets-output": -1866434807, + "dropped-packets-input": 822190046, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_NONE", + "dropped-packets-output": 1526501218, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "q5Ur3fF8AI81OA6oVu2exp1o4USF6qywolPrsnrV5zWM13aXpc3WBXlFJddPvDeTQ3cjiD6o5226XcVnoRbSOwpxBue70kSQgX1ys7Ox2QwZ2rejiq3YOsnqXCpXW9F4", + "neighbor-ip-v-4-address-list": "HDzOrYQiuIcOOv6eyX3TklIOKxDTcHSLcjsEhaOES0sHoqNWfIHAVpgxWLj1tbMFuebDpZ99SBQ8Uw496EB23Sz0DS1YVFwhUzVjr4sjybrsznBF15zXX9PsTIjPnP69gTsHQN0oQjIpzbWsgwhdx6yqOR74y6dOZywPdo53ANk1ZgtfELlbJTuqCtu2zzQr7e8kvefXTzYSIj0mWdq", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC" + } + ], + "timestamp": "2021-01-04T18:51:31Z", + "forwarded-data-volume-output": -1537340017, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -503403681, + "last-10-sec-packet-output-rate": -1679108497, + "vpn-binding-is-up": false, + "multicast-packets-output": -1390811799, + "broadcast-packets-input": 357723210, + "last-10-sec-data-input-rate": 154719660, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "statistics-is-up": false, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 1985902888, + "data-volume-input": 465510424, + "data-volume-output": 1986124692, + "fragmented-packets-input": 1217631804, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_RANDOM", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -766297179 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-05-01T08:38:46Z", + "number-of-current-problems": 101, + "current-problem-list": [ + { + "sequence-number": -14298, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_WARNING", + "problem-name": "9pbVnD2H7RAkZtDgzjKU40OF9br12af3ziQWWSDVK67BzCR8Vu2ZuJwvUQxO0MJAWzoKrUG30FxrioAdKu5f5tCRj9xcN8MKH2u1W2WWAtoSKQXucUBaoe1znrL3zpN9s9ao46dEstocjlGn8axworXDKBGj0lksnuJrtWXNplZAyxXGHn45G2BqDhBvDWQ0izjLngqEtpe1P3AoiEmYyXo3e0zJOpB6QMKd2a", + "timestamp": "2021-04-01T15:13:14Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -283, + "statistics-is-avail": true, + "supported-alarm-list": [ + "u5g4cSfolbpvkU92G8hLVJnTGe9AuWwQ2NM6x1mK4LgoFprlqAZdceYSs7lOWREQwiWVjaGfVODs5WOvpFIBTzldGG1uqxkWP8K0iqfd6KGbHmH", + "ThzMQURptKTT96HQerQpJXCPza18oI6hRFVAsEZVoKGxInfXP5eqUQguThC9RJjIgeaAT9n9M3zujOj0MxqygG21XxaG8thgArRlteufaVBtKVtokTWAARtpgE6oZfwzGnU9uhgE4S7OFAcZt1sVSVl8rjorqU06iN8MWoi08pHNZLNkM7gE2tMuEaN45F2fkaTgrb9zsQfrt2Dg1TU3ezpSB4WyKZN41ydsBm2349mx30N4LAZ01hSCl" + ], + "information-rate-min": 805136234, + "maximum-number-of-ip-v-4-addresses": -13914, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "3kPqOnSuVDaRXoOCxWUqW1NR5NWYfxRaRGAxVl1RY4IWkoqRdk99dPSiuOhJd8LXGluCyolxkVlEcDnpXpy2eqkI6BjcB49ahvMQTZf5UsBY5ZnUg", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": true, + "information-rate-max": 519675788, + "burst-size-min": -31904, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": 24706, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": -24400, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": true + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_SERVER_TO_CLIENT_FLOW", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": 387982464, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-01-17T07:16:34Z", + "multicast-frames-input": 1660992862, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": 337851842, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 86995338, + "dropped-frames-output": 51897900, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC", + "last-10-sec-frame-input-rate": 1945778300, + "errored-frames-input": 333136530, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING", + "mac-address-cur": "LN12GNxTKiCvvLWVR4DduZxBkUBo4DvPioRY3gJNzebWR7JAbnNFechy6KWanjSFHBwCS7qjdB74ARwL6jqkwzKu", + "broadcast-frames-output": -1992891993, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -1712832151, + "performance-monitoring-is-up": true, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1263833007, + "dropped-frames-input": 1282283240 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": 15357, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "WQGdl4gQW3m388LI611I2yc80nTAn6qjP6x23NSRI6UJ6Gr5zsNtSRBTemlBlMMaSj4VZWMHUzi17J6G4LaWCLPI83btPXvHhzv8n9H9I0aPJ8wNTyCvbjdjmoEbe1TvAgvPpcZ0c1POadB3L5zXpE8LVFX9GIw9Y1YfdPfiR561az4WFvL42TP", + "supported-alarm-list": [ + "E67mugcv6sAWHSNEQGPqKDX8o1a9I7An5zBzHOWN8oBP9gmZW3hzGeHW7RXQYp5VYGmFmiluyWcH5yz1BQA9Xh540UMYkJTii7QEpb9YZlx4T66mPynMIkIIenzy6kJgsrVRC4Htp7yadwo2WLGEXhfbEOCC8dTAEGk8KTB10136pr0m4zS1Q74mNyQWLBohhAp1u1UmUXskglycUi5Ki2Y5AOT", + "qavHKVB6OntIdNUt8kG2DDEVFuSgjEuBOZaqMLxA10beNXHOifINTfAqJsG2Y2DM2O5GrChkCkyhh85rfOe03OrM97H72cM4SRCctTwX55en5cOk0VlVJMzST8SVlER5nmhQ7OFdLTsQ58aX3vSNhkx3shQNNATaW2S" + ], + "hardware-mac-address": "XAwWDQpCo3vZUEf5TIHYoj", + "maximum-frame-size-max": -22471, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "link-loss-forwarding-is-avail": false, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -8094, + "time-of-latest-change": "2021-10-15T21:34:09Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-10-13T07:37:58Z", + "performance-data": { + "mac-pause-frames-ingress": 977295608, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1192260839, + "mac-pause-frames-egress": -1594564353, + "mac-control-frames-egress": -1569755303, + "oversized-frames-ingress": 168458210, + "undersized-frames-ingress": -1597487193, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1346266749, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "8slRzxrjE8Gf6F7RXn2X15fY7J2KDCpEXCno1PHFXfN3VUMSaOH3LW2SFWCarTOgo4EpTlXQAKLnwp7ydOCYKwIhklkD60Tu4xUXKRNdtqARPIiUoMK1atiuGu8Mv1hzr3p3M4g7vRYkr87PURQ4k1r0vzF0sWsLRRPDV5CiOsD7BKXvtFsO", + "suspect-interval-flag": false + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-01-24T09:52:46Z", + "current-problem-list": [ + { + "sequence-number": 12339, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "4SUOf6fMG0bNsb", + "timestamp": "2022-01-22T13:13:04Z" + } + ], + "number-of-current-problems": -78 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 122, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false, + "timestamp": "2020-06-22T08:01:36Z", + "performance-data": { + "mac-pause-frames-ingress": -1154724487, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -720072991, + "mac-pause-frames-egress": -60751663, + "mac-control-frames-egress": -1585273399, + "oversized-frames-ingress": -445786093, + "undersized-frames-ingress": -1642851251, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1797442907, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "l0GDhuqMm26o3I5nfD4egn0z3T7nrOSNGqiPVIBhDIxGiC4xg0EonEXip4FRKpwrPO8CpKT2kjACVE23wGrTcg3ClAl5ZRoHxxbWh5Qtgr53XZ7mxq7KHbmULHZDqgkPNvEWsupANmEDmDZTV6vuhJoVigyIwKyj74fAyw2eSGR6jIS7On" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2021-12-05T02:38:46Z", + "performance-data": { + "cses": -57809785, + "es": -2001514775, + "rx-level-max": -19, + "ses": 1360041180, + "rx-level-min": 105, + "rx-level-avg": -18, + "time-period": -1690434493, + "unavailability": -1036862685 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "FukNCDS3ST9UlHG4B" + } + ], + "number-of-current-performance-sets": -22 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-04-27T23:24:28Z", + "performance-data": { + "cses": -435449645, + "es": 709242366, + "rx-level-max": 83, + "ses": 1715237958, + "rx-level-min": -45, + "rx-level-avg": 38, + "time-period": -1546070607, + "unavailability": 346375264 + }, + "history-data-id": "kkOGwtj1lmT6nFs4eoGzZ2yqJcXfo6oAid8OGrIUFt029k7nIFOAHe0iqXpGWN86SgNrIvdnY5i7qpm842AD8BVyqc6eZelKv8bdDosttKtT1HU5KuASXnjozpCrEPb9XmesCGW5jhRkYDiAZKtX8EdH3H0Hxb", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-02-16T01:29:38Z", + "number-of-historical-performance-sets": 15632 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -28600, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "0WYLtHhBT06uvOAsGuRCQoFoLI1QliMl6CYsb7348aqDQ05pmP1ddy" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 12965, + "problem-name": "G4bQy80SUR2RNAlVJsojmDvW6pLZnSD3XGLnPL7JC1shCN4d8twu61i5i34FVzAK8l0XY7ys90KDFGQF9m18gjdym96", + "timestamp": "2020-11-26T05:42:47Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2020-02-20T06:06:02Z", + "number-of-current-problems": -24 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "6fRt1ndqmz7TqDpfKiLwPhopIaDLV1WThNea2sAp1zajdzrPJ4drmCQWMmHznwswbGGe08vTIF5NfwCYAIhWk8SYmsxBYR81pGfiPCbpig4pMGffgxbAxWyToXueOuf63noSZr9hIdymLOB2lFuSB3DRS75z", + "value": "kFxH3hzmqQ4vhjg5MaijF2UAFLsEIT0VyxutO3Q6MMB3XK8CUiVrkI1Zlmv4fwZG3t1KpJIbocedWePIwL2Ql3HGh4KpAB5wXY8mIQx62DbQR1rnEt5ZwEFGIi5bT2zQ0H4IpBGk6SaXLBcp4hgtVV9w5" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "h4zJ8b09DNnPc5Q543dgipiBcEPJF8DW45G48ydLlAApxiuCmISE727byPMeXp2TuAXD8agmCRL998DnQnTPi1SQQEWFVZqirfVAh3OTUz24HyjpVd6d6Y4OuSlqRLIb0vL" + ], + "fc-blocks-signal-to-lp": "r2l04hAuAZqFYvLOrzbkUB3xbepyRyYiAjbxsL13CjIAPmhgVsAIVw76KxwC5mUyG550IY3laENZ047NoInj6vhQ2FkZ27pA4mANlE0vaNm2KtH035k9st0m9kdbrDLwZdbcRbzTQVVspvtksFuU8m89Glc0QXoQ3z2UCuGsptNGYg1iNv4VRcXpq9hgZxY26TOAnuV", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 85, + "current-problem-list": [ + { + "sequence-number": 4428, + "timestamp": "2020-07-06T07:33:38Z", + "problem-name": "0Rtm07RK4GXv30BiHot7EdBmoeji2Gr3qUpqT8aXOZlKRW2rcvqQJ2478nhaWI5mCnMnvOccFxWptYQGu8o5at4iIllE3qSxNwUbkYnSwjhRh7pD7OIi9EsRZNoU6g", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2020-10-18T17:40:35Z" + }, + "air-interface-status": { + "xpd-cur": 32, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": 0, + "mimo-is-up": true, + "tx-level-cur": -47, + "local-end-point-id": "VlhnJ9auoJVMUJ9lm8DlGQqo3tERDFOqSXGB7I5nsS2etbrQb43SM", + "rx-level-cur": -27, + "link-is-up": true, + "performance-monitoring-is-up": false, + "xpic-is-up": true, + "remote-end-point-id": "8QWMzrjnKbdqEc8BzsttyXEZNQVQAIcAq0fZsqf4Csu8EuK5Xdzn25nPNayfSC", + "received-radio-signal-id": { + "numeric-radio-signal-id": 27396, + "alphanumeric-radio-signal-id": "6dWka7Y3QdoNWKSF8H43Ayp49z4VBj1IoQ2zXSuFYSsUDdsDUwym4Xq5xm00GUI4KCvznZ6lKy7nDzSyYqM2o50NrSN7Mo4o0rXnj3A3uIi79ax7sc2QhUvIMbQrzMPz5NPoIhj4Zt41DB06NUO4GcNtnvUO9Bfeg4vZmG3da76FBZDgTkdsw0VLnHzoaOurLZqZGl4" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": -1914153747, + "rx-frequency-cur": -1542201463, + "atpc-is-up": false, + "radio-power-is-up": false, + "snir-cur": 17, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_NONE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-02-29T04:09:52Z", + "performance-data": { + "snir-max": 37, + "unavailability": -1977015537, + "rx-level-max": -116, + "xpd-max": -122, + "ses": -1621534685, + "rf-temp-max": 31, + "tx-level-max": 101, + "es": 556550128, + "tx-level-min": 83, + "tx-level-avg": -80, + "snir-min": -77, + "snir-avg": -113, + "time-period": -1188196291, + "cses": -1101421449, + "defect-blocks-sum": 29256, + "rx-level-min": -27, + "rx-level-avg": -30, + "rf-temp-min": -95, + "rf-temp-avg": 57, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 82, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": 430744482 + } + ], + "xpd-min": 103, + "xpd-avg": -98 + }, + "suspect-interval-flag": true, + "history-data-id": "jJ39Wa1575raDNmXABbSAuicISdpe8QxJLHyVADUF54iKj7kUi4nNnzn7MElNuLw8k43UIQAFUKp5KC02GnHVO4UsB8f5TM5dI17qRzXDcfJWRJQp6ylMu7e5fu3880lQ1l9SU6oYd7U4ILmGbHsxOGv42q4aqqTkD24p0s" + } + ], + "number-of-historical-performance-sets": 32383, + "time-of-latest-change": "2021-08-15T14:24:16Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": true, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": 1343123134, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "VTmFzK4si2In77HTZkVF86BY431cbNZZymwZYBrhv1EC9en8yiGzg9xk4yo7do6DKDDA6WRBYo6ZCt72EFBUG1fKzDSFTQivlN6rCPVA51rHmqC06dVMe2pGx9lrRDWdj2wVSrnXkOxHe1HceuRlwg14hmv8RjdaeKX63kVg0kXflwrs1aNxqOtz2YITaVWoxTmt69J6mylH4F15POv8uYHwPhiZ5enuZBX5Ky466pGbWH", + "e4bICtMbnNMIBzcydSTH7MhanipDYDT5HXNciznFe9fPAjgOb9naVwkaOBNN7zSOox0GYod4pkU0DaGOb3Y6sa8gM", + "1eI4tVKsOqzbIiBbLvM7o9H0YLB3yVWz1wvurfW8xnj8GMjjhYqy7", + "1W0TFe47ulO7z26acFLf4672VDlKOzmHoeA3kE2P0JWrLUuPrf4ne4h9HDLn4ZWk6ofq2ifU14eEQItiXyFbCXdbsYqoYmB4KQmE0CrTyFxofTy4j6gNVlYfjgD9Ce5eXsKXWbJuI8KX1j2cpaZcvPrG54IzbFN07qXVByhcH21AlVNCXMOkCf1zbB9egOe", + "ZpnKuoH1eefdV4BHYME6ognV4cREJr0AQnllM2mS8B53FGCwl8CJpZEt3nZMG0fxnAK1uYUCrZyZyavTj7uIZ03Un2z42Otig5jK35emXMlnPQ88QCIHCLtZNUVIIg0QljsghHDelYBaHJaplSYXvrOje", + "EoDMSClhrDziIFx4E82CSsGRzXxCU6KqugcfSpwb2XtCC0H80BCS3iBu886U7JkBZoQRNeUQbfkF7TO7uiRqBtUBt1vAKP4BdUk", + "LkBv116mMsWf7QzVDcXC33Jf921hSnEvA81B17YFrMUyClt8yiKBdtInoJE8ZaErax24w0JXEEv9ZQhp111emJBCl7LcahDcOxgkq0h4wEdnuuNvnGKKhdeudZGn8bzWJI89Ip563jlqN0VbGxNQL1kQTT514EYFe6GWoMUj5gJKgxNP4AFH" + ], + "tx-frequency-max": -475409783, + "maintenance-timer-range": "QxIjbUZd7WMw0J0f8n6dZkIEsTeIjtR90rl3dchc03I1NAgNYeSPqAlSuzBN2kOVL1YZefbejU7Ym", + "transmission-mode-list": [ + { + "transmission-mode-name": "2HV7eM0rjAtDjO", + "transmission-mode-rank": 1040681740, + "supported-as-fixed-configuration": true, + "am-upshift-level": -40, + "tx-power-min": -21, + "am-downshift-level": 59, + "symbol-rate-reduction-factor": 82, + "channel-bandwidth": -1521565545, + "xpic-is-avail": true, + "code-rate": 68, + "tx-power-max": -124, + "rx-threshold": 13192, + "modulation-scheme": -25801 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -98806973 + ], + "atpc-range": 1, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": false, + "tx-frequency-min": 1946863454, + "rx-frequency-min": 867129142, + "type-of-equipment": "4w0oSe9t5GMog8rl4AcDi82lgpDZvSbsgbQ0pZtux8KNgc0cMcPWkSis9NsExv6OGWOXNajci3Zq7ZDM3kIn4SQdFaK5FQTdFH2kRlx1gwsooX2r9C", + "atpc-is-avail": true, + "supported-radio-signal-id-length": -31535 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -105, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2021-04-23T04:27:19Z", + "scanner-id": "lsTEct9cNVcocjN4IdJrm7Q2xlI9CbZXvStHeuUTp6hChWGR1hang1hOmZPY2ONyz9fND1yVZHpgDX7E7i1nbj3paTgdH3L840NAUlnT2M2xJ93Qj5eughUq22vK5gK29yu3TROODQ", + "performance-data": { + "snir-max": -11, + "unavailability": -75426615, + "rx-level-max": 123, + "xpd-max": -42, + "ses": 1194486626, + "rf-temp-max": 112, + "tx-level-max": 41, + "es": -1447299545, + "tx-level-min": 41, + "tx-level-avg": 35, + "snir-min": -114, + "snir-avg": 0, + "time-period": 1454571458, + "cses": -333543615, + "defect-blocks-sum": 26720, + "rx-level-min": 113, + "rx-level-avg": 119, + "rf-temp-min": -48, + "rf-temp-avg": 4, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 7, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": -141732177 + } + ], + "xpd-min": -10, + "xpd-avg": -97 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false + } + ] + } + }, + "label": [ + { + "value-name": "HZ8gH8PEJ", + "value": "7hye1BbM4" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 24605, + "time-of-latest-change": "2020-09-19T19:28:04Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-07-31T12:52:07Z", + "suspect-interval-flag": false, + "history-data-id": "K6sYgOrmmLJZFjjIu35VhZHH4xb", + "performance-data": "2hkrrwkZy9SF6w3xD4HvbH62zP2I1Yu38OvzdPqDYaiWGemji3HtKNncupUvfozf4WOhD6Vug5qWjM8BPPWsubEYAqlIGUXKIE2mKPQ1U8P6VXzCEo48zA62SkKy6zjPdd3QUTRG1GMOwer2CnbbQ9dItP9Apshuxkkjd3Z6CEV8SeamBdxjnD2Is3aRvreULydYu4X" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 21865, + "problem-name": "a4WFEc6GOFKHnNaI4E4NwL5Ih4uz0MBaIxPmKWUqtE7Qk9rgNvWk81Up5oZ52sfKZXYBTSTeo05A2oRPTF11GVrLbiQd", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_WARNING", + "timestamp": "2020-10-31T03:25:23Z" + } + ], + "time-of-latest-change": "2022-01-05T14:07:28Z", + "number-of-current-problems": -52 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_DORMANT", + "statistics-is-up": false + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "vZGMI0KdadcVG1Vc6ufOvPdGxr6m8ZJDYphyh2Lk7Y7NR2ZYw6ETVJAlayzbxiOoH6WQ0Ia7yhMpjDfIBTBpC3KFtbQTtwh2C5SuFVt5c7voKC6mwzL0vnxYqnJTU0NoYxLDseJxm6VYITc6kX", + "tdm-container-size": 2116126454 + } + ], + "supported-alarm-list": [ + "HBio17Lq2127TpjVd6RvT9FzQtAwFCZmd9Ke8nE2oy9aXkX3rGykP5LFyd3dP2zU3c04zF6Q58S3sPYTvo5dtQS24W7LQzGMLGQcdOUjWMept4aZsgcV6WP2KXGBwef9UXd0L0", + "9rJVJZtL1pTlZo8NvrPHyPup2gB50vc1OVWpMpaGPV1Gc9" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "yCMhnGa2W8sHDUOejac60NZdTc2KT" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "performance-data": "FYU4RRwTffA0UC1ApsdBKVOmTMQFzVdfT7bCQznXPYXJsYcRjhsVdhiYV0vuVIBGHEjpeGm3wbEY2IQl0ag5rqVmqqJl1kUIZ505Le0aqE8sfQNf1Vckm7HMpi0quU1lZ1qCfqEF5NZcvMrwAvRWCqA1Ask4elq5mQAt9e16T0ipFJNf6w3IODBoYVtcgTiuBSYKYRQSR89oJW", + "timestamp": "2020-05-06T04:50:15Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "9c1y2O1e5Morf8hS78IZSJ0g" + } + ], + "number-of-current-performance-sets": 112 + } + }, + "address": [ + "j5iZ3o5CI8W1Kksa2dJ356pSvzxkMax6fQXi62UO2IHMU1WPfxScw9W1IldnwLlDtaOzcAgebPT5JPMYfw2LFREgcRvAuIeXSUp4uFaFm3D5Lp" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_BIDIRECTIONAL", + "name": [ + { + "value-name": "BAljUMy3inUxbWJgQEQ0UOsKfrIpfqEISZTEDrHVHBkSq308HQ1uwteMVOb2ePK6HECcXj0EVkodoolX7mrvQxhLmlNs2prJ33WTnWxagOfw4AubPNHxdQazbX1eekPaoL3DzsFIgUelmAo3gXAtOK2RzV5O8VYoyT10lyIusOPGh5Kx3k0R5UAEHGkHta5", + "value": "36LpwlTYaAxjFhQItIrqu253AhLVsQGvPsMdNx4P7B8FKQfdyzEUtBYVSBQcjoI0QmewUidTTmqvcGID7epAPfvAQdE2te2cB8InqVgb9zGe7hRevgOdwbFegjgJybV1jvoCjwFs5eGcvpqSG6X49u" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "g97Cd06IJ60cFqgK1MZUrUt110Kt98mphu2nu05566hDoxnqcfcD9FFaxhwHpS6He04A01GZ7PCofSOr7048GBb5THMarLRGDN8EHOvGw74LRScYL8ZjCaonRbxaWhIr4R5Dxsk3soOj90aU11dDbB0UEx4sONULwRo3kA7MZNX0GZUH07cbAc5fB2HiHt3dljgFUfjLV8Lt0F20Ee46i1dT3NbKg6PBq68cdjX0sAts7vkDJoJ1qXNlCY", + "value": "S5NmnLurROgR8QdsXIMsk3bll00GCZwnWcJbX5CGTKyTALdplSRFVUT8NTOhSdEGpfJeldV6Xl0p65OjXxZSkS07DHgoMV4b2Opn1kuRFug" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "local-id": "8hYFYpq9drWy2K8eCj0zWWerxvesMUOUbEr94Ra9a6H4RHbl0bUXZ8gpvuR9ox3z4mA05L98RQ4AyfWqiIfiJvHeZqofQjOUyhMvUVDDDI63X2u8CJqlfZsepQu71aTzjF5dAAR6aX90RD8lnyHCx9IOR4WS7HkqnhEPRnV2c523Iag5", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "pOj1euO7Fkv9D1P573Ebq3CaBA8xKCI1i12onRv23", + "value": "cyU1vTW94e5GoG9oeTTWU3PPscyP6BIi1CbwvZGrdL0uj9Sx2LlOP2D9e3YlEGvFaH4xGKZMnZgG806aMrYtuuCAxsV49rBb0FJyhIkEHslPtrR7KHA634HBwCxFV8RNGsmXayCJ1Pqm8htSQ3ZU7GnDaUbYUULAmZqoy27rJxNRGgBwbAii8FNbrY1eKMG6M6uc0tDJ0iAGy45JEnTFVGIexJshv" + } + ], + "transfer-capacity-pac": "igYR5lGuGo6ycIS46itOq3BpZGQSIqt0HjKMEq8kH6STODXMViAde4C5CkYkLjdsCX6gf6sWcdITQFFDY8Q44l9Gx7Tiq6C2VAa2GDRLQzwy6bbWbT0f6aOE9HWsFrms1xmAa5dSEJqDMBzYms5tCT7DsV5", + "external-managed-id": { + "manager-identifier": "H0qqz5T3OUtDm1ZMFaexptkC7TktLTvsLVKcTvfHhJdDC4p9eDHEY186NsrydWSQJu3u0achLpVntcxHIedG7mEUG5kUTcCvHxZzI3QlsDJNQ8vqeI6lWL8DIspCx1Z6rYF12nmmTXaB5x1b77x4KFHlZYXwZOuiM9jGpG3iD5TBCUMBTbF", + "external-managed-uuid": "QeRIcG64uBm8CGH1eCbRH4kbQ7MCik81yRBDxHzTiN1VlIOzc0jTWDWNCJhNVhO" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "2b830e0a-b58b-c573-23f6-86e0968a0946", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "mO9Gy2F3JWrnJwyLcP152vWHZ5dq22PoIZX81CbCqDZ11pF5eG2gbRQ2WVkYP2epTbpMGAgY57SYwx3C5YL8Pt2LomB5gHu9LTVrl3hja9hyyd3DbODShFvx26CiF6kqZ7" + ] + }, + { + "uuid": "2b830e0a-b58b-c573-23f6-86e0968a0946", + "embedded-clock": [ + { + "local-id": "4K1L7DVdomFsk8NUKYBheb3NrLOSkQFgBG1IcWWsatUnBz9dyLmEWqjob7gnPNDqmw1qlPSnaEKL6UQwFd2BDlRGk049Nzs16trrabOkIr5OlVcS0", + "run-mode": "core-model-1-4:RUN_MODE_HOLD_OVER", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "encapsulated-casc": [ + "Zf24TorGVsbQ9lvInPnCaeSqrc6BkACjPEfIUHgI1rya" + ], + "name": [ + { + "value-name": "lvzdcTd8USHmUNHd6RpNb768Nr4RbW5wswBwhOEbHdqtT7GZZ5Ea4KjJ3fse3xDn3eTkVpouDOXoVDfMBUXxw89AfBGi1bGWq", + "value": "9lJxPelEC89RVCLK2aKbCZEi9xuHuM1DZKaGYnkAntri65U07EbJvH1xfn6J17e0RgGHDS90eBbcy5cFCnoZWhobxvMyu0re87VLS5E6yPi6MuDgJT8F2wJzTv0oojCwipaauOg2vy09UviDgijjO2KApKYF3s4eR6oeUF8h51i0wsvNKGYrAI10lRxgbtu2zT8lqhCniNfGfLl0rjr22kUfbj" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "xIgWq2EIBF779wstUKazInThdq53fkiF2z", + "value": "kB73cN2bWzEhlojUYHFgM6lPdF7SzG" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "label": [ + { + "value-name": "mN0gmLpI3GcqQRGw7jKZC3iwXCi4FCAThs9v5q58YaqO16d0hXZUShiILBMq5mbeGlJLDPLCZci0av1skSed2oVNZz6WWhauuU88BTKs52kgqdAK6GP84CNWcTS033", + "value": "xPuxqo9St44Bui36oJOoGibCuXumSpJh6dPwtYgX2lqoDunT53hLlkfQ9K411Fj8T0weYF3T0u9vQogVrpzNJOvTqzMkf5s05YeWviHnEQSu70hypIl1pQUPiy9xwtptkvhPFYdjHXFOYPm" + } + ], + "encapsulated-fc": [ + { + "uuid": "6fa0682d-d410-924d-acaa-15abb4edb7bc", + "service-priority": "-9223372036854775808", + "supporting-pc": "FyCVxl0cTtfbdYanbM03AOBVb6beWZQBqloXGo2rRhCX7Mcircm10PW3V0aJR0chdA7TQ1dAiPxhCBA3NO4FDSAqKKaCDmLQXSCFTPf3EEl8fVbUB7reS2ECMG6h3S8SKCpwrFrXjM6zzhlahNg9PNDttKLoCL8enyCG54DoQJPiTbk2YBbFoG0JqL0Uo89DyLjDHP2qqJIbU2dKvopL5qvn3vikvjX4W9HEYB4glEs7yFS4W9HTr4gnrqHXB", + "layer-protocol-name": "mac-fc-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "YFnWnpizSLTPFjrQWraETD7CTmew38TTF9P2y8tjLf8jqz9m0b1LH0fsmlZhtKa8LR3kRwDDDDW4dXq50jJHjY2xc1OFDQOhAJBr76WLJKPOH7MArvhClj2xcQ5IzLZ9ussBqpm193QJbujCRs64E8CQZzqqkhrOJTh1iE3kHL3Sfem6Gt", + "value": "kBE3s5lSpDb5e5ngf1bzAWul3IH1ha3tEAo6FKR5f2atZxB7qMG1A3eDDVwUYAgC2EIHorEDmHZl6Asxf1qP4ElzrJmpbC1d8CVx3r2h8TDfmXEBY4iUAvm1fIrqckEkOrRKKM1TFE01uEusAFfaaB3hbuInHeHvxrfhd92KN2E9G0C" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "ay58q780nOS3pKBCYUkosLVefVuqYDF93D9tChl0X5VmPoZFib4KWRY4EkmDX2E1FNm9WI9UN48Dk7aCi6f7Y53uqpZfrD8Yiv87591S61nq9yVjEaiu7lRxLQNcmN3wibDfkw0qynJzNESkGbGNwxl9g0mCNh8YsMdE", + "value": "dXItGh8c2sS51FtySDOSZiy8roA5t67z3Q2BZ2N1vFYodsW55DQWNg46EwbZCjyy1s10vHU0eKgrc4x9Hf5nv1t1xF02QrsJTtBoangp8wIkB7uamrxRt1K0yD2g4mZXQAmSYu961SiCZEEm6c5r5IrDlmT" + } + ], + "fc-route": "7LurwoCrkJ5pi6jDwDFC8CcF8uQIrAlyePZK6t3q49Iff1SDxqfF2jc2N2KevYEJFvtLRw4VFMaMFVhclpJfIW9wQTClR94pEpavO6jlSt8qghCtGeIpaRV0DpemyaL5sOAgULBF7B5nTzRzFrYPbLIO3O2BYGGiu9ygUaV1LSpwk86ZzW", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": [ + "Tt1U6cK0Obz3Vg435A365y28rjXye5V7yOTETDEHH5CCdyxi9Bo69ifsu40IaOPIuJfneLXVRrq40Xf9qvfAGuUazNSJBzj5aylpkic3JuZBs6KSCSkam7kNUconLIsW8FdsXhnzMn26lNYXFb7Tajz4nXr1FLXOr28gjwH5LKb6p2W45VPf7obueCvTfkzGmIPy6wDJ8HHxBDtGrjNyzY2NsyzHS8o7I5" + ], + "local-id": "Mmm8bwg6u0xTCx7EGbib7FAm1qQA6uvSQRSTf00J0pCvWB9vMjGLY8ZZqPAwbXg1O0N31NFT49oSLqfpJWbIWazfS1L3YUXMUKIVpfHloXd1ntr7hCH5Egkwi6s8SpVM1vAiK9D06Q2ubtts52qBaK0kIst", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "XZAroUs49iE508rhG63Ul2525a5p90l6RWqfQSjS2PX2Ppbnve9Q9eKegHDpzZoqVOFDyQnAxlCmCNJZUSH3Yr9e1NwAMU1zAy48hkIOFc39RE8DpPyf8Iu9vSK", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "gcf9cQLn28nAFB7dKasfJPFlDq2x1GjiSzj5h4kb5ILCjSQV2a2DZzYD002TGe3rNno4rI7oq" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "XFJnPN2p5AplVsHqgLrN1EwM0pNJWfrLU28BPa0MCq0xSHP0lgFmVb1NtOwh3X2P02qH4iu", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "m5s3Ulo20DP4ECxk0GfQA4ICmpGELen7jH352r7" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "EDAe3wecQO1nSWwJsEfRlN7uvtvSdf1RKt5O0b0QZTeJHKk2hzTunSQKdmDqtw9e06U0hMI8yWR7zc9ID3c0N3DTh8bKElYErKwBxfJX3t4uxeca9h3OcGHtOL5k64ZpGn05uC2y572Cd7EmoHasfKV3v0", + "value": "tWfKvuDAZfDpcCjGPik3G2d0hXVdkOtFCAi74VIVadkeHwUwOezn8EniubvGZYmBqEJurjqBoCP50BtPP2cYyr82CDJBtX5TtGfUZxnna4kaFNRmH3cfnkaZXLBiIy33ejP5QcsS8MVNrM18Ien5yp4oaxyK5CNbNCgDGIoOmjtN5nNFB3K1sHhD6Qn4k3f7xwCe60Utbg89DWO6Zr7j0hW67cajfqqMW2S2VNn6Vo7qcWw3f" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "extension": [ + { + "value-name": "ExdT9b2hahFh7MC7fM9XLWlb71rMCUO8jT1sXWK75ph54Tcjxdg", + "value": "2tl9uFV6zCfSn8lkW5k2mtZqe3KLgSNie0sIFfP6RWZ74crT9DVn6MOkPqX5aKooDQ7iXOpHCgOys7rtLeQJ0w4PWTV7wbn9TmrQaIxMYddilEL6TuHL0LBPxoO3rbckyvaAeAf4Nsf8606" + } + ], + "prot-type": "e56hmyrFt7oWE8YP7tWTnu3q772fdrtrprBD02jl1H9FPZnOsbzHyu0FC2MPm79DzC8zErUx0V4HUrvev4V3rVA3QmK", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "configuration-and-switch-control": "1BKRoETqaTS8oS1iLzwP0b4o7n7eMp6NTQwhnpAxasxycyJP0fw0rAhqYgFKxLpquVAJc2gnmNNyewfeEM65enncv2O3G5l20VL5P1sbG7JUEZ0iD7fRuCW0xKVdQg7I4SNTL7Xjfy6Tp632daUAEIsbkng2vnLr7qdSyac", + "internal-configuration-and-switch-control": "Iiy8ot2uvO49wodRLt", + "label": [ + { + "value-name": "mf", + "value": "jdTvo4CGuouphwcWMaJai9e6FhdaDsXOxIbVNNt94XqlmC98NSaX1o3yFgAaApZ702VFQgOUef7AJ8Aw0ClT0ojxwTzYbq6btTQb9w5fL4HnchT4T7XLv8aU1KScaQfDB5ODCLSfPACTJoXvvU8S2jMW3x05fgBRdhuP3eXKOzEqPtVcg35aeJ6h8ZfofQ7s7Ba2H7NoyjOgMBs" + } + ], + "selected-fc-port": [ + { + "local-id": "VaFTGVwRFroFmqEmPCADGl3Ha6TmQgsMi0xQVWHsfX7CfEQX8isODonFuh1dpmRHeox1k6uA3t4bZU884AOIYcfll9yKnhrBFQCSWYkRsoUja2r6v8OlcWGx56hsnA3VixN6w7XQnK1pMtv9tcvF83c5alxpVsk5R7bf605lK7Cps0yVc3sc7Eh9ZGyM0TRRS27R244F3H4nHCaLyCXx86GZM", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "DMZmvKguBbrxQm6UCFoEqW9fthl19Z8MD799RhvksWSibQ4NwtjWhs4DKpEThMxUMG3DYrQifAtqqx5WSpL2RHFt6befYMaKk5fawXtMxW4Ql2Eejhg2YNwXYCcWomyJsGLQDeu32rTotxuMPCGFp4CnHPc53CGnaseGyIJt1uRuTd8APPg6TSlAzpyD2604q6KZHtsIPbdJgdjX2z3OkggTGGoINhMdnp44SoNAzSjH5uE04zGgQO1wv", + "value": "6izKnW9sTUQyuiiNZf9w755NlVufrZxp96awUjQFdHdzRneIDoeKtkqP7U4zLBYUz0itk91pIeZzCdh7BoR5I9MPVIgGb7AK7T5jU6BCdA3HFkO9Ix6iHK0usgbDfDffocyij9UwBX59a" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "4ywM3LCcUk3YxQBLP6eYo6d7acIQZ9jVzHACscOe", + "value": "J5VrGyhFN7VLl2VpDDgMX3dwDQRPw55820zJzQgeQbRb5MAIhQm6TADpim6OjcOmcgXD6dJOgAZlerWw9aC3K7s2tyJNKp9PF6kEb4sjwkwLLs9VDDQfLaaeALTda22" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "iKqgVZ0Vuk3xXja4yrgYJr0wXBl2KnNU062V52QrmTQb417ukot3PtrF4NzH2ft2lwXiqFCNrsQvlY0FmlB3O2AKHajKpNMCbCUBhwgIZ76c56Sjjte7nPR5Z3Hg", + "value": "lSTXEm73DP2CN6HLYS4j6bzVVEMYdUyyErojFvmicgU0etL5dIokTX7GtMwyG47dnnw3SKdWS0W6lAbzasL3hSCDw0bd5aqkxOfpqteil2gGCs7MMSI3DcG9cSe92wmscBRCW5Mh03QCnXh9IR4dVLm7vt9pZnRcYBGNy" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "fc-route-feeds-fc-port-egress": [ + "6y4YpuLMUQPFNtqmg8u74w6nwXECd4LbvPaUbNz6woDjR3F031ZZp6eW3Sq9PbkkSm" + ], + "is-internal-port": false, + "role": "LH2nPtT9fq9avRWOeajb6eC1OxR29VoNui2cEWlTemWJdSqk3Jv1QZUwoErxrPkWZn0DblppHl1N5r702u1SlWpJsQgTxtPwIP2T2raCMbpJCoKFSDx5rOOTw4N3pus7cmSeN3Qre7aRvUofqVkRC0L85y4mUom6K6dx1VQg30ZqNnydaK4MLHNI7R427i0R", + "address": [ + "iOeH0LkMdtzI6hYJr0Y1LJeVE8DwnZAxGOeyrycF1Lf025Jl5znQbtMPChlZ9NwHuDfVbss55IX0NylT0IJbcn0GxlFG93fDGuqKOTPUBE" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "r64YmSTN357tt94HJbDpDSpBLwt7cYmv4qmiif5ed4HGdDfPOS6jDvVo1on5eCti2PAdWxj1B0HGwOncztwcZrsSHHYVjj5e0xrW4KQxCpd0eBdN4JR32bOJSEwcXBqX8JL4lBBX1OY7h3MeEv9GGXhyBFCqgUngD1kYuNOntEuLz8ZdD0LjYUKrzeSH97XE89vvWbSpPf2g" + ] + } + ], + "supported-link": [ + "pKJ7hkCLSVWFlnvo3XO" + ], + "label": [ + { + "value-name": "FJi", + "value": "cm7nIHKpNrNkSUuX3wIJzeS7emgM5quhMtEnboEYIrbAmFyh380CeTCkfK6daAuP4147hIXZa8AoF0FJ0GderPyGrxTu7gj3h" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "1yFA4v40MpE6wcLg8HiIsJMJ6e1N3Dc43Rw7fA7TRLZgPCwQcOyEqcfwqhctMopP7OWmoVf8y6ofJU5", + "external-managed-uuid": "Bvz1IPp8YBuKRTzZzndYat6IrmXagV5JqxK8ea9cDDWvonmYCzOM" + }, + "fc-port": [ + { + "local-id": "XoOne2wdBRArCUud", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "9EJQ7CO9Vry4wh1M6g10N6tEHV8tpmYqSHhRbX1Ygr2EB3qzjrz6y2C7PLsfZqxRZOJ2DC0TV2xwXQ589w7HrBG8e8ndqVXhByj72b0X5qmU8j3hI2Z1Dx9Syp5YcU8NsjMuvFks5Gn5RimzkdAXLCHb1F1dz9S2tFoYkIihoFm8XIHhWa7zMOKNtLSVVKXgpd6BWoSc46k1H2bD4a4QYOvkrf7mZ4", + "value": "h9IS57Di3BCWiwZNA9Ri0xFcZUjdUfQ3oqVupqMk2ghkN80niRyapdmo8FBUUjXaCSETbiedrnpevptF91PyfbOfIh9ut6F5QbQ1m46Njo1HNmmWocmvf2KYkLsNR7KzbAtxxrkQPdpvzMjXYyk5A43UPwHyvj0GUldrMx9uKzZcda93Iu8jqc58ANy56yMSTRbyhd2TMT5R37UMB2XT621GHsMGSqyE9" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "nZTMloICF16egsKeEFsHeDgcDymMNB1aAUWNawpHxvVGPxMl5e2jJi", + "value": "eJK0wd2yOOntRT" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "cqP6k", + "value": "Zhk2oeGZ8vLfyEN76rNZRevTQHjFNv8MNkGbyf3yKGFaktijU5aEjFx1eIG16GFT0dWqsRZ5xwfSZx3UDdqOSXQ6xoZDXwoXJlg4c79CDomvWphrCHfmwXk3mbzbHX0iigmn" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "h5" + ], + "is-internal-port": true, + "role": "KIhqLXleN1V6n4EDQGrSkb9Qn9WfILWll5D62YcHR7Ne3kSM0bwkmx3KGRZoCNBXKfVE58lX7933tVHl6dylKB5qs4G5JaUtpQ7mQkbPtfKOar29EAugbryvn7s6hnrG5yUNS6CelnUnGWwdwStzj25G1xMiU5YRDKEoQ9ubogz4dXhBQLb1FgIGNmYAsOjXqYdhZHknYLr3JJErmPsT", + "address": [ + "RYLDbQJe2sopG71HvfB4Vpro8c1HnaVe0yRbpAhrUGQtFK2bZDfUUya3KcC8e" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "kAbi5kgYczs456i3anuf5WSiaLHKvW3Qoe0lyhbDIDHNCZRMel2c9Uuby4OVSRL85EmvVx8v3HiFy1rNftRggdsGhgB" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "m8Ry4icdDsxqq65GS3UzhrG1TnnFxJmTR5rOgv1LXqbgo9O8cAHl2gnNDCs2lGVdLf1TCUFsdQItRoC4Zbh1rwGW90YmGMrj1kdv7SXkAFFk49gVlxOE4uB5urjadLl65yCciroL7453dlQyKE5G8GLu75EdIZbNqF0A7ol6ki1yDRYon34vJIZJFvOfmR2ExUfwbsCvLv3om2EJ5B6HbXiIkYXyPZdeMkKXMesxJwO5qkGnVEWYt6GN4veMnj" + ] + } + ], + "supporting-pc": "9DD6pRyPBWDyeX7CLLqJ7xiMtN0faj8bWLheCIV5wqELfLf0oFCn4MayzaFCmNNaqXgVFb0bBwOR93JqBlNF7X5z0L3mqIwRFNEcQwos34b", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "a01a13cd-d033-ab43-5858-782877f11dfb", + "layer-protocol": [ + { + "local-id": "vX5g3vxz7OFnvjrRN0X5ewkmtL1Nrk6W9bccGJLFqi2VulFhmCns0zOudHhE2fs3iFgQg1vycqmGL1P7v4rwE80RP9nJpPNHm3qDWV30lpG7io6OsqkYykPft4ZKUEkgzKLvFPoT640pkYd", + "layer-protocol-name": "mac-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": false, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": 22046, + "configuring-ingress-tag-filtering-is-avail": false, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT" + ], + "number-of-available-traffic-classes": 57, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_VIRTUAL_INSTANCE_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D" + ], + "drop-eligible-indicator-is-avail": false, + "configuring-pcp-bits-encoding-is-avail": true, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": false, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": true, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": -113 + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2020-08-16T19:43:38Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 112, + "current-problem-list": [ + { + "sequence-number": 17826, + "timestamp": "2021-11-25T00:28:05Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MINOR", + "problem-name": "AvsTLg1hM4qMjDnPLM81lTO1RunUQ8AqvUbg25pO9HAkcX9XBhQX2EQT86GY68gB2kK4p9KqRcK39LTC2JrXgaQggo7mwfXqzzmYJ6gsi0" + } + ], + "time-of-latest-change": "2021-09-15T12:44:32Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -4416, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2022-01-03T15:11:20Z", + "performance-data": { + "es": 657015094, + "ses": 820331690, + "low-power-idle-receiver-ms": 1605610942, + "low-power-idle-transmitter-ms": 1508774546, + "symbol-error-during-carrier": -1009240537 + }, + "history-data-id": "j0L1FmZtyzVDYaxZmU3sGRcgezAq3WUmPGom2fPsGC5wMCv0oqt5aFdo7NOaCJwjhMFb1mEzZJ5LesECT7z3ENjDs8N4Jcn0YUbShPjgrhTFJx9uwJp3oJGQRmNsq2sgXv0elkmMB7jkFsH336YjPxayTX0bZkrOQs23MgHno0z3kgYofPHWmJn7yfiqAJeib9lPpU4NUEI6Mzm1o4YCFdJ6sTw2CCcGDxv3jAI56jcSSyM8uCK2Pt8hewc", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2022-02-08T23:14:35Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": false, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + -124 + ], + "tx-level-cur": -109, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_DISABLED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759", + "receive-signal-is-detected-list": [ + true + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED", + "pmd-is-up": true, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 212625292 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X" + ], + "rxlevel-high-threshold": -107, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "short-reach-mode-is-avail": true, + "wavelength-max-list": [ + 1148493670 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "FAXnpJYHIQqlGstvKptstj1OSNNVG90dCPA1r", + "speed": "J189mGBQbd7wFAHGgzm4n25f7HWzJnZkp7lDNWlQ2sezVV83nu7Kw5RvMN4n33Hk22XHRjpLLDkyysC", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_HALF_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_MULTI_MODE", + "temperature-low-threshold": -93, + "maintenance-timer-range": "dr1L0tnNqZlCFJs0NdBU2TlK5C29bQPoaQa2kpPCo2eWMyOrMpeGarig3kh7b6vlPxn1X4Dd7J9TiYcWfqCiSUyN7PUiNivCPSDMW803S1O2RTQZbkh36PJdwDvbV0GDKbhzk9C4bjYUcOTn8ajeRUsfpPjdIZQsa71m9", + "supported-alarm-list": [ + "ikHg6TW" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_QSFP", + "rxlevel-low-threshold": 48, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": 1031516884, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": false, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": false, + "temperature-high-threshold": -99, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_SG" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "performance-data": { + "es": 274385562, + "ses": -1280746821, + "low-power-idle-receiver-ms": 1599518746, + "low-power-idle-transmitter-ms": -387733841, + "symbol-error-during-carrier": -1512302079 + }, + "timestamp": "2021-03-24T11:50:06Z", + "scanner-id": "8DJz4iN3TUbl44JgHR4fJjKJJY0gsf2AKL1PVPKPBV2xZLNzDROe3rQEhIMJXObIrdpnU9cn4eUW", + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -70 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED" + ], + "maintenance-timer-range": "0W7hH2uulDs9Tud75h256RzpHO4WLMZDAYVhSpD53XfOssVxJQuHH46oK3cnH31hUOqM54S0TZOlrKL2A7J9bIpODC3kx4tjST6YPQYJHFW0pz2RHD0SdhyQTC2jyvCjhA96i7HZEEZ3dTMUpEFCW5lHHfSgLvz2XI08HI7eeZ9rSWe9sLMgQZYqeQyZdZT3zUb8uamI9w1Us73MSH3BG1TVJrMPqySZkV7O5mofSp1cx4YhM1", + "supported-alarm-list": [ + "nORdPgA6AfW0bgFyX4lPj", + "UL7w4Udmk5dESdkXzI4r75DE2BWGvG0pk8NgU0DeXQSP3cNuUJVTPqqRUeppUpG6punjm0xkIh9ElO07yW1ferY0xnpjEYq4kFnGxN0f42LqIMx8A" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_NOT_YET_DEFINED" + ], + "queue-depth-configuration-is-avail": false, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_DWRR" + ], + "max-queue-depth": -1948780629 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "Kr9Qf0QX0axGK6Z0FLrysdw0kVNLhCG23PKaHs8zvF77D67iKyJcMfdY2SJbui5p7PAPiAoN7wULuTV6sEj6Lo4NgFZLX42XUCE442JcqvXNoKTIp4GasCQJaPmZLoWx1AB5vc9Nz6sYJmy8q7aTJ0uTHQTteH07audxymc8lFY41w4jD64f7y0GoT1Dt2KvoP2W4e4hT2dMrh6Wfa3eJ4", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NOT_YET_DEFINED" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_VLAN" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED", + "compressed-header-length": 23500 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": true, + "information-rate-min": -1369634359, + "fec-is-avail": false, + "burst-size-max": -451, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2" + ], + "egress-shaping-is-avail": true, + "information-rate-max": 606445068, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": -52, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_2" + ], + "burst-size-min": -17196, + "fec-word-size-max": 25772, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 113, + "current-problem-list": [ + { + "sequence-number": -16847, + "problem-name": "Wa171zK6H", + "timestamp": "2020-09-21T21:53:33Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2020-09-27T23:07:34Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 13325, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-01-20T07:10:27Z", + "suspect-interval-flag": false, + "history-data-id": "wO0S3Q1TllhyD6kE7fN9GhSRgQlVv6m1MeTQXMBi7SQCY2gXhV6Q4Qzk", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED", + "max-queue-length": 643506562, + "avg-queue-length": -1469271821 + } + ], + "fec-uncorrectable-blocks": 19013450, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1538021436, + "tx-ethernet-bytes-max-s": -2011203917, + "time-period": -723350305 + } + } + ], + "time-of-latest-change": "2021-05-05T18:08:38Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2020-10-16T18:52:37Z", + "scanner-id": "b605d1wP7e1Byw4VcjEMxiV3ZDId8Zak5apabV0j11MzpQmB2Sfr22mUG47O3901chbn53y6Wlyl3UP5F4wH7SBFOAlKKmLWDObISCPGXn2S9RYGNmoU7RrVkNF49iSE73nRx4xmjrfsi516rpSy8cusZ1o0kgErcTaJXH6g9dBjiChJT2a1eEm5FK5ZTBiXvsyk2wBbJ4m1GEDzyNsEjOJYrGQc989wtHRvekGXoURWqmnY9PCswdiPT81V", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "max-queue-length": 1316871248, + "avg-queue-length": -208388341 + } + ], + "fec-uncorrectable-blocks": -785001385, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 405310528, + "tx-ethernet-bytes-max-s": 1335195926, + "time-period": 1370182884 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -44 + }, + "ethernet-container-status": { + "timestamp": "2021-08-24T12:27:31Z", + "last-10-sec-data-output-rate": 1913824926, + "bundling-is-up": false, + "total-bytes-output": "3099367355651085312", + "total-bytes-input": "4009835517281277952", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": true, + "last-10-sec-data-input-rate": -568912421, + "forwarded-bytes-output": "8842547555807925248", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "2050145679843993856", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": 16850, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-09-14T00:58:56Z", + "history-data-id": "OG8pgJGAwsxA9gr27A9C5NGpIDomIh4wX4N5NmFbOcEPt5Rsx14DGD2ogiKYrHngDaljw0md502q6USDVOgBrbRAlCyNbV3O6hZuhmHemKEkwoY", + "performance-data": { + "rx-level-avg": 47, + "es": -1784440187, + "unavailability": 2066426750, + "cses": 718978178, + "ses": -1072580831, + "rx-level-min": -84, + "time-period": 1391517634, + "rx-level-max": 100 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": 30329, + "time-of-latest-change": "2020-01-29T04:28:36Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -25421, + "problem-name": "Ppq2g7a3a1fH6WoMOLv9HE1A6kz4Om0DD", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MAJOR", + "timestamp": "2020-03-19T06:42:26Z" + } + ], + "number-of-current-problems": -29, + "time-of-latest-change": "2020-07-15T09:07:46Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "mro0yezY77e3bIqrDhywMH3FejUJtMDP51QE8pufoIazqsT3Jjsn0n26HXHaBlZGePcm6GBuoEWO6PKI045", + "tdm-segment-size": -1681474063, + "max-number-of-segments-reservable": 114 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "Y8XFaq02Y7RbtQR5cgB0WzHy9HCfzWfx4457mX9k4SvyIfvNn6NjxvKH4eOEa3b7Z8ed6fxa7VIIa5vx3aIBxkaCzYgJTjISsO5y3uIbhjTrggQkqrVYL5AkVIWO1wytlv1oZCr9NkA3sjnTKaJn7bA2TwIU2ggfDhEvL5Eyi6uKpJv1U6pThZOanoXhFdpam3F80jyaq2NPEaJqh0jyRZB6oynVD" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "suspect-interval-flag": false, + "timestamp": "2021-05-16T06:36:31Z", + "performance-data": { + "rx-level-avg": 12, + "es": 1151156868, + "unavailability": -1934337937, + "cses": 859469538, + "ses": -2041978475, + "rx-level-min": 117, + "time-period": 2038497494, + "rx-level-max": 15 + }, + "scanner-id": "BssVTwJfweTWLFdluM4zVTsre1J4BBqcVS7OpJWVXPKBmXWQKSpFDJ6RKIVdbdp65pMu0IiPp2iLZeuB6T8BD7sfPflSsKQy1CUTdcJue1868CH6nQISX20EilwC5m2ZQXSV1tq8nqev2VthD3aA6aegvCSsYVjHK4CLxUTMk79eVDwyGy1MI725KNpAIJhkNU5cORZ1Q87", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 1 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "CCQWbJpzF0OTlLsT5iMWwzLJtT41NdChPk503urAufuITOBQ6oEuPp6ababYnF74ZcW2GnDaDZSwFmeDCT7ri5Bt8EjvjqsiuocaMHdhyXFdjTQNMQeXVHq3lCrwUTGp9TzNsE41CBeNv5B9NH6IppEC159VQPcZAE", + "value": "3iJ4UlaII7bRUSYv9f9M86N3Wu8V5MA04kWRx6rf6C6SmWnw3oibu57qzfew1OoX0kGxj7EhBD9YrxuvVMGiJNIaUWzNLXDDijbtrPK2kTSMimh60PoBv6MpVl5yaIbs1eNkWxfgj72Bmbzm1XYwWCVJP0hZAkkCz7WvF3DQbGjxRTLSIBgwd4f2Wo2xJe1alXxSTaI4I2tAV6kvIt2Vx9QtqK01Y1bbRI4CKMytG1VtZ7ZHATv72dtsXl" + } + ], + "configured-client-capacity": "HAwR6Mpa9BVYJMdiAlMF2RokttUbEGfl8L4epugyXcozYBRqWv6Qfu2AXXLtv0GDDLJ27ZsW3QvTrekfCi5JE0jtXWXkPvXs8GvfxXcBGzmZOyfiQc1mccQ18FlXaaijQFqguuRa452KEh2mlVJq7zrf6F5gPfryUSOgexriCt2gCW", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 13227120, + "last-10-sec-data-output-rate": -335814429, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -458141747, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "8CMvGQMoVDRDl4qvd4kS2pLVCl3hyHtGj73SPHgCc8fxcF2pBf9EEMr9ZuqxbL6uS1mHJvkVDrtH7nZIC0e9NFaE9sckeaH6bVGUqSI3j3DiiC1VC7WhNYWOq01waIvdDb04VIZeLux36qQBpEScCG1VG2rICWW7ZW3UE31hpqcoQ3Z7zJkcid7Y7qzBnvIerM9XHae6AquillpVXBZ7GY5FowgD1ZSk", + "fixed-ip-v-4-address-prefix-length": -6, + "fixed-default-gateway-ip-v-4-address": "hs3vqvONF90WWXyV46T2May2NsTxMEq4YtrhQ74vh4k52S1YQMSCWjxCLq9pXAtNVN4MU893dt97daX4WQyL15nMow3lYx0Uc5y6dH2i3bhgdfc1XLMYI1C6yFjo4ki8hQfuqhFtkWBx3OySrlI1mc0MSbbOnlXEc41udGXxuq4y6CqxP1rcdrQ5u1MSnBwrFxVKdKhIad8hPqGFr7JFqzCVtg" + } + ], + "broadcast-packets-output": 495873710, + "dropped-packets-input": 324876428, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "dropped-packets-output": -1770625927, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "Rb1oJW8OyhoIuwRkPyRgxsVYTqLmGqWyBXOcTX1jeh2JGTVvjELR6zHZRkexC2X50MiLBb5Hs7i0Sdv4J9NPAmHrGNYaPOfPsxt3AyK3x33h8rlSA0zam8tUNj4D7kkzJNukdffKaa2aBf238u5uCyhiSlVZx7rhNVB02QDcSxnuEhpMLv9g3qyVLlNjkesZ13S4Lv8DUvZyFpdiUmqPMYLpbyIoE2nF5fJIC", + "neighbor-ip-v-4-address-list": "eof5XUu25gov62mJrp92NN43kai4KNOYbV40Iq2NziixkwgMWhOJWSMgUXcFKSDNOzOw0Ibz1t6d0eZOnFxjyczs1EZLwvqc46IWPTnIflN7zNVWkk7Sozdpdc2BHtOEzwAgiYQpjEwLjjzDDHo28", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_NOT_YET_DEFINED" + } + ], + "timestamp": "2021-08-30T02:54:23Z", + "forwarded-data-volume-output": 1244033170, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -2059021359, + "last-10-sec-packet-output-rate": -1149859357, + "vpn-binding-is-up": true, + "multicast-packets-output": 487632260, + "broadcast-packets-input": -598219131, + "last-10-sec-data-input-rate": 295613206, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": -1705227763, + "data-volume-input": 1769494048, + "data-volume-output": -1420286585, + "fragmented-packets-input": 747621570, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_LINK_LAYER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -1204039005 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-12-17T03:39:06Z", + "number-of-current-problems": -13, + "current-problem-list": [ + { + "sequence-number": 1855, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "gr8B6uqdj2Yz3kYmne4KZ2S4rkEmsCaJ3ac1EufPx5hspfPNlLplOap7uVtWxwxsGCll6A2vGjYXzFCUi276cw6yjzmQ5UaEowRmYTKwdAmM7YypSGoW4uuo3R61D9x", + "timestamp": "2021-05-31T12:30:58Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": 23522, + "statistics-is-avail": false, + "supported-alarm-list": [ + "rMReEzFK2knILWV5ps6BFuG857yNnyLHdCNR4su6NJGqxuvXWBqtY6B369ItAl2NYQw2i00XBGf9aLY6eoA4n3Zt5AOFVRkTHQNRJFHkmWlozjvGAXKX0Cq5c6C7XWTwNygoeXAsTWQl7d", + "HaDw3fO0rVvrSrkh6SxuYu5qfThASutsx7YsmNkGIP7shjJf3gC2CzkSsBkcYGEnNDP1i9HSZGk8ZWf34R5HqhrKTDXJjB6Y6N0oOzgF8tF7pV2lM72dhlX2ZMLaoJ9uo1TcA1KIupILkK77K1c1n13eOGo4ppqFqbRTdttzTbd5Ok4ydgrsauGQaXUrmc6FoPyBjT245f" + ], + "information-rate-min": 1526449188, + "maximum-number-of-ip-v-4-addresses": -17418, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "Mc88IBsZM1wCZlro0lu61Prj8SspHeNtqVu0oWZ2XnFXI6dIrzHkh8EpS6OzctUugouEclGaJlZjs42LwJ6NJKcBIS2MlWgBdC7pXNry9qStnUeTvkG6WKHwuBiPxyiC2p204tydMqG9cVUz7AF4cesGPLnfbxReWLe07E6TXEU1rOBzg8vsfX0WAn3MUV0Iy6AFKGyzdkBE8cdocAIrqIo", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": false, + "information-rate-max": 1615010340, + "burst-size-min": -29807, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": -1857, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": 3830, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "vpn-binding-is-avail": true, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-configuration": { + "interface-name": "ZKjQNUi93vPKBqjGM5cxZRZqKEGAjsIacTSRFb0IGQs98MHMJUbALa1nOHYZ1y9ej25Y5YyDO0EOEmAg8LQLNR9BrZtspCyIwwytu6YaYDYvZqLZ3tKQdLjEKMY1", + "loop-detection-is-on": true, + "broadcast-frame-suppression-is-on": true, + "configured-mac-address": "FV11", + "maintenance-timer": 1894389800, + "statistics-is-on": false, + "performance-monitoring-is-on": true, + "fragmentation-allowed": "mac-interface-1-0:FRAGMENTATION_TYPE_ENABLE_256_BYTE", + "link-loss-forwarding-is-on": false, + "loop-back-kind-on": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "transmitted-frame-format": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3", + "flow-control-mode": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE", + "maximum-share-of-broadcast-frames": 70, + "problem-kind-severity-list": [ + { + "problem-kind-name": "5kEQvata1mjyYYlZRKZR3XlkiHTg1nz6zeP4ga6hwpHug2m7ElQHa41kLMAE11DAfsxouvF0Vnn3pJ24WLD6PxqsbS6dTJN13cpxI4qvjNqBokxk5aqMHIeTAdYlWDmSQLpqIPV1uduSx1cDcuhL4wwE", + "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR" + }, + { + "problem-kind-name": "Sx0epQSH8so3lT8QDFRQaVcszhQ5NzsFYsMoawXiYldj6l1KSTs3GEnfNddBEF8CZUS9iPjg3ws9RtTBedEVKT2x6f0CM", + "problem-kind-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING" + } + ], + "loop-port-shut-down-is-on": true, + "maximum-frame-size": 12956, + "mac-address-configuration-is-on": true, + "interface-is-on": true, + "link-loss-forwarding-delay": -48 + }, + "mac-interface-status": { + "errored-frames-output": 550871684, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2020-01-03T22:29:53Z", + "multicast-frames-input": 1466775650, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -406438775, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": 855292074, + "dropped-frames-output": -161640259, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3", + "last-10-sec-frame-input-rate": 1890730860, + "errored-frames-input": 270658454, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NONE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING", + "mac-address-cur": "ZM6P5mKtOTcaFOgSk3ue62cdUP0VWvJVaPC7bmBS8NUN", + "broadcast-frames-output": -197425545, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 213102864, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 1144732366, + "dropped-frames-input": -1211526501 + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 16577, + "time-of-latest-change": "2020-01-03T16:55:47Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-07-30T12:21:15Z", + "performance-data": { + "mac-pause-frames-ingress": -754947963, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -511646235, + "mac-pause-frames-egress": 829386482, + "mac-control-frames-egress": 1787053520, + "oversized-frames-ingress": 82176224, + "undersized-frames-ingress": 933610038, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1205025439, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "uwBjh", + "suspect-interval-flag": false + } + ] + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 113, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false, + "timestamp": "2020-04-27T06:57:10Z", + "performance-data": { + "mac-pause-frames-ingress": -1190641277, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 1612942972, + "mac-pause-frames-egress": -1427877023, + "mac-control-frames-egress": 2050166300, + "oversized-frames-ingress": 1466576164, + "undersized-frames-ingress": 1125694092, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -547301919, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "3ohDnWMsulduzlumvIdiT2cWSF2z3ye7WvCbrgDOBQa2cwoz6BRZvVNnBPWwnbvby7m0fZGIQQKUe9tkCcb87YvANk72vud3urVJqtk8b42pdvJQzUYHSl9xF8r2Dw6ZXTAofUoq" + } + ] + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2" + ], + "admin-shut-down-is-avail": true, + "maximum-frame-size-min": 23808, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "VUBIa3Bf8w30OyiTwC4GbFfQZzAvseof0ZY2", + "supported-alarm-list": [ + "g3PLHGE6Wvs2zOu0ESXkvjIztI7CqESzIIkhgQn5mP7NvuO1mDmRWWiiEqMX4EwEeIVvyisUZrInVooiTK1HHkZdCL2yiy5wg0THblB2NbpArOSkqU2Z6TdAxf8PGddO67vhkZbZ2BAuhkGH6AH4mMETTNAzSFoYE", + "h3XcVDK5wgHAWT83B7DcCXiSdaR3cDumyrym4jrAr12gU2jn9OrDEJvRLeUYKociHCELV6df77vTaG8jnAP1bcSXjEN3URdBtKehIrwHyTsIzAUW2BP6NzV6dA1ZrfAMZG3H7roycQ8MiUAdvijbReh5OjW7ypTp5P65gmvt4D7eqzrVRK6JQgGEruDZTxgZme4uszPw4OCmo4a7G8Ix" + ], + "hardware-mac-address": "H7ehdkAp4sPIAkckm1FubT0fC0DSEjEdrSvw45V1qCJ0WWdaPKwSEo78pL0V4x9nhwTeBGf1jQU7E7imJOef5mnuZghVNib4O4aqDpjO85VM458OMn3RBrdAzunmNyiBvtT8K5WSaJFfPF3tU6kvppXYTlcyLn2gIVosScd3WSiDpdYkb", + "maximum-frame-size-max": 14257, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": false + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-11-26T18:42:23Z", + "current-problem-list": [ + { + "sequence-number": 30763, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_WARNING", + "problem-name": "7ElTjO4ICiCwuqvT9qbNaYaHNeYRtmpt0KmbyiU3AorWPWIYfTLhJNYo1OfubEX3gc7PuTKXh3T60tW7ezoXmedn2tK5Zz1gL8X81H5aCQ9uk5ByFRoT5Bh0W15WsY4e61eZAjac1bHdgaEN22HZvQZkJX8bVchUdvLNGVZI6yNfJrULltKJbC3UrbYen70ADMfbz6TyFzNo0z1m3L5ef01G3ZNq6NSB", + "timestamp": "2020-05-29T05:24:32Z" + } + ], + "number-of-current-problems": 106 + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2020-09-18T18:17:37Z", + "performance-data": { + "cses": 1615853464, + "es": 108335202, + "rx-level-max": -126, + "ses": 772665094, + "rx-level-min": -78, + "rx-level-avg": -74, + "time-period": -118521819, + "unavailability": 24352990 + }, + "suspect-interval-flag": false, + "elapsed-time": "-9223372036854775808", + "scanner-id": "0siEGthHx7YSNZza5osSvCyjMYuzdxMd0WJ" + } + ], + "number-of-current-performance-sets": 67 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-04-15T01:07:57Z", + "performance-data": { + "cses": 880753912, + "es": -1536875629, + "rx-level-max": -21, + "ses": 1419820892, + "rx-level-min": -116, + "rx-level-avg": 64, + "time-period": 1238689016, + "unavailability": 1521057150 + }, + "history-data-id": "2niMLVc4z3q0gYElQA4gS4vyWs7Co6siuK5fF9b6ct7sjLN1eRh6OMEC6DenKGF6jClYMoXYR4rbH6cVQuTw8q873fuNV9TeM65qm2oeYHhxOttwPe2YEa5ApzfdA1je7gEuaVA8uRGac1G27I0MLXm2oBfYCz5CPJY0wy01hybtrSvzsnddczgA2vrxWo1E7ZwwpoxGXA1gkxPNM20ZtgroEKV", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-10-30T15:46:19Z", + "number-of-historical-performance-sets": -4873 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -24075, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED" + } + ], + "performance-monitoring-is-up": true + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "szxjT7dGUap" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -23068, + "problem-name": "dw1yc9k8mP4XYwn3BnvHn7VkspAypL0ua13mbfnxWrnNQKQr0d0ndVAFla5CO56YZ1c2hzrdTO0JrJ2rW3O9QoG3rMF7JEXIF9CWB42mS25jDZKAUrJLHqG04e7NS4op60mHWg3Pa00OZDoM4ZpDh5EljL13Qh", + "timestamp": "2021-10-01T01:29:32Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2021-05-12T06:38:39Z", + "number-of-current-problems": -88 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "oxDOJl4cp3Xjz9A8Tlvy2Tj9QbyaaLPqatfTObX56MpFVZNOcaf74ygMKOWMrEcBZjmFujKA69710UI5XXc1vsF78tTz7Y2YhoDEHg6Fpezi0hfXerQBLvJTZukYseXC", + "value": "sgbImJ0AiiBzxqFQh8BMRmDeyCGMzag1ijCF2C7kUALj1q9azCWiYAoo45av7ioqB0X" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "efQNz6Te31Valt45hkjODCjYwzsl4i4ixVXYTI4OK0Y5t2aDetrKXKImc3H8lLjKygJrZNfBN5y97AMe35QTIqfUtWUOzdz8mardXzGDEeMEOySJvAud0JZuxUiZZJ7dTqqRZ6mEc8i0y2C3C6huI8Y7296US57EwynnwJ1JRbBh55kz4t4MC2Tw30qWXyAtYXRmyK5pOzGTwS" + ], + "fc-blocks-signal-to-lp": "mxeQr0mv0NjPdLbbA2x8EvpsW5ekPHV361Tp1gU1V5J8QUbqOAysXXNTU16CA1Fy2rX4HKXuHGuysFQg7hB56oQ1hWvJX29StYO2ADwic0QExyVFPwKWMAPVxkEmmF6QDUSeqhwChegPMbuuz6qlGf85rMkNj", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -73, + "current-problem-list": [ + { + "sequence-number": 17208, + "timestamp": "2021-03-28T09:40:26Z", + "problem-name": "TjSuplntAloo64BcaJVc6nZIdOhjUHtFSm99HoC9C1xI50M7KzjIXai2QzmK9Pp", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2021-12-28T04:38:02Z" + }, + "air-interface-status": { + "xpd-cur": -15, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": 84, + "mimo-is-up": true, + "tx-level-cur": 112, + "local-end-point-id": "nyCXOplnYv0S54WghpeKb4qgOULF1DOg3j6SAjfqH7bM372ko84zdmPT8sq1Y7i1qgT0", + "rx-level-cur": 87, + "link-is-up": false, + "performance-monitoring-is-up": false, + "xpic-is-up": false, + "remote-end-point-id": "0i87tU3BXnZ5sraO84XBuYrB8sTgmLIe4QmxDp0AESx6jINrECU0slCtOnJ29jg52uCFLv7qnEoye3ZSxMTS7nlNKWHL8QQaktPYYWodAELHICr7ocZozc3c1LX9BOjN98LZ414wGPdgjxfIJfYbr1nsMcBfSU3TUGSYIOngvAoP7DpJKnU4o9w3d0i6MdZHUKxuyUC4nSLmva58pRcFSII6ATcf63OSFle68I2nAN", + "received-radio-signal-id": { + "numeric-radio-signal-id": 48107, + "alphanumeric-radio-signal-id": "yr8b9TMt76jIbE7MATprVgSj763Z2kZsLZvMSh70oqAz5HdxsuYnKIyKOBBINs2rrx5cGd44vEvseIZGcPWPxurdY2NLnP4Oea0Vn4ZSJnlX5kva2rRzWiFUcsxziCgwMgj1dbTWy6LvrgxtAoUwyziD2H4cbkAXtUYG" + }, + "auto-freq-select-is-up": false, + "tx-frequency-cur": -874336147, + "rx-frequency-cur": 1852605556, + "atpc-is-up": true, + "radio-power-is-up": true, + "snir-cur": -101, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_UP", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-05-15T23:27:58Z", + "performance-data": { + "snir-max": -42, + "unavailability": -33662717, + "rx-level-max": 44, + "xpd-max": -9, + "ses": -1090184123, + "rf-temp-max": 39, + "tx-level-max": 43, + "es": 1208229650, + "tx-level-min": 125, + "tx-level-avg": -15, + "snir-min": 123, + "snir-avg": -49, + "time-period": -548261447, + "cses": 1284029208, + "defect-blocks-sum": -19030, + "rx-level-min": 98, + "rx-level-avg": 44, + "rf-temp-min": 53, + "rf-temp-avg": -117, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 59, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": 1452849998 + } + ], + "xpd-min": -101, + "xpd-avg": 99 + }, + "suspect-interval-flag": false, + "history-data-id": "uHrsJTxh9ClcWLlf9VzYUVBK1GeW64ZBDqVmbswlWRpSvK0wxzujmX4fDi3Ke3dSl06xsuKge91JL1fjsBCHryWWI0yPVLzgLFN52pegyfZk86vAz790y6X8YnXT9w1M4HS666mFddRlbmNKlXDTVs2TPREQoFDsenqllE0qRJDU5qwqf1c2t6VbXr1d" + } + ], + "number-of-historical-performance-sets": -2841, + "time-of-latest-change": "2020-04-01T12:47:50Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_NOT_YET_DEFINED", + "rx-frequency-max": 924524758, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_RF_TO_LOCAL" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_RX", + "adaptive-modulation-is-avail": false, + "supported-alarm-list": [ + "190wVaFU8DLta7b1QQ5HHlEeOu7LYORSXSoKU3w3zhoJhzC7pzHZVldJPkmG0dyXXOASS6NjgbUxKxE16d0TzdugqQOq4mgT3QLVOy6WB0llp0nw5fpElUNLCBbyQrsT95GQwEM7E8t40Is5XJCavhV8K7yAy0lA6Tqux4B4cW04Es2", + "NN7cVmSEsB4u8K0UDE6XqyX6R7wuOC6tqdGdsqRUTVpUGpObWM8ecYd3XJqDlo7DBFR35IQQEfKcwqfscnHhdUc3DCGY0Nuuklpp", + "O5unwDUhrw7rBOamIzz6eUpYBXLKkWn01SnpvhHWFOf9uqv5RW36Is4jpHVBDjCwbZWG9vuObKXG2lDThGZ08Wbqv711ivxtnt1wYnk27aI9vd3MTUE1QIjeHdfZIMk58dtYAG0AQAJlNEZGzwAh6TvNYKEzpQwxV0vvGo5oYHBMdAsMYUW4GjJEWf5lXCKSu7", + "WCYZ5GRT2pcnNlrSPFM9nj", + "r1tCVLQp7eCIi6CUeHnZlSck7E9TBjU2cnw71ex8s1ID7cpeTM56whqDVsopLirXxQXy4mGpng2nsrBd5GkBPK6Dcu2PMlNjbKSg6qFlzHA103f5JzGzbE4g865MrK5DmPLk8qGHZ8AZcPWVgumk8qAgox2QiZlEH6ZHoxgnFQeRy2FGwT0EcsMA0GiaxDO6", + "78zmSLTj0dngUElORojl5aeKEA5ZZmU7umlf76y0kN8eslVbK6wHgKjMkgDcvqbRMo6LvwDPkLVE7IPJPliXYBKaKfmfFp6rO5dbBQSNuFrtog45um2sPECrURGr8F", + "3EEzNszxz70Z0lzY7ZsE43I80I5w27S6DpxqR6Xi5Ph53J3aAnOwjpxb7CH2Js0eJpEAntKsb1qeClodJcB2B85BKMvl6nzPM5h" + ], + "tx-frequency-max": 707058184, + "maintenance-timer-range": "Sylr0QClvPeoLFgycqG6T1vZsaDu7euZMHiEqV0VC6coDsWQSuODvbuXd0jkeNc0nuFNhxAUDMag66YRsFmQQRF4RZo5EAX1XuG", + "transmission-mode-list": [ + { + "transmission-mode-name": "AvEZH1QGbpf538QnTNZbfRXqfyJjEsTfPp6wqW5CmczplhEe4EhbneBCMkVjFGqmYwTgsQSGUj6fAKmEgDPEKigwD4HaC7wADhR67BE2VK9nnn2v1J9D2i1xmJHYQdruvisuL6oGJq4YNYtGzvj", + "transmission-mode-rank": -1307350097, + "supported-as-fixed-configuration": false, + "am-upshift-level": -99, + "tx-power-min": -53, + "am-downshift-level": -96, + "symbol-rate-reduction-factor": 49, + "channel-bandwidth": -1273787045, + "xpic-is-avail": false, + "code-rate": 80, + "tx-power-max": -79, + "rx-threshold": -17536, + "modulation-scheme": -10782 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -101128399 + ], + "atpc-range": -76, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": false, + "tx-frequency-min": -1742253405, + "rx-frequency-min": 1566646020, + "type-of-equipment": "EPGwWSAUVeKlG4k5I6XMCPkUrSPJkfAY48m00WMO2x1ItlFcjuYVbbPuVF67UG5ROjJG7wmaVnKgAqsTUjOYmwsh3ypPemGUGqtFOPHJ5sZFSkrEvfuRDX8GvpwCM4okuRZiHHTM1LjL5KhsSMjvJ", + "atpc-is-avail": false, + "supported-radio-signal-id-length": 5276 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -62, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2021-07-26T12:01:51Z", + "scanner-id": "QXSChrMaW5QzSYmo2c41Zbmpsp6CvePd3HPc0ufXr5ok3CAYOwZOHe51D3v8hclcM3hMxwBQBZ2xuCni0eYIs3BX6Z5fbjkXmBCL7dBA5EZz8mR9tIJNDcLCbIRn13cfEO0D2ue70dy0sp9V7KADXlf84YnX", + "performance-data": { + "snir-max": 50, + "unavailability": 1194110748, + "rx-level-max": -94, + "xpd-max": -117, + "ses": -412009557, + "rf-temp-max": 71, + "tx-level-max": -102, + "es": -523428381, + "tx-level-min": 16, + "tx-level-avg": 86, + "snir-min": -37, + "snir-avg": -102, + "time-period": -327312503, + "cses": -1569615803, + "defect-blocks-sum": 16860, + "rx-level-min": 122, + "rx-level-avg": -108, + "rf-temp-min": 78, + "rf-temp-avg": 0, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 40, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": 246918630 + } + ], + "xpd-min": 115, + "xpd-avg": 25 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false + } + ] + } + }, + "label": [ + { + "value-name": "C4QoxuHqMQAdkowiYUGURIp", + "value": "0OhuOe0jaIHz4pZR7r4sQsCGfbB6T0PMG68vc0OfInONMGwM7AeX3IEiT7gF76jG4r39jRo164GTK4FSFLHItdSfk0Uk6503w3cPMAISEhDhla1SNIs9Oko0lakjfcmL7ysL02wxb1OpcPhZxK0dWoehyytNDPqCgKg8NMFQNtfRipJI1JVX097yAAm5pEHxpXG4BlUhP28ZrJHslvhlEoT6Y7bgMTNbIt7kH1BoVBnelXGGkY1YeMXdU8tGTg" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -27141, + "time-of-latest-change": "2021-01-09T10:00:10Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-11-27T08:52:11Z", + "suspect-interval-flag": false, + "history-data-id": "URtZHh7L7HBUlZnSsTAknmivDoLcO7sAQVrx5yac7DZlDm5Xfx9CTs0pQLtwSVYIJp7OP9SPNRaidf7kM8XxAPOiAhGk5wUOV1uD2msHeCRjJYEn7tMzatKKKi4HPQvKJZfLeHlsbcDU399auWBEhlo1EkBl265LYdxcUSw6W9SZbU1FIDkZQASmVtHXsFBqS0uMS0KG1vGcpHS7kc63MYpzk7pMM04E0yi", + "performance-data": "CvcdYO84YzXNMwAwswQ0CU68hdnGq" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 665, + "problem-name": "1K8Fk7j2G63fIWLFqH8Iidu1OmDapcKqOS50Ro2xvYM5MqD4ZLMhY9aMvOPM0z4GsaGbqBJNznTdFwhE9VV74YTsMIeEajculSFLtgrUEc7bIoQRcDQgtJIfkXLm8XQtIv63MpYiB5tbmb2yHKGampiGe32eTKHBfFE15CbGAFSOIMeppUsLbKjpFdD", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR", + "timestamp": "2021-03-26T12:17:19Z" + } + ], + "time-of-latest-change": "2020-10-19T14:21:04Z", + "number-of-current-problems": 92 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "performance-monitoring-is-up": false, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "statistics-is-up": false + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "E4T3CIvDQQ2GDPADGWMZkiK7KKVJSA5owQj8qPDhFGPanpNVdrUxJwwmhrX1T2qpTJpjq3s5Jh7YzVTMeFkQcQ4ta1uV3MlOoK0", + "tdm-container-size": 188156640 + } + ], + "supported-alarm-list": [ + "o5PHLPFyuO3dGKpIkXyYiAi1nCrIgCrFz8edXTLjAHw8rNREDhCNRMH7g8PwC8bcgqpeb2pLJWU3BDH6MbUvXBC5BrBdrNhIdGOgBd2k1OfDjWJXZvsO65THovNQa4qnLeDerxytdGYouzlu5Ga3L4L1rqJBu9Y7ntlHTM2Ys0fWrAio8tsTx5NYvwzZGp7VKkCv6EuywJnYbFmk8G5xLKvghW8Pd7CQrflq", + "HQiid8mTmGT3DrOoOXxDXeQ4QGnXUNJBwTMJ18ufGgijHZznOY0LcRH3p4SbKBF8mrRfzevfuFq3wSqkQrX3aEYrBI" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "gKTejGZ5VFhDR0Hc2IGXDlasJNkxsMb" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "performance-data": "Ha9fCO7qpMwG3j8OuK7MqkhQhuSl6yjNIt2d92DyG2fJlfxP0EBqQT87f0kdyE0972mgWRPCTWd6bKWbgpt6aC5hCqu34m43hijd90IVWV18yPbG7FF99CjL2NGYaKTr2dw45eZ22S2sAd8zKNATiTFcHd3JYW201yW7FN9zyb10g9z1P9U73rjCFmdvb7ncFkjc7sLFvMFMO6Fv8zu3TNFq2KVdRipoCJB", + "timestamp": "2021-09-09T08:18:35Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "TPdzVS43jy64dDu7fp" + } + ], + "number-of-current-performance-sets": 81 + } + }, + "address": [ + "Y62ARH8cn17R06IAHB5Gva9QZvbMCICAOxax6aJlbI43PMDwfA4LCeBBBMfdmSNbhPAnZkI2UNXJrt7H3csyiV9Tzp6W9L7" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "name": [ + { + "value-name": "3RBXumFZxHOPKVnZk0", + "value": "4s1bD8VtK9Bi4tL2P7HGwhud1iBSutPzVICyRxUtzvLDQoxyofeUwB0pLB9f4YGZHjqqIcThHxNqVkYbr4YXFYeqznyvee" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "bfhc2PGv4ZT0zEQ2F2S1NyanJCDyqPTC4aO6RmuNlfGUTwWqqGje6lBQX6gfW9R0bxZ2UtQ7IoUtUITkh4qnpU5e0ltWudPFKOAw9iERGqcs85Mp15NiZSwZeROA4D8HrI5ASBjy1v0asEzlJeDA71sdSgFPTNocntEf5X", + "value": "6kx8EcAZNOCgNDI0nYG4JlsVBWrQ1goZAV0eZA5NoH3ccD4rBCwkYY7rUy9NOxFgtFmkfr7v82HcxED8g9k68jxURHAx6fNrU9M1ALwAG6MdKieSryRrSgeBPO9W3OnPQ9IiVeTtcxGOPUH9lqsdGGGwuPkpwH6mJOEw3pZ7XxWEsvFNV0StGyR3gbsMLz0mnwSiWJqLgehAJXnwX7Zv" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "local-id": "A0eTYNZpks70aosp4JlYdnIcSOmnh3WR32DTQua2Xi27GnxCYSA3", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "N", + "value": "Md8Y6pyD4QrpGCQKsGiqMIZ28mgnJ3Mn8Me64MC8u3xaxoU0W4iINaKNw02fVPDVtR2xvEGZzd1YtNYpS90xjKkPDn5q4Imxrg5WMLNdQObkB2BlbBSumdjZAghwYv3hL05pLSCCyOO2Qpn11gnftG6VXnrNTmXwn2W0VyCteiv4ITXB1cQmTOhIbAnWWc" + } + ], + "transfer-capacity-pac": "vfxiikdZiuYNEkmSz6pTuNJVSQH9Zl7uswELRSK1eAGSN3Lm1a7wPRjAHTJyeQVynzj6jV7yoOqbJ3xK5E8Vnkn4d6vjOiR3R393Y9tmPTpyPWaUtbHQv4NI2a1RsSUbV46M5z0UlqsaeuWzFEiaA", + "external-managed-id": { + "manager-identifier": "8UCJ8ig7fmG", + "external-managed-uuid": "7BtxkSgZxM4njsPmw0qwNV7Vdo2kKBARcVgoNpgkbkIuMpIai1z5WGS14UlOvNxAJOYw5eJgyjDcAdfSeOP2uz3zupfRcNrNBqcGEVO5erhOFwzLkgOHQRgc8v3lan0LNcjj70odjyUY4lChBqYjh6nqtjDEGDhtQtEPtV3MtXDpifyLxoXOmk6QDBmb7DEXYbMr6H6rwBQOQhsfFh32B2K7v6iCBP" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "1b9d112d-8158-c2d9-ed52-9f40b4e9cbf5", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "1sFss1PYL0MmixDwHd7wtDlAuQ8dpO8igFKAzrrcrdzJDc7kheQCR35mTdza2zsaf4LOw40P9rrMDyYNNGpEJuSDAsFu10E84hOsdHin8J9E90rWGIBi5lVFNs9HsFHxPwZ259pdKrJUr2QZLjhQF4vkxwTZ3toSZgNWpc12vLOWNwWyQ5gnaLzH9lydOXXFd" + ] + }, + { + "uuid": "5d904732-4e68-6c61-b775-4041f3734fe7", + "embedded-clock": [ + { + "local-id": "CEozjeznNLtpEZix7faj0lYlFylqzMV4qbDJp46dIrCeiULp2WJ29zfO7A6zm1DEd8n", + "run-mode": "core-model-1-4:RUN_MODE_LOCKED", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "f8pO3yK7hVXyQo6MlujOMkG6x7RgTkO0s5GvvqvEekcWIjAWFUKreipDhhUbBA3WxKj22Oyg9KdJVNxBHh2NzsrRBdU4FX0cHc6K0ES1g5DcLaNkkH8T1z" + ], + "name": [ + { + "value-name": "clHMEc0WYMm0IX3RoaxwLD5ZxAECIT6M7GzLSzIQdWRNLMw9W3FzzCzY45AMYyr5e0J6rrPFfyk0cR98UHAlb1jg6L2WklUylDxFWecbMw3Yn4YaLynXzH5FkZuElo5yTudPIpSuO", + "value": "kbZidD" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "OUMA57hEnHWW46iORQyNQaF5A7UlSP9GJN9PVqlaZh7VfhK7ZaMPkjMUqy8jnhR7X0OSi12aa1Xpazo9J2Q4lCQM2YXq8Gp5zdPR6JTgDRFFqWH2YxYc2GY4xNuFtTC2YjM4UxkpoS5HOEJEbzQ5fGaMlwjPiNJ86n5TVpab97SXLtuP2cUaTWWetgVD3FL22QNP8X1hXT7Iftx9Fkj", + "value": "ggFBosej7Sd2ASJIIKSFwRfLkNMZZ6qfe5JCpXNpH1jiL2StNK8bBoWN3AN2G59U2SorI4QhX9zIckcR4c2ysQlnq0h75rT7bazL6p33ruLDOPuL2obmeoKEp1DmkpuorV9xc4ADrdg73CKX0Vb6kVLBXgX9FrxYezvrDX4Wbd46PG3IC6OO2rpRIm0fGqeUZBluzqrKDnIk3D2xJJlLaKuSZv0FVerMPNgg5HSAWAMSdHpXqDAsf5desdL" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "label": [ + { + "value-name": "BsiaxQuok1JAYitsna2NUwtHIEy0K3Jlv2vUKRj4S2wIcZaA1cfNAIuie2bY6Mbt", + "value": "ygqqzmatSTyJV8K0fpAXTL3" + } + ], + "encapsulated-fc": [ + { + "uuid": "bb8d8311-5d35-d71d-6aa4-f720f78527a0", + "service-priority": "-9223372036854775808", + "supporting-pc": "gk4MPpYCiHWYv61clkOdlYDDRWDWA8aQs7ChosLG9AwEGqJ1Kx7XoKB7z6V1e5RG4lXsNJ0PjxlRX4LzuSwKu7J35E4jBNZy0X0Oy1vJqQAnNlO9dkLIkuDp0AJBfA9", + "layer-protocol-name": "wire-interface-2-0:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_BIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "NlsenhHhHmoAZw6r8ce1", + "value": "KiCBL97MJpzWRNk1ntAJS2Bg02oc8pqSz2mcbtZMSqJC6VDto5487xh8sFkAXKloFHBQ2svVKepQ12bh78q6FHe7ezA3bVsIC3rEnWr72QQ3K1kJ1CQHb4OqvgtzbVhFQI" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "mYPIV9d63JZNDNm1HxNvUKXFjp7doevK4klZly6ohX4VCqWbXBGJmvoxUnKatgNys8pOyn4Qc8DGzrRo3p0hNoGzEqKZypx1xPP5cTNpUi5tCPJx6JGL0", + "value": "lEE5Ddm3eTSVQWGwdAGbVaSFHYgfCgBXU8Uqlglr15mJ1U77nOiaQaPq06FCe9r9hlrCtM3uRh6K3dRqT1BKbia4g" + } + ], + "fc-route": "1CGb7pusQwyvPOnyysInv60A4otrv4XwzvHGM40CsrZhfmPNHp24o2Fkj8LG5Idw5M4SQ4uivmrKI8phyrmOmT8F1TdYtquy5yiVDF601xLBG2T6u7UQ0UnTNAS81eyYNRLiwRaphV0PYTNk0za0txM87E80KGYppKHVtScCFdjv66PZxRR0oD0o98oUPfbeRT2cDePaj0yi7fhE70xnwxLxy2jnhvt8gnkTu1VN2l51BeFAf4XLuBa2DuhUZ", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": [ + "eY4ZqDxBOvd7O7AhmraB0Igdx15NyPZEF3wXyVyeqMe6LOo07qt70JlyCil2ZcHE75tF01LqFZxjGNbN5EN6n0EZiR293BN2G8zG1k6HcvSSa3xgHcmW4SVmJPvEqaG6i7MkrLTD8DnbyNr7RF3WxYa8GGM6Ik5TrR5KuYgvtvG1iZ82wbY3183HGPGp1Lakuf4R5cmyIUrSLzUhCScv1f5HWLYXo" + ], + "local-id": "HMnQElEESfcDRlxjjuQPE7X6jNRSB6ZiSm8oAEVsU7XLtu4EQMtuTiB5XkXyqOIi2IyCntW9tTUWgRs6DWtx64C4gruGf5QhNoM2SIblu69KPtIshbRo7lknMG3TLL3raPtUxF7TLgvsJeU1hE", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "Y3nryDcIsZNsbFIGKhoP9Omel3x5b9D140lDvxlPo8isNS0q9ofbdtpqwWvz60B20WFnl0dK0n4Of46hslsxOJYdxtMvufym3dCpeP1e45Uj90sBdU9Uv773sLyO1634kFlqmmwqrrBAj44xQ5rm4qpo3Pd4W818Nmq1JWr2f2vzYzYPwh3AHkYK93H5bI5QWvRxkaAz5X03oYSUfNuW7kzho8ezQciEH1c1cEthBtkZs5LHS", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "O4y81RCh4b6Qa6x1bAN6ywmzsCyoTDCHHbIJ2k0Yv6Gx5dz8GefeKBN55dt" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "3kUoK7mYRCA51vWoAJIwaPi8vB3G2WY5gKlSRHQIciFdFBB7dbEn0Wvnpy4rmUouEJmoi46ufEHUfaUkmqHee4CDvy4RkkeQVAe5xdAER9qYkkjyK0MYXgBsGxb0JpRE05Kpac31lt0xGb5q3Kh00SsziEz13iyVgicqm7kHtcf9nczqWQjP", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "oT9PM58k0gu5GQc0qF4FGrJ8" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "w0zX9P5fhNrzr9Av2M1v3CZgtjd605loXNlYCqeT5FkxGV2Jz46vy5LUgY0hVexLTTJnbX9hvtGbgAMQwT", + "value": "5QYR7OJgBXNmIyY6KNfTiIzmZ98HG12DKSmRy5Z9VMoDleBX1QQcrhyqqy7Ys1BcLPVbVUkIyAdLOPIQxqUYHsg00fYk8swThj44dhMERSpyz0g6qa58ul8mB6HJq5vIprMCIr8sby0Ky8QYiVYE9Y0CXHln" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "extension": [ + { + "value-name": "0t51r7AU", + "value": "k194AhhgK6EHBRyrEuE4rH4UMXdLq7JC0SzA1QIMPelq5UJBofFHWBtIrGlJN4lNXUfYDXCs4YS1KtD8JaHxEa8XQtGvy1anOplreQTiGDkq6PqHZ7fvhnsZQ0mg2wDINR91HUknxwFvl55cccIlr2c93yqX43xJUGKtAWIZsnmNsjSwvsRWu36ptweprL8ejTzLHiC2xZP0izoG18CobANF6U4qx5wJQ5uxn" + } + ], + "prot-type": "BG2VGz28FFUqlQZXDlk7u3S5z8CE11mDzoqfPlom0aEe0DbvQvvkqnhZvTDpMR2m7ktWFJaGTOUMk5hatMnTaELxqgW48Qq73M4Iv6gpN2370k9t7oe93Zyl8np85If8ubRZiZg52j42w5vDuBEptcKBz1JFJYN5awXko5hqplsVqPqUqWjL8VmAXX7yOUEYjBaHGrZXMrK482RqY", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": "QYxq1f93s1TX0An5FO5l2csEN7BKd5A3V0tWfuRHoKxocMlKAqXuDp0ipCVCzvxuv1qDnhcLTB1YnmIPFxjaXkkeWfQvDnR8ghDwqQ9brb9HpJw4hQ662rcQy2dbh4cqdPWDF5OZ8QGyrcCAUBGO2SEAMREWVQm8FaDd7kcg2SOtWi4JTCxVnco1V2XRKjRplnCtHOJJyxcnP86JLDw0HM1DGZmqa5IwskZ91IKrfXOWX", + "internal-configuration-and-switch-control": "FIq4I7QKCpBYPLWphoKgqDYa45ZL2XxzxXv8XeKzDlqk6mKgCmw2Rn5Nk4yeT6G", + "label": [ + { + "value-name": "I54aKGS3Pcef4YNcODmCC0DsTfpssN7bKbluS5xzaLGeBtjqYFUsyxVrMkT6Z1hK4C6WAwnK93YLo93fHXHfmCy0Xj6OcoyhSx5s3l44gVPx4SMLHtS36i3VC2JGqaXazVvCgzGwuo3r8HcQbXL9fH4RJFq1HnbgaGKq8jPCHK3Ps8xv5jEc0A4B7mCPJNXUmAcuT1YsE2962ztZS7bKH7lGtXn5Cl", + "value": "QN3cyX" + } + ], + "selected-fc-port": [ + { + "local-id": "UWqKTEkP4U79q5gdWaYLJByu306t5zjSnBu9gOYkBXl13B6RL4Cnx2RA2PW0h7SEJeNR2MbvBpow0vnErR1RTKjWAfWJfGnYU3POPScihAPaX4OpWP8PzrD1HrKWZ0ML3tsKdE2neJxcOltC2Bjt2XnBg7pgZ3T2wlECZzZ6iwiYJDAL6U68JtCZt", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "7sX1nlmTXesWkLkuB37cGd6NdH8PGBJOWGHb1V4R9xNta8XL3WPK1Npfux439FR5dq87lcYnJDQL", + "value": "GpHuejw2ILwfHzgfidsAlrWyhj9V1Nyzc74qqsk85RgMiw1tCm3XFRnX2pS4civgqrGQT1ZYK7DUvwf7KjXq2cn5B71FpoVHQuyBnps7wXT1t9" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "D7QeEv1Jstaa33xgB2RM25ZL1MaM2PuxWcLsIF420ec3aCjDw2pyZhc13eFXV1uK68cONgQNnUJxwU2UXrlWIxPL", + "value": "nAzg5bm5f2SwKxLF8a33cYSDjGeIoZdLsMTxP8C5amtVLesUovPslH5wnjeLbsoD6a2WiwTsKmfnAH9QdYiqxfXVr3yuvP7uZ1i9pbB9pRwZqGHDwR446TRpWhTk6SOXLYYa1sbqbAhB8Y7EH3IFWr5SJYcHJSxu" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "6kYwm2LrwKkb1JZJrth2QymPWjIPFJQL3G9qJMJ7w4ixF9g6up0cXn1TGCBdlrYh0ZHBLiI9mSH12XZwf0J4nCYV6r9sSZJKRilC", + "value": "VMPOlIQaIepIPuXskSyLTSvLt8CLt6ehK355DN8d1xVJTKbdvBQgue1PmvtPCH6eC3k7QslKR8lLTwQoZHElVyb93EYxdXMPS6WBqhd9qyUbWDrVc5hZvs8zYY6bNK0GIO90YmagUWrQzSDLPUCdeKM4JKfwn745Wd6Mzg2lcl3E5HhUtU7AELEfoUELTIQHOOtf4nB9IwNN5WArQz1nlxuBj8edJ4UxLgE" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "hm7tcJMe3uV60N7wkPNTH1PtA20DUL6bZdE3XiiSN5YNS6b5NYQu0xXssXXmA4yAh4D6fNYUSPzDNLAAJq5B" + ], + "is-internal-port": true, + "role": "ZYqzNoGlcsR2Dk4c1vbQ9utdCv43m77dXxMKVkXZEPTa9Xm2sqLtMeHhBDcXCj2rQO3E01vxQpHReVUzd", + "address": [ + "Ih0iyCqoJ55MFLIZIAIyFhhxGEg4b71Th24Pwu6frb1ZOJYwby5IHegoSws3vlPMfTuLfA0zLTyAuoYyO3gnioL2U56irV4yGycV04uMYUesac0Y89eixZkk5qCodyOTZ0HZ5bL3YRn8WgZ4pd" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_MANUAL", + "address": [ + "N8Q3OSbj8fTVUSHQi7NOQDLc31jCW9LBiCw6mIhuXbhJ3RrdYfTGSESVF4qtdbWvFtuTbLf0OpJRg246hPM2uEP1I7vWjrjQUFKXjRX7gyRwBNuKDgMZNu0vBvjUPvDB2fzl6olnP4LiRg2moPlbbmzMJKzyfcaarBvpRIEGMqYEy10WIe0TAzxbb6KriUBBnY1ezxNlXLRnEK" + ] + } + ], + "supported-link": [ + "5JciXKSJ3KuuFD6pPuq4z00cQPARQs6W4b61VYLRA7l7LkxsOXxnPpzy79pPtnDxyJrmz4d2bq9OKGhywGVdXmL4naMRqpgY1HcsLhuPIEvscM1IkOWi3HeqK09aqq0jZ5LD" + ], + "label": [ + { + "value-name": "dEDdGm3BYWWIYyqFKml2SCvjFjAl1bxfH2kggnRfjNP9e7OQt2SdEfwbyZwA2VHJQ1Z6gJdro2BC9psDjcIXsf1S6xk8l1RbUJh2svuQp5lzmF4GSMvcTw4Z4pZpiRs5sJ7U6BCoGXX3vTBnx6zjDvazUaY5Ti2l1970DBobrd6WYHbnOKGjfRS2TIZM01ZT2YTFz9J0ePO4xZsdB8wRRoLK6CoYDnRxlD5NEOFTD", + "value": "X2lp7XqDGhTj2RViPqGzXTc2GQIeBeArgVIgS8TqiFJcoEu64aFUWJWurxI3Lim1649Y53hnA0zYx3Wt6Bn2ccwEJfzupVnvRxmWsDjUvSK2WHw2aLWnXsTGzs2Zf" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "x2WXVjGl9hAOuoXAAAaM4N44fFynfHvFBrCwKjJLsbsWrho2SyGWeKTtprIF0dcCwO08ZCUrNmgfDE9n5PkjA5MRwnowAA07p1fgD1IifQxTmy8rosKQxpHVMYseyklPlt6QuG1KoyvK7D4nYO5n5MjJCDYbXjSbMY19w2TUtgFsTBHRhMfnqq633460gYbUX53l7Ogs4NMQotHFfO2Ge1J9XPa5FdSuiNQiC6KyTpo", + "external-managed-uuid": "SYO0EJGLChUzY4xDip8scYKGWn" + }, + "fc-port": [ + { + "local-id": "K6cyJJ53MKe396MaTGrHZtB0Ukx4syf4ErCg2HbPkpKtwowhXXQWrjWdDt951o9yIEGCdRjxh41F", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "pWhmEdFX1SAv1GoiHOSluuzeO6vKZ24oYmLuzirBbTY4ree936uptVD920T12XiSjVmLdFmgrclSqr1lqoDTb8Ud9N73ChWWcaHpIVG97T1pkVDCbgnmohsp4rtzIhvUj4b1RRaQC47XZKr20Pgh6Iy391CRaZDuVPvMGyubCB0tmrn", + "value": "gDvnm4inXUf0LSuGzRk8hOjTpjeLKB01fngtjyQ9k595QvDhmXpEDIp21EGM7yNmNVP7tygFvhCdM7v04UEzDWtEs1izr5OfSved3mSzDuMpBhpx4WYHSsdctwLVtr2mXgz0Csr7O6wifVHjRG0B0eNlKr8dSarPi1IMl1T17pjnd1GWzzyzNdUpE3up5W6oXG2aIWbHlvWqovnP4NgJ020xXuW" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "ZY5Zn3lb6M5hTyubJMwC9mjWsv7nL4qCUvB9yWkwAiFmQapAOV4X", + "value": "nLBSSYvXg7JDAT4o5AZn8deiCGYpKNyZy9RrZegflRSVKWjQpa5pfjHRRx8BkGsSPbbOpjVKbGFNuRDL1Ja9UJ0Mg1fAHIlpTo5bI1VTztyV" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "qUjfBl", + "value": "bhtSvQPV6kaVgX" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OUTPUT", + "fc-route-feeds-fc-port-egress": [ + "NAJHaNJ72gpZYqKsNvzxsFiIETVrB50oFB5PoHOqPdiFw28jpHIJe0kSM7knccDJOBycaevZkNEQHE1YdJIrK2ko1wLeIoXwZoB1C60WLxEkbFihpSI1M2pOq229qRxi78" + ], + "is-internal-port": true, + "role": "Uf0e0u8Vha9nbCBIcIN1l9uwb70sTZ4N64U6q2TIc2XnEq5I1KCmT6SWeKg7J", + "address": [ + "JmztfdB8l4PVp6GNcRn5N8E8HrsL8xqSMZdT5O1qSQl9X1X1Lc6ylCG230N4pdOb4149HXrsGMBvGqwjDCRY6p09hF5GSTKWUGYuEpWc4xHCQdVtHEjNVjOcYUKINmwA3m4zMSLIhkk7x7s6LLTG4zKUtmu9JTJEfF51" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "w7lXBPBEbkNh4RvOhoPK013a5jSDGIDcIZ9jGKQR4D91mEHEUwgVpj5mvPSbyvo8mpr22hUYN3R9zyFt5WgmfmBC3tOBY4Jdl3fnk1e7W59nEORBK7PSlqupTaSKeuXAx4PJY3JU9SiFy18b0X3eopv9AfTGJI88FYKD1tp2dzzDsHOtFRz3h44JjQpVqy35wFAp0SkdrTRUB" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "ShhPR9hFK3xPKXE2sfvHcIWEVzTeMMew3vdMxus9yRYiGDl8KQQWqEAldlrS7Fo23CHA61BwSzHz42HGKpC234nhhO1olpjoT0QSTrgLTXcPRMwtb0v75SomypDUGOasGTczcsc5qpNhbjLebglg1Jvz00lzOo1uhd3tF7rXwefHpSWA09R1TetLeGcU4dolijPQq8NPmUoLMclFm4G7a1SoI5aMay0lJHb2PQRbLfO" + ] + } + ], + "supporting-pc": "s94O6DVgwFxeCHTN8L0RsbL91CkEK04490K7vxo24V8HC1mKEmu6xffqKr5mr1qtT2AhzYjDLrkoly0ZUuYjC5Km", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1", + "layer-protocol": [ + { + "local-id": "xrY38Xfz1xyNCLf1IVp", + "layer-protocol-name": "hybrid-mw-structure-2-0:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": false, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": 24549, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_NOT_YET_DEFINED" + ], + "number-of-available-traffic-classes": 19, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_6P2D" + ], + "drop-eligible-indicator-is-avail": false, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": true, + "admin-shut-down-is-avail": true, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": true, + "number-of-available-priorities": -32 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2022-02-14T10:17:39Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": -45, + "current-problem-list": [ + { + "sequence-number": 9537, + "timestamp": "2021-05-22T12:12:51Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "nj7mfTb4xq6jxqMaMh01vT92Q26fOyHbJGpYAs2ZS0birXs56sZud8o32maIUSUEqbu0EpSwp3OIS8OQAFkFNIBH5LpRvbnWfSOThyhyt69leP4Huoe9ZPQ4B7N" + } + ], + "time-of-latest-change": "2020-04-13T17:59:08Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -4716, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2022-01-25T09:10:06Z", + "performance-data": { + "es": 1132656874, + "ses": -579715011, + "low-power-idle-receiver-ms": 146101152, + "low-power-idle-transmitter-ms": 1023144100, + "symbol-error-during-carrier": -1722771525 + }, + "history-data-id": "FDQN79mmK1FzVmrkQ6MLMiPwbkXvyX05ARTzS7OD9tcWPv8FBVjg58MgkBDKyDQ1mBs7IgKJJOFqbOYMBh2GhGOCirmIW4JbFcigsUZ4IxuTdkxGBseT02nalJT9GCkdGut1ol56SrRXMhDnJR8BTvM67FfN9A0Q4mRlzWjjf3g1kThVCpwnVitUXIH7", + "suspect-interval-flag": true + } + ], + "time-of-latest-change": "2020-05-25T21:58:38Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + -60 + ], + "tx-level-cur": 28, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_NOT_YET_DEFINED", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "pmd-kind-cur": "GfJDJjN2LpYjZB8f66JF4UfRHmn9kYO0dywOJbRuAHFsjNHhUqOQd4zMiWWuUKnZaTNT4wnw6VYpIxyuYmk3iTPsHLXtocsy58s1wHpCCgTdNrzDGMGQxojf18Ipk3Qh3aarRz4mHPrv900PEzxc", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI", + "pmd-is-up": false, + "link-is-up": true + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -483224055 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": 4, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_EXTERNAL" + ], + "short-reach-mode-is-avail": true, + "wavelength-max-list": [ + 423867492 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "wqXirMfEUlEx6CtZubGiFSzafXZpgLIE3xOvb415hGCnaYew1VPHFoJVlBcumU0pjPMmTOr2mWpwMD3NqSu686TtH5P3SQk3x7qiNJk9xJFjeAZFklDsroW8lD35lo1Snja22ubs5ILkjCZDYu6pKUy5pB3LR4DenOghajJg2nAdZrIXNGfxsNuSgxv8B8eQOn8ZGJ7A6HN60oVN4acxPGh6eM6HMkytH", + "speed": "kghrQg0Ee021FYcRnTxEZDiXl5iLqRbK7sbYAbuO3oQIeUrCNY8FurCPoMsOEDqD5BtyEXmHd4hsYA4Mq4jUvVJLA3r6GRJEkdcY2yxgDGItgEfHIyB6mdJWgb2XUDtfQF5T5v1AbB4k7b1PKuNYzxMIAOx", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT3", + "temperature-low-threshold": 102, + "maintenance-timer-range": "oyO60uDuOD6QaFDNJr0QIhieBKjGzkAYKhWKLA7r5598KMVl5N3N4lTx6ddxpOva5kUIU12R63ZIQMVNz", + "supported-alarm-list": [ + "tvcm3ar8IRO51TpNubHo3FrUg9z3X0Uqo7Ejh6rZXg5Q1uDnGcLBKdn0mW3bXQBdXgw6eX6b531ZpwmXB0qldOdrC8DrYeEVmaUA0SD5VE4c3j2EjsZwg4XTcskbHZYV1So1K17xy3CBmE7x6Y3n2T8edkpUboId86eT7diF9U8vyf3x5YU7JUmXeDJi1jv2pBNpP5WYS5licgPi7BhIvDxCh9Uash4KSR1z" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_XBI_300_PIN", + "rxlevel-low-threshold": 96, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": -468284901, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": false, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": true, + "temperature-high-threshold": -52, + "admin-shut-down-is-avail": false, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_FIBRE_CHANNEL_STYLE_1" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "performance-data": { + "es": -1447560169, + "ses": -2009731451, + "low-power-idle-receiver-ms": 1602490816, + "low-power-idle-transmitter-ms": 1035634744, + "symbol-error-during-carrier": 1036291090 + }, + "timestamp": "2020-02-16T06:51:06Z", + "scanner-id": "s2eWjs5iiNeLNTJQ4EgRfrVoTq1k3SRoM5kXpi7HXlsC74s3IAVPTIdF87Z4RIsDFEt4OAMMW6g3aJ6KbTz5CFKCMBGvb00QFtUl4y7SxgNHRLk2FT79qJL4ckzncAdR3057y4Z5kEFbqZ65K563PR713Hhg9uZcu4cV930tIxx8wD59I3cpUjjQSA61WX6j2ie3l6o3EV32q0b93fyQzRGjjElgtrznBNqWTHSxCNA3OD", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 41 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_BLOCK" + ], + "maintenance-timer-range": "piD9m90Mu9wyviaS1shRZrM4Bflj32NscqBrzCd3DBt8TDSMX1wWtiT4q6gt03OduhEVTRRokcxdQp0FrouMGfQ6lYsm2gzox5jjO2H8fed5w5CXt6Balj8HiAVcQmAorLzfOgf3ns0TyCI1JjbWCkvMUqYDMyT5csc0IrVXUVQspqt0BxX6JsSvLR8ph1v", + "supported-alarm-list": [ + "HlW1gTV3Cft2Alw7iCIDmeodeNn8aItS4pLcbG8NNBHnW5n7H5K4j09qNwyY71Ibjtfm1n9OQI3FOqMnworHot7bRF1YzJ1K4h65E7LvPP2vfOTL4clsFsvx0xvz8xbdGhakoWH5LJBSpuwtGRVejrLjQ8KYxVbd4mqsaZqVJ1F0nbuVUh16AMpq", + "2pcXsi2OImYHMLiFjbUuFIhWJnpoMP3G6fEzxyn7MePrRZ6aaTxHtOwcbVAPKDwRL2iiAFqeL7FDYEN1xcI00e4b1x1E2pnNrF6Tco7YnNtlr8mQl5IlbMxdbqReP618LZ1Xf8VCVoYexc4S9E5ljuquU9ABfuJ0lKXBLL5y1VNq8JahgguzKU3x3w8a0Salu0" + ], + "statistics-is-avail": true, + "encryption-is-avail": false, + "performance-monitoring-is-avail": false, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT" + ], + "max-queue-depth": -398932941 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "q8KL1rcXt356T9vg6Tk1Z25QXETSicPJcrmdLqb6u8cfhAvftPhkRmaO04ya8fTkG7qjytpUBC9K4EZxl8K4uUKmQi", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NONE" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_GTP_U" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_NOT_YET_DEFINED", + "compressed-header-length": -6168 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": true, + "information-rate-min": -2029943173, + "fec-is-avail": true, + "burst-size-max": 174, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_2" + ], + "egress-shaping-is-avail": true, + "information-rate-max": -2108870029, + "admin-shut-down-is-avail": false, + "bundling-group-size-max": -85, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_8" + ], + "burst-size-min": 23807, + "fec-word-size-max": -6359, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NONE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 51, + "current-problem-list": [ + { + "sequence-number": -28890, + "problem-name": "76829qAwsjq35D9CcTJ4JHcV4GNw4sp3yx5zXF5hRvkW0uqcfa8YJlMOTrcXTB0j8XSYCP7lcshcWIg3Kp1tK", + "timestamp": "2021-05-20T00:14:52Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2020-01-29T00:59:55Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": 12632, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-04-15T23:09:59Z", + "suspect-interval-flag": false, + "history-data-id": "AxpzUnaV2NLU74CT5U740rSTOgqsSeIsDZUxm4loRYbQ2FBZsJ4s2OdQ4vaOKS9nJ3N578mQ6pz0420wLWYNC4vzzFnjpwz8rm6qms9sRIkNKcko0a3D6z4G6rRwQqw9ECA0WJkFjFtVRFjSPnnWOruUKlisEHCibcj8NDN6a8T2N5Mvs1j8sN240dxEU9X5d850LT6W1RQHWucgv", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "max-queue-length": -1463097933, + "avg-queue-length": -243268561 + } + ], + "fec-uncorrectable-blocks": 306579676, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 1401176516, + "tx-ethernet-bytes-max-s": 1207348498, + "time-period": 1293994960 + } + } + ], + "time-of-latest-change": "2020-09-19T12:11:19Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2020-05-22T01:17:31Z", + "scanner-id": "33Ij6sI0OkFXPwb1p1dtRmpx03kZ2AZ5DIgK2ZKQbhGTOJU5C8ylmPSmT5dNFdKiN0UPREGVWeOCXAHAA7VXOGbzLpmquYAhZv6I1EDPSjrQU0i", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED", + "max-queue-length": -676161905, + "avg-queue-length": -1845051787 + } + ], + "fec-uncorrectable-blocks": 299211342, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -2144564899, + "tx-ethernet-bytes-max-s": -912273817, + "time-period": -1965638435 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 73 + }, + "ethernet-container-status": { + "timestamp": "2020-11-04T03:06:29Z", + "last-10-sec-data-output-rate": -77081169, + "bundling-is-up": true, + "total-bytes-output": "4996873917813550080", + "total-bytes-input": "4618937832339376128", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "statistics-is-up": false, + "last-10-sec-data-input-rate": 803342522, + "forwarded-bytes-output": "5101997477269856256", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "6588417549516243968", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": 7536, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2021-07-31T01:48:02Z", + "history-data-id": "dg0ra1UjeZoqm4MLWesR6prWlVzeT1DZiDqkxcDDbUVqYH3MWvvUMXI7SalDbYCltVxS73obXjtVTwIP1dBN2cMUm7qpX2LqPibXlz0aSt6DZGkSTWxO0jAmi0LfVoxKHIzUhr52U3FLJ0DuO2iOlT2DLNKGcijL0SxacC46xBKgtfLhiVXvGZ1sNL0R3jCW416gE2e3DYk7eXgwSe1r52TSOTBJd5F97DpDFDGjC0qQPGeAM71S2U", + "performance-data": { + "rx-level-avg": 115, + "es": 1247521492, + "unavailability": 16609214, + "cses": 695630080, + "ses": 683500010, + "rx-level-min": -46, + "time-period": -1667145221, + "rx-level-max": 44 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": 27641, + "time-of-latest-change": "2020-10-05T08:38:06Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -16259, + "problem-name": "drf1X2ZVro797jcjNeXt77HurJkaTgl6zAZouYjVeq4lB9FonuKmCrRV2b6Vjj1STSgnJraXS6btfQKCcuZOVICXTILc1EWMx41", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "timestamp": "2021-02-20T02:23:18Z" + } + ], + "number-of-current-problems": -4, + "time-of-latest-change": "2020-04-26T11:36:17Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "58mEztj4oohC0nh9LmeB7bnlnivp5kRbs5PTz0QPpZrpeAz0XNt4YQie9Nv67mhrsYcTZ2Ig11x8C60rLtnCcFQdsdjrzBKTrXEiReqLgYTK4T3Ieqkq62DqfXKGqmAJb623lsGBirdfkgXqG9REbmXqbH6B3ylfFfa0zQtS9y7tO4Tm5CTgZQG2pEEs5RzK6BCxjXpsvoVbkHxpbqF28d5xKBSPsrrq33XeSfHnvuyQ3Xf", + "tdm-segment-size": 362571542, + "max-number-of-segments-reservable": -52 + } + ], + "performance-monitoring-is-avail": true, + "supported-alarm-list": [ + "9o0eWCPOr97Sz2NphxwYU1kk" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "suspect-interval-flag": false, + "timestamp": "2021-11-05T09:30:26Z", + "performance-data": { + "rx-level-avg": 74, + "es": -774149705, + "unavailability": -161819785, + "cses": 3945266, + "ses": -716650903, + "rx-level-min": -123, + "time-period": -1397194149, + "rx-level-max": -112 + }, + "scanner-id": "lVcxORlsgptgVwdiOm1dcm67bRRNj47F0j4G2q1aPuqKTEVz0OM43KceB3UV71sZcwyfWzhEVIoOmbne01i3Em9fpV2pWug11G8P7pt37KJlV7zN0KIE6SMoFGFubNv4uDLB27w2RgnEfPk7z2MxMqNk6sO9gj5CWR5QYCSHSgd75pewkSVYaJi936ibhoN57TWXvOwfWBmT1shld5bnOuwRAH", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 19 + }, + "hybrid-mw-structure-configuration": { + "clearing-threshold-cross-alarms-is-on": false, + "number-of-tdm-segments-to-be-reserved": -21, + "g-826-threshold-cross-alarm-list": [ + { + "g-826-value-kind": "hybrid-mw-structure-2-0:G_826_TYPE_ES", + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "alarm-clearing-threshold": -1559038561, + "alarm-raising-threshold": -1483135203 + } + ], + "performance-monitoring-is-on": false, + "problem-kind-severity-list": [ + { + "problem-kind-name": "ZDyEMWwTK9IqsKqdbk0ABqYrkSMxB2PsFf6j3vcOEN66xwjIRcbkC1E", + "problem-kind-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_MINOR" + } + ] + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "extension": [ + { + "value-name": "VFAP79DQTZ3nDz2ubAoYLcY30HN8Jlgw1Id0SQIDHM1dd3zovXm89cb2TZauki0d16dLWWoEAhJNcibI7qQhCUboTdS5vLjoRo1NcijMz2rMcvmkV4BxYEVJRGPer0viowXtO97gbz2o4gIRkbgjH42yKJE", + "value": "J9l0yatejsun1wLXMlOZo5a594vLO1Opb1pBbKPvdkS6Iv4nIKm6Hw3QAqtorhOui55uQVRVfJ" + } + ], + "configured-client-capacity": "Apwrq5A59BMVYTUKSlF0WJiT4YZKi3pKkN3LSDQT6uOWnIH74e7SXiD2guEqp3aKIdvsJdlPHaMWKlWGzVrpdWrtjXTITVsB9P4S2hzBrdy4ymK0h3pv0QQjFK1yxu2Gb6qenSHH57LEtnELr38rLYCqADR8ZTGbZ7heRYNW6qszO6c71kqEj25TxO1xHIAyHREqPsmNSPfyNrxPMXl5RiYp6SWNsod1fSrWkFK4uZvai", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 402820416, + "last-10-sec-data-output-rate": 1336661626, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": -237661845, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "zeb2SD1OmksnZjU431jqetBZ4KHsfrdOGoIy1JffVHCUSpZVqadEDPvzz41Oweu4vcCwNJMIrovbNm75wkC117tB4uhsBMw6Q0uEK8e3xBecXlalyM", + "fixed-ip-v-4-address-prefix-length": 65, + "fixed-default-gateway-ip-v-4-address": "LI2P4chxYNDGO0cq8jtxUHKK3UXtyc2jMX1R9igZYUFEMS4U3xsX64H9QxCoJxHouI7vTnuJ91fVTjQWIaMO6lQWSkcuRTSduZIfe4" + } + ], + "broadcast-packets-output": 596066744, + "dropped-packets-input": 1909772460, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "dropped-packets-output": -1033431949, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "65bRo1GY3sE9Nu5yP92y3MEpDewRjm7hrj8HcOFg8jhWGfmnogNj2rAFy6oJsw0LH8sTX715jjTRy7eOn18plIWTHdu1BuNiCfbrf5pqoahOanCxoCPBlLm2QQ3rkIJPYN85Spv8sEWC1q9h3YTgCfasY5MaOvZMa0J2peaRSYtLpv2slVIX3Si1X4bLr3pC30wkez4YxxJWUEggzQ5uInnyjzb", + "neighbor-ip-v-4-address-list": "utfptDJAcNyCdaq7OH", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC" + } + ], + "timestamp": "2021-02-21T18:42:19Z", + "forwarded-data-volume-output": 379941084, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": -1106905283, + "last-10-sec-packet-output-rate": 1891090296, + "vpn-binding-is-up": true, + "multicast-packets-output": -1349364939, + "broadcast-packets-input": 2142664404, + "last-10-sec-data-input-rate": -1316893995, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 88124416, + "data-volume-input": 340015668, + "data-volume-output": 214330442, + "fragmented-packets-input": -1572908035, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_DHCP", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 1586775808 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-08-21T02:07:49Z", + "number-of-current-problems": 123, + "current-problem-list": [ + { + "sequence-number": -23536, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_NOT_YET_DEFINED", + "problem-name": "XaonD0neZV8qoNctrwTQrTc1jaXUzK2oUqLqi8EaVMAkrEFS2yAtjNnCPcogWjFQJqgUrU4eywyZa5RdvsyO7VjW7Hd30SUCa2wBPsQnYgf8e6lJqUypHRePqrSjbEVdzjHoLpDJFSJTRXv9J3rqMFfc60v9wie5tVlekRPSBrDko8m73NxPsFUqxhr3AF13BeaVXRNzijTGr7FvU5kmK6M9o54YL5T", + "timestamp": "2020-06-07T04:01:40Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": 21137, + "statistics-is-avail": true, + "supported-alarm-list": [ + "oDXOQP06xdpTie6qEAWLRjXl8yMVv3qLyfzo4zvtFMmX0sfwUc9LnZYvxKrVNJGeY8CUHZfmLtcENr2IvclS3cosWHnCqWQg4s2Lk905C4BpnEZTIdDLp15dAtP0pF8l026kbYhFULXihW3Z1GCiAHwa2l3jT3EL6D59tePoRMG8ABZuhtMR3i25wXhp0Va6y782dXi5BQ53r5xIqcs", + "umr0jIhbDji4iqYwfgtI6yLpvbZWnrpJFQCQqL245c0nCYLJ6er4F4tafk6uMo6j6IaxlctqotGSjrthGUldYGn60msECyYA807u4sMsNsc6UFfsrAFh8Uf9gINK8DlhDkDHNp1sS5rEKG639DlhxAqGa6qjBDA7YdODuI5mNoSq5QletGvT9OrjUJCvn4ClhjQMTV0ycTQhBcn5SSQTG9dsSP" + ], + "information-rate-min": -738322807, + "maximum-number-of-ip-v-4-addresses": -2672, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "RvIDfizWhobbhN5yikMjObQUhPlHSi0CNA7USGI25UdezbERvr2bCSYLAbsktlW8V43GKLIHFVWe6sXtT0FoSv1sGuNaHBiCxlaa7SREGFLE8I8TIF9tabVQFASm4bQBo1LnLD2raF6an64YLdjNo6vVHo9Lr0mPT0dED7YFM4Q12MZNRas8hP3Y5dBw5PmQPrmkyk0cgIdiu5Xlfptw7pmcuXJzNX", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": false, + "information-rate-max": -1660763001, + "burst-size-min": 19587, + "ip-v-6-is-avail": true, + "maximum-transmission-unit-max": -658, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": 20986, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": -1438849713, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_LOOP_DETECTED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2021-10-11T09:27:37Z", + "multicast-frames-input": -612955209, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -364611195, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -1131994793, + "dropped-frames-output": 1363843150, + "statistics-is-up": false, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP", + "last-10-sec-frame-input-rate": -1317408419, + "errored-frames-input": 119484176, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_TESTING", + "mac-address-cur": "ocyDmvXcgxZOgSNFdUZF3ne2DbTRDmzTy7wUulZ", + "broadcast-frames-output": -1287168619, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 1848746776, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 1177677804, + "dropped-frames-input": -910209921 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY" + ], + "statistics-is-avail": true, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_ETHERNET_2" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": -22928, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": true, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "mAaRQkJWGnZ4AIOOqA97K2WAFkhByfnMHxvpR6lqtcuWMaK5KL4nF0Xkk7VKeipVHUlr1yRmLdipnUu0GznlzcyMjtoxENldAGEt6nPRs0hQUDQsc5OEheiBHG0dmlrWTXp0d6JFYSnLwddIiTeA7w3Hd3Mzh5n23EU8KENBwbmUgrvrdJ1cgWTlRGM0L93GN", + "supported-alarm-list": [ + "ptuSSF6MVyheLT7X13JmVh0NU9QtOGh51LYTi4y6uHk7AsXBnGPaPPYJYG4EemCgZA1awrg19s0BUXdav2kkKiWAZ0fdeRl6jngHOoAPQBrDqwNWq78ai4LhXSm3BI9U5htLF4Box21XqGTQFU1XQMeNwBJ7bSTgamTHiu5Po6FOEqxkkyhbcoQIRzP2kAamW337q9WG7BnM2UY", + "s7pwv86eHVgTnifjmjqMkfkrIH5CB3RV38rqgxFQkNJH6RTsab6uqqN10TDBOmxJvQaDoPlACXaAO32Qe0cxjZyjK" + ], + "hardware-mac-address": "euDxJGNL0y2V2jkp6CK0slzrv18uGOOViks108ETyyGBS0SQvDJPYi8lbgQS4wNeQ7fJfMCGkih4b1VGEwvCODQSTyKP4p3NwawEW0khitdtu019wwDd1t5U1HBY6EDuP98L9kUjN8Ni0OjxdOKeaH13oC1u9EYYFZBGjw07wFhwls3qgFFqmyuC2n6bUX1zOD87106pFfVSzRjQoQ8DoCfiSemM3ndRSlQLl", + "maximum-frame-size-max": 13542, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -20034, + "time-of-latest-change": "2021-01-29T17:08:28Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2020-03-30T09:51:12Z", + "performance-data": { + "mac-pause-frames-ingress": -1130238517, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 1728475706, + "mac-pause-frames-egress": -1427853665, + "mac-control-frames-egress": 612757436, + "oversized-frames-ingress": 1360866944, + "undersized-frames-ingress": -219647677, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 597786752, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "w1LchxxmERlLjgklRNRsf0Ea7bVw556B6JFng4CNOXy75SsWxbhMbVOaYBH3GNxFo42E9wrXmRWrBoo8rFMCsANq4mmK1LppPk3QQnF4eBwQRUQirDNL5Ab9OpUPabeSn9A6w8aDJGltsbDLOqwUSA3G", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-12-07T09:48:57Z", + "current-problem-list": [ + { + "sequence-number": -26050, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "ppbKoOCfnDPtivBPRxIjC74tfdxWeavEAygYmT5BoV4Gixv946kz5hUlur9AuE644nUq8STwFXcXnAZryjSDAMY468xsEDoJ0a102VwHK", + "timestamp": "2021-10-17T22:14:58Z" + } + ], + "number-of-current-problems": 56 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -70, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false, + "timestamp": "2020-07-11T23:51:14Z", + "performance-data": { + "mac-pause-frames-ingress": -505376233, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 379929068, + "mac-pause-frames-egress": 1453088794, + "mac-control-frames-egress": 958245740, + "oversized-frames-ingress": 575327136, + "undersized-frames-ingress": 2036481184, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 1559228890, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "GqThXTslc33nildvz1Idpru3UvS8FBhm12vRNYcZTfnbssyUu87TAtPmYzuwaDS3FfUt57kZ" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2020-09-10T00:56:18Z", + "performance-data": { + "cses": -1301057127, + "es": -1751048973, + "rx-level-max": 76, + "ses": -895590129, + "rx-level-min": -46, + "rx-level-avg": -80, + "time-period": 1956921936, + "unavailability": -1970208649 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "FGHQNChTeSqvzMvopE2eHcbSCH6qGXAmv94bEm4SemnF9T3qpYE6aPRMo" + } + ], + "number-of-current-performance-sets": 11 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-08-25T15:53:30Z", + "performance-data": { + "cses": -1562329949, + "es": -981460523, + "rx-level-max": -90, + "ses": -2086728639, + "rx-level-min": -126, + "rx-level-avg": -42, + "time-period": -1343821953, + "unavailability": -1022035313 + }, + "history-data-id": "p4PLkm", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-05-08T22:34:57Z", + "number-of-historical-performance-sets": 16695 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -23254, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "bIkJOzcAktYXYG0kfE3ypvOJ6f6TimJlW35LC9dOubMkKEEZaAqr56a3l8OwnxRbtO" + ], + "performance-monitoring-is-avail": false + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 20206, + "problem-name": "LuGPxb73zeKIw", + "timestamp": "2021-04-24T17:15:00Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2021-12-20T12:36:27Z", + "number-of-current-problems": -89 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "L3ngE3dEFdocEe7Mbme5TMSwx7p8UOXG", + "value": "cOof1UMebYSp6xtkLqexaCWa144ITCz6qXdkK0yVQjkOIF9t5fSgJGqKLukw7UCpJIJtIagqtBf38gwevgu6WUQzg36fXAxya8USiajDDqGMG403km998RIoUGwJ93ij3c4mefZSFGEdKEgX0h608GoVfMEgHWzL0v7fKY7hEDuh9Ce1Tc1UShP74lfLaPoacnhXmg6STB9U5fVZrWLc" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "Sc9Jv00BKOh4cu5rmogy3SvqJ0A1Ur6ED7g07gCJ5LN9fSBu8J2cBxCkpclcvjQ0r61qfv2cgPlnAWRIx" + ], + "fc-blocks-signal-to-lp": "8jokJAGVXRDYiKZBRmD3CsoZUdJDKDpTOO5xgLkevY4NA3grhTmLeKC8XlDAQ3lFJq4Z4p5zf9eH4v0lgm6u6JvW48wN3RsMhwElNJUUT9BXwBjMXhh40ESXMoKI74mos0C8Kw2DxEA37LQ53Z1VDTSh9uRgqeETe81YF3t4zW0HHIECHFycqilzFdP5jlQxuJo1FJXeFXNfFrReYhiosEP7Jw42SVreEP7br4q6U5dzxXGneYMGuBF50K7", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -123, + "current-problem-list": [ + { + "sequence-number": -17070, + "timestamp": "2020-07-26T05:07:22Z", + "problem-name": "j7dPd9yIa2N2yXnsiGxzgWCjQhZu5PtpPy62IECKHiMff1zpA6YQ3A1LS17PItep1djBRWly", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "time-of-latest-change": "2020-12-19T05:46:04Z" + }, + "air-interface-status": { + "xpd-cur": -82, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": -64, + "mimo-is-up": false, + "tx-level-cur": -103, + "local-end-point-id": "jKhR8dAqOffj66dBOSv7IRgnlqkUmx8F9pphCRHq7XC53PGKzbJiUZF7hR1Ep2byrsQ4kxmjmYoiF42f7Dp1u40LWUpdWtDfVtbfTyy7oWpWSj3ZWsSqoL4cFlptO3IKoUR9kihA6GoZ0rQOTJ7imbu1wMmdH4X5QO726ovd4T4WlUD6vCgRNLKbp6o63d3T2aO0y", + "rx-level-cur": -74, + "link-is-up": false, + "performance-monitoring-is-up": true, + "xpic-is-up": false, + "remote-end-point-id": "5vc9jpWOwrqMb5pV9O2xM5DQQx0ExrXvW2w7rsWXUeC5k1StIUSuRvkI2dmsEcXsetrxOfvAu7xO0phIc153xpLzu0T04QkicMP01csvbZb4osMAuRET9hkv9ewdWQv0Cd0whk1lj5pIx3", + "received-radio-signal-id": { + "numeric-radio-signal-id": 39097, + "alphanumeric-radio-signal-id": "vQR1DIF2iYmh" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": 1845877796, + "rx-frequency-cur": 321737290, + "atpc-is-up": false, + "radio-power-is-up": true, + "snir-cur": 38, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "alic-is-up": false + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-07-29T00:59:07Z", + "performance-data": { + "snir-max": -89, + "unavailability": 929428430, + "rx-level-max": -61, + "xpd-max": -126, + "ses": 747903476, + "rf-temp-max": 3, + "tx-level-max": -16, + "es": -1542872611, + "tx-level-min": 97, + "tx-level-avg": 113, + "snir-min": 123, + "snir-avg": 65, + "time-period": 442258088, + "cses": -265942363, + "defect-blocks-sum": 747, + "rx-level-min": 48, + "rx-level-avg": -103, + "rf-temp-min": 94, + "rf-temp-avg": 56, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -59, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": 1615778272 + } + ], + "xpd-min": -62, + "xpd-avg": -10 + }, + "suspect-interval-flag": true, + "history-data-id": "KPl1ClJwFkcB4HHLkreHYAhKQFO41xhEeCxQPhenBrYG0xjkYx1O8izYQfUJNbn1OVKv4YSxhQ5hnpBdWD24NtVDIPnv1CpHp14lZXT9NYq3fU8cp28cv3IeLXBEz0dR1hcT" + } + ], + "number-of-historical-performance-sets": -28026, + "time-of-latest-change": "2021-12-27T15:10:36Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_STRING", + "rx-frequency-max": -901649183, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_TX", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "Y9WFNb5bzov1rlKB3psLsfCJ8uiMA", + "b4MrOyIQzx73gFHPjV6qvzedeIgbOTlZY7qEF1u6qt1G8AojwuJT3X69yekm8FdYEvCcwYaWrcvrMLKaft3bj2cRgx5g4a6JFIN4yX0R9niO8UYgg2jzWvi42fl7prIW2n0skTkm8ua9p0pFUI6Q5gV0n87MrHAlWtO8m8umCwvTxUqruoaAEXA1XzFo88C4Bq4XqzbU5HOuB6OYvYq", + "O51Pf2uDTTVyXysYBjppS6OklH334LWTIPAXSWsDHg3FOnviGUHy0vKlcOh9r529VuYFjia0qex7B3paX6IQBt3G9kPsqJBd5rKoJUha0OhuRGEHMmpfHsNINua5dD", + "NS3KjA0rICnjUr8kSkfQ1Vcu10swQKyDCBfV38eMKt5FVeRFqYvrTIVNAgjr0JWvc4qgcx2W07tNddtDbQWXqKK10VkSF8fRcy7o59d59yTeLeSP4OMnqooijA3YIiINQP3VRgT0HM6k", + "5HhTq0PwAQzYdeB8HpiELwR3GFwMpyNmf5fy544xNvo0JR0qgiXTGOWn", + "ErEtYrE3v6jS7CdJe98yUBNocOKmAcY7vuAtW6pj4AbcdgNjpORbhwrtk3PNgFULam7Ykw9p6kBbAgmS45VlCfGOinBq3", + "45BbVWH4lFgOJQ45A1bomND3tViXmdkqaWB5Ka" + ], + "tx-frequency-max": -1150231383, + "maintenance-timer-range": "1a9MoRpiEcL213ZyVHPpsf0JInP", + "transmission-mode-list": [ + { + "transmission-mode-name": "TCGQNXN4D7jBKiPpH6Vty4UuenfAD38pyGflw3i92BKMLAbkG7N63zAhXPJsLJRbp7wV2O5WhHI29LePK", + "transmission-mode-rank": -1881409549, + "supported-as-fixed-configuration": false, + "am-upshift-level": -95, + "tx-power-min": 54, + "am-downshift-level": 122, + "symbol-rate-reduction-factor": 17, + "channel-bandwidth": 1524274786, + "xpic-is-avail": false, + "code-rate": 89, + "tx-power-max": 125, + "rx-threshold": -4809, + "modulation-scheme": -20197 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -1297944853 + ], + "atpc-range": 2, + "performance-monitoring-is-avail": true, + "auto-freq-select-is-avail": false, + "tx-frequency-min": -1125018405, + "rx-frequency-min": -44679771, + "type-of-equipment": "pgEMs8z4at", + "atpc-is-avail": true, + "supported-radio-signal-id-length": -12543 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -108, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2021-02-05T23:10:11Z", + "scanner-id": "e1pIfZ2o1faWu3yjigpycXpZbucDHYiOZzw6yqmAFwo9rOkJWK98zz7D3cgDarj10P7rfl1UJhWaX8MTKVUcmTPi55N7o60p", + "performance-data": { + "snir-max": 70, + "unavailability": 932888740, + "rx-level-max": 80, + "xpd-max": 3, + "ses": 1634963096, + "rf-temp-max": -108, + "tx-level-max": 49, + "es": -472162617, + "tx-level-min": -34, + "tx-level-avg": 5, + "snir-min": -101, + "snir-avg": 12, + "time-period": -1386358509, + "cses": 430739916, + "defect-blocks-sum": -31980, + "rx-level-min": -82, + "rx-level-avg": 101, + "rf-temp-min": -96, + "rf-temp-avg": -44, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 116, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": -1521519663 + } + ], + "xpd-min": -32, + "xpd-avg": 80 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "sbaNrNX8c0kzh9Vq8GbJP6GX1xgQisWKw6yXTnXXn9xFbk5j0g2IeAxg8NYq8U3E0ttLQiJer8LCkQVdYPNdqklqZjQ75LDXeYIX8jbAjW4wE0JuHozZIUpz58z2T4Z03AX3T0D5OIBkA", + "value": "G9Ag1a2qJ0qa2cf2caC1dnTRkzrVTT7zUzHVJKmlCMvEYKG2UaV0qOJKf2G" + } + ], + "is-protection-lock-out": false, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 21322, + "time-of-latest-change": "2021-08-16T15:20:49Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-12-09T15:26:49Z", + "suspect-interval-flag": true, + "history-data-id": "YthLNVTV7XHzOZAkqJwC7CXF7JNTW59Mqqpedi1l8IUWzm806FudhjKh2q2YnbCNC11PcV2kvW85bhXhO", + "performance-data": "kbYAyFNV3VCGQLsLDYXMbWNIXGZLtRLF2J7soMnrHZZyCkb7a8TlWG3LfVwAM9fHSn181pzJgr9LLkSVkM88k4TrZi1DrhckwesxvU8Ld" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 14692, + "problem-name": "oODD5XV0PfT2I6geLBlCepQBBBjs1lTp1oUYlPY25JWFPcUsN751pNv0hGsi1dz3BtTOaKQ7tMNbRzDEyIyXoVQFBaPvooqRJjGL3oLp3qAUZ5qpGQf4L5Bf7qCvG2nhdV29jNqedS84XzmDhBz3yaaFAE38yipLdsMo74DdWD9U", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MINOR", + "timestamp": "2020-10-02T15:53:29Z" + } + ], + "time-of-latest-change": "2020-10-18T19:57:20Z", + "number-of-current-problems": 75 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NONE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "sqxj5W89TMG4Wer8q3xmKbG7XLha7x0APqTUeUW7GubuAuD0p2eadV9byqdGPdgED1rRVnQuRTQjolbNopPBcQEL8RrXXHCsA3coi2K1OAk4WvJcUzN7hkKq3bf0KRlkM", + "tdm-container-size": -1432998721 + } + ], + "supported-alarm-list": [ + "VjmAiDM23QdbIP231HACv2Wl9Julk18fcuIu7uw3cBeVq8YrHr3dl0quBUHWNP3ZjLlj8RmkssfSA6caxffS7FeBrWx7DA6Pek", + "mbmywOOggUsqrAFbHcpaElHLRaJGg3OCf22LQQ1YCmhVWO6v1wGFJfqAp9gF5W9kYcXGUQxx4Os0CrwvX4aGjs9JCpgHeiT4uIDoqaNvQ8vkzTQwX049ldSXv0wJihFEZi3hkIM2Qinh3dN15K2qXUfkMDV5MBBDL" + ], + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "kXfV9bJw" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "performance-data": "9r4C5ZKvh28mmVCtZfGWTQIXd7bcYsA0TwCQnedE8mSuhvY8CwWnewdswowuR6uCvYlS5ypdU9I3Eyc940wbxJv301pRZUtmKG7HfwV1Fv5c39lZ9R2GtxBtq1kiNFExmL7t92uPpz1sIejS5mqqL2Tc35uID07ZMekVg", + "timestamp": "2020-11-26T15:10:43Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "ZYJbIHp17aVTeQQAytBFkfUEa2lFABazrMC2t13scQdiG4TepuLKJFgLIBqa4tJwfeqAfl2jb8CR4vXtZIdAgudQXE027ByePYO5bIomQ05Un2geClOSP2IFyIHxc7L1Xz68hnu0fzMDt2R5oGY5AyK09jxlqimnRlv0IR0XiNALHkR50H3sfNso7ZBp9YN0ba0TUTIcybYfvPdnogPDV9UU0vk9lZ1w11hV" + } + ], + "number-of-current-performance-sets": -40 + } + }, + "address": [ + "OIyMh4H0x7tVqLBV3z0phNgc2R5SX34DDvhUrQUYPgMg1f3WO3m5Ju9Dm7nb2kHFPQrgHefou1En8zjXvxUe24Robfrdz8KgZ3wy9DWvwtSF24CxBoDDsvTvClAblcrcgPKptzVRUFwWJ0mlpZYJmK7Y5H1iUkv2a7rvGemsMLhvLDI2uzMJjTzgsBymV3o" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "JsWVuGsYi7KnNViYYj3dfdx3TZPWQqWrSKeeqH4IOO6tJgrzznNHAcKt3riUS6dCRsR91VKPCIidYCNxZs6zwRUAacm2jzF2TobUjVJNDU1toG1n07OwQIY1VkV6MA0FYbAaZbXuXQYlwRAwQoVz7Ls", + "value": "6nSKYShO3RQUVOpKwn63eGr4Xev40XQYlAIbsZRnJIiwozgUWeP2NhYKnuGnrodEY" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "u", + "value": "dzpdyyf1gq7H9qjbfvOD7cYJ644JlqXyReDpNTr3byCkYVw6icJhoI1mMX67gVx7a3xXWQS7gmj69HcsTOB9ouw2su2IhzPruegiW0hcmBjoivQ4bjdzOJC85EQn5xGAEXSAPaN" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "local-id": "I426HEO3ShDRJ4Nqadr9ddyc1Lp2smKaiMgRiWUbexUPtH7ENzN0Md4FQtAiPkkZYsIgpujv1dknNsTATyAFMEcC0MNPY7HOAhXRMgmFuG2h0VJTubq8PvKP9px8x6OZnLQ92cPoKJxDxgw1rP18kDQt3ftAlirA3hKXlrd52KAz07srOts07it2xXCS73k2c4Sxn5uiQ5RQ4kaKFCKEM5Gj2a315n4h", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "PiNzFohPMFoUrc9heOq5yNz63Sugpk46CRF97WZLtfFVsG4yuuDU940cXmteGxkag0kfWj0iyF5Sm1rIv4Dw1vJYSc4qBoBRoN6d66vwDshRtIAQEdmFI5vs9zLKYetm1zzZxWnbgE2Jmuz1zWGaT4CVDnFBB1YuApt0eRbuv56KsFL1tjbfnOa13HuxIk", + "value": "bCnbQemcBjilLYYNjaQyxwAqAiNZS7S3JfertsE5MWipMh4YrVoQrZ9T9WS13D5FSb6eECbirtH5CM33zkM0bVMkRwdM9aj2mi80MjadMRbhv6k4q65BTJNCf1hpbAjpKrhxKrCojNFOUSLcQIGKrteGuvXyYgXIH77jyKAJpfqbZbgQTWscpGSM4Qc2Y1Cy8CRHejiDzIHqLXgETAQa9BWdj879aBHa5rRjK2PbKwColK2elL" + } + ], + "transfer-capacity-pac": "1iCiViWCtquL8kjmU6lVYnHs5myx7Kw028bYi7sLpWox8ILUO6HEuo6zDx6ChuujDF9NMtr3iPAqxlddsURObQnOfmiwQMHlsR96csauhKNHY0UiUE65mtLBH37yQOTaxUgCmq6w3Ld1L7jyDpvZKhssczS2gDcFqlhMLgaO1nHFn0dShISURce4M6YUB3r1oBG9RQQK6ppliudz5XlWazSOxRI9U1aiCQjlz16Frn0JS5aP3wDdXw1v", + "external-managed-id": { + "manager-identifier": "HIQA0bl2MCBCN6o7jEsREjM195D7HRwgrmIjyWlcyOOeUcldQN5nYJg0GT7gCDoVR7ehVztlfiz1mUf5zckyNAqllxBXa0S1ZYbMpE7EOHFbBM8bYsBD21ZnqscAkWtbUEXjb5XZMu2fhai7CTLwMCTc4XEpT0ANwyYHvNz9iBorMzygkbF7FqbKoI1hIBX61NOoBnxLQOcunCLHGiGlISX6AYgas5", + "external-managed-uuid": "lSWKtbh625awkN92lrIGasE8Uuo4Wtdim92HlbOn9YLtDVvYm6xoy3xlxVpmhuEDEycRB06KRR6uMBl1zSp0VOlsKCO17kwLKIueBAYsr4O6y177ToZOdk9PX" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "f7872522-16c2-ce17-fc7a-083c8517e7b3", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "laZxtd69OIhUm79sxP2bEUDuWiyHgSvC2u9nH7xoQOa4Wjwl8qoNd199kHJsre4tI5" + ] + }, + { + "uuid": "189d4981-f197-74a2-1383-ec0b302e7187", + "embedded-clock": [ + { + "local-id": "R1zX", + "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "encapsulated-casc": [ + "N0N2eC8sjbVA0Q" + ], + "name": [ + { + "value-name": "HEk92taqK8hp84rmGrORCBkurnllWaSvO4FJpP99Xqy5mRrVi7MMA681lle9wYFcUkVj9Ws6eS3BJmwTtax39FWu13EpTjBODp7ElsKAcF3W1zHuJ7pSMdfFgT42cyQH", + "value": "PlahXKuCNiDeRZQYgADtPiCIfEMNutCjOMtLpPf4ZSbQJ1HZBktjC51JBGw590gQNBt4qJ0ptb8dcP4G1pZDmSfXyL2AEbqjMTn5" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "bNoNj0viI1CSsP484rDogIhT4t1wNRqQEOvQP08pTChdsdmwEZUVz3GvwzUbrk1X9pNQpNfjqwwSJKgfB2a35IyBisMBNFyO4eEm1TFjh33SOj7plasqS112lFD0l4OhikDb5aneeq62K6j5gEw0xx3S5GLqKrzUM5YJflYtL", + "value": "nv2zBidZbKoeutMfTpHljlqh4Fu21gZgD1P6cU5nEut1XfgJEP4QamZ71u1UK0bf2Sm6N" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "label": [ + { + "value-name": "nmYzu3Db7jcxaIT3XRtALVeOlxt7UyBaUrBhuesCyF1AnMvcvZM9M1X0yq7lYAnL2Y2wcu0C11dgGIsbzfke8ie", + "value": "AlTrV8cX66mbseNu8SKOt5ZUkk8sum04zMnvUrk1xy40NJmVC6JX3ARfUSHg6AdGeA382n1rO5rBPNojM78HHRXuJwCQ6PwkizlcOmvCkX51CtcgskY" + } + ], + "encapsulated-fc": [ + { + "uuid": "25ff67ae-40fd-6e16-e76a-3009c3799308", + "service-priority": "-9223372036854775808", + "supporting-pc": "GaZYx0o41IEO5ynKh1j4LrVfAOVhlRsT2rSrkgwdQ2TNAgyR9ROVaJaDp6MLPfwRGojSwH5eJQ2k7s38bR3dteQScDv1S2Lqi4bPD83mZXyYpC6staGOgwHs1clL664p2feFn9UeZscg4bJqlpetVNVPS8AY7En9TtH9DBnu3AK0LtiYSorGcev4eX2lCinnL4wgxUKsmvkZYC", + "layer-protocol-name": "ip-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "iUX72pGfYCGbvK0Kb0Rwjgw7dSHmIPq0Kn7MMF1DhAGEkzgnz7USgiSt2zIKp8C1oBN2gHFphm3tVjRmjDfzV7UPyuAXDcYTOEVWdteuP9XCtGQEj5564ZWvmokZsbK8PF528boPkdjNUaj57oc4g0rCoLtQWdZDKWxL7NAr1", + "value": "7VOq0VH4RX4irkWM3SZ2oBQNmXBPgCBnphGh4feW4a6vv2hyN8s3BiQY7rFnV8DcpjmtyApCKoZ7i8F5870JpRHwaeM6mpaLAwf0YwCBUtIdBoaJnbsN22b4gX2DedgOBvOA2i3WLL1e9cXxfichcflk5oPjt604BOwv7zkKllZmpOLEYPN251n2p" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "SzWEAT3s", + "value": "PyiMnVL2ZFcvT3ZuVVDE16oAU2aGXC5N2nzqbcsaKwFvzwRmkm0lkoVei6MgASVD7m3izntbT0ytppPJLQ456RbhPYpqIk3PG687ttielQHK7xlKfhPd9TuYJTgj5j8Mh8TCt4RPMyrMXNw44e" + } + ], + "fc-route": "L28GnMiOnke9GdUKUKffQYjmm0zrq343Y4JlRT", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": [ + "fUoBgWUlFUCkuanl1HhQV04LxhQEfa2u4iYk6SyLMaX8ldtmUL4HL0lahbOxlI1h0RC6J2JncHvpURLGCHofIJpZM6w0OqhPhLNTNx806EpSn3qZKO6spvkcBQ4q8l7i7UbUjjMhPc1c7s3R89cyFwC8eGqn1xF0kIVv1HFJLGVS8RC" + ], + "local-id": "iK2mZ8qvv1dDQ7T7R7RyTawsv6xKHMGZpJdgRDMeERRmYCtHKc7vfDXKKmmj03ihEwyn1cBy3kMTX8szkz4rdT4Pfq8ftqx", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "CXSYc9YQFXgW5hh95WqsQ0NHEKU3pQvTNfRZoIH3FYRC71DdX3FNVkmsWhve7S7N7RMozmj6k3Aj4dw194G4gVw54Tj3LiQL9v1IRcG3fgmjmLcvHLzXyYUCRdFvwo8xT18CdOxt5LEjoRO5unV2dPw5Vbs", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "kkWuPKVxB4mK6QY126zZKEkSw5Lg2a1mmPQbzDI2I4MOMLHPJ8O" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "6q236kbSvPsFXe0fjyENmKG9YAM8W0UUiXPo908EIsbxG3ESBaxQVdRTNDUBDOvNDdbM5biNDudkxR412BRPPAAudu6IbtvOyyt", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "Lrm7wyxoCyi6h7VRHhW4fEfB1V9zgNaU7w1DXqTzYbF7asQKKEORaVsbICCZhMTobM28dVz3Z731rLL3qrVAenMXRgO93zx6dr6qfFm6Eh762T9sc43rkHgbP4kKvKQIbW1iuno0Ew6yh81t4WMovUAkQM5loN" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "rAQcBYOONd9KZO3fxJl168VcXrhKuB3W3U8EKPkpUm1LaW1HFmAEunQjGZ42AZYDLZ9wGlVAHPmRLnqrBSXX7N8NMcQe4GRPF0lld9OVYaMBp5USXRP5wXKa2Ao697VO792daQ80SMB9Rw1HfQEMFg", + "value": "zRlF0stGsCAFEqFEar7jbDkSL2oxAEl9nGPf1aWlEoSiPxWRY3b1znTkq9J0O41bDQjwS7RwvBOc8C4Yyf07CLjUV2MJYOMBw57pcQVIrCUreQiM5aLAVWmQQ9rPX6it3" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "extension": [ + { + "value-name": "H2IdU5UalOaZsFAUuzzib56y8HlFt312XCgSH222I413KBP62hp5enE", + "value": "5ZTqUNtKpBu6Do0etTh5n6bpnsvCQ9QN0K5MpqwO10MxpELKxUPU00kglHKbQsYI4VutmT9nTVMazxMZjBTcu5sPM4SuwIctDzWZs6fdT1glr2kKw5W0bgHPcrkB9o4EX0wpYDDSwTdXNxAjCobFxKvJbHcc5gR39fk" + } + ], + "prot-type": "yk8t6et50f6D65kLrpxn24bu1rhQe1HEdPZjVtoNAvjzADkT3R85NjrODIEJCdoP2f9QIpDbMWKes48vNgsssUh5uNO614WVkXDUmh515PfxLnUqwnTYh2VLPBKIGGwSv9EJiCKoj0N5nInT5gJeiER0gBAO96yw8cgqO0G00u5g4s11BL7LhYLpse5tcD0kI8", + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": "N0db6Rs01tefaXrKA9Ma6rQS4yzNGg9l8exe5Z6YkleuiF6KGTNEcDpg3YVK64XfjmlglsfxNt2X00zGLmlX0K53A1FH5vOgR9x5BECg7w57xFFaTS8LudH5eeEcJkkBtJy5nadmzjlYQ18JLgvgm4dsiJE23RvoA3lQ5zcEKqCAjDb4Tyc7ChAV06XVXkkqnF8k6kZQKti36m0SUcZxurkmy9antuNI1V288TQKn9Gl", + "internal-configuration-and-switch-control": "y5hKXG6o0lO9vcuZRcSF70F0RpfSXBfvyw8v56U5rA7WMBNwGybNyQFh7V15o8sWFssKzeH0OOPtiuZY22DtSiCR5wOtE9qbBKVaQv3wbKZt6Qj1SWmC7YmcuaG1jYcVI0Xqv0WGCOaJwtKhi6LpW7Bjahkl7w8Pw671Y4ABKCc85OpfMbEAa8Tkp5GxCOe0Ue", + "label": [ + { + "value-name": "K80GQkaCLgl33i5GS1D7Jlg3a59lq4DbcvJ2PTxB9Sw42CDVv8Uet29w7iRxnmAzRjuH4Ta6Dy2F2FsxNmE9oNFnYwNdSnMBz8aDTkBoTE4NjolZDR81ENhCb4P3juwSuHog1ZEMDIsPZNOCw", + "value": "vaBMFMI" + } + ], + "selected-fc-port": [ + { + "local-id": "17NLowTInclMc9jmZ23tRdeTR3rb1i4UhJyFgjgvvB9HCk3tm7W5kbQb6he0raUIUsf2Lvp9ZyQBSU561T3dWTo32D3tFP3raatVGK4xaN02HX0AR3NFO3IIGD3et6FD91qPLneWaeQJcRjVMYst13bAGfO1dtEmuX3gkhcmo25sLgnq6PL7SOHr3vs9Z7nlWr", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "8AFuYArqdzFvFngM75my0RT1ISp4OIxWi5i9xJrKa78PmottlPUeHN7hxwdl6D", + "value": "pIry7aZRkYZ1cguGtkszT7H2E5gRcT0Btr1AtSjNJbGVratMmVmfU3iq0qhcbhFEIG63rhQ2soXLzryVeU31PlrPLJ2WSzst8qwzHfB2DqNcRd0YZ3ZGgiwT1qHMZ1f7rLy001UEsAIb" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "u6ybZ2zG80Vfq5YNhd012yjCDmC0pQELO4OG6gm6g9dy6bdgpe9jE", + "value": "NhGih50NIOSxmQNIXVKatImHYDN0OrkuI1MRYMEzsoYPfDpcy1eTKsAA5fsMGNggG2ZwGw50U3H" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "I1FD0lLbJE41dQ1e50xJ", + "value": "yJskfMUYYIyZf4SAP3km7lzQeON7lwqL8S6nx0dvAMmPQeix9CT9PtZ49M3ubt8jdeGK6U7HyuogIGNSazT02SWbwZxzsFSxTriSlprLTP1uoGeyf7q9RmkflKPFpHdb0n3l" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT", + "fc-route-feeds-fc-port-egress": [ + "dv3EF9jH3gUSpR7kQrDp7VFaQJPCX9T2EPGjYR" + ], + "is-internal-port": false, + "role": "8jo1FthJOaChNJ25AGmUUsn65frNn4cofApVWyECI9TwSVtsBPenhCufJN27J6nYzMTnkqZ2zSqjFTM9B0wSuS76x25g0s7ze0WqiNkJxL3dwHeZzCK4vJ2UL73EzadF225lPh4nUZsjGGiga2c", + "address": [ + "0s0CUs5SApE84MpKGg9eMeezaOIINOHF8zaUT7MtwiCB4TdC9mQOt5nDLXdqLMXLd7G76ksvv46rPb4ZyUF1R2wCRBUvoSgBRWAY93lE7r5PC9G2Wl3Nfri63ctrWKUOyvEzyZdxibeMkUP8fKWmc6lfaOy7qkVRPrqfiwFAHTe1O32VGYiS4vZ6jpdCJ0trrLGBhd3Y7iSNdUITKSDGnuMzT0bv0wWk9CVrQZhP91CmVc8x5Ldk80T1SWo" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_FORCED", + "address": [ + "I4eotGH64TDtD05HHhTNyCQHR2GJ0G0ACeY6Uy4QjHcWIhvpqh4YTMxLP6mHMm9gA0mmyqdR0pFIybZYs4PdIeQxkdeYr" + ] + } + ], + "supported-link": [ + "x4" + ], + "label": [ + { + "value-name": "dKadO", + "value": "2dh1EBDZPueebZL1Hy4MzjGQvTAG7hk1utU0Xp0MU6SXXDYE42iDdYuJS4hRd" + } + ], + "is-protection-lock-out": false, + "external-managed-id": { + "manager-identifier": "J18h5eE9sB3O5d3tZ7ZfwLSYZnjQdNFOOF5TTJUmdQ2i35L24Dasg2q8hBYmpwb5b8R5KLjXBd7xiTzeoBGEvYEMsD1R1cO4cF1WjkLMxTjHELN2mtySkdwMIxvJBjFORHCaToWj980NTOP79fZlso72VCLxOjdx0PHTdvcmv5", + "external-managed-uuid": "oLQwM6n8qLftHK66qpjXp8wbeTfspkuNXcbKizSBcZ4LBaR1s2YR3mUhgaJFm5kkioWsPO31F7NhawaCz1lCn8LDimawsnIKLEcsk8t0f89hFjT6k7IIfldpHgV9DELgaYIv63ndcwnJP8P2fpKmKPLr5ztA5eIf" + }, + "fc-port": [ + { + "local-id": "9T0CjJcKTcBQ9wMb23Vr5EWgvdMvRq11b1vmCH7nUIe36068VUA0qo8VBUilcjendBKPjJd5jr0qj7ye106rpffS9x5mJjBWVdL6WY3gh3GAa6O3ZNng2C831ehKpTGk6kiVilbspJ2rPJvOwK4qm5lfbv0AgyVeS593rkv", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "3x9L8wrEgoWulaKwFK6VaT93Zj6ivB0r0949yvNOLCb6MVCjxJeHufKtqQLWjLfkNjtlG81sKcqo7", + "value": "zwENe0VQulz79SLo4yHxLgGEAiR0zQV8frOtsJbW4KV6vGuz647RkFoUXfMoXIxc1dxtWJhSldYQTliSppBBWZvL69a4Rz8TMGeAhwkCJbluwDeN2QoQPLBWUL0Ec0xYGLqX9DAKOV7cqlZkbfa10LPMpHqBHPsotKdCnNn3Auf0P6cTdmU50BSpiaSZ0cflXtXc8cgJynBgmO9z2VF2wprOzcFroVMdoC" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "gZ2GaE1xKsigm36BP31k9vzwGrcuR7y0YsG17zyJ1IZfDYRl1Sx2f6yNpChhCHhAaPthp10iBSy7QhsJ1ZDgX33mGcvaTEC3u6cTZ53BXBIFS2gT1T1YW4cu8IEUe9P", + "value": "f2te7xHW8ht1jJMcCO2qKfVTPrF3AuEHo7WnEvjNNMG6nkbZ8diLk5w1wb5ZFJG4Iurn0D2FhADFUOwV2OGeTcgifd9UWPQwcaT4NNJWnmta3055ODbAHrSWE1QsIzZMJKQoyzcNOGXRGUOmxZWejG2XzTiak9W3TNjjev72b4LJRz6orUvKtxz2iJ4" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "wOy7fVBvhhERjromXNFDeRaG85kllWDSDbRS7sngBTZVkf992GE9qOHyM1L7QpRtsBlrVAIxtzkFPtGJ9kSz0rZElLEb2nEmYROUrojUXDrE67o7j8zbAqQV3uY5JCsIl8uMwFy", + "value": "iZ0gYgfhoOsQ7aDaEBgg5AYqIk46ZCr9tjhrzwIYd3GkdkuKNC0TcQbM2gKTS42enjFXHgNUjleoFB8ld06iQh4SpPDaTFo8Q35ybKku6rLD2TYfMWxC6unvb0FWy3" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "fc-route-feeds-fc-port-egress": [ + "hKpaRDiYgw0EE" + ], + "is-internal-port": true, + "role": "6d8fLl1o8MDfutyIHza0Z5", + "address": [ + "OIXU6WPhTATK2R0lDvX6Vo1585IS67wMImzOio5bQQNKHO5lb2j6jccriMjgLIVt4mheKfis555FTa055b3oo7HyLSOxABSwX2Lzh3Ue0ZLU1DR6PMmdU3LxOr4oVXN" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "Iqc1no19xaVaDR1kvrMhhzOdv2nB12pJktCHRDJpNwrjnkDSDp2UQQ8mKvPDpeeBHQbrtMI9i9sxlXhYnjT51TrDg88ymm1W4cfqYXz8YTFjQXh582b2NuF4DOuZ2vN7I2xyR6HHRe0z3aF44I6ScLOPzaHCFmBfh8O86nQXtIoxK3BPLHzQknFMxeg4BRkSZ00XfIMIja736AKR9jzuyfg5tw24fmOeeH3thP3AZbw5DgPNAo90vp6" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "kL3tuAiqilMhsFLtAnmLDgvZmiiHC6vORqhlSsDaFpk74XswdG9QWFHaXRRrXe8OFp1pJEAo3Mn0JIwWoGEdddna5fu2tCJ0TKqDpSTkEhcnRBcf9Qsm4Qo1XSViuEjgpJTGBMS7V5mMyyUHhe3dWjeTc94yGnO" + ] + } + ], + "supporting-pc": "6zDzeny9kUOStArKOmXDG3oS4siKP7HNGkeUIMW2HCN2ceESBBvhwM1AejlWi2JZfQLPuHJ3bw5nDJ8ecDnIhgjwzwsSy3JNLuug4ejfKpvf0Dt58INqYYWqugiVbTAXf55jjorVFWbGrwLzfqZ5pNvLVFGZyhWOe1ZxhqkXevvx2g79yY6XECBrh9qQqewE7v3pOoeULJsFRrOp", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "f7872522-16c2-ce17-fc7a-083c8517e7b3", + "layer-protocol": [ + { + "local-id": "GN96YuNZ6RaDd81LsMenKNf2SH8RuDR2i008nN7lw9ZJh0vJEJ7goei8V", + "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": false, + "statistics-is-avail": false, + "configuring-service-access-priority-mapping-is-avail": true, + "max-number-of-protocol-vlan-id-groupings": -20004, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ], + "number-of-available-traffic-classes": 30, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_NOT_YET_DEFINED" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D" + ], + "drop-eligible-indicator-is-avail": false, + "configuring-pcp-bits-encoding-is-avail": true, + "service-access-priority-tagging-is-avail": false, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": true, + "restricted-automated-vlan-registration-is-avail": false, + "number-of-available-priorities": -6 + }, + "vlan-interface-status": { + "statistics-is-up": true, + "timestamp": "2021-08-30T01:58:04Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 0, + "current-problem-list": [ + { + "sequence-number": 8872, + "timestamp": "2021-01-09T20:35:56Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_CRITICAL", + "problem-name": "CkFnBPk4NIziCRuVh6UUKsfTqo7Z6V" + } + ], + "time-of-latest-change": "2020-02-10T22:18:43Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": 13225, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-03-16T02:06:59Z", + "performance-data": { + "es": 632894086, + "ses": -1584224125, + "low-power-idle-receiver-ms": -1138485043, + "low-power-idle-transmitter-ms": -1490168703, + "symbol-error-during-carrier": -1590959865 + }, + "history-data-id": "b9d9dzYMRWiWGHkGJ95TYrPxwTFzpTLAUYJ0yzEhnW5VwqCfzz0pSQXpBCQ0nBsas320CG9RufM0Fg86H8wAQtRrXHjcaLmuOomiWw9rLWji4roMsUmifdC4MVhOzvjnUFGI3H9ODt6IMnme9IphN1lrOCff8qvU63C9KEQg7OYT3c0dUpuziP0Ykf6sGBeEEQFouvEtcuffG7sswO1Gw", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-11-04T14:26:27Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_NOT_YET_DEFINED", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": true, + "rx-level-cur-list": [ + 89 + ], + "tx-level-cur": 71, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_IN_PROGRESS", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "pmd-kind-cur": "xlX3GFKLAOkNkiTufkB0sJlt", + "receive-signal-is-detected-list": [ + true + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI", + "pmd-is-up": false, + "link-is-up": false + }, + "wire-interface-capability": { + "wavelength-min-list": [ + -1988277439 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": -49, + "isolation-is-avail": true, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + -1766998411 + ], + "unidirectional-operation-is-avail": false, + "supported-pmd-kind-list": [ + { + "pmd-name": "FeDss7nm3pj4JW2O27ln3lGkHKNRm621lF", + "speed": "FMJ1I8dMJ9OqbNLyJY7VFRIodOi71PtGu4IccVYV4Fd7kYG3WNQuwySJf3QgSbXmfxyrspfo4svgj3c7I2BetmYIpGQ9SNw7cWrEly2h0qybtKjcMUi78gPxPGHHl5Gy174fFZoypWJKyUOdP7kXf2n4IWLV1klUri9Zhyxym8iV370K6kzlmOqWK3KDn5yHnzGw754m5f90e9KklcxISXwDTg8", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_NOT_YET_DEFINED" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": true, + "auto-pmd-negotiation-is-avail": false, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT6", + "temperature-low-threshold": 79, + "maintenance-timer-range": "fY5KJeT0szPVHdNXNKilNVU5qdypsrQHiOk12dTmEB9mOPbtztPegBbHOKY83PPlv9npegDTRM7xta12vI9MjklZWj700OlnYIM4RpXI4W8x69sCRBg2NB1KM0", + "supported-alarm-list": [ + "FO52EGPJx6y72nf" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_SOLDERED_CONNECTOR", + "rxlevel-low-threshold": -107, + "auto-negotiation-pmd-selection-is-avail": false, + "wavelength-grid-min": -1724345285, + "performance-monitoring-is-avail": false, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": false, + "eee-is-avail": true, + "temperature-high-threshold": -89, + "admin-shut-down-is-avail": true, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_SC" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "performance-data": { + "es": -570773979, + "ses": 1416940098, + "low-power-idle-receiver-ms": -1815582847, + "low-power-idle-transmitter-ms": 498025456, + "symbol-error-during-carrier": 591095020 + }, + "timestamp": "2021-01-30T06:23:24Z", + "scanner-id": "YE4Spw0aXo9Ou", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -49 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NONE" + ], + "maintenance-timer-range": "SfQmtVka", + "supported-alarm-list": [ + "mB2bvyP3hmW8OsZu5tDK0wRQScE4mZ9IA3U5BJ0L", + "WTDhK8mdLY59POT1kXnj66T9SQDtQoiF9VOL3aYH1VIQJCS3z7my57zPPciysA" + ], + "statistics-is-avail": true, + "encryption-is-avail": false, + "performance-monitoring-is-avail": true, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE7", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_WRED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_LOW" + ], + "queue-depth-configuration-is-avail": true, + "wred-profile-per-drop-precedence-is-available": true, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_NOT_YET_DEFINED" + ], + "max-queue-depth": 791857378 + } + ], + "bundling-is-avail": false, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "cTcf3MSleTBTVJIiBe5YPFLc85X2wLG", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_IP_O_MPLS" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV4" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED", + "compressed-header-length": 25296 + } + ], + "support-of-management-frames-without-preamble-is-avail": false, + "explicit-congestion-notification-is-avail": true, + "information-rate-min": -293139409, + "fec-is-avail": false, + "burst-size-max": 18671, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED" + ], + "egress-shaping-is-avail": true, + "information-rate-max": -735456447, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": 87, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_48" + ], + "burst-size-min": 23664, + "fec-word-size-max": 23782, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NONE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 89, + "current-problem-list": [ + { + "sequence-number": 14063, + "problem-name": "FncvhKBa7p8Y4bPeZ6VKtLoPQWwjhZBOeObnyMyx3GvZKcdJa0lDLJt", + "timestamp": "2021-06-10T02:51:09Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "time-of-latest-change": "2021-09-15T11:14:36Z" + }, + "ethernet-container-configuration": { + "fec-is-on": false, + "fec-interleaver-depth": "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_12", + "bundling-is-on": false, + "fec-word-size": 24895, + "encryption-is-on": true, + "maintenance-timer": 1383169938, + "performance-monitoring-is-on": false, + "fec-redundancy-size": "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED", + "maximum-burst-size": 28142, + "ingress-policing-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb", + "interface-name": "oTejV40W0BNJ5xFEwT4C1ErIIC834dws", + "loop-back-kind-on": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "fec-interleaver-kind": "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED", + "egress-shaping-is-on": true, + "problem-kind-severity-list": [ + { + "problem-kind-name": "EUUPk", + "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_CRITICAL" + }, + { + "problem-kind-name": "QTFe1nVYYFb", + "problem-kind-severity": "ethernet-container-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "statistics-is-on": true, + "maximum-information-rate": 1542413474, + "interface-is-on": false, + "queue-behavior-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_BEST_EFFORT_QUEUE", + "dropping-behavior-kind": "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL", + "scheduler-kind": "ethernet-container-2-0:SCHEDULER_KIND_TYPE_STRICT", + "weighting": 15, + "queue-depth": 1342600024, + "wred-behavior-list": [ + { + "affected-drop-precedence": "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_ALL", + "affected-protocol": "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_Q_IN_Q", + "wred-profile": "18e43d24-0971-5669-ee67-cba5faa4eabb" + } + ] + } + ], + "explicit-congestion-notification-is-on": true, + "cryptographic-key": "jml2YtXVztfx61rOyavFFOSIEB9oo40AqduhHr48UjFTlZHL94qOTaopLpF2tGCUT63sx7Ajq84D7Lo8QHWBRl0DKyF6e9S" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -30693, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-01-31T11:42:29Z", + "suspect-interval-flag": false, + "history-data-id": "7gXU0SPyY7GevwEubr4Ms97B0o5mCB0KRQwJAdhylXMQlicxChb4qaxqzuM3YFFHnbrXpIvCy9kTkwiWFuS6Epo5L31JAGrXKSM1s9D0iXMul4i1qaZXrfUdiVWKufHeZl7kuKcNHY92VsVdCU2WaX9kKX5e5Ek40ro", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6", + "max-queue-length": -1508143247, + "avg-queue-length": 1846139038 + } + ], + "fec-uncorrectable-blocks": 1752887852, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -1764200263, + "tx-ethernet-bytes-max-s": -1172090243, + "time-period": 1322846624 + } + } + ], + "time-of-latest-change": "2021-08-04T19:17:10Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2020-04-28T15:03:53Z", + "scanner-id": "JlLUl7x7ISA8BfPjDcgHKsbXcc5CJcFtxifLhES0xk00rQk4UsDFUGu6TzAuLfXby4WPJGH8SI8kqsgkUMRGslMdMnIquxt2CpKdXjlP1t1rOaMAWvhgR3uvi4NFtgz5xjauDvcwR5YxfC7b7osQkOeuK19daJbHUlcpJgWslMZBg6Mfn6YHM43w5dKfONXI810J9WbuAa5Q9KXwIVdvZgTXlv49iTKjMK2VGeq8gnQp7NV", + "suspect-interval-flag": true, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE2", + "max-queue-length": 811096864, + "avg-queue-length": 498156356 + } + ], + "fec-uncorrectable-blocks": 822153572, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -408353255, + "tx-ethernet-bytes-max-s": 1830494130, + "time-period": 783373190 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -127 + }, + "ethernet-container-status": { + "timestamp": "2022-02-08T10:23:08Z", + "last-10-sec-data-output-rate": -472391875, + "bundling-is-up": true, + "total-bytes-output": "3064835212984776192", + "total-bytes-input": "5696499557804544000", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "statistics-is-up": true, + "last-10-sec-data-input-rate": -128341121, + "forwarded-bytes-output": "9029488683218001920", + "performance-monitoring-is-up": false, + "forwarded-bytes-input": "8666062401730778112", + "remote-site-is-faulty": true + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": true, + "segment-status-list": [ + { + "segment-status-type-id": -2631, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_NOT_YET_DEFINED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-10-29T12:54:19Z", + "history-data-id": "ic3X0JjZGXym0zsDBWYU7zD9YCe7rtFBFIrxjKwRAXesoy5ZuVLtmgvcLJj44QGBqZ8KBxtbmHDKgACCof6KoBP1c85gZDRhCR16gnhC4NfcnJPLQNoeod7sddA4IjmdafjjCAVzf2LDLsgCfEIvJQXXVx1DQfITv1c7uZGJ2keFMv9U1SpLAfInEB0nRB8mCkl6bUI56WLSrUEtEW66bOtHhm4", + "performance-data": { + "rx-level-avg": -104, + "es": -1562072609, + "unavailability": -1233454081, + "cses": -1582488013, + "ses": -594301559, + "rx-level-min": 90, + "time-period": -2014374963, + "rx-level-max": 60 + }, + "suspect-interval-flag": true + } + ], + "number-of-historical-performance-sets": -5425, + "time-of-latest-change": "2021-02-24T02:54:48Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -25150, + "problem-name": "YzxQ0OHr4HtfNGqfBGSODgwlfFYc4ub23IKVxsmt1IIOo0WZGGGbW4o3KnfOJqIM1szqMWTNEtuUtqM16scUoAX0P4OyvocwRMWDAHjeaN0", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NON_ALARMED", + "timestamp": "2020-11-06T07:17:07Z" + } + ], + "number-of-current-problems": 51, + "time-of-latest-change": "2021-08-27T21:37:02Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "XYaKh7BOKRrcwlAbqAxH1KHxI9vRFp9unj7EiIk3sE7YZH1iayRbaqASz5C7vLBKXIhfjtaL7iBZRCh120ccqMWZKqYfcAR1a8glCj6BBzAs3Jm5Jq99561PoZ4ArNtCWKXq3W1wvCQzdcwXDy6Iw7pUZlnq8QU4sKmnyoT3SCu5OT2jr1TX0iRZD6iEXcApWXNmdyi5aM2RxX2YQWN", + "tdm-segment-size": 1497274596, + "max-number-of-segments-reservable": 47 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "QCD0gAcQS1FFnSdFPgkK7RH9Ip5nf4MXGqXOS2wK3chi4nYMDawKT5TtuRRJNDzlVw9GyF" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "suspect-interval-flag": false, + "timestamp": "2021-03-01T08:35:55Z", + "performance-data": { + "rx-level-avg": 0, + "es": 700706490, + "unavailability": -579331909, + "cses": -1704418191, + "ses": 1158294036, + "rx-level-min": -14, + "time-period": -434770685, + "rx-level-max": -39 + }, + "scanner-id": "rhFXRegXo3XT8KpjQ7gliaJa8VAuv5dPmTMd7U2oP0hPKz8sGoOQqp0ykt2Py8EV1i0043oL3yAF7A7FYNogcgPwJJeaRK5KVXLZ01LVrdAqOA6EnmVsCCQel4o5HtPCistjm66Nkz689cEoyzQ2bHgpDEmkZ3OiwitKozpI8vI9zny7Og20XihtXDFOGu64MzO216L9Bl", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 45 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "jWCUT8lz1JP1wqeWuzaBvHb6Te9PzJySFaFqbSZctP5ZfjNJSXcgEoeyunf36NNDPk40d34GK9yZklA5jNdP3rnpGukF9ZaZk6Rp2OXMXvEaJ6fUTsJOLZ5rtpYDp9uBfd0h1PWRdA1WG8QsAr", + "value": "lqeEMDDhUELvLQnVK5Rtijm6ZuWj4fshGGVkbqB64etI4RDGWm96FvcEZ0QVficNQ07TqIZnWl5T4AzSWBYBYa7Q2XLh7Q5PQ4JgFAvBVAmZ2OJYpHrfJz5LoJ3or0dhWWpBpV5knrcq7VgwvIE69JSpkNNLF1UBPk5e72rutDUBq3ZNLDUMfMbrrZ56SZzHjwWqynN2SzvaC" + } + ], + "configured-client-capacity": "KeWqTTgDCn7fJQarRpIoeLbmczDJT02D6Z4ZSkvmzCBjkDKb2kr85Cm94RTXSVsYMwQEJl0iPut9Z5cUpD2n8hoc8910XtRJ0HgBUgTJCnSCs4wKHqZPHnTQxUImgr580lJUuCv6RnAkjYWTpVAYauGHgh3wI1EBennISTHJ8hVsgRdxENnP94oqlkOVllozIMasFR4N8Z7gJkFn83ch7BzkVg78BwHbiREXAICJHKRi4xG4ASmzlNL83SgE", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 576041976, + "last-10-sec-data-output-rate": -1068297381, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 75997024, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "BvF1bp6QXjsq5K8QOZ4QNCtYbsBYFlG8Rm92D7Ksq4SvH0evZieFMHvX16NGsuGbIQddXQFgUyDBqRZi1dP", + "fixed-ip-v-4-address-prefix-length": -55, + "fixed-default-gateway-ip-v-4-address": "kuVjiuDEaOmS1zIJeQwEt7XdYf634MXggLzq7449Sq2MRCvYs1CN1r0RGZVCLKLTnckuhoE9HyVy2jomc19dk2511SvEC8x0lJmC80DHqr7kKwGWpI2JCZC" + } + ], + "broadcast-packets-output": 2127834946, + "dropped-packets-input": -132466137, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "dropped-packets-output": 16298632, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "09t8yltiIXiAtZTU6dECMs1uuD6tfBcfCGo2TJcBzu42lXWkasWWUQiplg", + "neighbor-ip-v-4-address-list": "AJXQlv6goPs0oX4iaTeu3GjSB12SmjCW2zEg4KwlsYdQN91Y2fsXOLHhMK90VDXP5BX1elmGczoZIpPCFaAtN9KsLLsGopo", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_STATIC" + } + ], + "timestamp": "2021-11-29T18:24:31Z", + "forwarded-data-volume-output": -1009949259, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": 1465451862, + "last-10-sec-packet-output-rate": -2147136225, + "vpn-binding-is-up": true, + "multicast-packets-output": -1207255553, + "broadcast-packets-input": -907030393, + "last-10-sec-data-input-rate": 1463065566, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": 1564805774, + "data-volume-input": 345267082, + "data-volume-output": -1593136315, + "fragmented-packets-input": -1702121889, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_STATIC", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": 264855716 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2020-05-05T01:07:26Z", + "number-of-current-problems": -10, + "current-problem-list": [ + { + "sequence-number": -15878, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_MAJOR", + "problem-name": "HA6VXdmGS7ZWBLpV9xh70r6XUJNQ3L4KdaxagTR8SI4ullhuSrtKSsHEbmv60rRdBgoR27SUHOg3aqpURTxBd6fgtCnt36GxmWgg38bDPjyRJXLAIibVpj4KVr5RxDoLAE2vF50uoyl0", + "timestamp": "2021-05-13T13:49:38Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": 29416, + "statistics-is-avail": false, + "supported-alarm-list": [ + "qELrLzn9twlvDLiVOUZnm5XXvocrACsT9dcUEzV768uBUMpAzoPVlNSJ34awzCpAHBmda9c8hGKbt9E2ptPD8Hm4DwA40ZEzs0MC9YDrEnuZo0TFuIiuhEyV20Z2ZwBjofWydzRKOdB4enJA524fyv2BvTvnpZGOeuekVX4BaxFgUpQSjV7Ri1kFUQUcHtSVXY7LV3mXB2evj4fuRed1fyH2gt6XWQKUOS", + "BVTqwNwU6t1AcgOeneNpmgnjddVZTNwuBhN75jT3MVwZ3c5qqSQM05XdjS44ysz9Ke8HxUKkPgbSsgaK80w8Yle96adEDMNf0NWqHGCoPN8h3j23bq39EhiKswoXa3c3Q8lqGXGvKPFF0zIbZDdvVnffLD4W" + ], + "information-rate-min": -1828046703, + "maximum-number-of-ip-v-4-addresses": -2136, + "fixed-default-gateway-configuration-is-avail": true, + "maintenance-timer-range": "z2TWsKi16EIIdoha0I0McXtmOo53sR72L0Q5C17AFHaK6sVY2VKeK5tytqBV9APUtyS5zZyeyIYw2Lu4G6jibERE4ksdVh7gPRdgILmhmdNoYatxgEPkiyQmTirGsqW9i9q0VM9hZXxQZ0n7w4rODi2wstcUU0449m440ed03LI2D51a9tQMDTa5eeS0eO4o29k2fqUi3CcGz5IByrf3c", + "admin-shut-down-is-avail": false, + "dhcp-client-is-avail": true, + "egress-shaping-is-avail": true, + "information-rate-max": -591123597, + "burst-size-min": -28707, + "ip-v-6-is-avail": false, + "maximum-transmission-unit-max": 21940, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": -2689, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_NONE" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATION_STATE_UNKNOWN", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": 29573350, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_NOT_YET_DEFINED", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2021-07-30T00:58:05Z", + "multicast-frames-input": -210272341, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -912720169, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -1754742591, + "dropped-frames-output": -2046074751, + "statistics-is-up": true, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_SNAP", + "last-10-sec-frame-input-rate": 243119862, + "errored-frames-input": -839027859, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_NONE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_ADMIN_DOWN", + "mac-address-cur": "oOn34fhDbmsYWwKQXHWpmhXxrdUrvYfTNDPJK6fNsHLpev734Vs", + "broadcast-frames-output": -1154489331, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": -1088392719, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": -1394598757, + "dropped-frames-input": -1111073385 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NOT_YET_DEFINED" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": false, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.3" + ], + "admin-shut-down-is-avail": true, + "maximum-frame-size-min": 11040, + "loop-detection-is-avail": false, + "performance-monitoring-is-avail": false, + "mac-address-configuration-is-avail": true, + "maintenance-timer-range": "bFlRJaJoGXdeiP8dykSI2ZO4Sp66e0YhFb8glSFTHS0Zz848kWQnOwjyNpETiubPxb6SVLDCvDu5Mq56fVl3jEtZWZSelV3S71C2MfxiTTfxjkDq7ZlivOhrF2x0XBS4CmZhCorvhG2s0xT7oehMVzdABLtqednIAeZcCizLYtdQSYP957V0G0s9LVrR9OsJ2jNECmhAPvjzl8IqfDiNELOhyg1H4tiZM5vgjNR0a2AvaiWqW65sRUJia", + "supported-alarm-list": [ + "6d", + "5SfB8zgRz" + ], + "hardware-mac-address": "dwlReS8BgM4shbHPi2iGQjeedL4mne3tKgcR8kso7oQgsq5Kknj2zxhMil8yA31cj53jqnIxEqN6IKI2015zrmdBHl99g2mz8hSyFsXbTChtmRweLBNcX0NwdPGtJ2UJbN", + "maximum-frame-size-max": -25914, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "link-loss-forwarding-is-avail": false, + "loop-port-shut-down-is-avail": false + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": 7686, + "time-of-latest-change": "2021-12-19T03:12:40Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-11-24T11:52:51Z", + "performance-data": { + "mac-pause-frames-ingress": 662974082, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 739648304, + "mac-pause-frames-egress": -16058849, + "mac-control-frames-egress": -133422973, + "oversized-frames-ingress": 556232086, + "undersized-frames-ingress": 744006200, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": 570138762, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "PJ84J5lFREtL2tPcV9tWcIbm3emPk579O86qdrXWXiHSLoWGppuu0yQ3M4L79K8PK67PxWLnflfSB3r1sNvkldg0h17iD77g675D3RSa473F2mGv93HvgXvpQuH", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2020-06-20T00:16:24Z", + "current-problem-list": [ + { + "sequence-number": 23153, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_NON-ALARMED", + "problem-name": "g5i4p", + "timestamp": "2020-11-06T21:00:40Z" + } + ], + "number-of-current-problems": -72 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": 6, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2020-05-19T14:48:13Z", + "performance-data": { + "mac-pause-frames-ingress": -285384559, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -342470805, + "mac-pause-frames-egress": -1338003801, + "mac-control-frames-egress": -1692368601, + "oversized-frames-ingress": 831385080, + "undersized-frames-ingress": -1413645603, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -423388335, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "8aOJqub4NwNQtrLGV11zOtkuRVkaLqzLAnmSRyXxWCnh30XQ1YqIjCcbxwlaOUNo9a91A6ywINODNDuHuMhNolYVScYyYLX8NY9n4zUEeA915DAzpJfN55BPhrng4cgSapf6Q1C4tMXzpq0H9fmelP3CgjKlv0dyhkE7m93HV1gcj9Tso8zJXueeNQrbRwJ0Qf04o3MjW" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "timestamp": "2020-12-17T22:15:57Z", + "performance-data": { + "cses": 1874866070, + "es": 649927884, + "rx-level-max": -115, + "ses": -774867477, + "rx-level-min": 61, + "rx-level-avg": 36, + "time-period": 1549976292, + "unavailability": -433876969 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "03fQ6Pt3ms3RIHS0ujQ08ZcigOq4SgcKjrsigVlufgdXX6PkpykppwHGd7K5gOHrf9Jo5WKcdY224RmlpzKP5knirZfHOW1VYKjVz47MU9GY1VbiuNZz7eKzeR82O9XEM9zl5GZZQFPJsSTWFToN70edRefxg5b26Kf3jeU1LBKetv20oqFo" + } + ], + "number-of-current-performance-sets": 99 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-11-02T17:01:49Z", + "performance-data": { + "cses": -1264950057, + "es": 736847768, + "rx-level-max": 22, + "ses": 2111767288, + "rx-level-min": -25, + "rx-level-avg": -3, + "time-period": -275415741, + "unavailability": -634928165 + }, + "history-data-id": "DpPOvBP8creFXhxdHdB0Y5aYOR6mK88gxP4UqU3udh1aqyg0LR0KOaAu1HQEPQUfFQ1XC4rQesSE18EESwgGyR3sqT67KSehIg7lcq3iTVXM4tiWSzuqqxSIrYP3I4crkjEoKHHvCw9GZruJ0Zaio20HTIKtMXUY8ymS73nKroijQN2IEcTU7LCStel7b8Xkyc4G7kqzIASyfU9TZ2GYFiQ1w30A3YMCaQa9a", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-07-12T19:32:33Z", + "number-of-historical-performance-sets": 8152 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -8685, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "1bpMvo632bmgMP6J0bi32Ye6Wm6i1M92YzPlPNgSYC8KjelbhD6ktkiqGhIH3KCTjr606nS4R0H362egylA1FSje12N5EpQXIXXOcI" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -32106, + "problem-name": "LVnYK1o1PuVHNYAUY8jOmqmyddkU0HMMC1Cf318Sv3ra125R2gyoyUXL7hx0YcEtdgIg9Q1EUsPNuMFwUdNk7KX6TnYKzC5MLN3UD4rpw851MKpyP4SOOPMAcLcLfhq04tNzxeR3eWW0GeyniibZ7XrcADPQUfQQAvh7J83P4RPCXfZ8p27pSqBk3iaPqTx0oO00P3PLMxoCEfK4aJtU9We46pLwaaxyQpqFk8r6FHIbOkfY3AK4wZ0", + "timestamp": "2021-03-25T03:24:58Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_WARNING" + } + ], + "time-of-latest-change": "2021-09-24T05:50:45Z", + "number-of-current-problems": 109 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "0h3RkdKkl78ksEtroKjTmYuleSzx1uPTMTK66mqktqEW50flCz6YpAbvkK2d7K6TvJRt59NrAkn", + "value": "ku0W36NkyY" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "yzmna40LDCC" + ], + "fc-blocks-signal-to-lp": "1CLtmZ2AMFIIyReOH4n8qCimC306yONriqVEpP63vPDVySJfWYnfByt5ttcT9Rlrh86yX4tkL77jZJqNHOUaeo8HJcBT3OkcWiCLn5Y045k3OKJoqDqETqeDCHoxvIJjTl48jU8nSsjy52Wvxf2rFgWaXcHkUrDFEzNXuWdegwMlyBRXQTgn1cxYofibyNI4mw2Ik7WsDJO3kx02ihpblP9C4jFu6nykLs35zRq4A67Mv", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": 98, + "current-problem-list": [ + { + "sequence-number": -15232, + "timestamp": "2021-06-02T02:15:54Z", + "problem-name": "u73sPFV9Kb6qaaR21pEMIA73czZwO2xa1BCQ8p0Ss6bD82F9jcN2EM5QdWnTQU4SnyAvYAoqyrVyltzEFnyb1v27sp0ab42zvv4l5kLwLzW6UwDrL3CMzET13M37IYGdtCyqXcOADLzxhcY2", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MINOR" + } + ], + "time-of-latest-change": "2021-04-11T05:10:18Z" + }, + "air-interface-status": { + "xpd-cur": 108, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": 41, + "mimo-is-up": true, + "tx-level-cur": -82, + "local-end-point-id": "z34PqDFHslvtder8MI72a3xRuxbz1QhALmq3ZXKkifNnt6v7Pu9RxHITeTsgBJQm58p5X2h7h4uD3ZKSlUBStjLH55PGPyVMycJwe0DwX810ZLKdFl58EJIBOpavX5io91UoUpMRpNRhytu6Oz6kaOWR66e", + "rx-level-cur": 71, + "link-is-up": true, + "performance-monitoring-is-up": true, + "xpic-is-up": false, + "remote-end-point-id": "3wjcq5scn63MTM3k7xiVZof153Sb9764vihNnJZKQUpBysNFS5ARuISzLDCNKAR7S0V8CUKkH9VfuJNmGf5aXPBBk5g4G74y0ZGCLjWk", + "received-radio-signal-id": { + "numeric-radio-signal-id": 62117, + "alphanumeric-radio-signal-id": "VZ8czGlwEhOrR4ZgPCoGhZSx4ozsR63EX3QpK3VgkKz3Gyko3A4kzWSEcj6Vp1zn5hMHlzXxbwBKWV8ZnckX04t4nrRFki2pzGYU7VkbjVV8I3Z57bUZfn3DOMa144qDKhqJ4KUoxPofKncJz7AOuvjbhtclxuR9LhLQTF6qnuxZJJBaQbZdHagYwscVO3XscIi5fgnCCUulD5wmgnzXpPOV90JXVGp7gz4v" + }, + "auto-freq-select-is-up": true, + "tx-frequency-cur": -1318232405, + "rx-frequency-cur": 493060666, + "atpc-is-up": false, + "radio-power-is-up": true, + "snir-cur": 119, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_NONE", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_LOWER_LAYER_DOWN", + "alic-is-up": true + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2021-12-03T13:42:50Z", + "performance-data": { + "snir-max": 35, + "unavailability": 16258874, + "rx-level-max": -103, + "xpd-max": -48, + "ses": -947088235, + "rf-temp-max": -108, + "tx-level-max": -81, + "es": -1619608241, + "tx-level-min": 116, + "tx-level-avg": -23, + "snir-min": -86, + "snir-avg": -69, + "time-period": 598573790, + "cses": 222208048, + "defect-blocks-sum": -12321, + "rx-level-min": -105, + "rx-level-avg": -15, + "rf-temp-min": -91, + "rf-temp-avg": -31, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -75, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": 1465975862 + } + ], + "xpd-min": -83, + "xpd-avg": -55 + }, + "suspect-interval-flag": false, + "history-data-id": "qimSMTrYiYdXlVqGsRQGDqRXI6CTTUaccoWZhnPreUpzPP7hyXP" + } + ], + "number-of-historical-performance-sets": 7589, + "time-of-latest-change": "2021-10-01T15:29:25Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": -130601917, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_REMOTE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "lWP6N3eCBfC8Y00uhS9yrGdpjJj6Rls49a2X5hrGw3Om4OQdzZLSyYhRABPjOagXkiMpz65X9Tj5z1i014TrUaamD0yjaO9u6VTy1Yn3JH8aArbtnWU965wCXWV7KWtIKegD4EGFdHPN0ShnO3wN0UhXQ4Ws1hbLvjorXX62EWIEGZTnUhaVcjKUnzfoI", + "CkoI6Kctoux5I6zCLqNRqGBO1y4KvYA0iRIptVSRhhXRfwm0X1JfIdVBLZd8PG87xJw0wgSNpHxE5LwUM81", + "3hN9DNJqdGi3U20CIwHvvhXb9hAjGKrJ16KxLmXR2fUOhViSrSnP9c0alst24MDYLovoCkfEAakJXCtouQ5vVYG8i12nGGdrWIPy2X4u7oeWSHcfqiKdgilycoNSW0bSISqDPm7OKdKCNXR57uanEvNQLBAHBLrcwJHl5G2PMEkzt3wApGP43DUP6noz8IDErkSx1MeFqq6UmCmLi4PdHC2FZjeZ1Swk4gRX2", + "crMSU7BuKAnHw6YOrxFyfu2BZuQGpZPBittdsWH4w5MU3CAu1g2gCWRBqz9PqQiJbDWEADIYAmLDQlZRt1Z5PRz8iAPJr8sCDo85TJ4m5HRW2RFoKFlAoUAGnphGpJa3Zj8T247ZLYNOPl4s0p", + "7CWzumtCyXj7IheTYv7F6u7ANy4ZYeK5IGw5UZHsO0ro9xi", + "KPbutLPEGx4GrcWAEeEVZ516vJnSJlmt2xPwaEaQ3fpnjdXXruKizMh5nEP6S3sUAhqDOtlJIK6TXWIoqtzR7QOumDAeG29", + "gcuOzT6fjHpeHAmsCrzucph" + ], + "tx-frequency-max": 806170844, + "maintenance-timer-range": "wtff5kH7etiVWlnYt7Ba4rP7JJPKMztj3Iq827fhsq4oLrefyHhu86", + "transmission-mode-list": [ + { + "transmission-mode-name": "rK6EX7Jdoitbuy0nozvMnSzPVf0HSpOjaMPZTz5iJyld6dsnNY92IBRwIKdA", + "transmission-mode-rank": -1962073085, + "supported-as-fixed-configuration": true, + "am-upshift-level": -127, + "tx-power-min": 1, + "am-downshift-level": 14, + "symbol-rate-reduction-factor": -111, + "channel-bandwidth": -183931915, + "xpic-is-avail": false, + "code-rate": 106, + "tx-power-max": 5, + "rx-threshold": -30623, + "modulation-scheme": 24263 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -1679055241 + ], + "atpc-range": 11, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": false, + "tx-frequency-min": 1651504910, + "rx-frequency-min": -510537651, + "type-of-equipment": "00Rop7iZbgt8nLO9PUTeFenhNO1IBWutWdRdd9dgpyoNk4O1YH8wNnNAbO", + "atpc-is-avail": true, + "supported-radio-signal-id-length": 23968 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -82, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2021-11-20T11:50:01Z", + "scanner-id": "eZSg5vq26742rwoI3zsknK1k7xjJER1SIT9OgzQeGMg0axA562qmFjGMQSvvJofjao7qXPFwtNoEkYJj11Fycdk35PqG5F0fW7yLPd9i0xOdwqwpr3Xw8hreYRM3oEbcEJYtO7LGFATb0hsjkpPty8zoZdjgSusw5iZTqCs54l8WvA8PRXap6BNXP65Htq5yI4k0yM5DZ5z", + "performance-data": { + "snir-max": 8, + "unavailability": 1119147150, + "rx-level-max": 87, + "xpd-max": 92, + "ses": -1044500203, + "rf-temp-max": -102, + "tx-level-max": 123, + "es": 811075588, + "tx-level-min": 43, + "tx-level-avg": -109, + "snir-min": -99, + "snir-avg": -40, + "time-period": -915582259, + "cses": -706960817, + "defect-blocks-sum": -17713, + "rx-level-min": -68, + "rx-level-avg": -108, + "rf-temp-min": -73, + "rf-temp-avg": -92, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 69, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": 291842604 + } + ], + "xpd-min": 117, + "xpd-avg": 46 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true + } + ] + } + }, + "label": [ + { + "value-name": "KJKYQuW", + "value": "ZxstDt843sjAMNsJJqo3YmTB5wzN0ng0VIlq4tm7WxIAc2bVtz" + } + ], + "is-protection-lock-out": false, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": 7151, + "time-of-latest-change": "2022-02-10T03:37:42Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-05-02T11:59:35Z", + "suspect-interval-flag": true, + "history-data-id": "Ymq8mmbY546wxg2Ab6u57qGM45RxTlgJ", + "performance-data": "GhvxMpT2E7iwkHl9YkMS5y3wZU63O6Ruff1UwMOaMZz6GUgweUgbskHk6NfUL6gTd9FKWlMIklGS7OpdJFo3RXnXDCJgBZ1O9Gq52dFmqd7y2wDD32GVRWKuquDTtEAul0rf56BwcIWe6zR2tpXldHHE3kxpZ7Tc0lr5jUBvvpBBZsDsSsF52fB5r1ui0gu0tNYMIra5RLGQ6caQwINyXhwoiSHa833BR1grsiwbV4T184JFEx5tO" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 25907, + "problem-name": "XaVLSCJMZidHzaBt0Dns5AqNOTtni4M7eAKY4uC3MIDlS6GSJWdGwvmcoPsyL6GSGqQDMlyz33MVatGLpLkNgGZFnr50yLS64JJQ4ahZd4", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_CRITICAL", + "timestamp": "2020-06-11T14:51:29Z" + } + ], + "time-of-latest-change": "2021-09-14T08:53:08Z", + "number-of-current-problems": -55 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_UNKNOWN", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": true, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_NONE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "nk3eeJcU1UVqXV0TLMvVuF5F7Fq98BrvWvJa6N48HRqwFqpq4Meqjb5iQnsYZLlV8WXfJ2fiLFPqX6R1TXj48hnQEPHvs2itRgIsaXLVuseryXkjUDoUULKrsrWMm7f5nXxpMac8uqzVfLe9hu3", + "tdm-container-size": -1252039285 + } + ], + "supported-alarm-list": [ + "GRwvyA679NVgHl0xRqr2D5Bk4Ci9uPr2yYx6yw5zb0QKdQ949AZEGsZC49LqQdsobSnBgs3jtT3GB4LKECpc4gP1hsj7FEvIwScEdfXG0SmBWZestDFyLmr2OK1mowWMh8quff2f7gRVg5oJAV9dhAfXdgbBE0gN8G9oObDNsmJAr", + "aduwXM0Td4zA58WrLcMjRMz7OLIV34seiWK7AD0GHrgEscY5hKo8oQ75tQ0wUkC48f3IK3ornxYPJWU0yb0W181uQTSCdnHlCKWeGcFVJvClrodZreOsePO4BzGOWf2qSQEq2bdMHPZ05c0x" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "z7rmlytqNjQc5So6nHxaWjo6AL1DSz8szrGUR9dEsVIqN6o2NVcCetAGetk63kqCLYoC0t8kgQK4O0YuW362oGJC9VA4fTySJXmJiu4zcGv0HlmDosFM0gg2bJ6qu" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "suspect-interval-flag": true, + "performance-data": "tuTk18E684K1aGCMoyWGx9Cjp1MizZv2lgee", + "timestamp": "2020-11-07T03:19:55Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "Xp7DTLTjzrQA3" + } + ], + "number-of-current-performance-sets": 49 + } + }, + "address": [ + "1Zo5qP4vNOvevGLjZjyMdqlAtQXj5H3ZGj4680uNO" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "jkAUCW3AxbgjfRWPLDZ6SmvPFZWRKZF3k8POWKolNwE3nsK06KYQYuFEltn5l20F2QtQAJcgfIjub3uhFt7EPEaaZ", + "value": "8kr8ZmYkcrVgH2ZSw2NTjteiZ3O95Nyd0ZeZlccqvZG42FWqHKjS5x2WsQ5ywvDwuRnI" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "extension": [ + { + "value-name": "Lv", + "value": "2QmycxZt8h9gatin9kE66gd" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "local-id": "LcBLIUPiken", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "r8rrOwtmkT345O1CQX5zUv5h8BMSQuOiu7JiD4EYPAUUoOp6DmFqRKHRdlJ4PxebFXuaT00IAVvQBUXegCwZfeQszAohZCswrOzkPz3hmq8Xc54sHAjWG9hgBFptaRZByyWn0REm9MclJgNjI67p7", + "value": "xJWW46F3zdunsue7InLUIn2nGLlN2l4zWSn0QU3p0pNsLTru95gJsbZ0WcFQxJhttEtjqpBqGgTs1kOahWMJ7LJVX" + } + ], + "transfer-capacity-pac": "Au8FA4ikodZJJVPQYvbFMxCVuO9W5JeFdmcNiv0yAZ9jMY1Cld98KLV7s4VpO94Tn8zFvz65qfh46iyrnHz0lm7FrU47V0Si0rPwSVBi3Se93MAim2iHoheP3iOYaH8a0YGTLi3G2iPXWqgisyZQI5yLneKxNSIOIozmyu2tMKqB2yTmZL4HQCs6J4DwPdc", + "external-managed-id": { + "manager-identifier": "VfVpQnGZFoiUMOTiSaY8oST7kzQLfg32vQjd504Lgmx33qdNt3VRVGR87HLfPOhcxBpCtmnBIUwDdBqGEdpAU8A1Ilgx2qKzT1benrPYdeBqPUYm7gO1ooV6J3wLt8ce1osp", + "external-managed-uuid": "af2gIl5CbjKr7DIvqG7ucKPkX4mdoDUyKOOs1MXd5zw5c6sDNzZZcOc1Sqe930HFOo7Q24V7vj4IqxddY442Sg3DGhMBhl86Jg" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "bc478ce2-7d3c-9c53-dff2-7724bcef25d4", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "M41HUn76UYrVgBbq4lF6Gkc" + ] + }, + { + "uuid": "634ec9bd-ba1e-2524-cf13-429d7a724d6d", + "embedded-clock": [ + { + "local-id": "rSHuZ0g4AGUyaDa0L7jO6ThPHYU0x2fYNOlEPBAhinHkSRkDQDrOpBv6ri6YcePZUavBL6SVlzgdjAJ162IvD5B4nAVAGKzsUX4xVOtggBlzb4s972EK88HvAu586xA0uEpplKxBlS2pXuy4x5GF5faFJ8FPFfH9MZq7JXIXPKmM6MIDRhaOwdl8l0P0gp1Ugr1ZoBOdd2SjPsPyJZn84I8pBXpReqDuREm772dk55DUpsk9kz9oahOL65", + "run-mode": "core-model-1-4:RUN_MODE_FREE_RUN", + "phase-aligned-clock": [ + "YVeiPwRShBgjzQZvC8Zx7SnUMwm6JiLAdZK2vtNM43XDTX0o5SV5KiRoH5uiofKt7uoCXbhT6ewZ3pf1ha6TlXiUVMcjUXE1j2D95M2b1r34Qi57l30yTa" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "encapsulated-casc": [ + "OdiH8" + ], + "name": [ + { + "value-name": "do7H7DVfKYs43pzPOU1P6BYuL7aoe8SrwZ0vuWC6U42PlBE2nFRt8IYTP09V81ewSf2m3EsPBuEOYaQlHAPQiFBZFLVGE", + "value": "cx86LbD606swUqyDE8dlQn0jmx49dB3q0boLn1Jf7cE2u4F0cKl27lmlTin6TqoLBNpYG86OcKIHOfHTZ3VYg9j1sy0dYgZA3gqCooqB08aHnJAeEncNxnORWO4U5Vm03FCs3UVWUXD9GdndAz0ZPGQLvNxsAMkEjP6eJTaEQNNoS3tlutkj234xQuRq8bWr" + } + ], + "encompassed-clock": [ + "zSzgZS2utSYSlt8xN7dsLeEaUA9zvWk4GUcxEe2ZYSSkdSR1Z4lDaRNXjWoOKJKivOQ12K1TCLdPDWIu0W73NN0ZBoNeZqwmemo96h2A27ix3STVO1YuGQth78n6yUlN8BOfSQHMXZb0S4NyXM2Dun" + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "UwWNmuf3N0Q2nhLYCIe2ZcoPWRgBXbpJIlxWHEZvEQx1ZaZBS5DJ9Tr6KHHzL6blkIh1m9o0RVTQ5TjPYWr0PS6rrFScD3pXDHRRI7J", + "value": "3Dh0oAIeo1e5TkocZghDcGsPfbzXjioeVF6j7GyvHMssZQxY7OtbuWSKZrHaKYgxvnJDV90vNtPMjmDia6lFUehUxQW9OdHksiPnrPSeaATmWwE7CSEp6NbvD7FskeEMwt2PaMVlmOHbkdaP5O63thr6o6qBc4fAp9pAWkNa1uldzv2xb8AEh1LGZ3938gDpq2ZmfM" + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "label": [ + { + "value-name": "UFCNQ8vvNUoQfJlJVwLYtaOXT7543wXQ3rDTr1peNFX2gaDbGg29qQ6bP38Lr5Bvo6gP7FVMkSPA2sEJJGS1oRd6MlR6ikByiRnipa4B3T45eIGPgrQEaVKOgtUqNnY67dgwo", + "value": "Zr63ocDX1TgJyqFaeNE1ero4pvixTGSTZQOf2scVlsELKbWRZASdT8hbErIp7saYaZe4jiZwDwinH6eGGYLr73CDmd2uF5kQWyUfRUDmiVJZTQGrOrTVmnqJAt5gqp6mQStzE6V" + } + ], + "encapsulated-fc": [ + { + "uuid": "aca68c9a-d4a8-677c-ba2d-ada029f3eb15", + "service-priority": "-9223372036854775808", + "supporting-pc": "3m4iw9tWZcBLDG9XkPgwZLOUtovdUyTXUXgi7B6YNIBigKfsAoYz9EmC3JPXhIV3y3lxEkvj27BaJJCj7sL8ZZL2IsRS3EVBH", + "layer-protocol-name": "ethernet-container-2-0:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "iDNnIo06Vr31FxUvjC2TUwrg", + "value": "rZGflexY1NyhFwc6A5MZRhbub4gHwxOPom4JAuzt9ZKOwPUYUyXEH08T5gstNgicvfN5JfrSebGC0sAN1qrAqrtnHWQn49rzoex" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "0HBIkQXMrj9JWBsdACwFxSbTOHJoefd6WPPgFEUYX4ILx2ZZEnw48HPWgycnNqtBfaSMGMCwIc", + "value": "7e06LovPw4wkl4pIJP3cWe" + } + ], + "fc-route": "eS95kodyiIs24FLNzLtsbXQFV5k7opkD9tIuJVU1veVrTGfljINuyv1tseARDMmEf40YRURm0MNUkUfDvUZ3h1oK7ZtKDHgTDhJubBIcfnYAa55FZ5A8YYS5PdHtUXepeXTiqtuyJk0Tp5qoa0w8QhdymUT9K7yYWkgfFCNoWNhlSzBVr03i99IvVBwFA5wwhMDWhildXurI42Dv2yFbHnzvQ5aq2GPjls8CLtHAP8iLbV95uO934IyU", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": [ + "5yI7sd2Y6HQNCOYJdR0nOKPdyFcOxYovpYCRcwQadyXQmNrrErOl3wqu3DaABy50xAKBY" + ], + "local-id": "VtFjWXOGMxVBiPIWz46cfsnZVK5vhf55JCoxz55mu1XMQxIiB", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "oBCvo1K3DJ9kcroxHAUdcQJw8o0mvTyLn3hD41yHCHUO0idHSZU5QvtQTl4p6D2lGjZKcxkGfemfoAPhzJeh7HZ0U4h0HkmfDlRIKbgZhD7GdWPEx3WECVFwRWoygKFMXxmIACzSfGqkufZ2aVyMIdas2q0a3yW05", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "GvH3sA9tq5RlOFlWKqfooB1t5lGcvGUc" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "prot-type": "aAOkfaVMkgp5IPfGuW7QPORegd51RGH2gneox22KisPT94zDTymAf5PviMo2sX4BdaZKc1m", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "cgv8H0TfemujbRCX7Eh5AKaCBMPv9cQdkdd1678ktDwwm0luECr6nBIYfplotcBNhPGnOPA9k6FG602CulIJWiA4AVs3ZWJhDpwj66sicZZiRTUdfuX3Fx77ksakoLt13Zc96Esavjtm4fzjCof9Vmg8Ois44VX7M9gSNA3aTowYvY97mo8aDoirHCoLplKbv0WatZlefJ4KHeK4uK679orI0Plha5sxXgIq7VxmEBZeHBiclobmEC4wrhNum7" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "AFN2p", + "value": "APf5WeZ61xKBDM3FdWPguE8rGJ6tLogddvi" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_UNLOCK", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "extension": [ + { + "value-name": "f5KnI0gTSYOvJPxxcNUrQGUgn5HHc74scGPNzXGjVmOx3d4g0QHRpu7MzGuLGq5SZUxyJ5RxsxWvCSDCAllZPkEgT0TzqZjpLRPnOyUgXIEzAh4aup2bCGrvGdW6c7oXY5cFw6VtOrVgBZj5glhS", + "value": "AfzN3xZbNP1T1Gp0" + } + ], + "prot-type": "8U5GwjuUt7uvb3yKN8a7OUg7b33Met9mf6UMpgyTn2oy6OaLOdSvZ0Ca3yP9TQw8WiMmzl7Onnfl3hYSuRnlRRwNhdWa3kbZvXd4icKyzZLDhKvDtKZcBnRTAO3D06uv4AreMcEe3qJk26YvQXzrcrcM78h7eDvadWp", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "configuration-and-switch-control": "t7wVgZllJz1gUPSc5gAGiWEDuQ1aCde5kKTAC6NdFPtzweLBueaE2OawwbG9oN6ApZ216PeDwA5VOIoiWyXYe7uLa3UyIS07K29IJfl8Pi3D1jOXSDO6CaJM5vcNocV06WIHbVHTeCwfWc4GPKEjVo5SThG9lt1jpJ1sxAlLdKS1WOHEzlXmBVen4MwqfyJw9CRG54jaObbD0S9", + "internal-configuration-and-switch-control": "56FHTT4YysoFSZc2u3Az7UJOXMjPEs8BqNikzea7HyMzpQtLL4cLQVrNzKv54DHurZG0eQZNgLmGuIjfMwSujj9T3EY7aFuBxatLTsq95MHzm1H0xz", + "label": [ + { + "value-name": "Jh8CHTdkx9ZK5G0rc9STKQeneuAkRTms2u4JfaVNjMpglqHxrri3hpqwL0QDLc5Gy2hOcdtnZSDkacKtDUwUbWiXP8sAcx8LrqrDvM0uwvHHHjakdHfpvxekyGNC5VfxdG2Ik35RyMq8XAs29zrx7xRxd", + "value": "9jspIxXKgaNl1eZrmWTGYVgisfPbMVIN624OzUyP4e25kToyHhey4uQwJxInkq3qs761TFJXLLU5xiDesRMweu3PUD5e38xn7Dg1iZQ3DL0aVvonf3UtxParsfy" + } + ], + "selected-fc-port": [ + { + "local-id": "bdqLqqICIbskcgJTZTAs44epnr3rTWj51JQs1r4BCoWPFFIwqaYne4MBoP2hDdexOXZIoVj0bfHQNin5sds", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "i7ayO5PkaWRZTIH9vS1G0JxN1UKl752hc5P02xccl33eLCngvoXv7ma0gUmfZgp3d647v8kQcf4XSj6fA3KzhMAxGOEyWVB22x9pGtgSBcHtoNAYIcxZYZoEN34CQGESdNaT9qLKul5S8FQRRoIPf7l32qxS6bDbQN5Z5IJz3Gs4laV4qvTGu7Bwx8hvbMG1rD1omCXhbhlws8BSEmq8t1xS9GfcsWeLz79NBY5MgqbAzMk50LduMKeO", + "value": "u0Kq6nRdwxHnCtDUE5tih" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "extension": [ + { + "value-name": "JbToA95aWAcuuaXY8eJPZrimdP38wCQ7FBvgKsizUv3pF1fNfZu6iMlwugE0SmZqYmGAHQ9Bd5ST68ydZ3b9HwF3Nb3xyUPo9nQQeSjrX4c34D83yj47IKbnN6Md1Ct2ZkS5c3x17J4bm46", + "value": "fb2XN5cAbZOct9ektYqx2Xy1yudNybzGmtv9yICKziWUr3eVTEkVtTP2n2HO5gusKZBiz520nRUPM1KFF4t1PiV5cCThSfBu65NyaHyyqlncmZK1V5ULnPQrjBA4IcyGhderNFZd0eimd2f972MmRuF35f7FjxdADsUiZLvZ0Fddzseyu0Meur9rz" + } + ], + "logical-termination-point": [ + "bc478ce2-7d3c-9c53-dff2-7724bcef25d4" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_BUSY", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "j2ENHg1nznfbNmzxrX48kyCPs8UOr4eC6ShF1a2AyiLdwcKXaG6meAczIYn12tD1mUGn5BPvLAIhFteP1c38M7Hn6Wg0pM1DyA0v3H0OaJXP43w5gzdUHUhFIqF8czLK1Eg4lgKvRzcVCI1Ki6FZTOwBebBqCn3DTjz6rbujCG6fp7ZH6wyZl4sz74SCjV746HaxKEQnlXuKWljUSJL5F6wEaoglbophXzPz6xW", + "value": "mi3bwe5gXJluPR0R8hcbxBtu2a38HSrW2u7yI4OxF1TuTUlT3p4ASp4VzZVhJn5MRcks81RO2DaNxoGANDaG26tC5oLHLQtvUFP2Gy" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN", + "fc-route-feeds-fc-port-egress": [ + "eAaqpp3ybFPlgc1nSVaHyXA2POcPha3vCdV1vQzGvg1MtV1dQ3Vg0vaPbnwsxAQ9FLbauCQZTKDexwrfzevABGhM3O7sgXBVAE649OW2qz8XYz4xGAZh8hW3X3ndSY0svYpEFly5MGVK7ZaNr9XriTmfOJkGAl05jpBYK1WpHJ9OAjuUtrdLcAT" + ], + "is-internal-port": true, + "role": "3Y4lHgnNeKD3kWfD9TKhaJvO6GTVXDV0BRe", + "address": [ + "laE7svSQuSnz6X1cvodauHBD12D7Vab8dPfFc7nG0L7YA125pf7LXJgYLTXy31GgQVO3V3BNOJDgKFe1VlEK4UAINpgIqPR9Cx4xAxch8PxKnLLi7hU3bmLQLUr4JiddP9DhGPyPx6rUJ54QmYUykxgXjH12Z68GfLYOAwv7uWTe1XWoVIW7845rM6mL5ukkfi0" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_NORMAL", + "address": [ + "Pow8uNlDxe5NNTQkK10r3TlJad5UT1sIpYILD3gbhmY4fGhRAhjv2E64RcYCdidu9V8MRoX0KN5RmeJWnUrhqxl9JbLOuQbDEjhvz7vcUs38yE4Nqn4QNpZoBD55lgAZzJm0QKcL4gTDMQqd5n3SMV9nqekLuMLVwZVeJ8ZOgLj2tJ7y63jLYs0gGd12ZEXnESCf0t3g6mbrYi0WlbHbvArbNtdM722DUwTNZO3Yb6p1phXKsxWX7f0U" + ] + } + ], + "supported-link": [ + "BUegdFNEu0HSq3V3dnxMlpbV1MLtpPlSBz9OfWkBW2te5gabDzXYY0LSExl3eHOQ8PEnDZYrTjFQzP15oQ3fQH7u6kqkT6a2VHhyG8Zrrw9Tm3YCTTJCAI6GVoTOm3IhK0Hi0GBj5LcrO2VzWFbwfa5aqYRNTr4wjMGjkiDpVPIBSwa" + ], + "label": [ + { + "value-name": "tYJI1hc2JNHC50dnryL0mtnruOSSVpJgfsYhJ3jlQSXNS22btFbP9rgD71o2q7bGs1X348oU0ezK8CVB9YripzOpAcj1buzvwozAwPno3W84qVFAT6KbyyA8CT1Ggs", + "value": "MQCeesBunqCrIp7aj5VuDlWEYHxE" + } + ], + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "8dtvonu0peB1pIl2Qc1teKWYuZCpscyAhTXG8syxy9qXJM0rY1V5DJ37Axp2BPuTJrrRLZpj0PhJt92k2XhGGcFgB4adUE6vYxeJov3gdcZGl1SnR1VpdBGPxIUjn0GdpVWFqRVD3McgFWwwYrW3UuKk4EDrwcEN7tspkf3g17wH3U51eTX8fHkkmYDK2ay9D0yP8t59AuIwoGpCzmDH4X1iNw2PGsYblp1tS6Cl", + "external-managed-uuid": "dRRTglkvY1zOUJBrDjZ69bry4Uj2owvBfeuvrP0iQr6D2zWGSVM2Y5s2ZD5n1sZgylMZaEhTYnw0PkyHfcB6hW0gr5wtpvJXQnXTU6MSmaKbubKBneHFa" + }, + "fc-port": [ + { + "local-id": "oXHA5Gt1VpaXeQkfXsca81h8sHJ3EVbULSmQyPKm7UjlCvsrXxBYyT61sP46D7SoS66iWQE3CXg6lIyi798G2fznWvlrDeHnkOF8wkb19j7u2FF1PNHJUg6REsa9ySwKybT4vW5Fgd1aSGbzuTjg1h7FJaO92kUA", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "NwTJCqRHs1r0d1mYkDZBCxdMdmGqg8OVFHx90oQkihkvaHlukcYWJ3BPphfyq3l5CS6C9WOr59WgI9CUlsIXvjMNt1dTWyQyrW3AKR1HSPPsYkmbM50agMXJFaCtIk218XBKGukrb9T1tgd8dditSfdphHTZ2N12KuNiR7J28v4uD9CQeUj69ooq6hh04aUGxzYoyAiHX", + "value": "bAfNquzBsI0Q0YZ9Q3kKBJks7S2hrRourD9JZIcki42a22kK5wvzfH1erVvLMTf5ppOoZ0Ii5LsZNMKKa7bpOcD771STM" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "0qB3eBPGoSmI6XAHMw51CFI", + "value": "Ewsp4rL4RfZ5QPE6z0OFPhftFkua04kwAEVE5zBXGAUohqvQiboZkDt0PP2HUmdu011XsCM84zwmZT4a5k9hXC9FkbmexsIplJfNd1Nisbws5sC2NDbC8lhswwGWYgdb0sQ5mDnOGL8DeKx1gJDo4NQsjwo9MCcE42KixZ7dLfRRSgS8ZnwV2mgdK" + } + ], + "logical-termination-point": [ + "f7872522-16c2-ce17-fc7a-083c8517e7b3" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "YbhEsgF2yCNTBsxd5Ikg70tD8sESeiS4m9JOigQQSwBlY9zVJ", + "value": "cQMxlUZRE5apawyLcQ12zLy2Yp3xkMjov5VQRNInKKMUgdFsVymmbVpacszwfKNKHAsqfaO0UAU2FsmBSJX4wm6AHF6WqLy7" + } + ], + "is-protection-lock-out": true, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "mdXr0dov6tQkMgQTXWASKD1O6h639jSvoPWh2cM0FulrK3dH0NrCqsiwKorLIk8614fW81OOv1775kGX78ryAJWc" + ], + "is-internal-port": true, + "role": "BdI921uu1Y7uGIcOSXRO6PaNY5RyEDd7QVgSPDfQBed9OpQHeznlop0muRU0m07dVgXCTclmjyw7PeO3N3gcsg", + "address": [ + "35sNnZMudpCWgu40C4g0RimZw6wKuEbxBDcZDRlI8XwpjAhVwpVgI9f67LICiT1Tp6KUX6u5V0mfAE2Z3YfDZmB78cJi5CbmIW8FUCDPCZW5vZ4rPbWOxqNxCoPz11WJP4hJHMqbLf896csVfoBNOpkqNa0G3OiSKrtjdLvQ0DZ6IrTXInCoEXPjZH02niM7J7jOKGEDbwBTXnJxKlWoaDH9cz3zRHysGJ8rpNWBj" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "ijpsjvshgIM56RtjcpIM0xPdl3h3QS704wsn2NEanj8uaBNe1n01MPe7Lo2tg9tkyWzsBeCYxKsze7NfmF88unf7DhATj46RSFbtLNraqMJELoL83Tgq8oxLF0xQ4vHW2ShGyIQQmsm8I7gMSo4TMtwktVapqKdluu125JKrb6rU5zyYYuJKXfWjb7ItJ" + ] + } + ], + "sync-ltp": [ + "1c7e2c79-af6e-8d12-d18a-957fe616ceeb" + ], + "address": [ + "Ano7zoz5GtQesUnwUD1j34bhbPGjYyMqN2xer6kZz2dUWsiIXj2Tf5aqUQJKgoaWqH2JGmI7pN1dfjO5vIYKN0bHRUkZauNt4QcCcNJtsLzIWnNr5DcKDfjm1Dmc01F4RJy4ohpR2YrRd6aaJmUmteJvRXHJYeFQXdMev35p2w87CjilF4H1iiw2f5LejjW8wIm1LjjFPrFrKXEiTej4wP6EMJS52G5rokk1" + ] + } + ], + "supporting-pc": "DzlXeMH3jRWx20VRYzvIjsCZy3fKohfTQAQWfqZy9V5cOS3MsrmLTRDjUS3a1jWJTMF84wyekvq8olMQM9tG0YZMRVPK6LuZp10myyAS4SSk5E2SFvqxmhc541PaEbaVd2hDAJnwtfQzTSrzgJ6C0aH5bo7HAhDFbMiMoFaRUTqFLJ6Ts5nlf4ijtp0VzvAKaSoyprhbkI", + "server-ltp": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "connected-ltp": "cb398360-6165-86b2-5b57-2fea3e77edb6", + "layer-protocol": [ + { + "local-id": "jKE2wZqvFUa1CI4vNNwwkWQLogt3ao0l0wfwnG13A344M0srNQYZMGKbWe66C7sCvH0TnTOPOKMsLeUq4KqIiaLfgSlKRFemfefCZ3kOO6grc2R8EhIXkucAmpd55rrcyHOxC0diYuJ2oB23KL04f4xtlKyi3ZuByb13bel2AX4Zq72aSU7ZQwsb80mbRQFi1Gl5My7nv3mNagYU2XTStdVB5hEX0j71RsYES5Tg1733", + "layer-protocol-name": "tdm-container-2-0:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER", + "vlan-interface-1-0:vlan-interface-pac": { + "vlan-interface-capability": { + "configuring-pcp-bits-decoding-is-avail": true, + "ingress-vlan-id-filtering-is-avail": true, + "port-and-protocol-based-vlan-is-avail": true, + "statistics-is-avail": true, + "configuring-service-access-priority-mapping-is-avail": false, + "max-number-of-protocol-vlan-id-groupings": 697, + "configuring-ingress-tag-filtering-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-interface-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT" + ], + "number-of-available-traffic-classes": -104, + "supported-interface-kind-list": [ + "vlan-interface-1-0:INTERFACE_KIND_TYPE_UPLINK_RELAY_PORT" + ], + "available-pcp-bits-interpretation-kind-list": [ + "vlan-interface-1-0:PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D" + ], + "drop-eligible-indicator-is-avail": true, + "configuring-pcp-bits-encoding-is-avail": false, + "service-access-priority-tagging-is-avail": true, + "received-priority-overwriting-is-avail": true, + "egress-vlan-id-translation-is-avail": false, + "admin-shut-down-is-avail": false, + "tagging-and-mvrp-is-avail": false, + "vlan-id-translation-is-avail": false, + "restricted-automated-vlan-registration-is-avail": false, + "number-of-available-priorities": -9 + }, + "vlan-interface-status": { + "statistics-is-up": false, + "timestamp": "2021-05-07T18:40:40Z", + "total-bytes-output": "-9223372036854775808", + "total-frames-input": "-9223372036854775808", + "interface-status": "vlan-interface-1-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "total-frames-output": "-9223372036854775808", + "total-bytes-input": "-9223372036854775808" + } + }, + "wire-interface-2-0:wire-interface-pac": { + "wire-interface-current-problems": { + "number-of-current-problems": 105, + "current-problem-list": [ + { + "sequence-number": -22270, + "timestamp": "2020-09-06T10:27:53Z", + "problem-severity": "wire-interface-2-0:SEVERITY_TYPE_MAJOR", + "problem-name": "NyfMU20oypD6g8MA9MC59ozIHBEYWn6CVloHfo5ONAMWIyoRl0Puog4YRBWGY2iLfytuXyaC1WqBnOlIPa45i132CRIATSl0qOvffFS8uaJRZ4rO6nTpoPr0G1AsTOsbuPrJnbRRltAkx10EoM3NBmF9ngBg4WrqDS2" + } + ], + "time-of-latest-change": "2020-08-09T18:45:16Z" + }, + "wire-interface-historical-performances": { + "number-of-historical-performance-sets": -3078, + "historical-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2021-01-10T11:16:21Z", + "performance-data": { + "es": -1173430545, + "ses": 814540054, + "low-power-idle-receiver-ms": 1001641408, + "low-power-idle-transmitter-ms": -658818997, + "symbol-error-during-carrier": 1400451792 + }, + "history-data-id": "DIaQ09SgP4DIOyj914b1hjodewTP0LQDlSte1euRi7rYxK0zObs6uRbAn4hnIZS3SehL", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2021-01-13T11:30:20Z" + }, + "wire-interface-status": { + "rx-sync-role": "wire-interface-2-0:RX_SYNC_ROLE_TYPE_FAULT", + "link-is-idle": true, + "eee-is-up": false, + "performance-monitoring-is-up": false, + "rx-level-cur-list": [ + 17 + ], + "tx-level-cur": -53, + "pmd-negotiation-state": "wire-interface-2-0:PMD_NEGOTIATION_STATE_TYPE_COMPLETE", + "loop-back-kind-up": "wire-interface-2-0:LOOP_BACK_TYPE_NONE", + "interface-status": "wire-interface-2-0:INTERFACE_STATUS_TYPE_UP", + "pmd-kind-cur": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759", + "receive-signal-is-detected-list": [ + false + ], + "signal-ordering-kind-cur": "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_MDI_X", + "pmd-is-up": true, + "link-is-up": true + }, + "wire-interface-capability": { + "wavelength-min-list": [ + 1709314010 + ], + "supported-signal-ordering-kind-list": [ + "wire-interface-2-0:SIGNAL_ORDERING_KIND_TYPE_NOT_YET_DEFINED" + ], + "rxlevel-high-threshold": -124, + "isolation-is-avail": false, + "supported-loop-back-kind-list": [ + "wire-interface-2-0:LOOP_BACK_TYPE_INTERNAL" + ], + "short-reach-mode-is-avail": false, + "wavelength-max-list": [ + 520913986 + ], + "unidirectional-operation-is-avail": true, + "supported-pmd-kind-list": [ + { + "pmd-name": "QwOR9tvBAl00L6leeOC81s2srpJBi7q0v6RErm81A8Ul67zkN3kPvm9PDTiVSAVfGFU7TU0t2UG8T7kHbEoy1xnwixs27fiFM4EGYx10jI0dHkUSQarJHGgSeAUdPcLugp2eW368D6lli759", + "speed": "wSY50IbADoiH9MYrO4", + "duplex": "wire-interface-2-0:DUPLEX_TYPE_FULL_DUPLEX" + } + ], + "configuration-of-number-of-bip-errors-per-ses-is-avail": false, + "auto-pmd-negotiation-is-avail": true, + "required-medium-kind": "wire-interface-2-0:MEDIUM_KIND_TYPE_TP_CAT5", + "temperature-low-threshold": 97, + "maintenance-timer-range": "KCKAVywaazqpB0RVIogGklvlz3xg50eHuZ9ppGrz7RYISHvs6D8qZEEqH3yE3", + "supported-alarm-list": [ + "epMnO338DbZtLJ3h39McrLQ54p1CV4h9m3x2ZAauD2XpD0yH1kTtYBq20rwNoOXKJuEIWP4sJ2RmUh3OBO9rhzl9TSX9yUT9gpS4eWwXQfcDw7j8Osz5TVfMFcV5YGee66acVH2DW68tdjt1LUZx" + ], + "mii-kind": "wire-interface-2-0:MII_KIND_TYPE_SFP_SFP_PLUS_SFP28", + "rxlevel-low-threshold": 106, + "auto-negotiation-pmd-selection-is-avail": true, + "wavelength-grid-min": 735685038, + "performance-monitoring-is-avail": true, + "auto-signal-ordering-is-avail": true, + "configuration-of-rx-sync-preference-is-avail": true, + "eee-is-avail": false, + "temperature-high-threshold": -112, + "admin-shut-down-is-avail": false, + "mdi-kind": "wire-interface-2-0:MDI_KIND_TYPE_LC" + }, + "wire-interface-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "wire-interface-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "performance-data": { + "es": 781125690, + "ses": 1446282460, + "low-power-idle-receiver-ms": 1409234344, + "low-power-idle-transmitter-ms": 126808760, + "symbol-error-during-carrier": -1372002807 + }, + "timestamp": "2021-07-15T16:30:05Z", + "scanner-id": "HNS4VmcRaDiNokGb5hsktWYxigSyBShay16tnidxNnd3zTfEaHQvvO3N4NdxGuHeoNzLXEbL1oOAh37jDPP8wKWsp105wzbUfDxchIPbYEL7zKrcA8l6K9y9aq7y0ak7NKbXk18jxLq6wRj6Rw4BxCDHVC8NMkUs45hpYpIv20CySNwBjA5Q5Ip0cpNQKzaOwr5vINSLOmjy9Q1ki62nGknSJ2JlBTa0df", + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -19 + } + }, + "ethernet-container-2-0:ethernet-container-pac": { + "ethernet-container-capability": { + "supported-fec-interleaver-kind-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED" + ], + "maintenance-timer-range": "Yl0l2nMaKOA2fNUlUmVyDjmZZjlNA30qo0DrniB7639lIVGCit2VNo", + "supported-alarm-list": [ + "IZra2rtrr6KGodFmgOHQBfkTBmGgLkUljlneEQF5XpDdCiAKY9AzhMlS818Te26pfuDTkiQ9ztf3DPNBQf271nR2hZVnTUM8oiTAAJC24R5HyTao05o2kf4B7RQ0LD11VUCnwehsXn2v8cL891auh65", + "YO8Bj1D6W7tklLMa0OF8Tig2krwBxuJniRZBTCHHJ21WFF6FmDFfVW9ffGIE2r2cb1F4veL6gEUObSlxv1EiXOy4m8IgAKsLD7H0lkYtYS91Cvr7w5qlLQhZYZ7qCzb7yS0L4Yf2JoW" + ], + "statistics-is-avail": false, + "encryption-is-avail": false, + "performance-monitoring-is-avail": true, + "available-queue-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE4", + "available-dropping-behavior-kind-list": [ + "ethernet-container-2-0:DROPPING_BEHAVIOR_KIND_TYPE_RED" + ], + "available-drop-precedence-kind-list": [ + "ethernet-container-2-0:DROP_PRECEDENCE_TYPE_MEDIUM" + ], + "queue-depth-configuration-is-avail": false, + "wred-profile-per-drop-precedence-is-available": false, + "available-scheduling-kind-list": [ + "ethernet-container-2-0:SCHEDULER_KIND_TYPE_WRR" + ], + "max-queue-depth": 1275685954 + } + ], + "bundling-is-avail": true, + "supported-header-compression-kind-list": [ + { + "header-compression-name": "7fPvfrJhC1aRpeofgwO5A4G8Ia3pVAN2HuxOV95pag8rmpHCVvHnrfv9qqzdSefA", + "mpls-payload-kind-list": [ + "ethernet-container-2-0:MPLS_PAYLOAD_KIND_TYPE_NONE" + ], + "compressed-protocol-layer-list": [ + "ethernet-container-2-0:PROTOCOL_LAYER_TYPE_IPV6" + ], + "header-compression-mode": "ethernet-container-2-0:HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED", + "compressed-header-length": 801 + } + ], + "support-of-management-frames-without-preamble-is-avail": true, + "explicit-congestion-notification-is-avail": false, + "information-rate-min": 321766980, + "fec-is-avail": true, + "burst-size-max": 32618, + "ingress-policing-is-avail": false, + "supported-fec-redundancy-size-list": [ + "ethernet-container-2-0:FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED" + ], + "egress-shaping-is-avail": true, + "information-rate-max": 793625942, + "admin-shut-down-is-avail": true, + "bundling-group-size-max": 115, + "supported-fec-interleaver-depth-list": [ + "ethernet-container-2-0:FEC_INTERLEAVER_DEPTH_TYPE_2" + ], + "burst-size-min": 2349, + "fec-word-size-max": 6302, + "supported-loop-back-kind-list": [ + "ethernet-container-2-0:LOOP_BACK_TYPE_NONE" + ] + }, + "ethernet-container-current-problems": { + "number-of-current-problems": 37, + "current-problem-list": [ + { + "sequence-number": 13510, + "problem-name": "Yp8vZb3x5Kp319L8kbI9jeii1upm4M1239pUdlki5JlYTY652GelMxEF1V25HVZD5hxaCRszBOxmEvrG", + "timestamp": "2021-09-14T07:44:41Z", + "problem-severity": "ethernet-container-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "time-of-latest-change": "2020-07-05T20:08:15Z" + }, + "ethernet-container-historical-performances": { + "number-of-historical-performance-sets": -31910, + "historical-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-01-02T23:29:21Z", + "suspect-interval-flag": false, + "history-data-id": "DSKA6KKIDcuZmK0q8DbajkBOKQAd4izz2ba9VURr7eilYaM6NX9Z9KNLsfQwqp6sB8to2lP1z", + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_QUEUENAME_NOT_YET_DEFINED", + "max-queue-length": 1701640242, + "avg-queue-length": -162918123 + } + ], + "fec-uncorrectable-blocks": -242709693, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": 2090081624, + "tx-ethernet-bytes-max-s": -1836763175, + "time-period": 643910560 + } + } + ], + "time-of-latest-change": "2021-12-30T23:08:20Z" + }, + "ethernet-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "ethernet-container-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2020-06-11T23:52:07Z", + "scanner-id": "UmyATU7olNs1Pi6nNcRdnUqiAItF2hCODahxWoNab731pag5m7aCTAUtaf14wD", + "suspect-interval-flag": false, + "performance-data": { + "queue-utilization-list": [ + { + "queue-name": "ethernet-container-2-0:QUEUE_NAME_TYPE_ASSURED_FORWARDING_QUEUE3", + "max-queue-length": 554937350, + "avg-queue-length": 882496290 + } + ], + "fec-uncorrectable-blocks": -1085145515, + "tx-ethernet-bytes-sum": "-9223372036854775808", + "tx-ethernet-bytes-max-m": "-9223372036854775808", + "fec-corrected-blocks": -2134345351, + "tx-ethernet-bytes-max-s": -1530542703, + "time-period": 1631573276 + }, + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": -75 + }, + "ethernet-container-status": { + "timestamp": "2020-01-26T13:40:00Z", + "last-10-sec-data-output-rate": -1968721773, + "bundling-is-up": false, + "total-bytes-output": "3091757253419614720", + "total-bytes-input": "7628666793824677888", + "interface-status": "ethernet-container-2-0:INTERFACE_STATUS_TYPE_TESTING", + "loop-back-kind-up": "ethernet-container-2-0:LOOP_BACK_TYPE_NONE", + "statistics-is-up": false, + "last-10-sec-data-input-rate": -996448157, + "forwarded-bytes-output": "2264229888180900352", + "performance-monitoring-is-up": true, + "forwarded-bytes-input": "8271111562787407872", + "remote-site-is-faulty": false + } + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "hybrid-mw-structure-2-0:hybrid-mw-structure-pac": { + "hybrid-mw-structure-status": { + "performance-monitoring-is-up": false, + "segment-status-list": [ + { + "segment-status-type-id": -22490, + "operational-status": "hybrid-mw-structure-2-0:OPERATIONAL_STATE_TYPE_ENABLED", + "segment-is-reserved-for-tdm": true + } + ] + }, + "hybrid-mw-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2020-12-20T03:50:25Z", + "history-data-id": "WQAlha0UhfgfFfVSGEJaz3U", + "performance-data": { + "rx-level-avg": -48, + "es": -1988419369, + "unavailability": -1392482223, + "cses": 2132857624, + "ses": -879563985, + "rx-level-min": -106, + "time-period": 164279846, + "rx-level-max": -38 + }, + "suspect-interval-flag": false + } + ], + "number-of-historical-performance-sets": 27084, + "time-of-latest-change": "2020-04-14T15:26:03Z" + }, + "hybrid-mw-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": -7447, + "problem-name": "7lbxFM6aQEMCyJB6I1KkY02O3z5Qt9SAu3Z2H54yKI2asDg2E0m", + "problem-severity": "hybrid-mw-structure-2-0:SEVERITY_TYPE_NON_ALARMED", + "timestamp": "2021-01-18T21:29:43Z" + } + ], + "number-of-current-problems": -65, + "time-of-latest-change": "2021-10-02T16:10:43Z" + }, + "hybrid-mw-structure-capability": { + "supported-tdm-structure-kind-list": [ + { + "tdm-structure-name": "xaITidu0KbqBAXQeh70gVZwyF51e1d0qnAjyNFypRQTjNJx5QxdEoB43y6izjaZzCb7qQFHzvASbbh8UPdqdOuhmArOUtFt5QsnH758ux1FJaFDZS35GxmV0FBU8gfd7HBGGyO25HIOSfjJ8eOGE2BEH4yHlFVkeo0UOGWTgwA0MLJU0qAEs4i28IJlfwFtMFnAebmmIWmuHXgzn", + "tdm-segment-size": 329623252, + "max-number-of-segments-reservable": -84 + } + ], + "performance-monitoring-is-avail": false, + "supported-alarm-list": [ + "EnKNXl0cSGFEdU7r6tNOp1aYZiqe0vWFTykIUkVE0sienpxlSd99eb05tqktV80Gzchtx47pwhvLz36jg7luilALDM7qUZ7lcoOJsN0QXwCozAHHIU3S7vwKhDb4uapGq6hSLiAAO4YfFyOfsR7AnDcw8nADxSbXYtHBLacreayLAm0350vsDHZE5rhujsk9NTLq3XRaZhVAvOvBO0VrzM5w6eTpz5rmY4NU1wWSGRkbxHElzAF9eCFkR" + ] + }, + "hybrid-mw-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "hybrid-mw-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "suspect-interval-flag": false, + "timestamp": "2021-12-21T17:36:24Z", + "performance-data": { + "rx-level-avg": -23, + "es": -1526349661, + "unavailability": 760758242, + "cses": 1668706754, + "ses": -256233437, + "rx-level-min": 86, + "time-period": 843600090, + "rx-level-max": -43 + }, + "scanner-id": "skICElSGZK3tDbDy1TkkbP6PgRnwzZ42jEEQZxwQhrbUDOlEAFRLmXsCGP0fO49ZIOPzdehuFkha1CHB9yevnG8Vn8235c2N0KfdYozvJIGKcfdlFrJ2ZJPeRRhO3juV3J0T7spIaXsncxARYbLPUs3Ebks7wW2rxVlFnKfxzIMD7fm6q7NlrJZ", + "elapsed-time": "-9223372036854775808" + } + ], + "number-of-current-performance-sets": 13 + } + }, + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "extension": [ + { + "value-name": "KtVwsPoACRafQ2jjjuPOIV01EaLSfkFZNsvghMIUvS1lVcE6HmVhhNjNX4F4gc34FqcO4UAzNCMAOjGnFtFOgYt5U192d46Snizr59TSDFkkQ0HvumbCcFIYGR1TOZEbi5unef7KVj4DjD1FSciWRSVpBOjpNPsXUXc04b", + "value": "ZuGvGcwl4Iv0snNRZt2g9RJYLybECeouJXZp9nC550XxnDpe6rn7bY6Oo9s0nJm6GdnHA0My0B5femmdGJcRzaxXj0PzJ4xhhVYKNCaF57Mku0p2JBLaMi7XaXwT142aR0Uwu4bA4PMyQbsrEdCinJ8yGEjzAmKrmwXJt0jxQ5Xy8pZEuBXRl5hTBBlcX5vbtlUWd5lVaat" + } + ], + "configured-client-capacity": "idnyV4IZ01wd9OBW1C53OEM9505qAb9Kgoibs02kTyx3f8RgDPjjl5sjXyBqBK2R9dUB5WWZnlUCuLS", + "ip-interface-1-0:ip-interface-pac": { + "ip-interface-status": { + "errored-packets-output": 150125220, + "last-10-sec-data-output-rate": -607988055, + "forwarded-packets-input": "-9223372036854775808", + "errored-packets-input": 679653720, + "ip-v-4-address-cur-list": [ + { + "fixed-ip-v-4-address": "ytqVHrodxrJZ1BTgCVR3Gv6JlbbT7sUFVktCDJH33r24UOkpB4shzqSUB3FBvz8iMBMplusoNnkH3EYEIqV9RFWkJBV634hPF36SprgcGAMJ7KnH3aJMPF6qg2pb6G0DBZw1iE5Y7Jz6mWNpYw3F396cbnn9VgNofbhpPnnOYWUkKIBI6Ef2OdeRAB1nRGM6", + "fixed-ip-v-4-address-prefix-length": -21, + "fixed-default-gateway-ip-v-4-address": "nqiKfhy9BaJ5" + } + ], + "broadcast-packets-output": -1685723443, + "dropped-packets-input": 1051326886, + "loop-back-kind-up": "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL", + "dropped-packets-output": 294644708, + "unicast-packets-input": "-9223372036854775808", + "forwarded-packets-output": "-9223372036854775808", + "neighbor-list": [ + { + "neighbor-mac-address": "J0KpdYhGza3rIPpjTNJbpYkQ0WSBTDjCvVUIT3oldkEN936UIP60GiIy6A1Z5luA8ob2rzfwTTjVOhPp6NpE6Z4cz64xjy7rWilnKATvt4qil8HjNYQTXUYoS2VbAVvodQDProlUsD4FLLYrBGcqtaPl4CpwxUUDKxs3VFYfj2UWGLn9rAAUCh8HTx5jj0W3pg7dWXkfR73pSrzbT16vi64bD2uW2iRjzQovNJCxQFW", + "neighbor-ip-v-4-address-list": "YnLRoJfGPbSsdeg7x0j6QHBEi530KZAJnesLXHsNLc7Yqg6PgpV6YoC9tF96FCPUQ9FFRZsu3ssmIqbYH74GnHPJeQPTsENaNlQwca0gClCcLFalE712GILUysOT6t3LGTaLW21yfvLT2NeHU7JAPmnfO38Mw", + "neighbor-origin": "ip-interface-1-0:NEIGHBOR_ORIGIN_TYPE_DYNAMIC" + } + ], + "timestamp": "2020-05-05T06:22:52Z", + "forwarded-data-volume-output": 1469181516, + "total-packets-input": "-9223372036854775808", + "last-10-sec-packet-input-rate": 679190354, + "last-10-sec-packet-output-rate": -1150667363, + "vpn-binding-is-up": true, + "multicast-packets-output": -988795533, + "broadcast-packets-input": 99961656, + "last-10-sec-data-input-rate": -441499165, + "interface-status": "ip-interface-1-0:INTERFACE_STATUS_TYPE_NOT_PRESENT", + "statistics-is-up": true, + "total-packets-output": "-9223372036854775808", + "multicast-packets-input": -124888787, + "data-volume-input": -1738556605, + "data-volume-output": 1270944004, + "fragmented-packets-input": 11091360, + "ip-address-origin": "ip-interface-1-0:IP_ADDRESS_ORIGIN_TYPE_OTHER", + "unicast-packets-output": "-9223372036854775808", + "forwarded-data-volume-input": -1798235895 + }, + "ip-interface-current-problems": { + "time-of-latest-change": "2021-02-04T04:40:36Z", + "number-of-current-problems": 60, + "current-problem-list": [ + { + "sequence-number": 17398, + "problem-severity": "ip-interface-1-0:SEVERITY_TYPE_WARNING", + "problem-name": "OYg", + "timestamp": "2020-04-05T20:12:46Z" + } + ] + }, + "ip-interface-capability": { + "burst-size-max": -17215, + "statistics-is-avail": true, + "supported-alarm-list": [ + "MUMh96KPxYrkxELVcNjRkgkUk0urfa114Na6TUViKeC9TfW", + "MdZYA0P2psSOfg7tQaUXAGHReNUopKccX32p4JrtbkaishLajx0T6HDkupAL1FXZI0gEBI0NUa5mjJxD8xoe6Tqsj1dkG3bg3sVw2VbW59agSHT06a7cVxE6qSr6VunQOaeQ5qE2zPirw4jveiH1Qe88YzfLVutKEHsJ77LGW3Zk7bPdtpfbDnktOreBVHdroG2wFF4tA4FAfnN" + ], + "information-rate-min": -134617317, + "maximum-number-of-ip-v-4-addresses": 2997, + "fixed-default-gateway-configuration-is-avail": false, + "maintenance-timer-range": "runhahEHUmUgcmpK2Sa1gLBp26YM5vUo0aF2rbJdyvtKRTuTDwULaobcu1QsxLQpVorez2r7yURhFe3aC", + "admin-shut-down-is-avail": true, + "dhcp-client-is-avail": false, + "egress-shaping-is-avail": false, + "information-rate-max": 1485872160, + "burst-size-min": -4220, + "ip-v-6-is-avail": true, + "maximum-transmission-unit-max": 3175, + "ingress-policing-is-avail": true, + "maximum-transmission-unit-min": -386, + "supported-loop-back-kind-list": [ + "ip-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "vpn-binding-is-avail": false, + "arp-proxy-is-avail": false + } + }, + "termination-state": "core-model-1-4:TERMINATION_STATE_TERMINATED_BIDIRECTIONAL", + "mac-interface-1-0:mac-interface-pac": { + "mac-interface-status": { + "errored-frames-output": 823732698, + "loop-detection-result": "mac-interface-1-0:LOOP_DETECTION_RESULT_TYPE_DETECTION_SWITCHED_OFF", + "forwarded-frames-input": "-9223372036854775808", + "timestamp": "2022-02-10T03:54:28Z", + "multicast-frames-input": -1007402133, + "unicast-frames-input": "-9223372036854775808", + "last-10-sec-frame-output-rate": -868280205, + "total-frames-input": "-9223372036854775808", + "multicast-frames-output": -1381368851, + "dropped-frames-output": 604874090, + "statistics-is-up": true, + "forwarded-frames-output": "-9223372036854775808", + "flow-control-mode-cur": "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_NONE", + "received-ethernet-frame-format-cur": "mac-interface-1-0:FRAME_FORMAT_TYPE_NOT_YET_DEFINED", + "last-10-sec-frame-input-rate": 842069974, + "errored-frames-input": -53685683, + "loop-back-kind-up": "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_REMOTE", + "interface-status": "mac-interface-1-0:INTERFACE_STATUS_TYPE_DORMANT", + "mac-address-cur": "vsgoA0Qsnh4XHuNmdts8zpDB6m8lv3DSvUh5U7y9huYQYD43ZxcyWH9U39frcLbHxsFjs5sBzijpWolVVxlJ6uv1DLsPwEo3Y3ei0GTzY5RMtcHgB2ZHomIT7bAvHZqFUEQVcBm3G5P1hphSj8rIvaBud40U3irPXhC1TR4rWUt6jKQCTic", + "broadcast-frames-output": 681331616, + "total-frames-output": "-9223372036854775808", + "fragmented-frames-input": 742686940, + "performance-monitoring-is-up": false, + "unicast-frames-output": "-9223372036854775808", + "broadcast-frames-input": 1656490336, + "dropped-frames-input": -1167928987 + }, + "mac-interface-capability": { + "supported-flow-control-mode-list": [ + "mac-interface-1-0:FLOW_CONTROL_MODE_TYPE_SEND_AND_RECEIVE" + ], + "statistics-is-avail": false, + "broadcast-frame-suppression-is-avail": true, + "supported-frame-format-list": [ + "mac-interface-1-0:FRAME_FORMAT_TYPE_802.2_LLC" + ], + "admin-shut-down-is-avail": false, + "maximum-frame-size-min": 20777, + "loop-detection-is-avail": true, + "performance-monitoring-is-avail": false, + "mac-address-configuration-is-avail": false, + "maintenance-timer-range": "5bimCdHogPEF7eXGYSxEhDHOyudGUbA0eTeQ6OeeDLUDZJjPtIuKd3qMyEkkHUcVFrLDfSSKDEnufzcJ9ylnBM11ilmZ7yMFRpi6h2JMyY9OxdxzLSWeEXgWauN92rOMRZK0TtNssO8R1FqMp", + "supported-alarm-list": [ + "2d9bjXBJQVVk", + "W30KduynpZ3bI2VJOhogB4os5VLJkZB83CT86jnnaryTlmu1DSh6WxyTkbCF35NYHy6GRmV2FmV0I" + ], + "hardware-mac-address": "aFBJmE4k1VvBarLp9Kh5unegP0KkDGVFdohz2lL3ggxiIiHJ2Q", + "maximum-frame-size-max": -12331, + "supported-loop-back-kind-list": [ + "mac-interface-1-0:LOOP_BACK_TYPE_BACK_TO_LOCAL" + ], + "link-loss-forwarding-is-avail": true, + "loop-port-shut-down-is-avail": true + }, + "mac-interface-historical-peformances": { + "number-of-historical-performance-sets": -27589, + "time-of-latest-change": "2021-09-16T20:21:39Z", + "historical-performace-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "period-end-time": "2022-02-09T10:56:37Z", + "performance-data": { + "mac-pause-frames-ingress": 1705370236, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": -1193778865, + "mac-pause-frames-egress": -1647116169, + "mac-control-frames-egress": -252866361, + "oversized-frames-ingress": -1486798629, + "undersized-frames-ingress": -1786647955, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -1838588555, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "history-data-id": "SbMFFjlb3Fh2d93Y2CwIdtB400RCo8cgjQOY2925Gb0Tk3KeF8XKtqOljFXHO1QZKEQMFKRlVR77MRmjRj4kJSF2quC6vkXfYN1vx", + "suspect-interval-flag": true + } + ] + }, + "mac-interface-current-problems": { + "time-of-latest-change": "2021-04-05T18:16:28Z", + "current-problem-list": [ + { + "sequence-number": -19619, + "problem-severity": "mac-interface-1-0:SEVERITY_TYPE_MINOR", + "problem-name": "JpdTCtlidS2QjHL33v52800YfFAWpno0NBTh46raYl09ULdX8i0gjS7qxzmXXDXC6JL3PcdOx5XjIagQt8YE154qFifuN56UOJPDVUjkZ9DHjLpEUnaVl6d0htm4ykQe3FRYr3aqcFZvqo2kEc7ZblZsO", + "timestamp": "2020-11-09T10:07:19Z" + } + ], + "number-of-current-problems": -23 + }, + "mac-interface-current-performance": { + "number-of-current-performance-sets": -108, + "current-performance-data-list": [ + { + "granularity-period": "mac-interface-1-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": true, + "timestamp": "2021-09-24T13:53:23Z", + "performance-data": { + "mac-pause-frames-ingress": 80327190, + "tagged-frames-ingress": "-9223372036854775808", + "jabber-frames-ingres": 564788764, + "mac-pause-frames-egress": 158105102, + "mac-control-frames-egress": -1869403595, + "oversized-frames-ingress": 901607600, + "undersized-frames-ingress": -4399587, + "frames-of-1024-to-1518-byte": "-9223372036854775808", + "frames-of-64-byte": "-9223372036854775808", + "frames-of-512-to-1023-byte": "-9223372036854775808", + "frames-of-65-to-127-byte": "-9223372036854775808", + "mac-control-frames-ingress": -2105933851, + "frames-of-256-to-511-byte": "-9223372036854775808", + "tagged-frames-egress": "-9223372036854775808", + "frames-of-128-to-255-byte": "-9223372036854775808", + "fragmented-frames-ingress": "-9223372036854775808" + }, + "scanner-id": "oxSB460byA5K0bYsQhzm578VRHPA6VNnkFQgERr4rpGkAxMiOeETdNOWmvwsibHDJyTnpdrIC024xHnlV1e0GUW2pknIw4d7uYuTbNCFNwKkd" + } + ] + } + }, + "pure-ethernet-structure-2-0:pure-ethernet-structure-pac": { + "pure-ethernet-structure-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "timestamp": "2020-07-09T17:21:37Z", + "performance-data": { + "cses": 1026273834, + "es": 670554814, + "rx-level-max": -54, + "ses": 763211472, + "rx-level-min": 89, + "rx-level-avg": -68, + "time-period": 776915998, + "unavailability": -1408453083 + }, + "suspect-interval-flag": true, + "elapsed-time": "-9223372036854775808", + "scanner-id": "HbpPUmuzxAlE7MymLjBiRXBqbv5MNCXuNmbzAx077dDeZbsCm4NdTgD4LIIykxUZT5qluqlBEYPv2i0oeNCZ37VOIwf239UP7c2Bvn51eUwg4oEab816gXVYl2SgbEXaR0EefJftvLJs2oCdowkEl7uG9fOcLMnuE1ITCXfZBYrDeWQDs29N9wlaL9noNKTrDtd7rs62qqxxmfaGijtjPGusPRJDtCW6595otbiUBPjPXtv7EQqm" + } + ], + "number-of-current-performance-sets": 89 + }, + "pure-ethernet-structure-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "pure-ethernet-structure-2-0:GRANULARITY_PERIOD_TYPE_UNKNOWN", + "period-end-time": "2020-05-24T09:25:44Z", + "performance-data": { + "cses": 1680338094, + "es": -795039079, + "rx-level-max": 79, + "ses": -1227872317, + "rx-level-min": -85, + "rx-level-avg": -7, + "time-period": 956124244, + "unavailability": -1442023333 + }, + "history-data-id": "H1fa5qWy7fo4ALbfCuB0g9eMzXKsvHjcAreFRbeQiuVTfY0RsBKJKYvbO7EjOPnh8BWRE2IXwvIMtIvWbfxN6UZU1v5IckZlVVcsYUhmhZ8LzEzKL6xR0oDTTIB62sjQgva6ijszaBcJ7LlSRSCJ97D2Q60KzjsPHuVZNnqXQD", + "suspect-interval-flag": false + } + ], + "time-of-latest-change": "2020-11-21T17:12:51Z", + "number-of-historical-performance-sets": 23296 + }, + "pure-ethernet-structure-status": { + "segment-status-list": [ + { + "segment-status-type-id": -5988, + "operational-status": "pure-ethernet-structure-2-0:OPERATIONAL_STATE_TYPE_DISABLED" + } + ], + "performance-monitoring-is-up": false + }, + "pure-ethernet-structure-capability": { + "supported-alarm-list": [ + "tDsWso" + ], + "performance-monitoring-is-avail": true + }, + "pure-ethernet-structure-current-problems": { + "current-problem-list": [ + { + "sequence-number": 7930, + "problem-name": "CYPhoFZAjFVj8ErS6Masm3s9rj13n82ZYR8nw7PHED0Mhjxf6HHkL1t4dn7An9rl0zAoyq5436RcpgrnX0AA2VE7iEHxF0TyrlWZL23G0MSh2bxSc7s62ZddDMKaMvIdJF4mz73rMNIGR7y36T11K6efSQpEe8JXNNjeM", + "timestamp": "2022-01-29T09:45:24Z", + "problem-severity": "pure-ethernet-structure-2-0:SEVERITY_TYPE_NON_ALARMED" + } + ], + "time-of-latest-change": "2021-05-03T20:29:02Z", + "number-of-current-problems": 79 + } + }, + "lp-direction": "core-model-1-4:TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN", + "name": [ + { + "value-name": "TYhQJ9bXWM2ejReCY7mi6033Lj4Sm07gYoYHpawlOzr7ixC9FYjDQmyBFvl2vsatI827azkZ0M6ijAjQyDtoZ2RxpcrUwBneJhdUQy", + "value": "QcJ1nkkeSPz9Ht0eS5FMB81IJjVv1lgSp0LNcXTWNk5mOYAy37dw766Qp2mjfC3xuOkyL5vqpsM5ieEddRCkXIbfCxyS1BhohBW2yjlXE73WmH2zqEUfmXuZuUJnn0LEtAH1T2Qp1TefsgHKMt00qmRM9s9wkN" + } + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "configuration-and-switch-control": [ + "iG1DZRbA9MdbvmgpPmdDlAZ74lSXkdTuTU7KDacMWpQjD6ItsO6FoXMtixiCC3ZvP67thj75BXpeWZzgNyW4vApO7ziBC96rg5MppUm0JL6FDGWq6KmBkLhkksVOBUgJZ20gOn8y875LF14LLieY4oigQ55jRd3J73ZWq0mr7r4El0p6jD4f1evJcs33FYMFTEtcwPDv8z9tAqsT3o0XvvyHYtKvjp2dVvhrcUW" + ], + "fc-blocks-signal-to-lp": "XGVn0GipG7U4yBU1dhdukqpHHIUtw7GtFuIG215J0RFykzsxIFU2", + "air-interface-2-0:air-interface-pac": { + "air-interface-current-problems": { + "number-of-current-problems": -75, + "current-problem-list": [ + { + "sequence-number": -28842, + "timestamp": "2022-01-05T11:41:28Z", + "problem-name": "pp2QRKO6WgITgURoaC3u5DUFim5KkmfJD9svUgtIobtFXk37OYBTtorLCooPDvqgESDq161pau47HZfvPIhjYIWBYcqBHQSeBnwCux1EU6LBXS6FtfYrXMUOZcpG39Uwxj8TQ9xK7adXVcCorsHheC5dOuMJwyf3RfOIpdkonqlaCXq3p8kwCpJqMv2i4", + "problem-severity": "air-interface-2-0:SEVERITY_TYPE_MAJOR" + } + ], + "time-of-latest-change": "2021-02-22T20:29:57Z" + }, + "air-interface-status": { + "xpd-cur": -8, + "transmission-mode-cur": "tmbm4Dglu20fyM7WAI2dXAjalik4jyPMVS8Rvo4Zi47IIeEbOGoL8zVtJ7p2y6OlYW4mc8dn4k5MqKXfid0rFOMoV4rta7", + "rf-temp-cur": -11, + "mimo-is-up": true, + "tx-level-cur": 63, + "local-end-point-id": "suBkPr0tY859luRcUZd89sve1IzQPZVatouaPmDFuBOP5x20w78GADMtelbVc65FmrP3NkIiVp7TW1Tt9T1BpN4D0fqcewRAXywLSeVGvUzsWkNX5OyutuZtJqFXOoqLWWoO2bmy6VSUfFJll9HODHhmZOcNcuq0qHGkS3SQYCC6hljuu0iZzreqfqdjUwjcd0wXVhOTTiR3Eax03I0u9eVhw0siwMuBESzr1fcNx4Q36f4", + "rx-level-cur": -18, + "link-is-up": false, + "performance-monitoring-is-up": false, + "xpic-is-up": true, + "remote-end-point-id": "PWEZ2r8yrAQYeczK40b6foLFktIq", + "received-radio-signal-id": { + "numeric-radio-signal-id": 35803, + "alphanumeric-radio-signal-id": "7orTPzYpfvwTwkcSxaj4qiia7MMlBPJBe2uVCskRPQCd2OYAZhwhzOrzA5U4VwF1y9W2u8UbRopTdnt4wZlYGExgKjkxHZqg1minm" + }, + "auto-freq-select-is-up": false, + "tx-frequency-cur": 1143914772, + "rx-frequency-cur": -1818792469, + "atpc-is-up": true, + "radio-power-is-up": false, + "snir-cur": -38, + "loop-back-kind-up": "air-interface-2-0:LOOP_BACK_TYPE_IF_TO_LOCAL", + "interface-status": "air-interface-2-0:INTERFACE_STATUS_TYPE_DOWN", + "alic-is-up": true + }, + "air-interface-historical-performances": { + "historical-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS", + "period-end-time": "2020-12-25T00:14:30Z", + "performance-data": { + "snir-max": 50, + "unavailability": -1552165799, + "rx-level-max": 30, + "xpd-max": 114, + "ses": -601848357, + "rf-temp-max": 23, + "tx-level-max": -94, + "es": -2111301359, + "tx-level-min": 93, + "tx-level-avg": 0, + "snir-min": 115, + "snir-avg": 57, + "time-period": -1228941407, + "cses": -899000095, + "defect-blocks-sum": 15773, + "rx-level-min": 92, + "rx-level-avg": 66, + "rf-temp-min": -1, + "rf-temp-avg": 71, + "time-xstates-list": [ + { + "time-xstate-sequence-number": 78, + "transmission-mode": "uAYB54iEgTrPms4Ng7boIDCB5IQ5Y6zkypWEt6iJZBzm", + "time": 623924296 + } + ], + "xpd-min": 42, + "xpd-avg": -31 + }, + "suspect-interval-flag": true, + "history-data-id": "Idpw27IJWiGz0QLA9dDbPT70iKlSYXKya9449EG5WewO59h6mMi3GhVY19IR6kh8ulcDRSAF7Yu40DampkiXCdNvmonsIEA4SFzBp1ho0Ds0gvexPwvrKaX6ycr9ITdsqN4Q" + } + ], + "number-of-historical-performance-sets": 5783, + "time-of-latest-change": "2021-08-13T18:22:30Z" + }, + "air-interface-capability": { + "expected-equals-transmitted-radio-signal-id": false, + "duplex-distance-is-freely-configurable": false, + "supported-radio-signal-id-datatype": "air-interface-2-0:RADIO_SIGNAL_ID_DATATYPE_TYPE_INTEGER", + "rx-frequency-max": -1916434107, + "supported-loop-back-kind-list": [ + "air-interface-2-0:LOOP_BACK_TYPE_NONE" + ], + "direction-of-acm-performance-values": "air-interface-2-0:DIRECTION_TYPE_NONE", + "adaptive-modulation-is-avail": true, + "supported-alarm-list": [ + "85MV64sX2KUT5P9eR5fB4n5Os6i77ORfMv2KzvHt7tedafr1kHuoWr5oxnvwbeMXKGHjbgFbJToT9HMto8KcAPAZ4Xwf4a5OQEZUVE5wytiz2WUr5EDxl6opVUFZ4CNNgFH3jMs", + "2zOO5MpBWTUArZBp4gnnbfCNwoDYrh8lQX1OBqhpkbZD2BV6Rim2xYHWekUFt30bSTZtk8SwbR15kWc37qXEgwsuQn1bi1naMev6ffuq6wwjsAez046gAyKjNLuXEJ7iYuhdJLvI91TuB", + "w4xzo1YyCe1bQxOfOSI36SL5MZIS35fz1M0qFZYi5ZtVoha41K77uK58BN1w", + "7Ki9y5svJY25WrmRdTJavoXM3w", + "na9Y9T9akeDPXtKUp398g2Riyg7cjDTyF3xOOGZ8", + "3t31JEslX7Yj5u34NTz46aHtSRvLlYLgsOa3kCphBftGKwDxp4tneaQ71dKecn", + "JdHGiDDsADD4x8AlqHr6fYfgnQ8wPdNriuZA8CVAgywFG7S7Ok54ikcx2c3KpRbId2adE5NMvkjcjcbZwgVGt7evb97t0i36kdjRb7DGjXSu1Vtx4p5xobUsl2VdcYjp3DgeCLVNAFhBtC0x16Wi9IKuKFIPvTeyomF0ZAFA7O3ArW7kUVC3EeygT85g1bHqpmipOQRVEUwXIviCrMy51YdM6j3ZmChMYsbE" + ], + "tx-frequency-max": -1195364699, + "maintenance-timer-range": "F15028OTl13MBpwzrskZAZSwl8CZp4d45aW8iCTDEWi7eOGx80oB0h7d", + "transmission-mode-list": [ + { + "transmission-mode-name": "BzmMQphuXPZ0l3vuuGR25pbJWTy8u3r6uNKl51P2JO24Kqr66a8brcNf5dnzgPxLuhYzbFuMmoI6O14MbdYCpDRmQfVZWlCqCASF7mrtC2rj3w5fJVR0qBehI18EmK4RcOwj2QNFSeYVKV2lJMd9nri5tqBP2xyem5qoNd3FjTsWHn9q9nzoGSl1aW", + "transmission-mode-rank": -1815191585, + "supported-as-fixed-configuration": true, + "am-upshift-level": 62, + "tx-power-min": 82, + "am-downshift-level": 31, + "symbol-rate-reduction-factor": -88, + "channel-bandwidth": -858169829, + "xpic-is-avail": false, + "code-rate": 114, + "tx-power-max": 74, + "rx-threshold": -2565, + "modulation-scheme": 18047 + } + ], + "encryption-is-avail": true, + "duplex-distance-list": [ + -316059119 + ], + "atpc-range": 63, + "performance-monitoring-is-avail": false, + "auto-freq-select-is-avail": true, + "tx-frequency-min": 392239594, + "rx-frequency-min": -637161133, + "type-of-equipment": "Ptg3JIpasQmAYTZVOcOCujYhWqsglvuaQK6AlvCNlYfbS67yjN2N6053ipbvMyyuaE4v9zimxxyhExH", + "atpc-is-avail": false, + "supported-radio-signal-id-length": 32226 + }, + "air-interface-current-performance": { + "number-of-current-performance-sets": -86, + "current-performance-data-list": [ + { + "granularity-period": "air-interface-2-0:GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN", + "timestamp": "2020-11-04T23:10:08Z", + "scanner-id": "bh7hRcDRu9tJ50g20jAa6z58kjenBZGF8GWZSzIeI3XG4eIWxi6vK4D4nJjQJ0vRGkJqTjEuft2jHK7fU6KwagBpZMfAMDkkX3CQe8ctCeEbQMqLK3hUbKbaxqLb35o00SJ61NAv26GKKZvu2Fg5hrfGKSSNX8GP0hWTWooQmXB7WYBQDKVN32tNVdtKl1Aeio76EoX0dy79wBZ2dMPgOa4JoxuByW", + "performance-data": { + "snir-max": 77, + "unavailability": -1253587025, + "rx-level-max": 69, + "xpd-max": 71, + "ses": -824177715, + "rf-temp-max": -114, + "tx-level-max": 11, + "es": 632989196, + "tx-level-min": -58, + "tx-level-avg": -38, + "snir-min": 100, + "snir-avg": 4, + "time-period": -1042739949, + "cses": -362461687, + "defect-blocks-sum": -23313, + "rx-level-min": -93, + "rx-level-avg": 11, + "rf-temp-min": 110, + "rf-temp-avg": -121, + "time-xstates-list": [ + { + "time-xstate-sequence-number": -122, + "transmission-mode": "JKs3401vTBAq5pla3YfR9FQyybIsZJKAt4vqXwVQ8n8dMlnIkvzl2iUBtu3s5F2rJyRGWEo41oaFKpn4UPhX7bqAyl2D0W4BmNajryfsXp8zPnvBcMyjQQLobFT3CYFQDP15fhp4yxvfN0RZNhbv0WTbCMf6CMO8tQdAZCFx22FP3", + "time": -1456740921 + } + ], + "xpd-min": -38, + "xpd-avg": -76 + }, + "elapsed-time": "-9223372036854775808", + "suspect-interval-flag": false + } + ] + } + }, + "label": [ + { + "value-name": "NnKG8EpyFaEVvUufyX7ynuq9DSa15XcScWrlAIL8SpVnbpvJmC9BYrKtcMvhKH1WEk962UeVb1amqFXMiZf8qZCCE7LoONck7mja8xXkz7yRFowXnL5FDzahGVxnIJHIX0S6qHiRGIIl6eal081vHbMo", + "value": "jLHUkpSd9QDQ0moI4KHbU232VyC6cS5vvEhP3924RxMRLasIU1THVOBRedPq5MNsq4il6cpXC3Hne150UQHPwjyCog2mUHOdEYyK3QzFT8U71S8VAHDZ03Bhjwve5jrJaRldH" + } + ], + "is-protection-lock-out": true, + "tdm-container-2-0:tdm-container-pac": { + "tdm-container-configuration": { + "maintenance-timer": -807548639, + "problem-kind-severity-list": [ + { + "problem-kind-name": "BQkd3Ky6RUZyslHfvlM3", + "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR" + }, + { + "problem-kind-name": "vjCICEyblcuoSxEZ0J4LmRWQ2Yby9vcEOHmilNlyZPXJetA65ERroFaqElQNJUjpBFIPk3fjL42RyuYD1H4pf6HTsxybjRAVoaCJ6RUJWPAmjqZc0VBf2a0mHqx19ZOpai0g1VZPCrbVK20CQBJSMJ6l1De2CUrE4sM6fDVR5ZEHTEbJ8UtUvz7w4myH8Zddj0jyD6hAXW9RsksAeWuJvu7AQF9Qxe3Iee9KdqkaemTHGmhViEwF8E7Qb8GAn", + "problem-kind-severity": "tdm-container-2-0:SEVERITY_TYPE_CRITICAL" + } + ], + "segment-number": 4811, + "performance-monitoring-is-on": false, + "interface-is-on": true, + "loop-back-kind-on": "tdm-container-2-0:LOOP_BACK_TYPE_NONE", + "interface-name": "44CRck3u6f0zEWSxKJJojOj06E8V4gP1ckKowNSD2K4zyX6iGHyZnRZloZ8k7YdjaYzGLrbG3g7B5dLLVjCa2" + }, + "tdm-container-current-performance": { + "current-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "suspect-interval-flag": false, + "performance-data": "1zPawWXnpMpW4Kc3vPSiw1jl50gN7oI8Ypaum7RDL9rITEDhtvrRwCcBuspCQZCGpN2DMUgy3IgOeTXzggqNTugnWFRExudWhfz31Ht4hJLvuA4LRm", + "timestamp": "2021-02-21T01:20:55Z", + "elapsed-time": "-9223372036854775808", + "scanner-id": "EeJbL5oHeD89FPDB7eeuBPrmyNM2EkTiyutjrR0Fn0P2QkDPySb1zCn7i11WmU6Uhs6IbYoyZ5AHp6oPYzRx46we0x2ej80As6bE5z44wxDND1CtslSokoCkNEy6Fyz7FKDCbIyH7buK4Y5wcXNwdpQ04gYBOxIl9eXkWv" + } + ], + "number-of-current-performance-sets": 13 + }, + "tdm-container-historical-performances": { + "number-of-historical-performance-sets": -30439, + "time-of-latest-change": "2021-06-22T03:10:14Z", + "historical-performance-data-list": [ + { + "granularity-period": "tdm-container-2-0:GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED", + "period-end-time": "2021-10-17T00:41:04Z", + "suspect-interval-flag": true, + "history-data-id": "B11kJcDhrpD7CLPDYIEwD1Xwe7N4PVbqO4Lx9gHAFcz9XoMVYjrBkh0yoNudAxvpC8ODovd4HM5E3Ks13Tvf2vFqaaDDz923hIGG6TCNyzkBjMCex7tAu90FbwaKx4OGMueSgQyOiShBwTIVTbnfcgUfM40b0GRN26FiO5Y6X7Al1ihMlw1qMOFqKFBLdlqgr5q73he0oGehQv3b1XBGD96nOA0UVqaeoslrJzj87xpXUl1OiuuV", + "performance-data": "fxCeC1izOOEdwE9MuKAUlW3zTgnh9iPpPsvjtNKhBom7UoTo0lil9eMVu9cDj120lpjOc35NjkMdIxuILM4USIPmSTS3VM48cfXobU4meIAOg4x1ItNBbvPVoHRbuNky2hW53SsaBUYJQvCyQp1UUJPbqymMlGkgP9dT1F3ur1dhpPI" + } + ] + }, + "tdm-container-current-problems": { + "current-problem-list": [ + { + "sequence-number": 27643, + "problem-name": "OymZ1cjf8VNeMzdcTrU9W7NZtX2Eilo6TCXUPg1", + "problem-severity": "tdm-container-2-0:SEVERITY_TYPE_MAJOR", + "timestamp": "2021-10-12T06:45:31Z" + } + ], + "time-of-latest-change": "2020-12-31T08:26:37Z", + "number-of-current-problems": 51 + }, + "tdm-container-status": { + "loop-back-kind-up": "tdm-container-2-0:LOOP_BACK_TYPE_NOT_YET_DEFINED", + "performance-monitoring-is-up": true, + "interface-status": "tdm-container-2-0:INTERFACE_STATUS_TYPE_NOT_YET_DEFINED", + "statistics-is-up": true + }, + "tdm-container-capability": { + "performance-monitoring-is-avail": false, + "supported-loop-back-kind-list": [ + "tdm-container-2-0:LOOP_BACK_TYPE_BACK_TO_REMOTE" + ], + "supported-tdm-container-kind-list": [ + { + "tdm-container-name": "cRNjmH1tIEUT6JstwjgTK6KfEzvy9DclnZFBGy4gcQ2bzuE5OMRyStFxUa54O9h38WEOnB5zr7KTtgQh3zHN2mcPx9Tdia8qZM7mf4Nz3yswGaOJKvpEKBlhLemVhum88lmop9XszhYgrER32gAMKVVn2hibDwjLRF9gO6Aofrwz5nCZE4LgSyDUHV5ksg6jV7sB62ZltnUrLpqht4xdCa7c54wpkCB7K3JQXA3rYYKJfa0I6pWBz", + "tdm-container-size": -2017265301 + } + ], + "supported-alarm-list": [ + "rt38gDOt4Kgw0I7Zb2b", + "cLyQYCPbpPrIimQzZE2Vgaj8Sq73ki4oVD6M7WPoLg64uWvtspoAzHIsZPnb0ksNPyzWugcgwic06HlyYB0xaIR1p7dprFd8dEWAV8QjqUcwtpWr1WQbEId3Pil8Xq" + ], + "admin-shut-down-is-avail": true, + "maintenance-timer-range": "jOcOpkqk38hvbAt1k4gn4RtlF4MAJbk3ZxJgJ9AEhJ9kcvmozCLwl7R03EtNPNIGcrWVsorJ7tVbYhAxMd37kV0" + } + }, + "address": [ + "4EFhJW3cpogmlMyOZkDcqQ8s" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SOURCE", + "name": [ + { + "value-name": "kxFqw1lPwGXlNEyQ1yYGCdOxHoRefCVr2BRyC5n1LdmqRUgKt6iXk7v1ve8CQ3VKwFi1Ky2vDgVma37v9ptloQfM4noMicxHRHABfu6SKT7MWeiXvDbUtqGxNWjX8IEZqesxIqikbp77DhX0U8UnysMdh5ahGH96NBDo2VIdkPdP62QS2Cfs51FeZHvxoED4g8sa4afgSsYQmOJoqQQnKnBB578lLDpTLR3HUj", + "value": "MDOu0udgUWZaGmD9jKhFo" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "physical-port-reference": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "xAN6b5VQTHw8KHUEB5sMxIDzIkvja6aHGXFSUAAF96NTFzy8wSVWsqnaKTmUZwtxl8h7JKMSIrEo04woWjkoJIqmBM8saCZnC9ulT86BzKRrGoICz2SbCip55xx71pvEqZRj0PMzrET7UBJtvtE0M35JtvQmUlScdCvdrhM", + "value": "Nx0H0C3o5HoJDtsYYjcKE5WRHj40BJTg8MY1g1plAN55gp37I8Rf5OYM7VEAwyRwcHxsIWFaJCg02b" + } + ], + "ltp-augment-1-0:ltp-augment-pac": { + "ltp-augment-configuration": { + "connector": "07wpeqzDCeErNGQsYiiaCfzpi0iDsCNsCbRIBjm5pSw4q", + "equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "local-id": "4mJZ7ro3gsitUYe6u3rvk8W7Pdbm08F4n", + "fd-rule-group": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "W9xG5fAo5eTLILfW21KTbqfPzrrI6HuUR1AWg2cdgXYZJ5ND7xwaPDZg4jY2SsPBtppCstHIrGz2LmFKT3VIy", + "value": "YD5OxQ8mrCEJ6YcNyDl8FZucJgfEQOjHjgvI6EXq8B96rlTZR7Zo6mBHCIekox1HNpiMVfc3Id19yM0hT0GRmhrQZFag44XJt7vomHjWUk5l6YuSQaB4j2Ubz4rv0gftoKRCk2z6ewjdmO5cYygatal27My7UFtipcNBfmItKTy7Hvjy4sIxCVrBzRBtw4EOgrpnFZRpThosNA0R2AgwnH8WzBiXFWLNf3bU2UbNbAgY28H4BXA" + } + ], + "transfer-capacity-pac": "VsL8JN8D4fLcN07FyDpA4kuXDUBtTlEGNhHo4HT1XEdKwkhWXyx1STRnGkRrGv0lNHCJovKd2XXy97nYFUSyFJVl3MNBaNPPuryKWbYY8NpiUM8Ay08dJVzFAe8K1XrngR752XV3LklFYt7wm7C533CDhLfaAGxRpwOsmJv7WIEU3EjpLVnOQRr7uy956GOw4CQiddh9VWWQsfgd2v2SmlRRU0O0yuou6eNb", + "external-managed-id": { + "manager-identifier": "XjPRMMeZ1b9cwqdrZA1CKLSa2js5D2NBlCk7gqYiBZuZqzqh2jL", + "external-managed-uuid": "WEXQXhVtjJWEdgEuyuE2u01UAk3CDPgsl5iim6DFPzc2HQogk2iG3jsDDw79dntylLIHRmfyVrtD9RLlU32XeusSSrT5OmD1ZeJJAQhn9K0iCDDoGxdV2FFM6ySMUnOLBpu3fMroojySX3gDBtqv05hYv1Lhpr3SQpWX3ndsGLcDOt9pOrUHp4FU5" + }, + "client-ltp": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "peer-ltp": "c3794728-dc8b-5233-0c67-0b857c32ada1", + "ltp-in-other-view": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "address": [ + "owI2wvHYT7HpboXDYTi9vVhnPsmrEcbUJLP78o51vNqG3fb21t3wgkT5Efpars52dU1da7eFMwdPMgJNJMjSY4PvjeFCGCFLoGYyF45rBi9fyS2aFdUvhJ0AYG4waJazi87PddhOnq3WaXYP2SdjtdLjLPQWr0vB0uq5HzT5ROT2DJJFtWQW2tgNbYBCQY5ItvO25z7Og0QTBAr4o91qD9" + ] + } + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "local-id": "CddaU2coPvQ2OmR5tRmGt22ExcLAO5JiaOs4QwlG13AIpjNKa1qD3t9sFM3lKEwUsYRbn4Rg7jQwCw8MxzhtUjNr5IMHmiuH9lSohBEoUnMoTUailrLfKzGIhlpwDT5E6P2nizD4OpsHcCZxVDNy4l8lGxJcjOQhDLxVcaZ0sjzEVq3J3Qh74plKOWWZLNhgqG4uQVuafVG2dKL9sU8wjth0i5Z3S8baO7ExV0H2Vg410IakCiJOM0O45NZQO", + "forwarding-domain": [ + { + "uuid": "5ea42646-26ca-afda-19a7-ad7f7cc924e6", + "vlan-fd-1-0:vlan-fd-pac": { + "vlan-fd-capability": { + "multiple-local-bridges-is-avail": false, + "static-entries-on-individual-ports-is-avail": false, + "protocol-frame-format": "vlan-fd-1-0:PROTOCOL_FRAME_FORMAT_TYPE_SNAP_OTHER", + "hybrid-vlan-learning-is-avail": false, + "maximum-number-of-vlan-ids": 13583, + "traffic-classes-is-avail": true, + "supported-sub-layer-protocol-name-list": [ + "vlan-fd-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_EDGE_RELAY_COMPONENT" + ], + "independent-vlan-learning-is-avail": true, + "configurable-port-vlan-id-tagging-is-avail": true, + "overriding-default-port-vlan-id-is-avail": true, + "component-id": 830702206, + "shared-vlan-learning-is-avail": false, + "maximum-number-of-msti": 21515, + "extended-filtering-is-avail": true, + "supported-version": -18361 + }, + "vlan-fd-status": { + "number-of-static-vlan-registrations-cur": 183260486, + "number-of-ports-cur": 20378, + "number-of-dynamic-vlan-registrations-cur": -2062072227, + "fd-status": "vlan-fd-1-0:FD_STATUS_TYPE_TESTING", + "mac-address-cur": "09s3dSThMYId6ONO9GgHlf1SvJrzYcQRlaMyVFQHwqMuezaf8rWlGX53yxCxBkgWv2nqI5Z6vMABdKQd3FzJCEE339sEtItYKIgkN8qaMSDZvldy0EaviOyeX0SrIlhk3qFIyXKcQfblBgTBU365KEjHw306parks6V03x4LNfYooKZaFYfpuqZ1uR7T1y5twSlsqpd5xctVWk5tadT" + } + }, + "fd-port": [ + { + "local-id": "m6crpqPlqiX2N0kIC1qisanCbPOoJax58BpxU6Kkozn4AzMcA5mU7KoazdyjfYgnrFUlLEy2eN6OmSSOPeIWY67ybxJqnZNPxH2ieAkkfq0BbShS6ZHXYGn156stX7auP4NVFZfUi7otZFlXx2UnAhoGfI9dQbHxfmsMezzwGXZxucu17pgHyxnOfo1XzAuHXOt3", + "fd-port": [ + "m6crpqPlqiX2N0kIC1qisanCbPOoJax58BpxU6Kkozn4AzMcA5mU7KoazdyjfYgnrFUlLEy2eN6OmSSOPeIWY67ybxJqnZNPxH2ieAkkfq0BbShS6ZHXYGn156stX7auP4NVFZfUi7otZFlXx2UnAhoGfI9dQbHxfmsMezzwGXZxucu17pgHyxnOfo1XzAuHXOt3" + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "2zVRysmCPfJ6ojEVys2Xl0oWm5LbrOqtfedNyzhnGTt4c8ZCs2rGUQugN7j6VKs2YFPoeYMURfRVfQyAKZgwHKNnR6tEIVGyAnXGlBt5Qk0Y2yyFqO37qQuhPQNpDtQ6QNM3g786j9WmzmTZ2W7sFtBmboLPRtVz8zvoHDn0Eje6G75IW43BqEXB3AiM4de4NJtmeQmL9BRHAWiw", + "value": "lZjZOM2h5HdiVhXwKjKAyvC1ejBbB04WZfOG1QX6p2hkj6Q4qtwYQ8Z5ks8Nk4CcjqSc8HbyJkK2qBYIWvyMvpRPSZvc37oep8rxPCXyWItebrX7WvLkVD1FuwJqv0EU8XkYr9ofRRuUjr17OFjBalgER04f0B10ylY0vf7e" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "fd-port-direction": "core-model-1-4:PORT_DIRECTION_INPUT", + "extension": [ + { + "value-name": "vBp2YtEAxA60XTuVOD1L2uxQz7NJVnqqYQkWjZoIrvAog5b5AcICG7l7f8I2v9slZEaavyKW3dckanhKzRe7Zz66IP85QsrH6tRu1tq5GDhQSqAkhPj8oqeY7e4XGnEFQn9JQrGp4XfPfI9xpsFNKMER0AGzPk6xzfgiGXHDMOk2wtrVNYBqC7hvHY4waa3ChbUX0tsFhMzG70tNQWdt3mYCcU0nW3Zd7L", + "value": "7enEn9d395xWOl9hpv71I12XPXO2WrWWFjA2lGYuDnqrIrA7OH1oAVdpS1jHsgDZr5UMLSgpfyQXZjXG0Y4tLiKvb4cwcPvDVhqy9yXg7GeYZ3wRTBkEL59O1mk53IIQZ0p1rehyUvoLqVDjoPX1MZPFd2KgKl7JdoKEC24xptaQg" + } + ], + "logical-termination-point": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PLANNED", + "label": [ + { + "value-name": "B9hU2hJHAkRVtoFlkUlVVlm9ceErlKpPTHJOYkvyFfm0D1lPNyDITZJX5fgi0G7TnJzd35LAc7AH0VwNt9of074Xnl8n1f8gYItUFeuJe5qeSOUeQilQhpGEKOTDVUTMumG1taKH72N0QH6GRrp9QXNtLz6Gt0kXe0YH3AoaC42kL01vriEa7jDSSJqdBL2QD0xGAOJ4SLpvMi05swf", + "value": "QSrAuJOXmQN0JdGbTpgD3F0HPTMhpUQ7M9I8So6f6L7PQN1J59e0GfHv8lMp7uxUD7UnvSCBEJjmpkYmlcm1jVwr8aJgEg2hfWEKP9dlKwH1Ixn3KJ43EsnNC63ge5ptTW5AXiVH" + } + ], + "role": "DLeNK1IxqqxV5K9ERin9jA15sS2djmnW0BBKDbhVBPQGrRda1skc2", + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "address": [ + "x9QmP3orj0EiCSGewj8tIyWSg4q9AV07WQlDTC55CBn6tW" + ] + } + ], + "layer-protocol-name": [ + "core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_OTU_AND_ODU" + ], + "fc": [ + { + "uuid": "9bc11e2d-913a-2fa6-a64f-f01427c75d88", + "service-priority": "-9223372036854775808", + "supporting-pc": "ZYo83UwihUts04RaRRhux9vdFu4NeDMdBamF5KPeEaywfqy69PsyZYDwsHbGlXMOZ0lWK33hdBFkTei3VLtMJ7i3OlK1aoIao360619cDPowVHrQsND3UN6A1ICb6clufkvelEiQlGfgfyZHluC7hJIijcuqoHUv1hJfOTX1sciHLhh6LT6UuO5O0reg80L2an9Qg6RIb9qWiHUVs0IXGNDy6ROeJA8LX9B5gtOju67N", + "mac-fc-1-0:mac-fc-pac": { + "mac-fc-capability": { + "admin-shut-down-is-avail": false, + "supported-alarm-list": [ + "tkeDYAJ8G4G1pPXzecUGYJzjoHFoCPA59PBZhc7Y8FRxmG6BTShRtI3SpAgTqQRrxkrPwqFF6w4kc3V5V4PpMKh3kpPCfy4NSnuoF93DF0YJ3LHYI" + ] + }, + "mac-fc-status": { + "fc-status": "mac-fc-1-0:FC_STATUS_TYPE_LEARNED" + }, + "mac-fc-current-problems": { + "current-problem-list": [ + { + "sequence-number": 3338, + "problem-name": "PUC9v0D6TgM8avMQlSEjtB7Bm8gVdma38M4DMABFQfFSKjAXb7hxIg84ogRCu2xCGt7t3A0LQGwsZ6q3dzAWPASeRCIdw7Q4APxwiqh86NsXMK0ZjsN93GfMaXZy4HCwx22PscPqR9fDU8DdAieDYth0ihyeYbDndF4xRTXB3cePkJ2V29qSCITNRjTPmw", + "timestamp": "2020-02-09T02:19:36Z", + "problem-severity": "mac-fc-1-0:SEVERITY_TYPE_NOT_YET_DEFINED" + } + ], + "number-of-current-problems": 93, + "time-of-latest-change": "2021-03-17T22:13:07Z" + } + }, + "layer-protocol-name": "core-model-1-4:LAYER_PROTOCOL_NAME_TYPE_PHOTONIC_MEDIA", + "forwarding-direction": "core-model-1-4:FORWARDING_DIRECTION_OMNIDIRECTIONAL", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_UNLOCKED", + "name": [ + { + "value-name": "sITRp08ojXBru6DRX467Dd6e9EvtJHPchAVyA3WLSx4nwI6tMcshhqwq51LGBASK2GjDJfguFlRb3PwHTRQbhmBegfVJPFlSlEnXMDrrYauTR0sKRjV1xp7FEUolsK5Ng", + "value": "C26VlWXHIOIazrlmkTDkyhePvGrAmH3QC1MPXJxFq7IRq3dDWRXn0b4vKv6641Oy2AoRcNpuM7l42qHR9EeaIixsFvqJoeiqHyaLdzfZyA3A0Lr2hxcZHBrm7J6nQgOxOQa1ppSPRVpJyJLQ8PPQr94qK2NAitZYb9RAqBh9pHTXiwFqmn8FodX87CJqYIg9K0CaBTk0s" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE", + "extension": [ + { + "value-name": "fUNM4Z4cQ2YB", + "value": "ewH3HLQPYEWeSs9H4kWQ7AVZEZPHXjBcPi7w3PdTt90" + } + ], + "fc-route": "1vd2NMBSP6VDKNMpijjgVuVTOeKVXWYQscT7YmRFkMa4zWmJ7xZ21MNHSxvIttqNxbMnxD2ShcOQ02r7Ai1BXOjPdOpz9QmH", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "configuration-and-switch-control": [ + "piUhWvjhBrw0ofR5B0L" + ], + "local-id": "6vHfDomSNFJtHIZwsWQU52LMIBg58Il65UmJiIB6fcrOUicf639c5NYFg6KoGXnMRJn1jQ7q3yeXQqcXle1i1RXhPHywwVanwppPfo7iPd8xvkmRyn9z6", + "lower-level-fc": [ + "9bc11e2d-913a-2fa6-a64f-f01427c75d88" + ], + "fc-switch": [ + { + "local-id": "2A17BJcKcFIO2fbHDsaAywLONB2GFxZzZSystL4xiNllUp2pR4ZiAC6fe0WLpVkpFTR9wWGOBU1njVM", + "wait-to-restore-time": "-9223372036854775808", + "profile-proxy": [ + "2pz78NzXmzAXbw7nmVKGOZvDH25WoYEin6inTRdfiN4ucbJyYt6EkBh1DmY2cucAAuPue2BwQySUBBsAWqeg1oaEK0yPuLh576rl9UKRsCL465w2vCbo0d2Ddtsz6JwdPXzQSjHcNk8TpEOMhRa945M9qeAwX7JF4avOl5T9p1UHyAlHjwQftDoTRZpHY0eUbBBwGuxYnsxV2SCegltJYSCHJ1gzUut5Y4twq1uOlTBfM6t2rXM" + ], + "control-parameters": { + "reversion-mode": "core-model-1-4:REVERSION_MODE_NON-REVERTIVE", + "prot-type": "DRa3J78AKFQ570Iu7G0t4gldLSLSH5RcO17y9f8LMRITRinQZfj3vE98oU0XRS1GL86Uf6y1X8VGrawqiQlNmuWDhOA8yuGkCE6SLwLAFyh6JNo1vJGK6unnjPnJj43OA2ylyjWdS5jtSHmgj20ppfEAW1j8XfWyhu", + "hold-off-time": "-9223372036854775808", + "wait-to-revert-time": "-9223372036854775808", + "network-scheme-specification": "NzVxE60xOeFZ9FgyMU8INrQDGE3P8OFOosd2yeres6dBDt1hf903tIy1nBRnpo3FQhIov1DP0IjD4kVjmNeHnMIKfr0FP3kxkUOPOjxO1Ij526hgTnX92yThZTOHX16hVUZJ5op76J40Pd9Bt6KvwvEwht56ubnhYe13" + }, + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "switch-selection-reason": "core-model-1-4:SWITCH_STATE_REASON_NONE", + "name": [ + { + "value-name": "ZLkrniHtbveAqrR5kB6IpFw0zqfKl1MdM7w1h5vsAJ302MYmnW4EBtw2TLM6MzjqyQsHVXawy5oBReP73MLE7azSVlYIMa8c0sUNp4bQ1sjKG8JBUn8TxHLs2K2HUbTMDNrVJDDC5WnD46fRlnKS4olY0nFMqryW6ZRQumkziz5eyk5TzIMv67tYm1KNsaBy1kgwGBXYa2cIeauNSga", + "value": "fEGtFq8ZAJxt3OZJhPHjRMUYWoDGEOoLk4eZmnQO6nh239LcYlwH7qFVGbtcZRXjN3a9q0Xpf6rbfcndpLVw3sjJDMV" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_ACTIVE", + "switch-selects-ports": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "extension": [ + { + "value-name": "weM0ekn0m8yaSZUs75OZyMeVrLyQ4MYBSCBZPYRbYpdRgZbf5Z7DDlq46YM2DCvnf7mWX57WudFKcIS9HZEdc59aVWcqyIGFHUBw0BkuOZ7SHZ2hQGm2Dv4rjgJSQhppc1Wcugya8x2HoWYevc80Icj1l3Lbkbto4pAyx1AFyCn", + "value": "rdbWqcW0o8TJbxNnAgMEFe44fEKO87LzcOnu0cmpkg0nFNKf3oTADPFKlhytgbVs0aXSmb9yraV6XydTWYlrN048hCuxOpSGzHyOSImcKaaHIoswmOQ2GU2YwwncN7KfOb3zLhLvrV49bxyqdosTiuJGT7LG6vNVGQmj07OrUTt6i1wvpQozc8f570E5or0Waegal4tgPWe7PKu6sTFETNKSFgX3HQSJ48Ti4fyM3ELTggZI1FmMs6E7et" + } + ], + "prot-type": "PKfzNYUKvepHSIWVPOmM0WFSguberyfgamHPkBzHQYgAy5ngTJ2TGzDW3G2u69Cgvj5PNwwDnN5VSsbLb5wJE1xHHz3NIxVdRS2wgr1D66zYqCBBIZdmSKWrkZ6Up188L2E1lFFrL6hbIKEiBRFtutUGkSAJLARwDvqQaXiN3rQDcvWNet9AWVg8ORSzrBYW7gN9dXX8gFDs2r", + "reversion-mode": "core-model-1-4:REVERSION_MODE_REVERTIVE", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_PENDING_REMOVAL", + "configuration-and-switch-control": "Hg6iafR4Bk1zhu6HnsvIm7Y0dr2EoGV5PTnZ863KrWbIqhpOCNoYMmYZOSv4ri28bp7cw2OPYZpg9OWLtlBfHr6nbtsuLuCPLJ19DHYByfKH", + "internal-configuration-and-switch-control": "GkpTVFteDQq7aUKwxza8sjM1afApZ9lyuDjhaMwNvWMxQx4fY6ojp2krhUJ94WHqz0HJFdxa1bHSIDZzJfS1h4krZ3AV09dr1UbG0AI1LiLmVLVx0NqaRKBIO3vGcI7dvaMvKuowMaSAVFZNspPb9iMPlhvxSvLfFpCqT0Oyay0XdZDxgsAhLm76wuwoZ9v", + "label": [ + { + "value-name": "vSNiWXjeP8DXf48u9nAy9nXcP8WtVRXqCDBqsUEi3a7a6fwfC6GLtvQbDMEyvtR76sxze4JheQjkXQszW8div3t8HZz4sqcrKBSYFt8Ljr68hyH6yMo3HR3gICl2UptE0dvyGDjZ4h7ePHkflAiVjmb1Qw3LVxhOKMejppamHaAoRME4mOZF23GTrJEf8V3LA94ZyedfoNE7z", + "value": "4NY3sTY0MqCiFK5AnFJjxhqKxOq3OZ5SFVN7OE0s4CKJeIbCnUVMbdxA2XvIOAstw7tcLtFH5pij7tNnnB1zOy1Inxi47KxvKSIvdn5iEnuER9TeKUFztH9I6sMd4cBO4jciyhscEWQv6BKIwh9RYjz4LmaPyLwuWIMuZ7yD3h91SLCo2LfTWHPz3RhtuNXivCMuJl7EC8ymLaLGNSrKz8ju0AXmnNFKpje" + } + ], + "selected-fc-port": [ + { + "local-id": "SQcbzT5M7ltA404QXg21SPMggAuaHDyrlKDUvIyCVTcRLhzApuC9boqsQMC", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "paRKMuwh45TZQYIC7acwEOGP5YhNKLd1V5Lzr9Qw6CnXA6rH8D5MkDBhBT4dwaek7ZTy1K47m", + "value": "WOqnnyTsc5YNmzyiN5s1pzTi8MU4L8wAWOXbeIEqNu693EsIJMC0mnbm15qM6Xm2DceKMKaAegB9NVKoIep4tAiuxI8DxnybzEVdoXNu6hvTc7hUlyQO08ayRj3gGBr77ekv40R2hnVtu4gIDYov7z3QKZ6isqhAwtXstPuC4" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_DISABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_LOCK_PASSIVE", + "extension": [ + { + "value-name": "i7bmBaxMTam5lIsNcgQ067uaRP8gi5St43HF6ejZoxXJgppsF7sDeXO5EOdOL6hH1Ze75yZmXOXd5exKmSfAHVylCD1nBb5v2ju7JllH9jMexcQT4YmLLMYnhZLTaIocTKcv6x47IQe824T6U7JGTH3bzGWJgcOaW0F2pJ28rggmk1k794N2DI5cp1OxdCH2Ce41P619m9vzbPGkLleh3ktkdhSjLrlfGp9noawCkT3", + "value": "BJHe4Vv07Zkl8cEUEZ9cgizElY9xJcUkWBzSo4SwVdR4hvQVmR7C2z9npiU8mOlahU3FQNbMSUIahq5D958bwhyVrk3N0gY9aTPTGSxzN7B4xGAGDIS9Zi4iv05v83Fj" + } + ], + "logical-termination-point": [ + "c3794728-dc8b-5233-0c67-0b857c32ada1" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_INSTALLED", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "6qme8RcpmbYiTAhSKBa1byu91QQvsUNqc9Ed0JCeMswy2FqMhsFs01t1Rbpk5cKalhndSZrErY", + "value": "lvuZMOE7PFAIxM7JJjlLwu8Bm73TqTXLokC38gaPOCydgxWSR9DfEMR0LML4xJHV3kQ3s0TgvjlLQhDzr9P5VyXycJuJkcwfonaQf3ZKekw5u1ENalKXLHoXiSGuWdJksU3HP2s4eY1IRxv2T7ZwPnuZ82m475hzRkhzeJvszw3i3ykOGcdnrHezBAEJyVah7rIl2dNtBQMFh6lPay4C7ibJLHkbuusBObOQgCcSkYptW" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_OMNIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "Pi1stFuCetYabyHpfxBG3M2HssbCCzOrRHTcmgHsJxCU5cccBNLwzNd1fh" + ], + "is-internal-port": true, + "role": "U9RI40RKRBcac2ZbiEdnt2vJH04Ksc1edKXhCGUl96wd8npq1CNuEa5l295ulYJyByI5eCrfAXsIcR05lFzZHEdJOae11Psun2ztw0I6PaG12y6fdx7M4cvKmBDfq5BNZb8v3QBL19EVHDaM29y6l4IIxmPYjrDbuMGx", + "address": [ + "BWTIxQf5qNB8xKZIHhdzeAHa7SYtWlAxhlfG3mEt2ftzRshyBmZQXz04rYqgkSNt5V299GCbN6LEq25Uh4KeDCaXAAdMkS8qNazXI38v1L9sG6eXbYbGAdv2OIH0BPqgRZ5z3644R5oxcCufsxVULjPr1wrudKD4BIDwOztGwR5ImAXG7LBK4ibXOvk1fXXQFsnm1" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "hold-off-time": "-9223372036854775808", + "switch-control": "core-model-1-4:SWITCH_CONTROL_NORMAL", + "address": [ + "gVryRyYDBChuSpuAq1W4lVAk13nXfavvXO3PmTkXvtkfSOPaPDe2qOmsSKhZMMuCspjOaDEF7YUREB2l6gnx5JRPl8G0N2CfrVWBqs" + ] + } + ], + "supported-link": [ + "M60IHq2HQkB7gYipAJVs83kdwcZ7RM4vT46su82ctDjBut14dOodRIqfMhevWi1Hm71Rf33Azfc3I5ZNLn0v6jKKAZgwhhdEofnvai6JpaM0fLN01Gv7Z8Jz" + ], + "label": [ + { + "value-name": "QKBv3PS3m8gjhoO0GMAOVcOxfqjziLw8wZwrPgu3pDfG13yzP0nCd42smlTE6pNugbV5ri1QVgwOj4n0XCCaGEu2RnzYEekUpgSQyTHl159k2ocZ0O1zlvtcK22g8naxvUgVFXgG2pSW", + "value": "4VFLW66jAa3u5bDsm2X8iKO70m2hfY4bMBWAIUUi5PEa19ufcjnm33u3qwcxmgI8RxJrrvJocgqdpUktdAQ8Dc3VAfkWn357sGyT3aafqAtPvFbAf1JT5EGFU1BhWyoo6X997bppMK69phJFakqfZYULZo2NOj3N8dW7odw2XC" + } + ], + "vlan-fc-1-0:vlan-fc-pac": { + "vlan-fc-capability": { + "supported-sub-layer-protocol-name-list": [ + "vlan-fc-1-0:SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT" + ] + } + }, + "is-protection-lock-out": true, + "external-managed-id": { + "manager-identifier": "1A7UiWsXz13iPaUhiFeshkAC0T660LDTeKFwz8u01pjQzd0SKec1qMvqxuoxf1itEYSdYedZDoHdBHXeW97eNDFk73Re51AJZsOXG1ObiwoT5d71m789KNlRQ4XN6xo5Z4Vx6J", + "external-managed-uuid": "g7Z1d516r8etS1OBKTypZ6O4XSRnQBY6IP8VU92ehgH1anCUg2j70Z4QKV5Ao3z7KzUxAODR5cK7zm1IgcPh4T7OHcg57P4JgZ8QNLzKXjJpxC7OPO5LA4z9gPefxjYFa7wPK5sAhbROOQuvEr" + }, + "fc-port": [ + { + "local-id": "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S", + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_SHUTTING_DOWN", + "name": [ + { + "value-name": "FlIJBljn2rxeuZ2Btw68z4RVOED5Ana7ISQc59z7t7eXYgrkEps5mb0aQw7iT9hC10OY9f5umjkdrDx62Z3o34qTsx3lGcPzcDpmTvI7G2c0FJ6AB9YE5hpxGkLfwAGJ66XRtFY9A39fE7", + "value": "79GLeP2EvepCLZjmXpbOSQFTqIVym2fu3N7iC2O0gdCT4N72ciIW1nQrXDRcF7yJMFThzH9IMLBIrBCDTlsUAaeqN5Ck4aVJHO0hn9Z1MsKd3eJPrbJ2dPs0VWkR68" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "nBPjsVdZJTIZcGwY1Najfl17aQLpb5WqyLJ0yWS9Hs8M0FCTkMcr75r9V4q61ewAR7A", + "value": "3kyLEHpEe1pyNBSMGjNun5AokZYb6rB2L1FiI4WO5mfKP7woqbSNgk3Ab2Eal7c68RgJVdxSrMC8T0wbbgQrtUUEOyO9F07NJooE" + } + ], + "logical-termination-point": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "selection-priority": "-9223372036854775808", + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "port-of-internal-fc": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ], + "label": [ + { + "value-name": "FWsWcBN5g8Ht3W4Kn7mhkbBkYxxQvFibtDZx6FDmNkII8MtwUPNeShrROYzkDJvYmmwt19PGlxpucK06rFcjWD2DBBX6lk5zGt2AuKgP9xj", + "value": "hbjAJwMx9O2DiZBDby4K17kvRsd00oe9AxKb3wA5cDIuub7GK4iDbu1UWeUWC064yI7BeIGqlgVPkUn4YFz11AVYOIMjIKfgsnKy5iZqrM7LyvPp2gi4R6UxOGQor6xLlhkqzbQ0PXDfkk" + } + ], + "is-protection-lock-out": false, + "fc-port-direction": "core-model-1-4:PORT_DIRECTION_BIDIRECTIONAL", + "fc-route-feeds-fc-port-egress": [ + "4Pmz1Xn1J3pjSU4cxNJf1wTegRJeJSROz6fA3vtEyTXiF1ucG5rzCcNS3oZF9QlIOAbR5wnvhkOWei0MokmSw1KsiB7rks98Uc0SJfn0AbXGmXsK9GCGIe80Qfj2zsalF2dgiBgSE5q03SK4ze" + ], + "is-internal-port": true, + "role": "14zEZjW37E42Y3Cg5ddLoVR4kq6aEN4FJDcIO0MNwIPuLrLIxQmVDdSY", + "address": [ + "02u0rF3zon2ihH6Hn7mge1ZCqw5eUROVMiN5QREeezon8m4vtiLHbLcBhhH31wYNGESwvoCBX0Y5eUtHcepnRBR0Ky4LW2qDGa13zEwowmmLgPkk3JANcjNXRRAGU1js3koCQUTf9fShWcCRO4E0nsP6jqM5j5qmiGR0sKfBRZTNcnE0rbSODIUO0HMjE4FWKoXc84OR4zE8Wb0neKbRs5xkEbDjfb7Zz4cA1SrXrYX" + ], + "fc-port": [ + "9lS13Zk5yEfUbaZrsAIc7NC7ImKNVYxWbiX6h9bIOjuZttrVW973OBaxXUcLLJHO1xVbG6TuhnmKQNxMOwHC7S15EdIhXh6QO11nZUJh9510SzEy5mb56c2KqK2fT05A1ZX0Ty93E3VoCrXzF0wLcyouaiJ4iHwbGt3r1dmxg9OKBLbgDIUP8acbsV7CuDN2YIuRNIh3S" + ] + } + ], + "address": [ + "lBglc3kQ29pZs039baxeZK0lL0qe15EmHMHTP1BR31InTEp4GWbyzbTk3br4hXiYJSJyLchO5R4Znt34heCQhnbkyugHrrxaj8A4lJLisHhQadUrjwaBLlNbP4T8nqaGrKCMlf4NWeDYrxiKVsdGN1SuXDukVESmom0JCXoqb2purH6f9kVOdFaaaEm6i6sysl9WixnlzMPTlN8u7V" + ] + } + ], + "administrative-state": "core-model-1-4:ADMINISTRATIVE_STATE_LOCKED", + "name": [ + { + "value-name": "eZW8S6uV2KHoSDm1BTvVXLr5TPEWWeQb5EbYLFLNhs415q3ycql93EeWtSTp6Bs4fv2S3Fyk7Ce429u6zPfCllqO5b54Mq82VaMYPkbOOpKJyePZV5tgqTWw51ARjILfKqdrCo7rNRadXZ4SWx0nrOLoHd71VLgxblYNK56pWgvL8zv47vjqb4OShVT4y1BJnrp7wvokMT5MtAQsX2S86y1glMcUOODbfUaEqyY4kWQNoyfeAZezx7PSU1", + "value": "IHiLPcVtuljyF7gkwPzChqQQXYxQSzus8" + } + ], + "operational-state": "core-model-1-4:OPERATIONAL_STATE_ENABLED", + "administrative-control": "core-model-1-4:ADMINISTRATIVE_CONTROL_QUIESCENT", + "extension": [ + { + "value-name": "hj1NRrz", + "value": "QkLM5M9aRHymZw4A3q0lF4tOfmtZN3wvfh9d3inMZV9YrdqmvjIafbYmyrldmRBC0KP43cIU0RLrW3OrmottzrQZL357VGBNiqRdvs8vjLW8OCz303wsmejZioZ5WASfTCsg4sLfdznU4PP4Kdo6sIYKYXPVpH2ajmqfP3vUDSOHHvDrJ2q3CgNA5CnmbhxnEPCtT7nw045zrITaKbdmrSPwm4SymhV07pt0xIopEtQ6bJ8OMe2d6RBtWm1i" + } + ], + "logical-termination-point": [ + "cb398360-6165-86b2-5b57-2fea3e77edb6" + ], + "mac-fd-1-0:mac-fd-pac": { + "mac-fd-capability": { + "admin-shut-down-is-avail": false, + "maintenance-timer-range": "ZlU5hckllMFHbdjgxGOylgswJgvr9P593Sec4qyh4dZfqavXQbo3rIA2Y5t8NrhQjn2fOAwSGn06xnWfzcjSUTNKQ8S", + "maximum-number-of-entries": -1396932233, + "supported-alarm-list": [ + "z1dShgZ5IoPoLPnj5bywnJo9u3TdcEILFWwW4vTETB3xiiQntgTI0aJmdCzp8abG6zu24oGQZBf9L5x6dqO5sxsG2T5238I1Hd3EtCmk5BtRy0XLjERL3br54p80pQ17VXDorZ" + ] + }, + "mac-fd-status": { + "number-of-dynamic-entries-cur": -1682662369, + "mac-address-cur": "dhI1XjY0b4PWGEV06YHLuiLE4vvLXjWbBEcqP2q078PFMKFKAfn4p0AlwX6th2wKyBanDtoCBd", + "fd-status": "mac-fd-1-0:FD_STATUS_TYPE_TESTING", + "number-of-mac-registrations-cur": -1496683169, + "number-of-static-entries-cur": 1685714326 + }, + "mac-fd-current-problems": { + "current-problem-list": [ + { + "sequence-number": -14694, + "problem-severity": "mac-fd-1-0:SEVERITY_TYPE_WARNING", + "problem-name": "qWnmloPHUMFfVIEx8fIwK3UnEZwTGdTY99dnp24bGJiCjW9s3JQOMC3qBzc9N58O6lbnf7yVRJx2FzmBachXOkfhTrjyprnnEqLTybOhUejsNyVPCcEjwUAhdTIuc5KQnnJVyqclEoFjWA8yENRazkjE511aYL0m8Chy2mLyKqJGSR6wwYyXaSu7LvhK8iYgM7OGts6dSPLDyS15IsUScgZXL", + "timestamp": "2021-04-16T04:00:31Z" + } + ] + } + }, + "lifecycle-state": "core-model-1-4:LIFECYCLE_STATE_POTENTIAL_AVAILABLE", + "local-id": "ThsSiEADI4Wr6ioUSFwiOwFiIwfik905ikXAYy6GC2ZAcnn4ULfB9UTRq0aC12HkmEUk40SzUR1Y7g3T1au24fUmgWYhYFtkbo", + "lower-level-fd": [ + "5ea42646-26ca-afda-19a7-ad7f7cc924e6" + ], + "label": [ + { + "value-name": "5XR0iddCETJUd7BFJT5sB3q9LaA7CIMHyvzQIMseF49L3CqFnn7Zix0VHA3baHKI4jzM5T1DP", + "value": "gTwyqUVxLeWL1vd4GnDi6HBxmyqf3" + } + ], + "external-managed-id": { + "manager-identifier": "S7tlP19z95ZjFMjEB2ReVlb0YNg484h0bLdSEejOjbZYXauqcmx0HI0xn8uo", + "external-managed-uuid": "Lgnouf3IzJ2KISzKfSXBpXaZPAfYWD2zTqYfx1QYKKAku2WJULcjAnaqPpgL2acOAa303LYFvrR0tOJfzWyabIsS0Av2KHQdKMdNx3lVmcVP0w4skuun5Wf5oK78kQl4uqJ1m4WIhJq98uBkR5AWT" + }, + "address": [ + "DuudKTS5CQhdYX0cZ5bJHEFVxPqdZViuhNz2yj729gg0dg45dfOUTlHq20v1VOnctW61g64hmchskmxxBdkvy1NA1jtWZQ" + ] + } + ], + "label": [ + { + "value-name": "8B1MNOzcqb5t8K4miDQc03IKeAT2zqDH1wmGcVSD6XY6A2lSy34q6Mace36FlBfn7B3cwWHuTFslANd8R9qPWA22v0IQCX5By9NWXuiI2K4Cq9K9j2Q7CK9ZLJHnGNY6OEUD04l2PhE7rg8KiYRUJ0LuKlJi0zhO53j68E8XWNWn347m2Q8DQU7s", + "value": "ID7aMNfP6lXCuMyhINkEMyHCHcltcFAUaz4WmcMkxJW1ona6anLPVkjCwwXIcxve6rbkDPE3qBWOY7V0myHhK1M8xJJB96Q7x1k3IY68rUXhTKafaRpUK3" + } + ], + "external-managed-id": { + "manager-identifier": "R7taq660DmxUkPaC3o7zcea9TtvsZVdQ2GSlEZl9dS3xH59LugcGmeP8HcAy7Nh2l9nZ0I05s4C11DEvMQc841gE6Ic5vlZQveHnWItgE5aFBObnxfnB8w7eeccKxbs2q2ieCLvgIFNblQyS5WmektsyFEadIv78xhm92JhDg4OCNfmS3I6n4rVJX6OFBOF05210DiDMejg1yCMBdKYhbUS1SHGlnels8ekLwXxChNwPiajvUhM63EZV", + "external-managed-uuid": "xgsLtVTH7F554AeK6V2gep2w30zHZnNxvfiZ2cyaJE7F6dhc8bkfAmLDncdmr0LX74W28m4JSboYoG2oRmDkBgXYlacM2YJ2Ux42U0DM31DrzFHj2lDDBAtWDxBxvkzhSvbEvOiyIVRhBzAvMd0fGl4jSFQgZixJFJf3pqB7llpOMRbyXbFDwJOhowxgO4RmFZp5p0cCdtrZlupaG5N4GtlXZS5GPW2uVrzcjEPp78gkCGuaD97bCs" + }, + "top-level-equipment": [ + "c942beda-266b-a670-ca1b-e78a3653775b" + ], + "address": [ + "fAzGdIbXKN3HiLSaHPTQ6r1Gqv6TSmj8WLO9tS65x2MINxSmeD4l4X1vsZgdlrlhc1qFTpLjjp16WTk3xgotdpQxo6KCqXTCZcaKtV3McWK1I447csApRrW7pHJPwvkvHu82p3OB0qC" + ] + } +} \ No newline at end of file diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.xml b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.xml new file mode 100644 index 000000000..a14372201 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ControlConstruct-data-test.xml @@ -0,0 +1,4725 @@ + + y5RPrOmv1V3ocQui0h2qHoVg2J2VQmzhjq6K6k7872obKKuK2waBUYKWzEJp0jGcBEOIYWI6QY9BIDlCao64eQTNmC4nNLrphfZg3zeUxnv71IK36I7kqS7Mn41aPsr6IieLRkFgA2otL0wJI + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + 4a6d6e3f-51b5-6582-034d-e87748001085 + 371eda64-3aa3-f78a-2711-ea75d567381f + 6UaS1ywHile82TKiwR20LhKG3Raiwx3vjdnkL + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + kR7jEig7qpF7S5ZYTX4ycwNPiRkjpVqJMx2iIah0AX7kUYaFOed0CTHVK2e1PELt4FLMQVMiKLuEKFbyLoqoh8jT2pVRWykSdXwVKa5mVA0F735Ksw8JwjvqBqhxYtp3iVR35WpSoiynlv8F18hpkMPV4YsUjJXCwGxtvWlL6L9kh9Za9gstU9oY8ISrrI3PgsaLhwxn9yziHrlQHNcuWAs4jdoCVjs3MCP30ei2MSklbF3SkfehQHd1U + DHNXKrsrmkFEmroHEzeIkzXyIF7VGTpcs495vtwROcnavEJadYKppHY7fXUVRbZjf1oCuVliZBtmf4okU8KjIAiXx5KggKAoLQ0fDeqCPTR4PfoKo0V6AeV0jFgrhQP2zQacWAHLlyH2NXM3YI1qOWqZCHqLpgGYYQ3UiKxviexX3c11U2sAZSztrZeJ7UH5CKRMmo9EuHCyTvrFxTfoEGJXFYGFKgKfSuTfK3TfCnFn + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 485ddcfd-8e40-0021-4ded-622c0d9a41be + + iFplx2uhAx1KQp9TUs69MJUNx13k14ScBip8cThNjix9IzUC1SMOtyt0rollk5pVnO3szlfSDE1ddNI7FmV9Ug1mxez + kYNHMQ1d3g6zVZM0Nu7kQUtD3nRABqrVoev2XwfSNdrA56sKsA4bmqOpNFZo5rklxPfmduf0AGsFEVp7nliJL69qD8PAr1VZI2 + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + 6DddDgT7Nj5s79GPtpR5O6eNnsfKUbv1GI + + wPXGvaGhUh5vBI5zdZlfnQX046DpL5nhMkP9unrowoT86ZHjQUy5Kn5HtBYeylndx5m1sFhZ3371UGkKsLP58MECnCIOP61m3ffvVwuQrtSl1cXmXErYr5AGzauo8nKbDZHqn3gPp82id0E2E50X2swBDSZDgBPLAobQrjFQsH1xzFz6Ls3 + MrphkgVASKdk8oarHHa1pbyYQ04tk0h6ryoDOj5yViTVGVmgDwhUzIKqAHTUH2S0sgE9rJHe2s9AowQ1U0VuAxMaexWNAOO2XkbgVL + + + RpFH5aL9kdh2h6ZRhrubu8RIDOsAmn7dEFMCPqL9DUbUS3D9u7kZ84zLS1l6gkjNZ5pOn2P0W1MO4qXqpahxeIaYCv4SQfxHcWoAYdsM6fA2xqtOsKmylwwXUsHCHfjT3HtUNWGT39WszhgTTure1XbNhTpY0AR3adPX9wI4xEw6NMRHhiVa7ZPoS6mKG5NIivFj1gnqUToAyfhHx4Rw3yUNE8xk5d3oIAHBQ51DQp5owm53qOrmed + LIFECYCLE_STATE_INSTALLED + + za4XZjaeoyN3mOsraxb0uwAnSgnU1zHsBLpt5AHl0uoebIFl8QdCeFS7WfTPHB9aeqDb0cxSHN7KwE5Ena8BQ0AE8mtHPuR3UvfNHMFgrE0XbXty0C1QuCuuQPbFj3IdqX07Byg348Sf6eN6QPOcjiH1ZSGiNgnd6gdHGtCKBn0zBNxjulnFv4GuPeEuv2IBaVaQgNAJ2AjvgQOC4baz8Q4P5IjsC13MOduWS5GU + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + Sdz5iM0GmAoPjlQO37TsD7pyp6RLk4N5hmaz0a8eKw3VJLBMSm6ntoNTuEEGAjLRFVix5qLIOOvxz7cjtiyPGdI2 + eBjym25alD7DoPs5dREc3QFeomMC4PlbqFJEzGGUjOqAvKFIBjUx1sDqOpUL6fWoMx3mdJ8ppqZVaEvEPi3RKG9q53b4aZsXonbC7bToCSbMoHqdZtWB151Z853j4v8tTjXSmQ8YAkDY133Sp0tiXuh6rkhwIpRtAGdWolVYxqOylJiKBL3z8cxzpOX7 + + ADMINISTRATIVE_CONTROL_QUIESCENT + + xFeEO1HHSgDwNwtrJv0NCAA5ErmomUQLrWifXROH8jdNQyer37eyzHvd8JCnvk8Wgi45aSNa4SXMr4dm3jMC09P9SrwnDwkTPoRR8w1cgQYHM3WPnArnKhoCAU0ejcZ8sIZAeSNvID4nHScWtEj5NIHfuztNDlN53EGawlF7QBupuylPcxUR7B7B + shGN4MJBkT + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
1sNn18c5F6XMA4gvox3ctPN41G4yY2WRnB7oBjl9iaVK637vsaHW0mST2OkSR8J6JQuk2HtcShOYcVtF52tXodRi2baLjMRUudeoUAAMRgL3b6Ah93exhXIb0SWbwF5TSchMMKrv04qca1lbWrB5pjgp34BAJylBKCgwez1fDkjFdER95kfmDnEGs783FtFqYNWceQrR2Cofg7oervA4
+ + 25ace2b9-d4fa-cc90-ef62-106ed4d4d673 + XDntVe3QlNq8wQ1tDMFrSGFXVW9AuXSks7NfdQ6ywwH2mAoSmVb6BQVoF4Y91ItlH9BUZHtvd2qrCGbRBmP4dLtSHj1BUnWBwxwneRTjLbDfJO6cbOgorB88V1JHoGaM5GakpVv268iHXgT041ovDowqpfZGN + kELFJS6hspZLIs4OGAj8YmmeHG8oskh + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + tP09KmlaSGInI424ioUCK2w8y1Q0W1hhQiqAEDDpjlMTpGPI5CkHEII4Bq4prmGiEYKaBfzMBeySUnARZMrwm9AXrFmT1U3FKNPd3p0wDyopNRhNvIjSJTPaq43rQ66BMOOH5G5I6l7U4gzAYSsHD9K45NnWMmpqa5ZfMWPShOEm5dWVXgvthfpfUM + y8sYaxPpbLeWV3A90G5VDdqYmFnBs2E026RdwGCzkRv7MYgMwdz1i00ExngZhMSkLJx9h9ItS6Aw4Qas3KtdCtS1J0T0MLkxuRGD1h7LnHijqsLl4ezGIrIjjBj5eEvAnbdgsk2HUc + + u57pA + + x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER + e4EieUx3MKxm0QeSuFGD4xFAAeWgPbWV7sdlfKh1nGffou7S1Fo643yFhmNYyBLF4YTjA2cXIr4YN3JPI7NFadcjAZ90tUFpSqIksMa25e1TiCISJnxTAB4atd2W7IlR0V3tHdnMkgxCSfmBCUm5nifQviMCSZlSUpdtCt8WJFqCNN5hzkmWCuN0MrCwrQgdfmzJPHyyeY21D0b4cx1O1GOFZj3i9kwgG5ZnEpNSgQMTIXYU + + QJRqbWeKopSmE6tlN + B7WSUNN6nzo6G6Pxx1lLDK3nYHujU9VvgRo2wb8TCxZiDPIaI3OdFRAwqWPk5CHml5oR8pKLWCVzjvCTrq669yurncDsOkGaiX1qmE3i8RJrmdcNDaMEA85XkAq9VYbdV4vhIzrQq39E + + ADMINISTRATIVE_CONTROL_UNLOCK + nJk4yAPyxRO2mcqEtGD1tEmemQjmgUwDvQA3i + + 7xzNiczBJYYmu25Kymg7CSoMHfy7cPebeGQwSqZtgXPKRUnh9vgLfFpXUX46Eb9SJRgt97Wp4D2OppXyMeb1TAYNpVL3YMNHD3aNa647B6N0nCr9 + C3Bd1gCWTyMFltbhvQjtMq4T5X8Ioaq0d25eaA340PBlbMCGuWahe62c32Ujcccp6hwhJrlJ8W5jBzS5nUeu08G4bsffwrxDJ3Ukmf4u31GEsyCIsI4kRKgU4w9AXG5yBZTXePkiI0OayqKS9O4SqlMuRNXGm2fP20N + + -9223372036854775808 + FORWARDING_DIRECTION_OMNIDIRECTIONAL + + T3zMi1Ncey6QTbY8Q3Gli3perwp3T4bM7LqhE6lSwkApvrplm5GE8YKAm2vg6zUecdnQjJAH326ytvTPtrmBh63E8rMf0ylcLIUWruDuoBUSZFHs7V3g2ZM2qqhiZuuCdgzwK410GNSFtsZsnUIhTnkbNttMYPh35QzHUsIsgsZJUY3aTLrE0LIO73s + LIFECYCLE_STATE_POTENTIAL_BUSY + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + pAvkKscdBygEFv7g8FTR0pIqDUsWqYjPyO1b8dgJMwgjTnr1UlSUCtcgfF4FDnn43ofbCvN + + -9223372036854775808 + + TJ8QrHqe28GiAy1no4x9HYOACwoJzIGkkG3LftZhByz36simoPwYGk + iIOT9wrmQ7pueSlwlT5oRqHeGoKE4W4ewS7Fhq1ZpitEaPavA7Mkplq6J2KOYHUmzU1IkVIK53ogKqLdxxxXSXVuZxaPe4bGY4obRYVXUbdEtQJ0ggP05CuWaELoBO4rTlCCjpz5sEKVvlODCvDz80wiE9y7YDzJQ + + ADMINISTRATIVE_CONTROL_QUIESCENT + RAopp3gA7zBjXRRUIeq81aoJW9jL7d8QOo75jgxiP8BEZkyHyYHs853XffIesIX86W5qcCI1KcxBw5bXVShWQkT5ztbU48Ua50s9ub37fAALyLItwZpmc + + 54QsxZk3sI0jZcCh8v6zl0xSC5Gq4ti1p8tP7NSrnSLm5fv5CCwYu3 + 79op5JHY9HjYO6I8lsTHx0cuDO0Bb4ja5Ar2j10sIjiph0xClqbSqnf34fwfbQhgiIiBJaWsteRC7o6sGhcYFrUBzqQK871qHb2rmQTH4Cc30inyAswfLqQkJy5RxYa694xnUiXQU9MUr9k1tR8f9QzSgwKNuMUwQjTKCQs + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OMNIDIRECTIONAL +
gDcJmlYwbqosW07rMTXCdIeHrzdiNot32GFg1vM4
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + 0Nuqrs7o3zYL0JQGz6PkTGO0zs42YsuRfYhyqgWtPV7PwPnXWdhPL5HkpDeg5I7lzgTZxQleDk419jYXw7Fh4mut0IB5jAiSR4JgMWuh8qiiK878fMib9 + 1YaMlRArq3n405W6k6rp0uExHnr2aX53W7Q9YisodPsdUhjfnCEf6aFFx6HIVELJLtTJDl0R3k4XBg4QKA6JLLoaJYKwCoggR9ZnmRepcafNqbEbMCUpfarY0cuvACLjLCG0uUpG5wlnIRqmtcDIn4yfgVKIxv2b0Ibuvs2sZfPz7gNssq3HmBXDoHdW5fZ5Q2rdutFlImMHCzaXRdweGlJ53WT0cK5UMo78RMmr88 + DAbsroYFWkgTfdE7ho4b2si3bWpC4pLzZW1jcSY147UbkriBPmMKGWNRSctOB7gtV9M01C1XJN83eiwWEiGc6l3YxxN0w3lr47j6Kk3l84hemNaT6Q54393A + LIFECYCLE_STATE_INSTALLED + + PORT_DIRECTION_BIDIRECTIONAL + REVERSION_MODE_NON-REVERTIVE + + w1m8YxI9prd1zZX4g6mqgYyn7F2pQb3m4pu2X5bewg76fX2nVgN3flqe0sDIvG5zXruMwxTVO0T3XVjK36Nis6wky13Wz0npjRbQhWD5Xw0MjjpmicxKiVWJXRFoR2NbMRTVNo0CUSh54GjmSQY3EUMtErRvlFyZojUbHMOtxXytDSPnAFqercH5vztJ61I + dvxU9doyaW1FGI3hntvPy5U3wnMChnYuKngLBEkLtdj1WmijHG0fLVbhaPLj4BNOY4szAEdVRwXNKfZrNZzyMCHPrk0wVOcMKwdcaq82O5HqcyS0qjq4V0TekUC8APUcd7goqgi6dZxqqhiQAAUnsGBNs6NUVzY0GeoYvG5Iyu0YLaOdLAA583SA9xmW6kXFzdDWUAws4xqHH6UkGmqPiahrAEgGY5dpiRdcjKwg9OXQUS3t6laonjIXX + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + FuQr0Hzfkf5Fyw3LVI40vyC4EG7zo0m4n4nfLWmY4jDCHyfC9jvERZAoFI + 4Ac0P8n4UbiKfCfJjOYOPhbl1aWpIw6EYaEOjTK543Pcx4VIKUor3zN4KJlk7sY5CCLVnw0jrPvQMryodXQgoDl0eGkd0iiDM4q9srtL8QBM91bmQ1v7wQ7CosPhCZUp3kqnDL0MCBqLvB0duvkSdsmBMbSo3EN6R6muRm8tQz7d27qpCLhP5EiRH3fKHVJq15 + + -9223372036854775808 + L4QSef9l42bfxdQ1tNE + + 2NR6ywvR2nY24tCqo0dlQL4mdUDoVGmXm5WUCrEwPCqLX33m3gzLTvZZiCn5bB3xHRrbaXHRs7up2yDXG5JAAIrSdGYohTNQC61E4Aw + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + nHOHFqTBLTF28TQiMO1KS4TNxjv0f0GuIu3nUXYyQvAQpi9 + + -9223372036854775808 + + 5H9FctDq8nPjc82X7OzgA1sxr8STGT2DAbaEEF4M3LXfUScTyL98Ftx6BiR9bTNE4PaAv7 + LIFECYCLE_STATE_PLANNED + 2b454936-1b31-1d28-4dda-1d3475708a0e + bXBn1SOXxG0zvk6mNSpbXrRK6TKhUsc5qNlry1 + + -9223372036854775808 + + qS4FEWKxunyu2211vbSFnEkTA933wahWVluz9eZvBpZwrTxX4hujNO4oP0rmaAa5WExXSotmNkK75h42qqde6iuViV9kvkijYH9J5uXSOHZMQVG8lTmr3QfdDoq1AIcrpl2mPZewy6ag1 + ofBLyxtNK74a0EKc51y7nf6CLwIVMBL3QfGpM94o88z0NbdSdL0A0Y4EnEz18d4YkKf6MkuMkVN770ScDKEvAJ1XfBRnGVe0ytYcFsY0gDZfvRr8B5wcGx1W0SbGGpy + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + GyBi8Hq3E7PjhY91iD04fSvYAcZJkRt0h4aqLstiAatR0CLagLfvEKl6OdP04i1le3D0o6aY8DH0fsbv6qTC26IJjqJfACBPG6P45ZUduB6JWh72z0EB6eciEWxfy0467L2cCWp6qvHmEOgdOUHN0T5FPCMoDImKlpWPddNDBuZfb7lZ12E2VBzL6l1BVndgE15SeSvHenPpuahocNi7pRKv4D6ZTb7xccpqWN022PswZBU3o42FVF2 + + fEUsNgL + D7KJMJxTwmc2e7ATn0mv7OFmkrG7zs9czTNdul61HbVNiwyFoV2vBHJN0iMAKVEbPsojFmcmx82QwAnUniiYZTDSbpkNdYY2imdXBic8q6QOG6A4oSUfEq7PHjvUatOkIUajcmjus2i08SWoDJDh9DYQWtDYPrjxdtIpH1T13b13WYrzz5IAAyio2VnJfy8s1QSIJDJFPCIDsac17MBzkUXeHcXWK5pDN9dpMW4 + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
OaVNWom9icn0gdOTa5wYeKnTyjeZ5lTMnOzccWln0IfgV3161yW7ab0IufIzstdPhN1lBmABXPJSLLQMbMTlXMVr1vTlY627T4tmi3PfLz0ocQ2nvVAszvMs1FNZDQ7pMsL4nBc824w6UythmVKNqwgj3VbGLa5puJmRkqSeugkgPFy3AaQSGYcBUf9xpfXTYbCaBug5LAdsfLnPV5zt
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_FORCED +
1mdehkFGO
+ wSbwbQp0kuAzb10hcNFxJzdgQ6LubHFzrJ5uznmTJWkVQk4U0BrJ3FZLDCfOjVgCwl65AsQkh377n31fEkYHRPsvkAbDnr8TN6QfzyzIByPRBI6gUXPMEahYKsu7UC0zIIG9g8 +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
Z7zppkhq0liryWVpCK6YFdNzdszUrSjiRSHg4YH5cRwKOj2iW0gB5V2agB4zlnSc7zl4qU1uLp6rI0Jw0RZ5F17VDbmYqe3qGou6avsVUyfuzYTrISpnUwapIwf0LaqjqUpAhRw3hDqQtjib3HqX5AeN7mOKwe3X1kpa3VekqE3UPd5SMwIRYOF5alHzrCosWNDRBJ41f7V4cTOYhwPflmdnHMO1pcldSYXlz1mO0aKc
+ false +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + Sf4m9wU0NaudiRbOjmN86mhTwn2y5IgXXccYBYQg8lti4E6fTUnR8wL + MIy7Dvav0AbNOoCPf3QDavQuW3kfDeaqOIps5rX620LQpfFEjn9lT0PHV9WzfZR4z8wxAlDCmgkLvRhGej1ZbJz6Snx0mg4WhAlRNYl96FMtoWaC73CiMbgxyGxNWBB53WWQM9SSGwd4snHzrbJ5e0CMy1rmC2sxQooCq8m6EAb7PKy8Vie9 + K5PAuy6kxSi0Xil1kvryo1hdDHvPCf8mkXXOoV9NGjNDB8END6mUZv7vcvcOKl3XaSDyFMdlX1Rr9neFlsrdPq + N + LIFECYCLE_STATE_PLANNED + + x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER + TERMINATION_DIRECTION_SOURCE + + TF4ZncOcoSbRQ17Qes8a77pSTNJTbmpX2lWpxCCNvFFdyM4Ff4PebfYWUHP5462YrQnYlRMIojVX5RucWjiZygWsQLqMSkKb3ZagJOY77LW4DqhzKzqaImvy0VcK7WV2N5iwLgwS2sXxL66nFoxfL2FDPRnPFaRt8aRTinMkIBRtHPQe6fuRa9uZ1 + GyTyT1ALVS0z5IaObRwT5C9rtjBPauqR2jhOdRz8BrzGaJvds17pvgRYrsFBO5kIgBwtkXtWp2urLRE5KLvfTm5kGCOuH84QKB + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + + QRJYIHPCtq1lWoPNBw8szGUStWg33igM90KKzre3R8gNwXs7uBzV9lNCiVydeOZfGBZ826bUerzKh2SLDjyMxdhP9P2fv2m4vecykfsyG1 + XV2Aye8dLmusnbuuyoQuU4GkoVEWux7jt9MTnU608ssnvPR45IqZM7b3UPZgn6AQ8mBn8Io92QwyFguLYUCCTGxGvxWKvwsDK41LEhUG7i6Fqsigf + + + + true + + XisY3NEwjlpxsPkj5ptDrxoUoKLmNc6Cvzsye7Wxsl5U3h58GqD0Y1UmEyAjKGN77gGdnuLHQItTZzTyZpyPisbWSD7DcVCjbaxqFa7vSAgJ11h1qPQBaUx2xFxJs2VDck3Ru2eeCuXEo7xGWfhY9HTzeiaGkXjxheoDgDRSZHofOVWCbdtcUmL8wOORLZgV5wql1a61Rm8Fi49liCx4Qb5nZL6CLexIKY4M02FRoNoySxT22rYSu3f + -13 + dXsrnacd6Qd0n4hasPURBOT2NMoITRx7 + + -4485 + -1627250019 + b737f45c-5824-79ef-f58d-6a5a991aeab9 + b737f45c-5824-79ef-f58d-6a5a991aeab9 + ARP_PROXY_TYPE_NOT_YET_DEFINED + Sig4nuWuPaHS685syzsZnzZZiyYIkqJcIRgXdcs3f1Nl9KGHk0yHzxzJXxrhY2lyUBo7GQ2VRI8TkOsEG1e7qNQocax2cTtYmRY + b737f45c-5824-79ef-f58d-6a5a991aeab9 + false + 842391170 + LOOP_BACK_TYPE_NONE + + tTHxaKRREBslum08KI2t81aZr5TWmMgPxQfHAYq6zTr47r4Ka6diZf9jl3fHHnoedvNNu5M3YdZYx4Iz2NRU3SdgNkPuH5AVBfA5le0bs09RWJqQx9Cs1PAP1pbJuEw5TY2ed3ixVroJ3OrsX4UQLmxNDJo7nU58SZfXUxuPYSqTyKl + SEVERITY_TYPE_WARNING + + false + false + 19992 + + + TERMINATION_STATE_LP_CAN_NEVER_TERMINATE +
GQPDAd13IM7BpDSbjSlipMKz2ZdN0G6yoNbY0dTBRSc8vXjHPEZ6qBFttS8lqeTG2XxU2qvTb
+ false +
+ TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + W9pZ9EbzlG +
B20uX0hjsPXu3uqR47xZ4J2kwNPe1mwuowZdp8oRXleTQECML1DHKyU8lBmeXSBehsrGAIpq3DjLaNqNOVnqthyHSVVIFoWWQfujXMJThUwjHW7nKuNdD
+ c931723f-d4e9-a03a-492e-a4b6db919794 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 5eeb813c-3883-fd46-fff7-5c616b5420d2 + 371eda64-3aa3-f78a-2711-ea75d567381f + 5rYeOYu6oZBt0AexhS1kWtUFwZ2GziAwJyCqo7w + LIFECYCLE_STATE_INSTALLED + + 5iEtqVrVqdp4UQTv80ihwdzg5icHQO6VYKhhyAcYNBVzkO4sOmJlraBwkN5btb6kNfBlPNcuo73IV72CtEXUOqi15fcriaL6qmj71vCpCF0qNUU8qJV79586dkxvuaBMwVUxiwPNbH5QBZR2IE9JJhPWtfkXpVKWIwlT2aG5RLWlKFfkjg3UxSR073PxYrlzXGkRJ0XsLLFn + UHBaKvzueruh9T8AezqMThnT6QwRnL9ikKk48UqmlUwuFEXT5nyYwVJDD7u1Swb4gv0ghqDDd1ZSxOEC34sARbdnazg + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 4ace155c-6c04-f585-d9ec-d6a845794520 + + 6ib2L5AiXCYoVrUwRxWgwkVur3l1iCJoUUjxSTPHvG5iZZPQoDYMYT9hPma7YUvKGOiqHZ75F4nw4 + nkAdZq78HOuSVlEi5c7fDGfCDMHTjDXyPpLOPKWxyjhlEVEB7DRCbY7PKOIVrxt8P7XERL3q4cLA7h47UNB6LINnonbPMwYBDN8vybNvoqXnITmuGQsjq7zPuKw9gmKM9K9AWWXceUrOGGjmwDyWL7D7JagRwTDGDM8rA5vPRPDxvOMTskH5jl42vlLT6prB3zVEEqto7YVCNzn7L + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + kWhdUfapMraUdB7KvtqzLvWQgvMz302nOksJzD8dWb7aM6M9r5IcAEVI1Hh5zbknvN6Wi7a6i98W8V5r0NEsjrac0r9zCuW09VWj2Yhc0q80l5rdK5F3oP7o8hXCDUCEPrXJheVhwVhR0JWCGB + + oEiP2BRfzFaDY2BZ4lrMBscK49z37ppw3HdYa45JKfeAhPzmaS0EkcooeQslfRJirW8B1edDlrdDhER + xRXJ4m8i4sDjbftCbC6cQjP3KUGTrxdQh2zlgzvk10Ddf7HrJNvr6duJ73uqszgJ + + + 613NJLdtSCCKNmhsvzSePaLiIl8UE4IC5DpHou296ETL126otYDj8gBRBKD7GlKER9d7EfgCU1oN4ubxkOIs5cbyOOGu2i0Trd0Xt9AnaQa6clEw2eYZq2peQXBSfBDzPwwiF6FHOHO0UkoWqnNRp5X72y0a2 + LIFECYCLE_STATE_POTENTIAL_BUSY + + 0XbXymCBRwo79EA3rimkpOELI00XmPZnE2kcoON8k3flzPgTZCdorK21K2Q6JHlfJyjZm67z2eUtWbmNFscYceZO8HUKg8ZZGbRU9Qtb5gxTjTGYdKXpQOdRo0BE0swGDnANdWQa4nVn9udm62EXRRO7JhDJB9h7oSMCGCEKSs7TWkf2nTZ6DF5eOIQqS7xgZbKxNhhxJoqFByzYjrW + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + JR1f1yey8UfOV90bYqyDhPI7XD + PNzcoi6DjEJRME6sr8sCYT3B2Kc9zPHgugtSzznK5ZCKvAcWAFqyyl2A66KxNjOhr910IgDFffpKHCyi9RIHcC9aILAv4oEwpxo7O1E384OQye0H5AoadpcN + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + 1nK7iz5DupOM9C34uBzyKlFqQun8CI8E5TDosI1W8HA9bvdFYEdARL1H7gHKYQgWJTc3BdRBUjK6OXDMtRncugTBotdfbt3MefPIsyjeR4cxTQjfzyrVGdo5GCcJXfvcucMOK5Ut170NPb2gCt3iyrf63jP1yk5UwRI8ODt + Clvjxxr9SujrNzxRSfKjzHdYqOY6jsONNj6cIpdtLxMyYbhIqT10s7QSVOZ68FTWRR0z8eUTLGjJSBrimlaPk0H7PydX66LXPMoX0jQDZ9mJCF2ZS4Oc5njMOwBUufJj17gTiYwa0KTChNtaShmPxytl447rbQK4PTX8RliJXbmfRPhJZDqo3TJ8PIz1qb5f43nOgFpeJLl + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
7tIbmjbb1K4jNayK5WqltPr4tMwOgz8o2Izo1KsUmw51GDLDr3ZNTiRmXg2dPatSKU8DwApSZuMx7xbzB2emc5A9lCf3MIVoD311wqUnUyU155syZGMcEmdRYsUC3P0GL1H9jtwd1q7Zorpf04rEqFnpZiT2ZUACNaL7D9cxAjoQLF5DJp92WwrVGcQG6qaMAWT655vxhTfUqdx2uG4icn5TzVrGm
+ + 4ebe457b-f9b0-e393-fff0-bfb9473970e3 + FfbTFChkjonhmYaWabhKq2qN4cHvtSh17kUFXcZ8seqO5 + Y89J81N46xLaNOgnFIeMlBD2PMgHtaksjm3jnIntf8vUPM9mmo8HZLKOxSnS2HclVfFiP2D431RSN069geQ7ZsNoca8fKlAFs7Qi2te5uXP9QVi6116SlT8y4gNOBflWfbehxke1iV38Id6Jects6B02RFQlM3h1fnaMHgFR3IZLWYm22Pu8im2aTSvyWEr31uPAKmsO5jrT9GVcnikGwnIi75QVJ9YCDFco2w + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + ufbjXpLw7Xv4BDvb4h5COJNl6OgyrnCNuG6j5JQ4yd09QocMF9pmT4zZSPpb41Zzz5SFHIBfVCpE0tixDzToEkfo2EA6xrx7oqE50flOJCkJ5C9A4UYIfd6hJGf9ZNgo5Ml51GLLa5m8AnIEiHepMkGoTVxSAN8FruLs2o5dmklOHVkRuy8hSOFLC4w4REKa8nCbLAo7MBVlw7d1Flay2HbwLHAumkEuH8xlAVkmo8INfNGV0It2p + q2e1osd2WN2m0D9kZyszdImTDnBYhSuIUIBa2GcZt6dtJmOBU8a7QxStUtr3dOLZom9r3diokvK3RqEMyPLpeEK0Z435SP4g3eHYrZfLuRHehl0H2 + + 2Z3WhRSlynPjxQqRK5GO + + x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER + tviDLr49b3h4kUkgOhWcXNVQtqK58vSC1a7Et4Fx7WBrIOHoXvAMavuDWfIWCsyvvy9YCGnBDZ2dFBCCYcg8ALDo0dkCFL82j91VQowlfqyMTagJfxJPimdarxMYaM1tW2gEiMRq4p4PslyHS9o2vBcO0YNbDOwrIN5SrOaw5fdxAE6kNumbXyZQoMT1spk2chVE552bkfAUTH6z3sKT0JJhoCaQTvT6EOCKLEN6LnSx4Z60jQTc + + jPoReDzwCEeyfnoR1W3hQAdPiAz9w6dHOBq26ZqIvE8K1xBUlwbbYoSgRrifpvWd6m7cdxUIb3k5sVZFj3QirIqi1IxidlwbzDfMb2me5yjplb4FeMXFmfQfYfx3B3f2zuHCw3Qtu2KPdGurkj6GzOVp4l + xgzzP48js42Oy4ynh7SIr3G8unVTj8eQpFh6Bqq4usS2wihFp1fR5NRzaEltNrbc6tiILAE72o9qyqXYscHp0yQ243wRuz3t2e3FOHMJXN1v6Zly32PVsFYxJmo5VkyQqBv6aaP7XJv3AQtvLir5YpCzDTEy5dgvGMBROjQL2dHuWaZzliEbH9Kc2oLZt1u2F5TtgB7aHOEDQw4bOImoR6ALndKI76KM4v8k77nGV + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + Pg3748zHncBefxo6pJxEqI380NL6tzVaQY9M7ItmUWt2tJ0KkphL7kT87w6t6TvOJFAIfW5aSq4e94Qtu76BkSJroHMmAiakPL24zZ6jhaxifoMJnKcHCO1TvNf6XqiM3cJu4PNl0lE7BiIY2UyxAzi6ex4cPeQKqreuh2I9fm8QEQGyC6X5Ff3MN7YudGfv8tShnAiCWqks8TSKZQPx5SjKR97WHmsHHcY5M8zAyMUGFMjwu03sLe + + I3HmyhVyhvrKfpNyyNyTYVna9V0Z0KlIF25eb0Etn65DnS3VGtOwo3ypYqhYaCzQxEWIwAbUyhp + 1kIHOx64swujXL9ZfIPEeDfL6qxEzOsB8aaOz8T2Ffdu0mt75bEjOTWMblrL9LeaVoYnpRp46CqYQTYVWC7DnVpyhIjqtpshOrE5a399xzZfkP3hjaUG5bfeUqxnQZEwqaBt5KCCbtSnjVwCXijUuq1o + + -9223372036854775808 + FORWARDING_DIRECTION_BIDIRECTIONAL + + L3q4ZxHEzQIVIBRsjGMTezJa5Xi075pS0PORmvvNd5IVHsn002M6BvgykyqjvP3nEReTeBGsHhfgBv8txUz0hPrBfJMKzP75ydQNOp7vGmL9RMCgG39QSsj7b6JCVQIu3q9RP8fnuS + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + S4BUvvTs09IFOzPsxk1R0HIJLgDSbdr4i2QFpB7hLHXr8MMGZFpRm7A7fdRrqinAcd7BPeTsNQLWuput4LkiLUh0Z9rirOSEU07B603MIGAd64G2HTlsFCtFLMP5BzBnrIYyBTcbzMoxIXspQNSnhdUVZJSsjtPK3NawGmI886xQVZ8DE01O5VJ4xtpQWesRUvgsRYASW0ASRInoAgcF4NCBg1j47LN183u01WKQWkAGVX4ve83iN + + -9223372036854775808 + + eE0md3n3NPmM1kvDgddCgED0tL7R7Zflw8AJbXERNSDGd9jlmpXv3snodu7klfyRn8sq5YhKRVqWWCha16FWyUcLocXCrvtGDO6BModvbwr70A91GPP6BTJ + XHugcXWID3bijgNuM7tMHCFojmmV86N5NhmR6irKdC2wTH0xOtkw6ZMpe8cmeZrTgNLnYcZbHTI + + ADMINISTRATIVE_CONTROL_UNLOCK + utPYvGRSrPx7r9SXWQBjB8gs68LO1PfnaXlGvcyW253l6Nb2wMm7UurSC4GvUNS4KdK7hb3b8YxfMIhimvh8ZI0tEyYydQvYV75di1ojZNyDnHNJ54R4EJqjhoJv7el2mi7wboPbbnGrXu22qUY5DogNFZaM6vGkFOQR4G + + Y7nbFj0MEDPyB5gP607oLvwB4 + 9zvQXtXkEuDE999YzKVQrTIyiu3G5ZM7qhPoCM + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
ifN8Pp3xQO7h6BcFzcjyCsnS41tc2zQkGvknMnMC4UL2nYHO20mwkBpovKsxjaKRF4fjk1WoNzqbx0Zz0e6dHnBc74Ci6m9EigXCaL0Xlj8Sj0kb6ioNx00wWCO2QPy86wLghD5CWenf6zrcJPZgHRMvlsqb9YcfuXnEst8hznoFWPRxxIN6ArCVLUZVSb2f0qTsLTBkh0R5HAD6iidKKHynBxilIdAIDl2g7Esow
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + 503YwAcj3KlD6fLEISSgG4erKCtmZ9049V2xo6RrQc4WkHB2rla7poq90TnR2nV3jQBHWs0FwWBQD4KWpUVGblPb6430sQ3DywcnYc2v8vdDAYzRKmyVHfZFkUFECAh37tqXxkkxHya9o + 8XPPWHyQI7T5ViTumHM5tq735hn3goNoeu52bDSLCLQq4CUibzfFZfAWwXREewUs1Zu4umQ60ywWaj6mKdTBslxQjpupVoROfdTJrBIr96fcply1zjC1E2SPreeev5VKaOmCh43iabuswUt5d6ZS8JzrXOxkLs5W8jqpnlIxw4Z3Zl04rZWrAoKqc + KXCHLK + LIFECYCLE_STATE_POTENTIAL_BUSY + + PORT_DIRECTION_BIDIRECTIONAL + REVERSION_MODE_REVERTIVE + + 18XrWwGV3SPIwraFu90M7xYj4GR6H7HIgw14UAZXsGxR7IwuRx8Q47a1FT7e1HX95Qd0qcXTSvCR58dOFeFCdHDKsCYtjNCpEHh4TePDBrnGssvZG2BLB6v3BuxUh1bNJsSuzz0aTfRlzec88OTJMpMnLba25dIOysa7129M + S7J6cRe0KXE1CUMNWHS9pyzRBGKDIxNAwozIfNAZD7171NUXmFYL5yCG6fcOMRhifQTuvtl0Ae7tUUqgzh2wPwdNLhup8LIfBtB6WW7p3eSX0bdzs769EbWhkiHs3hzEKaDy6KX1QIYRTcidbgmPjaZDty5wPw3rGGZFiPG8xFRiJavUqRCKTBfm1dLQJG9qm85wPDEmaoETy1OQSisMLI0MVDCEjLWxLT3BxAPHYm + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + tgc5PYSe9y9Ot5dS9CMGydQcyvI75QCrZGwGxgMGOWm91rT23GIuLrybWgiTZM + QtQw0YbyE7MN0dz297DDK43V0jeTa060lOpdNADrHp7HvyBEFe9piccaniWyb2ywQXCvxfX6xWF2uhy1nHiGLuI8NEGYy7mh4YMueBADpgFTp5M + + -9223372036854775808 + AJW4d59NYBDWmOBC1nO4kEvXg9Gea6CKQyH3wQQujmjGaUa49Q8uuvrLEZRO6tqWU7RqXAM9W5H6ZR21z2vWxOz3OqJULaIF9r571 + + t0k4Bbk3jR1zkYg9FEjdhHPEoeRAgMBBNNFgZSbaBdKV3S4IpfWyWDccSVM0zfBm38vU0G4BLGwOrsxQzlgnYsAIfeIOmj3hsy3k67WSGkG7FdP6q5uppW7E2Iso1vxlVAy2AmU8GA7dGWk6TOnaCn + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + N3GEYxZZCiQqJrOtR0DtQfbtR3xTr4n6Z4KQBKH52xwEQkZHdC33JeoBhVmARKGJOjzh3gnXFTBw5t5i58dPeCiwxE6poF84YzeTHtQmekKjNQCKQPr5rJBRgzgE6gBWPPPoiyKwKvHpdj1 + + -9223372036854775808 + + 6T74pYuwU2q3l0mCkFaAtyW081PvTYmRKuV1sipekPhFPw99bjCxSqpSreoc5K4H6RIz97FlWX1El2NwmpV6PkY9relwZh5X9NoaU4wITpmer2CNjyT1SS2b6nHXFMNGrbQdfmW8Lae54RSohEp1ordmGMcdrZTSaK6iYUqCWxH1orhx5yytZLQxy2DZ1wJ38HlZBEBqbajrBAYz8w2ZaKoA + LIFECYCLE_STATE_PLANNED + 2b454936-1b31-1d28-4dda-1d3475708a0e + t4LMrQffkrgm7fDRDa5kw68eukL0DWP60tSrj0yvrGRqWm9zweTVl11HdMHQIoOARzT2zrxS0haWvbnUp8PC2QbfvSY59EGS5zVETkoTtqPZB4T1cAveiHuNrkTAYzl408ATsREWhlNTpGMC8hQqYceqw7SnydjylLkGCYCMkhxJXjlXs4nrgtJNAt20HlzUYLAtJ4fVlMFaXS7pWnIdQrSjVUju7Ko5vRy7VF2hjzjgsrGgOolEIdXvZ9 + + -9223372036854775808 + + 1rxqaBySOpls0Dv2WWEwUdwj7vlSUVoVeWdoxM8d3mG4Zb6W0CkMHR5Peiz05XWjT1IiNIwRW4NW7LK7oWU5FRMU2dU73IrWK17pJv8GrVuyz6GPUsMAbzudEglHZMwBND0o094rWqZnoxcjRZL3q784ntMefiPUNQjFRf6FyX3Wnf766S9 + ZiBfDftTpjF41YJSePxMEAATIA0Os1lkjOzXV2Ikdfoee76kOwYk6ye + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + rpIlGu5mcooCkHMetmgWonEb21WrnctOub92G7gSvFmHm1VQnc + + 38dT1dH2HZiy8X17TLEgT0mEIUWzDKhGSusLz1Ng0XP1VI8GlEWeFaKn5zOIj6h3AJO2KtiDqZEdz + TUiQ0P0D4XcTyvZPqrqet2HExZv3d5HYRSGKHzfMwrx4OoLeH3k3Y1HvS4zX18WT0CvAbKeA3LwR9aXQ5hT3asr2xS0y0Oj + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_INPUT +
qHWlssctC1bIiXDsp4nOWffP3yIlfbHxSDTcYXFsZQ2hFGC5CZLr60g9rQmG1W5LrQXpOuSFcMWSsqPXhAontwwUmLsfHx08gPq4jaJnWxfhQ4e7xuvS0TMeE6tdDleTaEPlOqICQYTGU7Njta3t4PHAV2Orn2cxGUSmktY2jKI5JohdqkGuag5XiLgGNt5lnQzzjxCC9czTsQ6TbEfdUca5XrDKMIX1y
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_NORMAL +
z3pez6c0dyh9xVDDpegOmNALSmxojSNSNc6maamfIvp7r2CQ8KwmxY7hdxFwpko4pmqzwFH6a66B0Ij1lInSGn2TUzpb
+ dT6k3pxG16eoHLzUlMnVhIXxPtZ5Zaz5VxpQWOwPUK6tnFnIjKDAltZ2OQ0GSzLN62DVQ2KCMQX2ncKGXg8aBZ4hP4XzvAmCuSpcU1OySDs7Q5OFlOPOOL5vQV5dnjPS36WX8Do0gQ76VNL8CsOi6UNWHK1W4RG7PDXXgdPwVPvJu8R6BygHk4v1GwXKfwK59HUhUKNHraqVjaUUIat26QVNmKpu +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
acQkNjqpNUsgEQrrm4gFfb1FchnKU49W8ZhWazdXtG60oxrCtI9ALa7PrvrezAaHAjvKSJAehGeF5x9zfj1St9HVE895JbEbv2NnDfBUVHr1fAsmTlffuW
+ false +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + usMc4fOegFWin6g1zzbCw4k9D5FhviRZCD3yTJN1oBjMArF91QDxUXGqVdHinr9ZWdxHWcIdO2Zolwpmf3L1SjrFo1XLk7CgcaY0myd + blDwbLdNs24xGZJu4GqvodsuCGn04zWfUrDY5RDpTzXryGNufdZvqjZVZeN3NBjA3Oq0F3pqCeK2Vxx2Lox3IpYHDLLjnWLiKbii6zAAOkuBS1Dviay0zxH5akoxg9PTcZ3azDKnYeYI8tdqvLq5aZ2lkqKsrsdvrgFSUp7Sv5ADqFVWidTtdVGpdqRwS51cdG475cZs9r6AY1oh7hCk4iJ9AsFlpGxDmBC + XJfBHuUZd0I9SL9qBLDBDQ7FGAvTG7FwIM7phTgmLRwvCxN6ajHN9GkQ8PJPWhdE3cVc54zIVXdpm1n + uLPVJhMDx3KOxWKPxThZyCh69MsDoDaSgZGS8kvFn7lU3XBAQKrgnAmoeG1vj4fs3Vk47HBuOPgJMJbvuuLJ507bG1G05Wk0JEWRdqdTfmCT5For92262aaI3QA0MU0oqPfDfkomG0fMxE5zy8FAaPidyL5cF5AYMHt12SfIKvmi1kRzso9C6jHw4MICJbsoSVhUNxvq2JA33juvHDZFOybLcMnWXPkPCBCi0ZI2IiXMBr9aW1ILzLwMxL + LIFECYCLE_STATE_INSTALLED + + x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER + TERMINATION_DIRECTION_SOURCE + + s4qOBI2QLGRvZbbgc01 + ZEEbGu4U3hXvmfbXX6FAMw6LH91L9V99rOcZigTlyIJMYMBNSggEEmievbZE69FpXSo70alyS4kIQVoB3EfISxOnBNTzOrZDjfLjh6K22WKKK0lNwtnoSbDtRx3xYU399OkrM4tGT5iDYwiuZGTRJwdsVg0La3MbJ7un3P3OVdrLJKfIi0s1pFukNmYXpK00JvnFcil7v + + ADMINISTRATIVE_CONTROL_QUIESCENT + + 2OFVO8r35haF127W + Kf9tytFI7r6OwXQcvDSD5VAe57f8e3uQjEkR7ZrfqxVOnD0SgSvdGXsL5zTbDg2WUmFTd60EwVkTydLH58UD5ep2OaerqgfcCUYPSYloMy9cLUTIUGm0UL2IN81eo + + + + 23 + false + + kaXxmEY5H41ziUNTD2q5qAS6jsNy55Cq8rPu5FsFJl618TMLVcJdNBk6V7E148j4z0zFGTch6ibebXSYaB3P4fN0ejTbs4f1WGyuzKMyUXM5MEVO7RDc6q4lKPo4TD5HkEcLgYjbN68rC4gKNLWT4S6OHuSs0P9ktl5KbhVQfVaJRqtEbh + SEVERITY_TYPE_MINOR + + true + + G_826_TYPE_UAS + GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN + 1004349240 + -1165658109 + + + + TERMINATION_STATE_TERMINATION_STATE_UNKNOWN +
AV7VbTll56fRP2pb2jOWUB5VHl40e68O1fBd0XyY3FHKH6NBpBqb5n7EIbwOhFubM6gFVGDQlkBVigoHSOTP3SlE3SscpXf3VvIQblypx1cPiAp2paRk24YXWr1lg9p
+ true +
+ TERMINATION_DIRECTION_BIDIRECTIONAL + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + FSgiunFhOKKKrlkHMackI3LSCaf9roS6g1pCg4U4GwGZR0Gv2K +
rdjsQwHP58qTEJRR6sQ9XhBwxd0f9TxBYQ3GeKwjLW4pyW8EoYNd7gCxtCMvnb6l1127LqjwenNMjNqAE5NLmhaHUXc90avUbp1XPklVI1ITO0
+ 8c0b5632-f6b1-1b90-dc8d-4334c833133c + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 485ddcfd-8e40-0021-4ded-622c0d9a41be + 371eda64-3aa3-f78a-2711-ea75d567381f + 0tOpkd7tgIE0Xyg9wXQupByLngcqe0d6lTvx6C0fcE71cfbAc1Wtuu7KKjaQbfWw8s37W3e1Ad2Mt5fFZb1tG85ijf9vu51DpXCeSQfk3h7wfe4ep5zX5F8oU9Tp6NUwCoKmeZH98GynUutbr31wI9UCiGTolFUX3wj9n0joGJDsd7EEaFaSOWmYC8mXN9MJx6SVY3bxMOZZVv + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + KGD5KB86t2VEbapRNPeilr5LjOai4l0GTELDfMKJOxfRHxBumPMzgJcAxnKCALathWZoAJZg8f8PEJc0yYrHAD97STBswMOFAN42o3ioaidO1hGs871IDaHvVbQkPEZhjVjzRBXTU2ANk87sg82 + aJg6U6iJC90NXbmOFbzr69eqieKqmMbxvrviqFT2OMQDX4jC8T3eUaE4oguC2x1xZwHh3BbKn1ncYHP6AKcmUIraYV + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 79b69572-4586-21fe-efd4-4a81a2b57515 + + Y43OJ4AsBydopgzOVoFMbbi95PYObUu2YpQAli2XJ7d8oNWb3tXeE7nKPeq08U2ZcKzx3tmMBAMRnA2q3REAZ2cGgCygot7Ady082mMvWqmj0gBW78oYaAwi45qsqyVD6VE0hqveRJpJZ1xZ9VPbvelrbLUBjP6 + CKiT3O7Mppvhi38rQPue3PFeAzPMgW4SymEB2Dns2LBkGJDwy7KuOqIhRq30e + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + A5acpfJFE7AApBNxwk9GS76gIXBM9CKBHMFYTpvxo68NzNl57mEStK84zBIAdkbN6RLR89pwfpbOcwLcTh4e24atFSWSc7FaQj2QsjmHIynMW0YHi2Wc66xLRtwVtb6bm02ObgnLGCxvDwcNq0RxZga + + T0qbDngnYtda7CxR5E6p2XjrWMKOUSJFT2Qop6MorRyyuYhzunQwc1X9OHPAsr7dtXBS3f8m7zUtpcUTrLpwEeFkNmMfNTk8QWTLbT7asUDJ6qCp3TVH7s2VHO2mAn + qbg4m93puXUdVkQdnB85JtZwaFywfNTyY9CdjxCNvw0iJIv6cE3VZ2j9ARxPxrfvARALhcqMBj4k1Ai56m05gj6Q3vysWNXpxq2OCtA5MwhFYALWOLT4XZVSnlkj89AFzDt46V1SkjxiTafzW0DL0qvfLPyUQ1rqEVmCInu2GTdr4s0SswvkW0zAH0mx1NPxAb9bzvd7gqrcKr45PrhErJe8JsyC7n1Az2L0 + + + 2iE81LrPwXYD64P5N03VjdOyO7J121XWkt5dfo2DlSgrWXwBPrp0wdzddae7bc3nF0AMpuhKey4anAEdU35q8EDdGSkSWoftoI8NcpqrXutd47iQ2n932MgAwBssZAOfaWVmllF + LIFECYCLE_STATE_PENDING_REMOVAL + + xh3KvPyvhRSlIOLhZB0BSwpdC6uuvC13T5FoMdT3WEgEsTNjmFMe33jF1O1xq3Ab0fzMktHg7PMrIzC56pb9svOubQ1tTtELIdxUy62xVOQvftslKEu41iqc0jFTMjEmo3gX1iuWYdk5GMqiqMer5Fv5YaRDlnZKj8Hki399gteO7F6qrdRoSfmIp5lLkdvDd4Yv7ZEgkT4rq3RJ8B00QeI7jWSD9f9eb7JbYgri1nBjil2q + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + P1oL0GC33LYXpeyWPSgGk4Ou + JJe4opLhFwid0dgDb + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + + LLshOaNG3WhtFlihesafDBFp35SPaGKVjdc8n0GrOPMtb5CppNw3o4ks9d9jLU657j5mbLFZskkDhOUGtrBSvWcw1dIM7OR6ZOl2r0TUc5xtUk2nDD + 0zbwAp6fwVYvMNQPeII8VOygASiXnWXnn8TQx05WN3jzI9gXJZXwFnNf7X4uL1R92LZzDWniZGRAH8xrZmPEKuLRsPmdJdeLQ5cl1ADT8ntQvS9meYSYtD + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
397OSc1detJ7B6sjtksPqjHhEcZrwVbsWigOn9UBCDA6JUp4eKTEVsVzEMS2H3uweLkBM64hJEnkqEoEg9abBYCfCuicqMIEp2f41jlCPAXf6dLnfVyQL3Yox8AXUaBc4I851tIQ3x51CIoRwPIhSGxpOZfA9IEerMjk7Tb2q843RsUfhuw12WrIVybXgP3zumUB8Xwy5AtO2g3cKsdFgwn34q0d83ECiy5qvBQt3k9
+ + 6e74b9e1-ab82-e9cf-5936-c51be1f174e0 + j8xrLjeH8pyDhj6Qej3xobxFIsWNCwQWwnf9ymRyLpb2AiKOtGeKRLpzdleHJ4vfjDhJZ8iCptw0DhG7XURGx8gKlmk4jPbCssejswVSRsKnJiuy5deCdmfyJzu2gFwJ0K2s8QcSiOfT7Bj4GxGTMVjnuNpLkNmkqgFq6Jigqp9p0stG + bryQT9uX4v5DA6K0TCX6a71UN3jZyh2BJArCBNryiw3TvOLoqAuBHnnmqGdRXgsyQM2krtSK0VvnJ8L2I7vhvSEVqREn77WQLY2ckUOcPjzrrcl1jQjGIXu0G8nO7bwK2yXmkDy1PZs8bFamvt35ip5YxlExo2hqA6EUK4Wz3gH6WJtjcopmNmlcHZJ621ou7VhJZ5aVlK19tmtyKKUp6fCG7lE1m2nmXE5PJ8CX + LIFECYCLE_STATE_PENDING_REMOVAL + + Lhj7l5EV3kdOaXA5dzjXfZUfO5do53oIkHQxEmkHyxoIuQFAhYxwXkLDhQ1eThX5YFvuTP4rns1JaGjrEJYt3B7cs0ida7j0EOvxvzYSTZC3xNubwkxrWwvgwOtGNEHsk4RQDIIozcr70Nao8HQ4dlc + 1FaPkR9EN0uiI5Gi9Zh1NrqN98JmlVYnA94MSdrG5NYOKxYUwfNbG5YHdH4rCUO5VKROPamUQcAABqm8F2be7aVdJREeEkjz42fTdtF3Ggv9GKheMtkTv76eZKsv4D40GkTLNrGlHbvfVEtzZFtuNrBEc398z59fpU05lGiUJFaxcv6 + + 5KTrxacSXq4nHBOFlYWLoX2givX2EoyJ1r3yBfiqyfO7QuM3kAGIqIZIdOCS4at5tww4EOuc3ajMwXHRqorQ6iqcY2W34h0xGwBkdXo80zUowu7WSzEQJ4UAYQv20vzGU2070gfSP2gdwo2gPyYqDT0tBvwB15hN09U0p1K6V0cjg6z5Eyo9joDUU9wN6NA6PmY6fIdbBhu + + x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER + yP0gsvJ4ttth9slxZMQkwTvZN25W40FuPGD93mexPzGR12oSG6ccZAbEC9 + + G2aVwQURuN6obseHpVjpxgh2mvUOgpRWj1KPJwG5kEun6A4ovn + 2vXWSsRyA8hxrb9gUFO0ZtmerWjHjynd4c9OESe60vDrGMztsgljBHy2vJCG9RTd3UTzN7FFvjZ3XyohGJBhq1cNKOtTxeZA9K9OKOl7ZkaXLz6raz + + ADMINISTRATIVE_CONTROL_UNLOCK + n4H1u53FtGzfHXUNDmMsIKyYlD1OUvp9r63N36sxM2ElRz0uVMWwpnmC0niVSH4kO77R5sgRmV4dm5I9JwF8T1CUoUH9CDliDk9IMis85werBOsdk8l61YSiKrrm4MEH6GqLYST3gZmKNOX0Oa6I0Q + + kZXuGi3jUwZBGP4iW5KslWJ6uNG2ILYUDVob5ruZXtswipO6uzzInaORXnTx0JrvxHGu9auYvOuF5bMACdaZnYJcduJe62JvJiZSslJQa5vfghHSuRKRIl3VHE1FGLaq3aanvLdxRBNZSuKfemYWz + RgqTW7wYpr8zOwlU34vI3f5Fmj1dfA76JxRxwfvVGwnv2IhXEMGzTLfg48tbBs9cR1Jog6bXuyko8tmM7Ue0Ft8BttM4VVgFOR3XY6MkF6JNr5syZGyw1HZu2DrYyzDfrychwYBbWcRnhbV8RlwKUn6X0xNrZiGiQSzeI2qwf9L + + -9223372036854775808 + FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN + + KShcC2PcfFUsiCRhCiAzEzr1DiA9KtEmdNqPIf1XUOp5i8mUqWl4nEX1Wp2yTzUYmdGWszTffbkybGkCuGyKkoD9FFHqeuptH5p1EbgUeskp0ETnck7xIKyfpfGwB5Za2gcGrksxNMXNrIaD292CTASbIyHbvymxOyd8SyFFkulDdn97x3KqECte2apxAL4pb9p4H4BUrWxEcGLJKn1gRvmTxLi8pepAoO + LIFECYCLE_STATE_INSTALLED + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + u5ia5WBfDtDcZWz3aAIfax278WCsPejkjBmgpXoVi17aYzd01Vfblhil5VNV167kztsZiQMASTKIkYIlLQoYZzj5m6Sn4ZzEs1 + + -9223372036854775808 + + XK8R3WhH8XlJzALHs83dFHwFYK4q0KXYn5PqT602WlDnVgXfoStWrZtpByQCaNAxKhYDoYxcb3rYjoeAhHoIyR09hQLsvdZ7vPCLN2XY5oPgF3QWCew26w3nePHBUHIpodacfZ2cgRsVM + JgpfivEmLS3smX14fq9huohoAx83kUe33Dal1OzEHC63s0ZHi1YEh72SwaNQXTL0oWdpKF3j92eBU6a471Io0K8xNNfCG1u5XHmHeiTo + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + z9g3YOG8RUeoCF5tGZJqFPCKG4VkHWU8523WQKWIw2Y8HVtfM4FsTh4zmZLVOy3LA6zjIvT7xJ7eFBtjF0LriP0wHEjnce8EcIPN5IU + + u8Cy4ZksYotchX0rBRxN0jfQgAuu5serAQZEIj7GzAKRpDi0uPGn1VdhnALs2ZMCIL9qXgYwIJf7ey0IfG5gtbpQD2aF2W9CIi2xqS38Bj8PJ8qYOn7hyw73zhIt6KXOURdlJgldrtU2Bk1pA + y0ox4XPMiVo7BbYOwIWJVgdHiO2b6ubwuA4ypLdAyBH1MGPagDU3TZK4FEfL8ra + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
ZoSxSAyE8fHoK
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ + fQKrF8mUTE5A5n517hU4pfPHp071EoUL6wcDFrxy5C02ZX36eX3E4KdlCcngA9Tyx5bcoADlcDn3tq1Hg4dcOqyqCNy4WrutpFyNf31jyoe1PgJXkO917HjJmSGibaEsI48P799FxnHevibQ6dJ5U2P9MnrQpXa71iX0jYGRdf5Jp9rnm2t84ahJpBzOyJOsUDsdB0WG7Uho3IMhK7pHhzqGaRmAsaUeNfsgfoXfa6DdPhmro + 3xabExRDm5C4zGauU0RcsD7sPAisMIuIgwTU3DpiI2mhIwEvxvHR1GjIgC22kwKAVwmQ1M8JGuToTxTiUs9N8twg5yjhXVKSjYAkCJWi5PzYekg0NiONLk4ISfRH2BzmA2y4LunIbWHhgPiV76JKiFk2UcKWN + afdJkY5zH9vgqDXIzXGaHYP21J6LxTWI1ard0wMzF9PYMFGlCfvbdc5eVbZt5O3YYu3QSPqqQ7oCMWQgbdspqxvdJnGGbJw15zRYg9g6hEAVsqcEwwVW3i9EFIcIjIJp9tfpunnL1YHlgLRMhMAc5KRCk3lDEWUNh1dMosphq6DzJud09O56yWISRVnvSib1 + LIFECYCLE_STATE_POTENTIAL_BUSY + + PORT_DIRECTION_OMNIDIRECTIONAL + REVERSION_MODE_NON-REVERTIVE + + 8xdq5f9sPCCKQiZaq6rfdBm + Hb83uxHD4UV295uRzYthgkkHqLWEman3lvZQUGlRB8TC5ftEdWOmg83zTR572s3fP2XCAal3jeGot1VyYJU6RPxCzCBtWEIEyy + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + YczmbK7l3yNMTjGTPPTfPoo62D1EpvXoHwCS9K54aTR34pOL6z1VXpUSUNokjmI0ScL1WQ6YBPTyeHjl9k8YB2IoQ7I9li15uM7jv596M3ESCY5LaeKEgs26rC7MU1SgNRziOJhAEVkgLq2OEEkUYmTqY04K1W0HNsRt38VHWgXzGRfknz6mVZML0QvTFoskIkOLsJkg + 9Qx15J + + -9223372036854775808 + 3j0QTrNv3YfhvuNcuJBl1swWecZFWTNZ4NHY7nl2lsjIW7VjIoECQayXepCabh2fXJ54Yq6bShUPoH07XEBOO9D3q75Bp7RmJWiHfoT7FFOWeOV3swR9xmcXuhrTha70YpHdFsdcZT85IV92jS3QffGBpZuG1tGZSf5xAiJr3KxLFyGRqJzxR7886uO7Xm7Ht4e3eQnhAM37kBYCcq + + WDyWHw0fWYFau4ZDsPswjrWW5ISIBjkqWSeDheKd5pnrum4W4oknHgcNQ4njfHB3sQGJWjWTIkl4yh0CycSfs42a0iugZ5jrNS2KbZDTbQYJ0Qey36NnaIya02iR7CbNudxFc2qnLgZL7db2bYpdyXnyZGqZaBEEO3bT5t8IK7tJcELnv2A30QuRoMIyfm43p7OnAX5cWrV1XyosBRotzSkXw3nLhjGzivWSk1XgkKhibyCM + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + Z9buANZNF0BK61yGLiu9NejYfCe3cX84YbyyYxlEpPgvQP4C7yDMMWD1 + + -9223372036854775808 + + KM1V0QYiB5SJHHcQ1j0BMwbWS + LIFECYCLE_STATE_POTENTIAL_BUSY + 2b454936-1b31-1d28-4dda-1d3475708a0e + EWSudKd0OdXb1kghK1rIF4jeSlz5OQ5kMXO0HU0oZPr01HaMABm8xGmpTVuHDz2qpIiYuaetZFmTfwxHZTPwrbNdZ9UCJOU0pcYTm5feCBZRZwrYh8mBc1ObaAFThsLyECrTHG7j9638umYDuk6GlUJwnhhwJV4nxn864fh5dkezy453pbBCYl0dCaJd5NAuaJA6QRcW4inCmsxDE98um8HQiq3f5vJf6jeX3qL7A8JWB9s7iABEIamTAp0F + + -9223372036854775808 + + oh5V3HA4CAUtTnqD77cbPdnHO9d0YXWe6T2asC6541qXgQtfQFrxLOfzPkrFigUo1WymqFjuyJkGzNWpkfX534xKoQqyYcXS0neqUxUkg61PTX764W370sRgb9P9lM1l17LWEy8ME9uqYBo2xr1pMLFXUuY88St2Z7YwFYij0MBYfZTEjU35xJUk5Ss6C + 8C260HWiTW + + ADMINISTRATIVE_CONTROL_QUIESCENT + HRCjSKYzM2sw1pJi74C4QNQwtl7Bx03eKGquqo34qvBrVcBUhdQ71GwmTvXqv0x7yXCRlFVDboWYBxKSKsRD0fZTKOb8HIf7xRYSpMnsajqLQ2vtunYuuQn7wqf59mdG6brvXGX00fDI993Do27SSmZoM6uNlzmrKFOAlDsdK5WT6ZwmTvfDR62v5obqXxRzcx1xalLUrzNpqbMcGTPpZJM47XuWudoyKhYMDBGWa + + GfPUZkz5jTzuGAtUdLciAgMJFdG165NEkDqbXZh9SIDziYlnBpFbFkMcxk6wpTaJwBVmA4vlM0U + Y7jzoRCWbg0AA66Z0hIoSvKkz7FdZr9XqloPcSLn8LXASWzKda8XFL97SPkK8mzzH + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
8JwXjgTT0YV9NsUXzEEMgM0QdHGlsoeA7DpjTj4U9ZVXrHUTdqxu4xkae0vGgC8gfxz8IDUSCHHVgtGuTdQXC27Q2voa7oqmWRmwu9gYQXM7qstjyj9al8TfD9pKyIYmzlSWu1UcYyjp1MAr5JBiKmxnwP04pYiYb2MF3zS2
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ SWITCH_CONTROL_MANUAL +
Pg6HZBtERVYzfEcAgwQ7GyxzwgP36kvOABvz5Y5WUWo1sABIZkIxSfYgnFjmZPasiF1nwZciVsbfUNYTZyiJNg02WjoV0yfj69yu8CMV4XaZC0Kty3ddj5g7oEVp5aA
+ wsbA7QPLY8Vt19Fk0V4xNEXkM41aOuBkOFUVvCylKtPMumYuh2T5zQhlUioBERVswIfTkOfW94AEiy0ztUw2CNfp5D0BnNVTv3NPRUE0Qew8NxH8j6aNTpcR34siSgbfjQ52CB2sPrsuQ2C18MO141S7XdhHtsXMbUONvI8k +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
TVFGbLDbbqCaIisq2TECNW82XTj9jIcdvRTGvoKGGmIgxayrV44I14DYQW09wceTW7sjncZ3qHbXJJpEOleHpRxf
+ true +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + OmMsasPWbKTiep7OpEi3Xk6Boe9EeEvU09m2BbQMWK5214QiB1lyls1CG2gMGDGyM2Bg5rUT3RV4OEmpFIPS2RmITCms720UWB2TVWNYOI3Ceh1LZIE1z0BlvXFCZFoN9qH4nmU3WPFb7yW6gs0IlBVIzAkq7B6g + 0gX69d7J8EGBvBPm8JZYFRoM95UMR6jRm9QvmP6mlMQRoxdo84nNVDsWJmAssUbGV1chIiw45mNlTSB1WYGJu0F5nfxH1IoWCs6kKCgHY3UJNwKJmikQjZVy7kf03vXxXVRAx09nV4YJsAkOSFxbwkJDFREAet74oQwNQF2EB0n3AzSkehwLB7ggQUQ5fX1DGxiwck2GcpJMZt75KvImuZulLdi12jwIQP7U19AezcSqFZnim6wR504IdeBg + iNIm3kTjCdh9JSG5Ty2WdCs6MSUSu3rEI90MuL5YYe7A7OFSezOr39pP1kHvf99Xa1JwEGvuVuWUatEoUkPXt7NurmZGn0DyTf4pVrUIOIuYc8f6t44W3Jru5i2lbyT4NPmA9gjXYNN2W21hZXd2GwxDHrYSZJOMr2nAiyp9dc3174i61o8zUx5tZVdYx2DY4SqfqPgD + YfP51I7CWGOPYlGdvVj1EgUAZZOs7dA6sh3t02XOIDvyR4MmZXgvea551Tx9607q92L15BQNele5hSkgPALVCI0DBqMziTRrWvt16bGcoUiGEuWu4ApyaibMAYdKJX3FswyqzfCY1MEGgs2cUjK5tWJ3MWNnLR35ftvPA0FCMja3L4fyn0D + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + + + true + + -24583 + 32175 + + false + false + 113 + + -26376 + -10246 + + + -36 + -102 + + + 49 + false + 18 + + true + mEc11dw7CiPoBDMzNf0gh0t8CgwclZ0HvcIpp6wUoeiRRWjE4jMdcglGoJSCITj65Uvn01hh7r0ZojvkDaxHqTnGC7idSujQoOdgHmpPNqG3J3nedVVvGi4aqmnaQy06m5fWrED7Wb2G6iUk5QHL0LVi0btQJtP6zWUSsxZpA + -9223372036854775808 + INTERFACE_KIND_TYPE_D_BRIDGE_PORT + false + PCP_BITS_INTERPRETATION_KIND_TYPE_8P0D + + -1082144443 + -9223372036854775808 + + INGRESS_TAG_FILTERING_TYPE_VLAN_TAGGED_FRAMES_ONLY + ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED + + 69 + -33 + + false + + 42 + 61 + + true + false + false + SUB_LAYER_PROTOCOL_NAME_TYPE_D_BRIDGE_COMPONENT + + -102 + true + 71 + + + + x:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER + TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + + Fcg1ZjXOY0VoXUxhUfun2cWCpfB0lS10WiTVBQCsJpQyjfP5uktooh0NwuNReHJaZCYslsM4RvubKj87vB + UToHpSn964K8Vf6fsq2oipSl93tgz5ElY2UfUhgSd1088ZoApiYzHQUI + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + N0zGSDtecqiIydVwgvENgU3vz8OMwlTcdkS6Pec2EuC4HqAYVeD30yyzGel5A6hFi1D8fP2LjwPTWpJJveFvMd4lsqqUwHrPA5PQUJB67rZ4IAFeGcJkqOFK65wuEXb720XPBqVJRMFsecGUpheHXUr3RPqoMBvHukw5KjGu5lWjqudPLjwBdPwXEWdiqIZU2nRMGq8LD4W3y1Scl + Fq5bnB0AUqaLc49VRHlZlZWhUmjNqwV5W1hku9MgzX2D13yKKMC5DqfxMycd48iS1r4nARE1GGEHJ5klROrueGT066526gUZHZmaI0boyQX9V9vEXO0bmT4kR9mPp8OZZ39zVcXu2 + + TERMINATION_STATE_TERMINATED_BIDIRECTIONAL +
l
+ true +
+ TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + KW6o9GRRB2TBAJIFoGhwTAdDgBvMyOabCgzDOimqlf1VRJsfhJD2cRFsk26TQ8WkgvX4Nku0rnVi6opgZ3ibMYv60BRJJN3ZaTWQ5qQwOMHM2Y2T1d5F3AM34vEFbIxltt3yLUWryv6su0lndi3gTHcP4QufqTBTmEj0qgrYLxq7yMvL4qUP76wbWTrnMU81qs1RIkPlS8tiMYVIoPqnVWqKPJ7uDfv4HwVhQCDAKYSoWG7cvxrjtR3bB2F69 +
qSTKWQzg8dHRjIsLgWTDXl4R6WgWWV5eNRYCHySHDryX9SAhOlVDGRmMGCBCyyQlpHPZfHGS97HaZisGDfbk6yYEaz8A0ZWpyDoNlXxm47wVpQBU5F6455IfwRQwIEOg94Vu1kI5r71IXuv31BZ6yze5q4t0Ah8Jm36ngGlzNeaLAFGCgxIP6WMpSfpkpqWLlU0BAd3grd1USzw8Y6P4VBlFJLS03GLoAD02R3ia
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 59d99753-ab92-2706-76ba-5659eb430e91 + 371eda64-3aa3-f78a-2711-ea75d567381f + ugqYNq38Eh41rz9qNHaTsbt6srnUB3KYb3OZlRZZ9VSAmUS2B2V3eg1GHgsbb41mZPlkGcbH8WauQ2wjXjebr7J1n3cyZdUZ28jAknakjkH9e5sbpGeINXJ2SVAS0mJUu2nPhx1ARIBXO395BfNg5xaXkKHl7qftlCaC1cdKUOIAKJFdYtm3Sw1c9Ip81xBm1MY3Y3NKK + LIFECYCLE_STATE_PENDING_REMOVAL + + rBAU1UljJbdwEc05u9nAHzhiMCdMM4C6y4SzReSAhYYV2ZSw87YPH77tJk7ohKuPOegFs07JQ6wSXhg5ofU5mUqY6ymniI4YWcwhdD0VBpOqG4v4bi2y4soa0KyakC9gPFxUaqPEHv4nsAjDKl3OGrYG3wRn10EIx3CHtjl2PiphSBMuOQiuh83lxUIyMegbiKSD36GKoXT8yGCfwMJFUMSjytRkHZvRJgnFe3hCSbCjR6yfShMEWFY + 0HHHH4rikOPyJ72tiEM1Kc8uuU9izZMzGt9fysqK87jJedcoSRpC3x7pk8HTZulxPmNnO50OcjxjwJHgsZLwoKVISDuJZPgO3V4J04x5f4oLF5U04Fwlpr39WxSVe0ChWGSWKpTZlhCTfwTb3hwsIAtx7dkeeWnaCgYexS5T1IEg6psaG + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 5b29f3db-6f13-96c1-f189-f038af15cc4a + + 85c1ilCztD64Z8IPbGLYrnmEJsE2pSIyXU + 773HsGNoxV7fYF0P6f3CQn9SN1AlYmMYtQFNokcW8bb6Q3NPaQr0eAS1BlesHSi3IXQ79UVh5YgW13L3U430FV1887sQZKLAHtzRom0tkghdk2g67j6E6ZMf6fXXZApz3YirciNwr4JL7ZR6aPK9OooMDdBvN1WQRea4oXsP14s03bY60AfGZvkuIORnHN5qT7ma4PZYTkQOvHUo9140whv65elM2rcNyzXvgPl993PEKC + + ADMINISTRATIVE_CONTROL_UNLOCK + VMkNI6TCoB7LkOYjEYWq3Ia0EkOXWXhKKBxkzqWPUVB6Cri8p6ykOIkl30aR + + txpPeGrZpM9f6FKpokQ3nzzTKobpvbjQIAxWhYNyKPOQuq7TKPOZpfT9DWy08JRIjoxAnk9Z9PIwfPhRF5Q4kB5PyvPyeGgxXN0c01b9QTxXJ + GgToc509UqEKYSi6hfUhrUivV0otXZhD732j8UsVc6xaQPg8X2pgWILSI2dy1u39p5kyRNl3LS5CzmCog1FdB + + + bjHoqnOkLSycbFZV0SFAhJy4x4JCxo5JHF772OkFGSSJqREqBc0TVrXknyWVWUEvrDDlrX1ZHLJZufi5raQetFzR6nEU9aqsN3O7SP6rsHjWXtTgDCv79WQfbualEsNjntq7apyC6JyVcscI4zHdnxlyTnTpPzIc21jdqJPotgcxIofEPWJcl4K6rwvg56kZ7DcpnUFIaRfK7voWj70F4LLv99E6 + LIFECYCLE_STATE_PLANNED + + u716LrpnTNT85fxIEelfOqUnbmrj7URtTKzx3YUWEF4BM + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + Y5euavR4az6UGQ1beQvdQ2htNFCWbI31OhvYEmUPN0BuQCxWsU1bWjECQ9q1Ru2xDyniM9Zs9AOR4lNx8PA40eyIfZJ7tDw63MgIVfaXPYGUbmjj3Tg3ZGLfFme0RCZVgfv4nF14vzQGV1SYU01MGETeSZeCB5pKdUOAzH + Wgvucwm2je4XVAQ1lH7XadmUq8I0HhwvyTZCieEBsAqf38goPodZBrUTzuT8MhDcbCOtQsWbVmqYmHebX + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + mz9EV3kkhorssCBtQgQsvudGzaBpUGW886M39ZnqfGKIjm31uTuZgzxPJ0ewG2wG8bJ9aYApFkZQy2R2OdT4MiToiZUR1ixat9jD7LVEYUuwXerLrcHevA + NrgEsy4u2dOFkrsZpnlOcz7P1jw7OYBupR0Rp4mjh2ZuljlLGGrS8 + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
8y3B2ks2cJZq38kUCFdPiMoJwwh6x93FH78BrAvvbuN6D707N6X5KlHgRYegZiVyp39IvF6y1TFE1xMGvJDf4coNbC3aUQJbLKU8h0GjLdXEDJc8kIggUEV5gY8bGJmjt8rL004M5TiIvvRPd7Y7DT5TK54iOjC9
+ + 53660bdb-b77d-4566-99d5-11638c2007b4 + coF0y8P02NuCscJ3zUyMWohyd05k4aHgrmgRm5JgKdK4iu8Rgyw4WFC2FzmJCVR390MwXvEAApESLECTd0X1Fr3cSiOudFpfx3LvyhX1ytTj8n4dn162ka7dsVzxsZM02pntHku7NfrNvv0Sp7NJ9UOtPo0hfF99WwCvQYDw64bBr4tI38kc28FRox1D4aN1Hhw + wnUnHsLCKc54dxSxv1G7KYBYhaHB71JvgvTYPwssJxwWWoljh2qTS2R14rCbkdGBJrryYT0HqoveMIxVCYOu0Gv4Z07jdFUW7dn56fEoE1CiJaee02I0A6WrYVLbAx0HLfEJua00bCjN + LIFECYCLE_STATE_POTENTIAL_BUSY + + nVnC73AuVCjgYQGwmnhZTpDExaxJO203XgFWbgq6KKnIAVeObnG4MjIjm7V2aN57VL471mdD6slyornzO3vAe5LAcGCmmImhtqomMuZLWcjcDyDjt8LIdwiq5VErD0A6iRkXljI9vTm0sRjV04v5sOnxJ2Qe2rcdawavPKEcDScXKvLCrgHT45rFZ9LTsX6Cl872SEeooil0N6Cefc0b9rJ0suTVkSxx0x + LbG9rZusEtWLA0LL94m1wJVr3FZsFwUizBr0sOk69hJJhumjyJk5s + + e5ZPp3aZ6jjilkP5Ie6ebg1cPaA7iCUwzTlQWwQ2H1c2lT7W05abe3n3dPawj52TQgBFErzllMfGxfCxkEIqHXuNNwb6t5RcdtRRMq474kGCza1LPKcoHy3m4elqccCpxthkLljQFZk6alSZ5WfFuj1qxm + + x:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER + NRmr02HXT206jWPIty8Mh4cUSSrFpaj41Fv1zdRs7Jqqx800G1EX5IJYB2vScOW5lsZUxIeEjxXQFPIlQfaWXLMyNhiR6fOjzNe6nsCGZrwwh7J7mTVbEHKjR22P9R8IwmGUHbAyCZ5T6GTkAGv6o7i72kW3b4MIjku0n4q0VnLT4w5wdButAMAC7wGaskKLweDUbWM6jpSfOXDT + + slxfYBQwBp9IWSc6SdanoX1VQyer401peqEc1uAuUJcIuhOmmQBKFDxv3LP7EIwS0bW2xxwjgB1KSIZeyAY65nB80i8ESEoTPlVfSjy0UADEiuKI4AO2Xi + YAaCtP1ewe9L6kcY7MBL45oE2YtWOLQMd1gGI9U6nVKl8WcfIFSEDgax7DtVobzCcPaMRXT6KvsSrw71b0xO8HlfdG2BSB5Wj8JaXugHZAsi6zbirA6shkzu0CYKdVHw3iySMPADp2NwtQGNqE7zYG4RiUtoH2MDklvYaXt + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + Jrc9YFiijDC9btt9DOTuMPKrb3suAHcc8pd6Wvhf0Lg3eJdSq6ecOYvZ1XluwqGEPLDDgML8x1cDD + + TXQZUu42xqq2Ej2tJEATB62bMYgVv7ugWkfRGkL6Kb8gnaJ6ObRh9LlWBBR6Bdmxxug6GTciXkykv9ibk1ttMGhnh0lKdz + L3qRJc319frlKAvWMwh8aXpp6qKRDb1gfjZQnUKwa3RMEeAiKRqUGQbF8VoD7hUesLWQGGeIK6ugc5yXOZJnHV2HIikHr6VTSSJqqY82WCa0zJXoAzL9mFI4P2Mg1z1TjLjCBrEpVHpvifLSOoT23B6KvK0wk1hDEA77TMoPlGcDVXnBlgDgJBS6mKDyDU3anbh8XyXae1N1Qau3i + + -9223372036854775808 + FORWARDING_DIRECTION_UNIDIRECTIONAL + + elVJuoQQrJuE8jp6hDs66J0Xl3popJXDWKej049sOEYWPfU6TedZP5O306rpHh3D19W2eYmUucIbsuidJn4qsKtkINKp4FVXOJRUz5G3ao7uLpHmMDM6fgqY32fZH2OoMyidvZ9Ffg10 + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + zDufxj3O0wK5SLY2q6CnS87WtB4LSxCk26zAhvga1S7LD5F3bhiVpqRLTNwMl06f7xPg2XqVQyGlDlhPDzCUZuFL94xu4vK32rkXpKS7irsOMJvhb74atBVDxk7CHJxC3RrkubrECLshnXqy5uAq6o3vA37iExUHgd1Kokh1YJidzILw5dW3B0ycVymz589dl2QJn7KdIUq9v3FAguvSm34htiQqqZEL2muht7m31MdwPSY5elXAhTRK3A3tr + + -9223372036854775808 + + Iejd1pt9Hj4KqVrtBH710kxRt4YB6R8G5rUYIf7qqbaQ6tjAbiB3D8MY5CAblIJr2vhKKp22s4Try41BnCwSDiQIMiL81urV0IFC7AFsEqTcmUFJobB1lkB8CegvJHiBpY5pqKR42C9poO0M0uGlO9tioBG7aYAAOFReiAjkcsBA8Ce86UmM4P4kjCjtBTVhqMwImHVq1w090fa61wKXdHhwjA0MlV4MAsmO1h + 2O73GmdFoJpdX6vliXlWb9SXBcjpdtw79E3P0gugSUuHSR22OgRZpJOSW091tG1Ck4rccOl4AHDkyGneW66dPM5DMex7UyB6u3byJovj58DvOSBCYHPOmUj01Q8NgJMCEXbflGyiOcNv4o7VYPBcBUcCDciL + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + 8mTMOnLc3WEfGiENVqYJ4W3lGa9wO2WOgHA45m80aN8IXMvKctu + + Jq3H0ajw7e4DkDwwaHVJKVsQ00dG7t6QT1pTcAhjOmW0Zlp1UkLE85m85zG42EMVGbPSE63sk0ljdKl746E43041sL5upSiXVZPzXLUiDfBQZOPVMl0Qe4RGHO2ZykWubEV9pPj2WMKVBzJnVB51FOHfDJebW2 + 7Gt85arZ76BUH3D4Y62ZMQyTl97x59W5IpdFsxFzD8lcbZ815a0J1qumABLFDIClZQ0rfxSKGeWR54T2fLE848mEC8b7IOszwkTDKLniRj1WnMRuqvCuvZ07ZbezRy8fL1SvFfFwqGlOlcaLzN74E7cvai42RchC62ZLhw9I4uopyy27d9cJggejyilhnuLlwC6G87oduEC24F2aO6TXm0gMit4xPHSmkQ2sYixkOaeSHg2nmWcI + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
jwD0oRc7Lx5V4hJ6vBNMwb0knJ8IY6nhC091Jm8uT5pXe04JuJn0Mok27kKXq7e30f4JB46m1ncfo8YSReSEC4GBoiyOhEJhTFTvJZJCmVRC3IuNWejqaR1q9z7idQA6wlt7c5Ky0t3W3xJRE2hOLifUJm4OcENAR8I3dkueNxaJ4LAIFKpq2EcESgsWNfxEofIBz4HeBJXF
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ + 1Bdk99ipu1uYi72nJFKn4eTcE8DmCU0vndQxe0OI1iyjqBy18ipcxag3b + Me6Dep86oMKab40j95JQyYH9CHr1yfVclTQzbYxzCaJNeCYfHI5 + yE9blAcLP7Q2Tyu4o1D0beGhQEwqeuyN8HYma27R1XUUnoYLhtMtIkKqQhQ5LgKLQI70C7RD4Dyk1o5jSJEs3gSMxBRaRtWH3VzF2riZ4IjY7o9R8Nb33VPtwyvo1jX4fxJ9QU8MCrCBILkQqnLmjtHP145VoVRvstEanNWR6zlOcxwvViR6LqVEuTrSOjf8MUa1z6SFxduCLS7y2YENgrkKcLD04S0IEaJd9CTyHfak7hS27oPnQ182FDVBn + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + PORT_DIRECTION_OUTPUT + REVERSION_MODE_NON-REVERTIVE + + hNOib3v1sK1hkUzTdRmDLmV2zkcPgnB + 3hPeld7NX049UwU7f8C0vp24K7L0mnppEfvZsCFhCBqo7dnflZfQpaM1hyTDNiVrxqjZVQ8prrOrEbGZ3VIs5ute2mSHwN145kVS24itnYU11AS4oAwl5RAZ5sHC7IGcUt5WpfhM5cF6Eyb28zo5rYXwiw8p6Gt02qOrx56C9LJO + + ADMINISTRATIVE_CONTROL_QUIESCENT + + WAm6ohrjl + n2WO3FZmNExTs4Flto6a2ULg01xkkSwzMknPZe3MSBFcxcy0Aw3viOLbHbvT3TsIdHxcVBQF4oSBAiu3Oxy6db9UmEFixZ0KGpOt0F043Syv22yIrYHEaQqwv5GU4GxC6lXYSXVNItjKnJlOI2kSKKg7HX2Dvz7tM4sx1fkBADeXfzDXtXHdHPlgEfTaO0v + + -9223372036854775808 + XQT4TF3IgLRN2NO0N3JLfqCwOp8F1OKZwwVqbZ8jCZ6EEUwrQ855yHBfYJM0poRO + + vhdWwd33odhczR4VS203aoKfV8VugeTDv6z2buXzHfDgYz3QC3LMrvUnDHJLWDojBXdNjbe0iK98j4YN8BsrYmOuVqfJVE3wt8bNbiFt2OBlTr1T2tkTH1nCrCme8hCCpOhB6WW0LqlwRepMHBFgCUTVw79xgM9Fsq8qeXqZnLn60ESzgpQSjBGIIPfYtgvVywlMtLEIp1OhyHIOYqya16SBWZrh7PdFlqjG4XolR4upLc5CDvMwCw8qnzHu + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + ZxSx7ZAjZR41RsIeaKedpJ007Nc1v80uxTUESuYJd2K4mtbx5hCm1Ce0hr1Nr19YMVvxhlgvfTrBmC0jUCFNeTNokO3LHcCm87Lpk1MzMe20I3juFYhUS4a4KdIkpkypjjHDctcZzeZahjEX9OJ1KL6nYOzf07FjieOuz0l96dbgoP5xvGz8 + + -9223372036854775808 + + 3Ixkdpbv9TwqfgEu6w6ZxAj0Ke5Kf4RaEhvJyyfIrD0GLwbS2hJzK2su9p7gtYr77WJGmYoNtgteMwYOGzgqCAUDZTTtScsZ03xm1V9m3vBP1rwz1MZveM8dxTyh61964GtYuucxZFnT7Ts0xkvLYvYvoxNmqWtmuOcYihwiWT33En3bHqWxVMVkbAGto1ISPUR03fi08d3MAZPapDHdhuxt45WsZwdOj4OmbYmjbiXM9EWyhvLy0aTW8Ih7eu + LIFECYCLE_STATE_PLANNED + 2b454936-1b31-1d28-4dda-1d3475708a0e + K2FV4w6EJ7lLbw6aEF7zcV1VVgXWITfsNMgJamfTmBwx7DHDaG4mt59om7d4Skpy6F9gTp2f0yMZ3mudUzsowBEKARHt3619D2iwrkErSiiWEN1zetPKXtnxd40g2TqFWI3f2HHU0ZIwEKXSdMv2gSAtOsJQe1n2BihD0YqSQ0guKefY0K08ustiV5016 + + -9223372036854775808 + + xquUBkgMoqJ2zfY0wlLWdOQaOyrVMVAcdW6OheAFFbHeqxeOKSKYys0m0r9FeBRryP7PVzmACVH2sNI4xk25N2jNlskz43SuKZbGqx82sPWMvEQ2ZL0ENjj9MEAIztckkn0DM0F6QuSd0AfZlfv1zP2dtCV2XZeae6N07s6XWY2Xq9OMpcFQ1HVmjIghHvrVB6VIyTxnJzc9JSN04sI59DjllAuU5VPG1ChrnOG6gKfZvVRznzxp4QKp + 6jn10WUuddRTMX9w401ZJtfiSwmA8DTeO87O4Ta96T3KI49NX2EGnLRf95IhJtvxBCeyngHmaC6Szfxwa44xHVNRTn8CQw1r07ZoozKq3QaCYI08E5F + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + wZylQTW7bv2s9REw10NjZM5pFkGZmHOKye5o0Unbhhvr89X22Cl1hiiODYOZxuC6AzmAlCDDT9W2aL44gh5pzfdc5T4vfGtI7PitrW6dXU77F3cNk9cThi6mbaRjIk1P2balZ8yW2FWAI0n + + WMxVf9U8kCChcPZBh9hC6yf7oz7BIW2xIzkPA7XUJrbV93wq4FVa6 + huChYc50JNr4v13kVMMYzVT5dYD80Jbi5Nr3ZwVBbmxGnA1aeF1NsUKFSnGT6J34ou7fS3Q3hfCFHvHVaIAuD + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
8zqbDOxC4pxMlP2XuBs3xuMZYhcZEFzF6ZQJGgdCxLgSAaHWM9ZbvLatUflrUU60LOBj4OVuz4m164XS5PVBs6WndhO7bU7XAI8Fo41Y0nR6jHRhwMKQKG
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ SWITCH_CONTROL_FORCED +
4crEPFt466Tz3AMCiZSWeD6UDufzjexoqY28vw4BuQaqiOUAGFxUivHWZWvj2UHtKBt7ZpIufKMyzG87lx1E3Is2wPdzCM2mgnufM4BUPnkg4snh0gNVZ7PnX3WzHQNXd95SeGE34Yb0iy9aOX5F4V3TQZkpI8nVhsFn0jiW9tOsTYCINIfJvavd2PCKXRx7b5
+ g1axr43vIVM3Rrag5qvF2WJB3kl0SHi0JsxapAGZnk2eL5vIvSgpHZ1KceCWVVWEflHwVfwazqocvLU1waqd2rP6Fj2t6Y7mbOSY3g8uHoGcatdyvwLxXsDvLFYSvX6yEQwH7E4O3KS55YDBug0jIEGlbwdzub782EH9aLP5ozalxFW1VXdvtTJEqW5U0dU2Jt3T7SRnr1IRzFSmu5KXRtBhhH3hMPjvimgp67Mq1nhs2 +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
7ONCmrpqBEBKMqiCAoDnhmpLpHCJI5MHTsc8Tt
+ false +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + VtVHxI7Y4sRCiy5SWJVMskynPLcJvzkqU88rI7qFA9hSIeDEPqjiKRxruBb02niWvioeqGT0 + CymC6dNMO9SQgtGxPRRRJ6ISczg6kLrWkOyqTd4HeWyvh626PLPyRqjVZzTjldfx1FXMK2tYQTl0Rn6H8O7ReiEdSyo5LvCEarqMlLK4x64olaXmYX54fK97ax4V2Gr48JQtutxTrBaME70uW6zcQIb0ggNaWefWX5qjqX5Rrfw5mwzbu0nkJqcRyZ1n58jU6B6wrbgSqMXEaoPFp4R0v4RVVSiT1uF75LvwOLo6xdLAuA7TxYT2UC + AF2RhalElvnwIjmZP5Y6GJqhzYxHDjv5YqW8A9MOw1kfkG6aD48jNzsfp0O2bk79CWh45VSCW4J9CPj7TjqySLN9Du3OO3XiZ7mW27qR390GQbNBu6afJPgmjk2ZfZ96Yw2 + u8tnC8mzMS6ADmH3skDWMKHjAsdv435q3yOxG26kUcNqrmtTGYPsAoM2QRxUUucX2Sm + LIFECYCLE_STATE_INSTALLED + + x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER + TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + + 2KxhfcYFvgqeFJBhUBjiLgF4wTucEm1HYzQeDOT0Xb6CVHTHa5ZWlx0RqmVXIWEGnmMS2GSZRZuEGfmRkdFxKFg31b0B0w9nSWgUu0Md + gSqv69QjOfWtwZmHRXHfY57UdTo5xCXNmnbswTLk8zFEyTehIVwGSvtXhR3Ol0uzfx1DqFXq + + + + false + 693674490 + vc1yXUt0F8al6faEy8V7t7qjVmiOkL7QP0gEUJxsRHNPOPumXpuioMBb0TZlx7bm7rT22qmL79BNQ51NmvXC9yNakNvRMy5TRYNTg1wfa72044FiruUB3IDfn8Y1yVMpMsa2tGaEO4wK843syPVtpyAEyyF6msv8UF2nlcT1hiEhezJEoE0G4AkC10Ink5v6KxtYKfRTpvaD4Uhlqh1v + + XLEVEL_THRESHOLD_SECOND_KIND_TYPE_TLTS + GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS + 38 + -56 + 30423 + + lXILt5LBOX3yJyDsqhfjWWuLEjVXVfAh5aUqfx14uXudvZyN8N7XBtI8Mv5HCFQHHK7Xa1TEYfSl6i9f584yBMGf9LOLiFl0hkPrlA6bHQxF0GU5GYvhCcoDPch8RC01OHk29idI0Cn0aa5Q0B7vFn8uApujTmkI3FK4XPMYsaYCcWtcpsH4QQqi7VBT9Otdl59aUW0eYRRaNcm4w40eMiwL50wfOZs14BbRpc5n3OxISMEhIEvm + -1103 + -90 + -1281257321 + + itTa7kHvI1JWwW8J4TdD2Xm7AyiFvcUNFFXNZwiIyTwWPwxTpKpjADrabJPGWBlthiggPqQfje31KBMalbtVPU5SwMzkgUNx5WNMmwTyKWrvxdxThSGYFEQ3ihny4259QLN59GDTC4g29NVqGtodZ7gioDIsxGtojgtsOYdrUut39gmHBKUBJaL8Ftsd1Otk4OELMS4yexBnFX58AZJj2mjHQEUJsf4o + SEVERITY_TYPE_WARNING + + + 9Hsd7GCJ49y1i001k2ovC69oPBELSzm19O7gnJR + SEVERITY_TYPE_NOT_YET_DEFINED + + + L5Q8pVvvy2RoE6fxvLA0HuhUMrNhb1hW674oUrTktKI0IYp5BZ5alfX8GChJvyFuxBSk2DEngffY5FWyE1IS8x0GahpFQW9fxTzrxeHNlWDqBzY8ty0B6Sa81zNJoPZVIyf7EWUZSypmZfmsOmWM66U7xzRVgQJZgQYVMTUwjcKar6Dfkr1qxNqWnhKDZtu7bl2X6Plp1Yzs44AhvtHU97Rwgt17Wof7JhWP696Z7xk4CU + SEVERITY_TYPE_WARNING + + + xZLoogr2939c0ZAU46oKkkwGCX8iKVe9UZybfZdpVmtNm4 + SEVERITY_TYPE_CRITICAL + + + qkbqc4C7k8Ji970DDLvdZoeGvu37em0EG3WK7zRkzACIACldgIif7wVCTYJ7cBDKEzvE0eQzPsah5vud6FsdboPWer3j2G3z8q58FVImfSDcfZplESyI8gEezAxt8tUgTZpqMZMUJh6YhocN8Cv8S2mjCMNC7HTSzajd1XZKfYIomMbmpzu9tIt5m8ztHsm8uxmvudfJbQZpC3L1C735Qw2cwBGdWUmirAOV + SEVERITY_TYPE_NOT_YET_DEFINED + + + fUUoUDMa6GaU4pTFyHmxIswIZQEtCRlKL70FCNIAtSmp974HOqeoKLYBtCXYtiA7pAE1netI6P7fW3XCl305GZH2tw0POAW52sYqHr8Fg8V4bKGxFGumx3oTzgInQwkSQiaxBbdJj0NmCtTh2ovrrTk19UgRitC9LMyfPLY8DMv77gh9wMBQGVJHIZz0k316PAdxdbFRP2QXb76HUzxsn8950IXkLZitzv0EzxnosedDlkc7TCz8KJdKjb5X + SEVERITY_TYPE_MINOR + + false + true + + 26594 + 00g8FRn8ubadEFcXmKYs31cNtyAfZRqRRGZopfxUqHZXebMBNKVQLZv6y5lpWMgFk74KetwFavupygSl0N3DEyJ4EWtsAB0VBWFPp3uzyYQ66Ij6nmB2Uc6q1sLB3LowzVmYYIpwzguFQFE61f0OkY6liRWeudK386T7PjvorSV9xzfrH7716dmoXaCrnnnwlgv2r0qSSe2iN9JmhInnVBDSM8c9vrxIz2L133LNhN + + false + + G_826_TYPE_NOT_SPECIFIED + GRANULARITY_PERIOD_TYPE_UNKNOWN + -275597051 + 1231873804 + + false + 105 + LOOP_BACK_TYPE_RF_TO_LOCAL + 1132959102 + false + + 6 + GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN + -23408 + + true + true + -19936 + U72Uw9AvBts4EjmIgJDX9dPVR6vnuRcoQ6amfCKI5cEBn0kvKPsL3ayMg3aCMe0uk2Rrwt9txN5UGhpi6K31UBO2wYFa4xEgAnHYQIsnnx93GrlMboO5RC7fsMpok4EMrlKa34xqtHm90HWbYCgP6fXq2mOeisSKFuUIzj02Sm4 + false + true + false + true + 2 + + 21094 + 03UubBsrySlNGr50jPFFBfeV79Fmdyi5BcrFFT6eLj1jKYbVGQAhXH44QKqVaI0DMjiscgyXzr8bpj651zfYgb2YNlTXVLBA4L282sXBL5N2gL0hkf7Ai1q6mbVaOoKKaESc6PFRMkT26Tbq0iTbkjhGn4QbtsWv6OH4weVazHdFsgXlzQwT2FrpJaA4CozJ58NBnBLWaQtu7qHy9dr3KKsuUUq + + true + + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + + JxNwooYSFld3JeuzgrOYfo9xtsWtzGFbds + tIxeoKrjmxNVN6CDe0MLl6zHF7mQkGpOhOUxzdQNKvAptc2H4OlqMM7rUla6TzUaoGHPTpCDM42gh4PlK2DwPCQBP0HJzuLPalE4K8HpdCFmymHjpdH6PpHFpogRS1G3edZZdygiaVEJheUyrtEgTlNiK31uXAxb + + TERMINATION_STATE_TERMINATION_STATE_UNKNOWN +
ib75HInVCVm6sDRNi1pm3UjDjmiIpaFHdENVn2QRP5PhAG5SImeLgpgAMyi3AXKOtpBQrjA9opqYYnJGKXjSfrsTZCWrrG7VYILhUdqaDJ1B6K9IzktOLVHCyv3Z4bM2LqjFDKQgtRJrBK2a4vRHiqbIWfA0im23MdJqXryiiaCLUwVR1Eqb5CUTRmT1IN4n0NFQ658ofC928XT1tbdyNZjw
+ true +
+ TERMINATION_DIRECTION_SOURCE + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + xWn6luIdvABBWOQ31lh3m8iV8ruuW3flZCrdY9qtKTXyzNBt0Swm0Ga07wuVzJgrdHw3JWptIm191uC1m1gfzi7zOCugdDHjcdmV1LgBZ9L0DfUSg2ZQk6p0ALgGgXZt2dg4RpFQyiJ4yDOOFN +
KewNfWLzmCezySrDmSZYh8ZOltYaxbc9pAWEoz5C4cbC4ufqn7owffcsAau7lGgK85gxEe9Aql4uPkU4jaAqhMSSPeZaUgN2dVrR9
+ 9b31b388-e9d8-23c7-454e-8f4883a74d94 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 4ace155c-6c04-f585-d9ec-d6a845794520 + 371eda64-3aa3-f78a-2711-ea75d567381f + BBFCB9sdV1M71bIIqdgnC9OFqL29rZD2saw3jY960VdT6NupSKMnLA2blXkEWPygZWbiVkpNguyea2D2FphqR + LIFECYCLE_STATE_POTENTIAL_BUSY + + EjRs71cr8Fc4ZO0EuB0pmdfBFPAwmHj0S2k0Vxj34v03b0zFtz4QMbrj01PnB0flVslQREMV1MYcEpR8YVYD6hWZaMeDElZzNciEJ4zKQpPmOGuFuk + sterwSF9x10YG5gdGkMi247pKOLpa6HCrO4XGBZ5uZ43WcgCpUVjY2IJIm0KkInLojB4MA29rYcoasSreFLdAlOaHOV1oiFMtgJfQLg9BspLMi51XQ6xbUITAvMRNrv8z6fhJwrkYQYD03EYTKn4wXPYsCH7V57nbnEVT5fRO5mO80E1CUY0JNR4hy35DbsPy6Cr4JaKPxqXpXR2JPUsuLwEcAJPL3wb10CXKMzzb0wBPfDy4p0rbp5nRG4 + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + + dv5oGSJXxRrX5tSJwx0NPSZbW00xXoF2TCrru2o1TIRQbJrz8sfXce1071x4h57aHqCckS55AWVMxnlFPAvTHwTOprKGwJId1chl5fqF3mjBBx8iZDbG14min7YTIzZKL8XQnoorCzUd62v6yyEzCTS0SILAhKcVTaD8q1zUtl7roupW24nwP7oHIa9RMeMxgqGGj7AMtz6JVvxPrMdgUCPuERli50Qlq + TBnlgIUmrHRYojDBzp5hTJ86256Kqw0j8nEo6qKpZtgnMTQeiWvbxvhrAob0MbbMzH2xZMWY8cdU538fRvqh0AIAQUsCXDhocjVb6S16We0Ua19Twsap2TZKFkeCXv12POdNy7TvlTpnUq9jSjIU4zwJTLeJg7L5VQSuXLZbxgyjGHurTcdXEKzxvN8LUTJPCBbzf2KEabXRKkavwnt27UACHIgtuZa6smxzgad + + ADMINISTRATIVE_CONTROL_UNLOCK + GMPiBiiaEcVncI2LT0PPfPKDa4eHHoEnbuxMEPPa1Kp6ksJ5kyMAfo5qsj71ADoL7NpECeGvQ6B2yc7KKLc09hqBtpC32SG2F5y9ceF2k8XKl4nXIzPRR7lcwXfrIVlnSTp474Zk4WWhSj7ATWkC4FOAu3TcQesI7RF7 + + 9ULgvSWF44Iz3OzLySC151ftWPvAb6mk08tnSh3XdDogjP1 + HwTFx00mIvWTBa6tarJ3IMSVp8cIX5swtdbTebfOG3H9dFvo6ejGS3C9bGJ8Dcw7pI0vL7jkaTlfyQDxWOdGRHP2nz2TLz029SyURR6TKs8baEIZsVFkvneSWhDzQvBRf1D6TKZv40y6E85Y4Dar0pbOGPnokQ7ASKGDuy0qyrx4zu2v7dWZu8N2X2qhTxJD9i8EQ0Wgrtc1QewXjlPNtCPqF7zqwjVGBVcjV8rfuD8kRw9 + + + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + LIFECYCLE_STATE_POTENTIAL_BUSY + + dzkL343eLUiz6lfUJ7Drf3CFywRKOgn1IzEDDARom1Psn5f64KpjNTQeiHQ6Y60yFEbje2zA4hVreapiUHBzAsFS1wRRCRph + Pcvg6m5goT4u2hBlkAc + + Ul5zwbKgB1KhP5GlyyOTLsqK4CrUWQGJbDizO3Qh4AzLxf65ONQrf93bLv5zdLightQ5oGnk8O5yV4DBRm2 + vY98l + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + xY4ZS2YTJ64cNjHS4Uc0EnpJ4gkIqkdXa9O23ENMCSZq3ya7kn7YKozOFLwXXCM7LAaP7PtJzk9DSkK5HSVj8n8N8wC68o5UR7BYX4zwpJ99VM6uw2NEpNkpcWnklt64Az2xEt4V45 + ZJ3lf51UmO6L029dfCbj4LdChHycLv0Df3Ym0Z8mGe8yh9DwLPQPA3jRCRVofV1uRRQRJZ6p56PmftT0iBHKw1B9KwpZjila14UKV0106Rflc8duBU67NH8q5xhoH + + Pcvg6m5goT4u2hBlkAc +
tmdvejetwqBJU4v0cjzkJwK0Ujvd2WyoiLTxW70sxu3jyzbCSCXt8zlUSR8NNybYc4n03ntsJwDa
+ + 3acbd8b2-7826-e715-3e60-c983e5d31917 + V2Zgh6cfu74BmQI9B1iFW1G1ebVH44K07BgoHsD3rIEGqmH2o0zc17d7i1 + vfPQS93sfgUPYu2vxs6rtiXsTmqPi4YNbOv4Xyo4OaTFEV23f8uAqj2cFlTX + LIFECYCLE_STATE_POTENTIAL_BUSY + + IwAxR9g00XObwOieu0ONUCjoies2F15fxFNhP39HSXSgDbm7bbMXF6dXcG0JHXZ6uEnbzxTruLz8OW7R7UOMSUBWstx1qo7V2v6BURUovuojio3haR3UDwQ5Sf6aE65Gt4anN4Diq2uAixRsgMmUj4R3b + dPOboh7ywUu95N3znlY7F6TT04XK71slQgwepDEVx14CG033dT2T0WMS0CC8DWtlcZABC6o17twFlzBylDrlz6dAIIIdE3yJ20cw7Bx6W3E + + fcTnAAPeD8WhOmwogUgPY9Pbg7cPei7tuTQ5txbZy78elECCqSjo10sa0wZeGYI3Rq0dYbcoacCvRfZ97bq9bSjbgaqX8800q05gb9E + + LAYER_PROTOCOL_NAME_TYPE_PHOTONIC_MEDIA + 7CHLE2 + + FrmPkTt7NwmVSXdbRhQ4bGeViztqQQXvhbctWFAJ3WwVLKYv1Oz4mFZFekX4aUrjYDMUaew5320OMQbGxLKTiCyxWvtZiVi8qX2BbqGetzV7p6NWJqQ2UgzQEUPOP0W8PQJ0hp7KQ2Jg8p4SPMMB3drz79nP1bXQ1GIaXPUOJwWSV0CCFgdAtw9AFopyzmgAUZLSGxyq3maQeEsTUFtncuXJSfajtqMopp + 6WyoSUyA8c326AnlMKioupyOTYAhgZheNPCxJa8Re3LkD1FiLPGff630Wvhcmqq2f2zQ4zziClu8e1qZRY6Y42Y + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + lhQcwIevTEE4wPgMZGB0GBS6BXnE61ZriIwGqKcboIfMqvqh32hJv1Q7YdLW6DghdMXvo1GEKViajIrmCB68CW7B1Kp7nFosjeXzfDdZzv1S6t6I4cIy0P11Ar1P6hiivfRLLXCcsE4qZ29VfRtfzvh1WaQUr04XgOA1Lc55I1wH3xuigYyPlHQ9RHViH07POHIrUNwCO2cSrG + + bCKbyYTJTsUSYBdyKVK12nvoeQ1l + c0RGK2eBOYu8Sn6lswXngQhwlFK3zYJLYAjJuxcinGr7VpknWaD40Usesdh130E1sXCXmO7CnyJiQ4GE6bA653kp8Cqbu44XTHM8nTKKkl32hBGnMguJbO9jiruFozu98ghv11gdnbfE + + -9223372036854775808 + FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN + + tJpg1K65N9iqF5LvU95d9jtH666xWWehxDqrfwo2xHl4E6zq8wvhPYYW54lTTA2i5sJlQ8fnHAjdzSEzo9Q60GU5CfQnPSGNdh03pfjYICc9nQIDRyJR6DOITw6AhEfuVfpdvAb55nes5W5XmHOskv2510yiENEA34NqwYvBeJ3jx18TIPdUk7Sd8iwM5ae06TqDKN6Yw29V3iGD7TpjThw1zUFx5Mp3FQypvFf2HpPKzwfyhEJaOf + LIFECYCLE_STATE_PENDING_REMOVAL + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + GjuIII9xvaLYdhstAPA9bCuBU5yqv7M4igMTQNqlX4b3lDwNlYWwAj7moyNLxzPQ + + -9223372036854775808 + + f2JE7n422MBkhgzbXQ1zpxGPGcyR0GU8IvMHSQJNuc7MkGX9pQAOfgwWt4NlCzlkX0THQvmdHtZ22O3rFE7UUDQfAvt4XOhM + atxFQKfbB95pcw4QwRD1zKB55yUUPGAZ1ZFJBUV430u7pqYV9tWJ5qObYA5NgxEhpb1S5OX0Gr05JQSTjPCo7iz5SwK0Wo9dA25xQ2qplqu5gfQr4kHbC98mxSmtgvyIyEggyGFUY2R6hzxdT6onfoJNg58osH7Sdf9LVOxLIgRZPgcAmsXuQG96DhnYQuQ3JRHwy + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + a7lBeaVzEzRN2oSBrZRrKBbMJFtmjv6lCjXIlKi0b1NdhxPIxy999cVSRo63LdofodYKX8K89perXV1mtbvCfrn7HtalyqA + + 1FBhmajxsJMKDr2oKkmbp0IeQTM1ShpTW02a3eHvXlfBMaZpmeAM6i0X3EYVNgHJ8JTbXtHNGWgtY7Kllk7kuZhxE7ljnU3wvOHl9o8Qdob3vVoJ7v3tnc01jdcH775DWEYX3YF8eQbJDskKXn5cz65TbisbppGd3wbYuQYIz2jcuEPj1UwtSBeWTy7jXNwSjHRFqPfZRy3dcKx6x3rpEFdy5kR2ZfMaPDPfl464D + iHMPFbK6AoDOOI0xC0NhaCUSJ7WH4rIe1mVGxFF03aGKTGhny4EByrthqhYmJzACNvil2Pd60TILrZ0SWFtuYOEg + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OMNIDIRECTIONAL +
diJBt4Di9Bi2j3lb4d7ByBrm7HkCc0xibgTEcwWd077j2tuYytr75Kl4kFGwG6OReH
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ + lO9PGs7qxHIKOBbR2aMvel980awc7hCs6D9E69XDQFfw9qg3B2yHfIPgKesRvXbtAd0ymX44CjADKQGlLfU0PJgzXBilylG8yGHUvLY04rDGhk12zNVgx3PmEZzck8dTGMFcpwclXH261V9sJ4I87pm + 8rji7w58d32sYIqKUqWPl07jKzqG4c6cvpmuNkC0fEkdeLY03UQoMXIpo05kcboAsK4f4H7cdspk5fk82axOZ75f72zc5XMxAQMwpMIve8Pjf9rhcYYbX3r56S93QVBqDfW31xq7FfqUgK4sA2wyXXvVHEZxzAPcP + 7JbxQIE9uVTyntsT1qIwlq2cPBMxGu3N5edVOR4aMXJ2j3NktwJHOLTvfy2V25A7bFUZxZ2bOL57GTk2hVJ5GusN2nIWsbVwQInfzpjn2onJ9zLqumn2QQQLdqHxBv3kdjrMIK1L1gmaP7BjtYebG4WLuwjY1ea6pBK8mDLnU7xB60VrZ1Cx5rjrXuhQArO03q0h3LwPKVrIWe1NfDkkWvD + LIFECYCLE_STATE_PLANNED + + PORT_DIRECTION_BIDIRECTIONAL + REVERSION_MODE_REVERTIVE + + oWQB43mCH1O6pSsmAuttpuW0qw8pWv3cjMNfH9Rp3yvsqXHSjamBwaBWyClm7hzi3exKgo1jWxDfmk7yml9SvCO4e2idjRve62Yej0x7pamDnmbJHkC5Xi13kjhv3MJ1PAf0sE7JOmm3IyNhKpe + H7DUjUpmy1ffBufV8fEOB0SbqFk3WzCvG7pZ1PdsIsHbOP6W4CDFunQVU2YQBslaAD1tk7V2zvdokjcoVHVh4DcYF2GhvUj5xkyRrmTTRY9b9dr4VmdRZqIEkoNPa6MHjdqCzbni9wliKMeF0soZK6v4nbMx9q + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + QuhDDMhn1g03kyjQWyNmQFpqRfsCNS2Dmb90XqfYy7ULF5tuDhIlO8Lyfd2254xk7Gc5YjVxqHiYMLsqUaLBap9pCbrA8ZMfxQcw90VzH5puQRMDUpe4OfmjqNTqExycnKAoCvXcAfGi6kNSB1Xq8bBrYmRvTpH829wEElQ6AogHA4rcXgu6r5xqrgVcGukAvQ + 1bX7MdnlGrMSh3enujMMC2zOIV8aqYhr96yNjO8Z7VJoQXLc8pZKsyy2mGdMwueyAElLkuDshmQZcubkTaXdBvgX4tBsXP0pmmaGIN0R2RQ6d1q64fcxLsuHV59KN211obz6RAPTrFZwyhuCxG1a8vJVtKx8My1aCA8taXetu5Z3euxDazFbWo6h9whV4iYyTY1VO7pa4g5bKDON4uYSKW2TsjHpCxXnnRabQrmVI + + -9223372036854775808 + 63lmayx2TTdVSpxlTsK9XycCgwbs1ox7sKtCb1F4MK0w9pRURu4P2gjbEuDGTaNdV9P62m2GYUc8c323pYKsf3DL + + 7Tz3yZ3B3GE2N8oc5 + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + hshHsyLdWAPSTxO7ytm3Fy0bcL27fulwWDeo3Rt0jiKdH + + -9223372036854775808 + + omQs9kng9RRgv505KxzgyN5q4Z8LFlQ3zynITKZ2tIaZOa4yHv + LIFECYCLE_STATE_INSTALLED + 79b69572-4586-21fe-efd4-4a81a2b57515 + CJ7MmSzEFCw1eX0hUIPNd + + -9223372036854775808 + + 8iLyeDHRiUIdu8AcTc3NFMXEs7A0H5GPfjflWW56JNbdNLhHPduvZk1jjuj0rRHz2XURLZXmE1zsER1u4vZVP + 61mp1G8Bfaq1131RqxKZRoISSEgJrXuxYQO0oOtDZTFSWyBe5d6XCGHmdX6EVA4TiKLHz6cqZRaOpEUnR0ctHTQUROqEgmpq73Zy9cY1V0HdEBAouMJbFrXoff2nCkOBnN9wRZpNZ60wAsM4ev7LX4a4j4sNo8oLNxaFozkgycE0Eq4SVbDK7FPiK960huM4UOBafVqN74NLuJviU12TGJciSaj9w56qLHB0DTOCYtokdLuZM + + ADMINISTRATIVE_CONTROL_UNLOCK + TQvW3ZEhjRyQtQwRSKkMIlTvA15Rjd4c4r0ZqE8KvysQpYA9AMNa7zGHsDzLRvPNXPEftMZRksHBi9DLVqV2ZtKr7b4QyTvnI9D4 + + QuBWSn5eQAz222Bvgneh6cd2ukd00PTQbnF3KK9scJueLYBTlP2r2gloszgsg1broQu0sEsEfPK0NmM8bOr54N + pm + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_INPUT +
31KpUcVmQa3B3QPPQ0viYA5jZjNINqDIjn75AVsiXvLSeAz4t5mjxjuoCh6pzB7TZ7YrUiBJGnCUPbQig5tNoY3TfaaPLaAC9qV3BxM9Ug3BsLUAQfg7dj0tlaaZkCBt2povW3EIjzjDl
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_MANUAL +
7S8XLTMNE66dnAKlP840bUjxH1RFmNklysbjlPY0VWdbpQw6Qs61eirOjilxXFLv8WGlDwdqtrBS9ZYZrX0G7jmqtHYrnBOnpnI2TWsefW6oVXffM7VTr9bUQ1ddCUs1h
+ 6bw6aEhd7E3x7nE47S1rxHY5FEOUebdkfJipfrCmXyU5Vq12a2mICkF9Yu34x8oMKycZSGePe0M1iG4tIibcCQmschxKqNo2eA1697Vf7Ahq +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
o1742rnuV2KmwTuEb0x48LjjSYXyS7u88Bc32zpQt9cR2Hn5zVaHytSijHQ3OkbOOoRIPgybpD2kcqp
+ true +
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ 79b69572-4586-21fe-efd4-4a81a2b57515 + + L65S0Cp1BDM21X9sSayoeya0u31QTL9wR6gRAxLb2p54e6o6gOnnexfIBgqm1rSLx0u7y7aAw7wK5NJmB6JQDQq66Rs0acDI57HD7K + 8V3hRGuPkp7 + WFMxmb1I3LCyfHwzU50SoZukAErnZPJNnnlJzmju0V2fCzOowG8UGC689yn8f6Wuuhe3vxpvlrCX0jewZejxRpx0PU051Wrn5Fit5HYi8t71MlpLAIbj0IbPDbMw0eT5L3qIKp0KS8Lwl39VLk6L3htyl74ddPaZSBzu0Ae + kMTx0AHRkiqOa02MsUUoP47oyWIXVnM71xE17eSrobfz39dw40UL419uPR + LIFECYCLE_STATE_PLANNED + + x:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER + TERMINATION_DIRECTION_BIDIRECTIONAL + + DRugXhZbKXMAsCTzACTAMY5m3d4ykGvPpZ5egWp1L3teFeF8QqIvoORj + VJ5tfUTeS7nGxgkABq8Q5gynQ3MwVXhIHmcW952T4prBxL49b4Z8kxw2tazo7Q6G5aue7pZcOqFe4Jn7FegZLEU6OtuNbtmgvQmD7lPWEu2I6pPLDXDgBpnhSR5Vcj4I1qd9E25ao7Smoz01xv90UwiEgnzsGD2HWf + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + sgqWrToMrHcRJgujJXbr036Euu0W5RYx0glj9 + 6Aiaj2qNd1KgkCji9OM9CRSAhSRCcSmalEkEyDkDEWLZz5hILWJfNBP4uyzyjVIErUaSxmn4j93S6csJ0bYOMNK8ebGx6g3qb5iAsFELGzvMEXvE0tkM9XNf8lE7CHxFEHf6eMJVd6HRV5wVqIIzFnGOIkVkTkRy17wfL8aY6KQ2PeXfWxHuUnaDI5PtpH1iGqxjyI + + TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW + + + FEC_REDUNDANCY_SIZE_TYPE_NOT_YET_DEFINED + true + true + + QUEUE_NAME_TYPE_CLASS_SELECTOR_QUEUE6 + SCHEDULER_KIND_TYPE_STRICT + -104 + 214289372 + + DROP_PRECEDENCE_TYPE_HIGH + PROTOCOL_LAYER_TYPE_TCP + b737f45c-5824-79ef-f58d-6a5a991aeab9 + + DROPPING_BEHAVIOR_KIND_TYPE_WRED + + -1718364149 + FEC_INTERLEAVER_DEPTH_TYPE_4 + true + LOOP_BACK_TYPE_NOT_YET_DEFINED + false + true + false + hsPOE2SX1p4JWw1ODRopdSGEk1uEBZXSjEyXzjMAIJcwfdkK4A9hkHVEIpbjg84zMCplNbWoU8U1l7LhHNy2umG5LRoURslEXKRCWN0INVC02nhJ2QLx4kCP3SBVdXraHiMvYF6DAIEu5Nd0vRxz31hYTSL6Hc8pnNMdsSQ2Amoy2Byxk57fYgeR8 + true + cab99r7p + -20030 + b737f45c-5824-79ef-f58d-6a5a991aeab9 + -1933132181 + + H8AF7Tj0powEoLfLpKCCUGDW7LdECD2bLDISo1LOihkGUzjcbOO5ujTt477yK9JoEk83lTJv333Pun1FbHCx1w05v7w787vFrEIFprakmeaQt3vEL73Mv3J02782fDHy9pdrIgD4uNUXRhtupwgUzZNt7VveqdMsuSTd8w9CcWrVdMpuixhJo4cnRHBhMgJh8um8TvK5j3SxP9TZG2AW6MkXlN703Ih3d + SEVERITY_TYPE_NOT_YET_DEFINED + + + 60N3kINRxWCouFYiDCCtQiAQdi7hnKklK0o4I3N8RiwdXnwAZ83PqvFEGEN3gZpTZFPIJvIsNeGCBc4tc0aDvQ93mO7DNowFVdfwIXZv3F7FRc03cayzSzDfnCK308IVlXk4UjzXYzuHDmCHxbgpCTw0ngVnovbKsvOeGf3EGqdjMP0bS9BvU7nigixENIo754dLc8hSymcdc4o4dRr0ZOi7YPLDq2Kn + SEVERITY_TYPE_MINOR + + false + 19548 + FEC_INTERLEAVER_KIND_TYPE_NOT_YET_DEFINED + + +
95wgU3XoQdylVvagMJi4pABI0bSEvR5wPBNJwK7eXxzK2K1GtbKLLdlLp5hMXmjEP6nmImAGL2iFMbl7m5KZi6CzbUm08
+ true +
+ TERMINATION_DIRECTION_SINK + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + YQly0KQEWb3bLm6AE43bBDDEuU9ljAd9izHibpWZBRaee8GScKVFnyjRkl4DNiE6RlgUD5TeW3k241UgLPW0g7SAsW686KeXYmRBrCHoy1qCUdKxUGy2GiD06B8ddea3BUw2odiW7BqTObrAJZDph8qnJqAOFDSgpoiNutKt4amSdNkXEXmV5EbO5LvKgnSFD2t7v5Az7XjlCEihBw4Hbfn8T +
tyC0x4i4ndCQ0O1NWs2i52COzERqusLX0fXpjflykXokLh0AJ2SO5nvETeWnGzlyPaY8ijHC9XPUfPmQJ7x
+ 79b69572-4586-21fe-efd4-4a81a2b57515 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + 371eda64-3aa3-f78a-2711-ea75d567381f + ljAzc5qCh8J86HTHPqzGgP3PC0uHC2SXlkoxiP9zXLI3ktK2TcA21vRvvd47fPWA9k0r11TZMB2Z4F1QRBSK6B8tO4s3TovVAveCx7BbAvax23nTE7wCAw5gAxjuNGhgcvSBDlMdIPKLSZwxYU1yq7O1wZncGEsK1clEpZS7OuKHmh6k37Tu6znvrCz78TJ954OmVylCU6bgfhBigmEfN1Cev3 + LIFECYCLE_STATE_INSTALLED + + YMB1GSD792fw72K8fHYvPFf01Tw2ZYuPCXRaHmaQopnwjZwyGmWo1boU5UW4KiLn7CxOZHFfYULiT + IsDEQwI6iF1eBLom0vZqkQ7ZX6LJgwSQYonGM5N5KG + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 79b69572-4586-21fe-efd4-4a81a2b57515 + + OTsqNqB4xKxQSTmZygBNLE0hsXWlPpsvaVNXlgTT0qBLbPKK5epJKp0deWyWd1rnO7c1n6Mgwf1A5DcaJBTu0Lz7z73M0m1GteIRkuZIKSiHnuR75DBYg25Q10u2mwAQKazWFyEhiPYFbHM9cf7lh4bj4Fdq3N8NYHJv7gEp5uX83Jh8Rgt0cEj8bozf4z + 2hwpgMVyJhvRk61sX9NYmj9uvyVCCvwwE2NUGIspZX9bW2wTbjJxDT20jPCVk8jY36LJOd1F3aQZ4eKfymNb7HbqoNdJNwzQCkAiqBPlDxcHMWWkaBn9aqzz5EaS2JBEWbOmEvHh3TQPHM1KggTiGlRLZ1v2D + + ADMINISTRATIVE_CONTROL_UNLOCK + wfn5Ne0k4Qg8PSjmEv95A + + lsWc8fLhtaZc4U54rF3PIneC4RhPJh2XJY9S6V1zXTL1NJ56o0VYn1AkSR1u13rK1su7foz4hc54V23b3Y9iSBuClv6mypYAKtzZR0405140W74ZY59IHEk29jgI + eaczB4iC0iH1fzXeDO4JY + + + Rwgnn9e01Gcmg34XbvR3vQFcvJqNm2k5ytsOCyOwf0SvVXk7k3aPUPUprc5NfhKFK4lfD9LK1D7Xss4Fv6mpOg + LIFECYCLE_STATE_INSTALLED + + fuNTinJ00jx0juTcNHs91SlgXPHSA6fHs3sCqbCivaaGwVTjCdtE5OUVwtFYrUFUX8ofb1pGbsnHn8TSleojUaeqETgXFWJv48C792Ocm3TJbEtoSRHN2V5yGmnea7J67ld8f1kBW5dZKGouq59kT7Kzt7Nv6oBdKOlRIFtwDGwneUJERTQK0AclIRQGgrUS77JHF4eiCK + Pcvg6m5goT4u2hBlkAc + + ftMUA3E7OIt3dCOXwjXtEppjUvFcbOTi9xcJAIQgjbboGZecbbFHAW0mjxqvlbNuIS5jAOrLZDaFuoRFzoe1cefwEG1ZROmsyrL1f4M7 + WMccwJDMYwZ4MvIkoI34WvDn8EvdqCUfg6jEIXjGtaK7FtjV3nZZKCeT8BYr5SGmRRSrOb7alR9SctN7QF6s9dliObJU4h8N806P4dRh + + ADMINISTRATIVE_CONTROL_QUIESCENT + + 2XZQ3T6wCOG67drddyMMJr3K3NJX7Pv1FmSIfYfRFNQE19R6HDKjWN30AEPHmkJ1GtBNjIxYwfCpomn6Z7hWVkOnZD5lQGeo9P4kyBjWQNde9Ac1ztXmODKF8P0Qn6foVjIlM19CPeIQOVRggGCWjmBk3taqzhOnspAeqCQ7Qr + xmHNuoprzE2THo40PdG4G5FUo9DnZ4dwiVjMjB5S70EOoAG5NfalcHgAQLYPH3mZYxD90JU7JyO70u4NBe1OVhoLUetBaPs8e5a + + Pcvg6m5goT4u2hBlkAc +
u2oupt90HaOvj5gdbJGlq8uxewEUAScWVAik3jkDu18F6gLhSrDaAZHGvlsXeET1f3lamxNIyNow49OWsj62aGAF13u7Hf8WilZELMnbsDIwEok6Hi1RYBo0ESZm70ahl1V6Oaa8NSEjgYqP8ry72OZHGYVFYXWcZJaFUkNz4jTc9b1hCr
+ + d367f062-7148-3fbf-05f2-f549796fa8e4 + mOolz74CNnT6tphoo9KC0jZL6qhbHc13SpgsocWbzPh26qquAa6 + ZyqCJWLn6ahLzhQhmZH49i0mhMb3RBkQ1KkKz5ZxggaHp0ZLRyITRAf8ni3eTnWU0hwzen6mw94V9VzTthMkR1k6bok5LhRLqgcEvb11kXPlSoedx0qgTKn58H2UQLxgTCNhNGiZDZknfrAMj035Lq2TZWFQz5YtzLKejUdWUpj1QUO2MR7p99b85QQENPZmsBAMo + LIFECYCLE_STATE_PENDING_REMOVAL + + Or1w40jr409zKVYECVgEXA6cwTZAbjBRCunHuH0yz90b4YPzL5dIybMW4Mx7X0Zzue8RV8hm9hp67eFKcSsCV7yZTXYIXX9k4ibRisesCDyBK5mOXGqKNYBGWzgLpq5tI8kStqc5WKGyP2mEBMooCZXqrd4QD1bdan6 + OiACVgaCbwhMax2MpZ5Qd9yIaJWk6UPM4p + + jovuXzvSsV0MbcIfLpwNwP5Sp7ZRsWXLcl79UC1ep10BdAQQSevg3A8kH + + x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER + E1ZuZBUwfz6BEEXNZOYqtN08zOjGH12l2UIUnuiu4g5AU2nLJd4404crKv7ro2FjWf5bJnFFvKfiFu3gH7kI4o1OU98a3NtZ2y2DVzjjbqBQVw6uEi4AH6gt7oDa3715F3BtCUENcfwZLuuhFqRmw + + PkIWKJXVS2DAzjhqFCU8giFQsKCvqavfv547P12zWF1nYjFwVzwbRb1bOwH6G4l31haQbch7KjmAC1YpBmAkytoeRXkyTxtUPED0IUZs5lVzeTYH8q2GMiMD7630vxUc3pcLc36hg1RvMHcU06sMgehnclnAKaMNzZyLUE3bxMGklK6lRzZ7FhvSuKkeU6TuXrfSYa3vWBHalOv4nn42EzM0b6e657A2qHUgSPMGqlQE9eIwBMr7d57p4d + 9cXbCE6LoNp56KNKU1kiu7JBcHItLVYU7N5Ck3fIRENPoBziuLtZK4sXL3qwQhqQWokgrzZadEZB7qMCcftWjNL5Q4tzdUp9aJqBahEnVDQ3Wux0B0OVNASwwd5JZmK9X2L7jhmfU4aIzHIazxXeZHKnVH6U3QW0TzZ4QlbCqllR2V1BkRQjysGl2E85n4Y8DPct3o5tBicEed7y4PKvaiQcPQ9cU7cpXgK0EIl80xM6CLxzt9WDrEPgvYkhYw + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + 41O1M0eT21o3fNX8g2AYTs5oA0RJdqIhsoa6pp0rqgmx3jFce827s7n30eMdFmm7Lwd2N5l5lHDhTal7ineLnBGfIksnGOmjcrd0xyXKgA11De8NCeqRP66pqqMZ60aaso2ZW0J4sD55RdTlrb49i2yIkdHqdStF8vw4v81QL6VucGIvSMw2PXK9aksf4VV4ij + + bTAIvX3dXC7MUThJMREfEOODgFwsX1P1MhJi7EnW8nIU8SvUJ91fQHS6eoqch75WhG6odtclIV8QFDCgFEvvlntAETEVSJJ9hPpujCQ1pQK4tmk00Pne4QGIBcwuN7v4XVz8xh1W7L0s8ct01Q6XzMy2Q4wD32I0P98mqaaxVaR3 + kWf32cCHKExG33KXLCMUL0cVaBIcsEqFAFIuJc3mIBUDwwA99e3U67HgIpka3KPvpp01t3ncwhP2O + + -9223372036854775808 + FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN + + R + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + 79b69572-4586-21fe-efd4-4a81a2b57515 + ogZOeAPy4SFRAa4ML36K6W8ZAUN12fzinzYB1N15xHW0JSMuWK62zfT11z33OCdbbbE5YF2oeZoXJ2kFFqA6Fl7HUaCANQLYThVKXY83Po1yqle5LGbr1j0Wtuwgca76j2Q8SQcHedgwymCb2FC3Y + + -9223372036854775808 + + Zgsbiz9BuZKeHWWN94kzqOKktffkJZEAf6MpyV0UNK8my4az0m8qaTCD0SXJJtcYAYf0LfUqS2NqZP0Zb0idLUQLEGnn1zdtpstaAnB + igK95C88vqlgd3UJJh7DIc67xA97PCr7S38PyhX3zijMm5oXmnAWzH3Y95XYHgYsk6hSf7NPp6tL4RJ + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + HDocFsjGpRB0c5MQTZXhQIDcSiDBw9BdF0qkkBTJkuKwAwelnbCeM7qEq37W5J2CBsWV3HEgcgMMN1Z24tgQAzm0CmXz5Zbyj0teHZuLg9p32o56RePsN3khp9Rm0UUjUfqufUfv3FqXVn4NtL7gGrq6B9kB3fVQudcJ7j63Yo0MM + + LaGMx54tfLw1VSUSZajkLkcPmZ2QEz4hJD3gA0CPL0JGSDrROC3rWfha6j0LKXUusYC2Y6JB6kaYYtH + 5K5TSe3YqVBaSwwcm1ec7YFeaP40aMEfoC08I3Z8RAbBYHOcI2gQSWW3D03OEAVV4W3MZ + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
klx8q82GQVuMQ0ELObdJ6hx1WpWB7jrrwYrW6uvOhZA7Z7KFiYho7Oh3d5Edo5ENW6BUs6JJYbIPisnsiwQqk0tq50DmX99T7KGzJpizs0gDlv5v1OVeOhETh9f6ig0qTGZuXa3h2bUfz0LAOGOuPkn6lv5wL5WwDN0sPVJS7EZyw
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + IOyOtQzlnG6nW8tjRahP1EJzlcfmoSH6yfM25enkUlHQtb1cdb2ePDG2PVhdFYbd5X72bvmXQ3Gc6HokKqqr36uSTLXyJ8EOYLQ9847R7F36ejqZKQqFPMqIpn90oNOmqwnzsmis1lygEQ7gypWnce6BtfCRUi5kHlT9H3BBo1JVRQ3qfRNj5LVzSpiMHo7gJSqiWTTcVuZMk + Tq2f8hw1JvM6H4SV5qk0g50aohoEbWs4mucuMInn61mN6eI3E33V0V5pdm3gaodwSp0wZfM5g8SmethLwdy + 8vNdRJu17HpRYhgPw2VN2F180jTowrVwXACGj6AiFZaDhqkNk7seNumFNg4bzRzwrb5D9FVOw5jNnEtzLVNqh264aa7J1H8kSdX2STIoQ246GpFjclKufIqpSy8LfgXZtNTdyCCoEymcX2n1f7vuPWTzuTcB22snPmBnY5D + LIFECYCLE_STATE_POTENTIAL_BUSY + + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN + REVERSION_MODE_NON-REVERTIVE + + 4sUSLSvGroXBaxZ9NAU5LQZwUM1UydPDFJnrtSZU8Xojufk9QeftW6ZRSSDi6sVL3acxV4j31HenXzwFNL0CRZlJKY2QiPBdSGCNKOQDn50cwwRbiJN1B8LlYF + 8mEeecQ1WEKr2HredYYo + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + 5Y5AfKWPoM1QbmdvjZv + 7CWX6VVSIIBNGGoVrcCHZvy2JDp2CUGJovymque04POKw4xPg2o7xO19rqb3cSEsndOFz3GDKmf8iEXqyey62z7u0ip42Wxp1lXAgD51Rc19QZzh5Zf7rmtjELnHHUYI8Vaoqfhhrji9aKqfJFe21IlylJf2v5KD1U2r1bBkuLlEvML7j09dAvDV6SPBXrfQd9aek + + -9223372036854775808 + lxYBKrAWGIpn13sMFiakyrWJBZH4xZJKwzd80N5ynmOopg34qdgRwdA74i3t9E5FdjF5YCweYkCfsxbTKkCgxcntmjWvX123cI8bcwp3ITibrmW3Gyk5CzyZSmmQfpTs7TvbiMe0Fx3YLZ2jpeo2F + + qCNr1t6Q1LbpT1YHVkkhcJYlYkS4VCKm6xN8TMYUpacbb2S6e5gqO6EEqoIeTsAZRf7K1Yxr8JCbDm9Rrh97oNLO4tUXNmOFCOhvMOOMpiX2FYTYg36EIRkEdftSBip56HBKnpwNIlPfjB5zw356NqL0xeK8oa6mJH66YuTyPBF1c + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + Vt9VZDCNo499gKbaczZqaeo7SKKSi4E6xN1oiDbyHkHQ4T09s0zu6QBYsdILhmJO1KdjfgRXBrFxkFyEx00EQBuiOdVXrELtgQEw7olAPS71pGFXGFto8PyW2uLm0oP9flxeJ + + -9223372036854775808 + + dm7nxb7RgmE4q6N5eYqdfa0f1 + LIFECYCLE_STATE_PENDING_REMOVAL + 79b69572-4586-21fe-efd4-4a81a2b57515 + 1jP4957l8mxZ6YD7v43hT3IArWqV9r3aKK6LH5YPrwGxmjwRfA19vJJWF2KOtNQ5pXR72PWudDTzOij4KkdfVO3sQN8bsYhSV0RYPNkV + + -9223372036854775808 + + XGaKZo6YLE1Lnh72dp00nfZNk6PkmIjbotVfJ1dnxe8Nv7HJpHBMOAr8HgtVYE6eZ1uJUzYkOY7b5GMufo84Qz4pHpkx3qM3j8Eezuyfsxrp55UclU8cudB3COByefByf7EOB443tnkys6KG1TSnYlqA110g8BGnAc43g86Jnj9PpTnqE7NCte5u75C8zan9m + dCrbdOumwUgTcM10pm6mQ5rldSvB2K27mmaAaxWGj4AvRBn8XtmFrNSEyg7s02zeoBGy8v7jzHPia4iZyEwZkpvSxDkxxLLVeklnPsGg9nzbsJaSgzJAY6knJwU8hx3vRpKGRjXTyo40Z7KfGtPwA1TbxFkG4f4WEOuoZjhyzdqzcbOSEwg6p1aXGuDLJHzgo3EnfNVO0ef5pWXVk62J7cGOycz9T0p933xaIkZBy6 + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + WmoN8u3k8Gvm3h7NbmwVMRpNhd72LOrA2Pf3cbnkRKyM1xr4UXZyHoe + + 3U6m9p4RPCi1F60KaCYbnoY4WpFPl9mg3sD5KHWzb6tQdltfXrjdPhhDzWtUXP20aFXUfUlq0O951CdR3w4KFlfe9I06q3YAIWuXIPgAwpyx1LgW9kyOxNVGoVEOQvorjSg1zwt5V1vOEL + N62uDQpcecQ2Vdimw2CxB1THOU4vrP76NaAjSRv64d0RradXcHnNAgmp2qUlgTs332mVUJTQXLHgNM5ZlsNWA1dvs7QI0iDWdSJ + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
8oyW2ENnYsjzuwWWvMEoX9ca1V9viYVjmufo02DYnXpRllNJ0j7Xsb7mYgRh6MAk8HI0BdZY2oPoCuZCNYr89yu7GlgMZI60hG0TTZJWgrcSV3mB1NJad59Lqiph0nhi3i3O9MCp5G91JnuK2dMfiO0A6pR6M9gHjjosYSK3rL429qNbDrjNfjfdB7kf8sPrM5LKXvFghCji2Ytyp
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_FORCED +
dUxZTJR2Ojprevb370meRznTNzwdgU
+ kjPO8137nqcT49HAEmB64wPOvlN3Rq43JLJJMFI15UM9VlCzAdxEBfsZA7UkxQn8BZSgEA9JnWLa9nKJshfVwzUZHHj6xyf1x7h3zqFWeq7gFJRZS7UhyHgformVZBWpA5k9oZYCh5KWGCVyBIP9pXhNoDAg6pxyuRHSRFn8C7XaBKJcsqmJoDoE8ZU6gjEKbdvUTKUnRRqlu1xWrTy +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
Jv5iDNHYQDIx00X01qWgukpcn5uqUSp
+ true +
+ 79b69572-4586-21fe-efd4-4a81a2b57515 +
+ 79b69572-4586-21fe-efd4-4a81a2b57515 + + ktdBG + 7Uk5KBzbpC86amSSjj2NMj09PKcnMwpTiJR2di6CV6AXskPMDSrh3rjK4n7QToBc0k65D4Hqb9nDt + l79ewWEVwZqTCWFVgPLEMDnBMbtCZnEkuNrSCXG8X6TrVrf3g0AUvXvi9YU0lycIeDAQtgQifJJ2aY5iQFdmvIEEzqwMZIu5e5NHdDZkeAmhzszp7MDCnh8OIwAzfXwlUj27OTsUtObU8Lc8pPKEZLszh30oSwJMHDLvo5hKUtEU6I2nyF2xqu6zp6QhurVb5HylMP5yaCtgcvEK2G + ZPJgS2ru6OBOIZqMRKKWfPvF0E3v00FZPg7ziz3pnw5XnvJf8mbfbHVbdQydQdcxtk6MT13gx86UwP9w3dLeUGh7oQle3pLxJJbCK6LheRcKyd8CqUQcA0kZQx5TWJiykl25rNeGwqi5wrzWlh9NhlE7SCTGd3exphCQWRwt9HqF0Rul0D0iYxhI9agmenTDwols7SNgr5OrWiEXVE7LbolcrtyxQk2mInHP7uXysLZo3DdQ + LIFECYCLE_STATE_PENDING_REMOVAL + + + + + t6d6j5bbsE5oxvSG0S6nd2vlnvEt8wABCFzOCK + SEVERITY_TYPE_MAJOR + + true + + G_826_TYPE_UAS + GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN + 1368712488 + -1518771471 + + true + + + x:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER + TERMINATION_DIRECTION_SINK + + 22QzS2B7KYO + 6ahwC2oTY1YG3b2hMAzGCp7nsIu4yaowcFVHzjApcqYgBSpnsY3XfakzKOwb + + ADMINISTRATIVE_CONTROL_QUIESCENT + + gikF1t1Mysee7r2vdXFwufmCvsJRtzDJRXgTj9FRCU5JdZ7iWEOiT2Vgmw0P6DqPBHAUQ8Lk2IW7zVpnz5Fk0sAmZAcX6CMHbnBUveepO2ofXFCoC9ACC3ZtD3qJx4iJjLvOZJ5FElUB0o0Dqs7Uv6n11FKzJVa3GFJygH5U20oVggqyIxsewPfxmRY6M01lxKTGrYsmQQhZYHxHe0NCH + 24D02iT3DqNo67mzt5hK4gjtPplu2Vo4R14TbPOOgtceArFVwXxs5QNMg1gaWweNpayB0eh8HumaVU5jJvDOdistjADf6JUnUkYUy8U8C8ip2fALC5rQnTbHtPWrqJPk3F6uN0Ch9My318PwdgmB2xine6PFPwZL3YfJQRSZDr3wzK2FSg8UOqa2oZz6nrRip6T7PM7kd2QEELbwTjjHJtC0k36zuXRL3LTKpS4 + + TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW +
pkOjD7Sfsm7MqdlUa5y5IrP7bLBXxBfXN3gj30yvnFaNKvzUs7RaqyhBjKqImxF1tNkwOSTbp3Y1rpVTpEWP45jfQBY49D5Cjq07aTasP0t8phTOVPw0VP7Di5HrBM3U43TfP3Hw3awkrh1fZx7MeepwkYYVCTHHPAWwvvUyxqKRzL6yi5kwjBVvzTicEZTtrHRW4LmB37kDSqb3norHZm4z7fDM6o7yXZm1CJuGI
+ true +
+ TERMINATION_DIRECTION_SINK + 79b69572-4586-21fe-efd4-4a81a2b57515 + fvA8HwU6S35PxHowxG6WBZw8BDU4NvGU1g3IFPHpSMehluFSaEGMv4M6IGan4Qh5ZcFw2mVM01WlvB5F7LjDQYJqEMNIu4FlhlRbzMXANLVaf +
DaslCGvP87TqBTJaUQJK4fq1YgF8KwsoGUJjs70A6T1zMCJykkagzBhpJPxulRS2Dtd6sdyq6rZKVAifVlo
+ 79b69572-4586-21fe-efd4-4a81a2b57515 + 79b69572-4586-21fe-efd4-4a81a2b57515 +
+ + f3bae3ed-07e6-ac64-df4e-53c37798cd70 + 371eda64-3aa3-f78a-2711-ea75d567381f + Fsk4 + LIFECYCLE_STATE_PENDING_REMOVAL + + UVHOBVfwsAFslmmS7aGQMMR3KrHBhD53qMR1A7p2HXm2jJMiTs8y6ZBJiacAN9D5Vn6nmnh3kEYDfCW05Wy3O1M6bQyYZ + 3Nr1aNpkIBYy7db3d8RM3FNIERy4Hy8DlzEnmVHXxxvEKyzQyiuCQ9ku0SyIiHlv8RT + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 79b69572-4586-21fe-efd4-4a81a2b57515 + + Wq96Cv6n4GFD13DLO0qgku824Li55YoUhy0T3YgZxOuqR8bx0tNlXOfTrxYwnfiENayI1GAym4Y542C5viil6x6x45VjceYZowzp49Pr6OwaI975rpipWpWSmJcyPap6yYnC8d3eTsgBBoGUNZjKg7CCIO2yQrEop1Tx6ODZgU + Ji1v50OH8NkKw0M4J5A7utSUsHxrPjUrBVWzNDgVqsxWlbS4gk3CGWw8v4rcflDR8siN5yAv17kea4iiplV59j5EfwJvKmmSOEyL48hX8tbaxttWHgTQzQnPn6kZkyJ14hM8qVYyo9IWv3K4jwULm9AB7MAskkloB7oTVmjjoU7LXSP9gJUCLmeS8Okk0FIuFYnAdzLBtLeiv3rLEdnpztizauTa2tEHsU9FtM8Oxm62hyNVD3ldwvMGZyJ11 + + ADMINISTRATIVE_CONTROL_QUIESCENT + iZAZ3IyDabmrLI5XcQaKiBARsr2OICy0u8RxIq3Sthje0o447eOpPg89HaPhNn99w1yejBZMTaTLzXHy3wPTEXUe7KvM7xVvyuCJXBnILglc53K9rzU5oOjwyHiye63Esxnp8K0UTlYQoJZHaTNzAYX0FfyTduxF1M52p5OaiM0Hn0gqL3Rd2OezVEl90SOUxLWWQC61o6IEYY4 + + 4qw28ATxzABW0TLqSr1xS8EyrHoiJlQNLnHUPAjg3N43GPlq8mXSvuqW3GeNTXAxcaj1KChNhlIP34g + i5WNzeCDVQqOFSdR2wSF11sif30aZgdhd1XNgzq3hIJXsXOntz2usmNHpNRgV5y8YnNeW595NTU8QBvjaxGCTlcb03rV0ZVZeJ52Of8u02CQv71FEHap2eA2h2PaTL18mY225aw558VA7X8Dwa3zoDtxxjHr4AriztkEwRKtRx3Zu3C15xst3VTA6sT23ckuGF84oKxfis6EwBxt8ZX3 + + + Q2cxG0rmlEM4f5Zeq7NX42oobmUDVekL8oaHht3C8HGfFxuXx9MBc2RnpMTcSdP0tZzKlvft4VIJl4zKeldqoXFFByJtDyl7pVRKi65mUG67KxJYKWg0LOFmmoHSO3Z6QIQ0HWmtukseRb5CZdCL1aZgqH8fCZlkH3kgRGBl13AS6xm6KRJE1AUrh2yTTT5sXpJG6k2Zg + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + 6mstVBel5sFUsOXzmE4PN5wxSeQRgUfn8HI3iPgfhW2JCZiYvmFak3Hc9qVqkaFsJnn2cE9lsb4W2eMxtjIFmhRwHEO1OtlpQBjV7t8zw5nzj9YEsGj + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + Jm16kDPVhQw39F5IrQtwjiW2ZUe1LmnuJosVT9RbZfe1UcJl2cSdvG7usen5AKrj0U7T3YWV53WZ7xd1J5f6DmsXAP2brlmr7td3j1Yo4MobjBdUys13GtShbMkC7yWf21id28C7USi5lvZTP0OwmyFxkZ1jpXyrYIF1Q90C1iHmGH7nzNTNlqcFheYH3p0U7FNQGNsHXaVvJ2TaPEY + 52zm8q3cP4YOBDEii7Rf9NDKHwUpaKr7F1uNrxZ8tPW5stfKs6StTvdtTZS3Cj3hcx4DWWLqDAn63CInAAQmX3PQUHMw0PF5eCIaymA3OP9JrK62cWgaR5SDME2ElHJzjkKJGcNm2O5lybfLZvNIsFdecfLxXmZ8GBKeFpAzdFVEI2p + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + ReC6BeeClCYU9N1QvVaoFT5ooAelYHkIVOGw2V0gpR2ywVg1QrincnLAX0WOz8omW4KQZKYht0PZV + TDpb1tyMWoEK45SkrOo3wgOvxhne9jc2WtdPXDuT10vX6nhp3ytzO9WdqkjzvwtjRG9OkDzdD4bBjk1eSuOyDCLVWXnjlQDcpETBhkOMhRoAchP4LvDg7g3W5i7q9KDqg + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
c7zAALRhHuMcCLlxzqQHRZjuhA
+ + 5b0b9490-d76c-5fc1-11d1-dbf368bb4280 + HqFsBBvkd6Es9jwEyT0cyA5ulrphypyfQeIrH5DM3hecAKI0EId4jaqwuPN27l9XrJg9OTVJ22WCMEvifIeyKF4emR8t4iqw1GxIrsrtuf69 + xdxjhK6OV2b2PRRBcn7jgA5iw6a8Ez93MzmW + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + 0t61vWDb9U3U3TtRmmRU4nppkvawDz3DU1FhXatY5oT09eRwAIqE5PVic5OPwRkiTRAI2VzZjkZtyJZ0rhwpYrz2onJU7340NEIHr9GDtx61gXTA6pRWIqY6FzSMuXMhtnYVwwq0WoT + dNEj4n7NNXTlwE70tUaW90Jxp + + 3yzNdvUze23iclG62dGly7PUfN31gnUjVlY0QSz4NueZQNXK0D5qDMlSzgLHDxSqSRiABSwomCg4pdOiRUImG368kRHPgA80jqAUa6bxIrB0Eiinc0JK4PKgys5OU5O5woZGm25XtzX8R7vV7fF34ibvC9jwe0tKokjDngAQPpYGwmtvt1zpjKUVTe + + x:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER + NWuqYTJIfDr2lUgmoKJ06MyELFhSf6rUUVkSG4ANzUHVGQ9WASXGwnc92m29kl3fgg7OcACDmbq21zQCsFaY2n0XJ2Y3fUav2abeKFJ6R20SBImVopMiEMf + + TxQ8E2geZqD6BLC2UFHl2DxenEtaxyHi5pjCrzQj0tht6TvTycesHLz4h27PsOZq5i2xKSICeZ5kSs5ixkLe5kbfea4HQV7V61kQL2kZ1hcTBh4 + tPfz1qOfAKOixNdDOylsAxjuOnfqFjq08Fz15f9xRXPhLVUrt8LVF5pmsFMZY40ZKr0Hz97q7OHKJu34CP09Mpv6W96Ve6UQpMxYWwhVlQxWks1O9TYVal27v02BYOrnsQegnv3Al + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + 0eMKu6V7tczk1QaAew3KZ4jhfVbaHhlHv7jS6fRzjjLc9WMokI0cEjtM6wWNOaubhO3nVVPe6Aq7o5vBFvFbG0XNwMskWXwdDztymiEkK4s99XCOlh0ThPyNB18xQwDl56Lkgp + + dkSbYLti0jL9fakvrQVl21wmClaWyuIMOsPEdiOdtreIBq5Vg08i2EEEZOsqa24ZuTvH3kNwLTefkjaAciLePhKGY46872ZBVvbYPQusJIH3UJw629cJiOhg + ghRigleLwcsezVX9CT3eh18i5RAT0REg0vzgQF2eRmkihasM3v0cp8mmRW8RFM8F9zWSeQYX4jgmtI0o5Ssm0OJJKRAiDAXE1LwfBn5GGlU9VMp0ERnwF6fhPHzkaxYbinrMKwkqJ6rESQwwHLUeJ1vyI5SSu + + -9223372036854775808 + FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN + + f6dpjFzfXQmyE9Qh4XCoXqg1lfFdYXq54vufbWu0EQqaZhr3eVj4ms5zHCEFz5LvAfKD3eEI44S4dkZk7bolDtUkXrZwwCUYKEuNL0vPWoLaADuHOS3jdPDaguyEZsvJZZwKZ2rVi5XSAjrgbmzgc4ikqRZpbu82lxMcr67J + LIFECYCLE_STATE_POTENTIAL_BUSY + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + eBhFbjeMpqtV5IhkbIYcN16dcvCJbkcqVl56FbKWueSrW1L0JCcpDbuHG6jKqv2dIZjfa4cEaW56XJ6ylbPQmky2iREJeGWWF84I4geecck1Vjr8uhQQtoKL7pmd5b2Db6dfmrtqDFrqYSqk1h2uxN8F4mS1xUEI0RXebiEOYX7OIx1BG36eI6LMsvOSikAa4qh7AVVqLU7lk8W03U6M0Jq + + -9223372036854775808 + + XtLgM1k9sAdwTxWCoeNKmQ5LuhcAhND68gmV9yWB91ZUyOwP2bzgTx2gGeIPUmV2uaPEIL7JMZDdN12P5t5YS76zePg03c2xmS3Wv3Ga2bnP + hwiCt8vt7WzWczZgBoulsrRn71pig6nxux1XGoqNkZBpqsF2Q2fat6xsZWKfU0EoxGe54EKhwlyWN5Qw76GA4e242FbPFId4gracYUlm8TaVZT + + ADMINISTRATIVE_CONTROL_QUIESCENT + GeaV0li2vtg79R5ST5CvFZi3g4eUIt9ozjbzEtB1XJ8YBdQuakRQbaLr6ZlPlm5UGhmcKX6zHepas7ECsokDyY5wXidaFj5dAjhcgnMPC3ZWbEqD2L8sB5Qqo4BVny0PRh17xFP1JOXMkfhe0pytvpUTtvGI3GxMPyLm6AfPhctBsKQk9oOEFAp85XQ0DfElGpzMSPt91WKlGsyHJeeoODpLt7D6nhj3GTPqIazB6cPEEflntzM953Uyax + + 3MX90wkYWrcHIZBODpzktrPGAygw4VU7AR8Afsq3UCKuuda7CJk529DvHM1DzNL9ETBLe1O8wrCSENZ9ob6rlKW2wPy5Cb784ILaCzi00VSxAJGYVMhgo5aUUISoTZoQz903Bb3t6N0yxywklOAJLCwydgWY7dGGezCPKxjIlbgSK + 4XkEy684EdkscrxS0Mjut31MDmQL6AqaxCG5IP2e2eH6y6RqSaUm6V0BaQngiFjHhZFSGH6BNFHlMqLwtxSztL2DBhLMW4t648YCHWdvuNI8dmEGTx7ea2RLjvpgzTev148B0lYm0Gu6U9MGyMUIOEl79LfIEt6xpe0irYEsx9yrac7IYUiEyDEzoT9UffkEtkWVbtfIuN1EZ1e + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
90MqMVcTbwpwJejUHyublvHdoV3brhoAaaSW65H9B6FckZ6TpsWLQDYeyTqZ2OscRc0XhHYLOvX0mWUMoIp6mflM0DE2j6faafZsXXdDl2DHYplf0KlmZG8ZbM2vK9xVoxfdmsQHumhlDCAD
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + ZxvZEtd4g5U0Pdgro1l3uUdzPCKaPRFGo2FUvSRMPDEFQUYeNba96nIN0kXHbuorxVd2G4GvHk2q61ET4G224CQWWFvZaLiHHwBnsiK2uNsBGYmKFhNBLvpIaUzcyST7onuQF6S9TcCzbZcQ8RjTmI + ejnvTp5okSCd1bRG7inN7laKSFdZCoYQIdltCrJObl1c + KKv38aalcUdRZ4tn2bX7xqKQ1y1ms6C4Q87Ya9jnVp6UtAioL7vay70zy2O08q4Yq4PBd0Q9pWVLo59adwcLEdcc7S4 + LIFECYCLE_STATE_INSTALLED + + PORT_DIRECTION_INPUT + REVERSION_MODE_NON-REVERTIVE + + ou3B2Nm13JvTgCEqnI2PTT1B1SUN6uguRbXLYcN1VaNcMju21oRNiKobubYAx7WoiUah6XaT7XXM8rGaQxX0hdbLg2dO914rV6AT3LF3AuHJWfTEMIwVNzy4BLKKMO4AVElQhSLSnktbzeHdWd8JMGFgjp0Y6Wq1BDRKwvCLP5Whbvu7ADJebgunGndMjDFM8oxET1hBZ5SaAmaaZTp31LqH + Dlk806gpvNax4Lo2DyC0IFRtWMvH44QHq2Hi8YHEDS3zvrB9Ze1ALSVHxioBf6bF8SP9IpNl9IVE9oN0COsfzgW6ydzNbKkkDaldz0zIImeRK2JfIcu9sj7SwHGHrSTWUealeB3WPaFrcpGMt3WVeVNKuljW6dK0jUmynhmcr2EvjciM76zlTe5oshcymWyFJM564sbnmHTxT3b11KeUYcaqtmQPbhmU3sSZM + + ADMINISTRATIVE_CONTROL_QUIESCENT + + q3EeojbWnxWVUWO673MD3 + JzDe8hT35b7BpnUBji075V4L13PGGKYpjtvjKonPzmqRJlk2vkas76d192HQEx7X0D9LTwslSTcB6ovtIFVID8JN3qvHPCxPfGs1cVm4GyxMO2foA26daPSd7nNW0kE706841u0zUxlIrs71u57xVZK2fpR7JveJBfNvJN4wcieECdx7jww6o88DyZKhmQTQ5ydHe9dqrjWWxmVIKrO8zWD7Ofh26aS3I5KOfX7y93uGhpo2I + + -9223372036854775808 + IgQzsQSh0wpHaIDUNe18HEN4zPFOXvLFDt65j + + 71Fa1CD6hIgWmzS5FA5Ri6gFsqqTxvjwwYGyBjwSTMGglydS8aKrh0YJjpvQMOebNUBg570RTG766cY7nAyEBofUFKCkrQv6C6mH5eqQMpWSCMZRnpvQGCClneFOW2Uy0875eyV0XJKroCiL1FBHi5Vxjsd + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + M4iFMj4JeH7kQ9xnmaTre + + -9223372036854775808 + + 2nPlnsbKjtjCWbX7QDzGi1KG7QLYSEXM1E7g6aThvcUsfJz5e0LoTn405HQXdFB7jAnhDgz0klsz4TwaL9yEwuwCbfroUVvenTv01W1ehlNd7cnSlVpSpVmAaNR5Imb67yY1vRfE5USc674k3t4khqVj5EgG0jE0SC1fm8Tr2DD1LzlGVp0cHNnMrEskX6kHBlWPtIgndLoYkBwf0xjzkHeMdG6aFiS8vGXYg5duQCk25Ra + LIFECYCLE_STATE_PLANNED + 2b454936-1b31-1d28-4dda-1d3475708a0e + t70lSXizwhYV1ulkLuPboJtjR7chNBL8ADtksETYVKMO6Z8RtX3Jyo2pv6zjzcr1PNl9j78eJM2PL3G70BQr0LQnRpGrB0siFGsYNs4oe6dZ1T + + -9223372036854775808 + + otxA2LefkcqRuaZZQOP7L3ttxNvCwFAU10n3LBj5OBOaLF2tlRs6MNzbB5G7C8UD89HMKSJqtyt6dvrzeMxTz7W24C2yDOcDXLpzD1SYzl4EIn5W9DHJCELy8F6LtapqNGSqHKg85kNFISBJnbsZP6pXLoB7qSpeyhw81NgYZ3DzO7jbiD3ZJkWnIpm1hLfI3LQWq6VqaqZYpa1zO + yphnMZM00WM7EPLuLbsytCRts8DmIji8JzvnraorYarCZcYCnq3RVMcfUHBu1MDKl07M2n60xxuoJkTYLWHyALFml9RmV + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + 6H29x0yuPlOLcKe5fSdOE2RSZ50Ta3L8DFhaFQwm3c7fXdd4XiKBktlbzd4J9HREe8OMQc8Tp81md6ibo3EIw0T55PG6ppKDqqpgDq2UqV8D + + W3k7SFLPA9U3lAot1B9Ho3wVWkAQnlGboSa8yVX0WJ39cjCdUMUbHi6DvyuSU23iN5rl0glPSgY4At9m73xOeDkJcGt6AogntzAlIV2A41EEmN0lIq1O3lp71S5u8eRtNsPnfJXjCtPYgIjR8lF3y53sP8WYmNr278pfSfymIglRQwIYJfTicWC25ySjdbddkvs4K0qk8DbY2TOL1AVdwxftX7FbbSovfQrZIJcJf + zh9o2aYQnmfvIdungF7E2nmleW5qxkG7BPnvZddeztBhG6wWDEsyTGTZuYi2aY9DNw1EJeKaHekfcQ3Pmvn7397y7pAafJNU7OqI3aSCocSA3VihjxpmGw + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
25DO4seMngFZFJR7EFhWYPlknJf3oBTiHx6LRkyeA5d7OX7tCohA5uMtd1wtDiLcHRPy3fEvkRv1GCmaSDKQ7pjcqHFVZqZy9P644KrhuWi2qEdbhP1gecsxT7sLpkjq9im5UNmgKEj2iwdrdeHsq1Zc0jXhD8HMi3SdJ6ttLEvV2JngP
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_FORCED +
hGNyBLItPjrr7Ghe6qaBYrSelBioLaW2RJBknbN4uevuMEAT4KmU4e8
+ Zeu0exEg2hpA4FZjTdDBVZX4ktyM6VAY2WQgtmooDNYzkPS52nHPfwTzZkeY7OO9KEp50Ntwsj5N8QS35rSkYEUPY0N5OBfq7wn0kRwMatrbjcepDYJBuvjsv6qbAxtz3RzfA52KrlNKxT13SLwm8PHwWZzow3XrMpHmmBYNWMymxrpp4VEdDdJrcaPAdE1R3Idqj4d8IDuf5Lx9ybebgPCs0j25Y3XTE2bX6pXOUj4R4B1vE7yUX3eXm82c +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
qQLC8mIr0AhoYQaS4TTrkuwce0VaF1pXJ2ARgaa8LrxB9Hm5s7xMtVRIOMKlG2ap4K9dVjlyDS1ErnKUn9yQWpqK4bXKd819K2mFeI5Rs7nUm7GJ86s5oSHs3F48FXap0oX6Y2Xr1cdgkTRkRjpf47H7ED8bBaAtypzxkoQdA3tMOl7FwwNAvmA10I4tKFWiWvHgLpulsX88a7GHDth1PRUHrZa3
+ true +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + JmDGNo3VJFPOnguyfvjO5mNVBJrsal9MIFsn3naFURlh0QHfl03jfJeIky3vLc9lRBINQKsKCNTCvBRJtN2Ao8jIym5kyeFiHg5p0p9u4VYAwIbRn5sL5LlEZrYpxvH7DEww3G00tZAZzD + WEcMwWCnCkcyBmp5ghyD7PLLHyDJonckUp6ilBFPVKnw6NBe42S4JvHqVl1jAevuDCMY5kF043o2IZ8ET0IDnqVbDXu5b0sOu6EzqjzueXoWOxBApb5Nt0Y6Xk40cwGGCk73wypKnOz4d2ECdJhHB7Fr + Dz2qcvHX5i6M3qIuEhO2p0X0Z85ZXvzsWtT0QsYWKWIOeiaSrYUJYRJQZGPP3h9ZC20tvQh7MZN0a + rw785KkcFQDWB0C24P4AkhbBQNBoeVZFr7FwJ0BgIecb6Pd3whDQzPkhCVFQQxn9wVG7N9nvfrzl8MoF42nvJHMdCk3sRiCn5auSbJgqaPDbt2QxWdUxVzKpTFKCXeRVodNrWVRYCu96oRvc5qJSZt9K8TeY75TnayO6mxWY264iPAvMS6wJAGlAzzqzwbWyCDwYasW4qTnglK25QrOi79LyAb7YfWwRz2 + LIFECYCLE_STATE_PENDING_REMOVAL + + + + false + true + 16013 + false + 482426258 + SIGNAL_ORDERING_KIND_TYPE_MDI_X + false + d8BV6sPfaN + -508111585 + LOOP_BACK_TYPE_NOT_YET_DEFINED + + rkJKWzK5PPX1y6nL0ZYybFaOy92Sk9mEt5ohw1nlQkfoiu1ilZQwwTcWUeHfo3LR019p2wCTIR90dbaz20XrLanGg4NEZyoSzp9uNLfvvonIrx9mp7Nb9aJp7oWYOcIf + SEVERITY_TYPE_MAJOR + + false + true + 5tj6pY3ywElnlhduTlx7m12slJzwoBTt54rmUmVq18OepTIb78at94NuGmS4PEqUIJhD64VZcB5unNxuNHXWLCjrQboFPGsqpJ3nFQeJsjdPZKbMj0B5CUos5E7NkrdC28ZHY6ripw7o9a3saEpMyG6vk6axxf9An0he6Aww7wMgGPARt0v1yCpKIzhfPiP4j7ipzHNG5AOLppuTh0MHC3rkvJrc1hgcgrCP0ho5RcQ9td + RX_SYNC_PREFERENCE_TYPE_AUTO_SINGLE_PORT_DEVICE + false + true + false + true + + + x:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER + TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + + WI2HNN2rElh4TFL0iiwOd4HdxyNo7iZ301COHw7lShpDW3D6l1NyYuMn2rE1KDWCEyil4izOzYrnTWl6Y8FOCjbwCPpeklRZL1cQjLwSCY7vUtCKB9q6kCuOjU3w7MnTNzBZd7JHXR4ScyuFHVLTp8IAUD61htM4VfV0fFHcoLWAcrfTeTFv1f5NS4G9xl5kA1kPy12WFYwRhDCnw9SpoY4g2Lhr6nMGg6oO0iKx88gqLKFaUyzaoEj + hABnPnV5mbLetnDCvL29nzj97KkngDFxd9M3wA0KLEQf1lRp6LyukJDklXHCsf1yoGtMgtpT7f81BRqzuQ3 + + ADMINISTRATIVE_CONTROL_UNLOCK + + uXOfgmmUrJNaJMMFu9psI2qYCAQ0diRzfFOwT3ilM5nvR92dasxTuXJYqsRvKI50gTo9WGmJLJ6vT9A3B8O5Xq4fSNLCvQuDJSFyq194Lfzwo1zZ1gXZGTeqGZ23HpHj9mRAf0E0f5wE6Yv86sZMl54TXYXEnwXxSG77yL0GQocOmHOs2N6nTa9I16moCcNmKUljxdZfC3WYKKjMqp2bsbTth7JLjx7Wjk7Jy6Ya + M0LxjyXBs8VD1oM07xkww8QIfzgdpie4bZBupqXRqSuj88j8FDE3LmM0NU55dj9ojKKI2AsssOLtX4BCA7yd + + TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW +
b6jvfzORcoTMIl6xYzu32Yv2wIoIOpX0w8nLI3DUjoy2KEzAeVDgT0iiJy0pYPhuYEfyHKk19S3LoulCpRLaRVsAul0sa9W0O3qnGCoPmjsLFNfWw07oWrQiMIKPSyHGt039CkQZviC36RZuS6SGqBY4jAL38tJttFD5RtWeEyhCih6afZIxsGCLgnPgIqJ3Xe1GA
+ false +
+ TERMINATION_DIRECTION_BIDIRECTIONAL + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + Ai7unL5c7Ac8nyKcw1m7ZbSGoIs2mCtWNtra6ofdYjddRXpgYLnPP7v5HQZ3kl07OjiMHpRFI4SzTaHJN4qC3VAKLzO6UG5AZfeGE5dm1XOM7vnNsNhvBR8ejWcduiGtxU1cS6qL3ey3KNI4tZr4RziannfRFVc4Id8sbzd7ND2prKtUJNQsm0CCnKl2xy77D7 +
pWdC8
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 5b29f3db-6f13-96c1-f189-f038af15cc4a + 371eda64-3aa3-f78a-2711-ea75d567381f + SQfaKLUMEXYPM2AXFsvBaaC8VLuwLW1EM9OoMA2ixS8bNA9k2wW5Gq5t3AZPwTlb21rOBm7867cTHdeBJ2yhkEKoeC5Cvi + LIFECYCLE_STATE_INSTALLED + + G3EnsHCXohNYB536ExvoO15DTUygZKCxF9U7QoW7GB5hy0fcyDsmwpRhjhxa12IybuFTTt0r55ID6QQwlaKRAt1LKyWDswbDSIxLbp48nNM + vuRQEtz6WASG1ObtceZ4WoIZNM8arMvOgewMH6TDyLbrreNDsMzg298PWgSf2n4auAWbyPHZsSiT75orJQILZQtNYl3SAZ24rQ8SyPJ0z1MGZ20ISImSyHxoUsgurarL0zDygerPf5oe7oP063SwKhUwK203cjOcKjD0x4IN16T8uA8s + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + + rj6lSjzu2BUbVyWbEy8h3qWsJVxDgKyIVw3OQuaKX4WKvSO9iWqdffxY2 + ujGUTCqOq8isT7wPR1zF3Rut4JAtzDxVWeHHI0v08Fs1MYIvS93V0xgW8RpzmPnaV4RD4mD515YFVHaNQdAJKRxKAPkWEH6zDX4AbHFcEDRzcTfV7PwJG3ugSG4 + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + bKls2dO1y6EykSEAEapo33U65qt8evgp7BJaOxbfDPNPzkiduHuxKowPPZX3n5k + + wwOstAouZQ8rO3ifCR2w7 + aRHsqsqmJWSpge0wIZeJi2MtigkcMrqPb09BsAXboHBxVt3wki7CcT5uaqzOJZvURFvk7knv2Q2 + + + vZeL9L3FZ0Urijcq2AeLxYDGaVGGjuYPl4AmPv2HoW8y8cY2EcN3biJlepTxMJmZNOmvco4Acc8kg7mUbaXmsGzyXl6B4kBK9P7l5bNhfVuvUQpYSmcdUMLJ7Jl34OFdvEqAPdJW0drNWILG4XTQBxsAgNwkt3pYIPqpU9mVnFAbodRkaD3EaveiaKDDGUtoCTFw2TjhzLkPYc91P4FRzT9J + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + nrtn6mdNNvxlFCzcJnwdiCKEBI9M7JtmaOChaP4Pct3R6uWHRsU25EyyeHldjGstu4KxLHmYahP8MLPD6Jx3f5BuFOzYu1rR54oRDCHNUwOGavb87JbmGEIltijXjDGhHW0kzHZl5FT7bWfixiEeXfzqxLfIoWR5KRhbq8wwO + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + Eeczzs3s7znTLwswR9n + ioKn3tOWCykhEoIeQLyQcNBXk3m34JYm7AB23qYxQbOmzwAi910mOBj0wx3A8TOftihoA8WqbCMC1fUagMw4fI5Df05oUUvf4FEENsWQ4AsXPf8X1E29eZMuZKKLwf1AUxezR2pNCKLsZThSpb1EaG02iKFORGoM5udWwvK8fns68KYpVS3YqV0Ixxwp6M3bgg0MDCMSZfY7RPwMHsK7fCHN25c8R7j7nj + + ADMINISTRATIVE_CONTROL_QUIESCENT + + 2nItaImTiY + 1roModUSku7Rpt01RBV0EiIZk + + Rwgnn9e01Gcmg34XbvR3vQFcvJqNm2k5ytsOCyOwf0SvVXk7k3aPUPUprc5NfhKFK4lfD9LK1D7Xss4Fv6mpOg +
KuD1g162LqpLiG6aHXLCPhNpg7Ht59FQDiJMbPOW85zqMFAtudYjnLIDKhZQrwy4O9IRYpF6ufo8MQCh4Asjd3WPkNxLj5IZ6iQ5Ho34vkchaOy6gTplWeb8TIUdGu4MENJmbFiGZuX1bo0j9hF5nQdhqZmYlqD0deegTwWK0ME32EnbN2
+ + 930cb914-c155-150c-16f5-4bfd1722c63f + mnxPMxQMwqBiEHNXhBX3LkuLClZgXHzbX60JvIn19YcNyRCPsrS5LeQozPEpp5Ae3tXqbkscawRAnlpHN9NqnDGXldeCiOQehNElZ6p1uhCJCTrh36IiBo7WBlqM2g0bVEw + kkog9om43UBh9sTHL3zEQMCSImhUz2qLmGTv58r822h3m3CZ64EXI8Pqu6dW0DHmbBRgJahD4yyrB3iI7WxP5e7r + LIFECYCLE_STATE_POTENTIAL_BUSY + + h9aPmDhrLJMiavjV9W7SRActOZJzicVAeXhsAzTeaywlVH85D7Xnz2Qn1sOcECMKzVd2mYgxoMKklKhZR6eq84F2wue3YSFxNSraJHz7ljjH3AyMzMczIJB75Ha3zPtnAUpjCYiX9Cwc44YDI25rLGyRoAMPhf4Rat2ErltAP0ETWupFou622wLi6x8nNc7PG9tZmWsbWYXLteqJAoLCUwN04VfJZmyxwTxSPRW + PLpaZHUr5xVR4IR0v6Bvl12RUrBBipf0aw215Wkaug1qYKiuJTR4UTNGdghvGpnIVqC1eW3IcX03zipa3g6P1Lve2FKA4ZiRpUKERGeVv7Y4pn7lvdaxZyLT5nt9nDSMyvihbp4Gw3CViJ8OPbdGJYzOmUPJxHnX4y6fXbNt6qgg1pWQA9ob8XZuJG59fk6kSdzPgfimFruGQrpiANtADk4e01n7murezTWP863FxxdnYCxri01VcY14RpcdT + + 75qJHj2Re8zxJPwyjSY5U7X52tuP6iD6nVPW6RNlReKsWgSf0JcMQ1KSuezto4zLZgz6Z + + x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER + 0mdlFvfC2MlvqxKBfn4FdVGzpYKstbnlyAH55OHZA2m0s6uHmqmzl30DTK5eWkAmU9jRX0RpUdpmcL3y3iZpdZU6BZkpbML5V4WSWF9RLz5Xc9ngjm + + h99rqEvR4Ws77263rV0F3sRnP3dMB6cSfdjGRPxODRVKM2GdPGTK8K0QGduhjH2yUl6E2vkGffi19Y6ZxZBFCBniOSrZrtqdPoRJU3h9jA2kq8bX8NvCoSM5CdW3HmhoL07x4hGfRIz9QL7QqCkOm6LZkI2TWb9zc86gpEv8eWiXHpN7T0O76z6i91b64 + FglEoCiLLxI3mhk1h51Xc8obqy4uE0GbhTPxw0j9pT4L2gMjlOgpWFsm5wQBxpMGiu5GuoPT9TEc9ivm6EM2behgDZR2ovAzZFfl4565QChSV + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + rIt3apj3wcMAYuBIe6OOzcS0XS8pQZM9H7cRxnMVzqwyU7g155Pw9zoZjwo9v2i49mOyKAujT0RFZ0GXXnt6PS58glaEnkIpHwXrZjKSbupbm60jlthadfbuAd8QxIfefcx6waQHEfK0dKbr6sBjzEFaRN0po7vDb3BH5rhBGTtMwEdCYGVyltA48slwzR1KMCkR3tkCmNoSrt + + JgErSozzPTD0H03AAfi3z2Dd97Df3oqNE56xlFY3qt37u7z4eSZNMuSNCwUFUkkqhrXDYNGp9BoDAYzHIqmmVf9pL3Wxf9XxsN2qsIPBb66E4FdEYz0TO9ar46Qj7OQztS0VsHxwND2Jbfn9OfUvo4Ok2FE2lmBO7tJr38PQMRsX6HYNXSadOYyIv4KQieEhHgJKoyt2iNZguX3jHdxn4X6z1IqbOWto4c0tClvU8n3vc6OUcd9ga7 + 3Iffw4IU8MNBo8ZbhmeEqcscoymEItuMbBTAFBmOn9hDi8GrmM5NZpZnXlUyHocSR5kxyHdVImq0v7jRLgwKGw0vRU3qa7b1cvqK4vxNSQFfPZYA7vdNTdbCZ631ee2iJlVOQkBAa8HR7ysf3xUOKXqB4tCaHwkjRfZAAsaCAKuIiOPdlB1XzrqvN2FmyZFi7wSzY23zEx9WdY9qr2f0mFn9HUv8M3qTzikqcnZRV8F0YPrh + + -9223372036854775808 + FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN + + Uruh7KcwKEPYu1Y5pOXgrtGVz8T16XrShN2gyeFaSm0fgYkFFiV6LBTcKEdItwBCkDTKJyMuUMJ2C3IhdDfY70bJwgrSNUuZpfB1NnvA16CD1cNfQUdXVgGjxZbcUybbNMct1H32FxxHKkWsf9h2qXdPOh1APcMCQY5Ry0L5qiM2DIuKKLE2ARRg8SRXWvsMlxvTqgZQyDS3meF6Rj8r3 + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + h3x6vvNH0cJZEHNU9X7WhLBDcFRkL3H2660tCN2u0Llwk9qtYqif3LK7qtrbw85uf5XJK0dCDy8YzrrxRJEUmp1MSkPhsULzRBiCtne6Wf4vGoVxZzjmYc0JwQSYKDqu6A6rYc + + -9223372036854775808 + + H3JqTFVljhKO2aWT + mxCqLQXRz9R0cIAfjS0YOl9X6XZ8TLT7ivx3enMNwvGI58Po0QeG3nD1kva5g3cqqClwZZkvuS5r0UPSC + + ADMINISTRATIVE_CONTROL_UNLOCK + wdruOiGettRygOm1KUatFJzuOAJ4TXBha2LYcjcFM453Kj4ud6QKQp6wZPAKE31OXEN9XRGCNLxx4tUazKMh1TNSAfC7iDVf9Ag6kWA7zZxwsjGUVk3W5ROy6iFhNAoW3FUntnu3mTzHc7B7rEVxnB5mTCDycTufyhC2EZX0KwHXDaWWPKl4diqZUVxZP26fbJ9PA6Pkup9ZzYWgA9lNsDMmzc + + N5A7jB7z80JB4ErYF5pZWYekj9zNFvxkB0rUtqmBi5ceBvcgAu7osmIEv9j2FRm8JF24YoF8lRnWezcOVccgyMU3Wd5tWjBFQvJOUgX7Zc4dL8Tzk5PSKJNyWKTTVuqMZ2sLahTatPn7X9Gi6v2Q6Qg2s9Nov62 + 0u0aETk7IA6yJEIP1Ky7sO2VQHblNdIFzJQ5u255ubD5QdVRXlZi9T5ZAgdglNVMoDSTyXQ28l8QyVAngrFhkK9USm251YSqtKb1H1WHeWyMR09ZrHgLrpxcDAhFy9XTT0Vs1J27FAToAUn1BvEVVb7qLgXbqU5bUSwNtyM80xossLlVgZI32HmOYjRg6WjSGPy9fk9fSxHca2Zj1Im4hAK7 + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
HCYo20En9T7ztbJv22pKhlURX1DqpnIY0He2HShIEg9ZrTmuNL64Y0ONUjebHW9zvft40LNE1WvlHRHnvFjty79sjnD0bErHTULTFqpzf
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ + qukKL06Ocj2dXShnxzI5D4xP1lkM6mkpJE1uw7iAidN75Wvvv5A097Pal9Pjo9I7FCt3JDD2Qi9W7wjuBTvDScN5eupCvZB2BW5d + C8t9EML6bjCPcruI9woQMrKCm1sWRO6lOruse7ypq27CttcC0tsMU5h8YJ4Ip23emqGAx7RY9QsDkF7c0AQMx7VvRRdgM9u8z3A62j4bapGmWOyWgoINwviffovTxS16NtcPM90OyHamnIiDZSqnoICv6ZovJhB + COlgPe5fN7BaQTNHDd41NyoMxMh9VLFxr1Og7LvUSY4AJJhmWdgBLEfbjpk6aZEBSkRR5eLX4HyNqH9eVpIyWXJ7mVdwNRZx3Ip8W2Y0KoF25PhS6Zr2O213YfzD6raa9raYu8Q6ww8udhmj8NeXIf0yurbtSdv2FFS1OI7ce7Grp3DxIRmiYeQlGTOq7jkEYcxENwJ1Dhl2c + LIFECYCLE_STATE_PENDING_REMOVAL + + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN + REVERSION_MODE_REVERTIVE + + I7iT860FpugaRT24z0iVhMr8ftKbrPK1W2U40MBp9Sz0DuW4u6SLSbT7 + vi5cV70PT5QGGfPqPHWbESFKKiDV3CsrNpDIoEpaB7Q9fxs4eo7S8MvTW0GZC0ipqWZGshQ3oy4D5wzcUG4VkrGgrm8WfqdFeddGm4BKCGgAcPMZoIUIaARtOZp3hDAwIOc4KOGeuWOyEsx2brCdTlGIcYDuBe0bUcfESVKeKzNo1ki4EMhp0Q7 + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + 30nrmcDFIdG8x1Ep6Swnd66B8SYNsVAwVXP99sOJyvR5onmmgSKlQIWZAUE3Heru3gE4AkN8HF552skak4v3Ej2f6GaNMBiPROTj8ysQdxN8Z7ac3GfAR9PXHRDtkVa3BVmBtOjze7z56J92hoC9pj662JrmwBpZoLBKsUbGTKL0tVULboUBzSHBu1XSCeSTZtDrfOZ9qL1T + NEBbqcCbMdFN2 + + -9223372036854775808 + gRrAQyRpO9QrIT5YXDOc0KRa4TkjrCezlF9bdTA12jtC4ysU3h641Q65Jrg33vCoaMrgx19rcC393w3YN9UGR1DBsTEng8LrU4zj5IKadOjgke6Zn1x722IuVeRcmuv9y4svM5xZTI75We4c7tj9vTvi7eulARm0NHvsMVjFDrCsxyEE1XFwIaOHob2YUhYIYl + + QeAiAfwxOUPDK5HCgvF16vzSriKNlYnb4XtF5Z4LUToEQX87sG8rbHbCRWhcUFnYuQvrHrctls73h8aKOi3ZRetI2CMW99NwRaXrC2UXmU0E23gQdjH5x2FAEsoOt3cde9EQ3yFqsx4mAk4ODLL + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + xVWStHyLGR6cIaJeXfXRL74FjU76tGcSt0DWHbHg3FsDI4JFjzo4GkCZeB6zhikKiXyR8873NAynEi3PRjMxEowKZuc9MwLWtkOBsNx7f5vLnqB6BfD7v2Smw4vbA973tNwNtVMI19ugzXn34SazM2VbYjmysltN1SAmNe4GoqPXf4SjW3KBXyMWR0mb + + -9223372036854775808 + + nhhJMZsz7lWVpSXgMwA7D + LIFECYCLE_STATE_INSTALLED + 2b454936-1b31-1d28-4dda-1d3475708a0e + wDhRa80Xwqx9AObyeVZwBGGsopcmn54TIlCLlvIRV7SvW43aRUykt7MRwY5TVaE + + -9223372036854775808 + + Y154U06qwtHN4lNxUMSRz9BwhfUJnpXlq2hc3fDzBcnFy24kGO3fXEL6UyPhXNuoPMAKT5kuiz2Qt6a9VegKSTRErGVptqFb47VXd7kvymd1sf2nti0ecRSvxGUT6z42HRRMRbhpxmr0Blf5EfbI6Vdwt0prrlt04lMVo3dWhEOTZ3Qvb159OjFijWJK95Leip1GleCCKivCml7pedyVoe5zaObkLWq3erCzG6bipHULU2297A4nO + WRP73tWtoaM0Jk7UDwtx9orbpqLlNsmJj3RmwNHV + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + HQ + + OK3fURdL0uqNja1GacA093Tj5WMGh415PWkJFqmxMEd6GeMRqfJriuCnioVztOwiCRT997HVEM1k0G3iVMJd8dsqBnZW4w6GfZQoZpbD35X3L1lGFWTO1deCs6rwCx5JpVZgcaTffIa0Bny9jjXkw3OZ17vDFAeWndcrg5yvFIo95 + igg7sM29D4g1zVtORR1Va9SJFyj3zhRRx7QSMS1hWhiw5McWv5KxfC8U2sPBJyk8ya0c3TtRbEfgqr4NxOkEjtqlN7XoFhwdkphnaL6lpmtHFym4eGIx18TOfIcVRB0bSiq2VxocTRTqhfvwNdVPmOvBoIogbhr3zS5uhlG25rsmyXKlbG2pmySD8hTjycmZWjl + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OMNIDIRECTIONAL +
kAYKxB5A90ZvqK0y1TRrY5iUoD03w7FIHEs77pzghrLHbMf4xYnv3Fikaanyh
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_FORCED +
7KFrSlq1L3UxtH35Ku9mFVrcAtJKB1MADkTnFcojfaIBRLGB7PXEDgQ5JsPclCFQWyetKuESFmtw0107IPMd6ujHW0Uhur0iZeMCI
+ OMlbh0vCquLSN0nFc16LN1oGyP6ZWSLCwYONZbihFValWp00r7L609MyQKyMvbh1a5H18ZiNUk8IK1I38t98DNGly603ahWkmDduun9hIaZkbIfj3ojybRUBYUw8btkpYpLtMUKm4JG7jVifbBNftzQjtfjwADVy2G1GtD3pfBxqpPFAjlHMUq5oFgU7TIFNgztJ4o9j0yKpfpRyKzkxZhVwxHDiha5yJrhOP +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
xeVsC3exlZYDjoI
+ true +
+ 79b69572-4586-21fe-efd4-4a81a2b57515 +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + WertpzjOo8x3U37otKh5mV0Pnpbr1Nd + asQSw3JGKsFnXBOZonYd1b5Wh9tVyc5IFOt3R4JtohRlSxd9U3mNerKvs5j1hgBW44RN0thoK0KuxPDrSR76jRuLWNE53gU0cLNde4BQ4dlt2 + z4sXDPoQ5kR2EZ0PqUgSKUByiNi2CD73Hr0c8gV6AM87D0W3U5NwRh494f4ySbtzClLKByQ3cQaPR7LD4q2VH6WDl0353wE + MI2TTLfwzUbEPryPvcDIqzk9wpuZscM6MGZFr64S0fxQyXx312MsCYB0nXRH1wOOcFlwMpoEENu4D28E4UYyKrq7oaHiGv6K2j8OJxlfcPkPJkmG6k6QMpP2zwk7TiRWC0CdpXktFwbgQxOWRNMvcuqD0KKM3tAxl4CK + LIFECYCLE_STATE_INSTALLED + + + + true + false + 10278 + false + 284340656 + SIGNAL_ORDERING_KIND_TYPE_MDI + true + CIZdvNke + 424471352 + LOOP_BACK_TYPE_NONE + + 49nbhlhxUghmLveBQPrUdY1eH3bjpyAtHXwYaNnWVFjG2p9T6AFkrGq0BCk0aUlRJSHLx5HtCS1E9bpgD4A4CS5duh5w3rfEbPpIMYboR5U08c8L8AILtFQPWWmRftvqiM8WCcclh7epjm2rXK4qpV7dJtWYPjg75oWIA83Jf90qw3StNOL5JSake7a3qq2oPY6hZ11631xz4hUK5FP + SEVERITY_TYPE_NOT_YET_DEFINED + + true + true + vE1qf9fc7uS123Txh2K6xnOwAccNiWrOtkeIumMBQwuSAfiJh2QOpwdSApFTdYzGjNgN92gSzKK1Z2K9XsPeR26rjDcxCL5VrmAAgIkPs5QjZtkOV23MW96gNiFhWK4n6wPfea4y7NRY84N36QI2RGawYPNMsR9qfZFt1K18pL6xPTsNB2HlIKRzzxl1gvkwmZZnB1v0EtplfS0QUH3DrV4TspMIM6e866nzZKADeRY + RX_SYNC_PREFERENCE_TYPE_AUTO_SINGLE_PORT_DEVICE + false + true + true + true + + + x:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER + TERMINATION_DIRECTION_SINK + + 1Ejieu6uCwxxzENUgWRCRSr6huybiL9bikmwOk0rQpQhVDbbs3NbN6iWBQ7Tt84Lsq9hL1ItqqLd3WonRbzwiRlTzsEUBAyV1HcEJM71cKf8zDniHWPRFaC6ug1XQrTJ8XfJKfLOZSOqncJ40yNGApE4xxUgYNR7K7Imet35dRwBV7FWFlu7K03ayXqwChvfg6tmzwkNgQg3XVZu8ltTmw3UmliYCG5LMz7d5rSd98h + W8k4uNXQcSCqdMgIsmt6VskSUcYVlfU9f6dJU3rYVVo1IEB2049NwtyiFweSD01S67CSaVQXReYrLrtLvCrU5Z4Dvan0apS9wm1yiSv1YmsJNVnbyO5vF182cw2mNUvbhpJrhes7sURgH6rfMoLrhLlt9nIWh57quIRLXjLh5uxNAQUe6 + + ADMINISTRATIVE_CONTROL_QUIESCENT + + oF0i8tF2KgF1RJKFO46jgZnqBG66wx2U424cvJf70U1RDDojAvCQmZ8XGe34DXYIZ2UmE9mEVnnq0LJs8diudqkLxfP2dNKcHFrlGNRua6U2KwvSJFfWYzzvOox13a6DHxYnkIRmGEgqaDbTjqIhZhEFy3zBdFeU45agFTClpSEzoPlH73Q6cmDKpcevJshNpj34dxiCiW4GDpnKk5Iwrl9Qqnd9HvX7OS3Tqdo + 1soEJDoVI6j1ksRKPXTxsIw8Br21FiBGCZlluB8cIrd2UWMBTx0dgweRY8Kvql32cgfGSnKAOPuAL8cxFcCNJQwzQ8WgtZaxgh50EPAlEWVi4 + + TERMINATION_STATE_TERMINATED_BIDIRECTIONAL +
hV2NmKWa1h13PhlUhRCJc8x0qt775jbe651kPPuIZwMGFZsPQ4q3dY3vr2voeGCcLwxAdTjchXSPWlEMh4Hu2C0mxnKD3fPOLeoQ0z3hwN6k0C7izGEtbwPATsdWH2Ck91a9s5qZTpbT1a3sRIWU6Lm0dzOMtr6Ck9DMe4D7lPTeZOHIoDuvgQnmhb8Lu7fOgTtuPYu2Ff8x3P7k
+ false +
+ TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + 9uuhba +
gk8s6dPgvg4f7s1Z7xbe
+ 2b454936-1b31-1d28-4dda-1d3475708a0e + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + d7870bc9-2ef6-07f0-1e55-0e11c3703d8c + 371eda64-3aa3-f78a-2711-ea75d567381f + lFl7Ggq4SAOp7zxJSo4aPCV5v7lQDE1R + LIFECYCLE_STATE_PENDING_REMOVAL + + I52AB9q69gVxG5dseQoxAGWb8eNEGOxoMzQfA8mJphhXempt5OSFm + QuVw1BcyRQ7H6AQsj7Bs4PPlaU93rnK9SFxT8KjZsiyySgScntEj + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + + CFQb5sVtw5a0SgvRBen77ebm4VClJS4dpVgufbQD80D189SJnf + ulUJqHlDq5IvuvLRCWHf4zSXITQj8X2DbOeBnr6NwOaSbVBNRa2OKNLsGtDPjykueqXCR3hfKs7V + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + h2ADAu2Ot5cquZ26B9GxE6dv9apKO2J5WkIoGL42Qgsc8miJwZ8aXmx7wWJdQsaFEL3do0f6gHigWsZkr8uhuUgSQZXzj8eQT93h9iniRxyFZqZjqmAUgIE6HCxSCLInNDEWVT6FixkhXcAny29OKFMj9k4LXM8KiEz5pFKH4XZ19rgHmpnY59aeleSjS03axugW20E6Pv8YWoxaGU9LWjRhxJApCws9 + + LUkcVswoHveq54U2OLi7s9 + uySpPRA8uukHpMdFmITMFPyHEb0Lw160AQihISi4eCLDpYaLy3p5LPNp0F2oG0hgRzqrrIvFkhaJ7kmyfLD0Aqht5kREk8M3Hcu0USFf1HQ01dy9Y41rmjUkvDYPMKTlXfmJZTQ0tH1mMrvCvx3SIPcdl + + + J1PcZ2t4mlL005yARpX3ZFunIC1VdklWl + LIFECYCLE_STATE_POTENTIAL_BUSY + + nfvr5QtZEWBs0FJll02wXV4DUIR2xMfU2KdZtGZ7Dszv7aRk2LRZzVClvlnU8vH27U1AtSHYd8tcicxdYocpbHKz27t2u24CXYciIMgVMJ05OxaMVm363NFYU10h3XTSNXavJqjo2jlQQvuDRxBNk9D6aDn5s8Yf68DHrO5t7qbPVFkF4Vkg4Xe6sCcVCa2IiFiJtn4sGf9BMt8IhsYlpdsSHEFjGHUYncAIzwb7EcJq + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + 0kcupzP2rIZ0aQh7T8EgvfSx25JnT4xUgBox25AmFzePivO3Dtj8A3xC0gZUcoOtR40U1s8H2mwkRdnmGzu8CUKD2BxfZdAQ9ACa3KRX6g9Ptob1Xy9AkTdmuCBlP33YEy0ziSoh8pYtN2uLADdUoi8 + UC5BF0rbyrKJb00jpQM5S8QkLV61dfLZRIsoJTAhcc0odSzuBezlmhG0cE1hTNgCnI16ttgGF8WSTvnuJWP66n6i2ZANEIi2jb0EEgcjp84iEjEf7lldJjwLbYqPyIJRTKwp0IJhJ + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + tozJgxW3rnsyU + BLJ7O7E7CpB0w6bpYwGpfWW4RgrbGdDiYmpEtWMXlfQRlT9bpPBxDpBmFUxe72wXpNBKJfA4vqOQ + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
D
+ + 16fe6bc2-497a-74a9-5961-043200165dd0 + HC3kODbq7F9a5AqF493zTnu2FMGA3i6KN2WBx0TFF3PKv7ishl12Bo482CI6NHIABF38FXFkSnWnuePDsJF37Bb16M7LlQdWvgW25CeXZadlh2RJDoEK0HMYtLBOBOCY4z023eZUhcfy769KnNnfu1dQMOwgu9eqA7sDdspuwE2DD3g0QD7dEkVi0rymANM2Ufx7zWu5toB6sRYam5f0hai9CRv4w97iowhPtLNW2gUu7KwtHMlQOvZiemnKv + 9TmPBfGRhZosGJa8mTEgfFfroH7HOtRQf5xQcdAu4YWLzYLNJi3YXahdKpMySwgZBOIO1aa + LIFECYCLE_STATE_PENDING_REMOVAL + + 6WUvqIHdYtwFB8OdtvY + bogLvflnVIL1EGp5gYi6sGEVOk99P7kTosETHR8uzUwesNbILlOd2s1INaSu94nxxTj6LrBcl7qNMtvxPcDRwEzbOjGPoVfNHyTsZuEltX0fqwF7AiY6WqaCJQjZDyMk6GE62bjw0jDiHiqhAogoOqSq84pLC4YJCuHEF02xbGQTYg2rEiHlIsLQw2u8YkJAOi7m + + 4BdPg9JwV5DFCYegb44H3nVhCyNYkzIo2O6jXPPLVlqxbFNnBJWx6JOI9tyu2 + + x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER + MePy7wpywmeSaTI7i4r72Bi9RfFBAXlnbaNby5J4rYWBJxJ2Ba9vDjEuycX99jodlboUgZQHXFbzcMtNWCirNOVm0 + + EhotkGH45luPRLHlzh9srbqz910Xoen2vEoHk5Dhq8YaLFvcWwwnHXOIQOx62V1qzpZLuDUMDSWoqjAmP6CwVi6EZEKTzLb0abDwOxbrh7HHj9487yxVQDzHhbBIXMA7XdwDCHWUGDBZMx0MXpHG28ncjYMgDngAsM65l2R1ysT + STYPaFvcNLg7J3feivPK9NHmPyonT9ALUqs46Q8LBpKcs0rKn8mpV4LCC10nas84St8QjhuUye60epCuxQTkUEXpGPMQ9NN1gVKz4elCkjuzJY38POtBsqS07FRgkE9ArT1oZeSkxfL85G9UuCoOUgP1NGh7cqzvcsL3G + + ADMINISTRATIVE_CONTROL_QUIESCENT + SXXY8MGXxBaQ0mnFBYoxvngc5qFwUAxExuvF83uyEFgwTD3utj1RG93ErI2dazSz3f63iBBO8Rk1mfnQygzfhCTJcVWnmOWhV3kdwO1wxdpUsMC1U38bFTUJGR62xVjtQDyejsKRF9D0N71Ha1SHUFqAopCVcNgUiP8C9KlOLYOyXH77AROu + + ECPhpDIOlAamUNHqGktJdOZGaklWWaCsMsK4XsSiUVFOIe6gqrSD7Rbhcw60HIll25p + piab5PRNVPWlgGYox2xByDu7ePtgMSg32q677XN2MJfUh5iO7IiGlMNztgI71Ya3ggbf5Y9RzoDQtWwBwG9RkOjN51MYRW1Z4461UfSlDo36cszI8ArtpK8mDVkmJddGaj + + -9223372036854775808 + FORWARDING_DIRECTION_BIDIRECTIONAL + + B6vqEJV2LScqvmu2DTYhtpoEkRlHy769dtsKcfMP7QgCcKwHvuYYUfu6YQNwPLy2e0Ejfr8e9gImSe3oAUmm1RsZz8ooTWi0WXj3gjhpAZLk5HIFt52uOulfCJDoxVolKzo0Sxiko3FtCf15c3r0pN7UoKiWyyha7ybR5t4moBPTQQQ + LIFECYCLE_STATE_POTENTIAL_BUSY + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + N6NsLMO8oU7upvaKBBtlMBt41Nl6PymCw159NLi3xhxWEHzfbUtPnOT + + -9223372036854775808 + + La + bX35dFf15NbgUJrDGMH22iSV1AE4mORpDMmQsBKxoVNaE6FkKnfNx7Ayz6uNUecp0y8k1SKhNprjo7D8mSNLRgcjmy69MbyF + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + n23LfpWDbdu1MkGPTSBmxpQPQDwDRooeqjZFIWaL1FNFZlvK666DoOlerRSb78pyr + + SyrVFJtqtmb9klgyT2aWwguOsNA00eBLMVGrE1RZn20zfh81baXzirfKeQC7W6KI1i2xkLwzGw9VF9WQjLhBdxdjnQibW2TXdNuxr067o7U4gJMrm4UzB8LQY31UYMJbA5AT5ySlGEpOf48C823J2Oz0KsMIenLGslzpTrLr62gl6oXei1PlHglrI01XnMDQ75fTwSkuVAI1Qx89qXu8eHrWHtLXfpFfuU8SFknAV5tDuBMVr83FQutp + fe5wTcSGcKlwZNjWgXrKBmbChQkDbJtqQqOJuGhGjCcipo7ylyiOMtq3bKyem1FcjlNN25llzyvZWCp9aHPO2gJ5Sij6bQincYa63wrCWWtKzKLBjAqlI1iBjCHnkSKwQUCLiVf6KBIbltMFW4SE6b7hFHEZroo9bSUlG1sqCaBQwfvskfYii6zXFeP6C5fNP11v2tVFvon1ESlYZkgi + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
W3yTadJbeedz2K5q7Y4RkURw29OKgDF5G5YQbz1pO6RIRW0YM5QYRzuUAaEQNbNlhE3sdWJT3ABUoCKbzs1q1wctGQcm2ZHbDLDRzmCCXeodI1ghtiznOMQmu2IwUiHpVc8uzLZoZntzgKIK2hZQ3H4qCFWoXwNKAW61H5pylT7BvPdxYcfUMjkgQ8EFwrp7nw84BquWbtqGaD
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + SiClkGrAaNHU5VGFRw4m1cLc1Ycs2AdNKH85fzFqefck2LZTh3ga8Tn1JrlD2rqM0zRg0pyfwKzyvqjElzHlk4f3nAHpT74UyNar4IyAkZ0QhkmCT3Q6Z59nxIErIId8wnzAXZ39Y3ZfneK9hAf9xgwWZ2fHLsH9P9JE8MO7QFedTYm3qt4PKAMJC1ifuZob80I9Mwgu3mAPlWKDiOt2g7LS8V + vpjuMPJ2p9ALa6yUDNWvrqub8kUSXDrl2CHHjqBJzbmCaVwFIsaaKwdKJ7uGKV1NpAmI1Xjs1G4bBsIbMKdwgqgZxKyaxrPO2bxV8Qf9wccZEUbrEoPNPYEeAco0E5Oygltp4AqsMDsjpvKWLrJspnH0sX0Y3Owb2RAYrTq6wKpN71JTsklSIUK2KC0FioQcfjaycBEAd3nl47exrrh1eT + YvVDNjl0qE2ZQvDqJHO4LNaa6tj0HcVxHR2n2oft29sTF5boERkiEukDXEDxQy4qh7FkvUFx37iA4uYBdaTSE5nuJ0TAqX0AWxMrjrReq1PunNXBYIluOIQxAJ7SzZsvoePHxyWXzLkXqhyg0TDOttd35dVw4gTtmIaU86RIRbxalXqlI31bpe6mrTSw1LZom9im814R5t1qikL0nE3ES90kVKIWoHkCIuYQwVItoBTH + LIFECYCLE_STATE_PENDING_REMOVAL + + PORT_DIRECTION_OUTPUT + REVERSION_MODE_NON-REVERTIVE + + uMoGVoo43McxHy7wLWghe4K8cRT5RGXmsl2fCibFWf4DG42r0aI67kej3ZgVFdhZrb73liA9yEM6IOxAZ8G6kMhoLybiLsacvh7IzHRZmD54kvxbvd9P0q5DYgOCIYO5fWNOvEG + aLOm8lpDqqtiQyOHPCbpARnPF2vbH32JHIXPVmteMOwuek3VOedo6A5DCtObwJM5jJVf5gtJ4R6a496Sgb9eLeRfzyjYh53A + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + f2MpDY62D28U8z1vbtHpZO5UoUqgP6T58xmDnky1eGNmfOKi9rH87FUwrcM9ix6j5sWkE + dT2079GRjPa1PayJGZVk86SepPyd15AfYu7XwOHPvJIlT84z0SM8YwffdFkeKUtAhByFh7mMQ57K54b5OXeEtlTG05NL08d9JDGSK2FB7Ed5Agaoeo2zBN8CTVfL3sMF6sxIm4bmJorbFBAL0uctak5V7cy3x + + -9223372036854775808 + xFu1wVREn20MuZJIQJKLR + + tc4z0dOLL42Tgh7gJj6HmWxgBBBwtBuONynGD3ro7lhfChveAuVOqkWTWqph1TXHjknWnGcm2mBED7K5txLTSIEG0VP1HMI0Y5PdMTzGf2cK1XHuutfm3TU3PJ4wvFolK5yoZ746a9Rb6yGATVPWHJRwlWUQta45gCu7KqdMz4Xxvv8ojPd0y4 + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + P2EIezsWwIvIk6djWBew4u0P3VlD6n8OhMwweQkCzIkLOp4CSa9Wx9DAWY53l5JDS71YXdAoVM2B46eW9fLGgo8cfe7sjQ53XY1N4t3R + + -9223372036854775808 + + n8ZVmsGeYsQTDXrL46GU1kIW2lU0SWtfWt3iVJxL4fwH + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + 2b454936-1b31-1d28-4dda-1d3475708a0e + nAsLGvNQmke6cQOjtCNTNz07N0kXHWF4wZI4vnMJz0PLRD4c7K5UbYUYQ6Wp2tmqk4mPj8yS9fwSSs4Zc2Mn0yeIE27yntQHpcpAkXll5R5XbaPg4tDW1JExLDX07NIoR7Z3Wcp13uR6wymATSwMB2jfG8fFVP3MOUPL66E1 + + -9223372036854775808 + + Xt831UXevT8QF8ABCIpXLIKm7nieU0iJliFmdCAInIq2J1wlBVaevUAu9TI3LSN63kkgWVQjvgd69JrKxtY2nrpxcZsPS7VVrf3f2Tyq1Ew3nQFMjwH + X6Y15qQPqDCRKx7Fqx5k3tnrj25vyM4nS2gQkYxCtameHlT0SQcWjzfvtk0U7W9RQqz2g7FK91YQmJI6zUUKl17PeZJdVS4DawyrDdbM61ukK5ibZdNd6V2kUDxInudq0LRvQUhWVD8xIrAIwfVCaPXXkmxHIC7AoQ56CeVpS3Wsuo20EXvGEkvYy2yhFxJV + + ADMINISTRATIVE_CONTROL_UNLOCK + cgGmQHXBgedr0bihoQYt8gV90ChXeY2q7ANXaCyqQDJQO104JQxR6lSYX1Wb0Qu7jh4tTuTBZujGvjKe2iX8vHZsINvIvZHO8Dh1Z2uZwOFTZh71zW24D1oeGUWbTw0219V1ciSAYpuPGtR8iL4NEt1kfQn0mfUfpIgt003QppF6To631aQFvSRKIfDWuxbT7keZ + + fTNISdEx3bEBPp1OQLVkkjxLyV1lvU9KNOkx2Z55aBGSSzGJdC3pNsadfcyC6AmMoHbiy8nIJVsuv15AD0Zis9wAdWc + wrYV095yit8ToBnLCsl7schNmNnzCrL8SJVSL1i3mrOKU4owwBvROME2sTB4kf45Y0PB18wfrlZlpfJNReExSazk32gghld8l2Je2gtttkGKspxbv4IoehAajRiBcvJxxkDAs6VViCxKT5Vp1vF7MfhY6zri42HumcWPaRCtla5f71w0ob73qh1pIkzFmh9AtXhEGMZ2W49VXFVmI + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_INPUT +
pUCZrQ8AitpAZ5eY72V8XKFK6nwng
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_FORCED +
d04peFFFQchqP9N2CXeAKmMihjuZO0YUS2b7zQMqVVIK4vMHkT947Veo7AfVsdPd80kHJYZEUIgQ5VpqOymVutjB3yooD6BDYNdzLc5xUmg0hFi56ESAZ33VBjj6pUKgzXPc9VKWhSWqx6nDCf5Ci0xLkIRBuBR3yzfAuRwDJk39qiE2pK
+ Qk3uDfKmfo1MPrT5PT1ijw7mZx22a7bSr6mXdYjsmke4DZ1sT2D4qKrihlkjtncUtqJGp28DffzSeAdZvQWVAf5JAh2VE6I7prFGuGjJVLt1lG1IoPwY4BzwTusxsaxRt4xXKJyFuUHHAAqZhWPdphJaD3A5d7PHbewWXXtjR2TjubaL7SYo1AzED1JR8qqbFOZCDlOmnHySSIvRsm7tWyZzzBiH1ALGhKbU5ZhlyP5ips9KO85K +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
3Ql22NBKW43htOhHj4TyG6DmgXV
+ false +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + KN7ZOTAnslkh6KbSi2sBYyU5j8PQVQDxEDokwYzYbTf9Di2NlmpjUbh5b6W6Prvl4TxAJ6qVZG4vQYib + Slew3MUmwQMxVU7uhIxEaczOuI8dyotjJHHMlt0JjN87z8tIQ0f05OOzwOMWd77WHPBUiBEugMBHMWqCOFuTlbsRZ7F46NTFuuAEX686SBFxx51eCw7XzsGqzevxTodfKNTzTUFDvd2Va4 + kZJKDqRRkG7p9PzBo8DRRJNcu6FAP5w247EIxvrK4q157AGvIbnAN2Eh9jR + A8C9Abz1hWzacMpWraoc4VHs8KfjOoYgwsh7DQ0MFzWRddGwg4IkRiM0U1jIh9QGB7F7PFTu7IekVUR3QrozJ2zvWK55TVLv2iCSQveX5sh1e04Wskw3fXzbIEgtAUYu4smUQtRVV1O21LYt5mxkkYnUCwn4qezmGNhwg0s41863T4oZjNbDLrpgXMkf0TBHHS5PTpTMyZHrW6ifTmKxN9 + LIFECYCLE_STATE_POTENTIAL_BUSY + + x:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER + TERMINATION_DIRECTION_BIDIRECTIONAL + + zn6CEcNC0TjrgEw9b6T9pG95KENBOZNoeU0SYOuYzOpQkVRoUKxbqG83cVw1Ujh059SVXfTpVb7fYYvKB3VTB3OOZkHLwYMt7EpXLaeGldOk3j4wm0qQVewUrdyX3kq2QHRCSXad2Yp6iuCwmUm91S4sXChSOHVEhE89ujmwhMCr87Ym1cv + 5ruUVLNJlAgC6gDAzZ7JDBaDI0RKdnEaG1WCEJdZbttiK6KbYRUttXZ3XQF25k4Ml1gZCtRGXcYzbAK1sxmNudQj4oe1IaNVb3MGpvmmAcNLMxE6WSLi6uC2SI3ASJnWE9C3xQh724KGuoNq8qJeUdgMVkeF3BBHD5DaV + + ADMINISTRATIVE_CONTROL_UNLOCK + + jscVaYgS1wkEAoxbzyxIFFmffHEZlU2Em7sw5Ig6eBDG + aS + + TERMINATION_STATE_LP_PERMENANTLY_TERMINATED + + + FEC_REDUNDANCY_SIZE_TYPE_2 + true + false + + QUEUE_NAME_TYPE_EXPEDITED_FORWARDING_QUEUE + SCHEDULER_KIND_TYPE_WFQ + 123 + 1294410906 + + DROP_PRECEDENCE_TYPE_LOW + PROTOCOL_LAYER_TYPE_NONE + b737f45c-5824-79ef-f58d-6a5a991aeab9 + + DROPPING_BEHAVIOR_KIND_TYPE_DROP_TAIL + + 205890280 + FEC_INTERLEAVER_DEPTH_TYPE_NOT_YET_DEFINED + false + LOOP_BACK_TYPE_NONE + false + true + false + CJKNOIXvtdYY4mmRtuim6EOVlFJ61HGviiaZ07mmclkhHG0a2ix0WdO9Sx8L7O9hYjgZrDdDQpMxXMAZ47ZTcNU4d2HcQQtH2Cyl7LYX2DuZh4Ye3P77vT3IWLUEtflvRTQYwHVycixtenHadGhAAlao642rbgP39xTy6P6iZwM5 + false + oEKulIFceji0ExYy4x2O7UwMHyuJofNMLp970Oje7BeL1dcXCeEJ12vAAZbZ6ZDSgMRgs2nzwBdxGpuiv8Uwbh6D9aCf18ZhUQqfTNOhgTOXia7Oj1cmjbZsluzeCzvohND2AkjRd7GoiN4tP8P0jGkw2TKws8VKVqMoC + -627 + b737f45c-5824-79ef-f58d-6a5a991aeab9 + -144066669 + + 7vvctsY5Es5zoPGYlA1pVawR6pBcYOlXkR1FjZLQkIpAx5qKyr9tBxcHONMEu7tOYutal60FOh7dfxXNZY + SEVERITY_TYPE_CRITICAL + + + V6nA2Ihaphu6BS0nDxPLkryK6Wfc3X9QVxrX7I7xStDlmDIR2qumR27XRe1UbbL6A4VHEUewoJKCfklhKPEuJDrARlvUw8SYcNFQzMfXvRrKbMUWtyqd3JNU4aGsayimdY5MKcC73VK6IE234kg7W41S6z + SEVERITY_TYPE_MAJOR + + false + -29169 + FEC_INTERLEAVER_KIND_TYPE_CONVOLUTION + + +
Wfn3WT2hNXO2W8y1QP04ivD1xvk7Md7AsuDgfxq3me5amvc4c40mzDg60A5MO4e8yJpG9PBnVyy93Kd8Gdm7RC5Rd2wT7C1Fmqdn7OK2mibiUoiAuEHdhE4mHsfOX8lbzzyGniJKBM2vbcYFQxSZcOlT9sH6B292tHIRZjts6nY9zOGplqpp6Ca7XR5yMes7V2YVmrfkO5lnTTF7jW
+ true +
+ TERMINATION_DIRECTION_SOURCE + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + npe1wupMfrWXMTHRz84OuWFY5xtjWYabfg4EK +
kBVydMk3NNKG9o7F1D44nEMzR7BL6fjiR6R4SbZFYCdZ0lw1YAYd6C
+ 2b454936-1b31-1d28-4dda-1d3475708a0e + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 16702fd3-0ea0-ff4d-63bf-6776ddec6b9e + 371eda64-3aa3-f78a-2711-ea75d567381f + R9kkCTCvHAQ36PWACODmIT1Dq7UNc1hWaB8NmKaVc0YjQMLkAgya1zOryA6DtozwZHbejl9vm0O4Mrgfz + LIFECYCLE_STATE_PLANNED + + C2ryUJbKB9QVpHAJjQ3N3B4KJ + KMXyDzAWZuFb78cP4BwwcHm8vhJrUkGEZE4u5Fq516806kP2Nmy0VU0i4JKYWquN4zh2eH77Ff8MrXO6bn6796p5I93wAybwZsy51xczMkl5i1ctgaAi90nJ1r7tRi0QKqVDY7cCspACrM5HOyZXqfyrGFVpXNfH52dV1pylP0X8M3PABHq1WYkuE7TtM03S2gFVF5hu5e + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + + j1oKpgjAmCWv7anOeafmhPayhpE3544gXk0nAjXWVTk33HR9JYv0FxzPP5SU1W3Yh3dJn3yaWSdSrWTbNh3kOu9vr2isQlj7owJLzhWo118sQ1vDazXRVZmn1EPRZ8Rgxs16JPuCJu4ros4y1ThOKEbLaTv21eiqybx91TLCoP3M9Zc2KuRv028aVvcPBu79GEizq33OL6sUXEXz0O40I + bwsnd4Sk5qRoZhj25W0pRX3Go4ml4Wq7sKvxOfSMxB2wSlqPiie179zv5VQ2J814TwBzDl + + ADMINISTRATIVE_CONTROL_UNLOCK + BgsClypH7i83IV + + JMqU4RPEbeepDo31UtUUlfOhc34UXg2G2ssYcaDfoJETZzVUVHGgW + x9pBVmJXUDifCmp7BFI8zHHmtC39K0vh1VLO9mDW0VbuhAtTfb1GKA2e56fPYLZRyCFzYavY6Gkf8N0gYTWJmZPrX48NP7wfJ3PAdkybTTr1yjhxd68zXPSMT0rB0XQBSxb5KC9DnAwVLGkYMkpJ99v32Ww2LeDDMHAojJ1ybptX5ONR05saeP5gDBaoHGTlnmJy5C6 + + + m9hFB8XtoUPdATATySjF354UavBUuUjI3AnwIdZ77OcHzMt8EENzJJmL7XytJRcMjraUEaTMQ5lqJGyfkdPWP3zW07pKQto2VzWrBH5rEjJnZ9ucnj8cmH0fHpRxL7zyGnZh4XBIgkX7usjJDjVSTN7A4Q7PXznwWfN1cgBsBrrXLLGo4t8Pg7pkXp2NYpjUEYNQfhaII + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + j1mGGIOt7Outi5LNI5dPOKcOF60qPYD0ZZGFzn1Gbn1lsM82KeRqYV6DU6VBWqBNhhlQEmpHBq3353XHhG7gB5Lv3z60ZzFhR07new5PP8KUbHttfsBRxmeAVdANM84v83TnsQ4hYP31owmEYXnncBXZGqMlyIQGMBVer0nhHqb5OxBEnY1rsYi0g5lOFcvjNix7aMoR4zPSZi + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + FtfdJbyS1OZi0PH2CFkNsYL7H0oRA6l7rAkbMSVFyMXrBFl5cFSwEwEdo24Z1i6sSjDw3y3ud1NOy8MCOw9k2NxjHtaIL8bwrG2n76JkZw0xEM1kbaw5PVoxhy72Hiq0Zlf6jYiiuiH15Id8TKdAxCZO27JBh9C8uR6NQo5cHE5EnjM8VZAstA9wHS7Q1BZwl5b3m9f3NlH2wt2 + kDTOd2cMMbCOFtc0rn3NoaQcnp6TK9k4M6KR0WvN0ZtFtxFUUAHbCpn0OlTqu6u84fRW3mB3m4AHB7toH2zkrOc79Xxw3TEZ0oW4KxZYuAFXH0dh2EBtsFsuCZ0yTwxTUlPxLPn7h34Y3if6WIrhnUD0LvqwTPiGb7dOOAV5vZ4r9bpYUI79uK1g7rM09WGk4L0KeVQJ + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + CQw3jQ2WnFtVsGi7Ufm1FIjcGGkm3ESyvhtO7wCub5iEDsLpHZjezCrfbDC6hmEEv0kCwWZHT9dpBYOaYZopuPFxk9vCn2gT2BnypmfjvtI6jo89gxzKe69zfE3CGbn + MLg47wnvR5talCcB1Ll7RuG61JAHVQqzBGDA4SXVXrYbVaMON0VEuCCvd450Uvsn3XY8QNVF6LQ1VDPADDeZ7InkNsdzXxX0uN0csWSzzAAn5iXAV4s2MPer9j1YQQQdvRpXF9oeKZBH9riWvKQhrWJAgCqYkgbH7BwEKVLmMeWNF6BaQrk9f3Bnx1mJhxih0ONDByZfFN2kTDnBW + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
r1eNKod2xdIkQcLIrqvmCpRZ0GGDKiQbjXZVlcPShq48CPQV7d9Ku1JnHi0rAIuMFtHSxxCPXHProxmwKwg7pRu69mpC4ToCf5mEuZljGaK4HZsknArMsVKth15dMtH1r4yVVTft4RpDQSXdsoZM
+ + 45013fec-f778-eb91-0ebc-88429b04a2ba + 9PMrsC87e8Eiv6HvhaKHI696Cat8qSwAza1TN10T2E3xDL2MVElDKvBfFXnYHLqgWj1Bd1ufxxE2iyO6c2BPpd442jUJ5cR1wSCBT6QivmlOU1M63nNssRpubbdgo49MOLnHJ506rdMdeybaWZCoQTLT5Y + zAsnDOX7grTvFvaZtbeOQqI8gSMo26cByFRctGbBZ56Es8DOkSu2ac2qXPHZVTtmyky1SBuSyBw1B2HVMbPWfSecHN4uHxQ7Jg1BKvliYSbAMSnqVde35kfE8j0PIJOrZPVBlgUb0XLEI14D6iG3DOHDZHkIi81aYWLb5Fm5v0Cd1GI7Rham5JZ4ijEBrGLhuwkr4HpzH1MAzuHqLJMIsDFKWjlgR6pevKFzj400XMsx81PMKuu47 + LIFECYCLE_STATE_INSTALLED + + XT28rnfJpAh7k2GSt5gluvJgmZ7qsO9qA3yTiFCH7TOrNnb9ksmPP55bW4CoTDOlyfeQUIy2tel8BxhWRDDGAAKwFeVqRBLhIR7vzxp2MC2n1kbSXOzqpjWWxJmgdZxNQwih4zbQcd5dxh6n5 + NmIJa7lwnqvMddioumXF41TafqrdNoKsDs4NzpkOPHA2VSih7gXbhIlo0MBO3d8GFct6BFMifmd27vj6L8hVQvjR9Vxc0FSGSeEtTrE0FR2EmmK0uUNlp6cqTJDUgns8tYufh8fXZitdEe580SlhRpHK0kwhAQp3PTi61yVSQp6mv3uvWIMN7tp8GOpgEOblAusBUnmCEkY9nkEb2iQaM8ik + + 7BNmbor3vKghXuI0EEZ9UI2FBZwvkjFrUlN5J606QgoFD6G9CxiofdWJckexvLQh6wfQufWdwcS9aqiEYt35GROSb2hGG0XMo4uSkr5QvYZGg9ceC7kaY031VczB4pnstSlNbqDygu6pwjD0qPbhQ6iDiKef9tHCd2iglNPtaVSGeoGx5RONXYq8IEnR04mdZwucjjxt6q9lGIS + + x:LAYER_PROTOCOL_NAME_TYPE_WIRE_LAYER + A5RIGAYRWcEapbPjtdwo5FG0AV15GU7gZYZyzPpv1Vyi7nBsAZQFFpx7cy4Slc1ca0KJH17AXFT42moum61Tvy0IY5sbhtojt03222DRHoNBKbXYhYJNoKneHPqQjO9EO4HI6czFAm8cp53HVMmboJiXqINBoP84TPN0TexltGpSDszr7NCvoUlPu8iSXqPJ7uB0I8l3GLWk5nLcbfAz2VgwVzhLZ6u7sXZ25d6EYUQ + + in5YWoUWgKAI9JJYnlsJpAL6o60sa0NlgTbch51yHBgQcSPrd9bvJWBZUtr4l7hB0sOhqHP7aYYfIFGVORiqNLpzeJwAQNbQgRZGyHNBxDQfaw2Rolh36yDd91NZOYH4IzK8gqJNVzUY6W + m9YhgwMtyN8pCY7yGybPGBqlo0fmYb3cl1ltq8OYNWnpUmYtU1asCANSs27i + + ADMINISTRATIVE_CONTROL_QUIESCENT + zyzpwRxfoUYoQcBH + + Uj5JRgChYD07dTXcUkKQCZFla9BJGiEsuC3dSFvJbnIogxt2R5St5pO7yiQeAnGWRJaJhxkkU2I2r34i1OE6dk5MCOS5bz12a3DrAQLmKmgcpkmq00o6lmKPaCUd3W7eZKFssrOdF5h4hDna + DgRZ0G1CteGhlU86rAqKhvpeMmvqBFWeVF6Nd7iGmQXHCYF3y6OHt5Vgrry2Ym9M1fzeeJNAzCabAH7 + + -9223372036854775808 + FORWARDING_DIRECTION_OMNIDIRECTIONAL + + s0jjvoMfQTXWrecGxaIYBgikao38vzJXAU8XbMd1F2P6h1EO3fEEnOYxd1yAB9x33F0ej5fZ85XpYu52BBGYpFouyW49XBc08d7siejqbgH + LIFECYCLE_STATE_PENDING_REMOVAL + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + n98F5lVeFDtZfxvYfKsN2eO4dpOXDFC0ODxLYsSEXdD5K03ZKvEECsIPJoMnVpfC2NfS77w5k1a4U5Vwsz34TLTD2ySXXZrRMHBMO8R91T5VQ1sisvfe88R2GBSvAjef0Q1PQKQRvNFlG7v9uKnuL6xjzpP1IV8BD1ilL058NKluJRv5tSzeQ6yhnfiY2rzGsR16RYew + + -9223372036854775808 + + CM4dnKcNhs9QgeRdH45Q9cajrlCCBjM66Qjltn0CPas5oci5goNhAPATacwEoaKuT3HerIQ8Sbe8nw5DMTMfAm8LrwhPH1bsWSGfswokHCk40qzNjl2 + A2w1zNI8GLADDgS6MgimSDqL3SyedsZFmoyV3gVK1vnxD7vioFE8aWT5OjbUD3z0r8NugJea6tzKB42ZByZEuTJj4V5IYEAhMfLVQS5XlEzWAtN31NHvyjGC6Lc4qEd4UYZKIWz4s002tG6utF01Yyv4kA0C6dy04qDMm4IP5BJyhH3CfVvdl0aFsa9z + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + ht0kIAMKn29atiVlghkIejKcwIQmCyiM1a6J + + hPkSXU3Z7cimH7ATUHmVVN6MofYRbP8kxs4mm8mmkwAUDaFpS1kFPjj5qiWB74NwwRTLZ7ZcDz68CLxmES1l3lqtveWuaJ1HsUkk1bwEKuMe7bAL3u7YPprcEnGOYHnrBzLuK90vDEJKQcnLGmKnM3zirf6hXmIqVlNGuN3ZsEBiQZ3odFLZJc92s8jhuUzh7mPC2Ktup5E7Wzo1f91Qm2SGa3XwXoO5LvzNg29xZNwNeUPl4Ibi + 3QV7FjW3Z1GvslDvuam9GagBZBxHNHjIx6P4qE7pFOM01pvorJx8TNBKh0j4zDM6Ju2189jFP5FRn2fOMEOxkpiBhtxQ6jOIFQBF0UlHSSqfVF3zcK6o1gZjKw9IHQifGUUyO78y0yNN6JeitcGutxF5VPFCxYRdKEEqLMZLkMqqnEAIRg5cFKhArO5YMO4osIPemORGsiZQWzqNIvZn88YzX3yBJu0ccPiyv96Xr5Fgx63ft + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
3SnBm75eb93tzqCxf4DVc2Tfhe2TQYeTQBm4AjiLkdeLDRiTNNGZPr66F9Sn7
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ + Z6jr6hoowtSm8Vd56zY9JQ2Qb8T8FcuxaOYgXfFtApPJcUGimEk5mmOxuHx2T2z3QpcNwJ878PQkJwv52P3g3RNxqlrbfS65iiKO1SN1zDei1Jg3ybjBUZ0kcknrctomM83FSQzruNBnoJr + sde4B5l8hNkVcC0ZCRDao8hQ89nd9zkt + yxnDSnVyHICcAtOs6ZIe8zeiOrjnMM9cboI4MvCl56xFzmZFdIMd90vXkGc6slaEJSAnf4Jkag0JuRgzr2NAVapfRtdbOfPq0hNflos + LIFECYCLE_STATE_PENDING_REMOVAL + + PORT_DIRECTION_BIDIRECTIONAL + REVERSION_MODE_NON-REVERTIVE + + UChOt90Ftn6GRu2vu52eWBxig + FwKYkFtBlWLeC6tAMc + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + WeY5M3I8xFYmMg9yUMg4LpXJMRtzCu5qIVvnR5voKlCoBLWny5sbupUg8nPLSMbsAzHrE5HpqjFUWChmHJxb0rj1H1MzFPTfoBy3GfkYyZSnt2J2Dh5EIpFhijQX0Cdp5LkLTwJjnuGRwqL1HRFhgczynhnoTANYeZB7vdiKzZt5pf6Y6EfeIGE6Y1mJu1AI03Hn8Z7HQBEfID5O9l2RTyPJz3l34VD4QcjZ4jGUMl2uY + a7k4QeCyXbBi7G5KCWXON17lNTGPfwXpv9ten5MlgfvnVB0qpXe4Qdpv6Yddm2CSb5YzaCMiRhyFKyX1n355gvAelNrHP3r18psa1esLv0i8qf9Ni7SyClEX05wQ0YJ8nbahpCUMvcUVjWJB3t1xOFmPCSxCQ8C6jMfAo9eLd1 + + -9223372036854775808 + r440ml00d4tA7b5jCAJvb6qN6uFs1IasNes9zk2EonfnqcHVMiqPgQCedaGeSJGxX0zpkB3BQaYhnx41PuRXdlcqnKEgtcFj4eIoHDZyOYH3vL4dfN2s1eKoRgwkscDwqdN8RMyxCfA0Sw57k + + att6sJ93WNKpbw5mxeEhC2WvopAbGJfQ4AWwc6r8L4xWsvj0JXheR6B7v3b3MiUQTIe5Gx5rBugWZrWBg5HZba6yd9CZsoHdYNiFkfYOJ6KBxy4NvLEHVD78MBZeRGrQlBnxQdlskX3Jn7pTK3sFGzFt3EzUcTCxmZ455ixp7s8vrxg3tII99fucT4ZXPBmbtigysFXA7XXqndtQN3ZWim13i007teaWx + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + nBDho54ynbpQoBxwiXwACLN15byphzBwaeOqbSZy4gpkRWQ2LeufSh8XsGnC8Y8a4OBfzAOvQ5PA1yCME6Twf2uAARcIHcLD1mSAOy5wDM6EcAiRy4fG6JgGskh1w2EpgpZ4XWsBBr7NTiwkmM0kn80Qs9JQ3o8bN77CWA5p1d4MnB6Jf63C6VkyX4hSkp47o3BcDHBwUGj99hKooF0usdVp + + -9223372036854775808 + + c0K1LYxewDpC6N2pr31Fl26lLtK + LIFECYCLE_STATE_INSTALLED + 2b454936-1b31-1d28-4dda-1d3475708a0e + LeedfZkd92PpN5oVfi93xLzmwG9aGE1sK7xZ7J58LUxq0Wm76n3D1CRpaSzRotb9AI8zrdI40fu0bIZhY2MZxDoHnQyMjJVTjVtK13G1i3TuLSDJVqAkVR1jHs5S3SDnN6ZO1GPkJAGmtjYgBqAphtIQNFIRpe64cXTevAy6betwpjM1Jeq1z0Jnxk6W + + -9223372036854775808 + + rGvDygFce4qDHPfOuh5Vc6sx0yKEUuBl27RtnoFts569MmPgvVbITD7M3SqXe1jh0aKfyhJ0mH183RorEr1p48b70BX7vggni0DI9eAvVBDRkTiYcjo8jz7c34jqczNuri4AwE5k8AbsllrxwHFP8M1b + kt3L9qcruMQ9J2hbdJwq23WJADSnFV6Rp1DqrHRWmzX5B69GHF6KBUl3y5q51oWiqrIJ9rxvTususB3a91MKWZNm56rYufgMHQwQ93d2qFpS9sUity2pyHLvF4t2kBO1rcJAgODyl2ium5MPDG73gKyVP1X1CM2VYDw6r1wMVP99UVYxuX + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + KYrwCtP6ovvEYgCa9FGGD3fhUsIbaP3UGuiiQ7geCDStTmD32jJxmRO9jxktefnUCF4sFlG9YrCKNfNHqofFfVOrk0UzgatSHyceTSoJjStZ08GqxNXEJL53MSCUUYEtwQIhIYSUQeTImr1L7YiQKfLo7gaTeOfCEXTe + + bZKNzZHmHSI0sU6UUjHYx7jAfRVvrf2v7EiGESUdCCd5obZiny8UFjuU2ipuxjZEQ9cmT6zwBEBRQs2d0aZFulrwDQS32JzSLM6EKF2djv51X76P95mvjN2WwMZqora9dgFPV + 36500VZ6C84ZEnEyb2c3sAuCBHS9oFJjEObEBaCebG5H3J77Mja6MEJfdtoB17VxO63h9FvkeA19c8gQjqW54Flh1BT2JGrpEuGN947nw0xI0Nykenha2usV6dPHTg6xKEdMIc97dyP5eghsDzCx3Wl19aI2jGs3dFPNRRUWhC2vSjXnKsUGg7HqiikBQMw3reJb5D7e71KZlze511La8 + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OMNIDIRECTIONAL +
TlHqh0E03BvbPDcrup1JvUK84SlEb
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ SWITCH_CONTROL_MANUAL +
0DSpkpL11vyvmG7kRTzr9AFVNGubvM2npUMJbpK4Vaz9IGtzz20Auyv96ZcCDeZV0Mwb39fYjO72mAtNumnYUTZ0Kbugpubh8HkbQz22f94tKxg6TEXFpWy102hposzo2TsSluUADQ4fgce1QbH7Z79Z1ihiLQGNJ0x4usx0itfyFtAow9nwgw
+ PzmMaF4VRi2CNTVyyAepqFvwdwgAveJdO5ZYD3LmdNZTyMr6mGvEdT3qpj1NyC0mzZc4UPr0vqT34c2iKpXYi0gAj9nJLf5d69h0RISm0Dp4QjfsJcq14ztnIQ7m54zb6Q4XrObrkso2MDuvPVoTmS84I7qG4RJ2AFR1u2kOuIQ8dkD272NtUOquNI2JAML2ru3NwftTYj1bwx6vzLRlrhP +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
0EpkXPmNbvzcC1iRK5jcAln23u3IhERaa8u7XQU0em4IfnrZkLbUYrX1VSC5wlfGmJFbrscFOgo3DPUQsYCjprkckO9Iaohw7WHzoT642mZx4MnoK0H1j25vIfeSDvgDjY4IJ2EDpwbtiyRUqzNCtS73ZlWvI40224CE689vEkQOLAI31nFu8Nx70luJquDkyfQxn022kLI5
+ true +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + Q63cvkxt7knPqVEMItDtB1MG33tVPjXxh0JEkg7stn9LaNxT82mJV1hY4KMTVJicJ2QWaQgvdphn4G8cJvVEocvsOheK0wOBqxptnFYs4fH8WQkxd73Bjy38P9KHyybY5srk8iM4xmdlcpKpxO0QmVQ45ADv1Gt69Nrh55lujqIv + Lic23zWd7yJ4JC1tkQwSeSuxbH7Up1Y2ca4fB0sAr3w2FpvZ7UJdE6KPNRKcLA7XCb4d4pFns3p8sV7zHJMlPo2ugEG1eNQQRMVNbAaEDrMXeLoVm283rbxHP6A4LiMCWAh82jEGLivZVUViW3df6LOWRgSCyw7n6gv9A1HljckeY7oN3C29fR567XAymzVsQiBqjiLunXAl5Z88t3hIUfGT4gjqI6TyomQzxt3UqE7nvgnYbFy5 + s696kig1456e68B0k0T9H6mCGncz4dVobWuveDojImxGv0yP0kYzqc36AgxElk2w8pTn29yCw5j15JIX3yotKrrczR + QQm2h482uxok6VN2H6yPtVXRL8oj5apV0LX + LIFECYCLE_STATE_PLANNED + + + true + 156 + LOOP_BACK_TYPE_BACK_TO_LOCAL + 1764130188 + + gjx0wyjzsa3tFfSxQCpeB9bmWLHdpRrF2YxzoI0IS3bqiVX1qnf1orfl4WquGR1IHz9599F24RknEho4wDYVWd812yvAhwaYXkV7ts1yblNQu3U1ySWnYWo0uLsD9CB7Wo6iQ7I2knSOqEHQpvdnrtfNeHqgjTf8hli0k0UwfEcxiUnHpB4R4bEbSXrcQyc0T + SEVERITY_TYPE_MINOR + + + jAdG768m9xutJmxZEoimfBVVHsCr9Galgn1ol1Cur6Q2sn1ZLclSN8NvAhOCXYX6dQmyKYVb4Ldo06fLiAv6Bjt3AhFq8CodlCM5Az8wkdMcj2XCukA5D316cGocbMqwg4tQDBePOS17MQB9ab6O67MjOavZOVn4ZQMujSj7Kk6p2IydLETSEFbsHGjnuyrlg5QzX1GzeMQgmot8Vm0zT3TAB4X5CgjSd1j22Zu8DkpSBK0w7SXSNIloM + SEVERITY_TYPE_NON_ALARMED + + UTk6WJJbVW58l5k3Fl57eBkr1wT8ocHiY1gUKZ5xN2x08KWN51Mbv6CwunFTze3pgkjSbgiZjPRrzN6E + false + + + + x:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER + TERMINATION_DIRECTION_SOURCE + + sMngE5vsWzpo4UpLfwU2P3ZMgm6H4tpo8MxMR26Ftv4xplaxJ4ryZrdgFjPJEeZM0wzJyFhT3drkyBRay + IxCNFh6uSDIRpAoQcOolIry1LYuD8UWJkqwZHvmz04ipxGgBnEWX5mQIckdd71Wrrkq8HMzHJS78qfBNLpCILsqPFE2MFQd73D7CiHkTzj1ZqCFb1hTEKblhPg3n6gm1LtE32Q + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + dueecysVlxsYtCN61yfqjRMxTF7VKgyYKMcOdwCy3WppzcnACu1VeFs7cz3XItVk7Z9kvLTrzaQ8m5BQzuEN96VmyQj8j6sq5BDAeo1OyJOUOpCgTg33fQhFyANRy7aDJN5P3ZvBAcnhBZxn8 + injz2R1HBzOD4pi97 + + TERMINATION_STATE_TERMINATION_STATE_UNKNOWN +
OjSiapFiRPF2ozMh8nQXSMeaVlvOQjpwC9GMyd5h
+ false +
+ TERMINATION_DIRECTION_SOURCE + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + VyvTpybwOepb0nFKPRKH2afpzWN65jW0RjL8KWxy2WB2b8MS0ozUzOj0C76HiUz25l2P9zfcnJeyRTjJ9SDIzXAbWyL6kk8qx37zCfL0YRqHCJrMCWu3L5eHvZGQcO8JRfammVmcFMUhol309qVVn1u +
7LR8IjiP9n5MQ83xOOL3auB87H910788KZgtbyacV7YDfT23AN6KazKh8Ti9SihDaxYl58xSfnvn9pqJdplnY6w7RGgCYx7845t15STcggzpFS8Kht77rv6bbeN2LUaHRwAWol0wtAV1sVLBhLIIgHLkVymzkw8bUJ7j40Py
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 2b454936-1b31-1d28-4dda-1d3475708a0e + 371eda64-3aa3-f78a-2711-ea75d567381f + jbQVMRVq0z4Z5RhCdZN5i0XHwwDhjenCh5p3OdmHMqGSiYmnP1s71hHpOkHZqWBITTLI6ZhKiXuAVQXDRhCLzjafwJeWxHErsi1y9ibr7F13wQyf0a0rm3ySMMGkllDOvEeEOp6V5ZQtIoIArB1NEzxidduqq76VDlsrCyfHp527mLHFeAkS1R26WxxfED2aQuttUI2kG5j2ITHWt1GnKIty + LIFECYCLE_STATE_INSTALLED + + laiHle5km5p48LMYyM8ekxrHEQrB97Yu9g4un9PBe6xfSk5iY5wiDY09GjCPqAcrI8WXhDzoJ6DtiIMgOarj0jkGCWoUosl6A9WJEv7otCJEdnUTyd4yoo70kvMAP0yp1u0GR04lCFZP3LIBRM1f288evMOkMnBORC + JCqW6XNW0qwt9bnp5vpkTb85YvHEfb0QFiMLfrz8JYBT1Yi6mHq7KzcAWLebO61toF7wYyEIo7BpYLockOj4fvF49L7XS1j8GiExQa77iIwglMsxtLBI88E9MM7wNqElIbSqlZxDzWLUI + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 79b69572-4586-21fe-efd4-4a81a2b57515 + + hHf0KryHKApD9dZ2TeEtHctA07YQVc24M9WwAu5dWuI5HHZsVvNvIgXAfNiaZk7Dm31Wy61uAKs9jjt7P9CpprZFe9H5tOJPSKEiRFEjpYtJiWQZ5konLfUZotWJaFr2i5c9CQsUHNvZCdQzx6WalI1B4XkevD8NAkWd2gZJ4uAGHi76o48BE9cIYpW + 248DgWIjdHU93nHCFOI4KIFhRKZH9O33KbG18gcdX6e0tVu1J45mMCDvmudvigz3j7Wjo8wd6K6sxAt9Fyvra8XpC2UNalItlENJMbOKWUctvFC25Ztg7iFCkrhuFZQ0DDBhOh1Cc6YzLsBRsWZr7wVrPcOu3EmG9PPP7JsbPqKsSdbc9aEgyzAoEgKHM7gVO5KNG4YnmAI7NTjPWPXuhxSVFDCrCKeiIZ + + ADMINISTRATIVE_CONTROL_UNLOCK + 2Ld3shTdhzJKCJ82yJUXR7Bnt44H39v6MI1eRUr9m2TQLUTbvF1nFuC8zGHCHdAtNuzxgSyCVjtydeKBLDYq7sqy003I5D3SZDhgnPKi95JejlPXYFfX7Gw0yzAD4Dv48NcwuWGD2pSdKH2AniymQ4movW1rsons3rYyoxbiWVnzDq9SIH6yDlW09PkBdH491UHprKzgGWPbmQ34q1u3miWw787dP3mQQV7hFyplveoJ5jG + + eV0ekuLUEo7fCDdIIGo39rZNB5oawMZLzRRTlCN00N7CikdT0BW23NHES5OhRF2jxTcSnSKnxKRP44AXGxZBcG7XENevtgOS1TCoLnDa7uZ3rAS7ZRA3qH04uerPm8HnTkDwzgGyDFt47m3Y5D2nk2jG9LwvLdLEpo2YxIoafSenehd + UfH6a0MjDaGgorMFIOE7w2hMMn10wecimLooD2H9dfptz48hSEohzx3lUWeq2qIo3YMG0lP5t7y2bHbVlzcUY78SVmaYMKePATnA6dGzc6BfNMa1dfVbe3VapX83HeK978KediNpopE43O5hV0kaWgkddk9N + + + wMdh0yc2REV4fTqClSwScaAjcimP2VPrAUIskUmcq9gF2GanqG7CIHVV0aCU5jlxdVZxPeBgnRVip5xPEFsmef96pLTn46U92MHJ0aZf2NxrK59gCBvIIEH8qAvuyhEA3dkVnb3hQABtxKB1d6CVLj33LqpjIVMD0Yzo1 + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + HkPHf94Y7gpEc7lE5CTNzr31qb1QHY8oiXXxY1o59FCeMXSJrMx05s1vvUddSdt32rs0kIYmnAA2xsLQ6aQbCKz + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + xS48d + SOn5VZTyaOtV7S7POLsOJT4KnCusCHWvwbsjbdJl2499W8QCT + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + goGHbqqvCa1klRiqBw2UcFK3fzFDpjfFzVeKlE8XH9a21kkCQeo3U961ALEZXLwwGK9UhhJYqTSr55VWjcZ5d56NIDNFgb4XWdR5us3UeNejS1f4de9qb86MDLjTWnIKsrPWUKJ8yPriIHmWNweRwcD9XW2UcDww4mlYY46w + qPt73hMzoD5A + + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso +
k9EQFI40z3WFrz58V4c4RDsmJVvHlsIFtmn0Xk1wnP3Gh1P4XT8Gwt37oyPJSpglMvlBPe74
+ + 516d40b1-d09f-512f-cd82-8e2a895d6e96 + QV1TRjjgAKgs7bk35TMravXD8DDdXuoNqqGhJSpbCFwBQQFOBj7MO4hXzM2whrczRKIsC7v6E1InJfbdyiZne8cFUe33xfuoScImbetQ73dJigWQyN5EN9bzgevNmZ4ecMAnS35SYiBgypZY4WuJ6FieUN1gN5uRKW6uScmQuPZV6Y + BNPu4PJDRPWcQadOvX2e37tMu9dbTkcm71J4RsHI9DUZFZF3WHhROKwbMJmx3yT3Au7jXGTYbFYRwDUkd3c1FIcrjyQe7C9z68KVGDUSaKBGfn0sq4uXMGhX774eJ5FQ6pLMUxE4h7KxuKZMPlKt21j98nfKkUAqbdd5DR1UZLjlnb8cwSyy + LIFECYCLE_STATE_PENDING_REMOVAL + + v16nli9i3Mh3LFk6KCvzBvRt6HcHPUccNas1tBjwntr18LZSfvjR02cZJoGqaLvYVXZgyaEND5OLIOvYbOH3QL2r1BKbe79148iujW9WUYAuEXkPE1SmEVGFoqRCp0Dl1NPkCY8wOISsydhc62qLX6qdo9HNak8b0PnCGv0u6SPE + 6I408PXf72DhJjjWruWhRyXeyjkq8Qo7ys7z9XO8ZjhBCApWWldFL2Ujl6BmXRtnbsWkpClhWCKq59e1mrz7ltizrTVoLgMWII90dm91YTr3UGXgZwndRFMiqHz3XdSxV1p0fy1djt9d1YtSmI55nRnGqOJf + + TK34YPJS5oPrfrgmW8yiYU8XPeNBhsZ2cU63CIVz6CTm49A0h0a7UaXKpCly4cA9Yzcs9Z2ftVtx43pd3AkYK9A1MNzQZ2ZPt3iCUcRo7dN3gd8cFkapuCjgpKYgMQ57TfBGjl4iyJdOWl0BG2T2E4i3O8btY9AKgcqAxmS556LUrEnZG81dcb81kkual4UB8kbxy4uwa8qtMNlkWep0iy1CKvM5szGsTS0kOmQQu8j8VwlJL + + x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER + jERoDzRQ0bJcrgRGq3nw9qTi6wfUfi6yOPXjgG1hSKtbTkJjf6IppBHn7Ohm6fMVWB6di8u2SX5D9HXgFxF48er73Al1H7OEJVRT3dNNaSrbzgr7N7bVdvU8XfaFmYjXL2QOfvuhoVsPbTWQS0DYnx6kMgZ07aYK4Grj4VAsQU9TGYJqYmolLvxxDxpCzfnEOOXSJqcrclcSjVb99zmUWUjsjI4SQjoE7ewIEI1IVdB70Mg9dDV2peuIPys + + XRD34AGNBAEmMSKX0OtKeUn5t832EuuBd8E9AcOcNlqrd2o5RRP5L437c69QsDkxDQGe3niIII9NLpSugzrUDmTPlUyFpKd3sL9v0r5 + 16vEvf0EOkyjGj9TdzzCjExLhG9iZ60TdoxIDyekSMDqXEkadLFopc2GL3YC9Rve7VXCl3W5QsvF6HQcsnsJruicx8HzRcNY7CBkGpp + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + K3iDxU9bZtKyVwiNQ62yWoG7xtES5hCPkNkJHtUzOF7K3hpTfrj3QZafsGZxXte9gzSQUFhJcglfxK0M4jPMiRTCqSaflopuP9cKGttSJG78iZUmaB0skT5KD70ZnhldqxX70iRBYRJ8Q + + dwOwZ37Yu0b66hD3Wq3bV6MZw2KXMYw0mcodfvcKnfQmwlplLlwyrayXcaNZ0bRmo7zDCDfZT5lpiDKVY8mhiU6nWTmWX5adcBQOfYF0VTpew21manDl9JI5vWTk1Vx5xfLMdiM9b3fz5gV8wqlF23Dp + wJKkgPRnsvBK9CWcRnaZjavBv3DyG2h4L1oTQfhaCKULmQQ560Wpak0Fnw53ymZcfoX5v678Q1T4KB1QBY7Da7axv7sWlr0AHXxd4EdMGYRqAKg3InHSmJhKRBGc3GNCDcHzRUexT5PlH5oikX2yHkiqVQuQw9l2m2tdXHKIEr3morEIhG8Y0jgO9KwyURAgU3tJL5 + + -9223372036854775808 + FORWARDING_DIRECTION_OMNIDIRECTIONAL + + o + LIFECYCLE_STATE_POTENTIAL_BUSY + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + 8zXzWTzqxW86rN6EeoiWST0h6E6zcHcc89M42dns1vylawZoUhkN2lW1Z3s3KEgKNUHI7420rAlB6d0TukypxuippKs1pAM4utEtpGuQ8Pj72j0pwqG3MYkcIFdZfZWKkA5BhzrhhLobWgssG + + -9223372036854775808 + + 6AxHfCynuuZGX4i6EBnVeMYb2rvBzLWyml7tPxQjUP0RMaXqLkd063b1uyuWkimGvt1kSSEMzwDdGsDrNIjLMuE8304fiqNNLO8EyEq02WdIgJ13rlH5HdeCeiRwBwcmlc0TQjLS7ZsnIlj1yS + 85dKbnuAY0MldYdZGoKqvJSTj54dEWcM1po5MKFDLrQQh3PXsAnPb7In4MAIAMmu3DzPnek0xaRO6yDq00fcZQr3u1E5NSzQ + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + SRbR5HsBhtjcHMjHqsJEXEGmL2WAAo7k7accREN0ZZ4GLgg4IZAFv8TgaPIK5P5dZ9pIF5AE4FdHVlDvcdaHl3YvKG8Po52fekQLpqhlXmUKHyfTLhBZcruW7CMnHGDN0lyhDICB4plM + + 51e4tXDFucOWz6J2qh4UYbyfCXnH1GX6H32a1FPvRwjiu2cUbhG1s6g + 3vEWbtUSxW2qtKNd86vC0IobR4cbak85QET18NUxBOX4qC9yIFaIfyL6uP9w9itZWm1W1NlCtazUMIkmnn4uVHsi + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
axAwqpy5KazVJlzkxWHUS4IAw0Y0GwMQ4ffuENsoP1breLLLHkyzog1V80NOwAxsPMPlzhJgaVHgys17NrGbHAYPsMwYe3jVP8ggpRwrE6HcyAjl2SpJkfrMTXC70VUH32PkUdLqjkvSVO5XymySCZEvW9vO4hv0kcc6qQoJaTt5Ar28NtTpspN
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + JZuuNTjOXb3Y1VknhnhYPozAnJWLNWvpORLBC4hsgki98uxpROnz4W1ryYcdMACAjf3WkloAxyBF304UGjlL8ncydhLRRgkavnYPIeh8NLNQLKCs3Yd3dhBiyf9pvtsSRqArFRzkufagZMAUCNYH4zZvO1Ubme45xEx4nYoS5y04cAZHfPgbg8G59t8vz4B6A0aYQqIWYA032RChGSk + U4ECd3Nm3mX9Lc6kzbH1LCGgGMLWiEVcIzHNvu1yJZzu3FOCQnDtRcKxQnt91hlBQ2glphL88kCcZiGHFc3xoNW6aif3ztwpnMDMVgU4BogsyW2e05DoSrvUJCXi5lAt75fUl2YWi6hRVbXVgsc0TzUDbJNhWfKVkRPGLGu4 + DNzOCv44HWX8IsjjgAfvcaQW0oHyKDkoiUcUh9YQ5OYOgh7oKfUOpCKhSkPCP200O5U5eLNbrLZHUZ6weSlvmXNe9uQRwJRcOD9UgW5HzXhmWfS2Z5xlVcr4H9V5SEiyirkqgq8Hnh3bwOd + LIFECYCLE_STATE_PLANNED + + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN + REVERSION_MODE_NON-REVERTIVE + + 01U1mUpVZS2zK4pAvZolrhgt8SKHD5wvYipk4O73y1vi6MKtE9G5qPzqzb7cgvA6NZiSFqN5ranpX7KB8jyy87ZHjYMrumy9dQTS8zXAJcRybC1kVA + 3HJCSIok4CKdPA7zJyobhA2QEwRYjrIe1sRTa75eKPjzii1TQp40SYQwvzuOT43UwMFyTLMDsY5Kg6D7vz7nyPLVg7B9cw3IaBh4eVzGTEr2KW18w0nWP9J5gk7sJ2bTDkXRfpy13R3GN4ObWb7DkQAt3HVEKYxfin7qMxrHgmn3ib7ef6RrXjUS1QwDOVSZaRpWgIEwWTse5zkcF3DumyefgCSWyLVIucxLM39 + + ADMINISTRATIVE_CONTROL_UNLOCK + + UuqOMZmA9dmcpuhSmySvzawLSppooqpaMPYqOcSXqe2PAjzWJrjjCP4mflCvD1FpQvIxIAu0PwHhIg6rApC4fyimLURoOwGw1o3BYqBFOiPorVQ1kk5zTfVE9EVPaBm4RhxHH9foj4MKZuDbPALAPy6R51GfuUb + cJVLKa936OG5ib8ZETztkGcpzTwWFA9Rj4vV6EQcko9DAiCe34zfCMw3x3Z4v9WO5rBcXrgiQiNishwvlXDPB9T04S5z11fZkQ39ajj0B6i3gGrBvWj75c7244tY5BXhj0jtbClFBvARbTkHPDGNPFHMKaCHDrZXjaiuME1f9C6dvjMdWs0E7HqRJ2rnticM + + -9223372036854775808 + mcKN4cceT49dPUYcKsg99KuIBfsr74Du8nh4AlitqrGfewrYZzZ0ctINAa7I6Kc67lazGsUYMs50ZoQQYPQabqPLAWtzGxxGSI7r22hOunGlLwbBeTDpjtaMpwlY3SwOsD7nFob2DSnpgzSuswLEZWqgsD6nnCbQ8adNzgPc0dt9EmDYKhCJd2RxFYU3sYLA8Qgz65EZa78OlDF5UhGZcqwJojEI9pj97zJ6wn5Hm5nAI2FvceuoET + + ONleN2t4YwsMJPxdpe2qZyBp2EuF7JKVpX14Sm1QStutb1Hs7JT6auo4 + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + 9LwiyB35Lt + + -9223372036854775808 + + VuhCJMfnVqvuCikTTA41vdeGlJyCuTVpf4UYQ1dMrI83S + LIFECYCLE_STATE_POTENTIAL_BUSY + 79b69572-4586-21fe-efd4-4a81a2b57515 + gsTa96HnvLL9i8zcVQpJna839db7CSpLk + + -9223372036854775808 + + PLVTFi6TYjuwWYhJgoN2fv3s9n3iiVD7zq06IZZyam46keHACmCRSyk1VfbdaOlB6dHG4zefVbd7pNIT9cL1CXVxc6DeNYQL3ps8YyfTBs107BMhFxaim5Hy4kERauu6UWeKnlwYNpRVSD4x26Hg4hO8BkREPlKBaYdpbJnY06LSBHivOZLSgr0KMJot + 846Y9v9TLZTRDElcWQ0VCS43KGPl4ai46oUgM31xUMgpqtCmkCaOn6RZMzdIJvMQLGYxBZWnL5N4yhqSLsy0yi0kRd2sAGale0THZH5DMKHdT75EAwF0OxdxK7ZcO2xU2iCU0zxEbeR4dPAFlfG9MTGo0xAGr0Bmi5gaENPHTGL6ndMItkJ7dhw5HYM0YnmhsCr + + ADMINISTRATIVE_CONTROL_UNLOCK + rBvLFHJ5x8HA12FttACh3nynMlMdvSQXldA0UkYkkxUdzrH3TbcWyKcc6YptI7qVk1O7dEjxb5CCobximJ6MmiZk9gNJg6FA7lzkZKJ2Pdwep4oLFuq1NhdWxTxNZ4 + + kgTufPgb + j28wkcQbjkm62gEQHmwTvBdDuALbQWd9Qdx3pneIzsGCIckizRbWkpsHZdSH + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
fUzC0hctYG32SlBBpqWOSDF5ne6lWPvbC5NCeR54p17imATLSHrKkYHI4FV0nqbZnRBuAzq0spaO03sSLLvXC4xGCsHZLKQ0B
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_MANUAL +
amaMkn9D9mAte6AVwkxqLUL36pnAxtBzHLd28nF9B7CQd4LBga114MW23bvBF6aeJogRDOSeNu41yIuPSoIP2xR6AeH7cJmVZCECiwJ60NZrnt88RIXU7G0IVzP7ibVaGzMY6v4Yb3hqphy80n2Z4UzRlpQEsDO0dsZ
+ i +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
UFhuWQuUIN2wXNVnHMXXySihvnANLWqxuA1qqvd0bfx02knJ6cyx4QOA5hfI5xfz780pE5
+ false +
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + sRhcIjXQfX6H2DKb5JAmEaDhYL7kOHT8y2lgda6s7422AMdFnG1TQwaGhi0XZL6xOjF1tDmsAgua2AHpgAa66lMoDFduij1YCyS5b6yLmUNoumFKWPI3anjF2w9cI2bk + H0C3B8fxn8GDBeW6Vb7dMMJA3IvtAyVhypc9prGEzehas58g88lUU5nXFSi7q5hRmt0LVzqmFzx8xxoFFJAsGPhezAdZxuIUQBFD2XZHxoP4W5JBHb3fSdlrNzjk316LCMoEJom8E34A1G4IRZXCcj3RKm4FgarSWPpy5DyKGDcHjgh287EkqA42W8H + D4k20CrFf3A6R3EMgAyJa4sCO6bb7j1KneNgQeNX9n31iINzadik9COXJR1QaUsy8fGRmtOnISo1s3sC8CPafv7Qn0yxV0XV8DMuYtRHd8Ax3214EQeLelBBe9092QWalBwk4f19ntGjvHn1qBNwOo72q + 8PfQeFVJdxhQKZ1S840fAdxahzZph3HpKO7Yt3z + LIFECYCLE_STATE_PENDING_REMOVAL + + + true + -11304 + LOOP_BACK_TYPE_NOT_YET_DEFINED + 1017629536 + + hbdlqBP7ePEJqo3ZVbSGsErafrX8J90Scd5CPUB3J7E2wzTjKDR5aifpB4qkdq4hv9 + SEVERITY_TYPE_WARNING + + + 0U1i + SEVERITY_TYPE_MINOR + + 1scI1LHqykUG7j0a0Mjvl57mwLsk5MoYeBGgefyMAkkHDdSvZ30l18HxL1RINgyUJ62XmABWVODq1nW0jOlkOURrNB9tJHnsOhhaRK6EyBXrRLs2rFmgs5HfGJIhqXJ6eS8Yv6uVAjnr4PtwmHEOMl4l4ECnuelAYuqtAVh2eEtblOHHndo2yknvYRKkX5VWrdhU8yWf4iqp6ZZmcnoCHLZxuBSkzF80S + false + + + + x:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER + TERMINATION_DIRECTION_SINK + + 3iE9QhvKXL7jqRg7sbaPmPJKZVsTYFmTX02N9pp62oik8ysABChPr0ziNU4EzqxwisbjJsqMRI6Z8yzB2QqmIREnLA1k0zIaTTuCeMo5mnWuNnXQ5nc + 6I2Sj44bvNmoyQ0MuhJQwFcj2997odMuWPm7Lrig6wwweobIFUy3sKnmTomhC0MqP0xsjP + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + uDUeyufiV2kG3GTE7xURNLXw2EbvLHl7c7lLBA3oCg4yOX4WmYNaBCGvgJ1Tre0DldoXFkdasiI87M4uCJEemcJuVCoeQgScu819sejUo13wFZ0iBwoPIZjvCHKkYuokCht5wFRUyMieEaof + M4gDfM7XosNSQ7u0srw + + TERMINATION_STATE_LP_CAN_NEVER_TERMINATE +
tMtD2AkOwAjMerBuTgeBnJBH2ZPdan3D9ogbZsRv3ah9BKwm0KQflrXojMtt1o62NedMHWhCYrDsb9O4UEjfYgv9UZCVnAX2G2OnYYRXpvhsw5wiCQ
+ false +
+ TERMINATION_DIRECTION_BIDIRECTIONAL + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + wXwnmh9KCigeK7OKOEB6KxAW1mo2KgP8elwAuFd6Ptdzs1bgxFeicP6e3u8NDXO +
yUeIzDZQ93UQ83L0nVOD72Jr3o0WkyYLk4tTAkCJnwznzdgW84s8Ybz1zrYLROobSSXs
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + f88f1f15-cb75-9f1a-d6f2-355db54cb8bf + 371eda64-3aa3-f78a-2711-ea75d567381f + PoXAXDEs1vwJokBkaAZCpQ0nD6qsQruyPs0M5F76aDIyXbKZDJu3zmi4sJoa2LAR5Bw28D0igIIdTs4x3ysuUCymdPpfAZ7FsDHAgHSoisBbUFAP6Uj0xKfKzE01vZGYufyKOj06DBaq8Kfexz74jmGK0yLvp + LIFECYCLE_STATE_POTENTIAL_BUSY + + Sd8FpJ3LK1BC + 1WSKOunCjvUYBJAgcY8q6GHHBkrCV4kOSdyyHWaSj5RMGj2K9b2gJJXk3hWQd9EXm5wVTyNcvwYbITOR4Q7FsXZn6NebWK0 + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 2b454936-1b31-1d28-4dda-1d3475708a0e + + lIYv077gdEPkA0G9Cyzn4ZyhSY3gc8LpJKUJJUZOyG11yzaa8Jp4IXltNpBSpmh0Y4KzYBgoahpAIzDQb2MTS0exhPpG4HzUDbmtMCROLhhtIUcTWYFGQLe7tvGx4fjHqFa4h2L2b2oLWAFKqcj9XpgqUOPZV9GdOJiYDVSOX8rL + 6n1iGa85iy07oZ2pxg5gq3TlOzaW1VxZayaRIiW0QOZ6F2v5aBdsw7FkyP9rCGjMelvOD + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + uzNzTWeCu5ZEXOFT6SLNbAnm96Y0OqkaRZJDWP7iN6WCMt + + A + 8hGZFcgVKWE2m9iwKW4oeD4PFcJn6kl6t1586dVQ1zKnA2LlQQB5lGMSKofIAAP3uM4s0RaTjU9TWU6ECIJYgoQ0MYIeyph2cdm45wX + + + YBodfT1LXdKiAHRzHvU52WaohdjtVnCTY0Y5LZRA5BSFaC7K71P1XRp75IsSX4DNWB + LIFECYCLE_STATE_PLANNED + + Y5U1td6GHTce55t2vJQa9M6Vp8YRYbVW8HYtVW2uPeBNj4HOFxRHbXCt5AkVD7KEPA7Cw96eozTHvAobZfK24mv1OQXkXzYM95gx7fLvOw4k6snXH70DlvF1dul33jH4 + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + HsC9x5U5fwcZv5GwVyN2vnmfkqS7elSVNmWdrQaHeeyJj77exU82huhtM1t0mdN1ACe1koAzC1aO8a2F43zepQHcJ245gK6QmdRGBk76liUtsO0oRzC9hcl06h5m13cngWWK83QtlCWFiW42nybECoEJFB5zEaWVYKF6Onz1RnH1bD3y36 + GuIp2jmBXopKmahsYwTRngyhj3kR7jVNND4POiiMHIo3KGoAchrsqSJJVVt2egHUULBA4UeDu + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + v4quUOTiKSL1WkCn0vI3g7L5kV2QHfOdbez53kfF4Sy0cbg5yY8OXLThyO7g3Nl62U4X7jubc2cg5sdDimkfZ5pyToOOc1V6VZV2ih6mbivhCIMU461Wcqm5P2MT3HZYGMTQ3Z5e9AvDiaxfgybkZxiGz4zCLqsjcd974el5O + IZTfe9GhuxGM57IEJtW3E0hN7dUsjAb1z49F6PWsmC6rJOXk9LgNLpsSCecVPgXgc6OiVKC9fIsQoh3p2jcNIxxcLJ8sZ5B43pmQ1RZ8rjZQ + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
k9FRGRuhZP9WqdZHrPIiGRKRIs
+ + 2efd256b-7e16-6204-e526-0eaea9012157 + 1b1g6XveMBsQCTAkFuY15XqoNSRvyJWrVQH1F4gkyAaalCm16cUcacAP4jcvU0WPQwJwAZQ8r0bM + M5PZGT58OnRzDiARAmGnFYWmvYU2eOs0UaZs3XsJccbPuLy40ejF571s5NmbBGbnQ2PMZav3myKQcjMcp + LIFECYCLE_STATE_PLANNED + + yGhE6ZPcTBkpggrwYIEbsX3wNs5Qe8CMPLiVC0ZvBbMRr5fpOTt8JwEoYJf5KJRrm2eY2dlDo0mI5B7LnsUYYymPatUUcLlqNzgHECkUuyCr2Cdp47n3xBSz5Et9hGA5fQELkZGOpigrUlQRk5URHEjMaMVr + noAe3myUUnj4vLZQtIazuT80cMaRzBcX0Mb30JXUY8ZlTQbnydO27W2bI42hFe6F1hITTxGJGF5rngONuCHtqBE0FHikVo0OyAAr0g2yN7Z2gOPKiw5BZJBEiTQ6aIMAbm1bu3Jh3Ijjo0Vzw0anBL1UxS0zsM9D12OvXpF00YbgZ6Pn6RLAvEuUomtR0uu1obpdA46AUhRToy9miMWNqiHPE2yxo2 + + CzNMLftQqFdlF92oFLU8KK83CjQ7JvJd5o + + x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER + TdWkwVKylJM73kdRVF78eB8I4dARMKPxYLRmyuUUdGT8160WDZ4RB4zxi2hWE6uuKdQaHL4NrXNkVF8 + + c0JngrhXd97Bct9Xbl8XpxU0UYCAZ1D3UeqaFI7TR7u3svSER0t8yg9k6LUYFx1zLkBj2AcLHyG23ryMr1VR9Wb8HYYenZN1bgk5RwQq4ps7Q0M9UH1Vv4342TjqL6rWnL269Kw51R4RRQTDpUrUQmZLgi31guXv7RB8u0dvRhfA08epUFcC1bn9lqaBM07TJITdI6BrgQ2gQ8x + NJeGUCI7USJHKQsmqmz1k2sAKmIAu849RjQENqLHaugVcJhvXIohLIKn5kYzsUJk5rYSRBs1YIO2j5xgGVqjwaGBuwaXrL9wcZh3ABXqbLtvJ0DhO3Ak58NsxXhYBqmNhvJJ6yaijDFUvibjeDvjEiDb8U1JcfotLZdRxf1JSGDnRHz5c4gQfU1fO2QTi6mV6rEDGGmqeSO5z + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + IEkq4RDpoNsMk5GkQitTNEBUf7vs4UjMqDdumQMLv6xIb62TgvF3agQpfdSjZ3YpH3U3 + + hQ9PeC7fAQmXQbFjiqzG6ZtTHbFlyS1QI3xXFw48ei5WtCfL2Os0FNUfQrshjl7UowJ4VN49616zDdly2FyzkkOaEgrXCqJ0PsWKgSTeTRNp50XZxnyRAf2evl3ZMNSBfGdnz6BkQhJN9yMHOcqorkCPGFOskGVsn8PO6j8WsKBBafaYstmLNQAtohVIXIacQS0Xb1LvDf6Nu9MOC0AhR2LfjyX9h0l7S + WV7AqKPoxjpb01cAb3CWiOu7XD7iDZorMv1c7QBF20Q2U2u55YTfMfnJTmUoeiP0GR5NzGktybnk5Rh3Q2auixe3M0r0ag0QZ5EzDYU41igZ9q2RscmCCsFos6gCf8le6ZFBPAFJSOITeCDyGZbajQyLPGf4PAaVrQw9i4S2KsNYWqoChzNAidlZU + + -9223372036854775808 + FORWARDING_DIRECTION_UNIDIRECTIONAL + + JSN6jDTOHI51WSZsRshkBYI0kuuFz6ijQ6h9BaQaTVbHF22pvjBY9jYuGl9fjsy2qPb1STbDHeceheDEp6uzqk36FcdRwMTWtWXdQ0Qpf3Do99Uzfo0FI3Dg7J7EnSsQGi4oiMNpPrFRAziPXinydSOkBNQYxbH5tDuDp937sIY2a8K7qZxvJlPd0y3xJKD4f7HF8KEBluvnC7mU6UpIf6VgwYFfBijIh1 + LIFECYCLE_STATE_INSTALLED + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + KLsDTt5Rtj8Kbwh7bzsSjCCHUO8AYaYAVq6PTbyeuHZyd8Fgz78TBLsorAYpKWSyeYnZ1V5wu44I5BYEJ7pcKRA3kylWmdusbRrcFxA9twJq8A5Rzu3beweyWzujMRLPA5UfuuhX10o1slS1HNcVbrl80IjFzWm91ghvLylEqBFTWpMv4ZjgiEgamzPVvcXpkeM5E7BWA8HoxuUuldC + + -9223372036854775808 + + qDTTQnodRwALum24B1ZJxQpNjzY1RR99n225iib9GLN37H7AIZcgHtVS2TLLDUMSXGX7Z8gxLVAKDAdlzpt8Ko0MaLqNG4xvLuCCvK9gGC1bc6oDnSL7gLLqwb54gCzTZ3vuOwCm8v + cBVPYNA5WdReKUkG2O8VFbi9ZPMdP9K2LGJJlkHhxqw9cIIfoQ241l5T2J6RTJLEhvfCHOM6ea8jKQy8Gs4zFakHTjrMU4ibryF8ej7t + + ADMINISTRATIVE_CONTROL_QUIESCENT + F5h89JxjLGgpFCUhPCrpnw4HlR19paz4fR4gsBAdaIuPkg61Txi83ePh6JinLRj0An82QI70iuPuKNwvlGEgVlpT4HgPzrH1OIWwi3pBx65aUtF7abnXxNQtuYbVpKP5sLtLGSe6ZjgLNNSPZfMoUuJhkU4JxTGZE9Cl2QrT2zEHmwwdDatqw5HQZLroF7gbgSoaBP3DgzcvXIIBK4189AY0lppSwx4EhsPSaKnik + + e8llAPKb4Hglf4xkSKLV7wM9UQE3RCSXK5idUUgZCwcRAJ3kmGgt52uZK0UBDMzfSJkEEAv86IRyjUTFB11GVvxGwj916AgQkBmQ3SY2sHALtlr4ekC2P1AdlJejcn1wY + e1743zLwdeJEbQYFSFzsLU3Z5fe6D4lRYlVTUyh7F1DQRtnB1W3MIYDNeSLRW7BMkwGeXXeCQJkzdHa6w5S64vUafx14wuQQ1o5QmbscUMMZlO5JUXQQlC0s9TwGgfw9DtZRwr4r5Iiioo2adK0qmS + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
UoA32VULsdHLih3sGjmQp6JPktAIZKLL0dG29AGtNneXF9qllE3KLErX8UFZErLEwjzFU70zu6x9
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + 69HTQqLgopTz428InPNbcbP3AmYSvPitQZmGiZWGpH7lJg37XQaaT + n4ApfmgTc2lyqov2c2h9DMNob3fjCoyZl9hAnxtArG0S5vU9x4i3Q5j10ycDOLC9MTB9iWBKDBuA6oBwkLr2 + K4Ja8mYTQ0FCtHUqiwVU0nShYgBJzErbA2lAocuf41RxIDXT2SN27xb5GFGfb0rD2MdrQzGUtpk32hW42BZ9927PzNWKNnfQ2thSUPFn6Zr08nX2ZO40QbHiYDUETauVvDFpkcNq36qctnek3icUlT4kpYYi0k5vXKV9XAz0yZ41fbeilq4Hc01BZRTZ3YvSAi1 + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + PORT_DIRECTION_INPUT + REVERSION_MODE_REVERTIVE + + 5lmVdRCodsfr9xrX6QF53gl6fbWqdHqi2EdgnPEA9T2ajl8h3Fm6VIc3L0tYHLgJplRE2nfb99msumJx15DOFPRiHcgoXoZeJRTD60Pf13zvhaUi8pYN6I6NUebKD2QeTBS0tz7uCHRTRL3Z2TF8BDVoR60u1IJUktMF2UawBThsxkkz5 + IHCDXtCXQDFrpR + + ADMINISTRATIVE_CONTROL_UNLOCK + + SeyFKrRiIoILObZIJIEUEbimueSAD0Mnec3QDM8daQZQ1YqC + 5w58GsCUc5pcJNjVI9quiDw0Cm2tMwUJ3RRBjmonjNA2sTP22fwcSUdn87IVDuwylg2xCqUV5uPyfwAiLZmvTzS2ysP4WdCitwP5WBS26zsl5UvITSeFjYzSroWfBqp5X62LINFOm71k2p2N98ks7Tkq98FLz5IobC9ThPzEOtQISSw11Ql0CyqLGXo726v6BFRSujoaEeTo + + -9223372036854775808 + JTP7kFPoH092DmB11NtB7Pn1SGxTDCrevglHN2Yu27pFtSymF1XFJcGtK5nnHOt44ODJQBeKIDh3nHh3J6IkigN3laiUQMQMstwb5KNFf5BCMSxnZ7z9 + + 4w5C27gkPeGfRINboA0aPD6N1l6lTPtYdzs7yAjgO0vFIaR6CR9juf6wB5JmUdc0Ex7c7rsOrYt10c0DW9WigVOJ0q6MDaEhHMtH5OvoEQpE3p9 + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + mbyxhJTIFsUGlnF4gw761ZGbS6NkoXDK1caiNVSsnE8I1FMhcLn5C49u2WGqUj2Vn45aZYDeCDOEjsNv53AHZJ31yJjk3lfqqktha6oNJ4jUx6pC9Sc0tf11ZkdUyscYFF7PDnufsN9RUrlVbxWEFXywaLqI6uyD2xsFVXUfCW6wnjky + + -9223372036854775808 + + wK6iJv0z1LQlCEdQmnXqQP8l3URngvAE7HWI4Oi5r0j4EwU0TJjJzrWumFRu3r820WL5CV23Vd7rJTjuvC6W42qiAhMDAMFtIqqcdkf8yfz98TEvnKrrERBe0fRt1pWBHmNVy336avgigUODw752ZyhRO0kHp8b7 + LIFECYCLE_STATE_PENDING_REMOVAL + 2b454936-1b31-1d28-4dda-1d3475708a0e + Ef0XJR4CWQsuwTntA0rocp7VTch0uzG8GGXhpTTmJdI765Ay61WiiVd30u3uVCutarKAcDOVIwUHBnfHg4RzZWuZjqte2XIcgkMkQs7yY2fspn1xrT6qPti8TLfVBPZJ9E4Z6bq55Fpm2qUljSM1l416Hg1a5TM7xQYvTgsZWRdQi74t0QudMwklM + + -9223372036854775808 + + YU3TX13k9eA3Uer1buSJDCpDW7V5aUr8OmUDgPYp3qlPEMRH8BjLdIh2HcZR6qSMFEhVt7kpyFe4kXMszX6Exny7zxYxQIbvmsiIAC70al4ujIOKxUg5hPcQm2f4LqzZLRHdmGdw29SdKGPhB5eSUqB9tId61FXMoxZKd48750kHH9Za75UTwn2Z68X7FUL3rCOxyWEDXZlw0cG7hs1FQVwWVtV + gGwzak6I8LdXCylCC1CMmvrciY06jVGzt49Do7dpSqmuZIZtBB7X6z1gp1mIWVahZbUgi7FbyTxptwK57SU5jOeIPAiEvsVnDQDWPi7fbwwF3hC21o0k4e2UGky4Ftrib46Te50pCxWFGqzHHz1LF + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + YM9ZeD5LFds1ONb1M8yI46j03ezExsGv6Hukks5RFpLm5WnR4Vz9US1XYBtv31T1IfmUHjMnJxJOlYFqM6ryQsnPVQcQJ5SjdedUxR98gKWCJt2nzlViNa7JSbrB9jUmxZ85Ri5722JDnDSPYF7EP6fH9Gai04wpWFmNPsMJuwnJ17y0NFECLTcVrm5rjuRf1dUQFGz14OL6WbYJRud + + aBaLTSdU9e4Ekd2PJKuXkN3AHNbwc84mJ67vZkh0qmxKzzsabO7vBa5aX8H9hDvSJunAGFt7T0JsrbCCZB0tL5DB6cCnH07ruv1b2maVmTfNXJiOki9XfFqlR3Ar3ISp5Ls78CUmo12lKk1WubLJQcXz7x027KjcoMbwgXKEYMRAYTos4a4Me1ddq6fyQyKecW + tTn7K1Zc0KBsGDosRpx4QDbouB0AO + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
oktfwtZZOFCcZlCxhk2kAwWA7Kpc1ZEhb7pHBgzhW3tNhXcyhfLJDHkKjBOcAslLsKk31LcPPFu6DHwMOhwrQI49jSlLdHoFjAAkmM13rw9W5
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ SWITCH_CONTROL_FORCED +
CSBaanR7LY2Km0d1R5n2mxGsq4rHljHY3i0dxJljAn3Wn8X6dc9rJHU2MlJZxiPAtQG0
+ mBtid6WE44yBW4UHBr +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
ovNUwXQgZAIFqw5H0n8FXqTbhFEc8zaw4PisF1IwBibUOhBPwJul2fwbM2oUCqiy7B1MCJj52uRIDkx14UnY1T9GWpsqHLYPeRBQBMNv9FdMZDOVp3LqWV6Kcr2Uc1BqS48lRVI0AOEsrknIn10cW7W0qZMCSnUCs2QjXybqeHKF27fh0gtWfiPF9BhTZ3vj5duUEFcSmWqgWFyWVTLa3APc
+ true +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + 0g3UChWDwhbN2DX8ll4XqTxAwrh0cCucTp7vyV0553S7HH7U24JlX8Vtz5lMHHYs6XPFLPCQTmPs4Xe61YjQ6fbycwcTd2eb03IDLclEzaYvZct02NI1UTr6pDRuF5yx1gaMtviUygpxkSqfx88r2zpj4hGJee9fuj1PHbJfj0MEL4Tid1C7s1qwi67pcgEzAyohJ0o30azLf + d9pXiShKGxF48fE1Yy5Z70SvaD4dDh3JqtGJdPlUmSYu7uo6Ut52tQxDttJYLMHb7fMl477jSXNZr3XdoVfKLFf68Y4TDEXCTBPYBWhtLWk4Sii85xSQc8OdYK6toVYixN88ChBndVsX5K6a9YSeYGrPjpiHl8ZSWZSqglFm87jeJpgLg9ZeHi30HeI2mzMarEAHZ8387neREuuUDl1dDWdk2Nnhf1rGGUnF2jF9yTScomZ + kzOoVvAHATR2b1H3Tw9Sy3 + 06cOkxRZM8eNrUtla1flGpTs95Qw4B5WIiLUHuTt + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + + + + 6OYcphGfm9BPpP28mPd7H9vOEix3bxP9dGlDXTSc3l1kb3kpTxwAz2g5kN9ndYxqwKVuEOGz9HLcC5Bnv0Y4269eUauZ11hxDd19TzAU8l7LjA0GAYKu5LBRW5IXYRmB4gLPPdKQzJtKbtqMk28 + SEVERITY_TYPE_NOT_YET_DEFINED + + false + + G_826_TYPE_NOT_SPECIFIED + GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN + 755083090 + 688151040 + + false + + + x:LAYER_PROTOCOL_NAME_TYPE_PURE_ETHERNET_STRUCTURE_LAYER + TERMINATION_DIRECTION_BIDIRECTIONAL + + WkdyrFzJ3KIa9UrFt1dKaPKyKCAboHvc1AKk7b4aVEk4yDCUwPwGwg68Szj8gGkagWuf8qp34C0vfChMjNkIV + QFS2O0I02RXx6X + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + 9 + nHL92mkEOrQVvucrv362JhWbm45jK6H0Ol9IHlmnEda1zms5iq71HV44R9fufXuVivERQSeu5gwxDQCVhBOQwSMn12R8ZdW9Is0qk6VimjPR9jMiUA9ikNFdPpmGuaH5CzvOFq6UBNLL6qV0S4adKQqz7E8tO + + TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW +
7Wm5IYTmBRMwKwtUJdC2EJGM5nuDFLHEz4Ki2vEDmi16Gu1izvke7SSc7ePNZxj
+ true +
+ TERMINATION_DIRECTION_SINK + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + dYwcSTYJCrWVMaxKcSTqq4RlRmMxMg2Zey3YjTIVcwJZGgBS0varz1MifqHTGJLU9OTsItfUZYLx7nh7KryblktAL2mrL7eMV7evstijk3Qrq7y2q7dLjGeWAAgdHuZutd0V +
TgTvYul6S4Yw2yKsYUna7Je4g3kGauV3KGqAaMGVIwjK4Wc2Iz4HbiMre67oAUjcsBMvfkqXQBzVxMP7dUPo4BHizHy2tReWlTrA5Jq
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 40607f48-e0e3-b1db-76bd-a47ffb26d223 + 371eda64-3aa3-f78a-2711-ea75d567381f + PoiF5f3nMkfFIVS0UPcyEYyur6LuzUApiSWfZZCDbJjTE3LyKYYhOoLfuoBWa3dsV9HN0bqbVB5rFI0hGQym7bCtr5pB9C34LCJLGaPBLM2iuUs3D0pK41dv7v7g72cLxWodYdGBZAUmvmp0eOKaQPGPkFXkz156PlbNzJpqkbMHpbHv0jGI0eplTmxkfCj5XmSo69Pqct7BFG7xZF7ZTwcEKJYZd943wPrCQ823u1w1Hvy + LIFECYCLE_STATE_INSTALLED + + 0pp7kq9UqSE8EkiWZdd2NwHltA1dc1U4ic3CC4p3W33tflh6yu9dSQzlisrmtdqLplf2pEXeASHP5YWDkXIcF9pYBQcW4vztQPnglkmV43D91rMdonh3oGT0p6OtBoOj54rqoNmtQRCJihWGw5BUMvMbtBwWRcfWgHmFuA0druOJDDh9 + TWugIxJb3F2gMQwl53QFVV7qJIVmS55DTrTBZuFU1zaNqz9vCR2qM1QnCDCuAz7t0SXRmCMn3OatfbQS2TaGM0WovyS67RzZJwJX0nk43npjy83t1d1F5X4AvOGuy8m9wX7xcrtfGSyf0BATGBzLzvmWjUjR2F1zu0YGrrV0bmfcPP5wiwhR1vOdi74kEXL0XBGh2th + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 79b69572-4586-21fe-efd4-4a81a2b57515 + + lyEzHBu5qVH8WB3quAr35RBgo1brDL6YbCpKdTQvHxEv1HNvh6zfXand3yEGbCxmeOZkAPP9etEf3jDkpcreeOrin5YqznNFcEZMtPVzarHdKkq9wRnCGOUVLLlc80RkEJ6ZyTzAkgO4se5Y5ssD8nyL8UX8UHtrqrqQdRqx7eurkzhiUKV27uG7gDf2kAtC2MsfDTEDZ84k + mCu6po5T441Aj4MUxpObRVPCzsuAoOaKiwIHM + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + DZMq3EZHiPi3AnRL7EF2BdMdZERs5ghI731aA0JSHUNihF3pbArNG5SFKK8 + + UxQrb0kY4IGDdQesr7r56M1cwn9ZwrkqYaJa2306DyBRoQbQXuNVgP7Fc8EArYTq0Cs2yk03SBUhjYZ8sM3Jt2gF3U8uK1UKveE3yE7j7TsrRrrc5vVzp36sXeXHfJjLYXGoBFHAz11isluyQh7fkdI9sxQzg1c6YLvrq42R6V2ygwYYG560bOavdS4tU9ASU5cc1e47 + 6yiuo8aue3x2d27X6BR7bC18Oe1Ua1Vgr5KPeNbsQI + + + b1LIC7tCWQKBwEPh6qhC3c1CerhwtNZwOC6qJzUGh + LIFECYCLE_STATE_PLANNED + + W15615hJYi9vbxBtT0XvgEGUmTAJ7wK3xH1qFi1D + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + 9NaQWgg5LbiMOw652zK15yEbYfCKVToWyyMmHVss6KeMgkKiLucI3ITTXnELgUzGlm329vu7fAUvNEFy8Jh3r2Phil2yft7APaCQFYYMz + 9ewOMwyVsRQh88C2yRwFkdPO4mNU8eMhsa66yw20fKhgSTiqDG6PMNDIaiCiogAIq + + ADMINISTRATIVE_CONTROL_QUIESCENT + + jbArmP6ibtJrfk86Eu5qOQpKb7bBBohVzJeVqc6BFHVUT30pp5 + dNfYQm1sXpBKRkQEL2CeHb9t44tuurkH6rxXNqpCQ0fzc55P8I4HT5bYawkEXEd45D1K3ieLatcmricz088LdjBfQVTFrZJoCC0xUfj4Avj1FvsxvBjIMMQuABaTALa4gaC2hNZSaiLQFen + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
dAYNc0GEDQJTTdWaSNU25GKCU0Mtqo
+ + ba785b4c-c260-be6a-3488-8008452c0696 + Q2LcP0af6NWrtOdZTJjuXDLW0d1Gaut0w64d7fs5Ugxg4KfQlqka3X632ZCct5dR3942oo8jExzB9Gru7Dw2AC6CtIPOFUFA3JDk7LD + HwgY8Tta1171UQN6JvcCv5noLbggc1ELpNKyy5AA6ItTy8R9v3M009hLlpTpqq2IdE8LJIdIqGBYGk0cfE4gNdT0CNhV5kDiYLVAt9iMHLCg5CskgoAWCmOe1616iEg8hbIDc0pML12Qwu3MSvAmRhtSnuQx96FiaoVmok02e2KKoNo9jZv2gYVvtD2uKHMUXI8eU9g830SsGhBR86Tg5GLqkFU + LIFECYCLE_STATE_POTENTIAL_BUSY + + eCZjZuo7UgfPBD8WowAoWXXQhaxKoDeCfeV7AbeustjV6kSmIkKwhzmyKTi0wpCEDyL5BZA3kLZiXJwF39cdIqLkkWkIlXeQn + VYQnU21TkYuRExSIKA8oVkk73x49nj9aaZq42rPepjXVIPvtiEJ5Y3cTs93Hk4RuVhyPAf40yTN9BjCTPdYF82rAbmhwq0Sdaj3KyZCZKq8lBCeiP4XX7oxaCGy2Gr8QK3Ba2d9Mvh0YT6gIbexau4k7KL1jc19O4CY6I8LdhL43RkLUqb4VfhUS2N36PcUTHK0pKDu2gy5ZTIUjTQ61Z0T1OWZv0L + + jCxNJ2bMCNK78kOWZIBrDc4XbHsGRwNa1cPKf0oJF8QNswBje4LSgHHjpa08yFjzR0kY1AIGJqm3XXn320NaHvmYFe75TqFCqZBjrbSaBe6q3tuXl982EuTbI0htiW5ANGU6RMhlSnLVI7L39TXNfIRPI0a + + x:LAYER_PROTOCOL_NAME_TYPE_ETHERNET_CONTAINER_LAYER + aGZCEWoDREc6wE3btEfi6jUbmtXttR5DyW74KwHCaMIHqDKL9037bPixbf0E7XaxM9 + + RybVq4f6dQPlWJBThebtTXpZwZbEItHr1LesHtqUjg78RA10G5ur2Lqq + u5tXEMZh1jYuJKGRJOIjHJZM5iHQJ7Bd4W2JJ10CcRYOBEFdkgw2RoGWGfEhn8uj4x2FqV9vE8j7EQkZYJTH7rvFHaPWibfeIaM1XVoBVHAApVrgEkXDLtakDZ8NboTLqx + + ADMINISTRATIVE_CONTROL_QUIESCENT + OfttOnzx1IST5wGFvrAEcqkj830J3aBJq4c6jLDkmo5jMMZ95rOaR0tS3mtYw4HO1TUkwqFSOK4so3BumpE6hZYklriKnRyoCtJ1ToTz0X1pSCTfUplbgbouuyeRqM827R3S7Pj7EcwpPhEByREHU2boBh7T3fV36RN5G7dcjBB0L7tjY80S238vkgogncbu3YzBXEN9gp11wvcnv57x0g3lojtLvE7quz1sdPtl6 + + tl9kQ2Gt6M8ygvGWzjIl9OtzuL2qQjjbFkvnnbRtPR16ez2OTC92quBM7vcXHn0eIwBXzkqp4kniLh6ET7ycC2YBx3r6qrc0XOXp0gO4s3ndklKdtihXk8yKbZQtj3m8JjxBrdyTgVZA8JGB1Xqe5ZY8QOu9JQik1HWtVuebhdEhWkTQhb4f22fTIJUkz4EBMs4zOiK5ogfkA0 + Kb6Ze0eZBYLVpQr0uUW3I7FGvWVHwVK86I7cJe3k4P7tFym1sa43hBBMxwuWj64hO4mpipJeeIzLhVMB6IEfk72RDoFOuK6aGkAYJb4YUDJ3roEx6bMqiGaOWPCirAt7U3XE6Tu0x53YtInAL103A2RwKmP3Wi3JdSfjMJcbOf9aPoKApCwZFnohBdkqnn9s8gLURX5x56HUurnL4TDB81KK64alkbNsryeiojP + + -9223372036854775808 + FORWARDING_DIRECTION_OMNIDIRECTIONAL + + TUDh98GeBq2BJArdMz7u5ZQlWigGEC0ppDyyDeM6EHIn91tV + LIFECYCLE_STATE_PENDING_REMOVAL + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + vLewMjOUu8aTdlvmoEZvyY449n0psH1XkfmYraSVa2Gnf3CEHt97k6cttcKNMLD6SZXb9P6kKEzZIbDpFFxRLJc6NWUrzxqjwnvx4tRO8jGQub71QEStf4A3Smu + + -9223372036854775808 + + AiGr8Tfq9W4LWl2rTB47f2EWK16MmTeWbUgbFvBGjxkfKmyDXCDdFh1ha73xTilW4B8C7Bii1CyLZ6hWBU1833hd2lKNv6KrzS3ylmRmQh0PfhEQbxQeA8rvl4iI2U9BE5a0r1e9ieZxvvgG2YMvY60jaa1c53FB8PB + IQAS4riAWy8ZoVmn1ey3gs7dvMPvCqWc8o55QnxMNFDbsZql5ZomjvzOiobMH7YPnVMdij0XZv1jnrFsi3GBrghJwsndrlVP9H2r1UhSii3FJIZ2EGD5OVGkf3qHglwpUqRNd0xviB21bT3PrzUfmssBvSiMdGb7ZUNcUkzcVB67u1OWAB3W3v + + ADMINISTRATIVE_CONTROL_QUIESCENT + wFj0IXIhnd10eT3l4SEB3LuAKjKh5TTur4u915igijgpdjK93gD7U7HEij + + NFJ6p7jyDHg8hmPh3FPb1 + SpEpXC2n0P2JNjRYJmGZmPmc6hRVsKml10CZuEevm969sX04by3ynhClyl915ve6oQ5SncfJlmKNbKRniNNx4pTvK2oHxCNVkLGzXNia13XdFHAYufvqEgVoij + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
0nbzcRSmSNc5sTxifMGFqWBGfMDXAgsAvw9AnTWfG0d1LKj0xZyPW1o3N10f9kPFQZ7dK3lrWykHiDAHv0pj1NmGGeWIqDfhummfhHyd7SNqvfZSfob83pGCvukW8zdCVrRc9pig95yFkqprOBrK07moCGkC7pe2QY6Zfo8pty4FYlYFWppPpDdTbpvi
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ + dZ5PPxiiaySug6WBzisfzmOGWyjzoYHBPNiFcAXe0HI9NFKeX4toih46HfF65fzUUKzYcocdXVmKsYYh2jFcsBjaQQ8NXzHRj9PwpUJnPXZ9VQiP9X1CqcE8VEVSduCpDjVVdwiUt93gZd592YDs3hsYVnI0KcpfwcaJIkw3urbtFguH7722gu03SA4uNlJbyUU8ei4IKf4hoyYvG0xWvpSfRWJE9sPHeCItMM3w17NhGEMeE + 1PaZ5Zy + oHONsbzuDrBbX6bUtKJ2vPwpwygCxP7NwNBQY2cttOEi + LIFECYCLE_STATE_INSTALLED + + PORT_DIRECTION_OUTPUT + REVERSION_MODE_NON-REVERTIVE + + 21AU8kIRYScGrqa1LWNHlHO0YmwDA3OD4hpdB8WrS8Zbr1d4Q0L3zs3qOA3hDJUz0bMtbBV3JMf2Os7EkKHUcCk14fizY49R7Nkjo7m0UtUAV168EF2Q9eJet1Nj + Oa5unoKuCKg6xITqO14l3Vv9EJuyoOn5QkzdAjIdWQbtz4Tf6QB1 + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + SZz7pDzL6w53XJhElmRVOx7tVmLTYXPIWgIdLhYSFWNC + 48Kq0x6xFAkTdeRaVsYbacXj2HYQusfyARQApWZWokPCqyMd0Do2PdlJUbsgDHO6rwyQtyMRKtl2 + + -9223372036854775808 + 3zkKIuKALTGX2L87cbpyvdZtU9Rk3L0YckIVGtnke3h8GhgStxiYKiswrbQmWIc9UV4BgrVmn4uVmCOP9YNL87isi0O7J1gDOc6WvTiSYEGkhm9qkO4tWmV6eBdXultapr6VlgFjVlDcHEuUsyfgM2n1DsQ0Gb25D10Yhy9cTMgtiDnK3CTQE8J9Az1gL4eg5eemMnry1z1jcgVgKO6oWHpp8rxLnL1sSfGwu74vzXGL5 + + vItkow44ei3E2U4Eo71nCWhL1aK4gc8DNBY37U7dd3S7XODmNwBhtSUmUxq2JyGo2ws9qrnvu7CsNfGsM9K71EtV3LYNbw3d2vnsXCYrBsLgIjImskttZOh2z7HKDLY + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + 1Pvpe1YmvvbujzhMqfOuA9afrWWoWg4X5zfbsdxYIJsTaCFARl5ku7zW4ncSDgHIHWT11jZK2kvcW3FFoCZTJqHFGTpj17UIVFJXYBzSNWXJZCgg681HyIn6tEqmDc4zJFoI8PsVLpwDTFTZNUzduWkXsCj6OfxxMV7NKsInR70DMTurF3E9RYYkA9qgoXG3KFQm7qJZpCubnYC3294T735 + + -9223372036854775808 + + PdCEdbAC5NJ66Xp38IxxeQ6tjqW2pXk6aWKnZcZ4ZAa5pr1q1qPggNBrdxtuuFAwucLloCig4sdtM6LNwAVNnw6t3AXp7qNtCyPT2716resdldTROOw3dDwg5mycMlGgMn1Ou2VNhn1CAMlgsSkFnIWs4mwIH4ZlrSaNV5B4kuGMgT3ILfg0X4sUqZu + LIFECYCLE_STATE_POTENTIAL_BUSY + 2b454936-1b31-1d28-4dda-1d3475708a0e + SbycML6WefpBhI75fiNW8EdlQaIhTmgEyHQckX8y4p2l71imjXbrBoEjzeAsBJ61 + + -9223372036854775808 + + 3llveva9sLdMfLynEtYiAeiqiDkICOzx2U2gh5hJQunY7WlDhbNSp6izBu9daJKcDFsVKJws5Uq4IEIZPvJ7tTG4fI9qrMuWjXJVygnw2GAKkaB1yd0T6HQmhZEID8wOXgJooZUqFm2RpDKXILQPky3Bqzj3HPSxXtVlkHDZVFIkbt9T6SAqqv1Q4cME1wbRZ64kFIbAfMVq7WcdOEDfaEX6QJKJfVs7Txjy7u9m8WFfSRszvXGxBD + jnoVucnB5UUE1hFgptVxdMRM9Pszi6dCltpHFMjLz5hAeWQEpD3ChUhrJJ0UH5oUyNCezNR8S8B74jDlXyXes6x4QpYpmmk + + ADMINISTRATIVE_CONTROL_UNLOCK + CEmwAiVhe3LYOezQvtkhxxFfsO8A5TlHxHe8Z1p6534LhwtMRNVpdBEFpN7mGs469a69bnf8qbMAzfer3aQ8DmN29NhIflGhnMqy9xzsAl2as8BnajvNFbIHYZpdc5 + + Py8Z2WMkvkr2vbz9uIQhMtzJ7lBcPg3wPcoR823DmuFSy6T2OJcA4Dc4YNgF3k3SwrCwtF9IaPAI + lCC5G49jgdh3mW7y0RWjlsF1Bn3iPD6a7A7OEh7NmhQA5P85z4hUoWN0jIa8l8atAi97z8UNpCovsosTtJFRFlJY3MYpM9KnrTmS1gxjSVOckg5F0DoxY0o1EeiqnUFGF1qz9YS2Ly65O4CGHT6xTuyxIJPYDvwjoXSyVCsyaywQC8pb1vIMR9bzS1pnoWyETicGUE645C + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
EztjqCmRmfhKD5iaQBmonTukY77FKbqgKMz2oWTDb2nH7xRP05doYIAWPHuzKMPmyhoP59s84HP36yT7E6nuGXrnwNWgzEu0NSPST90PQITWgEVMCihj7AGDnvLO1fGGZnyLwqAe0l3hZYVC9cN8ElM1IpIBFohwMHha8Sh8dkh5adzbhmkWz6PinpT2
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ SWITCH_CONTROL_NORMAL +
vWkJa3vdnEJXkPoRn6kNS3pdhr6hG0UcP6NR1a4pONm9uK0SQcxA7XFooLFXMr1txOkzQoYF4cGyOyiwCQYJND03ox02Z1voHPPy6F52RLAxbT3NB1ogwgjVOkXFdlVV2Lt8qqaa3DHeoLTZE9fbqyY6KNLY8yLbj6bCwmMzZtNf6yeDHlGZTE5wjImsh7vs5G4B
+ cEziwPHwe24aA3vyAkQR9fue8FDvPr61XGbtvKZJNWTfRgNrAviBKEPKbkf0DmTB244pPW8uSTBB1g2CMcdwQV9Tfo +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
QCwMn1fw2Z80Wil8t8AMzOWPZDag2p1TUpxhrFFlENes5zAqA241Q0QPE05GpYrboRlHw022O8vLIX4a00bQ11yx1v5imxuCgPjMHdGnm3
+ false +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + CFbsKvYO6NUYE9cNJAcq0WxCYAdlR7FtNINpdDebr0951dSKN42NTziJ1vXSvueac1zhFFsYFt3HGNrlJu9uVj6PO3HbpNlBHVSeAkc8N7PlM8GnuHSi0Q7PLG0aueDb1vpBHtBmAqHmrfJVXtdXbcEWTxYnLBqMYHfFaRTK + 8XHsIKJa9q1nzVNILFONaTmunp72BPbJMTbmvVwEdp1MdGmYl3Ln + jeIVC7zWWcVlcPRBmTFigdfkejYAvZ3G5LBHK2DzezUqoMTKxyUFL9ZZkPrHPunU8YCS07rfGexW0rypZl5DmWuHMWotiEfqCJjvRCCpQ9eIAM8s755m1r3Ffj0yXgYsZ9PIMr8usmd30dn0ikmbLhR1AJrqZpSRzzzd0zHsVMnWZCO9WalAr4tTNUjFb3wCCXPuxpPkb483HWcv6xXpBijh4uWgykS2hAxORm9UqhXZ6avczsu3LN + SbhRdSGoul9FzEs6iFnbjASyq5B3tp3dAk4N4D3yQd6pRyn26Ldhl5PMbqPwPKJhWF41i0r05xqWYFY4q4dE13ictZIbKjsGZpz9h1amqsig79cq5q46tmjOdTZX5kw4JXd0QfehHwxHxK7C2bJvpU + LIFECYCLE_STATE_PENDING_REMOVAL + + x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER + TERMINATION_DIRECTION_BIDIRECTIONAL + + AYAQzoF3tC6G93zGTOjn65dNcTX3Ez57pxXYVuTh60XfVoNOc63i3hXg2MbGdgNCGCAt6mK5mzchX0X161baa8i4UtK7CqJi2cL1ywYM5a3V2SW9L8bV8tZ3WC2q2MIWQuPgSN2PQXCSPz1Bz4oHpgCeSFEMjnA9Jqht5biV8VOPmHiNEHm3XZhHEWlXbVYUlfnj + xeqkUfyCyl87Ib4HtDdhYasT0m7fBqx8wXtrc1VKf3RPeNoziBQ8DiUDw1S7jpgHeB8quV3BYMq5sOEKp + + ADMINISTRATIVE_CONTROL_UNLOCK + + tH8MkL5AWmbQaerD2NwkNmgaTgDMwVqZuqDHbA9ZXkPZq8ulW1FBnVL8cgUA3csqCX7Fygwntdm + mIeaJULYHo6TwSmz4GZyD6dbfJqIXMBbnIl6CYXje35KWjbSZbrC9wGgg6Y5Lsg8at6Ej3PxZU9N5kF4nYzxv7 + + + + 35 + -2472 + false + -1881386789 + FRAME_FORMAT_TYPE_ETHERNET_2 + false + 19 + FRAGMENTATION_TYPE_DISABLE + true + true + mkFRLqnc03VZmSMWlr5sbLbyEXT69RvvbaePBCTBxOsLyeATxFmAqp8XeUVnDqKOBYv4soxZ5ZLD6dxvSL6b268g03DDufkXdPTy6qx3haGnn5T8IRjKXr0YuvtQKNFQvyotYNw8Q4v5agdS7wD5XvVk1o2D4Itr8JU7xi7fmCkwTyhS4MP2hKea1gOXY9o7La6akdpGHJ5shmlm0ag9NukOK0DJ11IM3OWnTlVA503 + + oyBh8gcWcrHqn9nncBukcIDUYI7ymW0KmCUuK6iWyZeV8BaddExhfa3dL2E7YEJc8DGSKYHaPVXQxZ3CwsTLvWQgZufP9Y2hCI2ezJggEd63c1FIuqlZf476ymVzkXJWyL2Zuif0nm4AnBaJ2oI9sPf0baso0bcqWfhipwiNKmf0YpJSFkT7980dasB2vNsjUJBk8T7SgmS6DuQ + SEVERITY_TYPE_WARNING + + + JiPJi2TCvW7bgq501p0NoS3KD1gZJzNkRC32xOE2CE5TWbLQALDZvyB0rRZaiEu29p4G5IAIeGBbJe1bZw2m4EnvnexGT1IUiMsnm25tAyEbMxnD3p073fujt1ZeUz04dsrrnpUXXy1CXof0N7ZRml2Ie1W8sX4Fhw6EN1uCrvepTmhGt9pQuryJkmJMbOrtcq7ZrttKYI1RWjypkP7OhxpBU9oXPHi17 + SEVERITY_TYPE_MAJOR + + true + LOOP_BACK_TYPE_NONE + 9jBwMbfuQWRFxgGaM1N2YL0XsSyHNiFWB8kfjAJ2oAHNJgXvhCp8gpXIhwh4OWTh45wgF7iWHZJi7zNp3cpjBm2LKjHq8AHcy5k5cC1MuD4B4K07OhriEl3owKPEdoJLm3QyGSc2n9DrTwqHNRZj4UABFh7SFQv1Mls + FLOW_CONTROL_MODE_TYPE_AUTO_NEGOTIATION + false + false + false + + + TERMINATION_STATE_TERMINATED_CLIENT_TO_SERVER_FLOW +
Q6QQ8bXEuStTJg2wle4iC2R1pQO2VkCMikuivjWR4qKNGEkTLgbfaUgAKWuyhZczbGSz0Gq463REz3qkbBzmoHO0EayV9Kmdj6MjNcfL7YiHUIT5blrz2fsGq0trDIEWGq7lve7Cchb6Z542ivCkDWTVOemrOTfvbeQGsPbFYeDXbH0t5uGIirD6FRquKFROUzmmhxTfEx5P6
+ false +
+ TERMINATION_DIRECTION_BIDIRECTIONAL + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + iggD7b0Bx1xqXNLrKiCjZyukiXaA315lhlYgoRROSh6H4R1G1DZ0bmdlbnNfoKAx5rOmixaaOgJKZKr1niTqE6DQur5KbFa96YngnxicF2WEMfx2yrs4x6UTpRwspGtnEQE1nW52YUzD16FzpZwXXqImaeHzUaWq1AkgppbnbK0dIxE8xaXutFJDUqcGs87tBjK0INfMp8Z7FD74O4z9CaMosY4U63gzm0zXFPJ4XA3C5bHT7 +
JXKQ0eK8UQ2G03t8uzKjFxvZndeiQBbzyNhzT1zNRBtJEWR8nCkU1PUpU0zKBCbaptBamaX6MiPq7zrm3Lh4s3le3VRxp2zPnaZCkPI6Zpp6QIlTlCQFx3TsQCZgxqXUAOoVDYTvgaB6KWS5qAKPDwau81KFszs2nQPTHBoXDR3oGNt6n6O1CYnCZZaryCmVkbO1M
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 79b69572-4586-21fe-efd4-4a81a2b57515 + 371eda64-3aa3-f78a-2711-ea75d567381f + AIUdam0j98DXVPwlYl8hQyipbzbHEVwfDrkGFdROlmD8b1u9mCicaBBd2EUHAjO5C8Lhlu5HQAP1Bb2XNl9XWCaYgXxQ8dOKmr1zWY8MyQO11IYP3ZERBHIJEfsMtgoHHp8DfhiNZYG0GEHKvmtY3bHzj1dMhBlRStm7CEMBCsubY3Vtpgjks0LL2QpbjK2b5paA3W3ygxJeBwzSMS56LIRFzgQSST + LIFECYCLE_STATE_INSTALLED + + Ds + NgNgkOMkHy9XUrvq1zDhMwdS + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + + 3TeimCJ6hu3nfMfUlnC58nTYxSgvFB0Im70AJCH06Kodwv7JSJH07AYwk61ZI2I41AxK4eLaQ1nfwmYgYxhX07tkencOhUKimh2rnFBeyRl4dbd3Ju0JtmVHJ7nS18agh4HFCaL21677hca0G3B9pxJ8w60q62GgYfVspyvjEu + NGkGmnhnMGYUdXMD3Gbbxq6ZPEu0aYiYEDES0N8Fm6rr364ZM7ajx9beFF7QEpGaUc3NZ3sd9TEdZA4EHeP6f0lVGsLcJjewv9bmcDAmo6rgHvMgBBnRuAM2Up6DIk15ucjGHTU6SlezISHkl43PwPRq6XWGaXLEa4cRQ7PAkV1VNI71NaQbRACXxyvHn8dx4ihUhYmBMnor6vsLFjWwTyliYQSmYXL3f2PwTc0xzoYFUrizCfYnNjxE2h0 + + ADMINISTRATIVE_CONTROL_QUIESCENT + 2R5erUokWKz4s0L4EN53eq9L7fIYL00OS52bRjvN3WSvXDstipxwHy9GOSFzSFfCCaOltb1w0TUXomiGDH4lgdT45qvY + + 2voVtXws3xEFAzfx2nGX7ktIs96vZs3TYrHjhdLkCiRcJ7JLmhAmB34V42rWvuPlWoEdCipesgjbf2PCcpYFlUBhOUdbgVwcj3hVdy2FPlQWfFyrXoZaasrZmF2CAzHTuYHHpJm6W42bKtvzRuJ2WaTaPVMhml3QcKpBlLH9QJkscP1WbKQZMB9CwOLL9Otdq + ODwvMe77ybOz7SbPRYq1sPH5AIU3WkOKYd8Cr7J0iqriiv71lyUFnBKPkEK8RrSHESjXZVPid9An + + + Pcvg6m5goT4u2hBlkAc + LIFECYCLE_STATE_PLANNED + + RTH3lfrYH1Y2LVoEI5aOa94HQC9nMpvDi4Gvk7tT1rVMfcjPhtDrCH0kj9H5ycBIh9dt9zea01W7d7PmBsN52NidOZbm4MWdVaG4JU6BV3B12qnvK3BEITSxK3LGHITuKrzldFO1Ap2vHh0kktYVeQsZL5FkNrPpSgK6VzZoQ1TqaLKnfAitjCk4H0pnj6M3mp19Q0xGTiY44IrbbJEudZyURPh2VW5hl7r37QJ11A5Xao8lZ + Rwgnn9e01Gcmg34XbvR3vQFcvJqNm2k5ytsOCyOwf0SvVXk7k3aPUPUprc5NfhKFK4lfD9LK1D7Xss4Fv6mpOg + + B5vy2GO21NGRR47Qq46HX230jwdD6pyAm48oKXiLCRuuVBcdyaUvcPnvlB0kSyUfC2veROSmxmIsQUFo4sLgh1DDuDXebJtGDRMnxEJ4TjwBd3Z9vCpNvUiZx7eAQz8tqVQPzrTkKhVPlMYIhfvM9FMGMS9urhQKcyzE0lYCCMsPyiyPyVCHtgg78pCrGkbLSDpKYffs1HasZA9pvL7YTn6TEAlcUoXE1epRmEcndmH4WRujutaoQ8hmIuyuTo + MCpEY3Qe84V50Ezb9 + + ADMINISTRATIVE_CONTROL_QUIESCENT + + RQCrn63aSNqAonOoT4C2aYuOOO2EQFQzok1Dq4OjSeL8uzonw0hG + LmwAo3iWTSc5TPvXDGHKjH6T5lhYCXOfbdPrg0n1Sr6DhtsMa2otJueHPnxrcdHnqoPGg4H8wNDN96rj8QEJkLi28Pll32Itjp2zuBA0hdFqbYJbOfV10531VoeYjWjuedVIPnA6B7wE57QMeLF7QI8DYmt9aFvoSrYHOqFhp3WnaM1ppGw7gwDeS6gULLbw495TsL2ROY6ZC7g + + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso +
awa2uqOgbZMg1R1tu3cjUjaoqiaeW3h6rr0VRO3VGH3Hr4aVZm6LF826qccm7tkyNctwTprz6mgxiitaErVcAXa09mfgPzGCE21xrs6xHe5Zwq
+ + 75f65109-42ef-51b2-6800-ef2a5963d91d + A37tAcsysISqEqPIu2G5ux0BZ0ZoAwA2rHn1LPz5qkv4KlE6nkbJRblJ4cZwIzr18O3UwuZWOnSqIowXIzyrDL2HX15xAwzBlunJQexxBpXbNm0nVzGykJ7aKdHdJgOWK3Fthc0TtXW8jXv7o4FANFKxSsKBIqqlt5O + QoP9t20r990s4Dt8JlZmjuSjQ70DT9gBxXKSZDj1MjtQPOYq9XNlkxEawFOpOWSeUC6LfiMTt8JaWABYpgjJNXMbCssjokpiWn44xIX1Qz3F9EDyUWazLWCgo4zMoYXddT9LtYEcxHRymmZ8a9AVXcbl9CZxsOCGzLj3KXf9EYASkz1mAthxxlKGXB6iqIYZu9U661fKZPDbgwxQRHfo2ZXRt31TLZK70Fd6GlRy2mJjKh1t + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + 2PX4ujSv1lzW9ekmoNmVpJWrSx1zC60FVQBh9tE3O5RQkbcIYzwgakzU + stuzm1mcvEdYagFg7nAaza10Gh31QXTbrfKNh6ZMC4CNl93koDvYFwQmFTfnR8yafiXwhOaTSFG5GJq5eNVUbL8QxndgnMqC4f1dVb7FINLpp3mDQhp1UxJjMWz9IZMFeNS1QRHzFsQWncr5lRY7gHr3D04e0QL6Dv8mnPVU9 + + DDkMP99Wxdt800SqSc2mV + + LAYER_PROTOCOL_NAME_TYPE_ETHERNET + YRTglpApHIZIgWbao2uQYI58v00pmfelY7tjo3JXEAyMoJWMDiut1ACosuNPB1az0DLgyme4WMRknNY06tmZ3Ynnk3cWWmnXR85iujmq5dCk1BlZWHQRx5eJ8rx5FVUx3ZPyb3Q8hltaOO1KnRBMWPnX8VUOQGdTxUjIX2R6ncg30hNf0gTP5gM6byMT6RFDLYeASXH79Xa17X87d1Wb9A9d0V66MLCpCIRmxquGgEznuzmzsbKBDL + + DmvuZCvEIBc3kK5ymoaDiDtrndr3OVNj9aO8EbEmMRpZtnxPLIkVlFmISOEzBrKKtyL7Jpmo8Dnu0MjEmwzIbWiWCW + 5f7PAysI9SWpSzMmAryeN4Fn7ty35mi2CiK4QcMR4AhPaVbCmJQ2FnpNRXIOk1RObBSTNxKK7Tr9PCL3et5TRnGIchwwafclQXewuQ8tKzDr3guhKs3tPBb1Szq2PufxrlVNcV9OmMfqUBzE3C7K6aEY + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + M8OROr1uPxZabGjkuRqQRqQBIJOL5B6JJUspemL3TCd4jpgN8GvZZmAH5gs2RqDsl5Rzjuuc7I8qZp57XBYWPqEMHYGypj1CgK3AfxEm7NE64B5143QTumFbklBBwC5Nn8nuy1QFGmECXJE2FmV1IBc2ONwliB0xCn12gJHP5d + + IstCi2Y591nrzGWH5U5RcvggL6LHDZbdjFIBzyyIrV10tPHqBE9N9pWNnHuTyy6R5GtE6TfyH8yaQ8BrMC7W23JhC5abD92IHnfO9mmQuU0c2tEP6DD0ye9abkdPl8p2vEQEScmfZnrTI5AGAdG8jQbv2ocnwBp288y0cVfba + 5KEFr7LZf4HqrJPDYlfgffoGfAtnMv4JfAgGHTyXQffhZWVPa25phtXo4iLINHj3irBZl1ObhWk8S7X293kio9HkskUf2dacFE3SFS3WGn4qvUtwPFHdOgygAkoCyyO54SXKCSya7vAupV1eAAjhQJxq4V + + -9223372036854775808 + FORWARDING_DIRECTION_UNIDIRECTIONAL + + 0xs4BkG5OXNDUF3sOVAmLrHyzR8BdhzdGTiidQfTN3xAAAUonuC1NbrnVzY8IplpivznmOg1JFBb7nsnS4ox8PU3gK3Z1gojMPy0vP17mvimSKJCH72PWWK4zN3A3jUH8kHE1BLoY + LIFECYCLE_STATE_POTENTIAL_BUSY + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + 5yZ4maCHWSorFB0VTYqfE2r9I8XN4e31MV58XzQLj64Yz4MlUcAq61sP2hCYwyZilWjan1VG7ZxzVjUIvm0CfsjhCNf8d6iqUBAhCnYCevb2O5CbjCFyXQQzE5zR4RaYtK8X06retC89zKkSfSj4I9ve64Y2V81gS96K7xZA2ZJtKVeRNxVoGqCEmAH9AIilJo5QVWiXW1jyWxpC4c0KuugQXXZxx9SgxYYlM8aI9t8 + + -9223372036854775808 + + KIGtdnsfcg + WkCBodEHZeQjVmlo7Jm2lXIGa58p9gsXA5qYa5y9bgs6CFnBgJvBye9IbhZdxk20htQrqosBwUz0sWBIy7k6dtPgDGl20o29RTA992KyPjyhg2ZO1bM6xtm2aI426ZcPKMYLHAjoTSx1UoHNAuTZXf + + ADMINISTRATIVE_CONTROL_QUIESCENT + EGNCkq6B2OlplLLT1pkoLTDllOXXrJDXhiAuJG5Dnq2I4Fu55OmIIZ33N1S6Co4TGwnhclVzDPaHvENss9a2866N7QTB6PuFlKWq5RZIz1q4x5o0eqUewS1vJM6HCtmPdjfa27St8apGfNyl6krCdk0O76vBrSqE3yOXFzrFBQdRwL4C6webQ6ZP5uiweJ399J7OiytUgHDMkzoi5vtOBkvGH + + xdJ8pAMbruFCspo73LyC3oIMo6cSbGMILnJaXnlgRTSbi8jdTRHX7pJvnNgyl297hShefDmYoe1GekL74s4bJGz7tPFPJGO0y56FAsvYyxwMRhTVBQZloysJnZq6GeY6c4EMw9D4G1IqjBdUjc7HKzjZrJ57YV5aZJOnTrjrt1REv5qGhygUZzTqiRpgMniE67 + RqdbT62ptZQa9gq3fZOyhFPqkcIQbHJU8O5TV0jgZ9q8pQ3wHS4ZpUhBYRr1z3WzRTsETLVLMdL34PALHwCYiLA9D1a4W6vO0XkLB7wflajhZL2y9xwsa6BF0LJOK6uC4PnxWMM9WXqVAllKKR4UQxAIaboUiTweIMLwypymnY9Xjuz3dDQV + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_INPUT +
U7DNERniuLQUjc9ilYtHypU37Q6plrS7qwU4fheK34Ee8FolDS239X7gFdFSwp0WVUT347NZ4j5cYuytmsxnhEDWRiHnHHbvt4qpcdggomkeQSH4deruS4jBe0QNz2aU6A
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + hXa1PVlpkoV0kDiPP9Co3y3hyWeKHtHQjJS0wdpRudRGQ1vGb7Wey0v6OBQnWpe7068xbxgxK7dt1B1cAXq8PN6DoOTc57k65sv8ZLGCKT5Lu6X5Vf5L24giS9vY8PW5hre8cUCWNzAaxx7tN46H8e0TovJocFutYIt2C6Qhxqj5YiqDnwknKcg0zRhLoL6mtAoXy765xq2nIs05Qdltht + TevHlEzq5DWL3LEM7ZAEuEfP3C0LhOT22gCfNbGSHuvKg2of1YUvu1cxEcbNS4QUcs1ZvzJ44fOchcri2dFwfR4TV7GN3ozfIAf62Ya6dZam3BE6Pju42qPXxnCAMbQmE5sGVDE1COnFp2D6d8a8yZ56fIy1LonplQXhlBiXhFuzz0FF8INyzSwOs5P6l5nHNlQ8O0X6xjF7jcErUr0ubwiwt0CPXZoC + 6K16zZvSwucI8vDzvZLU99f1L4YKkAXqcQoLPUwloIVx5qYBpBnzKCAvzr8T1Xc6FAJumfHLPCaV30okCDLmfeKGFKAyzEw + LIFECYCLE_STATE_INSTALLED + + PORT_DIRECTION_OUTPUT + REVERSION_MODE_NON-REVERTIVE + + RlKCJnJ6IbmFJtMGT4JgMb9K2e5nvyQmLtRvIstrDH6e3KUWOv4tzddtraQPAybm12RCmc3ZT15OESKsnPVWU0pea73LG6Zz1IbnUenF8kuMc66ANUoIUGWXNZAt5z36h6u3lJAl34783dIQ7YqUEmJkdjNbKIh1PDW2ewnatmioz0ezQFlnT4H7fmiZXrSMXOGbc3lxhDVQv2heHuBsqarFwJ + t3o704F3hApORUCAiERwde7FEh7kFIQ1L78DbOHkgY18KDI2hryuFF9cO8wuRevulv0xbzRsxSA9nacEBK89ial6iRs1XPobloIwXrQmcqvzAH64k6dCgyArhVseKQpX6Zm3jchnvNO5mU1G1ea9MDAVyV2aDr8KjuFuGXR3KF16s2FthPCVs5RS0T3Dc3nnx3R + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + oevRQyFNPOmcPdlBblQ2SZg7v4FcDuC2I0Lryqef6skVFFpQT7LL7TTuPqGsUamCa83Iy9QxBak8HJRARCeYvZkcp0Eja1Nd9JVzKD6mNjmn2dXTPbJc23or3VC6WqjX16oLCnZhGmEIzCChFdlIhC9cxMal4liXkGIW3AdBWSknmOw11KJamLfLpp6lDgiXOSTKs6lgQFwclUefEPp0sEDRWJ4zZmoG7hqrfLI6j6iE0oTx6bpyH3ivMm4 + BkcIBC1RfJPyHZ5AoQ7m1wUBz46ej3KUnWuRyvAN7peOobgE1n0VUNwlRuzaxbWN7iExOedNvjtLuKqv7iiT5OfPbGRASOnR6ThM7uzuN3ghFyEMQXGODNvOtepd2E51yeFxI72n2awHIalq7T6DGtj2II7Cf4vNi3c0a6f48LLQW69VS7qyBKsbkANzEbeXerPop5syQ + + -9223372036854775808 + p5e9y1cJubWopLG66D90Sdif6VHI9EQyCWz2YDLkOzA5c94aMd2wilEogl6hSOIuDhwtN9NBAgzMpDObIQz13dpcrotj4bFHlba8cQBM6aqvF6ygW790dy4EOxPTJusWxv4JlxnjINO + + pueFpdwx7yOZSbwKIZRyG10NzEv3vHaU4hzluXStnGkfRQRAIA0ou04VFzY280W4hopDl96JPiQz9I1Ja1ZE13zyupAvqxrzVRd80bJIuAhvaaekb5Rc1iLvIlS0Kkzx3EG3QpDcRMH1WNe7S5cT + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + he5Lg0GggTSTE70SRHpt9Q2NmgTCQmSZAXCQXb754RYIYYtHxKaGA4lXcfr2BbT48oUXzT2DLSdBJyjgjlPLqaACp2x15i5eGRbfD6SoYYZHwaYPwFtOP3i7XP0305hGOkWrqGHpwz63BWK7BdNjh6q6Nq9Nnqu3Liv3Q4snvri7n26R8U2pSsvFSxt7XPaA7FEPCY + + -9223372036854775808 + + TgwzN32F03VqRZetIvPBV4vkllmsdTq69PxXKruKvp2eggHYMwAzsXTOj88o1qm3fT0ZcuBHMEV2Mu1q1t0lqL1BT9ZNAlQH6Qzjc2SYGGTlaUL3fDpxhq92s0P2mFBsn2Ds5wiD4bYeXCac7zKoRLrjLgd7WHsbJ5DOtWkp7aE5MG9U7LiYwBaiSnhG4JRGHnm + LIFECYCLE_STATE_INSTALLED + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + Lz9ei4rj7FRotq1q5ylJeyTjjzt74AZP104k4nD4VmsgMlGJT1k0r6bLFEKKeJrgJnAFL5Jyj3OYhuz2nU2H06kxK49RFBZgYrNBwp1HkPFBj7wH1qgTwAq9EA0b3ZjTq6nOvonQe3jp2P6VgeOEO6NkyNvtEOnWNKKa000e3cEXTCS1RyGxwtS59nyN4NKRpm1qmUwhY2eRx + + -9223372036854775808 + + jGsiRYfDEhpL2ABzbLJ310B5ClLbI05TGx3xnj3TAkwuU836LM1MFvShQvkqvpb4Xetcpw6RRumDuhJg4D2B8MKYa4gxtrBix5vXttOcP2QkkrAg4uRchB2rxaY0Bsj1xGYS1E5QzV2TeC9j7SvglqzSApS4R35gBV9Cr + l01nT7SUqZEO7ZeGRO5CKXxP51CeD4kQ4d6QlYCDPhrW8FCSmzm6oTOuUqAqmN8j0e1dcDR1MaXVIrF4T12hUIDH1eZn17yTmzZy5Is + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + YXgr38iRHk1tiuFt90T5Gwmd2dFCjzz9oPAsXSbw440nyxQIpJN681b2fQwqh6zGV98L2jh6n9tOzboYV3WV4ZXbItBZraFfkF0eQ9c6byUKJiAwlprhoot6K4Yb7vqjbixTsJZD9TfT3Ppg6Ryv71tRXrV4Xdn0wMTYoLBxwQqAxQQEzo1GhuqfOdbLqzDWloUJ9n9G5z8vhY1Qf2pwwHDcUPXkgs9BRVd0bmygNGD5FEVMGca5TO + + G + UoJKr8bIYuUf0jFxOW5X5Lfi3JLAxsWrIy4ay7KxBwEtHj0vfXldJAnEc86JAV3bt7d + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OUTPUT +
l4b2f3qv1LACdX
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ SWITCH_CONTROL_FORCED +
AVp0mSCO3XgIwVTLS74znlEPTvUa1QrBLIu7A6OvV46sRZ5B71bmmPc8cYieOBHsc3rM27aX4ghV7ex6fItupFCCvUIcnpwzlXen5gk1wuWDItKY3dstK4X7QFj5WPxhFLwC1RDpdz2VVETYJdjl9gtRNEPCmmL17iv010hezb9mQVdr0wN2FgTsUIWgWI9V0EV1E476ggk63xx44c6JsR3fs0noAx
+ Fsq3OLhwvZAI5 +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
qloaP8JZ76ACvnvBY5UfVEEdAs84OCveXThNTSE0Y6CluZWs4IzRe55Ox5SlHnsx8Jk1tYUr5oMroATkikcxp9lX66aOtCludxnGnhZkyDLW5w8oIkN8l0Xs678sCtWPSjo7tfs1L5PQCXeca1kv29X095sLqosaAIiVYKWJHDrbAGoCzI8tKXmTVOEd56oFHysFag
+ false +
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + 0DkhyDkZsty7hR3XOorifRkLOKCjpbphOByeeSdHdDGumJj27KketwR98ttpEKGllezrYF8baHxxqJzqlMEPioYjRjIo3pBg + StXqdFGVUfH9CAM1iPfjpi2ZRLGHxq3iLTIZyhMkwtl8371lO8w5qq49cCQBUULGFmF5Djp1MK9IJ3VxbkCCKzLObui6g3EVpb0UuhV815IC0E9bYLNAcrpgNHe3CSQU3QOpZCxSz8uzMDKCgqclRtBw2PzFHprC7f16R + PQ + iykRcPCOX2TiLeThhIIOh7fT6mM465UoD6gQVSwKMh3xwWGNxotOnIAl4eh2j3rX9zFWj3G5lBuRqawXqZDNH + LIFECYCLE_STATE_PLANNED + + x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER + TERMINATION_DIRECTION_BIDIRECTIONAL + + aIuHQFSp5pQOQ81CMQN2H6M0Oa45LkBN25vLCf2HESnm0pRF7EHOClPivLo8XZOSWbvyqx8WiviiM9PUFpA9Khs8UI8SzWCv77VpE3lWzE7dFOZddAmYJGYEg6oP30c278sD3NsC + rIRfH4l9ibTZ9pffNXaF15E9x9dcBHoUpf2Zbn8tyTkzisGXpRCqWgslqxxT6NOw2In55vrvpL4z5Cxmt1Nhi7CAE2tKP98KRvHOT8baM7JRK865aTnsSR2oLn0tp15gwMXhN8rzg3i0bo5l9kFTczhXPiqejvmHajZXsioIly + + + + false + 1918523254 + AylJKXUe3yscsd2oSfkeVkyeFdCPqk70KkBuhoIlWbxggzF8HZmCbUIR7lGpxFih0LMh9muYp2eFtLN2C2FOWfFWAddZLvhL + + XLEVEL_THRESHOLD_SECOND_KIND_TYPE_TLTS + GRANULARITY_PERIOD_TYPE_PERIOD-15-MIN + -79 + -3 + -19860 + + 1vsbdRSpt7d1O0w5ckcYRaY1zj3Go9AqF2BSMl9fsn89nE6rRipAlgtUroAQx2gcXRXJc6QxlYGIvM2eXjOazh41FwR4qZhnQ6YUcOryFZ82MagBu4LVdHOKdxODw5Te3R9gyAG5sO76RfHdbs8o1X0emOJTMC7Pmg5UJLZbsYhb5QogaowbdwpAk0t6vsWRJTDkxunZkw2 + -3324 + -15 + 104077674 + + dKw6mXHRzxE6orKqnGLt0OGG6eAiuxwzi3Fw0fosMUq2l3sBBdWtTvaZJK95aFxkAcQtreV50d7e8zPJMDdF8nwJZFP9detNqcgKq3Pj9Xxhwm1bZeI0t7JsMquZEPNX1VHkZoD8dapCoqNfwnfZuZkhhG8WvNTpJsJAImIWoZyMid1OA9G500e + SEVERITY_TYPE_MAJOR + + + jSHB083EJd2qZi1VduGiHPyk7mhYBiOM2no3vjzexBEoTGc72ShJzP3y3dpxn5jpszkXTU4inIG9gS8jDp2c6YL9b2Gy7SPz + SEVERITY_TYPE_NOT_YET_DEFINED + + + i9pgzjn6M8UPLWmzKt6G4bUVWh4zqZuJ1LRA4eGIfsp0gDr17xH3ItYxL363UsEVdwvhC4SRwhJNVaG2HfXiJVHmQNpLg4Gls4DW0nGwEpbrARl97ijI60WWGdHW9g9BcMqc16IGvM7Xvl7uDi4Bj0yZe + SEVERITY_TYPE_WARNING + + + nfWRrBhDCfeaC0aAnvzS0ROC2P2TV1yihn1IQamkpAv2sxuPU3zUMooH5is0k1aBgcj6mFiM7NGzcap65QTRe9qbsTbMMmf2qy0M6iq5YYFa8W95M2XTbf4v8g9UuoOU + SEVERITY_TYPE_NOT_YET_DEFINED + + + e532QsDa3dTpVHFM7r4klTMmzJmrXvZct26jnJuqWfIJWnvVHs7UlTgMDu5sZ4wkYCEdl0E97eK3B8QaAX4VQczlGEOyAkSqPoE2oacvoWqR4g2E5YrWbS9RoXhYaahZyV1PX5cd2D4YLYvRPOF0HOJXMTOO35FtSGaPEnUy0QwDHTuwI1ohQZ6uSUiNZX9Jvjq9ykHqb64SRqgrsEIivPMgBW3BT4cggDiOXRf + SEVERITY_TYPE_MINOR + + + yN7RSXPx7QtgV8aK1e05J0dTNz9tlYiULhDw6k3d2pmYxwAqKsnmlB70agtw7LiSUNg07k62BkS0QsqtNNH8gO8j4BPbfZW1EcUDo0FZkxZ2ShnFX4FdSFwP8d0f4OhI1bmh319fr09bixQftnke2R32WVi1CzBvCXMxRVMaWVl6k3lOqx2kg + SEVERITY_TYPE_WARNING + + true + false + + 22094 + NJdsw4QAjUObpjz82jW8dGLMC9k6y5UlH7Gd4wFfitizEJHH2vH7csTOC5N23zfCyVHurmJCI1bmCTVEoDMsXxhzvWtqvJ23EJyYX9Ax3LMFwHcNcYfanoBKk5aPO4LkFjivkS2nwO32ofPA5XCkle5Gb7nZ48jJjueEm9 + + true + + G_826_TYPE_ES + GRANULARITY_PERIOD_TYPE_PERIOD-24-HOURS + 1083721612 + 495817016 + + false + -33 + LOOP_BACK_TYPE_IF_TO_REMOTE + -2104348067 + true + + 43 + GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED + -32236 + + false + true + 1226 + mqFwObH2HYC1YX0lpOc0HHk6bz5v57UrprXeCw8buK5lz5GYTLZssbzELw1QwOaVfZ1Sw1VSL0dcXMbIx2bZdCvQ0pzwdJksAdcYf8RS0W5YIgG7aJ7nlu6mTFK6 + false + true + false + false + 38 + + 38699 + rQaDHpDyhEmeu5u24EMbUZy0drxYqFURn4m4lSuvoRJSO6USKGWwyuo + + true + + + ADMINISTRATIVE_CONTROL_QUIESCENT + + eegcgDdHMuUbkfU4fltpg9MNXDuSsRGy5WCdAPUejGpvNbrUoUjw3XkSBGCVpjtnf6AHNnVZV + m + + TERMINATION_STATE_TERMINATED_BIDIRECTIONAL +
AP3wEfgfVTac4wzbu2T9hG8cLvN1bjpD0s9EHiMu3WH7k8aGa3QrCQEndjgoCF2u031zlN4gBDnWLyCWtkf5bLko5sFz0H40C5rQSn6l0mhEUMsf6Hd9lpqqS5ZKEVCgS36Cj5Ybr7P
+ false +
+ TERMINATION_DIRECTION_SINK + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + Ekcigz1yXA1AZkrVmniN3S1 +
jwmM8b6NO6wfZ5TRgQJby1gHtDl224adAoZIAYng4Lv3QgN76oawprdK4qM6uOb4dbFF92VdGq9wGOvEcGbt7gd3HR2bGd8ToNypHlDnLEMjkhXoX0RWhW0YN2
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + 8c0b5632-f6b1-1b90-dc8d-4334c833133c +
+ + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + 371eda64-3aa3-f78a-2711-ea75d567381f + QP3U96UL1W4DY6Ivmukw41wQCnD5PXJFEMsNSmqUamp8t7DPtXdxQJnsZTqOQ1lmON9G1rs + LIFECYCLE_STATE_PENDING_REMOVAL + + uGO7YV4 + VaSaWW0StCdHiUV06c2Q9SIwqpvpcs3ZCV2qJ2adEfMPaHH8MJZVtzj + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 79b69572-4586-21fe-efd4-4a81a2b57515 + + FbRvM7QL08rI9N4Xs5EuwYFcQZtyPrSmuCR9JzMBHebRT7GlccPAbvNTm8r3skpWW95xIK0qYb9RiP4u2UWdhB6DKpHcBY0p7YWQIW8y7hhp6lL07A5ob32VtBZ4r0uzYipy7x6eGnwMI9FQJK6VO0IhBId3AHuy0L67a4dQrBu1L9R + UYhIYSRsA4n2MJAEuyDEuIuVcYWX0GjUwtumllGNpVP3Ehz0H4EbN0YZZMOZkZLQkf5FADkRz1V + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + isvUhjeF5JiKDpydm71u4sONO0xPWDqe5V0e6fL3Y4FBteOPlHchaSXY + + lMQv + RJu0Ns15HitAMhTnFMVLHbptZ4ODMjWv3jvILoOkGhUkyOI6svJ1G8uF5baRu7fpiC031Onz59UwPuC9Zdaymx5rIga4fhuxUuAVaPmfYgDGK7PCl0aHxf07n2bCkF961BTbqfjhwWX8WEKhEUQ32IapKm2WT32NFVQ539ezY3HUIk3eeTa8tcydqs2kv4ZaSP8NReePaVBK7wYmh0mKdUPDeRPCOOMywM + + + YvYRgSn1ffJKuWcBrUf2SF3Nlaz8xi0nNYe3IuWXJGH5uMHNGOPqlS6G2FPrYPODF2zgov503N5prEcZk1pFLnmN336TSMwpH5F5tL5oqbOJHSI2MZHxnVdqYbbIYH0FNxK8aQwATcbA5TuRTcg8ZlyYxJyviyaX6M58uCJfOUQLGcuroL + LIFECYCLE_STATE_POTENTIAL_BUSY + + PZ5w0gXwcpDF2wkNuG2QiY6lX2iZUC8Bu58umX1ynw6hUq4o6Z6oX4JU71L1wLv0QvmcsfDPDJYy13O7UVnJ + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + g676vIE0S52Q3PVbbpMr6z9JfleGKR70P66lOCdyzgoC5cG8tszr1Ib84p + G8NyXTwaz8o8IEocBASJWdjn61y7XPNDXtbNeHXOIdOiRcukFf4BsfQq8px66lB4GNJUmyI4MoeDtBQ8QMBa1rA1I8ZPltL18mVuUwrGMFcf82fYOQ0HaBAKBsrOV4P3qCpl0QTNo5UwZanF0ne2QHNj9e74jOZBjoWj7IYvFTTxVgcNwjQm0vG1BF5UuWoNccYjUXG + + ADMINISTRATIVE_CONTROL_UNLOCK + + bLFOjGN7HsnnNBggHebujuVz1n31Z4B3Q8R9GxgoRDDE6 + MO7Xaik5KdtN6kRInHI7JpwZFnvaTB3Fh3vrdHpXUSC14mBk3brEAXE7c1h5CdCM875dGu3BeFub1XvX8OBBD7IP8SUDXoh5wma4RdFXT18MYDJ7jdAWkiLl2xQZW7Wkt7occW25XaSOGtNZGnWTxz6A7WrV3o7onvBzjDx9FhXl + + Pcvg6m5goT4u2hBlkAc +
14gAaQzYam1qthNRKeafLjV288FClQtmMKXWsoMuLFUeWH5HO8WzjJukS1W5
+ + 04bac48b-84fe-c14b-e3d3-9b827878de29 + j0r8Qcv9 + 86zz2q948iE + LIFECYCLE_STATE_INSTALLED + + MtQH0qe8rTIUltm5lEYyC3L1fGmPLXzpiiZjIdra614jvqhQ4 + hz2UAitXZ6Myv5ImgrzztxBxJYP0GLZXk2KNcdC3jgBGdc3lDCV62ovLmcD2XCSawCPAPjD0z7GNjJ8OeVUgjh1xtEsi8kkxO17vkDvUCbzVNHJ1vv9GEaeZGG9OSudGvdbQQGCsJbfoKQpfdyWRA2QgIZXsla8Jnbz5R3xseERY + + 63FIEg1FzssLAK0i1d6cd + + x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER + lEYr6cgI3rukc5Yx4pHYFibFK7HcHkR3RQmP2Dp54Tq8ZgxVFeTdoXK9WjdEE4znUVcOqBMmv4umk19Z824oZOpO8CkEHT1tGda7OWlb0QpkJybJtg8k4x8c2sQBdJ4UW6TD26GUW6eywihZyhcCHkHJFpkS9gEXfpshw94k7i + + nK0qakEObvbcBKLD3Mz3453b39t158itSaL2uqRyVUKoEn1H9sL6pGhkPKlNSv8DFTF1boz6ajmPGfoIH1OYA5ipIv4s + c5x6DzhT8g4kCL0S1Ir3oqDmAU46ZoYbmohRXrC5HGhjji3lSvo9NTvfNrdEPcQ3AZUpqpmZ5EbhOeCGJSPoLcEqDRXlVFgnE3MXs9WpF7Gtea1P2JeFV + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + c3tH4B + + nGNbNltk2M0i5ISawoWXSAw7smnKmDUBbzMZV7bPT37QLRS9gG608u7BQnl4S7F3GjUtq5ab092L1MU9tS1Be9c4op0gwFb5Y6qg3Bs4CmHv8uwBey5tHhpXHq55XgaOeB4i4weGSN419Auo8zRHRgEqyJvwSGk69ogdNuLFaPyji3Hiuq0dzwD781D0zPYI6fVTByyLgZ5y2EI + 5ACE7fD78hZH6Xp44cXGLorTnojh31F0ChwBp9AxizfhowllJj1mHkfWJydErSw32UEr36QeF5nWCIhdTarsuGo56tBxe7tgTZzP6p3DnqzR0I4USvef3Dc16OqcNTsHT1wRjruGJWpJEtvpQCwL7IM5w4icYKTJEhsPAWnjSMUp7iGXUcA1Me6bion818JxhbmR8J2SvW9 + + -9223372036854775808 + FORWARDING_DIRECTION_UNDEFINED_OR_UNKNOWN + + WELfOrjmQiYY6aBfqp9TZ7H0yBb7SfkGT5VAx6WfpMdvOOCf6L05SHXja0q2gCI1AEB7Kqe14rwT708dM0awz0PK07MgKnacTLbv3px8Q31P41VI1XeAXWkY3Z6FmgRfU2KXr959d6R97MR8BXBzTVpPUvu8Eefy + LIFECYCLE_STATE_PLANNED + 79b69572-4586-21fe-efd4-4a81a2b57515 + szXW9z1ayh4 + + -9223372036854775808 + + Svs1tB6zkfzYYHAWa1P6qwSN1Tr78Rf0fH2Ib0hngQmeqW2AXKyfgj29cugcdodsX7a07kof2KmsyoVn8lCpEEqI0HVeX0GU7RN6bbmdNIylYlI7GkodQOVRnQ5cQD7PuMWxXaDKK3X + oxH4RX9zM5q1Nnew1dlnZ9VObqqVtnwRU5ND3X4HUvAzSO5LTr9SsWyEeYrHdPqZVduQ2zpO4ZoOGtszMtk7pSLDJ4cWUCOHHipKJOqFFOmlaOVOh7VyZy3ADfppRd6qnn27btMQ984bOZ056VvXmyyZNXow2mXpJZoMk3uubyF0pxXnltdHTLGzAW5uiUL1MaFYd9s + + ADMINISTRATIVE_CONTROL_QUIESCENT + vA2n0bzvSLctqtNbuWPsb7UkvVoP2zAy1CV2Nmxy7B1q4HBzDiTGpFSUBhCvIc3JGQLt4a1cLVCIC597n2NFzxraO3Go7B8Nk + + 33435ZwnmYFRQ4AtLUxFqIduPBG2nNtjJxmGpSVLJAurw5UiZjPhU2LBwsDL7Y4IojoNbbqUMVma08sRka8e4UHselelba4ztkexwxrasFkkGF30Pb6LXNeb0kxcmtDQNSnbhGlJeyVUdYMU1SxRxL2qXrCk + 72ARhL8XZJ3pEXCuBoolVfTz9jotNIfUKPE1tMRkwUJ2KdplBNHoUsPVDeoqWEczlQsOv + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OUTPUT +
VIWkVpZCGLWvHzJ5RyB4ZXMjD9vE2lnY3caYB2t9NhFmRgkIOVEFKjZo
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + erHb2jr + AlWqHZkLBTg7FwerpPWGJsDb9VJgjeTLzHb8GvL9g2gWqmfP43nNv0QxOAN7OyKf7WfNj1OAVWoljD2nzp24iTt6l959HPgHDvmXobpj7NwiiyxRQAO8t96OibP0S5zwsVlR6K26proHRWrHo7HJgNpzYerRb0fvNAeUc9SBA8arWt1ksI3Bws2myt5Blk70M + UQmEjWNugJPhWiZRTncVKKgPet2ltGygxV + LIFECYCLE_STATE_POTENTIAL_BUSY + + PORT_DIRECTION_OMNIDIRECTIONAL + REVERSION_MODE_REVERTIVE + + ku9FElopNi5qnOmIU2QeVKC24jd6vwSP01mxnKW2U2saIOSuJIIElkGpwMvTanA3hWAwGoyti0D1Gnvp66WjiuIO8dzjt9mK5O8E4G7nyCg6ZDoXJkg2OYIX4a8xju9pahVeP2BfwJlvnJl63B0KsBzwLzVW34d5d8jU2N9ywuWT6hS1KKL4dcsQLnNGj0Do1Xi3 + ru8OqUUzEVbgzgmDI4h6RXhKtGDqQG2aa + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + 3ejXzR22XnZHqSIkvzvKKeCmN3RpEhYzwaw51q7YNYy6Igq6HVIs1dGOgx5UP4ld6Ka7a9XYZv4zEmxd9gFatdQJLWvsSIxQsHXDIMtHap8OLG1MWzOhMESpsfRcXo + qXRVFwoeGNnuq3n4RWS8Bo00JfSV48QuYzpDXFKDk7ZC2nGTby1MPTNy0xl4x3zvvQ1soL6IKXlMc1Fosy29rHHj62nE6O1tFUV3xTDhRYVVSAbc0eljVUCUW0qUOrflebgL4UVNKQBujMyj0LDOF7Iu70gOrw9xzijv46bGWM37yBjrfOfUVPg3P + + -9223372036854775808 + ndPXtsQDCxfOV1D6790a5e6fUtrbEgI1mxQPZylt5A91BMZAORKT5I0Z3kbHALJOirE90Zv5rEYUjXu7P6SMOSMR4PzFAalKBZLtQgz9Vp3efxl4D5IjXmb2bCzDEUf7M1Buh2E4rHiG7vC + + IQOm7Zo0U5zyiAy9FYu6FM7eA3CYwvJ7dptkoJkaPLJZe99T8vRN9QTJLnIaSjh5ACqQlC02oJ2uT3nTy6yHWsrIP1SAc1FMDXuYsuTQ6NcRQzKgFaXtCgbs932d4zZzplyRQjzO6LFWch4JrTc42gobbip8JgH0C7Rkqi8wVFk7WoIfiVbkbrnmJMulV4lpb5JCfR8botakJTrTGD5R4t5G7s1 + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + b2g7c8QXv2K7NSP1dJeGpEOOrBF3aJ2dDbcHj3EG5gGK0vDdeJUvgIkHbRKmAFr6QEN1HkHEAfhBKUOQwAmMbylmp6ARL2XtGDufX3Lpj2SVPzMd10ZcykrPi1yV3ooB + + -9223372036854775808 + + my0FF60DSvJf0xHW2kJU0LVZbP20Vz79Z7OEdGaXcLdciU1ceK66nU5yJZqwqxFpEmWK26HeJUj1GkeUWc0j6YJQXaegHUFegBYizFpisIc8UiVIuV1BLKjBMxRuroIzSGKrd9CFJGGvYBdso6V2IeDvEmZ5Kzxu7hWciqS16qoW1BghzcjhiOMW2DUF4r9bAXoSn8Llq1hjCyA3CMkUs7 + LIFECYCLE_STATE_PLANNED + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + kCpDaZBMaaW39UcZv53CgClGFgBBIWk3yByAA1eCbaxlWJcjPfVXR9Eop7Z73b2tMsVet9IxbfS7R4jyj6v371jw8jw3mqo1TjfesYLD5vDWrWuLU0G21Zq2aW5x + + -9223372036854775808 + + vCDaHWjKw90gw0TKqUTJojcrVY + IqKrVf4XWS9ygirwGrhqSbktzDF0rDL9WoAJDwHrgQZw0iUGKb7umjXNODN78qg4OIOj6nKm5CK5UELwHK + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + DFil7Hs3UhYaoiW7lED6OLnNXWC7OgyrVJE2i7YdgWfw7cEsI9ypUN4JJGQpOgQKZnEamCnCru1yyFShOiyA6CbHa17Y9PI1cfbyJq32 + + 29fJCEhann1i72SDITW6AoXF0G4n7OC1YRLAo2CDqwNpyF28zQf16cGYSKeSzQTpIEZYzCBR0hgyWaHn0WpY0XWLIaD91oyB3pruT2dTbts8v1nnXMlPChAck5lduLOp2fLW9YHlr1lW2IbRnwHZF93Z7ocB1SS37DR9BzmUAzID9Tmwp3n45qWcG0NzTxDSam1DVfxoO7TY0fmhbCdgU9sBa723EFNGUHjHWI5DPQtP6P69jbpedJHnIJ + eh5UbE5SBNQ6CGzjEghNAscOFNvUve4Jv2DyGIr9nhfZPOiu5zhF2mlz9QuFWygkAMShmbqKkyJamUEjtNQn9bPbTjQIJY2cKMt7YLRajskymYJIEAXNDMYpXG7HF1ThFeovR7G3A0BORkwvMmaq81P6HOFePqwmEMSvMyyey + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_INPUT +
M0NPiVQZTxNqEuQ2RuOBSs9iGzcJRq2viPkBC2soA8O6CF8l1OWThX4XxgygGADYpYrU0Uis26qwLyKFfyqwwulVCU3amG1MwsypeQJ8WaFAIh7XPxld2H0Et3PPKQt8a1xpJhxyr401l7R3E4gGDhd6kUOWC95EbC3ULtk4pk6LrPO6TWExdRvqDbm7lrMwWHiH2DMsXK5hzLnkH1JNLfdgqzoLTa9PJkwMPa6EUbVlWiGvcpiX
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_FORCED +
Gu2RZ6XaNLWQLnj4OySVtNKBIr0rrVc7heQhl
+ 2nHhlCtnsXpV655LrW2LwIzbojmfzGBB3iTgUeEeb32i07Vs3X5zywCWIY3hFETAOERASvO4qQerX9L0ZIspf4dXVg6sUR2IvTigg6cHPi0 +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
T1TGfSRx8ey1ehyvtUmtDol0cvubcV36WPM3zvtHB1JPihkD4G6zWkA0H4bTS7RGWvKv054B6FqgXCUTaSs642ZLZ2xR9op5U9sUepoc4GtTjfMt77sc1rP0tmJDL9AxaVjhcHtggO2z3OU3Vm7XFWP9jrEWA6tCTMT5mfmC3ob7452Sk
+ true +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + oNLHpLLrCzQwVebS1gD5uk8E6YSH3vOkirTzcE1GdRc9YnTZvo5ZI5EG3onYT3i3m3DqHw6VnaWdxH5U52UF7qdaOs0Avj + UUOrsatFpBOTqwJGWBTmDithQhDblNSfzyG2I1HZunKVLltHWeVrxgJfymiT128BAGvaH41brMY47jMWyzn5QYcoknhephPSXcUE8WHzAyDzRhnpRLmzBrXWO625nRPkVKQ3yxu0XZzP9X60AtrbMoZAu1xRKn3xZTAxi4pgWY55N3 + m2cfg9CPIPnx0dyap7EyWts + ooraMiC8caRWpUmoNWN5TclP2iMQeJ5C + LIFECYCLE_STATE_PLANNED + + x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER + TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + + Jm89WEfJUpF7OecIbeuQlM3vtnw3SHytVHCRdRA787fWdrwoyTeTF9h0wF3gmuJ9bd1oWto4tDSGWh5uabgHdxIBcLSq7tzizszvOXs9sk + otMLDY1l3y3ECGo2OKtYjWpOCegLGtsXWfIs5BF81AED83xWN0N6O4MqjV3ZgwWcLwwI7bI8LmLUpaI4bn + + ADMINISTRATIVE_CONTROL_QUIESCENT + + rqKtTnfKYbq4L3lkQ64a9xEKX9jKBSq2a2o4qDOgP6ks9FERDJ1F8xp6zAIak95vbtzt6fJNl47uBMl7neMvD3B4EcfYdktgNUKL9trupyQTc3Sz9w5NzyR5KY4Xip6XkQBtb2QtsymFC6eLCjq3Si9u8dkrCqgO8RajL0M6y0L26ZOAbeEVoNhxSBQmT6b1QlltdZzD0cG64mzfAd2RSjgKN66y4 + AMmN8zMHdEUTDY7c5Hp7q9iGTXMRwJTYvfLDPpdU4ZFHXMTUlaTMj3s417NpIGn5W0JDpOxlNc2CYNobPhX0ki4dhSCZqR4eRFR9tgu8spKic0uUhjUuBRHSBcR1VOgNt7OXgiXIHATMAfGSyse2jVMUZwWVk4AN3gCjyAU82FUCUsukUIeew1 + + + + 43 + false + + 47fbldU6HE44mBclAQbsT6VROazO9PI5OXh9b38SAcOWN09nIkHtjvcZFLOOswMgmVpxYxhyC5nhXwFxRe02Jc1pXH5p6JxsEWZvmgVQdi7aPEHyTHACLBTIbZZhAwJfkICyQxo3Qodx2M5VlFq68bGj2xAD3jSfTmGJTWMBkR8nvdaQKAWTMu4O1FjWQ34 + SEVERITY_TYPE_CRITICAL + + false + + G_826_TYPE_ES + GRANULARITY_PERIOD_TYPE_NOT_YET_DEFINED + 1899414942 + -1620779179 + + + + TERMINATION_STATE_TERMINATED_BIDIRECTIONAL +
RSCwOS17jBTrDyd7kFCFzcTFAUGQjm02fvz3nA2G3W7ymcFHR9ejm7YOUwE5Tx802HVhhPYcDXK0apzTzNc
+ true +
+ TERMINATION_DIRECTION_SINK + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + rXkq2ZjElhxAQmIvOXWWqqJ0JbZMImL1j6rlXKRaTpLBDl6riUgAdZAW2r +
3mxNu3DIcw4WJRLe5vWzjCeR804nTvrORQtdT7V5DSTeJxkG28glLu4Lm098vsWejis4pf2U7V0Qkcpmlxz6TDRfvSf0l4fwmHADWuxWipECB3ZWsy2l4MtzEIsRMHn0g
+ fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 69240baa-0b2a-92e0-a819-a4b44c107c39 + 371eda64-3aa3-f78a-2711-ea75d567381f + bga8GwCKR71i6hhO9OoOAWfYOybymiwpqHxZ5aJP9K7fUpW3dcJN0ZDOxPfLZD2qczhiB07LC6SovGjAT3fT2TArAH4rk6JpF0H9SGUnEELad5C68SR2Djl50pwdvgC28bb1J5onC9pPe2NeMw8pQtuISSNf0hi9kta3ryj3z + LIFECYCLE_STATE_PLANNED + + Mz1Lstbm1so9EXWcA2qL5wFGDcsI7G0MfUpHfsW8Ukhr96vK0VnXsUEX76F6EyKTs2szuoIhBRAKX5mY0JVkwrhvpPt3n6OH8hguFYD8Q5TFafv3RjfnKpS2ed5BjMij3qOApjJ7pCErRauAtCX51H7fV5I6R0qUi6mHh5GGzl8jnuTQ6JV7q3ed0WcROuD7AZGRXfqwAyHXUBF1kA0CvfIv3UeSoRRQJxzGMZ4epM3cfIdrb53ycD4gxa0 + 2RvLo5j3Wn9e1dqgNvHQADpNglVGvVlpMRa2Ol5CJfICk0L7vkYYXfD6syEXlZn7Ip9wL71meJYyCBx7WnXTCsR4SvUdn9k5qmublvpz6g7IRwINUxzo0ilSO7 + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 9b31b388-e9d8-23c7-454e-8f4883a74d94 + + FLo1m9U1oMjyVD25ztvSoXs0DXppdkkLYJMcKyd0dwz82B6BWttcqNc3CtlIFFtDo7H0yV1LjATlbRWZlhbD5fzzIUhnzKTQKAQinRVHrG2uyZtL + wodLPNlJ4JbHu1jWJtkBoTU4VpuMKfVhw82lNoXKZ8jl1ChK5tdlm8paxUW91JqxS + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + eAUadKhSt6Lq5BSFfGQq05ZoIVoFt5iHF4RSH0Ca7oA4RlJ7TApUxpagcyVFD6ma262J6FTdVm + + E6aYhOr5klXHEHCLTKDGGf8Cw3F0w + q2rB0IhjNBFDabcMX6oAEXHMreI666qp8R00zhbfKISVU4HJ2YbzVTdm7Vs5TKu1CmT3vXagF + + + uaRfPbbZAVr4py9MVsotBZskeBX55I7rLQHA1SrtNSx5iHR597rCYTW5nLasm9T7ZAzSt0l8KTdVsW0tVr6UdU + LIFECYCLE_STATE_POTENTIAL_BUSY + + 5HHU0m76K9ddGNYCZN7R1j1ulLxuSLLXlsRlGQjiSwwqcm2311U2kOpxrW1jzM9U607NJqXtXlT1HN4BOQD1E2yYQshq6qcdjkSUKPfz38sKVodBfRuLL3JCnTUtb6ymiqg38vubvXNil1MAKgevbXZyIL2UKAg2TpXTMs4apJsCCe5mnjKy8B7Rn9DZBL + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + AG122bV12osVJk8JW1XJlLKPH3VtgHkQnlKhoyarWuexGmgvg5eBJQqiUdL2VXLaankzVm0JR6gpspUIu9k5ZCnLI8Gv5jF8GRHCezdXFme7L9Q7a2d1EAFmBlRywpGc8nGeWUbtgqBTrj0BldCRG96huPP06w5fLLtA + x3FXwygPrR2ElMcvSt + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + + 0pc3svcZZsY0xPLNVEINwZQ5T6xFKOxK5KNx7Zp6jfZQ5KvSg5FM4nSQlhv5X3P3FCsMuJKNZJwWm1OC7lh3I1T3ah07cP2RjnvF6ftXRZTdSzHZUY3uZOp95p996bSiqnXxvimm9gr2H81C7WYYLg0IF9SEcKWD0T2ncoJlw2f + ahI95 + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
zu1j053WIVHCiL1T7pVeDYvd7BMZjARS4K3WQ7Sq2s3ddW6cd2rRSOWRhIRBjAlflpcboWtigwvukuyyoZhgGd7XOQq7rMeM3iPrfiJvH7R1BqrZhA7XOeVu5dBoZHa20Rl79XCI4mCxM3oVEvTkJGOGTh4LY6FQX1XZQsHMOjbsfznL48XFO
+ + a0815700-2ba1-a6ef-e358-dd03cff63dcf + jq08Fql5sLnDAhGSsc3rvbikKmdsfKLy2DyzVTwnxUTZbrKD + ZdNiWtKODHPRnQGkPS08tyzzadRo7KN6QsgMW0srAhiPZQ9HJaP4IpDSum8B7VAPfQBbJVCjcU83L9KmjAiTRWDlaDOhqg6G7zRQmm1yg1uTae7mGqfxeLKooryHHwnO66wkspTBqfuBtuX2U4z8Hco6DWFkt21r0pLtPw47LqA7Up9OmIO3Md1h1GCuAvVBMz4t + LIFECYCLE_STATE_PENDING_REMOVAL + + RdxZOGmHO4CBcFjqE3XEHds2UkihOSUx6joMRCtGHX9Lvkb1n0F4d0Z0k9h114qZnHM7b7NSXWDs8GtvH0rU0iUdrc6lgokv5YChYp1VdxnldIIUI2HBcBGEFMRVabj82Vp0diVqPaE3SePsgo3t0JZxnQlqTEyVzPNM7A5XCBSmPzPYYKjQminJ0I1LezzOgmsoPpdr05OQ + DOuf7kBhIl9imUpOl54AxkpXxQXuwF11lvhkQStq5CAspZ8C4ccCxBrWkgrQOsS9X9mN1P57kGrBFzdKDqe2T + + Z7lBtq4IaH84lyD8j9wQVhI6IsCmfrf6yAIT0Et2dt6y1BHkC53ymLw4d0ikrxrRZ1KRx5LKyJbzcKUPPXf3ALZNEa75HqPzjriQx4t5FExSojH58W8Iz7nd9mbRF0iYjAHQw2OcGd4WoD1wr1600t6aPhTm93lkvU32WR6uW2qkxjIYcOQ49WeY5Zd62yrykusgdqK9s2lZd3PpRFt0CAQzz3Gut7UNBmVOMxX6raXEdM34rx + + x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER + BQ2QkGffZYofrZb7HPt6VJ4Zr7MyDeq64tOg1 + + 71PHISmNUDOs7j3C6EhFAKLAlu0pkdKj7zSPj6C5KqyRBtmI7DfH + 09Bm9SynCJu3ubmANsk5S4zl + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + V7EvyA323aOJL2wrO4gMnqJ2Dn5zPunCt1ZUB2OxcD8PFEgmAw8YWK0r7X0OknjNhiHSdohp1p7G4nUEM3uAFm2Mk2tEiMjz4Tj9hBzi0yQ4VLBzG5adkcRE6kao6tP3m94vKDNK3wHZ9aqH7AUrEL5DY71WBJRPSWlCr0evoVmx5M65f0wLECouJiqc1a2T6fnx7tUwhg3eVaja2QVykc2Vut8nD28B9v0gQVM73ImYSx0MnWlH0nvuI + + HwEJZv7e92I47vK4oh4qHdXdi22DBwGaUkMTIT7RNQVUdyQBHU1o0RuiLoWmUupPPbApWA8Ji3vvtlZa8Sr8JVqmjeJ6J0NqbnP7XXIfS5DeqCoqmPqYCJkWXVUyVHQ64x5UmN17SElb8BBnjUlVDFJsBvTocJv99AVngWu8tHjtbNQuHb + cJTEcoxAt95CayxxOl2OGB0aMN08m4qyFb4Rzur2vpwFPVcvh6jXAjZm6SvkONKtYPkxbDsGUYlJMp63oqSYJKcICHUiuFLkmXSxAc5n2iYOH5J5vuV668OIHB + + -9223372036854775808 + FORWARDING_DIRECTION_UNIDIRECTIONAL + + 3GCJ5xgQFJEg3X5VDWx03PTFh9t3D4eyKRhPgqGV1c44110FXpF06qGoA1r55GDHpNwxd4s6goaiq2XnkuoqVWGvP0AMG5tXSRuXOO34d6eD030kqgLd4rITraxZ7SOSKiPqZLmcJBHJwz4WIH1M0JykL5jTQ0Dsik + LIFECYCLE_STATE_PENDING_REMOVAL + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + xA6ybWUaj2zb4wmlcC45vdCq9gt1qQLQqKoCGaERdd29BguNTrToEnGNDaGV0sDj4UNK4ruhwwi7NNVyeGOK3vpyx6lpqZAuTn6PGA7cZhcE474aFSUIfc8Mat4AsEWdUU3An2FmjRSgQWqnOd54h5IryETTbP65B1FYVcc734nL0F8HS5D92dsBSlm32k0Emxu9KHgFDvjwbr53pI5rNxUxLgsNBsjP0OYCn7h0CAoNUtJ + + -9223372036854775808 + + 95elOHUqeum2c34 + 3Fgnjez44zHwJ1oTZC6Fc15qnrkzmghqWyF7M6bQFSehLCaK68qi9nAwPVX33ftRF1Yr719FTnWxZY9X6z88PIEwvuzzB3qgWhHViIA45oBWeKTdc1l1CRx7l6yW1R4P8DLqldmquXeIA0NMT8FvS4v5232WUYLUCodXuzgYpuyZmmDgmaLee8k84e4YcILG6YEsp + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + w0UMfdLqls7Oy3xv2YuGp0UP6QaN7bRvbL9qYUIbfQ0FTp2NgpuFpgmn7xa6ITtUwCcnwVyDLyjwYdj6CFL1W7hVEjTndm9JYlYmgx01XbpNoJT1gEU4E + + a22evXoUM5eSWTq5UYEMAH2WwLMYeTshVuvqjUc5RqYFcgL66hTGYNuvy8tF1NWWhresdqp4RfCVvf1BwMauzwZ0Fkxy7tvgMBIS28OLnqGLFzebegyNNxFkKcSRxf0kRI4TISwYb4JQvXUJ6sxTR4dBh5lOll04V4XEPlC0hdIM2uw8WV1GZ69g4m5hHXlD2a9RvDJMQryKWWTKRMiRLkZPGW6oUrTOBUx + xgCfz2ZnZK0Qpiz2CzRbvPzh8k5BeCzDK3Sk5JH4mzVDSmFmVoxj5Ys5ayGg27TNaD7ffGkt8760tDehTEsYuU3FkBVnIH2Sk1ZzHj2Pi0HEvOVokfeO19lmC9BkQD4aE4Cdfw3qpC4UiRbC6hj7jElVNW8vzcG58ajgyeGXQKK1tVvz4OynlMj0Arw2v47E6qMEEkCn4eop9TYdAoBN2MFDd3FI7Me5d0KRcee8suxtgnyIM1v + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
6YB5DPbQINzU1G3lasOiQe0
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + EMfN4tLU8TjsPOLoz5whmV30cAnnvUL1zSOverimdtO2hrqIoORLCUDOm1bJNPKezqCNKM1XfQRo9h6yYXjAKOoYHsIn9ktIL5wnRxcYf3mpckXaa8KUO1SwlsTuNecqkAF30R27Ugo6Bdh + 1Cleug6YRDshsy8tgJwwSaT1udWu6kp7XKmj0kiRXC0ib9DjK9PujAnFNj1Tvq0kaeEbqOUoiVyt4bEOctanVx2AQ3tdtmyvs4GTSB9aoHwkKa0WwajrHd2x8nKBBa64eFP68Y9wxFQhHQ5d0oxzBr6JGIciLaeZHVYPT7diEV + lDEzvUY4np2Y5D2foclfMgdt1cHjQuKc0gDv2BspSmnXZp5fuqngzAJANiMDFoHFFk2HNuZFJmvAEsQ8S5gjFZMkayQPOxmlKo3xLU5u8s4MUMMER2YpUKJ4azLYZ7kJnf8815C9xzWrlI65D4uxGdtIF6GE5SfsZnB0t5a0E6k0Gq5jmzIUE3Cj9aXe34HUsiVNnXN2V7Ut + LIFECYCLE_STATE_POTENTIAL_BUSY + + PORT_DIRECTION_BIDIRECTIONAL + REVERSION_MODE_REVERTIVE + + lTx2Uhy7KjBpxGHJgmF8dzgZPE5qSe350A7USx2uQvTgbsZkOEsT5ASVfPdZ4h44R4QBBK5k8QAjirv6YYR3yBYFr4wnltj4x1G0EDkMuMXMetLcju7J66ppaVMngXrNYZOuv0gZN6DTzg5KL4tJaK8cyMzOJTCzKi4fac6X + KIJSFtvKXeUHeZ70qWJbqbWIf3KraAKMitEYP2IMgulnltnMhZXHaThpX1IZBsLUOhKDjshAOuXaPcW63LNdx4um6dlzx6ldf5QzpZ1emYgb24a6PXbmUGASTVjiTFw9KeIa6JgszwvtAFzpvLEhj + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + 1msYGoI6N3YJAyZmMs4mZJH3NOdWh6FbkZ1ToKR3FHM77LtTdpg49P8WDlKVjh6Dh7oxRfAoWnw40RP6h5aiMi6qDQdWZjsgiIF2YgqMvWIvOytXvEfiWlAs3Ng26AbojQq96JVtFERl4kazYpRNKjfN6nI4YTthBLqAud32RUfV7qn5P6KsqZ + wfPBdAWucHMM4ZHYJu5EBv1Gd0jxqaEWpmxCOlY03KEZCePlIURjqLRvLa2bly7KUxfJSdBNY8EsetNWoE7GpY3215dmDdYqKd1uruahCOJQaoEy2L6kK9mL6AZJNX1p32Tux3D1KmKUKokE + + -9223372036854775808 + pCMruLxcPEsWmCocqcIA4hIW2yyDGak5M6p9KOlrsNfGhDKAPtaMKSIMjgpZjJX5Imek2rDu6S2gvMQcf0YRLyD4HUV0wS566cq8v3uCNwSajAmqsdidLN9sI5k6XqcWuu4Zpztc5degNAzgNJlrwvL6A6cpogdSKiJ1JddGqrXeUomz7H0vcECEKGW0X9SzjtB2GGJ70ydUWztV8mqdS2RuBFuqPeZ8HA3o9Mn9ks381o + + 6CoaTPybooFNVgdQS8jb3z8NxDt727T8Jhau7IxnY4aTkoJ5oU8ju871Ls0NzLNbVYFUy59x9kimAUjQOr9aAg4dJ4TiIGtvE1p5YyC7KUlcGE2vYcFqkJv3GoegXzLts2yqAaqdXLpDis08EyqYhVUPk059zIC2KbkldKyaoXGyhyGN66Eg1y5dq3mZLZTw2eJfY9ieYYMgwk3vqHLk7QpxTEpxva3 + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + xWr98AcXP72o1uyO9VLWPyWB2dkHRC4grnqzYCwFJy3CUtr3g4S6vGzx + + -9223372036854775808 + + 3J4TZROpmTyZmZyXc6JhoYmW4N0pD71yI5rHWfYa0wamvAbzHVJ5L5TPKT7fS8OA + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + 2b454936-1b31-1d28-4dda-1d3475708a0e + AsOTJzDG0ZI3AczUY3hT0nU1obNz5Q2FiIy1h3zaU95vmEhczy6zV0Ab3gK86FOonehxaIH4REz5iIiR8oi3gL7j1Jk7g0nEew3oeCtXgUVyvdhDtrzJcGU5hecyer4lX7 + + -9223372036854775808 + + 792n7c + vmCSXFkwA3td0m3C72SZayrnFApUzuaWQMOFj83U3wZ3SUyZWiQ6QhunRLiifkeY6VvhVz3ZX3UQXsHUKy0sHmQr00J7kQ5iLtzyUDxRGszvM9pxziZgwHHoHjw19tbMWLkIoKsW41rQ2JnBTfSpWzOwScxTFJFumS4CCwyGyRwAAM4tTWLPnrd8DL1amzwAjBcV7KtxtR04D4po026ntjnY4p1iQxS98WWgypN2gN6MRnaJqg + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + PJK7G66EhPDu6uOBvaXUhvC26nGzVKbCtNC2MAy3pbpnF5YafVWojyqpVYRIJ2d4QP6upExOPW3n11p9Omx7UQpIOgqxaDCSkAmJ7LpWHsbBlBK2X99JZyrGGK5JnHBIaQjhBB5b3hMhSojHpkihTKXru2aJCEjMuv356081h + + 5ZuNz09T7M1mNFB47U4Drjl27D3x57ib6MYxEZiMEb8rRJoQwkmPDHRCcN19UbkSYbhu2zgGDh0uSocgIq6d7PQbCJlo + x8LIpfLRojuFjQpH2GplEvktdwYWReRonuZEKCv8VRFfH4OCK6XoBhKOFAKwOuN3YEIA85I3XnaEkZ845XlG7XmMx6bdsYhjuZTC4CFTRIqbzy8EwlcDiyhPwsUZqbaU23oZx4SpEasdJsJ7NNC5dTMJmHAEKKrFOPEdLoCp + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OMNIDIRECTIONAL +
d9d0La5EXPSwhxg2QVIFrVjIqI9f5bEakJ35U8BJXu77Tn1JbJguwz4Oad3foApIbsFXBhyqDFxo3yZ69fsyHxeRCaYTKftNA9L3ibtVRTbMjaSthc1YJ7Hehx71NAHfBkiTvDGmwR8QTSbb541GbJMt8TmNm32XfcRLQpZe90W2S7dP37ofQaAQWWEiSG7ZTQKBgC
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_MANUAL +
dpxFg8k5aB8cmCJifL2tnW5L8CNqsrRxIocYwo4GZcLmHuEO7yiumf8uRNUkfLRP1WOpcKYcOJqv54c5CurYBzktneFuRojKcZ1pBZBqA1NGXZLrl4hXEBiTHXfqdyaqqbP13qjDjZj8QWzc1Q1x
+ na3qu4wkxtPewxOj7BcFwpPY50Ok0iAotDOPzc16FRd4o1nnCs28RK7XKNhK6R0ruO8WS92qS7u99RwLbrM33T0NyhpE0iXm65iR7dhZkD0tmp7yQTBTEBy +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
uA8T2kYpfgg3PlFNQ1IO7IvPq6HuecSIM1BGdrYsHewwz3bh4U5bCASUyroMD9uhaXXnoVQ51euAhFJdrHoW9gQIH7ucgZtqOiFd6na7BwAK4jXv0ljat2S29ee
+ true +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + cSe7shWutOcQz0SH80JigPPah6WRBosNgGMAQI5bph1Y9Mx9EgjU604n7T6Ahzfp72ZXC401d2ReGpncFH6DH3SOWZgdqwCpytf2yf4D9VSHcfTSO0nw38cR7tWpZqGpTVrj3vX4jPMvWFfLxv9sDdbCG7 + 3NnzWvUz2yYfwwynBuW52JVKkgZJOxGJcWb1j5Alvqs1W1gpvdupOha0 + YiWUGCH1AX7gYBed66cgxKSTx4Xe6BiWT6IzIiBbfAr54yaaEmqbYaXneUBcvM1hSJQtTjw0MX5Qv701tidjs2HGWiTjWUAPvjahuGhgvf6TmYUIg71I1IhPTa1PWBwjMGAheKxKZwvdmpVDpXdqxugqwh8sKEEpd6GrQ53HtyNQQItfx + K6qiPve0wyXYLsoemc7CBCHYTw73wxX8vnrcSF5g526JnuXJy4dayV8rjfnHEcQ9z9mkOrsMlzvIVkjugxEOkE7DLucqG2r8bNkS6MwsdT29dmDlT99dF8IqDUIbX2b0PnKO2g8f1aoewTzpUAuz + LIFECYCLE_STATE_POTENTIAL_BUSY + + x:LAYER_PROTOCOL_NAME_TYPE_IP_LAYER + TERMINATION_DIRECTION_SOURCE + + xxzWrngKqLzuWg8kdGzQd4RyH4JbLR4agE7H1fkj0TFPaO9fuA5zFO7eSJqvsuGI0Fq1UCcMvStxyC + UdJlKxlQi48Nwvlev + + ADMINISTRATIVE_CONTROL_UNLOCK + + c4PXCcQOG4OG43Z5nkvoJhS0S2LFbYNoUudoG34e8TV4OM146xsHGlzyf + 5r3KHXfUdNPi2P3PUJBNNzc88SlHjAUo1X9IUgu03kaX1dEVO7BuyNCGGXoZxifrgo92ww2sQ4hRhWFY38sCV4aBTysqRIRZ6TTvpOX7SeQ22n06vsAroKUhbnzU5jT34Eqlsnsduafwq7uVzWePz1YKoxwlIhgMVH7g4rtquAPUHbP80WXzXVbdkHy3YOHLvH1s0mKuWzoDL6LL2IcRvf4IWCDMikxOTr8U + + + + true + + Rg2T5oTV954XOKU2PXUKQmmcOpr9c0048VP6bBTkGXamH4gpT21JofN5FeeR67N7Uvd566iE4s0Dw9UhbN0A3GFAULjTKZ0Eu5CsbUY7mYDK7p1bd1D8zaIuV1fy0fcmkOGnAEnWv0GuhHxuBaC2kcw8eLG6SSl4zTs1qPYVHwhY6PtHRXJca8kgL0ewKzAbt2dTR3GqzPpFwKeoHYsJYMZBEe7gFIs0CxTmAr + 37 + 9bPxV3VvTfeJT6lxkkGZ200xxLT75F86RXDETr1EGgoAmBZyVFxQFpf438b8Ncew1R3Ua4rRkPjyii65QwNvV2AQaDYQP4eROhDYm4HyL073j511BOwpJYfLu6Bb2Q2I7yHlCgUghTbsYctsTZJCQYfcWRnRzqzyY8UspGIGrU8hYBBRsklabBm7kKQT2qjSy5cPLVv4HveFYPpjaKtldIkxk3imtC6THiJld6hMuv + + 22180 + -577170901 + b737f45c-5824-79ef-f58d-6a5a991aeab9 + b737f45c-5824-79ef-f58d-6a5a991aeab9 + ARP_PROXY_TYPE_DISABLE + jgOJGWd5b021AClsbnl + b737f45c-5824-79ef-f58d-6a5a991aeab9 + true + -1992486821 + LOOP_BACK_TYPE_BACK_TO_LOCAL + + zHUY1X9niLtckLNFRTXDnkXIFGl22kKt1xj2ushNdCRqgE57pUCF7snM0IPU3rnWYHZl180fLJF1nC0EpCjw4GaXhZRcj709GZmH8eWTXtMcYMRfoaDlJNaSF14Q84ZOWeoWscHqGtCwftDvwgIfVS7 + SEVERITY_TYPE_NON-ALARMED + + true + true + 2712 + + + TERMINATION_STATE_LP_CAN_NEVER_TERMINATE +
Nn5T1INBME71APPckBuE0aqrikf3IZnnek87UVJGrQz1xo5RZsnRuNjNZqIIh5Xvp6DbTeRd4q6tG4cxwro07HF67nGgkEMBChMvvDArVHMBLQ099p9gYHfYWVehrSSV1FjwaTPYAtrdjsmtRwBP5QF1EUaXM3TOAccC5UAynULzm8U5wvMBesuSmFH0AsGaETECN7221FBnNnkbT6E7y9RMGqNgTlipeWTT3VO4B
+ true +
+ TERMINATION_DIRECTION_SOURCE + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + xgRPHsHZnrM6Gg8N59mED4o5T54E3Scs0V9InJzDadJRtKwzTS5oXluIqqetiqVjlXTBGk6QyPz1r6scQxBFSXoanCDxVrI8otJWOPEmx6nY4I3U7 +
aLAmkvfyJel3b7Oy0qUUliRwyoqBQ9d0VOefbtFVzTYL0Mj045MqnvONU6oCguubaJil4YgEJ7hJTsBQxo8NT
+ 40607f48-e0e3-b1db-76bd-a47ffb26d223 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + 9b31b388-e9d8-23c7-454e-8f4883a74d94 + 371eda64-3aa3-f78a-2711-ea75d567381f + QEwNcIv40UVaP04ytaNMfvG3dY17K7SsLgfPQKTJwGTdyXL17rGeWmi2dj1XqTh31wSShDBNbu1JjECj5ixUFPWS8XHqJYtKmduvI5bTr4uLI74GptsWjoGjdfKO5drsjVX1T8VccpPNoLtOfVKybjJgyt5Ezw6Sr3Tc4Gp8YeVm0o27bNxe6gvwKAab6g3pcOC8vTglZcHRsKYEpvSnMfToP4r + LIFECYCLE_STATE_PLANNED + + Lkvmb7bR7SDKml35H03mLMpU9zge3eEOq13t8el77QRtbUqKMl6pZvb8WkeZyKGQMJk + XxU4nLqqyIbcW9uNxFWtZ2tpN18rKsdHZ7EeLWEbwHfsRJggh4J864yL5GcP0ipRhV52RB5njdI2OQi5UT6 + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + + sFSrJAjbc9HBFsYjHJzpN0cSmh8wYp4qWWKFo3IAci3JK12jLtIqtVaHcbe3AalwY53f0LP53TOFMJZpczIyuSfz3luDnP1mV4BNIiSD3HjQiafuJXU6I2FLn1hLQaZD7srPKjsOSDEaNLxxBrvbl2WJ35mT8dxfFQ4p1o5U2BWPnteQNJ18LPJONXAVa7aPPe7QC4CwGzm3 + sLH4MIPtrwgp6br5d9Ur8CWc7sSGGNA1ya5cSUGbiOsoSUl537pbKlnRF8peVRfu1kyL66XpVpNNb9K6g9hSmxB2F08ASnWLHnxNtmcgDS3PTGV1P5Ucuv69oeBgBqTaNiXgE2xaMsZ + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + 9n5JYJPO0PLDuQjIlX6NTRb9vam5C5 + + PoENbFJlrmEGX4203xyKwn3St8xkf8A5o7KzElNXHrDwnGoq5W3tc6lFfLSmTkr9j3JXowV5Pqt46Ju3yxoKwKhDn1Z8mrhFu0vLoiI5Ic9HVEKl315zLf40g48unp2RqxuGPdMxhV64rRqvSvWvC1vT5Dfs2hbkOGTvLFV2s16UKwpuUdRweehbRxvMOzYv7R0SoNURP0Lrp2Wj7NP + 2 + + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c + LIFECYCLE_STATE_PENDING_REMOVAL + + tbu9q6teyWrMeRpMh1Cl4r6JDiCMWFEhJ0q9YTgwQHb4yAIQtl3xMa8psK4giAx1AX2yIiXqR8miA503i3s45AlpdhFnR4orTiSCtH2kPpChmucEyEAD6V3bdA + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + I1n6fELHquNBRt + cX2JDfH86B18CUl5uekAuRdbhHZSqkbDhdeNsVVroPzSBMXY1aqn1EyadpUEC59TbnyvbmWr3okEa9u3jVqcrReE89iK6rE9H4FKqBbtRv02FuXQhoVIf9nnix0hZEqyI5i1ztuqRukoZi6gy1ZFbe2lD2Cuy3290cazGESp14N0mT8MV7rYdmjRgOdHJgQJsSb0oVppZ4heQq0DpsBDOMmWAzDbHlN25Y2uLkLKo + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + GoRvt74gu3wERvGIzikKYRah7081g1qWh9jL8nTDiphaVQKm046YV8821g3hal5rvo4vLY83fi528Po8TmYGv6IwfDNhRSAegxJ1nSWCa2FaJVivigbNfMbmpYD8I5mYC6RZYFC0z9aj4kOeARTHD43VUy3CEqs8wj8mRCeqLgBHAhWa9HSMMNzGmDbS3D0rP0NGCT6f9AXJRLLSkvx6j6FxJQpElh5aiKQU + P2EhZn0C9TWEqVPwsm8aDMvVKy5mgZ051weSUfmV8b + + Pcvg6m5goT4u2hBlkAc +
qv4s1JXOtvTPMKHJE6Qo05DN5OeDEnrWTooM7dAsJ
+ + d2a5991f-b46d-e3ed-82dc-6232ef5dea4c + IsZYFC38psQG3NynwNmnvPDgnDIhH4mhxl74Qbc7v2OzHeW51blx0YFfCnpbsLkR7rVXuZ40TKztYnq0yLpqK4Gek5hEQBvPUiEp9Bh2dQvc5W4EzlWjhCpBzGfi9CZ4MElV7uYkcloh9sNJNKUXekyO + xkH5qOou6Jo9RMsqqsqeva3bOOWWJPY99G6smuWkectXZVnpg + LIFECYCLE_STATE_PLANNED + + dOiqsrPbwx6w7F9ED4fU4tcbTzVhBi4G6e6rFOCblIIkfJZTNe + SzZVkzRC29GI8VGzsu3EIMe21P1UvgznPra2S1EU3cub7aCAxF6frchl1b7ojHL00W2SPGEST8VS + + aXYXtbSsFINR4b05wOGbyB8ENzkF7izh8peBsZ4ZHJIDMJBiphmXKutx3O526wk6OqIgpE8ZfQu1r5cQfyFZU9pQXuSV0c2GDCXU8XTnNgg7dkXsKvsFERntdfo5kiMPUBJ2yvhdDqcQCajnFDUbmhEzoUwA5ap + + x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER + zIJS0iI + + jQAhZBP53crSwF40C3NRk3oPG5gvAmgTcI33bS0fWsZl73dCZ0lbWKTCH17inf3APYD1Jw8FY70X2dr16N52pYw6 + wgeDcGtacmTIurGtjvvpXpvCupTkNR3j0hPcYaeaw0S0rqlCVQ1KfwmBNfNB7QM70BbYLp09hK1I2mdXdeIkDWWq4BT3sG2s9diVua4MU6mWkzLxOlSjiGJm9DhtbjVko57Sf4w12TXmkJM04wje4VsdqJHB2uNqsNbHRHJLsyZF + + ADMINISTRATIVE_CONTROL_UNLOCK + L1Ubo3h1ltRYv2l2F7d1gJsEwRfB1wANxmQNi7ODtyBYAO18Ve1bQmImdXXelpTLMKy4JfzcNb3fZ4nNapY0LGmYvb4JBYufA2bbhKgWVjcNnzAxQqyBZMrmYo5zezGGuRRDB7ApiM4Fdw54WvxNhRa7f7ylze135SyzS8Q2MUASiFW62lUj4Wjj3REC6xx3i6C26k4L6EDobrvdMhxR5Q28zzDF62Jo0dq7qnSw1n + + wI1nyV3V1e7AwD5Z6WIgn8Q3gHVJVABjbuHBpCoiIn + e0Q6YEOe1W4WcDSNykgKnLjZaVnlvL6JDWPusDItrFivi2jJeztCkMtnzII4lOFRCvl403pkIHPTB8CQAXkMBF9anJ6JpLs18N59IntjWacyjGgLDAx67zguim5I7xBg + + -9223372036854775808 + FORWARDING_DIRECTION_BIDIRECTIONAL + + 01rhILZZ1WoFaJxodIaxc5S55IEZ05m06NiHqhys5WZfyxDL7NbjK3gQDUHDR3DQJVp + LIFECYCLE_STATE_INSTALLED + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + G0xGb80zAHQq8E6St4xzhByPkfFqk4X0XmG8uyz5gpnoVm8hiyIz18hlnWLISIIH5hHrPgoXxEdl0mCaUkCVsT8QHUqr + + -9223372036854775808 + + 4XtaTlhjSN5Rsg25baNO4urNq4v1SU2WJoYvJ8OtVLcn16k4g7ScujZUgnN89H4TXVgy34TYQ5dJbyOrxGD1SvN8KAgLacw7ZMy2RrSzpYasoYUVxpXhMKpodxafByeBlMv46gvveFXCwJpV1ecFZt4406btEp4Z4sVaIqFW6uqu6Hp7WtMNWIROO2hljecny8xgq44ormSx39wZCaMyTvezpwUBC7YafoiFsm4TAOiD + OvAZ91SxfrWDepflohsMz76N30nKaTIZoaYpbIWj1LWfa4Ayl2cN2jsXbQHlBhcRkagnSdGUYD90HCz2EDHyOawZS5dtfpczssWcFD6v88w + + ADMINISTRATIVE_CONTROL_UNLOCK + oAPpQyOGKP6F5kb7yRO + + 5oyOwslaUd51cusQk4faUmNMKIA8KRQQfhwLJROv4Lx97RRsVYCHkhtWZW4KNNsV4YyFHebE0AN7jwz7u4OGlaCd6zPLmhyi7ZXGd0kdAZlUnM1RQHpcR2hPt6tHfTZmSOU + P7bh6o3ub4d1ED5nxm50syzHjyV4eQ23XddVCghFdnyR0EepSjhdJQU3gI7uq9qfeD2QLknYHWPzs4Ykf7xZXk2521zkaRromt78Fm6eiWNKSD57Ku6zO0EI16U3XlkkPjsuFqJYeoA6Ux6w246IXCjQIdMyz6SghcCWCdMJCfHoMNUGK0hzvAp5FbD69 + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
f441NyguWVaRBMJKlekKk0OX6PllgMcvQgoDPF0Ds2u3O6G9k0LwSrmRhz4pl8U4oaH5HzJ9B55pbLqoDcUoD87UHbbVj5Zz8yxP88ZBd41hHrFkvrA1sHV1K7W34Vv4m2Um2LX7HYooi3AFnbGPKuQvtFqpsVuOPgaJ18RIYfY8bqOqtufeYXJjC1J5XdLEtWgmW74MmUVpcBPG
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + t + J6YaAzGE2RGMTaOBWvjEpdfgcqZF7QpIWfSoOr3QaBvVEboAGIe5Vml0MdFL34lRj670xa + zEduioSS5sZ2odggZlVDgSY73463thM2VRw58hP5JO7ZTffLA3oQVePYjWUM5yPSpdXxmMu6tuXeJ5Zc8n23CKTNyFrDd8nvmc2AYpyjTwyCBpGJNBEhlpWLXngaw + LIFECYCLE_STATE_PENDING_REMOVAL + + PORT_DIRECTION_OMNIDIRECTIONAL + REVERSION_MODE_NON-REVERTIVE + + sVEeX76rwlMZdCLkdXkn3NmwYPFCp0vRW1XT83cFgYwtA9ON603aOhyE6d8ndDe1E3NM7ZjnYHJqQp6Xh1Z5ixBoCJLPmRJ0UwF1vQhlySMohKdyL4w3t7j5R4N5Nw6H + DBptKL1CpiL1vjMsHHVH01q4GvJctq66TnAD0t7hLSi944BLDwkDpKz5gi9JB7Quvi0vLZNpSXqOU1rxpMbHwCMEVOooV6SigKGTKliuiIacBBKTfNAMpeqc2GAQEl8UXOOz1Y3kz5w2H8VWNvA5CThErKm65nSU3yu5xppYvN04WOSBblGNeQkFAGDx3wj74NctdBrAgkE48oGjJe7X4jvwZ8V3wf2B2647HoHXAd2AuATdOS3T3qh3ydY + + ADMINISTRATIVE_CONTROL_QUIESCENT + + BYRveD4uctdih5O5DWqnD6FPz8HZ2AdDqX0Es59wyeOIjCFPrYc44KTESsvMUAilxiR0fSoO6doiHV78TbcYVYuFiZkdrCqZMhR2afI8k6q2TpaNBfDo5Z4nQoAhS08EaZyk7gkreDt02wNvLiUQhQd76GgYGpuQoV2n3nPi0 + iUyXijf41oU7nSNDIl24cjZ6G3lnddqn8YkiarmbP8ic0XPAjKEn3EtJzP7M2p92nlkxMGJtOTxGReg2YNp1jSDSzCwC1FEoSRWExxZeiwM1KV3JIkC1dfTMRhgSWN9GEXc3mb9EHWyjRB2rWFs1MdFEuOoiBxY7u2aQdcnU8V5Ro8acFC5rHLX3rmd2L3185bQind4n096h9gtOKz8 + + -9223372036854775808 + 4sa2K2u9QUPQPT2BZZjJBGY + + OKgknN44fgJ69AQqR5aq0vLwug7LGBQul6GAUCE1Tf8UIYdr3nR3TDrfTySz1JWeHCOt7kv0sDMaBZBxfls0YM7Jc0aeB6saB9 + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + FZTRKhheSGVtlwZCJgq + + -9223372036854775808 + + 59QPEN9xqCUHge32ILyjFIqkose60BS5KIMgnNOGqAnGPqJpb9JJK130u96uDQrnrdwO0cuiMJZt9ALdBmWlnRlRSjdvaELBRhhKtE2 + LIFECYCLE_STATE_PLANNED + 2b454936-1b31-1d28-4dda-1d3475708a0e + FfqMFcD6HYQnDYDkldXN5pSF8M6moOLV33IAfdGP4w4HmI1HNQuT7fqg1wCicfdfjNPy1nf5LkE82xPPocAvr0Dso8CAnQHGvo7oLmtxG7xIxmqVqSiRLWc94OCjwj02A7qllMK2LhCiwU5WNoGycSz8Gbr5nj7XipaE3NyH42ZsXXhKdXapPJpnNIk22jZcJ1IEOglLbd582mKfbUw0vVgaDAcxU3KvXs1LBnoMsuMuIwJUifMF2UQFn + + -9223372036854775808 + + nTtpleCPAq2X9oP1z2pBza4qjm2E05LfQ6E4k8TUyVKHbrBLl0mU2rddFfRxcuM3BjZVrSI0FszRT2ue2Q1W9e9Gt0dGnSBY3ALuktmZNOIGQcNTVOH42RDnJQ36Aw4DYQ8ibmaZaSx15cMS0tOUcriWad2KKZoAHoTSKVJVF9OClsueNj00KaWUoQx0HVAojl938KQOTwq7YVlE6lEIwsvMa2MSXe88sh3A2MoNiPU9CfNI + jqRDVDNPhFMnOMPXQqRCOFMvzN7HsH2L0ToNo4DxBhUh4KfM26oID26dQ5MiNOWFHcs5gXuSfo9b0gX2ndD0fJ5XORgtx48egBbxqFpFWqIWHxRWKmOS5UPLDXf31nhiQlPhS6OOoxD54m1HAQrFCgi76xa7VkhDxYUp4B6l0BqW + + ADMINISTRATIVE_CONTROL_QUIESCENT + FJSC0XeUypAjalTpytoZc1RJ9SCjarvI3fk3dqPDPhWRCIha3x2fqTRzDlKGMfoHnAKA0s5HJ2 + + dKh2gwwx17mv066IB9TjJfMCRokGrMRwo8yEw5bq4xV4w2EZ3piEE4hvsB3LfVhDVPikMlKITxEhza8Czq96mqBG1Fr8sILfpVz4hbE2JjbaljFVJO15euD714flE0B3W2Z56E7PPaZatw5ckY9ylMxmIMImFbhtdh + jVx0CHSMaoKeJAf9VTHiBl0P036tgf1s2qsEZkr1J3fkDulzf2RQoJFgMEKUTDmW4PAV1TXCWcWAza9OcSxst4J7Il1uYgqUXSQYMNtIRhairj7w3wYoAzvbUpFTx5FuPnkB2NcUXm4oy + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OUTPUT +
02knd7MSSbPxFEVS8XxkJuyOT6RFIriAtDXyCCquN71lDOdLEKXn7w3SuVx4eQEzlu7XYpjDwcY113FxGCMN0QxvD4zRM6iZspOqO73ccU55PKCnfo2f6zCJ
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_FORCED +
bzxXCy5zBVRR1NeTXda6tENe5Nx9KUEWl3LQBIp4v9VwW2iTfsSIYxW3cm4O8ICtLnje5JjtSeZGg9svCc6AJUwNgsBo36SOl3VjE6MokD5tNxQpJWRkRn7ZQAgTy0zU3m
+ UOUv7owQll370o38KRfGDtsqTF1IlZx7FrCMH8D3uyamP5urWJ8rcsSX7LykC5rho3W5cr8GZaUGfo83Z8n3A71ISz2nEmw2ps7BT89Li3rqjrtizQm2XfKIOE5k0BmiWlLPlVsEQU42dpcN8qP5FrFtXCNQ6102fLRAyc6h62jbkvQsWxptY5XOHCwNEwHLhrlQDk7BmiMGFD0taqX1nUHWodCUBjFSKTAndzYrRD0xg00ii +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
CeSMqiXYyIt0gz7PPuZ3zz2ZbibKr6G3kqICJFA9o32wu9djD4e5Eh4PzfzTe7Wqpw30cvasrcYVd37R7lOLCSs4Z1Xd0LEiizimWkOnwEbCzalGv9k01M4SGTYywuQO392ZtQfSmiuVsPuXYOPRsTB8EzHb3xRYyUQ2CXMRf8MHX8wNWewh77pEzYPuoytWkbQX8COfKsWztkehyKyyKY4bWLFcj09E3
+ false +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + GmLe4ffIqjfqoS6yEn0V7bjc0GT7bElR0Y5WdcwDwM3Uw2sapkYxw9BoPun08IK1GHPUUmpq0lkwnEyEZwbvGNLn98gaR0bpz0bteBLeW5KbCbPBzTY7yJvHJLRADUScN3y1wj8khSvTVdmv6cCwN7dwKXZfRRkwMSqj3yDki15eejJcndIadVzXKy5uhp039qmcYSp9 + PirT7FT3hwRCMuvk1JjzoATQkic20VrH6SB5pm0HSRbxeGJ7hUHFuswPCAJCwacC2FHk1HTMr4bxDUEUPdAbF6SayBM4LQyGv7SpHL30Pexk03fH9HTOFDYd7DaSlIqJIa0pV3 + yBDhElAuy6KLe4RjL7P1341n50uubA6BcJSI4lcvjO8xSZQwYxpTtqhrqDNteT5qvP0r2cWd0WKKVtgLSGxm6GNpjsSpmP + 9OX9J4JSLuzi7pwe2yZg8hZQsZ7n2oS34Q4OMNGqhfIpF6vzEuPNEGv6FDlz1eu6WzUIms0EIJVfHqGeNo1r4wpC1K33Qy1M7Nnt7nZPYUWydDMS1NbXbAz5cD0331HaG4vNknva9rImWu6P9hNdJeiWRiZMbyWRDkEPH1ZQlA5h4b76lMj40B0KLRwWilNVFjCeltWG31P05O6qApmBSflDYJrg4e3BpFPC9Ea4F04COaUhrhSjw5OmOfDL + LIFECYCLE_STATE_POTENTIAL_BUSY + + + + true + + -10585 + 18331 + + false + false + -30 + + 23770 + -7589 + + + -73 + -8 + + + -38 + true + -82 + + true + WZURpQNLrt538ehDmYhAcceQxXEtsNYoES8VIVz1gE5oKm1YcaqomE6LtDfVi5cXXkSxfjqvXvLzJFxVPXc4tiPWVWK61O3 + -9223372036854775808 + INTERFACE_KIND_TYPE_PROVIDER_NETWORK_PORT + true + PCP_BITS_INTERPRETATION_KIND_TYPE_7P1D + + 1335170668 + -9223372036854775808 + + INGRESS_TAG_FILTERING_TYPE_NOT_YET_DEFINED + ADMIN_POINT_TO_POINT_TYPE_NOT_YET_DEFINED + + 62 + -67 + + true + + -81 + -53 + + true + false + false + SUB_LAYER_PROTOCOL_NAME_TYPE_C_VLAN_COMPONENT + + 16 + false + -73 + + + + x:LAYER_PROTOCOL_NAME_TYPE_VLAN_LAYER + TERMINATION_DIRECTION_SINK + + mn7G6j3b16oOFer5jVmANhJ6EN4o45hrsoZqzUCs00gxeHCp + QZi8AoEgk2kqjLSzCb0xNspFIPUijjEabWaLcO1xIeP1ZzsuKsTpUa5uZREj2jld7vZkbSJT6yMYZ6kKyd1kn6GnXly0wL5D8WXjPy4NYQDYOXAeaByqAeNprdhXYnB6jqh0RlGP3jNR9f5bRvBjBgI3t00jfthqMyjDTZk + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + + EwcrFi2qNuO6cI65K2Mg9dIKoLPi3KIH8M8N52d + w1IJCOOeQtm0y4COHr6K3OrbtsYqu3aTWSuqzaFpD1h4YTSFcZq7FJi038qq3Aj0lNqUXXbtRtxPmhuz8MGOoROrR7RVH2V2PdONb082tFRHWd85SPLgyrzhyjc8lZ2bdRQoJYi4v1LjeUgYBT69dGqDZvLkuGnHpdX83fcygXKnR0lkMstZ0MCZ9gbDWzdlM2lQixgqmSN6L1q + + TERMINATION_STATE_LP_PERMENANTLY_TERMINATED +
qSkz8vcW4h9RkuzCTH28AIedJwK4i0xISRh1mmPjDZ2PlBjfaenCWtPFZrJar8SkR2d5g2oTTqBf1Um48BG44oBVPc5hcYB3SG98IxTuYuBRpXVpquuuKXhz2nIedbi5Rr5sYYWOlxGCmt1MPn8zlp1nMJBZVTWMc163S2R5rpHNLIzs6zUjZVGDw9vjVr67l4257May3ReOrN9xf3QeYoRmymGtGEsTIvYP90gcJu1a9aIo5q
+ true +
+ TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + UO8USH9yJVcWx2tQMwzobOztAc5LD2CpILjsks13f5ZE0kvEQW22KtncFkYaeszW5LhpdatlfkZfFmTnjNh3gF8VZ656yxUEib3nloIBJAIgWCD7hV3yAblr9jpHQkd0v9fRpYk8q2oew2mOPp +
pkugPBZIlgnf747KwwEkPL7xZ1wpF2cWmy4414Mmk9
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + c931723f-d4e9-a03a-492e-a4b6db919794 + 371eda64-3aa3-f78a-2711-ea75d567381f + 7dgVAXAA0BfYTml3OpoTd4f9P1JoK69RjpELmemmPtdAPqvDPUoUQv3xpF + LIFECYCLE_STATE_POTENTIAL_BUSY + + 4U1Ozw96T6CPzmB03xza7v0YAd6ZfIVbCOZ3k0257wUySvyV2062v6SXbZPiHKtbyl6Kl8QkwKSo8jc2ja4G8PDjOktv4Oyu9E7nNXHbzsAHLMCWWyC4n7f3sAyoo6TyD0ViPutoW3YzHAnv0ZroZyrr8SPx + AXtsKLh67GVawmKYK7YBzeA7yT8qJx8bmuE67V4etZhZm1P68Ozz2azs3HSE6TIsnmym9CBDuSuQTcOT0ntUp2nlB7ZHSz97Vzu535AxXWnI83t0rWNQQ2bj9302C11qAvnEAP3pLrZMutENhrE0tHjvKcpfdqFOW2kwJnOmON8b8NYi6uaAct5OFu3TUAzIu + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + 485ddcfd-8e40-0021-4ded-622c0d9a41be + + AuWWch1M7raCg4T3Mg6bFDYGgUq57GFHbtEfKx1RZ3m7Z7aLn9W3MMB3G28OANvD81SSzMCqPYxP5Is + Rhnv3ZqCTyitdN7lHR68DIytGXaDxuXgLlMHccj5DBqIgpWPh2XMKn7idhVKMK1pXF69Jh6eKxXTOTIXVyKxNRP01CDNew4c3blMkk15RYYxJyvwY73MYKEZehEsFJEIUSv6co3Ve1sXsPlqWg4V0JM6Sryya58WXD2116WfZg4j6pCUxGHphuv2N4sP1ALY6FR7DNfvVbGTBiO0Rnq + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + txjSdoFn00F1U2Klw7Y3VoXBoIgeoUkJjEBo28L29jW3lGgKFeFAvD3TdkZB6kchYNFSOjNXCJSPh1zWffoKKsvXEvqKHCTxhqp5J4UdNF3WGCKNJ9ytt3i7qAJ74uEeUWbE0YJGvMu3hfQ0gomJkwICZjC3N89z4l5XjPvOBZRK6HDmYRXanxMeIginprXtE2iXRFDlxm5D4ASUrHWHfAVPR5dgp2B + + 44Wxhlud8hziSdNlQKtRFQPX979B7sQ3wEsO0O105siXxXbfIE7fmO4nVeRUGzPc5hS56LX3681D54TFASUWyZct53gLC5PHfIFdl + 8rC1XA5I7FsUu0LylQBBt5ziMGSjLeOTxiVmK04KywwUwhsSZVls0MKEsvYdJE78OUvrUrbkYH6mQy6Htk9l6L0zgQERmDS2xntkOwwE5DTV3ZuxjDKihKRpsn9GT1Jig4C4B1BGEuuHlY6xuRPDty2OVbuGcdZsitpLuSr0eNIzEGY8xNLTdFH1R3HVhGgraxcEpvFvbf4PVVXlIA6W7NXQQ + + + EbDgq9YX0NSgexJplJAR6BxwW6QuqjrXu45U53K6JCeX1YemzOdxhK3dQLI9496z53l3651HzfwA5LXEra4JN7WvLwEPxCgvFCyEzzl9GKJMvGiWJmxommT7SyOiaXNQrlm0MH1sjL6OjpDUL2iZocY9CFrEC6mVrIV5iPxBs + LIFECYCLE_STATE_PENDING_REMOVAL + + 4A7zlE3TrEOvldvMwQ2yOnktsXLwnMssnzTIdOtxsa2GfpkL7mkVBEpWu2kRPMbcl5MyT85ei0Mxh6bpkvkN1BJvE3flPip2nbt9bqftq1TIZ47brjYsNAQjD5Eln3fD6IEi9TDrMo1Ds0OLkEeZe4iK1OXgRcLPVp74aDvO1xjmx77JEdIS9Su2GrjpE47rm6nwJSdLhwZHw6iacTUlLhokIHJeDQFZX2oyNtbWZavv9OxlHkGkB + AsuvU4rbRSpT9HFIa7buM3wiMnUvF4TfonCij3l3NKWXjCxmJIQvEeGqCsW9wHoN415fWriK3fzfR6BsPrXtGvLaYzjmgz9cs7spyK1tRAIAGj2nDSIjnull3EIc5JoyQQPgtQKkqsVYEPehHWsXiNaejSqouOOkxDB0tlcLFZKbPYso + + qLVVyyXQymUono3O3xUpsd8giq5H1xdja86AH4j7idvFCrlxYfWjk4zumwbgVhz5hGyYCRXU4lryMM5K1U3dQuH50KlV1MTjkj9Wa7I6k9x6VuQOoM178Ac9lxWmjHxE0 + s2Gb90kGY8aGWrsQyBqKCLhq0s0x606z3EC4wWKu4U3TdvJLY9vsNMTN7TcdLbEGHgKe5uA1hDUu1DgRFDkki57pYbCBe9iWh22mpCgG8a21GaSdOcx69wv7HZBO0TKiNMw4gMKgXFhvPaIvefBo + + ADMINISTRATIVE_CONTROL_UNLOCK + + ruPbx66ZJs7NC4GBOX8GLkLHMoXszCA06pbvvam6ClU7psIdiQM33pDHNsaeWKeV1iiosFu40g3qJMDTupOxOj7tMhHITODM6WaytEutVyTwkphOG5enplQ3uqLf6h1c5bKyH6TuEN0Y49FK7L7w6Qrs84HelIqiT2Is8CXNhPDlZa + 6V5uTNVlVZ29dKrvvt6YBINgRCM4BW1zSY3DLQZGQ1H3E0q1toRX6E5P9RTCONcyL7bxY25GWFBsF1t1idYgJ36SVRvBEz1q + + 4FWoq782APXUwepFATR6jnGPlBKxGc5DRUTa11c +
Mc3rNvZHQ0Z3YfFTdxO5UhJli12nIyuvDxOq2N7SNYOD
+ + a63c6adf-b9b2-9bf2-8745-80d7edcd7459 + 7rc3WYBt7zN8CAAhVrKYkiNamODfK0dJjqM7gfBnOovrQXILokBAuhKR5n6HfjqyB4GRjh68xBrnr10PlBqHSayPqwwFQOejKMb4Vh4sLvHcwH1Jajq3mRKMn9r5XxpIjAEeRAyu57GtGAcRTuMflw1JFlGvS55cx + fH0wx6yMCMirsqTtdHbTeWDBwkeVii1xR13o7t2K7cbAD5VIE + LIFECYCLE_STATE_PENDING_REMOVAL + + xuELHPBg7751A7w6vgxi7jI7G83eHTO7flKXaldhkiiMhPTM5iX5BFc9N7onS4m8p65zjaQEk1iBIbfFucKXRO7xWnMGr8OR6LipV1372mICpYhT2UJMIIjw555w5LfbxyAkzwstK2590eVV8EHJeS7jPcPUYXXnvxzWVThFWePOsCJt8icmabFZgmL6jItG8Uu3OLBCZiikUUN2cZgf2Vei9SolAJ1AEowk97O1p6lj08d5Ztk + gqcpiAKLkElQ2R23YQ4fWhqPhDUgY6aewewPOgA0MNQOFSSvAODx63 + + JLgQsJx2NgN923vyW66hMBaKGehpoyA7kIYEjnG6DlfFoC5dIbunMw + + x:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER + PVd5330BdQxjMw84zELJHpjp9NIUYVwOJBLMwDfJlEV7b33KHPlg6xFfkn2ajyY21BGpeN1zjWyuZu6yjsOpZtxbJzlUZcO0Nmp29qtseUPdoVDzfrQ6Nn9wWviNH6Nms5gtnCVCwCHMqldFE3ErrNPfi73RdI6xFm0VYOxmq60Qrdo6h2pAP7P0eKJklPRScSN2GcpYjpHCD5AU7SuOZbGdOqp1fhTj1zmzDLxWaerFbTzaLVZKZxQFXf + + 6JS8gB9cZhx21F647J12jF0VpNULYll4454cG6gxnOrgtykAheuBLuob9aO7v94r60vM6MjlALB3jOvs2ZVNlbQnlEmQFi9LjFxhrJDTmeOF2jZWaVKnYsKk772Ep4qIJP02qvVMJJjEUjAW6cj4F4gEbjasns3Yi30IqNn9oGFaZg6Xkp2Rlanol + RI0UyaPqLf58gtOWDG4BDoTxgeIDD33uE4g4e5vZkAZA4OwzuA3ZRWx727CF2G1GKhLQm8IyIH1Enx6J09JR58Q7fkFh0yQCQ + + ADMINISTRATIVE_CONTROL_UNLOCK + sCgJ1Pb81TYFcldaYyqvXUB2vEoSrVRLx7vqWGzX + + 5qH2lwgfXWwXIGuWaYCyKno6Bn9vd6mao34JrlYo9u + R2IFcGiLix1p1gqolxKvVNzx6MvvVSJEUjc7SmK2TLrUTSaehUJ4zaBGX73KRMhL5lKPHuSA7bn03x6ckPhTSKrHJujAg + + -9223372036854775808 + FORWARDING_DIRECTION_UNIDIRECTIONAL + + 7nHLi1jkhLhDgFDY57eojEpNBpZ1dlzcJgX1a8erLvW2azSgz6ESLVxekofxKPJlXye7GsrkYfm0HeggdU0YHx4TVkix91S6rZ60jpkhEGilMqtZdtPUSUOGe6df0YdjXbj8Avq73AsQ0OHd9x02rOIxMNM + LIFECYCLE_STATE_POTENTIAL_BUSY + 8c0b5632-f6b1-1b90-dc8d-4334c833133c + 5kqU4bmNSPbIqw7AIOp9b18M3kG2or5lDn8Iyuniby1CX8cxWu + + -9223372036854775808 + + LZYAb9JDF1KAt5qtT0z2xz4YfEnTs9y50oG3phH4arxDwX6pXxsmYoc53zZnIpsBF0E49 + 1jNyWbnVBdkVzjbMo6dftOwOpbG3gQph94HYf4TIhd + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + 5oropSKYwvokyCLdGxFQisHVrfL64SE9h6yGQixmOVHepkr5RYW2rvXSKARPsnYJlwicHPynK7B1k + + aMWnt25K7u3wHDQQOklqprC8pqRsDR0NvO2RQ7 + QBwea2WSQh58GxLGO3x9Gg1lMPovynYgZuu1ojUeAZn8o0O53deKtf57WlCmJsCAXZBdinsSfH0vHGAKTGmeVseKNI6obJY0AAdSPFC4eusVa2GVB29omf82Y7q9Qp + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
yUMv0gXWiRCdsweRLuRNsY5tGmCYdQ8MCM9DU6rcX3hirw1c0SRkRXNxjhopZw3ubc75aqa7lrhMXiRP3I9UxWjJ5H0563z97
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + 7yjkMjt0haDdZAtObmw3uCV7ZAySXWH4mTo04JSeTnrKYUy19X4vrRCrr2boYSkcDIcIj4W4snPiafbb4fGw6aPqd0ObK9goJs6VpUZJ9G1jO4uSj2ghdXHqPoBAxRQ8cO3BIVcRt53h9x2sAaJN8j5XHGp6qfeu3aXD59nqeqIn + lAx5RsI3mPPR0YBjSXg3SmS1DHW01P8epFj8Z13mIS5BJGUtv3pnphh2RdUKUVZbAaks4nOE8T7Js2c + 5BlmLugCH3eBY5Mq8YSceyIesQXMK1JPDW3gqbSZeYsc47vc5ngjWYxgGm2qoD71Aa9Sm1SsRkFVr2ZppfAd60tMmndK1cDtnMdBF53xiAkBCk0Urt7xttcPQpsJB54QKajh7fOpP1TkdLeEed4HGgppxR00W5Ry72QehwE7xpjCaxhhKdYjtfI06I0VFJtMMb13Ix27WlKYST7v66Ozdwrk6rfEbAqXMjSuIVBwgdv16CwcAkDO + LIFECYCLE_STATE_INSTALLED + + PORT_DIRECTION_OUTPUT + REVERSION_MODE_NON-REVERTIVE + + CPhMqWMB1CiA1o09vm4xjAusXUyfCV46CmTUaFwchOMb5Ecs + gZbQtvFn3USYZYsdJmnpSzyzdBwRNYJ4PUMipsxkmhid8KiRZG8R7HiliO46EO2tAGDS83cnknssZLkYrsIq10DcHIado4zQK4IT7N8saAM9lY0EjI5kAAw9iyfyCOpnSZ80MgkWI6YWXYAgyxA00ZaixpJ258pX7xPMF1An0qbXgMdObFPbwRm4856d5n24USQrTjGTJSI + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + + q7fHJMqKZQ80MrFju2XgymuZtxKfwqyOqNn1zNLqDLri56tz0qPyEcq7J2e7sMWSrjT1ZxjuaCMfB7OBqw24Ak4bmaiOX6zoikhhJtLU5q9GxQaXe4UOoQZC0hiXgRey4vPNYAHWSRCqzMfNQ1B6RAISJ1HZKVxOjeu9Pb5zUAZte7858J30bEKVFrUhnk6yysHfDNPqfGLtFUqODuGP8qCFRoW6IUE9eegST5a8EVBjH2ZdoF + wXw3HURNvEkwSqMCjKMroA2z9Wzmk6gI4ELLrvqO9CkT26wlIaE6CzGMv70Id9qhN42ezl2AXet0dRdV2SUwrsaOzbwMkXW7TQe + + -9223372036854775808 + uGO8S6dkyCP2zza0nhj4HSJ1yYeJXJnjh3s99xlA2aCBBEtYNMVvwEoWuDxjeUDvX5EZuRzwT37uIAkne7SKEhH8M6s01XvQU1PoSgVLc27Uvj9Jr2u5b35X9pX2mkT + + P5fWI1I07eSLvMq0n + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_REVERTIVE + kzPDotW8XF3r3kEylD3RHv3lbDhbjFiE609ut5DjCyKGSg65L1OtxROAm5EGDWcJOl6iiJtN95t2lr77tOsSx8sU56sIVwsJRyT19mOir9cFBcEW06Ox68jb7LUUhev0Eh2NDIXXKaudm09e6P + + -9223372036854775808 + + jH3sTt3Fkwr5is8oINS2CVS2NNizPy38f6s8rnNDL7J4zJshpdj183VWQ5nyEryTx1URgHu2O56fPqw6DH7EL + LIFECYCLE_STATE_POTENTIAL_BUSY + 2b454936-1b31-1d28-4dda-1d3475708a0e + KVPvIXRnAjCjthKSNHSxn7UcqrLYioK2brpTphhRsL2V2NGQmyfJy1VYtyOLXqF8K521ebSyWVlQI1y4sONSPAIi0oVXOtYqqSrE3k4RfpzXj8TLWyvL0d40BRQhkOIKG1gBlkkAKTp31aGXIbBIgxBJor0B7AlNCCgPOAiqtHlvK1ks4N3ccwVBXO44gpJSTZAIzS02rmpbfCwchzou5k5U81Qoqz9cqJUZtMTU8b6gFCsW3Qq02nM2o + + -9223372036854775808 + + st0PTw8spGlbpBTTvzZtPGUdMpVL3yFn1xdN3lflTswiVh4rJ3UqBGDn6q01YFpS5uF8HMtB6SL19PsSKfidVOsTesN58cPdymdf8zIeru7AbAlOHv1ujmgqO3nW7c1Fy7UyGDM7ZTz2lUQUiKpt6FTMIgBPkCmSJgqhL4oKQYN3KvYU7fo5U9Suqlb + XxvzFVQrS73IXQDzeBu + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + 8Bo2ZW4y8C6Y4yGewHTh1uz36wdgAykA1Au0xyzF3FDZ5beCSZLUtcXzIbHaBTKDu6vTF4yIB3zH7NbZMWL78JGJMgTf9wSvCgo9kOROSjnZ6yQLmCSudr5RHZ6QnReZ7C9jrS7bbu2aUSVgmNDreIiNzpwW8KOfmPqF + + 3RyJRoDMrp4mHUVI1JZkY4u5FZwoRiQM1gvSF1E6qAs7mfHgQzsOvXLaOhq + rgkswHcbIJa0jC0yKHOA8ghD5UFT45rvdDQKk2NVLXVXsVn4vbwDjN9hAG2EMl9RYRtbUh6x61mqXJukM1X6GYfgFhUjDWatNEEzNKZTEdctXGNBHCzgBOw86jrB7B4U7BmUdlGRyScnqZZ0uyg5fE5dXwO4ZKR7l5TzqriQbv6Cm5uIvKFCgKP6gv2g8TftY0Ugs5Zvs5ZO2tpp542mPRs5fudnokIelDnFAma2r2Ilv7KBcE + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_OMNIDIRECTIONAL +
DT409gIgBdD8NZjHilqDIxfjBU8uixlVjpNsFnI9tdh8csQuFgZoFfHh1QLjf66ynLTV0t4tHdCLGk8dA7B7ebofT2q80ozo9kbaN7Dmk78Srg6Tfz1uKhBDb2Ecq5sspDC4K7rW7rHyzNkOelaZu
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + false +
+ SWITCH_CONTROL_NORMAL +
ff1sZ6fTY9phtA62LCHXrv4clawpbiqqqjSpp7ig9zxC1vxM06BjBywWI2dTdDjDO3U634m4DLyF95j93VsEtYt3TGPYc0t04n
+ hYogjQyXFIOvLpExOtJxqixvgsWpzuEQkU7vKxtif9NTqjq7E1E5k4AAop0YTwO6qNB3kWlsY0lgjDnYF23ZYvrmUjcGPTE8G7bT4olUoGaHjyxQsAHiY9EKkJqaC4aa4 +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
3utNXsZctUJz7VhgP108IKD1cTmqZ9pVESIBkzNFuo7tcgJ1hB1RdEKqq6QpgfcMZNfcm2RQiQbu6Unfop6B3R1lXKL5RPRRC6VR0EzbvLxtxNJV4Hx7yqlo26lUN5Diby9
+ false +
+ 5b29f3db-6f13-96c1-f189-f038af15cc4a +
+ 4ace155c-6c04-f585-d9ec-d6a845794520 + + Mi4jQXkpX25OHuATQ7HXAicQqjHAolvaDrltgFS5IPThcta2AJRa1VSkerUvMhFqI1LQy + nujKY3iAd2d819WSOJQ7CJZrwJ2PODrb7DOXy6yL0DU1MQMssur46qnC2qjQ3KTafH0OFyzGblzQ4diwIKsO2Qq4gJUjlGltflhVTItX4UN08XoQHQwCGWGWxt7K9tdoOmbA5wx1jcTj9h1J7xlOlTCSeKun5AELWHdT6KMpOFIQWJzWgMCBxelMQH1NhFz6fMZlpMK5jsV83m4j8GM + b40Cs8ArQxejST2vD2yjFXLbXOUS640a10Ml0nEQUSaME4a97ItEFePuUBe1ye3r6PM7cjXY3ZDH4NR3vcz3ihxdSM6q09R7Yw63P31SVwsZjbUHntKFKhSD3Y3WZNVYjT10OUKJr + 7kDGliY1R4gwVBVzd0TxO1AaXLbDxRpw3Ucod2pWYxsM0fld86KWZcYWX9rmSJSVvXkIZBxQ9RC17P77ORVNWTCTVVgNE0J2X3KPw9xF11z0QGZEpUklFO7sJnggfRi5M + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + x:LAYER_PROTOCOL_NAME_TYPE_MAC_LAYER + TERMINATION_DIRECTION_BIDIRECTIONAL + + V8lOpx9zrCaaMcXxw4YizDA63a7G1ycWGqD6PEx9gIbVM9sadisEV2KQdSxeiB2YTF4JcuSsc3nY4H890ANVvyEIi3WAEQyqov9AZT23Oi1LZ1UZtINY8jyimmSSdiiBFjbEc5zTnsEntqe + 01F8keqyAarNtJg03rF7x60Uzw92XoJXppYCDoa5rtTUd1U8tr7Sy0M7wW1lcDbB295xp8uQBfCGhpOKQWCgWgfk49GgERKy0H5hPr8rHK7Y9OISCc0qk8KhhipV99l1RijyJjRq3Ro5FYX92Xzn + + ADMINISTRATIVE_CONTROL_QUIESCENT + + H8sRgSeQTcEn2YNorz21ONuFR7DASbYrkibs2piWtObvNYT6xW7eJCTsBoVtALNM3Ye5npTId4dSUYZkM6yoArQbPLxhwk3riaxxzifMfkx1awlXuLl54b8UPF3dR7F1h4yImFmtZTv2pQZMCkRGnRscxoigvXiETQm7oIBfu6hTWgxqAgZQ8j2xHcN495A2WW2cxDr1JJMxZcQs + PiA0c7ApVEq0flO3n0s0klJ3082cYmEFE7GJe881MqUTLAP8th0NvBQvKKzI75gLcOmrWusIVeuyPjzisz5XbVkVxTvEZDi3rEun1PYO3smSDV25n7VyU7ls1I6SmgVNVi3W71C2lYNQMPV9XIzJQUbJuatQigwdyr1xkDsFufn84ah + + + + 8 + 22950 + false + -1469993067 + FRAME_FORMAT_TYPE_802.2_SNAP + true + -41 + FRAGMENTATION_TYPE_DISABLE + true + true + yUcjZdYYYsEJDithmhVD2v4W81JJyxGYjShiX79OrFx5XSeba2H4pLSxNt8d0G3cqkuojv4K3tHSmW4oQLk7ocw3xFgydj + + 3V6B27R80H3DJjmdHUW6xzvajZNebFVet2Hv1qv17yERSS4rETxbs2eEU1S5yFbTzTgAbMBjk8a406vFZ2IkXWYJPIGg + SEVERITY_TYPE_WARNING + + + 4l3MYnTfrqiZXrpaK1O8ZIWtynSSwaxAvtfmI0BaqT1fkiiXjY5izTE7hwZNGpf4SmqAn1CNUvV7Nd4631hCMVK3jBIS0QWKcmdzfPf1d280747aXgNK3xFe0g61Y2D2gQCvyJpLLxLSuK2j + SEVERITY_TYPE_CRITICAL + + true + LOOP_BACK_TYPE_BACK_TO_LOCAL + 44dz6xfrlrKLft22KmYofcTgtmxhjLtfIGOG647rnJdCc7xOtncJAXRVjo4C2xSCeGikChL00QC4Y1TrhX2RVTE6aJB4gtGm1QyE7cwZ203S2OcjE62r0Gx2p0YytEUnmtTtFpszpnsj4wCICE1udywCzm2U0X9ei2HXj1oJhQ2lex3R34lguKLV6NIZCRdUMVR5O8G5YBq50lW3hhcE1Pr0C9Z7Tc1FZLCOTbLJM4OEhKHz2L5VA + FLOW_CONTROL_MODE_TYPE_RECEIVE_ONLY + true + false + false + + + TERMINATION_STATE_LP_CAN_NEVER_TERMINATE +
CGk6INP13l6u
+ false +
+ TERMINATION_DIRECTION_UNDEFINED_OR_UNKNOWN + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + uGw70dB7y4C8qzv1fS1x46A4FkJSlbaPJGWJTpJrldsMMXF1IyyME0Iblk3Gv5neLbQEBzYOMqAqf7sXFSBcTcf6wbETg1724PyxgomUOWlW4NLBFnNqr3wXeaQu3Po8xXFNlTI2IVQEIBffQVyhY4647Wq2EPa3EIQRBqL +
ifruTISqd3x9Sl4HGF9Mtgri79OL9Txr8QOUyGcDBKEl5B2D83htbILaRrV0dkkla07AGk59WKu1lowlrNOCvrNeSA7XVrbXriyZCD0qfujASPVjCBNZ2A6N3dKYwVVXelOIRO96asz2amdEY0E0tKNwPqullharvY2mEbsOv1IFgVceVQegsUM9k8uxqEZNu1904tOzno7DjjR61XnlJ9u3iYBAusnQtoQpJwY6UXB58kb1aqmTAIXKyqc2K
+ 79b69572-4586-21fe-efd4-4a81a2b57515 + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 +
+ + s + Z6j5P0gIo2u1PnSYvOD8DBdhiqdnsFTjE4ot5F4lzymoV6eiVSqqlvHEVM1fr + + + 4cd72b11-5cfa-9e34-94d1-42b54486ca7d + Wjudmv61kMGXh0VcLyrlDuGq1YffnmZcG + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + LIFECYCLE_STATE_INSTALLED + + fvENefRloo11i8Njyv4vGgmzwfylgW6njC2yRTL7hM0zNNSdbWIR54itbIOrxMOQgQg7B17SG7jlV4y6SgPPc7anIZHfDnXU66THZ0sF0D0VzqTsGI9SHk8pbHEO4uA2AuKzm47 + HZ99q2BYCCRkWRJ7ygWuCoxcS9D75ClMunVUhoKU1t6PkHXKPLfr1EvUN9TSD6w7lkTDAEpt7njk484ULjdMXJyCSjmnqTvL5ogF2x12UcmZkqLXCYBrHaWrliPL3cp0AxGv5zpZLLQ53BUxsvZ1xVtT5aw1mN1WlHji8IhTl0QptKWV8NXFAiqysXzOKACXaOfiwpcKp21SFXONDDk5VLDnIc3kNxiXlxf + + + x:LAYER_PROTOCOL_NAME_TYPE_HYBRID_MW_STRUCTURE_LAYER + + 25fbedaf-00e7-2908-fe09-07fe37aca56a + O2uD03DuG5wt82e74b1q9Fp6 + ipbup + LIFECYCLE_STATE_INSTALLED + + YjRa04l9M5qq6IyZlhpni1V6J5G372T5lC7dHsely + DwmbvzsVXCOSIpQgsXimUDQ2IpuXK2BnqQqWpSJevp75OPmgMEuGalASC5HnZbCq13eiNXxaewg2dCaZgFxqS8bu5SJ43muWhI74xw7LUnF7ZQY7vvqnvBJAltxhHT5YucU1A1Fugkt7ar7xPxMc8wNtZcKG5QwzUitvc8RskdsnEzUl6Hy65dz4pcCu20W + + MyVBBh6tdCXTHleQnsPjvIJwn0DexAoc0bNtkLXxnMj50xNn0CHnkiUzjpFIZ3UZ6ztrliYIW9FWHkczWLW83Ize7fX6aJYhjjAEtqehAM6h6iQV + + x:LAYER_PROTOCOL_NAME_TYPE_TDM_CONTAINER_LAYER + 0I5G6TuP1R0QvJBMv86cW5zGzeM4rGrsgx0fiuWbdW2IFDv2 + + 8OsGUxTlBax5wr5s8fJjC0erKmAI1at1QVHCssXVun00GXtO540H5e0HtAhuCLvsG441oTWSgPSPEdDJivqfKqW5SdzuYWOx0SqgMe8U3SJA6fbgKuvmUjjFwS1nGQUyAkOeyO1uHKWFR7NuBaIot2VZMWetE8T7kIlLom7XZ3uQ2hcwjVMMPHEBvSW2TQ95quQGRXEIS8qNiDjBq5g7EM + 1wx3hfcnxz5di3R0NSqAa3LDlITsmx3o4srlHwA65GjnB3noVFRXBusWdehzLkPHM93lFvrCbCZMFe3sTUhugKjtYAVJMKjqTeDqJ42VG + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + EVYnn5mC2lMDjVWuvsXWzewdkFbuvYp9Uoo9tLLn6p0hdPLI9AwAGUN1zZn4PN6B3mKw7vL5NDm0k7Auz7Wg1K9tBwpibvUeSEKR2nXP1jHljhHKoE0ig1LJqa1ByVQiAs1u + + 2LX4UWecspmr8g1hPtCChVylvjvUwKGynvDhjJtL8Ic9Q5qxr3aIQA3mTq8h2OPqckHv43h4LldBrE0SzashCnDnNMEQsu8EOP2KSjPvE2Y5yZPZ19hEwM1kqG2L2ahIZjtKCa7946 + vXWmY5DuCioOA4QlY0DGRO1tr3tA8rGvouResnJWF7Kf3stTkYr3Mlp5oSxoj6TzALF28gQFfAUaUf3edvi0QHX6rvvCBob31Q697OOehBpbQsqWPAOx9LEA814JpfNrXLsWzhbQKA2sUkoKM49VQNnYOrA6ynpn0Rcz0niKPcdBotdaynXg2c6JvyP3VeiN5uf6JxIyBN2Zhf1HCYPF2Noxm5s9bCX + + -9223372036854775808 + FORWARDING_DIRECTION_UNIDIRECTIONAL + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + LIFECYCLE_STATE_PLANNED + fb0db2a3-9b3a-bc3a-55eb-3437f8360599 + 3Ib4nqaXA75njmF6Cybwz7cm6Wvsknzf5KbkamiK + + -9223372036854775808 + + 4Gxk78audMAxxnGNnsljUNITROlzrGsofZIeZSI4xiCWyaJVD4epKPbtDw255nlke3yeOgilqMhYXTTsP0JrHUMcrH9w4uQiygomwHzWlINaByCjymK78xkzetXaQFsoVRCjq38LLVWntqGUEi1NPdmVzc5pRqFN9h6rk64510 + njShX3aKSoZGXbDe2VTHW2GneMsbGkw3DgcBjmd4CcCrnfFi3qZZsFfGsHS01g3xof0ItdEYqgpNnX5qfXqICFgWe0W7gZEF6EfsSTqa9HPwwNPMK7ueMCbSD7ZTZwqX2FhMqHWzhEYNrNzbUVpyysibs9Wjxn8AUqel73MoHK40pDbbzsB7VTafV + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + teAyF8ZTU3ctuEJTEQ41MfeIhXfNkhqNnSdU14FVZS + + 9CyR4HRAv5bcd61BiMB7vvwA4KCVQmXZQwQM5zmAxpNCvGdOtPNQcbqgNU3w91vZp + EuN0WciBONiUtDJ8tNbL3ZGYvPRSGg6kCMdzQv2FicrEP2MaPYWKPuIcbs4RI34dPhExMG4WTvAIxfLmdH623 + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN +
5Jd9OUiss49wTU2tuzIfONOMHRlV5mY3Yb4MYnfqjgOcaIyEa8MYWAKDsYrpkpkispXqM4I5kpam7IShQEfMfSizQJQ20bdkAaDeelbqKlMK3E1Ub9yq1QRJrHDjS
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ + iE176F0i0ZpIXESsbQMePj6YhHa7 + CpoyAFzqamhTP3T7UURcjSqN8hVaH7Njw4R6JioTEGNuBytnkkzD4Zidh5nQcbaIfTHQc5KILp4eXxChJbMO351kag2njcXqYEh2K1KniPC7e6oYh2Ek7xwiNzx7DupB9GDLzo0R5uYjAe9ShN4okBy025ZFAohB5Mew2eg7BejblsVC80Sktjknob2QAbjx + xV0Eb0fijqDDe7L6Z6raiOzmQhW2BlS88SMkS1C3kfHqekw5iXgBLPXt6LnHYfI60miKgUOA1 + LIFECYCLE_STATE_INSTALLED + + PORT_DIRECTION_UNIDENTIFIED_OR_UNKNOWN + REVERSION_MODE_REVERTIVE + + 0ejx7jvMjNEi5mfB6IMOm0EFYuPFFWyx3KWa3sPm7tFcIMNOmsDIk9gbD5QaThAW1w74YOi6hXaZCQGYibzucPFPMoSxFsmyYlCP9UNiKXamNQcXTLs5sZUenEEU60sXlWMuJzMtoWH4ET1xxlCZlp6A3Kv2KXZ5UDrv45Ys2xwyiq6PLAH6RNzNp4H9TG6Fbpafu0zox6XIwVp9n687LHMaLtbw19ccymj3nSjMY8mmVMobKwiwd4yQpKmq + qusNNn2FyGwH3KuP8FzEPXJLwra8Os16WlTJANh9uNIxxceGKFczDWd1ff93Ia2EoVgYJx75cHCJUIhwnmX0aaTpq2l05nEtiMrTbrYn8s7U2gqqCgiMqc + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + + 4ykkkCn0xyZQal54XuPbnFnjBXlh0O7WnjgzVwrt4rb6M82BuRMSw1b7YwoRcoFrHW0vksQgL1mp2o0w8MgENrMEP2v2i2lSYmnaG5qr6EI0VIp3mFH1ZlFGg2Ay5WiVax6QCo9B3RBYrS1NqAOhOuX4oyutmNpwknmXLnqOe1EFMxkc08tOuiSTIem41DAe0O3Mbtshm7W0w8cwhxkLQ4w + jLvkoXqhEt3POnZ3uN31WgpdFKQnOfO70bko8KFM6AuUYtXk81d49D9Gf043fS373nv373I5vcSlxHGFALKBoTiDLmzS6CZ1ZnWYiEWNIO9 + + -9223372036854775808 + L4bp1PCVZJBLZhR1Spx9mtgR8aqk + + fwuI2VmOxa4B0w4X7A9YxbB3EStO5n4kMy2GmhuLjqmjOi8VSiMitfd0ZGO4VShHjbnFkKiD2wWRO5EzfiRIp4IpColx9C7sOmZ86hM1NAStxo2MHTn6PXnreJRndYP1kO2jXGkK845ys8c11z0Jpf2DYT0cJH5Wv7fkFr4Ov1mP9yR30JMhYOUXAM1btY7QYeaDF6j27xS96JcYk + -9223372036854775808 + -9223372036854775808 + REVERSION_MODE_NON-REVERTIVE + 0lBtYiiroVHYTWyROUaraW7CYuud3Sq351w3jGnAB4qmSY6zSg0347F2t28wUys0AYVLxal8eLvZBByuJqpNpWIKYQgToILQzGu6RP6XttO4WeqFEPlVE3FCLOn1o8SXHmVq3Ufon4lciDRXl4KZZqBKeZMCZwsGSf6N1e4hiptA2cpfhaegsQTyHF2GbufVCdADrEUJVfcQst5JDkRX2KvBhy9k + + -9223372036854775808 + + vAw3t48suMaBzbPKJA0RyBOkWQdpO4DcE1f75grr2t3BFKdokd7KOV4CDa2kexwTyDSETc5OF0pkKDJWQQHxED9hN3B2AZN9DxFoJCcpDuJfZkcH3T + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + 4ace155c-6c04-f585-d9ec-d6a845794520 + b81vGtOGjAlglXc9RYRMtgymsBZjwtGHtH492SImkVCyKGHCFqg0HHe9idlOy1n1AjbD4LRoGtWr1wVyW3yvKMxVRSBpLZrdauIefzDVUzeW51uU5VhPHOCrGeQj59xfD7uSHZGBqMpoOUiTPzAog5PWjy8gHxnlEJ5lIDP9iex60HRH8r6owNdHdlPVKd8oW5CxJrG1x5ZyMQfU9dbyTo76BXTlaTBYZ + + -9223372036854775808 + + zogQ4jk6MbLVGis5249jzv2Puf14aMiJaqreCLcoPPbv0DsUHCdh776ueZyoLI7N9zULcY11OcxOPZAwtNFtMDX1unp75xVe6HRaFScl4B1TsBiOoPh3t64Xtt5ySSF + zw16h5slGt705hOl6Xor3shwOeXG6Cxx0qD9vXv3ru3oLKJRH8jDsA1gOYXMsmblMGu9EZc5l7l6R4Qr414xt5F94uVoQ6JuEeDi5PfrXApGxf7B8b0BhGKdaFB1Dlnar1swIAXxafeHmlbvpb6GRRL2oeVUza40bwpM6ej9txIQLTlaXjIOatIzHvl9Gp1RNqvMxPV0evIZhV9ef + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + ql0I76pN1b1U7txsM60W0arXT0IYZwMhSFZRLgEFkFrr0YTNWLBWW2UHVuxU1cb + + BKr84Kf26lLRTvB3EQcjP2iCSR1WRGWsqfAuZHw539OWwpSa7WmOYEqInjEeZszhz1LqJ9nMabAHtkJsg5h6CzOZTl6K + F2fGNFpP3bZ6EyzYi27fbdRKURv7XgMuaTaXrAEmDwkh4U8eOfuRsdte4ZlT70fhTq6c0Dqv9LNdxVkd2O4u1xJYo4JnWZwIhvU98lEh6jmv6GI8mMDobeesaPP7OeP5JB6ROL0M4mh33ZbhDGFPUL9XBQ + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + PORT_DIRECTION_BIDIRECTIONAL +
Nelw36wH3LZ6GQ9XmQv3KgczJ2v1788MnlbikzZnkQlSzuQVkdYXt2w542Y326IprTzLkr0x9dpII7vUklJOn8Ls2Jn4H5u0Q3MbmEIwSZes7CerXY7lYSN0B24a8qbYmX1ItBedBlxAXM1UC97sTMsnPoxXPIN3xHD1aS6L5EdUifGMgOe9AywpW4eDMUGcBc
+ nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl + true +
+ SWITCH_CONTROL_FORCED +
spzJaReW5NG3pGWgVT7dx308J1n6I24brwUCf0qdOYg5wdmrYlEnoxv7yT59Nakfy6JN610MZ9Swm6PcruzPT5OrQTADVMKtKt9Jm9veinKwlrIMVitGn9053AIQftkZOtAbu6pNl1bHsUtg4PWjYWo1p6Kwr4ngpYjL4AqhBCYVok3s9SL7G91X7DtzzRPYH0BDA2U3ELY25Um6M75k8YifB
+ kShy6uKw75aR1PSV0TtiMc1nDI1XtJtFCK6A6I7dF94GQPtIIX0n1TKEuLtXvWuZyAzFiySYIPwyw096P1tQVempZIemEId5bNKllubVjImPIvWpwh7rvtQnbWBIFPNICp3PTfL5XZMxuAW0S3kfo2CsZe2w3Pex69mRoZOdYBKk3ydNtp3KrFciLeOOVUd14sKkrzyi2iu5JHL46 +
+ 25fbedaf-00e7-2908-fe09-07fe37aca56a +
BPhcCjbLy4k329IWXYlb3Fk6h9eoll7W2g0wzbaZfu29wKXlAiwvXQB70Ivd3u2XK2tb6Dbl0dnwQkRqvnOk5prX7X32j5R47dfdIirIwGee0XEnckIiK97JYaEi7ne7AlkjEDT2j0gcXUza79kRjrs
+ true +
+ + 0itVmflNAY98g36vimK9qqCHkkX7uYAm93hvivbL + kTKnS7x6RGw9a5lu2sZT2lU6vhg0s1lNNX2F5ADOg1Qr6bV1EMMy0GwvXNniGI5lG70DHvjYw1hDdcwJZi9ZQGmFtJX1j2nR2fmBLyrhzIMENinEsxvi5RYysNrDIOvKWRdzhFQRnvvaNLO8abqf + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE + + a8aq3WV96ZN0M06C0tvDltQ4EM7I99Aj9KJdyFeFw1xaUDEU62qkv8o2UvK3wkmG4YTvv72T0z3MdzzbBZv7ZL1T9LPF53l116ww5yhY0cKdMbgf2Me1pfNy0Ce5FzZHyn5DOnBOze1dphtkVzldP8LPCZNirERZ1OuP36vDcwItG3NtD1Gs9s9MjOWCkNtmtY3xWz20XKtvO9ZjaxLbZMXbtLFNq + 4ace155c-6c04-f585-d9ec-d6a845794520 + LIFECYCLE_STATE_POTENTIAL_AVAILABLE + + PORT_DIRECTION_BIDIRECTIONAL + + 1UZ5rNwtFl50RT9IcjfPv7ukaXYPCoQEaHBBmZWTk2U3V3D0fLHCSbOU0MBD3k9dTKP8JD1VFVRtRulYf2sZ6gL6VnBYHKbsuSA5wC13pKwgeR6mMydSPZQCesAV4DfzoQ + UspPR9m0g56CRxHBeGsQUUqHYVXpjNO57dVQf9QvePZYmGzAf1q9NIJEDyVPdJUkPPa4QTz5IqVW6molgOn3o6zTEnIRYv3Nc5J3Ya0yAVmHhKUxqhtOfUAL9iu8NxN0vpVtzVUaIgJZ1vprNK8UwIGGS2GyslqXKlik8cmQl5Hms6F7IF27nAN8ClG4G61rjcLroZhJWYXoXvwxayEq0jyCE6zl4sMnEpGVgXEcNuA + + ADMINISTRATIVE_CONTROL_LOCK_IMMEDIATE + a8aq3WV96ZN0M06C0tvDltQ4EM7I99Aj9KJdyFeFw1xaUDEU62qkv8o2UvK3wkmG4YTvv72T0z3MdzzbBZv7ZL1T9LPF53l116ww5yhY0cKdMbgf2Me1pfNy0Ce5FzZHyn5DOnBOze1dphtkVzldP8LPCZNirERZ1OuP36vDcwItG3NtD1Gs9s9MjOWCkNtmtY3xWz20XKtvO9ZjaxLbZMXbtLFNq + VKYlQqFD00PMOdF7Lu4cgcrfIke67Au2kkgaDVGDOnhuBOBmixyrJRGj3VhavD5PQdSt0qYON7igVLDdi3EUVldY8n1D06kQb4bbu + + zAm4rCng4GTIN5Z8R0yzEgb91kEPI2Zaul6VPt3L9 + uPUlPLdnkRvo0xIwmiqlsVGzIo2E94tDLnYA1bXdVlBNSbkeuKrOx7n8niMxe72Zu1rn4gBZBcNtoZHKB0y10O1nYNUcMX38QuwUK7MmjrHzqhbThKUhqVFoAzsmovveR11B0NPjexLwOWp5ycfY7UmAtO + + nZFBFDd5PCEOGSVCnfWCOcAqnUAB4dXr4C3Jf8OWCkLi5yUkNJXtNxT2jlEoqBPvdK6kLNhn7UG4ssp73eAQLl +
2cZwcMdwSK9gq5GoEKDuRpRjSxgCJrtDEs9Q7neZZngilOyZy3lhscBcCJPlaaYOC0FJfTJe9RwuF4l57GerLPEnqlABvqh7qORFAsMJbadI7qN661yRJc69xGC27U1xIS5icRTf16X8o
+
+ + veE7j3c2v1QBxXUimsdszU8ECR9JKBp7HW71ZjVmlLXSAJaXbnhCapgMgioSTNZtB6usqhGD3vvveysiVBU503K8l006NSzhYVJgdqT8VhD2PYcCz6As1cAecBdRtM8jAKsF2dNXmiRb83GI2gaVsKawdnny1wKt8c8ahN7EYRH6MnOGDQuXtEtyTJ7M7RgfVgpcW + IUfq0UNHsjpW8Ssujldq0k98z4oY8kmR6u97oWGQ75FgQ7K1l + +
tIwRyw4Un2gw1ElHnsF2An1com1HHa92SFUibQdrStPU02tfv09XnaaDpbk6mt960VpcDuvnPkhPnDWKD5H18JExVRv9kwfljwpW0UkQ6txl6m5KjFDrg9Qb0ekdKsy4YXSZJcHHy63Es0gMxT5O3WZV2c8MEyICnBt6F2Od9JKBJ0n9MtXHhOCjSD5wbG1zhmxOpd2yWM9yExHqSw79cCs5fptq5uReJp38C5GzJHZf6GG
+ 4cd72b11-5cfa-9e34-94d1-42b54486ca7d +
+ + + VO8fNQx1upe1FO4VhHVNqvimvyiijpY766mTXLMj20kIOgv5XrKgWVCstUCNcAMiG03vLPGOQ1o + 9TC7cef99RtDE5iQxW05W3tHK9ns2LZcxtbJHqSRhdmNawvzsvFgq0P39dvcQugnXr7xRRg05CO70jHkHeA7ep2nuyr + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + + + b737f45c-5824-79ef-f58d-6a5a991aeab9 + bqA9KZHlOUSQMqUxttPiCVUnA2H0R7V3xvchmUDbGnTkOFRh1yrDmdSWfrW7yJ2576nt0SEyfxSVdC4eawJwJBlZ39YBL0HS6WlZO0pVpaRuMVIWjjl3VyUYzKrkC0cIWyzCqZqP19cNWUJg6Wb1uXR4zagbbtLZTlubcUSdV40RRBZXq2YMRHIqRZB2knU5AogEa8J5dBO44G + + MESY6cemdj72sSNbjUEFrcu3L54mWUvIyn + EsN1FY8Hi1nlchZRJbdMWaIb6CGH24gHoVA3LID3B0oN9nxSqKwfN7qLB6sE2IdqvNmgvZbZZzE8ObTfOhmBoMe0SHENhR5NwrV1q7ShGxqnAbuosQRRC6JmNf1W67JuyxnZEggcFyzfJ3E4TnVntEC8TD5RKGdj5AiJQqWvZnDAj9E4wrsS540QHXzkwM + + LIFECYCLE_STATE_PLANNED + + mhPaP1PHIYVE4ZsWy7O4bv9qaMf9C08QiXS7QzOzqB5utpi1oY5zu6SES7Fm7N4hCXokw5LWGQi1fA2DrZ5N5PjQOYcNDh576trCqdzZVJ0bcVGDMLqKsJAgzE44N9bTuCwVHXMDGMGSzenm0N6koyBXcF10G4T2Hh + g6BLNgjxPy + + +
5d1t4o6FHfbMDD6vAaojJdS3Bxy5MliJzj4vH2ahhm3VZ9irbGKUUvQn2osGCKh33myDoJUyXXlOYDf9c0VYnDlhUOXwq6zuk7ZBIT9xImlyRtH3luTI0fZUVOqlMZH7YGIHrJ615s
+ x:PROFILE_NAME_TYPE_QOS_PROFILE + + hQmcaB6fbuvHwwqtB19x5PqAi9JKzAuQrQ2Br0Juu6bSCBlduvKAc22ubD6KdBtErn8LoRfKPjDsMYxhlaJqcDMggTStml0NB8qZRyJGRe0D5qMqAvIE8vUggFKC0KhtKIs + 841Zi2unkhGMMoqNLd31SFvKhF61fymnComNiQaC7QgM7GrSLmMv298bOe53Erq9PEWZv6tuPJ8WirG3OkrIurTiFYejqEs7bgZGns24430muyhaTISn1ExGCLSUicUttT1IdVMhYEDlcVnXv8cxMK5gnX3x2XSvITdVHR5xvIKzv8xTgJiUln2Jd58721CCMHqtyvTVdDuBLTuTDEFQ1Ir6NA + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE +
+
+ + HDebh45J76cNsflTKgGg5pm1cin2irdZWja6ofPneTaG0nzDD7TBxgCBqZvJiIIeULca02x6NHMO5drAlcbKkNlLEQuWq43kPfuI91OXBtDyy48T8cDtRQewGA + 7EfjmnGWwzCl25YAEUBp3NVwELC2kcfjImu4J + + fd1ff4be-c400-6056-08bd-086e916d77c1 + + 371eda64-3aa3-f78a-2711-ea75d567381f + + gXtme9LRFlvM5VOHb3f8X1sTjJzbEP0MEl0LuLC1Y7OVUuuXx + + + 11FaVVsQED5wWYyzerb7piiMho80pELixqksdFiSing6mHxs8Jrx1Kbi0japXVzmeUOrz6bJmsHA1629PuGI6RT633oSRXf5JVoaUATgUsIVzK4g6CZ4lSbg + XnLMjHNUGAdlPvKGvJOyJt3co5eNYpBWFfAYWgKuIYPpls5R3UpFflRvq5ihnU521FSXNvrwl8VGsTxwFP3UaUqsSIJfuO9nm1k1wDxRElq66XuLExFOkX9cySr2zAiVtCW08mJMz9KFZ7qvE5cYVl2t5lnEVFzhao9iKSWjUyYLFggcds28N5BTqZpewZnGnwQZgEi2d8NKo4WBoRK4WdPe4ekB5H9k50j + wtoJBcuR8ito95sXa94fogIlYJG3BZh8tGRWKdOSo98p6tngCjnSz5epPUtiTKqeiab2fRMD0V36oimSBKL2HZsoLVHwx7LI9OKpFp2xkXDAfRsIt5L34drH00ep0Z79FSyc9tJtqmVy5fgzl1Ch6VZ6W5w + 4DXBnoNwRwR9KMHPUQgfJSoQGfWCksqgYnRdLEKu2tEM8du2VK9Fvxv3NjF7M5oCk7PYMrsGVYl34P5ZreEOL1RqloyZlOBGViwzKYg + z1Eo8B030aXsW5eoN1XqX6or5tMPEVC5W9l4Cl7uwXWs22II3y80EwjJZ6yvT2AH3WLG9KaFzZ7u1IcXgkPUI9vA7350Xyz1mcHvWRboIaSKS4z0goUYppqwkwoa4Xbi1KNYtQecT6OD2nEaDq03Qrr2XI4Txf3zRQplzDpsBd5vsJF52F0S6kM3UROjYRSQA939EsBfFyKZahWcXPW31IZVrFeixZ8Z838NvBU21x1b + + + mGp6Saey7cqd246T06Gzd40Q2bPaIUu5sL3dW9LVlb8gf697cIHqEH8GSXRsJdpcRlpNuaAIdIYtO7ATPhblQj2A9L3SYk4PFlu2n4KBEI4lHEepOpK + + + 2021-03-16T22:59:31Z + 2LXNXoFCMiUYcOmQrP4ehNVDrsPrbKf5ncSksqXeIJ5MxjCQ8H4hmRUFbJ7mlekIq4VKuKY4lVQTetJe2GwgxqVJ2UXn8hYqmLaIv1NQWDB3YdhSTN0ieWTgIJvJ0t9e6cXB5KkTfNW60eYLTZW7NHfnqD6j68x5 + ITaFSBTpiwi1PDqfuL3XjYgPq0Gyxv17gbM0ExhWVAYK5gZATUx5LFMbxsJ4PC35NHYr6fg2P6EVmwn7iMc3sZ6RjHO1jRY6rWqxcGrTEYG0m3ZEIcA23GTegHfzreyS2QpeoJ02HGU3CTHcX9e0Q7f6Hmx8A5SDN9JbSJdzi7uUT46QdcJ3bY1SczSNwKicU1nMDBeVAIHtMFc0RV + + + IE7Rp2CgmG52Us4hoGSVg + + + oS3WIfu93ED7dsrra69mSWJqxQd3JVBZFEWgUihPWUO2e8to6DKYrtoYbtTUgmUOTI4F0dmO73Ilb4J + zl00OoQ0KCU0YGOJgKo8XLPWOx9RBK02502UhLM1fy15fIPnkdwaYl6EKgve0ogYojSFWwyb4sgb25zmb5w1iDG2L3gDrxBQIlnERWPOg5Zi3yEeD3fVGVQjZ6OiDi8dDoRncy3sw2KzBgF6jUURIK2zIRRe9SrEgj1kR4MnZoOAwtyQgszY4CpNt81C0sg8Dasn66K5urx1UYJ2iiSnUh2fi3Rin0jT2Lg0KSY6jn76lI8E + + + LIFECYCLE_STATE_PENDING_REMOVAL + + FGtdkswGAvsjhweTufhRlXZMhHIOWoTB4eGoG4WgAoARNGDhVU09RZN8GoPuMAXROE7uI4Cak427KFgyzgzj7mj + + + + TmvOaMYjcDMmIBLLQpQOp0OIK3UKjl84HEKKiB3ueHQPiuA0TiHiinT2jFFC0NzzjjbCU7Y1OHQZbiZWBy6TWZOfwlJw8aYku9Wgg + 2hDeepUWehiLSzVMfa4xg0dZoywYoaVisypyQjn4AFHkfD6mF3LW3YNrpkqFudYOMnfCyCy0h7loKrCimneqe1Rvd9aAn0g1nvDV73Wha9xNAa5XxbfD4Y8i0jKnj0gz + 95tRWwaVsDmzoiq4pXp8lyjjSFlGNBkXyGOmcQaxtw6KOoOdledHEwSo354RHgO7Wuu1dEyG2EiQ27Vgl8PZxznAFjjerZlouHpHdXfftyXnx + + + false + + + K89xI7goDfSdbnowriv4XECoM3HUpTr21BrCAH05WLa88qwrI1vFx7Wkav6soxui0VMsuExipAqp0ORBIm8fm4roAxQY5c857UqtzXMQp4giTZTBd1Iz6aQGHGwELFCKz2e0R0RhWZzPYki3l1DrblZK1opE3TpuVDnEveVjdm93Gj6UkBdnWd8QtpuoiTS5o7JLlx5qL6tkpseC3rZSwZIZo4ny + + + YuDqnW1O0xv0j2djNzWhANgoI3T50iHYNkh29iJ9Qe11gedVF1cfOlwpohuoz3fenw9wGSxo6yifEv2jo7zdsXuQeQeFTlU8R3xqN4GLDYShlVtK22PuRjk59qKUMw2vrzN6EuS9sKiGxLqzFfVwq7try6lcCnHWPn2lRUubxER4q9w5oruGzX7ZVsbqIKmx7gKY362AKTwa328jmu0 + j7MfsXF2zTzH9bxchzM1lb4g5czryreRr06LPDNpwe6ypvKGXpHaALqFPR7njdfCedn3Jak7oiFNOqlDH2NhOdOv4NTf10J7562O8nWoxt3dToQsrDJ7IqCFdnM6nw5tu89Dn5TUzX8klYNEuoD4G8BUvoSLMYeg6nLllFfMufYP6Dms2ZwAZ8mvof8a5mi3B4oOBvA5LzMR48j60HzZHVm5au7fIqicuy054t2P2Oy6XJ5Pqw + + ADMINISTRATIVE_CONTROL_UNLOCK + + q4flLH3f0Upi1yKHMFkW7qjh5MKPqadQ6t3S27721od3PXCtuWpteJKcnv1Nx6vErqouxnorMBmtqQWMEmfTX05knY7U4uqoUOSkc8DQKZj2H7PltW6iObC31BY65gmS5echmP7YGiTfpIALwH3lKGoM9eK7v6ZAc3JqKQpi0axpSZagy6BbM0XN6HUBFL3RG + hiuyAuIZUsRWJh2csGcpmjY8MDUQmsCwL74dBF5nZWcI56VyNZX1aO9Xj3NGoh41o06SFb7FZbf5i2DXUsY4g7TA3y8rQck6cqQKuYhl1wqjrVgdge9oe3YhtYAb2Uafc0ZGQg2SEkbX8kaoqkMEfDVIBvUEh4LuWCaNS4xopImxU + + + tMQvdx0FqSoxM7rm87URU4UC51wv6N8zsQWx + mIoqU35zfRD4KB8kvi5UZUWzVYz6Ct3YbkoXflov52zPDz10R7UITI9GyIMabQ9f2p4h + + + K47NKBIohT5f8S36hBbYjPwErI0BM11xX1kzCVXTGV0GFVMXoYNHFjd7TdAG6B53CpC6crZSeRzUMdR23wBJPOIB1i97Le2gDEmIYeAc516K7PMalgL34lE6DN5h10xwET6u7 + vSTkJiUYSz94NA30YpAfYN46VxESN3DiVwDwOpuyQDuvdyn4XXjODoUyNqiAtVTojoUZFgqvTU0Ykf2adeYQCSgpiqSLeL1p1NpG3H3OtVMOaHYnVO5pGdOQEytKbm9c1 + H5ANHHvlKQBvLGRhEmWBvPB2e8OkCN1jSuZr3mNN4gbQWU7s844ELxyZFmkiadtUHkmDG1iLhlB6fAygwuUi2k9HHtRRHdDgxRT6S4R2pk8xUyNj3zt5TCEA6ojFBPV0GH6rDXt29BzW1ef4NA1Hcy9aWlPpaDhIco9PdCJf5jb7xi3dS5M4DV7r8WIarZTDf2klx4AC + + + + -8576656451195163.0 + LBE3FRNKDRfrYyrN8C6ZnK7pWsOSUj7xUEszvfb1YikPILCQfIQCkXU9hI1b11IOFaf2hr3fBf4kTy209SDlHpuY7w11pJP4L462n2aZ9eb2Nd3OYy9FXEwW2xXr9EnMBtPYnZPx5SrK6my4UIBJe7G8xvzyaWkLh1BxSj4YbnA9K95wJHgPGOX5jwDtkY6tZI0K1WI4kaeWjjkU0sJzgGEA4aVg02KZCKBvHbrTmFHFZ1sRu3iC + -8266177001844291.0 + + N1kCue4bM5JfUU3inanGYkFyOau3HXsmQNQcTMnGJ6Nv1I + + GZ0XZUzQobsTSDcDZScxJeZAA2LcE + hdzh2q3BgrMAcx6o25gfuZllsVgdZMF8Z6hTwkmEL1fXylmsiCHNuU0OHg1H3yHUEZOajaO5bV2Bgg4rTDefye37nWOquok0n0aGbQDeMGQUWMlHhrOPGJX3FDl11x1gy3XBUsPG0xsXjOwBfdiNW7IuD3nwt + + + + EQUIPMENT_CATEGORY_CIRCUIT_PACK + +
ZXcVGGiscAoX4kz6ZjbwzA7N71cUmUteKy1iejKiL0fHkGOkRZIqrP6qRic54FbO5c6boQt9QIR3gxf7wXqPNwfwGrtKYFz4RFf7oJh6j01sxgrVeJKT7ZhNiCy8h7c1Ek82Vh16h2yOj0BpBlaJcrwm34vd3H6IT6COovNxyleJdP0PbaqftWCoT7tWGzwAG1gWw3tW
+ + 8v6ffStEPTpVfBcHPOC9GuFF4xW9UuZU05a7PDDEo2rDwwclcPmSb2ygzuhlQggIdiH3NkzbfTHLhTYtAlmMfUUGgb1Yj9zwjgr6tTaIERlVCjodwKRLwLrEWlD7m4DGkXMNQWnuFIhaUFnqi64ORnlFIYM + +
+ Hxmxx3AztP2ijrbqU7ZmwrUpHQVDbKML90aH4KgprbHLuS3gS2CgloF36syi4c3ecdV8P3y8e7TI0PZKJt + OkugnJF42gbAhAkbO58laM0jSCl2L73zkpQH8nDaEHCNhXQ5UYj5CbguNtwzsr0MQItY671CGDhXs8UfYdcBps5cNuDfVw2M6nCcmDG29YZBYMQWZ2xgmvl1RYhEmbityVFVqePz4H32tTYkOoB2LW4CMl89wrCWm9JMnzer8hlBakNQAoTlcXPZiX0Gou + LIFECYCLE_STATE_POTENTIAL_BUSY + + 5Sx0YZq84u3iGg5HX076feRP6GGIi2AfU77KZxT31Wdz5a82af0huS7sqFbIHLPtLW6KtRFmFKOKUWF4cxmypl0Q03qAP8Vs41cqSRMytAanpHjBf + 1wS1eL5xdMF86J2i9U + + + + 1GkJpKq7DnIFuKn04TrDFc8tKaTsJMLKkXlKILJd8jSuV8m0TNvr0wUCGF4prH1Mxmo7ZZc7j4ue4Q6Ywupo0b0y + LIFECYCLE_STATE_POTENTIAL_BUSY + + sZXQrGzdAhCtGdaKDjMjKkH3sosEP8Ji7y0rfzEHR8apmk9ZDNbfZKar8 + + WYavRWU6c15cd5naztehAcNWtbWF3mwZkGn4vhaHbfLgk0qLux34JQS52GK52gXfWkjjttTEIEV3FdG1KJ5mAPruvbrxjoM7A5r4ykA9 + n4nBKodulzWa0iF3J5m0JusPVof7ZgXekdP5B3rXufZvxxq8CN8lhB24ZabQq05LdMIPH1EcgDzF2ZNEMOSVhMZ8W2ZfVWS8IAPitluJR3oT23y + + ADMINISTRATIVE_CONTROL_LOCK_PASSIVE + swzHUTvWxaxQyT + + 6XfMcdaB8J2ODAcIIbEKhZpGMq5WnCRmr68Dka6sU88xAl7bwDVGvcmhuj6SVX6eWeKgoQAaRIAr3HCAlp8Qtu + YFXItNOHJ2rZiarl19VkdCXFPeNFA9xyOu89hWRSQaJ0kaldkgypLn4AtR83SFtG1BQbpz3fBN8WXt19CzyfWuPidPl5mPEoqmzQVuXw95k7re8VNzaC3RUhH7m3W0jfmSX9fUyoSKnbYwYM58g0Z2hy9wC6wVdLGaMNWkbG5zR3XHHUPPUHR471ABZYpcB5eoKaIV + + CONNECTOR_AND_PIN_ORIENTATION_MALE + QDG8Cf03mrA3aI6zWqIOWnZ3mBeFKIDsdjAQqsLMTdQ4OWDKeeq2Bh6QTcvvU0X0kpIKRlxKzfOf3kRhyic1ziRsufXgfM8rbQ42cBNDItSLNBUdT6flgYFK5vTlh1EtSInW + 2zTwjwbUrpOpE1GCGiIbbVt5zOPabLlecfCvLNp4c5uI6adNsNQwIbB9Zij33Fh7MTCpy1uD7Yl50yKsdBQVMjXEB8HwFQDrBfR19dEg30d3qYnEzerdxgJ9pixW0bgBi7DrchHf9VisLF6cTppjG1kXjRTk29Nl8qMcAmrB9J3Uh162rnl7gFWApHMrRzERSj4sxn3y7Zkg0iarFwqW3eosWaMFBiwtBsN0QJyPISXIa72I +
bia5Z0SyJOGCghteGxQDL6fWObNmpfPBxZyp
+
+ + NMygWK3FkkyxovefFbfdsJH4fVd8sIcfuKnjujYGDwd1TrhyvoLX0kTfg7fIHrQcc5vyolf1JsVCM42hsF6sZRH7QWIygyCsDZ02k7V3AIxeMzn76tz5c95VXNlddXxQWyK8Fy37gAdV1A273B48C93AWoF9ddS1Du9 + 2cabMn6NY0MTtQ160WyOcdYpiIqVcz67D8apv84t8InBzgzrd77hdXHvFZjKrhJ4pTmUTqg11DuATWTY30g8QPwvOP7fYQcfBy9uYpnZUKrGGcwB5MKVt8iaPqpN8B2K13e0luRfebNUfknkY77s7iCWITBInDsozzgU301h3P3i1qvZqCrxUVmuPXd4txs26JO1BPaEwdWxwrxWWQlQEHdlx + + + BQZlwdVb3QvUg3rqYyoNpxPTFCYZ0l6t35GratDdb00s4rKUR1Hgyo250S5T53e80Vzbo4oA5oU1HwVyxuHXTJ3Lt0wyVLGVG76WcnohDaidH5L6zs4k3ZYwRu4EfCzNKyKON05ibfvSchYLBUYxLW3uq08yCAle0X2NYZ596B1iKRW + + tQME9aR24 + PgBDlHfrJnsJs9HMjapyySocoqm7siE9y7MTO2cphw0JFHwRJNp9xFlW5H3qZzzpzeaf8eFpKF9ifF9Ykq8R5lN33JtUaUcB0eR8twyd3zn + + LIFECYCLE_STATE_POTENTIAL_BUSY + + 5PIKksKDk2di7qfv8foftvasEL9r2CE7rmRMGtp1vubuUqZ2xg91Ljth5CB76f6ytXk1qB2N55iSn9MVpWW37hc4LN3RU9pf6Bhw4jkahu2EDOz3CnYKwaOhYS1K1q08UhwYsQ0Jc2oQJPLldB5JLMTBEUmFceF6vcXPUXz70PPBEsOJ3MlOyei40wJcKpb7t8Wn5nu + + phXEPF5h0ejkGSAJHfbk8XKUGoThAhyRyvvn2Aw2GPeeIOYh49B4YeYFCJO40mWqKjNMMcPs1VzJKx0GyuKxIA4cjShb75BRogD2skvug45St6q1AaqaKmmV7v6eAH5RXITq3gMbcR3xXlrpvRr76OUdb0rMzwvo6gO1xscBk799sArPjSOpGIuSAVw9jTy + 9eryHw2Tvb2YDtFWmmeU4IExw2GPV6fXdznM5pFAAzq53Y2hk83gQINeCm4qsjfxSCjP2QiuqIAlGuCSCx9k7WzKiDaDOpazTmgV4yi + + LIFECYCLE_STATE_POTENTIAL_BUSY + + + true + true + false + HOLDER_CATEGORY_SLOT + + + e8gPQqWBBEOI69UvoTGfdsHq9WvcI4dWctLUUAwn6cX4mR + B0Zv7nHDZEQQ7zRYA6IX2o3Inncbh1FTTEg11XwSunItOrjox1eri99FwdQF7nq01zTVwqNSFollPFKfyQGQZInnV6UUtdNvMGia653DloZ33BiujQkayIxmOj8hwVEiCWtAUw67M5aIGscZbo1J6yXMJ6Wg1AqvpT6bhca49lEHFQyQ6zAd7pRIvNYxgp2xa0Ik4Sgd5UULCkBIT3NStFBYsrnAQi7TaHd7stkxf7iRrMzdPf5aUG + KL7SYz + + + + 8757905308121344.0 + gBfLNXP0TTlxO7Zcm5oj1C3sfOA7E9qUKFxpCnpn8DUWKT07QpiR1lcg1MfxVFjykRXO6fceK63mS3lAsEkmZwu1iKq5hKvuBliHsuNctQydUUFmqZApn5ixPJDYl0sWdLvF7iRA1iFV4l9ucKLAP47wFCu0vXOIAboHl7amhHhl2rP7bBH0xGo4bSWGHCo9NMJ8MLv3sEpn56u8zb + -3712017184848307.0 + + B8l0wOrBZfxFlEWop5N6Y5Dm5j8KlxdOxyG3eZx5e4CsAyQRDDQuAtQxFRhSguyNUeR0dgXkczMM0Cwv7mZHHIeern + + o2U9QAIkZS7Dt8hevlG9C37IxfaAg8kE36NLHw6yg5bJdtXIGvKirRSQ62rm3D16JG + i4PQcV2V0nKJV8l5zcXpaSIxNdqLXYu73kY77S377FI2N37e74wiOeHBkZe9XJgSVe026V9dASfgNeuVb05Z7MtrLHAAiQldXdf38h9A1gQOvdBG5GF4k0nXAPqSyL6vYdq6uzynQh4lmF1reyoqrLo1BOT1rZwp5WnrwNPe4TzqqsKwS8XjLdkeT6fk5LB2AQu6DjcA4D0m5CTXKI9oVtCGzS0xvtr5bV3O67oaKhxPTiFw0GUN1o + + + + HREuDKdvYtsax1WcTqIpp4g6DQcShzYYivlNfqi5UK7jD3vpldOK9WINFUxOlnFDS0i0qAXcc5wQ01fm7V68J + +
ejIIRJ2YFtAQYCtN1veNRuAW3SicC0TIbtqUclLSOlANY3sRqyEa276XZg1u8V4kov
+ + cbqRDfAy1Vfr1xv136eNnpMQpIeu6AkaMK1hZuQSh5bbCGcxFic2zYTYy7tEzNPdpIvp4l9milxMTBjyUvttlmkTlNqUs70RPv8MIa00nxMg0XHUkagFoAyJfQvzXviFSjrAtrAQQeYQbxDvHL2Xdtykj4Thr3 + cmfMHyfxoto6xVBUvmXszq1TBXESgIysWN7Edm3tHrAefb1KqY4Rg5DRUhC3R2vGQCkVQfpyzZEO2FqkvucDsPneYZhQ1FoJ9Ix0PWyoNccHK + + ADMINISTRATIVE_CONTROL_UNLOCK +
+ + 371eda64-3aa3-f78a-2711-ea75d567381f + iXt6v5eFrtdYbRKh6yX9djrs02S0shJL6cJCaYhtjurud3DcBAdOMEhMy1M1ioEosfSC515gopKBsfFWQLKCpToQU3R4jntLudgAfdQDCt6XIETqpv2GpjwbefgxCBi7Oyz3MhygKxdlbYLAuGgLZFW5U4CpFMoulXpZ6QfJnl4ybH0Fn8ieN7bIbNZJAn5NcuEicT1z6XZixRPU001N7cnaSeTkBY7FlDYxoRZvHQFeIu0IuTntYDEQRx2l +
O9hUuXP
+ + 8ol3JpYPNgQcErL2isytxD4QbqFrWMI5a38LkYB76rjLSXN3hdwPRtxUTdlHZ3M1YMMjKniRGCurz9uQn0 + + WfbxEkS2z5vBWvTrwyza7XGZYoxBrUxf1IMF2wAuu55qAQJZgi9n7Hn6XMHgG6wHOieIHOcbU9tmRcd8vfvuWKAMw924fqLVJ0EiOItAKWPB8UJv970YRsKoCEsJ56FGYbYELj7vfW7fQILSPDQz5sXzYhbVfQBdTrSEKZ2RN97vJKnzf50cpXMg6PbexFrq6bWJ2YAP7zlJjAayyaLX7 + 55ehjLWD3UOZDRY6yXFTyZmIpUS2JRrPXxY8aUD5Os5kbVqJKXvjOJ1evM86DAVsZLt2F67mqcyBZQdCNIVCjOIOsQU6iIyit1k10rfqwN2nD7ZiHMU0tuOVlI1DqsNMlZNlj2EPPy4kF4CmQpmjT2f6K8K3spPOhu1AwFhddlpKp1 + + LIFECYCLE_STATE_PENDING_REMOVAL + + + true + false + false + HOLDER_CATEGORY_SLOT + + + 4nyzf8V1npZ03PKsR5QSXroOAqgzQppUMXtTXhUlGTdBAX3jUM3S5ryxSO7AdouReQKb7xwNqKoTzj4uX8e3rMAbAzLNYgE46gf5NES6g8ZPj3bh3pkvbMGLmsqcAWgy5nDS1vQhvHZODa5Gsh3D4Khi4zmww + 10JEQ82A7x9 + 4BZHlT4c2zT1fw4l5wu81qKiAGSWcgqgJiP4bT85k27Aq3VnzhwsI8LiPv7TDx2mPRiSLrY5tXxL0k9rCxTcF + + + + 3170529762573547.5 + umTt8w1aKI13tEujCPg1A8mBzY8kaGJwUC021T4LBYGWu2f6Rv0kvmV4kWhmu0SouSjvDn97lH3QKjOBGOV + -5523740738829978.0 + + Ipb68RBYiItdFhQMeI8e71qV0Rm1kJoU0zS8jt6B3rPJJxvP7v3eot2odgqxRGsR7c0qGYUJiBs18PIgcLmA6oZjFhJoX3g4fgnV6hFoSZhSHZ0TCnmBLdUiuDHjGXfW5uJ3Dgsn8JgPBgA5DWGh9Bzv68OFXWtUi4YWlqjt1ziCISIdHouQRWmQ42nUQQO9UM574oA6QKAqviDcz82i4g80jvU1dBa + + 8mxhI1htpEdA1RYaYbS1TucA5TgT5ju5F1ng2wJjaWUcNKeDVYFHsRhqCpjzIFFgGUwAq7TtVFFBhTe5KTMcDVCfkNP3smb0gHAyGm1BTycbkjg442gHXLP9yw4TSfT0WmquIs6t0aEktUgyOx7DaWNAkRt47f4VBnibPgEHqbUM5a + MzbpJ04kkWFpVUlInI0ypg57zg1dd3pZDApmAlyV9ec40pFo8FWpO1wn9pAnlRmYrDcUZLH8RT5RaKfih4I556s7oUuJLIz5mLZdoylfjq7t2mEkqepokKnAERbizKfNw60UEe2XE9iznWTGaa4nUjXra9JBTYhh4h4Av6p2fHBCEmaOw6brp1Szat3VjkdfthHZn6TuNuYrQ98efbFFcp6eK9aVlf2PoJGDPz7DV5WD6WRm8x1cO7rz9tm + + + + nf7kwIqes0EXbh1Ch4UlcVeni0pwBzwZHvbddBjyt + +
cmyiZHUU1cBPt5J3tocyuxXeXQd51podMXnDwapxm0fPXYKqeWQAlNPavU7wjwBXlZsJ1R8nRn4OdG6kuWUP
+ + 6l506aeO1hs28fOjZ4BIK54bE6FntyMrLJrSTFyMP0OXfD87HJHjPEvlK2A5AnwmYX6KvEwkwl9EQ9LpSkIzY5VI8nNICbWB92lwyRQX4RBM0e3KyMkpR7ZZmFAZQwARrNnRw5OBWhfOvjrW5LdOKcG6Rg5AExrXkPHRMnkB + rp2KQYHtbo5g447c1zQz1GLInumKGXh8fkS5isrmQoCUsBYubGV4myEB30mBYDJdXu + + ADMINISTRATIVE_CONTROL_LOCK_ACTIVE +
+ + EUKpQOM8GMyamUpmRj1Hb7QhAJskBoxfaiw0Ya0wXzGjlXy4hzMkGuB8eVsPjSWt2kl0vewsF4D02bWbDAvb5YkjUM05EOrG8MyDSWXx1BpVEe6hOBtTrN4lr4rYSSwTw5ohTmGMP6HlcNv0gYMIDQVWNeUxYjqngHE93kWKiv5ubsnji11VRPKw3w42Pmh53V7Y7VAqiyMt01Nj2G6UvQqrfml4JC2Ep1DwOdW6LBAE + fXFV3zjMRK16XXPrZtQSYmG4bNHMfloui3heuA0ecTk9Q9AIuislF9pQO6CVs0pCWGIq9AEltYncZPUm8eHNn6v347YoZf1NOJ6XcKaFBxRsnDOnSna7lF3qE1Ov9HjXjpMv1WaumUXBpDY9T09excEb5ly62R3l8HQawTwKNll4Zb6KbfYIrvLoQjvS3qeb0WdwPKgu5 + + ADMINISTRATIVE_CONTROL_UNLOCK +
+ ADMINISTRATIVE_CONTROL_QUIESCENT + + GlR1qC + 0qhZWjMgeKRyr8W36pHg82SJAeABE5swvKvkV9s9Ljz5kn8qMQyUKrvcx5Gb28zyKWKF6cGJofOICP0gxy29Rxlov1rx20XMXHkVM0w28dKC2CLz2NIUlVaQPCfRudvjMH6yADAIIccKOXbRDLLYyVGnpN6U0CdNjkdTPGtxSy9Hncq0X3QvQoLgcR24tfRFrXqgDMNnkW4H0mAXpqlgP6o1Xq + + icI4oc5C3d5zDbucyNiXWIL50xrXeRnw35tr9yVcLTDhW8tmVMjJmXGmm7bBQyZTwscF08KETnVPvgbi2nThcrDyrH1h713vlf3efNK8axXyN1QIoCZA3u0m3 + + hQdTjSSJJCelJCmg3dmeJ65IwY8QUQtbGH4ZrXA3rHo2bKj6Pxkrvp12f9KaZddxMipe7RhqqxsC9LIQa3hGsiIIkkKjxXJk70qeRzEi6ZU7CuXNx7tSp3sJncVU9w6hwonnXUx3Tj2vO0id7D5oGx03BNQLjOUPdh4abC6WV0sJ0CXZgUgOkgSV3Ayegs3tC7wNJuCFu4gvy5mGSCvcSfZN + + + gQbpoRH6Zhjs94npazdRj0E8NmOkYk5628viZ5gQmzavDxMG6ZpiS3qFhfRf + O1M2tXy6mkMtc4L473BpitwJhS4eCH2iBOl4DT205Hl9L65S1H9k2GVbqShUzjd20yYvj1vgAIq + Gn5I472YNP25Hj09vdbvD20O3o4D6mQNKVnG2pxH6zNO + NXfS0Cn2DbXT7sRmiwY6Tw0a3Ahun572UmMUZ9PucMfbf6xpDnvwUoHPYYcdVjfPxTBo2qK65ZhkYHJ + Wmt4JL + + + bhNV4RoLivkzHyyTR830HTZtVF4Tsb0vkNjhxH2P4npDNXxFXsxFdx0044TwfU2AzlR6ULOY05BOU0tSs0xypxytBsSJeMbF72ETNsROxkujlXbFPAd7ZMst6kck6nZ5hDQWXHCmU6Gf3RMLk0KjEcMKpY4ndVluzbjoLVLF2rMXayAuqkO4xAGOrKbwywT7Acnl78S1zEZK4zevUUrjn87OKaciz5h9 + + + 2020-11-05T00:37:40Z + kdqw05wlL0WdNhLEusQxJDb4xH7OLBy5GQBHV02ySQDxZocmIUTrp5nWMnCpY2mwSYdFQ7dAXQ8P6cbG648n1nbNKN4APr7Hhce7krz99HY7L1NJ6N6 + ZQvyytoKGbVN0kGuJAUlyZdPbboVElUD3p4B + + + FmhF6ifKhRGJX3vSvGfvFV7P7ig5zpe6DvMJOTlXC2Gz53rsJyPotX6tfmyGEMFhaj1Y4eNG8mf6pzy17gpt5vOkKeSo0xF2IySMFGsN2ITj9kk8ACBF7pRJDJ7w9FqR5jEKZYyTyr4H + + + UiduQC9bqxtCWsCZHkFlll6N1LWeQJgC2l7KP8N8y9KmBfliz0wMeusf7otX0Cs2XrE + zjN7spt4EGe5HKSVfk2mAvcAZEuP50uwk9EMyZIdGXafz22Oe43PrfhrLM8IMC6YLKDbClgaarpKtjqAnthGAyZdc7VRJ2PmEkq8GGiI7Hkt0L3f6kWHKNUXVIOwKv + + + LIFECYCLE_STATE_POTENTIAL_BUSY + + a6JxNcGLHpFKVWxrFrIzWnDpmpmZhntrucY9owU5VrHIn61VxKmuZZLdpZdymGRIKHS0dEX1YwBdCD89fvvem8rL7Ebmc24OBOOHtDIj9jwDOFN3aahwjBai7dEc8B0JpHqKk03mcAZ07E + + + + pIpOuu1ELWqUzg317L4dPIqKEpUVFKIWs7KWuDtfAL2125U9IQeyzEad3W8AGIp0Q9PcFir73l0XjUY1KcrbRupMipfZ8ERQFG2cQtjMPjJ0dI1QMl1vPia7IpYQVQysoA + 27tcqL6vgSm8sY9q0pRpHovUeiAtIgVLfhXx2WUiO8i86rr7QiopHTcVbMgTUcw1tmynikxYsPYygpxYAVn9Oz4RdcD7o98Jvy6FSDDksuTALiyleOuUfqMtDhA1qBDW9JB2f7ezt7aeqIAwwWqMn47SlzLEaoAc03ef2sOvsYKKzcgX0yBfvI7IiTmkhOwhSKoM5dap3U9CYhAYH36cMdV469ggY + fVY1CaCCncE5ZR7uGpEFZVwHIefbCPQJLGKfQfS6robifaNNsjsrfQ9X4g0z6IiJhVY7aQ5t69Mljz8LKt5Zj6PgmHPkq73H2UG4CMyJVk46L5KvyPnJN4Z9LOu3WpCQjbVOPlxCFtIiykNY12IO6HYKokFcJa2VlPJa28MHBmR2Hx0IzI + + + true + + + hHdF0OHaOVH03i0EzzXkUXf81PZ2WEY5d3D5Skfy7Wy26qzy0wSMlZUnHThvp7BCa6H2iPsqD0kCrTarpU5DTZS + + + y1XSWru4PaFjMcNIta8qxPi1cmUrmz0MtXwpg1l531oP54pyexRLe9NqozJK0JotHULXN6VQZjx5nOvuem7soULMlmoe6MzFykuejp4iBufQiLkwZsRneC1sYpGW3ftCsYQLfMVI8bzrOLPNdG3ka4M9ukXxrr1ThJwwosfw + GXjrFYxl1Rw6vxsPuRgVL24uyBK0Ihno6yHLxeZqXvosUQ9oAiclkgHSJsLrB0HHzhl6vkolHNFBvPR57Vij403NkG7VHOu85P6t1uGI9lbF23C1YNk2FgIZWPMvvgDtYJOZeuAnPLUSGxTxc6rRm9QaQuGeCjHA3ns9R2wyFrimQ4L22c + + ADMINISTRATIVE_CONTROL_UNLOCK + + vPRyh6 + B3S3hF5c20x67koRqylLBsQCYxtwGA0hvKdNiiZkaoraIH18feMIGulE2O3AgVSMG5rYfiaqGtAp3tpaHbTnG62AUX23SUHqR8g7qjp6MRnPk + + + 0LBwODaoO6Mt2fEoFufPdyrV5h8RK0ZCLA0rd3QU9uf4JTsofz5l7xg4OgOqgNUTnVlsY3eZxtVgfgxuPCPP9YTP6HfnmagBXB4NEaE3EAkLQJ7xdXmnN84THk84mpFjSBYpMCsicE3UnasBZOQMOUyw6GAsX7DQJB7nezFieIdtSx4KdMo2HWyNv08s7LaInhXtRCLXcQqXnnHB95vQU3wpVEJUpUvEbs7U5L + EbVHGgWBu4o6crD2Zr3H1rb0TfuTByN7BIG9ZvLlz1sLs5NjoQ1p9ch2jMONcBUFctO3YzgxBIiVGYfWO8eQkvKw9qjl2506yH9o8pVB06xy4MuKUIA66dCfDNBxLtDb2EAb4vMWtbuxXQaJrKQxPkMt0 + + + uko4VNud2wLJdvU5hZ9LGgiu0oU7deNIz4EmR0zUwcvJHpGYhQCXYMrY2eYfsLXTPtfztGtZSYJrgpip7UmXyFWATMPexF7f8fOCN9tyZcZ7u9wt3Srtyf3j1LxqixxiElMrmgRmkRtO00aWKBhaIduJQ118qzi4M5o9l7vFYQmRQwFB7OLH17iR1jR + yinaGHHSiRM54uOewWS6q7Xs + KaoxfEysL37CLllCRS5QGIxAQPrJ1b2LlqasWIUADTcp7pTYhQHPy6pgOJZPU2s7kDr9ddJR6N85c1WlRDahBsqpbh6Xbr4oWnx9A8SyV0E7TAkC5uUGOcYZlWOxnKVb7klHsdgn6MmZmGCj2oRRsPINEpkT9759jqQLvY0BKetYU5hPl1yNQgAmFN + + + + 7810506706970542.0 + HMlQ6DyJ0xCu9QX8DUhk7iSU10mnG1vfOI5MlDne2ZIcIFclrlFyEpsxpGU5Iico09aeNxsHpaL7HXk8jRGPg0mFG8DgqPEjZGxE6Zdv1ZuIWOQ7FoOVoasWb5dtNJMEqbiw2vT3mnDb3liIJ7v79XWcV9GASseaEoyGTrC8GfjJBBjkAOkCE8Orhu11Pf4lDC1oWDwCLPemjxyLeKfSS4b1qc37j7sOBm4pZB2Ci8YtFp7T9mD2iO3B0YI + 1563083954320466.0 + + iReOH5hCkZr5TcNF73JMt8qBWQty7nNh615NZfib6JgZVVEVQfHco7NcQ8KXvp7tj49ijrtp2BgPxUKf2jrqjfC9nnYLM5e52nflGIDAkTiJG2YIei0xpCyERopEmwBoLRBkreUL0cmy7d8lv8KUCiquGQ02etiZkUbM06p0aMqhZqumye83oyxXgpRuSam5WxJWv8PGM7XDykZ6q71PyqEOPvbIxpFtWoiko70bePOM1GLsNMhd5V + + Zzp4YgxSTHSRby8ajiwXkHDfiweSHbVzCkDtB2duJ6dUwm4HEtwQaa5kGbcff8ORkjcVlih5ovRMJOtf905j22vA6HPlHw42P9X3r78PCZtlFWAOOxZQruix48KLwPNlYDop + o6egrrVfTC4qBMJ65ha51NBItOy65PItVOJefxu09yqCc1I9iKecyHM1wlZt2zWYfy4mXym66MAbNbkYVr2l0Oew15Z4wOULeY7bxt9v7JyNULDIcF3claBf7sbE85hmVppkKyIKagp412E5zAaMKD1R54n61FsXWS9GiRis0HpTJ3Rav1X7EQRBVeHWT2THUVg4MyxEgOyRJh2 + + + + EQUIPMENT_CATEGORY_STAND_ALONE_UNIT + +
ooRiQD7TG0FfqxnzENSVMEM1m6GeZpRfNIywdFhUxW1QtppZ4hUQNyS1wy7vXYLDGb1UIiGg6H6AYnr3EeTjMDlbcsG1rrwZuxLdPjtWTroROHUkVGDAjYLnjjpKDVB7lnk2GFQr66jMO56BLC3XsGkL0BvDp7KKmXMUCvmBBxfpCe1gQWdaDxWD1j8qiK2EHGrcbNFNkM4O054IUhTxHP2I020jM2
+ + K962gzwqF6lXVNfqG + +
+
7E8fhU3E6RBGSPgHfGUnn0LoQ3m1A3JzH
+
+ 371eda64-3aa3-f78a-2711-ea75d567381f +
tEsk766Io9nbxTW9W8l3rWpWS1YL9Agu7IOeHVOXWb8u4WDS5RNwNdkFejifTqJS1y6IlUxhXFDUthMy0s5NFhkLAv0mVJeW9dwmZ3wXA9R4ivCiXzXuRa7jFZFABMxKZ3ZYZvNzEwvXU07Jz56ifduUd9uOVTqMPhDOMqfjXLgJ
+
\ No newline at end of file diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/air-interface-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/air-interface-2-0.yang new file mode 100644 index 000000000..906a91c7e --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/co-channel-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/co-channel-profile-1-0.yang new file mode 100644 index 000000000..9906cf6ba --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/core-model-1-4.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/core-model-1-4.yang new file mode 100644 index 000000000..990ddd350 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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: + Editor : Nigel Davis + Email : "; + 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 '<> 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/test/resources/ethernet-container-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ethernet-container-2-0.yang new file mode 100644 index 000000000..1f163f533 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/hybrid-mw-structure-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/hybrid-mw-structure-2-0.yang new file mode 100644 index 000000000..73d84d52c --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/ietf-yang-types.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ietf-yang-types.yang new file mode 100644 index 000000000..20a3ef0d3 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ietf-yang-types.yang @@ -0,0 +1,435 @@ +module ietf-yang-types { + + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; + prefix "yang"; + + organization + "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + + contact + "WG Web: + WG List: + WG Chair: David Kessens + + WG Chair: Juergen Schoenwaelder + + Editor: Juergen Schoenwaelder + "; + + description + "This module contains a collection of generally useful derived + YANG data types. + Copyright (c) 2013 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 + (http://trustee.ietf.org/license-info). + This version of this YANG module is part of RFC 6991; see + the RFC itself for full legal notices."; + + revision 2013-07-15 { + description + "This revision adds the following new data types: + - yang-identifier + - hex-string + - uuid + - dotted-quad"; + reference + "RFC 6991: Common YANG Data Types"; + } + + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of counter and gauge types ***/ + + typedef counter32 { + type uint32; + description + "The counter32 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^32-1 (4294967295 decimal), when it + wraps around and starts increasing again from zero. + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system, and at other times as specified in the + description of a schema node using this type. If such + other times can occur, for example, the creation of + a schema node of type counter32 at times other than + re-initialization, then a corresponding schema node + should be defined, with an appropriate type, to indicate + the last discontinuity. + The counter32 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter32. + In the value set and its semantics, this type is equivalent + to the Counter32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter32 { + type yang:counter32; + default "0"; + description + "The zero-based-counter32 type represents a counter32 + that has the defined 'initial' value zero. + A schema node of this type will be set to zero (0) on creation + and will thereafter increase monotonically until it reaches + a maximum value of 2^32-1 (4294967295 decimal), when it + wraps around and starts increasing again from zero. + Provided that an application discovers a new schema node + of this type within the minimum time to wrap, it can use the + 'initial' value as a delta. It is important for a management + station to be aware of this minimum time and the actual time + between polls, and to discard data if the actual time is too + long or there is no defined minimum time. + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter32 textual convention of the SMIv2."; + reference + "RFC 4502: Remote Network Monitoring Management Information + Base Version 2"; + } + + typedef counter64 { + type uint64; + description + "The counter64 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^64-1 (18446744073709551615 decimal), + when it wraps around and starts increasing again from zero. + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system, and at other times as specified in the + description of a schema node using this type. If such + other times can occur, for example, the creation of + a schema node of type counter64 at times other than + re-initialization, then a corresponding schema node + should be defined, with an appropriate type, to indicate + the last discontinuity. + The counter64 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter64. + In the value set and its semantics, this type is equivalent + to the Counter64 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter64 { + type yang:counter64; + default "0"; + description + "The zero-based-counter64 type represents a counter64 that + has the defined 'initial' value zero. + A schema node of this type will be set to zero (0) on creation + and will thereafter increase monotonically until it reaches + a maximum value of 2^64-1 (18446744073709551615 decimal), + when it wraps around and starts increasing again from zero. + Provided that an application discovers a new schema node + of this type within the minimum time to wrap, it can use the + 'initial' value as a delta. It is important for a management + station to be aware of this minimum time and the actual time + between polls, and to discard data if the actual time is too + long or there is no defined minimum time. + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter64 textual convention of the SMIv2."; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + typedef gauge32 { + type uint32; + description + "The gauge32 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^32-1 (4294967295 decimal), and + the minimum value cannot be smaller than 0. The value of + a gauge32 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases + below (increases above) the maximum (minimum) value, the + gauge32 also decreases (increases). + In the value set and its semantics, this type is equivalent + to the Gauge32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef gauge64 { + type uint64; + description + "The gauge64 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^64-1 (18446744073709551615), and + the minimum value cannot be smaller than 0. The value of + a gauge64 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases + below (increases above) the maximum (minimum) value, the + gauge64 also decreases (increases). + In the value set and its semantics, this type is equivalent + to the CounterBasedGauge64 SMIv2 textual convention defined + in RFC 2856"; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + /*** collection of identifier-related types ***/ + + typedef object-identifier { + type string { + pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + + '(\.(0|([1-9]\d*)))*'; + } + description + "The object-identifier type represents administratively + assigned names in a registration-hierarchical-name tree. + Values of this type are denoted as a sequence of numerical + non-negative sub-identifier values. Each sub-identifier + value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers + are separated by single dots and without any intermediate + whitespace. + The ASN.1 standard restricts the value space of the first + sub-identifier to 0, 1, or 2. Furthermore, the value space + of the second sub-identifier is restricted to the range + 0 to 39 if the first sub-identifier is 0 or 1. Finally, + the ASN.1 standard requires that an object identifier + has always at least two sub-identifiers. The pattern + captures these restrictions. + Although the number of sub-identifiers is not limited, + module designers should realize that there may be + implementations that stick with the SMIv2 limit of 128 + sub-identifiers. + This type is a superset of the SMIv2 OBJECT IDENTIFIER type + since it is not restricted to 128 sub-identifiers. Hence, + this type SHOULD NOT be used to represent the SMIv2 OBJECT + IDENTIFIER type; the object-identifier-128 type SHOULD be + used instead."; + reference + "ISO9834-1: Information technology -- Open Systems + Interconnection -- Procedures for the operation of OSI + Registration Authorities: General procedures and top + arcs of the ASN.1 Object Identifier tree"; + } + + typedef object-identifier-128 { + type object-identifier { + pattern '\d*(\.\d*){1,127}'; + } + description + "This type represents object-identifiers restricted to 128 + sub-identifiers. + In the value set and its semantics, this type is equivalent + to the OBJECT IDENTIFIER type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef yang-identifier { + type string { + length "1..max"; + pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; + pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; + } + description + "A YANG identifier string as defined by the 'identifier' + rule in Section 12 of RFC 6020. An identifier must + start with an alphabetic character or an underscore + followed by an arbitrary sequence of alphabetic or + numeric characters, underscores, hyphens, or dots. + A YANG identifier MUST NOT start with any possible + combination of the lowercase or uppercase character + sequence 'xml'."; + reference + "RFC 6020: YANG - A Data Modeling Language for the Network + Configuration Protocol (NETCONF)"; + } + + /*** collection of types related to date and time***/ + + typedef date-and-time { + type string { + pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + + '(Z|[\+\-]\d{2}:\d{2})'; + } + description + "The date-and-time type is a profile of the ISO 8601 + standard for representation of dates and times using the + Gregorian calendar. The profile is defined by the + date-time production in Section 5.6 of RFC 3339. + The date-and-time type is compatible with the dateTime XML + schema type with the following notable exceptions: + (a) The date-and-time type does not allow negative years. + (b) The date-and-time time-offset -00:00 indicates an unknown + time zone (see RFC 3339) while -00:00 and +00:00 and Z + all represent the same time zone in dateTime. + (c) The canonical format (see below) of data-and-time values + differs from the canonical format used by the dateTime XML + schema type, which requires all times to be in UTC using + the time-offset 'Z'. + This type is not equivalent to the DateAndTime textual + convention of the SMIv2 since RFC 3339 uses a different + separator between full-date and full-time and provides + higher resolution of time-secfrac. + The canonical format for date-and-time values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause date-and-time values + to change accordingly. Such changes might happen periodically + in case a server follows automatically daylight saving time + (DST) time zone offset changes. The canonical format for + date-and-time values with an unknown time zone (usually + referring to the notion of local time) uses the time-offset + -00:00."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + RFC 2579: Textual Conventions for SMIv2 + XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; + } + + typedef timeticks { + type uint32; + description + "The timeticks type represents a non-negative integer that + represents the time, modulo 2^32 (4294967296 decimal), in + hundredths of a second between two epochs. When a schema + node is defined that uses this type, the description of + the schema node identifies both of the reference epochs. + In the value set and its semantics, this type is equivalent + to the TimeTicks type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef timestamp { + type yang:timeticks; + description + "The timestamp type represents the value of an associated + timeticks schema node at which a specific occurrence + happened. The specific occurrence must be defined in the + description of any schema node defined using this type. When + the specific occurrence occurred prior to the last time the + associated timeticks attribute was zero, then the timestamp + value is zero. Note that this requires all timestamp values + to be reset to zero when the value of the associated timeticks + attribute reaches 497+ days and wraps around to zero. + The associated timeticks schema node must be specified + in the description of any schema node using this type. + In the value set and its semantics, this type is equivalent + to the TimeStamp textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of generic address types ***/ + + typedef phys-address { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + + description + "Represents media- or physical-level addresses represented + as a sequence octets, each octet represented by two hexadecimal + numbers. Octets are separated by colons. The canonical + representation uses lowercase characters. + In the value set and its semantics, this type is equivalent + to the PhysAddress textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + typedef mac-address { + type string { + pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; + } + description + "The mac-address type represents an IEEE 802 MAC address. + The canonical representation uses lowercase characters. + In the value set and its semantics, this type is equivalent + to the MacAddress textual convention of the SMIv2."; + reference + "IEEE 802: IEEE Standard for Local and Metropolitan Area + Networks: Overview and Architecture + RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of XML-specific types ***/ + + typedef xpath1.0 { + type string; + description + "This type represents an XPATH 1.0 expression. + When a schema node is defined that uses this type, the + description of the schema node MUST specify the XPath + context in which the XPath expression is evaluated."; + reference + "XPATH: XML Path Language (XPath) Version 1.0"; + } + + /*** collection of string types ***/ + + typedef hex-string { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + description + "A hexadecimal string with octets represented as hex digits + separated by colons. The canonical representation uses + lowercase characters."; + } + + typedef uuid { + type string { + pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; + } + description + "A Universally Unique IDentifier in the string representation + defined in RFC 4122. The canonical representation uses + lowercase characters. + The following is an example of a UUID in string representation: + f81d4fae-7dec-11d0-a765-00a0c91e6bf6 + "; + reference + "RFC 4122: A Universally Unique IDentifier (UUID) URN + Namespace"; + } + + typedef dotted-quad { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; + } + description + "An unsigned 32-bit number expressed in the dotted-quad + notation, i.e., four octets written as decimal numbers + and separated with the '.' (full stop) character."; + } +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ip-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ip-interface-1-0.yang new file mode 100644 index 000000000..b3b86e24a --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/l-3vpn-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/l-3vpn-profile-1-0.yang new file mode 100644 index 000000000..b5682c9cc --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/ltp-augment-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/ltp-augment-1-0.yang new file mode 100644 index 000000000..a1aae5842 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/mac-fc-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fc-1-0.yang new file mode 100644 index 000000000..cbe692ca8 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/mac-fd-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-fd-1-0.yang new file mode 100644 index 000000000..9347f0354 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/mac-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/mac-interface-1-0.yang new file mode 100644 index 000000000..be46b24f4 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/pure-ethernet-structure-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/pure-ethernet-structure-2-0.yang new file mode 100644 index 000000000..14d812450 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/qos-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/qos-profile-1-0.yang new file mode 100644 index 000000000..7dd05d092 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/tdm-container-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/tdm-container-2-0.yang new file mode 100644 index 000000000..efe06378d --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/vlan-fc-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fc-1-0.yang new file mode 100644 index 000000000..5b6cf7b31 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/vlan-fd-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-fd-1-0.yang new file mode 100644 index 000000000..b3d67eef9 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/vlan-interface-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-interface-1-0.yang new file mode 100644 index 000000000..48b292e0b --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/vlan-interface-1-0.yang @@ -0,0 +1,1069 @@ +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 2021-01-04 { + 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"; + } + revision 2020-09-03 { + 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 + "To be sent when an attribute has changed and one or more controllers have to update their data."; + } + + /**************************************** + * grouping statements for object classes + **************************************/ + + 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"; + } + 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 statistics-is-avail { + type boolean; + default "false"; + config false; + description + "true = Statistics collection and aggregation is supported on this interface."; + } + 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 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."; + } + 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.\n"; + } + 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 statistics-is-on { + type boolean; + default "false"; + description + "Only effective if (statisticsIsAvail==true). true = Continuous statistics counters are 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 statistics-is-up { + type boolean; + default "false"; + config false; + description + "true = Statistics are currently counted"; + } + 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"; + } + + /**************************************** + * typedef statements + **************************************/ + + 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 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 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 interface-status-type { + type identityref { + base INTERFACE_STATUS_TYPE; + } + description + "Current Interface Status"; + } + + 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 int16; + 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 int16; + 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.\n"; + } + + grouping internal-to-egress-vlan-id-mapping-type { + leaf internal-vlan-id { + type int16; + 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 int16; + 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 int64; + 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."; + } +} diff --git a/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wire-interface-2-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wire-interface-2-0.yang new file mode 100644 index 000000000..ada0ea8ef --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/test/resources/wred-profile-1-0.yang b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/wred-profile-1-0.yang new file mode 100644 index 000000000..2b9dd8536 --- /dev/null +++ b/sdnr/wt/devicemanager-onap/onf14/provider/src/test/resources/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/openroadm/feature/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml index 099bf4771..6c27a7ac1 100644 --- a/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm/feature/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml index af986eeca..2e50844f0 100755 --- a/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm/installer/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml index e43ae111d..99605ad9f 100644 --- a/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm/model/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/pom.xml index 2948117ab..264137c9f 100755 --- a/sdnr/wt/devicemanager-onap/openroadm/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml b/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml index a771d6c05..b73046faf 100644 --- a/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm/provider/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml index 2002a25f4..f34e926ad 100644 --- a/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm71/feature/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml index e87ea1bb6..b90ccdfac 100755 --- a/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm71/installer/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml index 0cd26f0a8..d7214b958 100644 --- a/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm71/model/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm71/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/pom.xml index 1f73aed3d..5fe238f4c 100755 --- a/sdnr/wt/devicemanager-onap/openroadm71/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm71/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml b/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml index add544cdb..823b08dd0 100644 --- a/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml +++ b/sdnr/wt/devicemanager-onap/openroadm71/provider/pom.xml @@ -26,7 +26,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml b/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml index b00c0c2da..11bd1a3b8 100644 --- a/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml +++ b/sdnr/wt/featureaggregator/feature-devicemanager-base/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml b/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml index 8279f22a8..18b3c2e5c 100644 --- a/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml +++ b/sdnr/wt/featureaggregator/feature-devicemanager/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/featureaggregator/feature-oauth/pom.xml b/sdnr/wt/featureaggregator/feature-oauth/pom.xml index f417d50ad..dfcb2dcfe 100644 --- a/sdnr/wt/featureaggregator/feature-oauth/pom.xml +++ b/sdnr/wt/featureaggregator/feature-oauth/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/featureaggregator/feature/pom.xml b/sdnr/wt/featureaggregator/feature/pom.xml index 38d1a8847..2366a5dfd 100644 --- a/sdnr/wt/featureaggregator/feature/pom.xml +++ b/sdnr/wt/featureaggregator/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/featureaggregator/installer/pom.xml b/sdnr/wt/featureaggregator/installer/pom.xml index e72becb3b..4b197217b 100755 --- a/sdnr/wt/featureaggregator/installer/pom.xml +++ b/sdnr/wt/featureaggregator/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/featureaggregator/pom.xml b/sdnr/wt/featureaggregator/pom.xml index 590efac7d..5729b710a 100755 --- a/sdnr/wt/featureaggregator/pom.xml +++ b/sdnr/wt/featureaggregator/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/helpserver/feature/pom.xml b/sdnr/wt/helpserver/feature/pom.xml index 9deb689af..c4173b929 100644 --- a/sdnr/wt/helpserver/feature/pom.xml +++ b/sdnr/wt/helpserver/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/helpserver/installer/pom.xml b/sdnr/wt/helpserver/installer/pom.xml index 23d127d14..ed98a3a51 100755 --- a/sdnr/wt/helpserver/installer/pom.xml +++ b/sdnr/wt/helpserver/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/helpserver/pom.xml b/sdnr/wt/helpserver/pom.xml index 76d003b64..23b95c0ba 100755 --- a/sdnr/wt/helpserver/pom.xml +++ b/sdnr/wt/helpserver/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/helpserver/provider/pom.xml b/sdnr/wt/helpserver/provider/pom.xml index 32c6be5a9..847f84ae5 100644 --- a/sdnr/wt/helpserver/provider/pom.xml +++ b/sdnr/wt/helpserver/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-registrar/feature/pom.xml b/sdnr/wt/mountpoint-registrar/feature/pom.xml index 56e1a3829..e93cba571 100644 --- a/sdnr/wt/mountpoint-registrar/feature/pom.xml +++ b/sdnr/wt/mountpoint-registrar/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-registrar/installer/pom.xml b/sdnr/wt/mountpoint-registrar/installer/pom.xml index 374ed8e2c..9c51f2ce6 100755 --- a/sdnr/wt/mountpoint-registrar/installer/pom.xml +++ b/sdnr/wt/mountpoint-registrar/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-registrar/model/pom.xml b/sdnr/wt/mountpoint-registrar/model/pom.xml index 2a3fc23b4..aa985aea1 100644 --- a/sdnr/wt/mountpoint-registrar/model/pom.xml +++ b/sdnr/wt/mountpoint-registrar/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-registrar/pom.xml b/sdnr/wt/mountpoint-registrar/pom.xml index 7aee5b49d..4b057963a 100755 --- a/sdnr/wt/mountpoint-registrar/pom.xml +++ b/sdnr/wt/mountpoint-registrar/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-registrar/provider/pom.xml b/sdnr/wt/mountpoint-registrar/provider/pom.xml index 3510cd650..f4b4d8509 100644 --- a/sdnr/wt/mountpoint-registrar/provider/pom.xml +++ b/sdnr/wt/mountpoint-registrar/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-state-provider/feature/pom.xml b/sdnr/wt/mountpoint-state-provider/feature/pom.xml index f0252f13d..7c8f4d957 100644 --- a/sdnr/wt/mountpoint-state-provider/feature/pom.xml +++ b/sdnr/wt/mountpoint-state-provider/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-state-provider/installer/pom.xml b/sdnr/wt/mountpoint-state-provider/installer/pom.xml index efc1e6e97..0837a0528 100755 --- a/sdnr/wt/mountpoint-state-provider/installer/pom.xml +++ b/sdnr/wt/mountpoint-state-provider/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-state-provider/pom.xml b/sdnr/wt/mountpoint-state-provider/pom.xml index a54d8467e..27910da16 100755 --- a/sdnr/wt/mountpoint-state-provider/pom.xml +++ b/sdnr/wt/mountpoint-state-provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-state-provider/provider/pom.xml b/sdnr/wt/mountpoint-state-provider/provider/pom.xml index 225f81212..f5cf9ae08 100644 --- a/sdnr/wt/mountpoint-state-provider/provider/pom.xml +++ b/sdnr/wt/mountpoint-state-provider/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java b/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java index e430a5e24..82f98a3b6 100644 --- a/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java +++ b/sdnr/wt/mountpoint-state-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/mountpointstateprovider/impl/MountpointStatePublisher.java @@ -83,8 +83,11 @@ public class MountpointStatePublisher implements Runnable { } else { pauseThread(); } - } catch (Exception ex) { - LOG.error("Exception while publishing message, ignoring and continuing ... ", ex); + } catch (InterruptedException e) { + LOG.error("InterruptedException while publishing message, ignoring and continuing ... ", e); + Thread.currentThread().interrupt(); + } catch (Exception e) { + LOG.error("Exception while publishing message, ignoring and continuing ... ", e); } } } diff --git a/sdnr/wt/netconfnode-state-service/feature/pom.xml b/sdnr/wt/netconfnode-state-service/feature/pom.xml index ce620a3cf..4b5716baa 100644 --- a/sdnr/wt/netconfnode-state-service/feature/pom.xml +++ b/sdnr/wt/netconfnode-state-service/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/netconfnode-state-service/installer/pom.xml b/sdnr/wt/netconfnode-state-service/installer/pom.xml index 1152f5fdd..98339de7d 100755 --- a/sdnr/wt/netconfnode-state-service/installer/pom.xml +++ b/sdnr/wt/netconfnode-state-service/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/netconfnode-state-service/model/pom.xml b/sdnr/wt/netconfnode-state-service/model/pom.xml index 0e9a7f301..3717d0815 100644 --- a/sdnr/wt/netconfnode-state-service/model/pom.xml +++ b/sdnr/wt/netconfnode-state-service/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java index 46fbbacc0..ad725e359 100644 --- a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java +++ b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfAccessor.java @@ -40,7 +40,6 @@ public interface NetconfAccessor { */ DOMDataBroker getControllerDOMDataBroker(); - /** * @return the nodeId */ diff --git a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java index 1013e37c7..b7eba42b8 100644 --- a/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java +++ b/sdnr/wt/netconfnode-state-service/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/NetconfDomAccessor.java @@ -73,7 +73,7 @@ public interface NetconfDomAccessor extends NetconfAccessor { * @param path * @return NormalizedNode with data */ - Optional> readDataNode(LogicalDatastoreType dataStoreType, YangInstanceIdentifier path); + Optional readDataNode(LogicalDatastoreType dataStoreType, YangInstanceIdentifier path); /** * Read data from Controller node - controller-config @@ -82,9 +82,10 @@ public interface NetconfDomAccessor extends NetconfAccessor { * @param path * @return NormalizedNode with data */ - Optional> readControllerDataNode(LogicalDatastoreType dataStoreType, + Optional readControllerDataNode(LogicalDatastoreType dataStoreType, YangInstanceIdentifier path); + /** * Register netconf notification listener for related mountpoint * @@ -162,6 +163,5 @@ public interface NetconfDomAccessor extends NetconfAccessor { * * @return serialization object. */ - BindingNormalizedNodeSerializer getBindingNormalizedNodeSerializer(); - + //BindingNormalizedNodeSerializer getBindingNormalizedNodeSerializer(); } diff --git a/sdnr/wt/netconfnode-state-service/pom.xml b/sdnr/wt/netconfnode-state-service/pom.xml index 0ab2d23a9..f2c9a257c 100755 --- a/sdnr/wt/netconfnode-state-service/pom.xml +++ b/sdnr/wt/netconfnode-state-service/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/netconfnode-state-service/provider/pom.xml b/sdnr/wt/netconfnode-state-service/provider/pom.xml index 7b4699af4..86177ca64 100644 --- a/sdnr/wt/netconfnode-state-service/provider/pom.xml +++ b/sdnr/wt/netconfnode-state-service/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT @@ -70,7 +70,7 @@
org.opendaylight.mdsal - mdsal-binding-generator-impl + mdsal-binding-generator provided diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java index f759971fb..8605274db 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java @@ -76,8 +76,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.model.parser.api.YangParserException; -import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -685,4 +685,5 @@ public class NetconfNodeStateServiceImpl this.handleDataTreeAsync = this.config.handleAsync(); } + } diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java index 3b68004bc..6c3704421 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfAccessorManager.java @@ -70,4 +70,7 @@ public class NetconfAccessorManager { public void removeAccessor(NodeId nNodeId) { accessorList.remove(nNodeId); } + + + } diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java index f1cf906be..30afb4a20 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/NetconfCommunicatorManager.java @@ -65,7 +65,6 @@ public class NetconfCommunicatorManager { private final DOMMountPointService domMountPointService; private final DomContext domContext; - public NetconfCommunicatorManager(MountPointService mountPointService, DOMMountPointService domMountPointService, DomContext domContext) { super(); diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java index 35eaa9fc8..602b2987f 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomContext.java @@ -23,7 +23,7 @@ package org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.impl.access.dom; import java.util.Objects; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; -import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java index 9bfa826bf..f19103646 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/DomParser.java @@ -43,11 +43,11 @@ public class DomParser { * @param schemaContext schema context * @return created {@link NormalizedNode} */ - public static NormalizedNode parseJsonFile(final String path, final EffectiveModelContext schemaContext) { + public static NormalizedNode parseJsonFile(final String path, final EffectiveModelContext schemaContext) { final JSONCodecFactory codecFactory = JSONCodecFactorySupplier.RFC7951.createSimple(schemaContext); final NormalizedNodeResult resultHolder = new NormalizedNodeResult(); try (NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder); - JsonParserStream jsonParser = JsonParserStream.create(writer, codecFactory, schemaContext); + JsonParserStream jsonParser = JsonParserStream.create(writer, codecFactory); InputStream inputStream = NetconfDomAccessorImpl.class.getResourceAsStream(path); JsonReader reader = new JsonReader(new InputStreamReader(inputStream))) { jsonParser.parse(reader); diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java index 54ca395f4..1b263115f 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/access/dom/NetconfDomAccessorImpl.java @@ -123,7 +123,7 @@ public class NetconfDomAccessorImpl extends NetconfAccessorImpl implements Netco } @Override - public Optional> readDataNode(LogicalDatastoreType dataStoreType, + public Optional readDataNode(LogicalDatastoreType dataStoreType, YangInstanceIdentifier path) { LOG.debug("Read to node datastore:{} path:{}", dataStoreType, path); @@ -131,9 +131,9 @@ public class NetconfDomAccessorImpl extends NetconfAccessorImpl implements Netco // correctly by underlying opendaylight NETCONF service DOMDataTreeReadTransaction readOnlyTransaction = dataBroker.newReadOnlyTransaction(); try { - FluentFuture>> foData = readOnlyTransaction.read(dataStoreType, path); + FluentFuture> foData = readOnlyTransaction.read(dataStoreType, path); - Optional> data = foData.get(120, TimeUnit.SECONDS); + Optional data = foData.get(120, TimeUnit.SECONDS); LOG.trace("read is done - {} ", foData.isDone()); return data; } catch (InterruptedException e) { @@ -147,15 +147,15 @@ public class NetconfDomAccessorImpl extends NetconfAccessorImpl implements Netco } @Override - public Optional> readControllerDataNode(LogicalDatastoreType dataStoreType, + public Optional readControllerDataNode(LogicalDatastoreType dataStoreType, YangInstanceIdentifier path) { LOG.debug("Read to controller node datastore:{} path:{}", dataStoreType, path); DOMDataTreeReadTransaction readOnlyTransaction = this.getControllerDOMDataBroker().newReadOnlyTransaction(); try { - FluentFuture>> foData = readOnlyTransaction.read(dataStoreType, path); + FluentFuture> foData = readOnlyTransaction.read(dataStoreType, path); - Optional> data = foData.get(120, TimeUnit.SECONDS); + Optional data = foData.get(120, TimeUnit.SECONDS); LOG.trace("read is done - {} ", foData.isDone()); return data; } catch (InterruptedException e) { @@ -170,12 +170,12 @@ public class NetconfDomAccessorImpl extends NetconfAccessorImpl implements Netco @SuppressWarnings("unchecked") private static Optional convertNormalizedNode(BindingNormalizedNodeSerializer serializer, - Optional> oData, YangInstanceIdentifier path, Class clazz) + Optional oData, YangInstanceIdentifier path, Class clazz) throws CanNotConvertException { if (oData.isPresent()) { - NormalizedNode data = oData.get(); + NormalizedNode data = oData.get(); LOG.debug("convertNormalizedNode data identifier: {} data nodetype: {}", data.getIdentifier(), - data.getNodeType()); + data.getIdentifier().getNodeType()); @Nullable Entry, DataObject> entry = serializer.fromNormalizedNode(path, data); if (entry != null) { @@ -185,11 +185,11 @@ public class NetconfDomAccessorImpl extends NetconfAccessorImpl implements Netco return Optional.of((T) value); } else { throw new CanNotConvertException("Unexpected class. Expected:" + clazz.getName() + " provided:" - + value.getClass().getName() + " Nodetype:" + data.getNodeType()); + + value.getClass().getName() + " Nodetype:" + data.getIdentifier().getNodeType()); } } else { throw new CanNotConvertException( - "No object created for path:" + path + " Nodetype:" + data.getNodeType()); + "No object created for path:" + path + " Nodetype:" + data.getIdentifier().getNodeType()); } } else { throw new CanNotConvertException("No data received for path:" + path); @@ -241,7 +241,7 @@ public class NetconfDomAccessorImpl extends NetconfAccessorImpl implements Netco if (stream.getName() != null) { inputBuilder.setStream(stream.getName()); } - replayIsSupported = Boolean.TRUE.equals(stream.isReplaySupport()); + replayIsSupported = Boolean.TRUE.equals(stream.requireReplaySupport()); } filter.ifPresent(inputBuilder::setFilter); @@ -297,14 +297,12 @@ public class NetconfDomAccessorImpl extends NetconfAccessorImpl implements Netco return oStreams.map(Streams::nonnullStream).orElse(Collections.emptyMap()); } - @Override - public BindingNormalizedNodeSerializer getBindingNormalizedNodeSerializer() { - return serializer; - } - + /* + * @Override public BindingNormalizedNodeSerializer + * getBindingNormalizedNodeSerializer() { return serializer; } + */ private DateAndTime getDateAndTime(Instant dateTime) { final String formattedDate = DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(dateTime); return new DateAndTime(formattedDate); } - } diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml index ec4c64e67..6a4fd8fb2 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml +++ b/sdnr/wt/netconfnode-state-service/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml @@ -28,7 +28,7 @@ - + @@ -49,7 +49,7 @@ interface="org.onap.ccsdk.features.sdnr.wt.dataprovider.model.IEntityDataProvider"/> + interface="org.opendaylight.yangtools.yang.parser.api.YangParserFactory"/> diff --git a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java index b6d731418..70480d5bb 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java @@ -81,9 +81,9 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.model.parser.api.YangParserException; -import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory; -import org.opendaylight.yangtools.yang.parser.impl.YangParserFactoryImpl; +import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; +import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -143,7 +143,7 @@ public class TestNetconfNodeStateService extends Mockito { NotificationPublishService notificationPublishService = mock(NotificationPublishService.class); RpcProviderService rpcProviderRegistry = mock(RpcProviderService.class); IEntityDataProvider entityProviderMock = mock(IEntityDataProvider.class); - YangParserFactory yangParserFactory = new YangParserFactoryImpl(); + YangParserFactory yangParserFactory = new DefaultYangParserFactory(); BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer = new BindingCodecContext(BindingRuntimeHelpers.createRuntimeContext()); // start using blueprint interface @@ -165,7 +165,9 @@ public class TestNetconfNodeStateService extends Mockito { public static void after() throws InterruptedException, IOException { System.out.println("Start shutdown"); // close using blueprint interface - netconfStateService.close(); + if(netconfStateService!=null) { + netconfStateService.close(); + } delete(KARAF_ETC); } diff --git a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java index f17453803..9630897fb 100644 --- a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java +++ b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/example/ExampleConfig.java @@ -30,11 +30,12 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.config.rev201208 import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.parser.api.YangParser; -import org.opendaylight.yangtools.yang.model.parser.api.YangParserException; +import org.opendaylight.yangtools.yang.parser.api.YangParser; +import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +46,7 @@ public class ExampleConfig { // specification of YANG module private static final QNameModule CONFIG_MODULE = QNameModule.create( - URI.create("urn:ietf:params:xml:ns:yang:config"), Revision.of("2020-12-08")); + XMLNamespace.of("urn:ietf:params:xml:ns:yang:config"), Revision.of("2020-12-08")); // path to 'configuration' container (it is a root container) private static final YangInstanceIdentifier CONFIGURATION_PATH = YangInstanceIdentifier.builder() .node(QName.create(CONFIG_MODULE, "configuration")) @@ -61,7 +62,7 @@ public class ExampleConfig { final EffectiveModelContext schemaContext = parser.buildEffectiveModel(); // (2) parsing of configuration into binding-independent format - final NormalizedNode data = DomParser.parseJsonFile("/example.json", schemaContext); + final NormalizedNode data = DomParser.parseJsonFile("/example.json", schemaContext); // (3) conversion into binding-aware format (md-sal codec needs to know about path on which data is placed) final Configuration config = (Configuration) domContext.getBindingNormalizedNodeSerializer().fromNormalizedNode(CONFIGURATION_PATH, data) @@ -69,7 +70,7 @@ public class ExampleConfig { // (4) printing some useful information LOG.info("Value of 'config1': {}", config.getConfig1()); - LOG.info("Value of 'config2': {}", config.isConfig2()); + LOG.info("Value of 'config2': {}", config.requireConfig2()); Objects.requireNonNull(config.getEntry()).forEach((entryKey, entry) -> LOG.info("Value of '{}' setting: {}", entry.getSetting(), entry.getValue())); } diff --git a/sdnr/wt/oauth-provider/pom.xml b/sdnr/wt/oauth-provider/pom.xml index 788106b84..44676de82 100755 --- a/sdnr/wt/oauth-provider/pom.xml +++ b/sdnr/wt/oauth-provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/oauth-provider/provider-jar/pom.xml b/sdnr/wt/oauth-provider/provider-jar/pom.xml index 24b07bb8e..a6d31d78c 100644 --- a/sdnr/wt/oauth-provider/provider-jar/pom.xml +++ b/sdnr/wt/oauth-provider/provider-jar/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java index 908b91dcf..b9f3d6119 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/OAuth2Realm.java @@ -26,7 +26,6 @@ import java.io.IOException; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; -import org.apache.shiro.authc.BearerToken; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authz.AuthorizationInfo; @@ -36,6 +35,7 @@ import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.Config; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.InvalidConfigurationException; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.TokenCreator; import org.opendaylight.aaa.api.shiro.principal.ODLPrincipal; +import org.apache.shiro.authc.BearerToken; import org.opendaylight.aaa.shiro.realm.TokenAuthRealm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java index 825286dd0..0371f377d 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/data/OAuthToken.java @@ -25,7 +25,6 @@ import com.auth0.jwt.JWT; import com.auth0.jwt.interfaces.DecodedJWT; import org.apache.shiro.authc.BearerToken; - public class OAuthToken { private final String access_token; private final String token_type; diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java index e0714faf8..0dc58efff 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/filters/AnyRoleHttpAuthenticationFilter.java @@ -72,4 +72,4 @@ public class AnyRoleHttpAuthenticationFilter extends RolesAuthorizationFilter { LOG.debug("no role matched: access denied"); return false; } -} +} \ No newline at end of file diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java index 96faccba0..15ff9c480 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/http/AuthHttpServlet.java @@ -39,7 +39,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.SecurityUtils; import org.apache.shiro.ShiroException; -import org.apache.shiro.authc.BearerToken; import org.apache.shiro.codec.Base64; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; @@ -58,6 +57,7 @@ import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.MdSalAuthorizatio import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.OAuthProviderFactory; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.TokenCreator; import org.opendaylight.aaa.api.IdMService; +import org.apache.shiro.authc.BearerToken; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.yang.gen.v1.urn.opendaylight.aaa.app.config.rev170619.ShiroConfiguration; import org.opendaylight.yang.gen.v1.urn.opendaylight.aaa.app.config.rev170619.shiro.configuration.Main; diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java index bb0857ab6..835ea8c09 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/AuthService.java @@ -41,13 +41,13 @@ import java.util.stream.Collectors; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.shiro.authc.BearerToken; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.OAuthProviderConfig; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.OAuthResponseData; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.UserTokenPayload; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.AuthHttpServlet; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.client.MappedBaseHttpResponse; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.client.MappingBaseHttpClient; +import org.apache.shiro.authc.BearerToken; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java index 238f888bb..1fb87a875 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/main/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/providers/TokenCreator.java @@ -32,11 +32,11 @@ import java.security.Security; import java.util.Arrays; import java.util.Date; import javax.servlet.http.HttpServletRequest; -import org.apache.shiro.authc.BearerToken; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.Config; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.UserTokenPayload; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.http.AuthHttpServlet; +import org.apache.shiro.authc.BearerToken; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java index ab6dc4ec2..7b4adefda 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestAuthHttpServlet.java @@ -41,7 +41,6 @@ import java.util.Optional; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.shiro.authc.BearerToken; import org.jolokia.osgi.security.Authenticator; import org.json.JSONArray; import org.junit.BeforeClass; @@ -59,6 +58,7 @@ import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.TokenCreator; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.test.helper.OdlJsonMapper; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.test.helper.OdlXmlMapper; import org.opendaylight.aaa.api.IdMService; +import org.apache.shiro.authc.BearerToken; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -93,7 +93,6 @@ public class TestAuthHttpServlet { servlet = new TestServlet(); shiroConfiguration = loadShiroConfig(TESTSHIROCONFIGFILE); } catch (IOException | InvalidConfigurationException e) { - e.printStackTrace(); fail(e.getMessage()); } servlet.setDataBroker(dataBroker); diff --git a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java index c08f395fb..d6a9ac5b0 100644 --- a/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java +++ b/sdnr/wt/oauth-provider/provider-jar/src/test/java/org/onap/ccsdk/features/sdnr/wt/oauthprovider/test/TestRealm.java @@ -45,9 +45,9 @@ import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.Config; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.data.UserTokenPayload; import org.onap.ccsdk.features.sdnr.wt.oauthprovider.providers.TokenCreator; import org.opendaylight.aaa.api.shiro.principal.ODLPrincipal; -import org.opendaylight.aaa.shiro.tokenauthrealm.auth.AuthenticationManager; -import org.opendaylight.aaa.shiro.tokenauthrealm.auth.TokenAuthenticators; import org.opendaylight.aaa.shiro.web.env.ThreadLocals; +import org.opendaylight.aaa.tokenauthrealm.auth.AuthenticationManager; +import org.opendaylight.aaa.tokenauthrealm.auth.TokenAuthenticators; public class TestRealm { diff --git a/sdnr/wt/oauth-provider/provider-osgi/pom.xml b/sdnr/wt/oauth-provider/provider-osgi/pom.xml index 6de756abc..21fa1e6cb 100644 --- a/sdnr/wt/oauth-provider/provider-osgi/pom.xml +++ b/sdnr/wt/oauth-provider/provider-osgi/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/apiDemo/pom.xml b/sdnr/wt/odlux/apps/apiDemo/pom.xml index f7ed19b3f..8410ecf6e 100644 --- a/sdnr/wt/odlux/apps/apiDemo/pom.xml +++ b/sdnr/wt/odlux/apps/apiDemo/pom.xml @@ -19,14 +19,13 @@ ~ ============LICENSE_END======================================================= ~ --> - 4.0.0 org.onap.ccsdk.parent binding-parent - 2.2.4 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/app-feature/pom.xml b/sdnr/wt/odlux/apps/app-feature/pom.xml index 43cfe9783..e3c90ec9a 100644 --- a/sdnr/wt/odlux/apps/app-feature/pom.xml +++ b/sdnr/wt/odlux/apps/app-feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/app-installer/pom.xml b/sdnr/wt/odlux/apps/app-installer/pom.xml index 91caff643..d0f88493f 100755 --- a/sdnr/wt/odlux/apps/app-installer/pom.xml +++ b/sdnr/wt/odlux/apps/app-installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/configurationApp/pom.xml b/sdnr/wt/odlux/apps/configurationApp/pom.xml index 61af1016b..61fc2245e 100644 --- a/sdnr/wt/odlux/apps/configurationApp/pom.xml +++ b/sdnr/wt/odlux/apps/configurationApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/connectApp/pom.xml b/sdnr/wt/odlux/apps/connectApp/pom.xml index 2229c8e4f..ddcb6e930 100644 --- a/sdnr/wt/odlux/apps/connectApp/pom.xml +++ b/sdnr/wt/odlux/apps/connectApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/demoApp/pom.xml b/sdnr/wt/odlux/apps/demoApp/pom.xml index 14b514a0c..fcf9ab5d0 100644 --- a/sdnr/wt/odlux/apps/demoApp/pom.xml +++ b/sdnr/wt/odlux/apps/demoApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/eventLogApp/pom.xml b/sdnr/wt/odlux/apps/eventLogApp/pom.xml index 83e4d8583..92065627d 100644 --- a/sdnr/wt/odlux/apps/eventLogApp/pom.xml +++ b/sdnr/wt/odlux/apps/eventLogApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/faultApp/pom.xml b/sdnr/wt/odlux/apps/faultApp/pom.xml index 8d7269b51..54e0800d9 100644 --- a/sdnr/wt/odlux/apps/faultApp/pom.xml +++ b/sdnr/wt/odlux/apps/faultApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/helpApp/pom.xml b/sdnr/wt/odlux/apps/helpApp/pom.xml index 84d029692..889fe76bf 100644 --- a/sdnr/wt/odlux/apps/helpApp/pom.xml +++ b/sdnr/wt/odlux/apps/helpApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/inventoryApp/pom.xml b/sdnr/wt/odlux/apps/inventoryApp/pom.xml index 35dc58ed2..153d95121 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/pom.xml +++ b/sdnr/wt/odlux/apps/inventoryApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/maintenanceApp/pom.xml b/sdnr/wt/odlux/apps/maintenanceApp/pom.xml index 882cd68b3..a39b5351a 100644 --- a/sdnr/wt/odlux/apps/maintenanceApp/pom.xml +++ b/sdnr/wt/odlux/apps/maintenanceApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/mediatorApp/pom.xml b/sdnr/wt/odlux/apps/mediatorApp/pom.xml index ef15fb6a1..7005fe40a 100644 --- a/sdnr/wt/odlux/apps/mediatorApp/pom.xml +++ b/sdnr/wt/odlux/apps/mediatorApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/minimumApp/pom.xml b/sdnr/wt/odlux/apps/minimumApp/pom.xml index 12e457195..589298433 100644 --- a/sdnr/wt/odlux/apps/minimumApp/pom.xml +++ b/sdnr/wt/odlux/apps/minimumApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml b/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml index 1cbc0ff20..6fdd8c69d 100644 --- a/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml +++ b/sdnr/wt/odlux/apps/performanceHistoryApp/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/core/features/pom.xml b/sdnr/wt/odlux/core/features/pom.xml index 40838e50f..7e5f2565d 100644 --- a/sdnr/wt/odlux/core/features/pom.xml +++ b/sdnr/wt/odlux/core/features/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/core/installer/pom.xml b/sdnr/wt/odlux/core/installer/pom.xml index 1d68e1978..818d68d8d 100755 --- a/sdnr/wt/odlux/core/installer/pom.xml +++ b/sdnr/wt/odlux/core/installer/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/core/model/pom.xml b/sdnr/wt/odlux/core/model/pom.xml index f70584d85..4e7bfc87b 100644 --- a/sdnr/wt/odlux/core/model/pom.xml +++ b/sdnr/wt/odlux/core/model/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/core/pom.xml b/sdnr/wt/odlux/core/pom.xml index ce8709611..401e84ec3 100644 --- a/sdnr/wt/odlux/core/pom.xml +++ b/sdnr/wt/odlux/core/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/core/provider/pom.xml b/sdnr/wt/odlux/core/provider/pom.xml index 9fec91bcd..611f801ef 100644 --- a/sdnr/wt/odlux/core/provider/pom.xml +++ b/sdnr/wt/odlux/core/provider/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/framework/pom.xml b/sdnr/wt/odlux/framework/pom.xml index 83ba6f38c..9f77f9b44 100644 --- a/sdnr/wt/odlux/framework/pom.xml +++ b/sdnr/wt/odlux/framework/pom.xml @@ -19,14 +19,13 @@ ~ ============LICENSE_END======================================================= ~ --> - 4.0.0 org.onap.ccsdk.parent odlparent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/installer/pom.xml b/sdnr/wt/odlux/installer/pom.xml index 1e1acbfad..c76f8e4cc 100644 --- a/sdnr/wt/odlux/installer/pom.xml +++ b/sdnr/wt/odlux/installer/pom.xml @@ -19,15 +19,13 @@ ~ ============LICENSE_END======================================================= ~ --> - - + 4.0.0 org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/odlux/pom.xml b/sdnr/wt/odlux/pom.xml index b5c275b9d..8a66060c3 100644 --- a/sdnr/wt/odlux/pom.xml +++ b/sdnr/wt/odlux/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/pom.xml b/sdnr/wt/pom.xml index 014cb5054..372f728f3 100644 --- a/sdnr/wt/pom.xml +++ b/sdnr/wt/pom.xml @@ -24,7 +24,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/readthedocs/pom.xml b/sdnr/wt/readthedocs/pom.xml index 982caa519..64c162cd8 100644 --- a/sdnr/wt/readthedocs/pom.xml +++ b/sdnr/wt/readthedocs/pom.xml @@ -25,7 +25,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/websocketmanager/feature/pom.xml b/sdnr/wt/websocketmanager/feature/pom.xml index 3397da60c..6c6e09d15 100644 --- a/sdnr/wt/websocketmanager/feature/pom.xml +++ b/sdnr/wt/websocketmanager/feature/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent single-feature-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/websocketmanager/installer/pom.xml b/sdnr/wt/websocketmanager/installer/pom.xml index b2cbd6750..beffd6ca4 100755 --- a/sdnr/wt/websocketmanager/installer/pom.xml +++ b/sdnr/wt/websocketmanager/installer/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/websocketmanager/model/pom.xml b/sdnr/wt/websocketmanager/model/pom.xml index 40bc39e5c..13831638f 100644 --- a/sdnr/wt/websocketmanager/model/pom.xml +++ b/sdnr/wt/websocketmanager/model/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/websocketmanager/pom.xml b/sdnr/wt/websocketmanager/pom.xml index f0ff66cad..5bec81e07 100755 --- a/sdnr/wt/websocketmanager/pom.xml +++ b/sdnr/wt/websocketmanager/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent odlparent-lite - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/websocketmanager/provider/pom.xml b/sdnr/wt/websocketmanager/provider/pom.xml index 838ecc487..abd8dd10f 100644 --- a/sdnr/wt/websocketmanager/provider/pom.xml +++ b/sdnr/wt/websocketmanager/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.parent binding-parent - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java index d3f49b87d..8af5cb1ee 100644 --- a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java +++ b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerProvider.java @@ -102,14 +102,9 @@ public class WebSocketManagerProvider implements WebsocketManagerService, AutoCl @Override public void sendNotification(Notification notification, NodeId nodeId, QName eventType) { -// disabled because of malfunction -// e.g. notification type (class org.opendaylight.yang.gen.v1.urn.o.ran.sc.params.xml.ns.yang.nts.manager.rev210608. -// OperationStatusChanged$$$eventInstantAware) and qname((urn:o-ran-sc:params:xml:ns:yang:nts:manager? -// revision=2021-06-08)operation-status-changed) do not match. won't be sent -// if (!assertNotificationType(notification, eventType)) { -// LOG.warn("notification type ({}) and qname({}) do not match. won't be sent",notification.getClass(), eventType) -// return; -// } + if (!assertNotificationType(notification, eventType)) { + return; + } this.sendNotification(notification, nodeId, eventType, YangToolsMapperHelper.getTime(notification, Instant.now())); } diff --git a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java index f508c61f7..95715be39 100644 --- a/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java +++ b/sdnr/wt/websocketmanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager/WebSocketManagerSocket.java @@ -24,6 +24,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Random; import java.util.Set; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ExecutionException; @@ -78,7 +79,7 @@ public class WebSocketManagerSocket extends WebSocketAdapter { if (message != null) { WebSocketManagerSocket.this.session.getRemote().sendStringByFuture(message) .get(SEND_MESSAGE_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); - LOG.debug("message sent"); + LOG.info("message sent"); } } catch (ExecutionException | TimeoutException e) { LOG.warn("problem pushing message: ", e); @@ -150,7 +151,7 @@ public class WebSocketManagerSocket extends WebSocketAdapter { @Override public void onWebSocketText(String message) { - LOG.debug("{} has sent {}", this.getRemoteAdr(), message); + LOG.info("{} has sent {}", this.getRemoteAdr(), message); if (!this.manageClientRequest(message)) { this.manageClientRequest2(message); } diff --git a/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java b/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java index ff0437e2b..962838489 100644 --- a/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java +++ b/sdnr/wt/websocketmanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/websocketmanager2/test/TestSerializer.java @@ -56,19 +56,4 @@ public class TestSerializer { assertNotNull(sOutput); assertTrue(sOutput.contains("\"type\"")); } -// @Test -// public void test2() { -// InstanceChanged notification = new InstanceChangedBuilder().setChangeStatus("stop SUCCESS").setName("NTS_FUNCTION_TYPE_OPENROADM_6_1_0-1").setFunctionType(NTS_FUNCTION_TYPE_OPENROADM_6_1_0.class) -// NotificationOutput output = new NotificationOutput(notification, NODEID, ObjectCreationNotification.QNAME,DateAndTime.getDefaultInstance(TIMESTAMP)); -// String sOutput=null; -// try { -// sOutput = mapper.writeValueAsString(output); -// LOG.debug(sOutput); -// } catch (JsonProcessingException e) { -// e.printStackTrace(); -// fail(e.getMessage()); -// } -// assertNotNull(sOutput); -// assertTrue(sOutput.contains("\"type\"")); -// } } -- cgit 1.2.3-korg